Frage

Ich mag REXX Quelle analysieren, so dass ich die Struktur des Programms von Java analysieren kann.

muß ich Dinge wie normalisieren äquivalente logische Strukturen in der Quelle, die syntaktisch verschieden sind, doppelte Variablendeklarationen, usw., und ich habe bereits einen Java-Hintergrund.

einfache Möglichkeiten, dies zu tun, als eine Last von Code zu schreiben?

War es hilfreich?

Lösung

Wenn Sie BNF Rexx Grammatik, dann javacc können Sie eine AST (Abstract Syntax-Baum) Darstellung dieses Rexx Code.

Genauer gesagt, javacc wird die Java-Klassen bauen , das:

  • analysieren Rexx Code und
  • tatsächlich baut den AST.

Es wäre noch „Last-Code“, aber man würde nicht derjenige für diesen Rexx Code Parser tut das Schreiben der Klassen. Nur seine Generation.

Andere Tipps

REXX ist keine einfache Sprache mit üblichen Werkzeugen zu analysieren, vor allem diejenigen, die eine BNF-Grammatik erwarten. Im Gegensatz zu den meisten Sprachen von Menschen C ausgesetzt entworfen, hat REXX haben noch keine reservierten Worte, so dass die Aufgabe etwas kompliziert. Jeder Begriff, der wie ein reserviertes Wort sieht eigentlich nur in seinem spezifischen Kontext gelöst ( zB „PULL“ wird nur als das erste Wort einer PULL Anweisung oder das zweite Wort eines PARSE PULL Befehls reserviert - Sie kann auch eine Variable namens PULL ( "PULL = 1 + 2")) haben. Außerdem gibt es einige sehr überraschende Effekte von Kommentaren. Aber der ANSI REXX Standard hat die vollständige Syntax und alle Regeln.

Hier finden Sie aktuelle ANTLR , tut es wirklich ein schönes Werk eines AST baut, es etc Umwandlung ... Es hat einen schönen Editor (ANTLRWorks) wird auf Java aufgebaut und kann Ihren Parser / Baum Wanderer debuggen, während sie in Ihrer Anwendung ausführen. Wirklich eine Untersuchung wert für jede Art von Job-Parsing.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top