作为研究项目的一部分,我使用 Eclipse CDT 分析 C/C++ 源代码。我注意到 CDT 的 API有两个“可访问”接口(interface)包:
(1) 包裹org.eclipse.cdt.core.dom.ast
(2) 包裹org.eclipse.cdt.core.model
我假设 (1) 是为了遍历 AST,但 (2) 的目的是什么?
最佳答案
“模型”是一个没有 AST 详细的源代码模型。它对变量、函数、类和预处理器指令等实体建模,但不对语句和表达式等其他事物建模。它用于生成大纲 View 、项目资源管理器的内容以及一些其他 View (如调用层次结构和类型层次结构)中的条目。
我相信该模型早于 AST,并且至少可以重写它的某些用途以使用 AST。
关于c++ - Eclipse CDT ast 和模型包之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40526321/