java - 如何从 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 遍历时获得这个条件预处理器语句。
解决方案
推荐阅读
- python - 如何返回由2个字母的每个单词的出现次数组成的字典
- python - 在没有单元格拉伸的情况下删除 QTableView() 最后一行下方的灰色带?
- vue.js - 当 v-btn 有 v-for 时,为什么 v-menu 不能与 v-btn 一起使用
- javascript - 我在导航栏中注销后,React.js 注销并没有变成登录
- python - Pycharm 找不到解释器
- c# - MiniProfiler ASP.NET Core - 基于用户角色的 ShouldProfile
- c++ - C++ 类中的简单工作线程
- flutter - 如何使用 Flutter ScreenUtil 插件在 MatrialApp 小部件中响应主题?
- php - 成对显示数组内容
- python - openpyxl barchart LibreOffice 兼容性问题