In preparation for finding macro uses.
* Macro: add offset and length
* MacroUse: add line
* Document: add convenience functions for finding a macro definition, use
or undefined use at a given location.
Reviewed-by: Erik Verbruggen
Things you mustn't do:
1) end an enum with a comma
2) #include <cxxxx> and not use std::
3) use anonymous structures
All three things are invalid C++. Anonymous structures inside
anonymous unions are allowed by GCC, but that doesn't mean it's valid.