I'm currently using the DIA SDK to get some very useful information from a PDB file... Now, the basic question is: how deep can I go with that? The optimum would be to able to get everything right down to the abstract syntax tree... Is that even remotely possible? If not, how far can I go using the analysis of debug data?
DIA SDK gives you access only to the debug information available in the PDB through the COM interface. To give you a general idea, this is similar to whatever available to the visual studio debugger (symbols, line numbers, etc). That means, in general, if the debugger appears to know about something, then that information should be available through the DIA SDK. For the specific details, you need to refer to the online documentation in msdn.
To be specific, the abstract syntax tree intenal to Visual Studio is NOT available through any api - not just DIA SDK. Even local variable type symbols cannot be enumerated through the DIA SDK.