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

調用EclipseCDT解析器的結果實現對C++代碼的解析,第1張

調用EclipseCDT解析器的結果實現對C++代碼的解析,第2張

org.eclipse.cdt.core的插件包引入後,可以通過下麪的代碼
public static last translation unit getast(ifile file){
itranslationunit tu = coremodelutil . find translation unit(file)得到一個C 源文件的解析結果;
ICProject project = tu . getc project();
IASTTranslationUnit ast = null;
try {
IIndex index = ccorplugin . getindexmanager()。getIndex(project,
IIndexManager。ADD_DEPENDENCIES | IIndexManager。ADD _ DEPENDENT);
index . acquired lock();
try {
ast = tu . getast(index,0);
} finally {
index . releaseredlock();
}
} catch(interrupted exception e){
//log(e);
} catch(core exception e){
//log(e);
}
return ast;
}
然後調用IASTTranslatonUnit ast上的getDeclarations()方法來獲取所有聲明信息。CCorePlugin和CoreModelUtil是CDT Core提供的最重要的條目。
translator unit表示一個編譯單元。可以是一個項目。一份文件。文件的代碼塊ASTTranslatonUnit是編譯單元的AST表示形式。它包含了所有的信息。

位律師廻複

生活常識_百科知識_各類知識大全»調用EclipseCDT解析器的結果實現對C++代碼的解析

0條評論

    發表評論

    提供最優質的資源集郃

    立即查看了解詳情