CDTのパーサーを他の用途で使う(2)
生成されたAST (Abstract Syntax Tree) の各ノードの型を調べると、元として与えたC/C++のソースコードの構文要素の種類を調べることができる模様。
そのためには、Visitorを作成し、ASTに含まれている調べたい種類のノードを走査する。
例えば、Statement (文) という構文要素に分類されるノードを探すには、
ASTVisitor visitor = new ASTVisitor() {
public int visit(IASTStatement stmt) {
System.out.println(stmt.getRawSignature());
return ASTVisitor.PROCESS_CONTINUE;
}
};
visitor.shouldVisitStatements = true;
translationUnit.accept(visitor);
とする。
さらに、Statementの種類を詳しく調べることもできる。
例えば、Return Statementであることを調べるには、
public int visit(IASTStatement stmt) {
System.out.println(stmt.getRawSignature());
if ( stmt instanceof IASTReturnStatement ) {
System.out.println(" --> This is a return statement !!");
}
return ASTVisitor.PROCESS_CONTINUE;
}
どんな構文を認識できるかについては、以下のヘルプを参考にする。
http://help.eclipse.org/help33/topic/org.eclipse.cdt.doc.isv/reference/api/org/eclipse/cdt/core/dom/ast/package-summary.html
| 固定リンク
「Eclipse」カテゴリの記事
- Eclipse RCP(2009.07.08)
- CDTのパーサーを他の用途で使う(2)(2009.05.07)
- CDTのパーサーを他の用途で使う(1)(2009.05.05)
「プログラミング」カテゴリの記事
- OpenCV 2.1(2010.06.29)
- 定義済みマクロ集(2010.06.28)
- Ajax.Request GET --> OPTIONS(2010.04.25)
- CUDA2.3 + Ubuntu 9.10(2010.01.05)
- Go 名称問題(2009.11.16)


コメント