2009-03-28 2 views
5

私はJavaからプログラムの構造を解析できるようにREXXソースを解析したいと思います。JavaでREXXコードを解析するにはどうすればよいですか?

構文的に異なるソース内の同等の論理構造を正規化したり、重複する変数宣言などを見つけたりするなどの作業が必要です。すでにJavaのバックグラウンドがあります。

コードを読み書きするより簡単な方法はありますか?

答えて

5

あなたはBNF Rexxの文法を持っている場合は、javaccあなたはそのRexxのコードのAST(抽象構文木)表現を構築することができます。

  • 解析のRexxのコードと
  • が実際にASTを構築します。より正確

    、JavaCCのは意志Javaクラスを構築します。

"コードの読み込み"がありますが、そのRexxコードパーサーのクラスの記述を行うことはできません。その世代だけ。

1

ANTLRを見てください、それは本当になどにそれを変換し、ASTを構築するのいい仕事をして... それは素敵なエディタ(ANTLRWorks)が、Javaの上に構築されている、とあなたのパーサ/木の歩行者をデバッグすることができますそれらはアプリケーションで実行されます。どのような種類の解析ジョブでも本当に価値があります。

8

REXXは、一般的なツール、特にBNF文法を期待するものと解析するのは簡単な言語ではありません。 Cに暴露された人々が設計したほとんどの言語とは異なり、REXXには予約語がないため、やや複雑です。予約語のように見えるすべての用語は、実際には特定のコンテキストでのみ解決されます(例:、 "PULL"は命令の最初のワードまたはPARSE PULL命令の第2ワードとして予約されています。 PULL( "PULL = 1 + 2")と呼ばれる)。加えて、コメントのいくつかの非常に驚くべき効果があります。しかし、ANSI REXX standardには完全な構文とすべての規則があります。

関連する問題