Eclipse RCP

最近お仕事でJavaでツールを作っているので、そのGUI版をEclipse RCPで作ろうと思い、「Eclipse パーフェクトマニュアル ベストセレクション」で勉強した。

読んだのは5章だけ。RCPを用いたアプリ開発の解説。
説明順序通りやったが、全リストを打ち込むまでエラーが残って実行できないのは痛かった。
一つ進むたびに実行ができると進捗の喜びがあってもっとやりやすかったが、根気で乗り切った。

でも、今後の機能拡張のためのエクステンションポイントの作り方や、スプラッシュ画面といった「かっこよさ」を高める機能についても説明されていて、よい。

これで勉強は終わり。
次はツールを作ってみよう。

| | コメント (0) | トラックバック (0)

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

| | コメント (0) | トラックバック (0)

CDTのパーサーを他の用途で使う(1)

EclipseのCDT (C/C++ Development Tools) に含まれるパーサーを使ってC/C++の構文解析を行って、独自のアプリケーションに応用することになった。

このような内部ライブラリに関してはもともとドキュメントが貧弱で、体系的な解説もない。
いろいろ調べて、わかったことを書いていこうと思う。

CDTのパーサーで、構文解析木を作るためのコードについて。
http://dev.eclipse.org/mhonarc/lists/cdt-dev/msg10285.html

| | コメント (0) | トラックバック (1)