|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() |
Bonjour,
je suis actuellement en stage dans une SSII. Le but de mon projet est de réaliser un logiciel java qui vérifie la validité des normes dans les sources Cobol (exemple: la bonne indentation du programme). Je cherche actuellement comment parcourir facilement des sources en évitant de passer par du ligne à ligne. La proposition du début de stage était de travailler sur les sources libres de checkstyle( permet de vérifier qu'un programme java est bien écrit), et de le transposer sur des sources Cobol. Checkstyle utilise antlr qui permet de générer un parseur à partir d'une grammaire. le problème est que je n'ai trouver aucune grammaire Cobol viable. J'ai essayer d'extraire une grammaire utiliser dans le projet koopa, mais cela s'avère trop difficile. En effet il utilise beaucoup de grammaire, et génère bizarrement et n'a aucune documentation, même pas javadoc. Enfin, résolution des grammaire n'est pas concluante. Le but de mon projet est de réaliser un socle permettant à des programmeur cobol connaissant en partie java( pas expert ) de pouvoir ajout de nouvelle testeur de norme facilement. Pour cette raison j'aimerais éviter qu'il ai à travailler ligne par ligne. Si vous pouvez m'aider, voir me donner une direction à suivre. Je suis en stage depuis 1 semaine. Le projet doit être aboutis fin aout. J'espère que j'ai été assez clair dans mes explications. Merci de votre aide. Lauric |
|
|
00
|
|
|
#2 | |||||
|
Expert Confirmé
![]() Inscription : décembre 2007 Messages : 1 903 ![]() |
Citation:
J'ai du mal avec ce point là : que veux-tu dire par "en évitant de passer par du ligne à ligne"? Typiquement, nombre de normes de développements(et spécialement les indentation), sont dépendantes des lignes les unes par rapport aux autres. Par exemple : Code :
Ta deuxième difficulté, c'est le point. Code :
En d'autre termes, le point sert de scope terminator à tout ce qui suit. Troisième difficulté, le cas spécifique du PERFORM, mot à tout faire du COBOL. Quelques exemples, non exhaustifs : PERFORM Z6 : executer le paragraphe Z6, et revenir dès que l'on atteint le paragraphe Z5 PERFORM Z6 THRU Z9 : executer tous les paragraphes compris entre Z5 et Z9(ce qu'il y a dans Z9 n'étant pas executé) PERFORM Z6 UNTIL FIN-FICHIER executer le paragraphe Z6 tant que FIN-FICHIER est faux. PERFORM UNTIL FIN-FICHIER : tant que FIN-FICHIER est faux, executer le code entre le perform et le end-perform..... Bon courage, en tous cas.
__________________
Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten : 1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception 2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences 3)le temps de comprendre toutes les exigences, le projet est terminé 4)le temps de terminer le projet, les exigences ont changé Et le serment de non-allégiance : Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée. |
|||||
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : octobre 2008 Messages : 37 ![]() |
Bonjour,
Utilise Koopa! Etant donné le temps que tu as, je pense que le mieux pour toi est d'utiliser directement Koopa. Il parse les programmes et ensuite te permet de faire des requêtes Xpath sur le xml résultant. Par exemple, si tu as une règle qui définit le format du nom du programme par une expression régulière. Avec Koopa, il suffit de récupérer le nom du programme par une requête Xpath (dans la doc : //compilationUnit//programName) et ensuite vérifier que le résultat respecte le format du nom de programme. Dans ce cas, ça oblige la personne qui écrit la règle à connaitre Xpath et Java. L'idéal serait d'interroger le xml généré par Koopa en Xquery. Comme ça, pour définir une règle il suffirait de la définir par Xquery sans aucun code Java. |
|
|
00
|
|
|
#4 |
|
Membre à l'essai
![]() |
El_slapper: en fait je cherchais si il y avais une autre solution, mais je vais passé par du ligne à ligne, et réaliser la validation des normes à l'aide des régex.
Merci pour la deuxième difficulté, je n'y aurais peut être pas pensé. Ekans: Comme dit dans mon premier post, pendant un temps j'ai essayer d'extraire la grammaire de koopa, sans réussite.. Pour ma part j'ai eu quelque difficulté à utiliser koopa, et surtout je ne vois pas comment l'inclure dans mon code. Mais surtout mon élément déterminant, est que en testant le visualiseur de koopa sur des sources cobol, j'ai remarqué qu'il loupais des mots clé. hors je ne peux me le permettre, quite à prendre un peu plus de temps. Merci quand même, je mettrais peut être des avancé sur ce post, ou d'autre question. Bonne Journée |
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : octobre 2008 Messages : 37 ![]() |
Bon courage alors.
![]() Mais attention, sauf si tes règles sont simples, tu risques d'être rapidement limité au niveau des règles que tu pourras vérifier si tu n'as pas de parser cobol. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com