Interpreteur de langage personnalisable bis

Description

me voilà de retour avec mon interpréteur, mais légèrement modifier.
Je ne modifie pas le précédent pour la simple raison qu'il ne fonctionne plus pareil.
La carrosserie est identique mais le moteur change.

Suite à une remarque en perso, j'ai voulu intégrer les vieux GOTO, mais aussi BREAK ou NEXT (dans une boucle FOR ou WHILE)
Et là, je ne m'en suis pas sortie avec mon arbre d’interprétation.
Quand il y a un GOTO mais que l'on ne connaît pas encore la destination, ça ne marche pas.
De plus, comment sortir d'une branche de l'arbre pour rejoindre une autre branche.
Il y a surement une façon de faire, mais je me suis plutôt amusé à réécrire mon interpréteur en ajoutant une phase.
Pour reprendre :
1 - on convertis la chaine de caractères en Tokens.
2 - on convertis la liste de tokens en arbre syntaxique.
3 - Et de là, je convertis l'arbre en un bon vieux listing dans le style assembleur avec 13 instructions (voir le fichier texte assembleur.txt)
4 - on interprète ce listing.

Petit avantage, la fonction Pas-à-Pas, avec visualisation de la pile (et autres)

Par contre, le code est plus complexe car je convertis les IF, FOR ou WHILE avec de simples instructions de saut.
Mais ça marche...

Pour le reste, c'est en gros la même chose que celui-ci :
http://www.delphifr.com/codes/INTERPRETEUR-LANGAGE-PERSONNALISABLE_53363.aspx

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.