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

| | Comments (0) | TrackBack (0)

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

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

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

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

| | Comments (0) | TrackBack (0)

Hello World !!

新しい開発環境(言語、ライブラリ、プロセッサ、OS・・・)を使うときに最初に作る定番プログラムとして、

Hello World !!

と表示するだけの、ハローワールドプログラムがある。

さて、いったいこれは誰が誰にHelloと言っているのだろう、と気になっている。
とりあえず考えた仮説は以下の2つ。

  • 仮説1: 「新しいマシンの世界よ、こんにちは!」と、プログラマが新しい開発環境に挨拶している。
  • 仮説2: 「世界のみなさん、こんにちは、私は○○マシンです!」と、世界に対してマシンが挨拶している。

仮説1としか考えたことがなかったが、ふと仮説2もあるなと思い始めたら、なんだかそっちの方が正しいような気がしてならない。

また、仮説2だとすると、「Hello World !!」を、「Hello Cell/B.E. World !!」などと書き換えるのは誤りということになるので、人に教えたりする場合に恥ずかしくないようにしておきたい。

意見求ム。

| | Comments (0) | TrackBack (0)

イノベイター

この不況で企業の利益が激減。
なんとか乗り切ろうと、全社一丸となって節約術に取り組むというニュースが多くみられるようになった。

むむ、これってまさに、イノベイターが目指す人類の変革の第一段階では!?

| | Comments (0) | TrackBack (0)

恥ずかしい

中川財務大臣の酩酊会見を見た。

最初は噂以上の酩酊っぷりに笑ってみてたけど、その後の「風邪薬」コメントやら、「首相は続けろと言った」というコメントやらを見ていると、段々腹が立ってきた。

若い世代ばかり何かと批判される昨今だが、本当は年寄りまで全世代が「恥ずかしい」という思いを忘れてしまったのかなと感じた。

世界中であれほどの恥をさらしたら、恥ずかしくて引きこもってしまいそうなものだ。
また、それを一喝できない首相も首相。「早く風邪を治せ」だなんて、なんと恥ずかしい・・・。

支持率13%で「私の不徳の致す限り」と言いながらのほほんとできる人が日本のトップにいるなんて、本当に恥ずかしいと思う。

| | Comments (2) | TrackBack (0)

«USBディスプレイ