I am attempting to do some basic parsing of the AST using C#. So far I’ve had success extracting a few things simply by writing some test C++ code, generating an AST for it, making some changes, regenerating an AST, and observing what changes in the AST entries. However, this empirical approach is pretty brutal and requires a lot of questionable assumptions. Is there any documentation that explicitly explains the possible permutations and field meanings of each AST entry type? If so I’d greatly appreciate a link to it. I’ve done pretty well figuring out the FunctionDecl item and a few others but a document describing them would really be helpful. For example, in the following I know that ‘ABCDE’ represents the name of the function and ‘float (int, char)’ represents its data type, but there are two copies of ‘float (int, char)’ and I’d like to know why and if they both represent the same thing:
`-DeclRefExpr 0x862c118 col:11 ‘float (int, char)’ lvalue Function 0x85deae0 ‘ABCDE’ ‘float (int, char)’
I have similar questions about most of the entry types.