Groovy AST 変換を使用して言語を拡張する方法の例を見てきました。たとえば、ここに示すように、メソッド呼び出しの前後にログを記録します。しかし、このフレームワークを使用して、言語自体の構文を拡張することも可能でしょうか? たとえば、以下を解析して AST に変換し、一連のステートメントを生成できるようにしたい場合はどうなるでしょうか。
newClassKeyword C { /* something here */ }
Groovy AST 変換を使用して言語を拡張する方法の例を見てきました。たとえば、ここに示すように、メソッド呼び出しの前後にログを記録します。しかし、このフレームワークを使用して、言語自体の構文を拡張することも可能でしょうか? たとえば、以下を解析して AST に変換し、一連のステートメントを生成できるようにしたい場合はどうなるでしょうか。
newClassKeyword C { /* something here */ }
私はGroovyの専門家ではありませんが、1.6リリースから出てきた新しいフレームワークのいくつかを見てきました。特に、私が興味を持っているのはSpockです。テスト用の仕様言語全体を定義するためにAST変換を使用するため、これはおそらくまさにあなたが探しているものです。
InfoQにGroovy1.6の新機能の概要を説明する記事があることを追加するのを忘れました。ギヨーム・ラフォージが記事を書き、その中で彼はASTについて少し説明しています。