首页 > 解决方案 > 如何从 ASTVISITOR 获取预处理器语句

问题描述

我正在使用 Eclipse cdt 解析器来解析我的 C 文件并从中构造 C 模型。在遍历 ASTVISITOR 期间,我目前难以获得 C 文件中使用的条件预处理器语句。

Foo.c 文件:

#define start

#include "abc.h"

bool func()

{


#if (xyz <= 0)

{


Do something


}


#endif


#if (xyz <2)

{


Do something else


}


}

abc.h 文件:

#define xyz =0

我想得到这个表达式 xyz<=0 和操作数“xyz”,而在 ASTVisitor 中,只有当它的计算结果为真时才遍历。

我的解析模板代码是这样的,

Class MyVisitir extends ASTVisitor{

ShouldVisitExpressiins =true;
ShouldVisitDeclartiins =true;
ShouldVisitNames=true;

@Override
Public int visit(IASTExpression expression){}

@Override
Public int visit(IASTName name){}

@Ovrrride
Public int visit(IASTDeclaration expression){}
}

请任何人帮助我在 AST 遍历时获得这个条件预处理器语句。

标签: javaeclipse-cdtabstract-syntax-treevisitor-pattern

解决方案


推荐阅读