5

Java からプログラムの構造を解析できるように、REXX ソースを解析したいと考えています。

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

大量のコードを書くよりも簡単な方法はありますか?

4

3 に答える 3

8

REXX は、一般的なツール、特に BNF 文法を期待するツールで簡単に解析できる言語ではありません。C に触れる人々によって設計されたほとんどの言語とは異なり、REXX には予約語がないため、作業が多少複雑になります。予約語のように見えるすべての用語は、実際にはその特定のコンテキストでのみ解決されます (たとえば、「PULL」は、命令の最初の単語PULLまたは命令の 2 番目の単語としてのみ予約されPARSE PULLています。PULL という変数を使用することもできます (" PULL = 1 + 2"))。さらに、コメントには非常に驚くべき効果がいくつかあります。しかし、ANSI REXX 標準には完全な構文とすべての規則があります。

于 2010-01-01T04:42:34.390 に答える
5

BNF Rexx 文法を使用している場合、 javaccはその Rexx コードのAST (Abstract Syntax Tree) 表現を構築するのに役立ちます。

より正確には、javacc は次のようなJava クラスを構築します。

  • Rexx コードを解析し、
  • 実際にASTを構築します。

「コードのロード」は依然として存在しますが、その Rexx コード パーサーのクラスを作成するのはあなたではありません。その世代のみ。

于 2009-03-28T22:45:38.460 に答える
2

ANTLRを見てください。AST の構築、変換などの素晴らしい作業を実際に行います...素晴らしいエディター (ANTLRWorks) を備えており、Java 上に構築されており、パーサー / ツリー ウォーカーを実行中にデバッグできます。応用。あらゆる種類の解析ジョブについて調査する価値があります。

于 2009-03-28T23:51:59.440 に答える