2009-11-04 31 views

Respuesta

8

La construcción de un analizador completo soplado para cuadernos COBOL tiene unos retos:

Cuadernos se incorporan en programas COBOL durante la fase de manipulación de texto de compilación. La fuente del cuaderno por sí misma puede estar incompleta. La única forma de obtener una fuente completa para el análisis es preprocesándola como si se hubiera ingresado en un programa de software COBOL. Normalmente los cuadernos se llevan a un programa COBOL a través de la directiva COPY. Tocando el tema puede parecer un poco inútil, pero tenga en cuenta lo siguiente:

1) La Directiva COPIA viene con una opción SUSTITUCIÓN. En la superficie esto puede parecer lo suficientemente simple como para tratar, pero una vez que entres en los detalles se vuelve muy "interesante". Ver: COPY DIRECTIVE

2) La Directiva sustituyen. Esta directiva también puede manipular el texto fuente después de que la directiva COPY haya cumplido su parte. Ver: REPLACE DIRECTIVE

3) cuadernos anidadas. Este puede no ser tan desagradable como los dos anteriores, pero también tiene en cuenta la anidación.

4) La sintaxis de las cadenas de imagen de COBOL también se ríe. Eche un vistazo a: Picture String Symbols

5) Su analizador también tendrá que lidiar con las reglas de continuación de COBOL. Ver: Continuation Lines, y la continuación de PSEUDO TEXT en particular.

no quiero desanimarte, pero el análisis de COBOL no es una tarea trivial.

Por el lado positivo, si sus cuadernos tienen una estructura sencilla, como muchos lo hacen, es posible hacer esto usando una cascada de expresiones regulares. Este enfoque es bastante común entre aquellos que necesitan analizar los programas COBOL (y cuadernos) en proyectos de renovación de software. Tal vez echar un vistazo a: RegReg

Saludos ...

+0

Lo que necesita es un analizador de COBOL completo para hacer esto bien. Ver http://www.semanticdesigns.com/Products/FrontEnds/COBOLFrontEnd.html –

2

Hace mucho tiempo, construí un código para analizar el cuaderno COBOL y generar archivos XSD.

Dado que la estructura del lenguaje COBOL es bastante regular, lo hacen a mano con una expresión regular para obtener los nombres de variables e identificar longitudes de campo. Con esa estructura analizada, también pude crear datos de prueba XML, código MSXML DOM para manipular esa estructura y formularios HTML para probar esas transacciones IMS.

En pocas palabras: las expresiones regulares podrían ser realmente útiles para hacer eso.

+0

gracias por la sugerencia de expresión regular – lemotdit

0

Rational Developer para Z, XML trueno, Syncsort ETL ... hay muchos productos que lo hará.

Realmente sin embargo, si usted aprende las reglas de tipos de datos de esquema, puede hacerlo muy fácilmente de forma manual. Principalmente, tratará con xsd: string, xsd: decimal, xsd: integer y algunos sabores de xsd: date para que coincida con su cuaderno de Cobol.

1

Puedes probar mi proyecto Koopa Cobol parser. Si bien no tiene preprocesamiento, descubrí que para la mayoría de los cuadernos esto no es realmente necesario. Debe cubrir la mayor parte de lo que esperaría de un cuaderno estándar, y si no, siempre puede extender el analizador. Puede exportar el árbol de análisis sintáctico a XML, que luego puede procesar de la manera que desee.

0

Luego está la cláusula REDEFINES que se usa para redefinir un conjunto dado de bytes contiguos de diferentes maneras. Luego, la cláusula OCCURS que es una implementación de arreglos de longitud fija y la cláusula OCCURS DEPENDING ON para arreglos de longitud variable.

Entonces, NealB tiene razón; esto es no una tarea trivial.