Domanda

Mi piacerebbe analizzare fonte REXX in modo che possa analizzare la struttura del programma da Java.

ho bisogno di fare le cose come strutture logiche normalizzare equivalenti nella fonte che sono sintatticamente diverse, trovare dichiarazioni di variabili duplicati, ecc e ho già un fondo Java.

Qualsiasi modi più facili per fare questo che scrivere un carico di codice?

È stato utile?

Soluzione

Se hai BNF Rexx grammatica, quindi JavaCC può aiutare a costruire un AST (Abstract Syntax Tree) rappresentazione di quel codice Rexx.

Più precisamente, JavaCC costruirà classi Java che sarà:

  • analizzare il codice Rexx e
  • in realtà costruisce l'AST.

Non ci sarebbe ancora "carico di codice", ma non sarebbe di essere quello che fa la scrittura delle classi per quel codice Rexx parser. Solo la sua generazione.

Altri suggerimenti

REXX non è una lingua facile da analizzare con strumenti comuni, in particolare quelli che si aspettano una grammatica BNF. A differenza di molti linguaggi progettati da persone esposte a C, REXX non ha parole riservate, rendendo il compito un po 'complicato. Ogni termine che assomiglia a una parola riservata è in realtà risolta solo nel suo contesto specifico ( es , "pull" è riservato solo come la prima parola di un'istruzione PULL o la seconda parola di un'istruzione PARSE PULL - si può anche avere un PULL variabile chiamata ( "PULL = 1 + 2")). In più ci sono alcuni effetti molto sorprendenti di commenti. Ma la ANSI REXX serie ha la sintassi completa e tutte le regole.

Dai un'occhiata alla ANTLR , in realtà fa un bel lavoro di costruzione di un AST, trasformandola ecc ... Ha una bella Editor (ANTLRWorks), è costruito su Java, e può eseguire il debug escursionisti parser / albero mentre corrono nell'applicazione. Vale davvero la pena indagare per qualsiasi tipo di analisi del lavoro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top