[BASIC] comment "dérouler" les GOTO ???

comment "dérouler" les GOTO ??? [BASIC] - Divers - Programmation

Marsh Posté le 12-03-2003 à 09:28:21    

J'ai un gros gros soucis avec un vieux nanard de programme écrit en Basic.
 
Ce programme, de plus de 3000 lignes, n'est qu'un amas de blocs de codes régis par des labels. Dans presque chaque bloc, j'ai au minimum un goto.
 
J'ai essayé de suivre à la main tout l'acheminement de l'exécution du programme afin de le transcrire en algo romancé (je sais pas si c'est comme ça que l'on dit) mais, devant tant de redirections dans le code, je suis complètement à l'ouest.
 
Y aurait-il un outil déjà tout fait (on peut rêver :heink:) permettant de scanner le contenu d'un code comme celui-ci et qui pourrait réécrire toutes les lignes en fonction des goto ?
 
Sinon, qqun a-t-il une piste pour m'aider sur la manière de faire un programme qui pourrait faire ce boulot ?
 
J'ai beau réfléchir à cette possibilité, je ne suis pas assez "calé" en info pour imaginer comment :
 
- déplier le code intégralement en fonction de chaque appel de goto
- mettre en place une indentation automatique


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Marsh Posté le 12-03-2003 à 09:28:21   

Reply

Marsh Posté le 12-03-2003 à 09:37:44    

c'est pas evident ces histoires...  
t'as des gotos imbriqués dans des tests, dans des boucles, ... je sais même pas si c'est faisable sans interpréter le programme [:sinclaire]

Reply

Marsh Posté le 12-03-2003 à 09:44:17    

lorill a écrit :

c'est pas evident ces histoires...  
t'as des gotos imbriqués dans des tests, dans des boucles, ... je sais même pas si c'est faisable sans interpréter le programme [:sinclaire]  


 
Je peux résumer grosso modo le code comme ceci :
 

Code :
  1. 100    if toto% > 0 then goto 101
  2.        else goto 102
  3. 101    if toto% > 1 then goto 103
  4.        else goto 104
  5. 102    titi% = titi% + toto% -1
  6.        goto 134
  7. 103    ... ...
  8. 104    titi% = titi% + toto% - 2
  9.        goto 152


 
Là, c'est un exemple, c'est pire que ça, franchement pire que ça dans le code d'origine.
 
J'ai passé une journée complète à "suivre" le tracé du code selon 1 cas (ex. toto% > 0), j'en suis arrivé à une bonne cinquantaine de blocs remplis de goto, mon algo romancé contenait 300 lignes de blabla rien que pour ce cas de figure. Il m'a fallu d'une pause de 5 min pour me viander lamentablement et ne plus être capable de savoir d'où j'étais parti  :cry:


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Marsh Posté le 12-03-2003 à 10:07:26    

Bon courage...
J'ai eu le même problème avec un progr de près de 1000 lignes en basic écrit par un mec qui ne connaissait pas l'existence des instructions for next :D
 
Il m'a fallu 3 jours pour me taper l'organigramme papier sur des feuilles de listings, et le résultat devait bien faire 3 m de long.
 
le seul outil que je connaisse est hélas le papier et beaucoup de courage...

Reply

Marsh Posté le 12-03-2003 à 10:18:08    

JPA a écrit :

le seul outil que je connaisse est hélas le papier et beaucoup de courage...

C'est bien ce que je pensais ... c'est un truc impossible à faire en automatique alors  :cry: j'suis pas dans la mouise
 
<MODE GUEULANTE ON>
JE HAIS LES GOTO ET LES GOSUB !!!
<MODE GUEULANTE OFF>
 
Ahhhhhh, ça fait du bien  :D


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed