質問
い構文解析REXXソースできるよう、分析のプログラムの仕組みからJava.
いうnormalise同等の論理構造の源と構文上の異なる、重複した変数の宣言など。とを既に持っているJava。
他の容易なこと書くのに比べ、負荷のコードについて教えてください。
解決
の場合 BNF Rexx文法、そして libdevhelp きの構築 AST (抽象構文ツリー表現のRexxます。
より正確に把握し、libdevhelp構築し、 Javaクラス ます:
- parse Rexxコード
- 実際に構築、AST.
させるという"負荷のコード"がないだろう、私の書き込みクラスがRexxコードのパーサです。みます。
他のヒント
REXXは、一般的なツールとBNF文法を期待している特にを解析するための簡単な言語ではありません。 Cにさらされる人々によって設計されたほとんどの言語とは異なり、REXXは、タスクがやや複雑になって、任意の予約語を持っていません。予約語が実際にのみ、その特定のコンテキスト(の例の、「PULL」で解決されたように見えるすべての用語は、唯一PULL
命令またはPARSE PULL
命令の第2語の最初の単語として予約されている - あなたはまた)PULL(「PULL = 1 + 2
」)と呼ばれる変数を持つことができます。プラスのコメントのいくつかの非常に驚くべき効果があります。しかし、 ANSI REXX標準には、完全な構文とすべてのルールを持っています。
ANTLR に、それは本当にありません、それを変換し、ASTを構築する素敵な作品などを見てください... これは、Javaの上に構築されている素敵なエディタ(ANTLRWorks)を、持っている、と彼らはあなたのアプリケーションで実行しながら、あなたのパーサ/木の歩行者をデバッグすることができます。パースの仕事のあらゆる種類の調査本当に価値ます。