Pregunta

Me gustaría analizar la fuente de REXX para que pueda analizar la estructura del programa de Java.

tengo que hacer las cosas como las estructuras lógicas normalizar equivalentes en la fuente que son sintácticamente diferentes, encontrar declaraciones de variables duplicados, etc y ya tengo un fondo de Java.

Cualquier maneras más fáciles de hacer esto que escribir un montón de código?

¿Fue útil?

Solución

Si usted tiene BNF Rexx gramática, a continuación, javacc puede ayudarle a construir una AST (árbol de sintaxis abstracta) la representación de ese código REXX.

Más exactamente, javacc construirá los clases de Java , que hará lo siguiente:

  • analizar código y Rexx
  • realidad construye el AST.

todavía habría "carga de código", pero no habría de ser el que hace la escritura de las clases para ese código de Rexx analizador. Sólo su generación.

Otros consejos

REXX no es una lengua fácil de analizar con herramientas comunes, especialmente aquellos que esperan una gramática BNF. A diferencia de la mayoría de los lenguajes diseñados por personas expuestas a C, REXX no tiene ningún palabras reservadas, por lo que la tarea un tanto complicada. Cada término que se parece a una palabra reservada es en realidad sólo se resolvió en su contexto específico ( por ejemplo, , "PULL" está reservado únicamente como la primera palabra de una instrucción PULL o la segunda palabra de una instrucción PARSE PULL - te también puede tener una variable llamada tracción ( "PULL = 1 + 2")). Además, hay algunos efectos muy sorprendentes de los comentarios. Pero el ANSI REXX estándar tiene la sintaxis completa y todas las reglas.

Tener un vistazo a antlr , lo que realmente hace un buen trabajo de construir un AST, transformándolo etc. ... Tiene un buen editor (ANTLRWorks), se basa en Java, y puede depurar los caminantes analizador / árboles mientras se ejecutan en su aplicación. Realmente vale la pena investigar para cualquier tipo de análisis de trabajo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top