调用Eclipse CDT解析器的结果实现对C++代码的解析
2011-09-02 17:14
1121 查看
调用Eclipse CDT解析器的结果实现对C++代码的解析 | |
作者:天涯 来源:中国自学编程网 发布日期:1228350297 | |
public static IASTTranslationUnit getAST( IFile file) { ITranslationUnit tu = CoreModelUtil.findTranslationUnit(file); ICProject project= tu.getCProject(); IASTTranslationUnit ast=null; try { IIndex index = CCorePlugin.getIndexManager().getIndex(project, IIndexManager.ADD_DEPENDENCIES | IIndexManager.ADD_DEPENDENT); index.acquireReadLock(); try { ast=tu.getAST(index, 0); } finally { index.releaseReadLock(); } } catch (InterruptedException e) { //log(e); } catch (CoreException e) { //log(e); } return ast; } 再对IASTTranslatonUnit ast调用 getDeclarations()方法即可获得所有的声明信息CCorePlugin和CoreModelUtil是CDT Core提供的最重要的入口. TranslatonUnit表示一个编译单元.可以是一个项目.一个文件.文件的一个代码块ASTTranslatonUnit 是编译单元的AST表示.里面包含了所有的信息 |
相关文章推荐
- 最大子数组问题-c++代码实现及运行实例结果
- 最大子数组问题-暴力求解-c++代码实现及运行实例结果
- 矩阵相乘strassen-c++代码实现及运行实例结果
- 利用C/C++实现从文件读入到子程序中调用返回结果
- 复数四则运算-c++代码实现及运行实例结果
- 雇佣问题(hireassistant)-c++代码实现及运行实例结果
- 螺旋队列C++代码实现实例及运行结果
- 雇佣问题随机排列数组(permuteBySorting)-c++代码实现及运行实例结果
- 雇佣问题原址排列给定数组(randomize In Place)-c++代码实现及运行实例结果
- 球与箱子-c++代码实现及运行实例结果
- 生日悖论扩展引申2-c++代码实现及运行实例结果
- 数据结构之栈的初始化、创建、入栈、出栈、销毁-c++代码实现及运行实例结果
- strstr()函数c++代码实现实例及运行结果
- 查看python调用c++代码的代码实现位于那个cpp文件
- 插入排序(正序、倒序)-c++代码实现及运行实例结果
- 归并排序-c++代码实现及运行实例结果
- 冒泡排序-c++代码实现及运行实例结果
- 最大子数组问题-c++代码实现及运行实例结果
- 利用Eclipse CDT 阅读C/C++代码 (记录转贴)
- 如何实现Visual Studio C++调用TensorFlow代码