AST

Groovy スクリプトで複素数データを扱う その3

次のようなスクリプトではうまくいくでしょうか。 // test4.groovy class test4 { public static void main (String [] args) { def z1 = 2 + i def z2 = 1 + 5 * i println z1 * z2 } } 前回用意した mygroovy.bat で動かしてみましょう。 C:\work>mygroovy…

Groovy AST の勉強 その4

前回のお題を実現する ASTTransformation を実装してみる。visit メソッドの内容は次の通り。メインクラスの ClassNode を取得し、(A)(B)(C)の変更を行う。 public void visit(ASTNode[] astNodes, SourceUnit sourceUnit) { def ast = sourceUnit.getAST() …

Groovy AST の勉強 その3

AST変換のネタを考えてみた。こんな題材: クラス定義をせずに記述したスクリプトにおいて print/println 文の出力内容をテキストエリアなどの GUI 部品に表示する。ただし、もとのスクリプトには、GUI 部品の記述は一切なしで。 これ、意外と使えると思うん…

Groovy AST の勉強 その2

今回のお題: ・入力となるソースコードをコンパイルする。 ・メインクラスの ClassNode を取得する。 ・取得した ClassNode のツリー構造を画像データにレンダリングする。次のようなステップで処理を行う。 (1) groovy スクリプトのファイルを読み出してコ…

Groovy AST の勉強

Groovy の AST (Abstract Syntax Tree) の勉強をはじめた。学生時代にプログラミングの意味論 *1 や型理論 *2 を勉強していたので、「抽象構文」とか「具象構文」というキーワードが気分にささったものと思う。とりあえず Groovy サイトの次のページを読み始…