2009-03-28 6 views
5

Me gustaría analizar fuente REXX para que pueda analizar la estructura del programa desde Java.¿Cómo puedo analizar el código REXX en Java?

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

¿Hay formas más fáciles de hacer esto que escribir una carga de código?

Respuesta

5

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

Más exactamente, javacc construirá las clases Java que permitan:

  • de análisis de código REXX y
  • realidad construye el AST.

Todavía habría "carga de código", pero usted no sería el encargado de escribir las clases para ese analizador de código Rexx. Solo su generación.

1

Tenga una mirada en 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 de árboles mientras se ejecutan en su aplicación. Realmente vale la pena investigar para cualquier tipo de trabajo de análisis.

8

REXX no es un lenguaje fácil de analizar con herramientas comunes, especialmente aquellas 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 palabras reservadas, por lo que la tarea es algo complicada. Cada término que parece una palabra reservada solo se resuelve en su contexto específico (, por ejemplo,, "PULL" solo se reserva como la primera palabra de una instrucción PULL o la segunda palabra de una instrucción PARSE PULL; también puede tener una variable llamado PULL ("PULL = 1 + 2")). Además, hay algunos efectos muy sorprendentes de los comentarios. Pero el ANSI REXX standard tiene la sintaxis completa y todas las reglas.

Cuestiones relacionadas