調用Eclipse CDT解析器的結果實現對C++代碼的解析

調用Eclipse CDT解析器的結果實現對C++代碼的解析
作者:天涯 來源:中國自學編程網 發佈日期:1228350297
引入org.eclipse.cdt.core的插件包後.通過如下代碼則可獲得某個C++源文件的解析結果

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表示.裏面包含了所有的信息
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章