0

ANTLR4 で生成された解析ツリーを保存することはできますか? たとえば、ParseTree またはそのサブクラスをシリアライズ可能にします。

プロジェクトのソース ファイルを解析するために ANTLR4 を使用したいと考えています。私のプロジェクトは非常に大きく、何百ものソース ファイルが含まれています。通常、必要な情報を取得するには、いくつかのソース ファイルの解析ツリーをたどる必要があります。完全な文法は非常に巨大で、たった 1 つのソース ファイルを解析するだけでも時間がかかります。そのため、1 つの情報 (関数の呼び出し元など) を取得するために、ツールを起動するたびにすべてのソース ファイルを再度解析するのは現実的ではありません。一度解析して、パーサーの出力をハードディスクに保存できればいいのですが。

4

1 に答える 1

1

パフォーマンスに問題がある場合は、2 段階の解析戦略を使用していることを確認してください。例として、TWO_STAGE_PARSING次のテストでのフィールドの使用法を見てください。

TestPerformance.java

ANTLR 4 issue trackerParserRuleContextでシリアル化に関するリクエストを行うことができます。

PS: ANTLR (4.0.1) の次のリリースには、追加のパフォーマンス改善も含まれます。

于 2013-04-23T17:31:21.293 に答える