私は、コンパイルされていない .java または .txt ファイルを分析する「Java アプリケーションのソース コードの分析」という仕事をしようとしています。この
トピックを作成し、間違った方向に進んでいることを知りました。聞いた限りでは、ANTLRかJavaCCを使うのが一番いいと思っていたのですが、仕組みも使い方もわかりません(JavaCCに割り込めませんでした)。私が使用しているNetbeansで「クラシック」をプログラムできるものを見つけたいと思います。java.lang.reflect を使用することは可能でしょうか (私のトピックでは、コンパイルされたコードでのみ使用できると誰かが書いています)? 「補足」なしで、またはJavaライブラリのみを使用して、これらすべてを作成できる方法はありますか? 貴重なアドバイスをありがとう。私は非常に混乱しており、開始方法がわかりません。
1. ホスト言語アナライザー
の選択、
2. スキャナー (語彙アナライザー) のビルド、
3. パーサー (構文アナライザー) のビルド、
4. 得られた情報を XML 形式で保存、
5.分析されたプロジェクトの UML グラフィック表現。
主な目的はUMLを作成することで、XMLは追加です。
3 に答える
はるかに簡単な解決策は、Java ソースのインポートと図の生成をサポートする UML ツールを入手することです。
あなたの道は困難に満ちています。入力側で立ち往生していますが、グラフィック側についてはまだ考慮していません。抽象的な構文ツリーを作成する方法を理解できたとしても、図を描くのは簡単ではありません。
大まかに言えば、2 つの選択肢があります。
ソース コードを操作する場合は、それらのファイルを解釈できるものを構築し、それらのプログラミング構造のモデルを形成する必要があります。これは些細なことではありません - あなたは基本的にコンパイラの実質的なサブセットを構築しており、ファイルのロード、.jar ファイルへの参照の解決など、多くのハウスキーピングに対処する必要があります。実際にはコンパイルしません。このルートを選択する場合、最善の選択肢は ANTLR です。ウィキや本を読んで、夢中になってください。
別の方法は、コンパイルされたファイル (jar など) を使用することです。リフレクション ツールを使用してコードを解釈できます。これにより、問題が単純化されます。少なくとも、コードがコンパイルされることはわかっており、他の誰かが多くのハウスキーピングを行っています。それはまだ些細なことではありません。
topcasedはあなたに役立つかもしれません、HTH