Eclipse CDT ast 和 model 包之间的区别

Posted

技术标签:

【中文标题】Eclipse CDT ast 和 model 包之间的区别【英文标题】:Difference between Eclipse CDT ast and model packages 【发布时间】:2016-11-10 11:19:22 【问题描述】:

作为研究项目的一部分,我使用 Eclipse CDT 分析 C/C++ 源代码。我注意到 CDT 的API 有两个“可访问”接口包:

(1) 包org.eclipse.cdt.core.dom.ast

(2) 包org.eclipse.cdt.core.model

我假设(1)是用于AST遍历,但是(2)的目的是什么?

【问题讨论】:

【参考方案1】:

“模型”是比 AST 更详细的源代码模型。它对变量、函数、类和预处理器指令等实体进行建模,但对语句和表达式等其他事物不建模。它用于生成大纲视图、项目资源管理器的内容以及其他一些视图中的条目,例如调用层次结构和类型层次结构。

我相信该模型早于 AST,并且至少它的一些用途可以重写为使用 AST。

【讨论】:

以上是关于Eclipse CDT ast 和 model 包之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

如何强制 Eclipse CDT MinGW 工具链使用 mingw32-g++.exe?

Eclipse搭建c环境(CDT)二

OpenCV 和 Eclipse CDT

Eclipse + CDT:如何批量构建多个构建配置

在 Eclipse/CDT 中使用自定义 Makefile [重复]

Eclipse CDT 自动包含共享库