2009-03-20 7 views
1

Groovy AST変換を使用して言語を拡張する方法の例を見てきました。メソッド呼び出しの前後にログを表示します(here)。しかし、このフレームワークを使用して言語自体の構文を拡張することも可能でしょうか?例えば、私が解析し、変換、次のASTにして、文のセットを生成できるようにしたい場合は何を:GroovyでAST変換を使用して構文を拡張することはできますか?

newClassKeyword C { /* something here */ } 

答えて

1

AST変換でGroovyの構文を拡張することはできませんが、既存の構文にまったく新しいセマンティクスを与えることができます。 Groovyの構文は非常に柔軟性があるので、これはかなりあなたを得ることができます。

2

私はGroovyの専門家だが、私はいくつかのを見てきました1.6リリースから出てきた私にとって特に興味深い新しいフレームワークはSpockです。 AST変換を使用してテスト用の仕様言語全体を定義するため、これはおそらく正確に探しているものです。

Groovy 1.6の新機能の概要を示すInfoQ has an articleを追加するのを忘れました。 Guillaume LaForgeがこの記事を書いており、その中に彼はASTについて少し説明しています。

関連する問題