这是一个创建于 4140 天前的主题,其中的信息可能已经有所发展或是发生改变。
最近在做一个C++的代码相似检测,需要用到语法分析,想用eclipse的这个cdt插件实现,以下是网上给出的代码,我想请问下
(1) IFile 是个什么东东?如何使用?C++源代码怎么转化成IFile类型
(2) 最后return的ast变量要怎么使用?
(3) index是什么?怎么使用?
(4) 这段代码处理完后生成的语法分析树,怎么转化为纯文本供后面代码使用?
谢谢
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;
}