On Fri, Jun 22, 2012 at 10:27 AM, Joseph Paul Cohen
<jcccnet@xxxxxxxxx> wrote:
Can anyone shed some light on how to print out a piece of C++ code
using an ASTVisitor? Eventually I want to be able to walk the AST and
print out or transform what I want. I made this ASTVisitor but it
seems I have to override each visit method and even then I get
overlapping code. It will print out an entire function definition and
then later I will visit the expressions inside it and print those out.
Any suggestions?
Output:
...
CPPASTFunctionDefinition int called2(){
called3();
return 9;
}
CPPASTFunctionCallExpression called3()
CPPASTIdExpression called3
CPPASTLiteralExpression 9
...
Code:
class CodePrintVisitor extends ASTVisitor {
CodePrintVisitor() {
shouldVisitExpressions= true;
shouldVisitDeclarations = true;
}
@Override
public int visit(IASTExpression _expression_) {
String line = "";
line += _expression_.getClass().getSimpleName();
line += " ";
line += _expression_.getRawSignature();
print("Code", line);
return PROCESS_CONTINUE;
}
@Override
public int visit(IASTDeclaration declaration) {
String line = "";
line += declaration.getClass().getSimpleName();
line += " ";
line += declaration.getRawSignature();
print("Code", line);
return PROCESS_CONTINUE;
}
}
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev