clang AST访客额外的论点

时间:2015-04-26 08:28:27

标签: clang llvm-clang clang-static-analyzer

目前Clang的Traverse *函数仅接受AST节点作为唯一参数。我想知道是否有任何方法可以将一个或多个参数传递给clang的ASTVisitor中的Traverse *函数。

例如,让我说我有一个BinaryOperator,当我在LHS和RHS上调用TraverseStmt时,我希望传递一些状态:

TraverseStmt(LHS, state);
...
TraverseStmt(RHS, state);

有什么方法可以实现这个目标吗?

避免传递参数的一种方法是在ASTVisitor对象中维护一个本地堆栈。但那太丑了!

感谢。

0 个答案:

没有答案