pre-process and parsing, getting components of DeclStmt


I have few questions:

  1. I access the AST through the ASTConsumer interface, but although the ParseAST function receives a Preprocessor object as an argument, it seems that pre-processing isn’t performed, and as a result, macros and data types from included headers aren’t recognized. In this case, why ParseAST receives the Preprocessor object? How can I activate the Preprocessor, and work with the pre-processed data?
  2. In a DeclStmt of the form “int a = b + c”, how can I access the assignment components (Binary Operator +, b, c)?
    Any help or direction will be appreciated.

Thanks in advance,

There's no assignment, there's only initialization. Get the DeclGroup for the DeclStmt, get its first (and only) decl, do a checked cast to VarDecl, and get its initializer. That should give you the BinaryOperator.