2009-11-04 4 views

Répondre

8

Construire un analyseur complet soufflé pour copybooks COBOL a quelques défis:

sont incorporés dans Cahiers des programmes COBOL lors de la phase de manipulation de texte de compilation. La source du copybook peut être incomplète. La seule façon d'obtenir une source complète pour l'analyse est de le pré-traiter comme s'il avait été introduit dans un programme COBOL. Normalement, les copybooks sont introduits dans un programme COBOL via la directive COPY. Cela peut sembler un peu inutile, mais considérez ce qui suit:

1) La directive COPY est fournie avec une option REMPLACEMENT. En surface, cela peut sembler assez simple à traiter, mais une fois que vous entrez dans les détails, cela devient très "intéressant". Voir: COPY DIRECTIVE

2) La directive REPLACE. Cette directive peut également manipuler le texte source après que la directive COPY a exécuté son bit. Voir: REPLACE DIRECTIVE

3) Les copybooks imbriqués. Celui-ci ne peut pas être aussi désagréable que les deux précédents, mais gardez aussi en tête la nidification.

4) La syntaxe de COBOL Picture strings est à noter. Jetez un oeil à: Picture String Symbols

5) Votre analyseur devra également gérer les règles de continuité COBOL. Voir: Continuation Lines, et la poursuite de PSEUDO TEXT en particulier. Je ne veux pas vous décourager, mais analyser COBOL n'est pas une tâche triviale. Par contre, si vos cahiers ont une structure simple, comme c'est souvent le cas, il est possible de faire cela en utilisant une cascade d'expressions régulières. Cette approche est assez courante parmi ceux qui ont besoin d'analyser les programmes COBOL (et les copybooks) sur les projets de rénovation de logiciels. Peut-être un coup d'oeil à: RegReg

... Vive

+0

Ce dont vous avez besoin est un frontal complet de l'analyseur COBOL pour le faire correctement. Voir http://www.semanticdesigns.com/Products/FrontEnds/COBOLFrontEnd.html –

2

Il ya longtemps, j'ai construit du code pour analyser le copybook COBOL et générer des fichiers XSD. Comme la structure du langage COBOL est assez régulière, j'ai créé une expression régulière pour obtenir des noms de variables et pour identifier les longueurs de champs. Avec cette structure analysée, je pourrais également créer des données de test XML, du code DOM MSXML pour manipuler cette structure et des formulaires HTML pour tester ces transactions IMS.

Conclusion: les expressions régulières peuvent être très utiles pour cela.

+0

merci pour l'indice regex – lemotdit

0

Rational Developer for Z, XML Thunder Syncsort ... il y a ETL de nombreux produits qui le fera. Vraiment cependant, si vous apprenez les règles des types de données de schéma, vous pouvez le faire très facilement manuellement. La plupart du temps, vous devrez utiliser xsd: string, xsd: decimal, xsd: integer et quelques variantes de xsd: date pour correspondre à votre copybook Cobol.

1

Vous pouvez essayer mon projet Koopa Cobol parser. Bien qu'il ne fasse pas de pré-traitement, j'ai trouvé que pour la plupart des copybooks ce n'est pas vraiment nécessaire. Il devrait couvrir la plupart de ce que vous attendez d'un cahier standard, et sinon vous pouvez toujours étendre l'analyseur. Il peut exporter l'arborescence d'analyse en XML, que vous pouvez ensuite traiter comme vous le souhaitez.

0

Ensuite, il y a la clause REDEFINES qui est utilisée pour redéfinir un ensemble donné d'octets contigus de différentes manières. Puis la clause OCCURS qui est une implémentation de la longueur fixe des tableaux et la clause OCCURS DEPENDING ON pour les tableaux de longueur variable.

Ainsi, NealB a raison; c'est pas une tâche triviale.