Bonjour à tous
Voilà, je vous expose mon problème.
Je souhaite créer un programme ADA qui permette de traduire du pseudo-code (un langage algorithmique "en français") en un programme ADA.
Pour cela, j'ai déjà un fichier "algo.txt" qui comporte mon algo, ainsi qu'un fichier "prog.adb" qui va contenir le code source de mon programme.
Voilà le comportement que je souhaite reproduire :
ex :
Contenu de algo.txt :
""
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Si a>b alors faire a <-c FSi
et voilà ce que je souhaite obtenir au final dans mon fichier "prog.adb" :
(Note : je me limite pour l'instant à cette partie du travail, l'inclusion des bibliothèques et l' "enrobage du code" viendra par après).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 IF a>b then a := c ; END IF;
J'ai déjà quelques idées, fondées sur un code comme celui-ci :
Bon évidemment ça ne marche pas, mais j'essaie d'en résumer l'idée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 WHILE NOT End_Of_File(FicOri) LOOP Get_Line(FichierAlgot, Mot, Last); IF (Mot = "if") THEN Put_Line(FicDest, "si "); end if; END LOOP;
En gros "Si je rencontre le mot "si" dans mon fichier TXT, alors j'écris à la même position le mot "if" dans mon fichier ADB. Je compte faire pareil en extension mais pour des mots genre "pour" (for), "tantque" (while), etc.
Sachant que les autres mots (ex, nom des variables, opérateurs de comparaisons) ne seront pas remplacés.
En réalité, je ne sais pas comment m'y prendre pour faire ça (je débute en ADA). Et j'ai bien du mal à trouver de la documentation qui traite concrètement de ce genre de problématique.
Partager