18

Groovy はほぼすべての構文解析に優れているため、Groovy コードを構文解析する方法を検索しても、適切な結果が得られません。そのため、SO コミュニティが役立つことを願っています :-)

Grails ドメイン クラス用のある種の (グラフィカル) エディターを作成したいと考えていますが、車輪の再発明はしたくありません。

リフレクションによってドメイン クラスを検査するのは簡単ですが、さらに一歩進んで、コードを変更してドメイン クラス ファイルとして書き戻したいと考えています。

1 つの問題は、リフレクション (および AST も同様) がすべてのコメントと書式設定を破棄することです (書式設定は大きな問題ではなく、ファイルをきれいに印刷できます)...

自分のアイデアを構築できるグルーヴィーなパーサーを見つけることができるアイデアはありますか?

4

2 に答える 2

9

GroovyDocToolクラスのソースをよく見てください。

GroovyDoc は、GroovyLexer と GroovyRecognizer を使用してクラス テキストを解析し (JavaDoc HTML ファイルと同様の GroovyDoc HTML ドキュメント ファイルを生成します)、これらのクラスを使用して、指定されたソース テキストから AST を作成します。

生成された AST とソース コード テキストは、クラス構造 ( SimpleGroovyClassDocAssemblerを参照) をウォークスルーし、コメントやその他のさまざまなメタデータを抽出して GroovyDoc 固有のデータ構造を満たすために使用されます。

于 2013-01-17T16:26:39.053 に答える
2

ASMがほとんどの作業を行います。...

Groovy Code の追加のクラスは、ASM をラップする可能性があります: -

ビジターが来たら、Groovy API にビルトイン アダプタがあれば、「多かれ少なかれ」簡単なことかもしれません...

于 2013-01-17T01:27:20.913 に答える