next up previous contents
suivant: Décompilateur monter: Structure des données précédent: Paquets et règles   Table des matières

Types de phrases

Dans notre langage, les phrases peuvent être de trois types : règle, question ou commande. À travers l'exemple précédent, nous avons envisagé la compilation d'une règle. La compilation d'une question se fait de manière similaire au traitement d'une partie droite de règle. C'est d'ailleurs une des raisons pour lesquelles nous avons préféré n'écrire qu'un seul analyseur syntaxique. Le principal écueil consiste à ne pas modifier le programme lorsqu'on analyse une question, et réciproquement. Les points de génération Regle() et Question() sont justement là pour cela. Chacun positionne le pointeur de pointeur terme de telle sorte qu'il n'y ait pas de confusion et que le reste du traitement soit entièrement transparent.
Le traitement des commandes est beaucoup plus simple : un seul point de génération,
Commande(chaine) est mis en jeu. Le symbole spécifiant la commande n'est même pas stocké dans la table. Le nombre de commande étant limité (il n'y a que list et reset), il suffit de comparer chaine à chaque commande possible et, le cas échéant, d'exécuter la routine adéquate.
next up previous contents
suivant: Décompilateur monter: Structure des données précédent: Paquets et règles   Table des matières
Alexandre DAGAN
2000-07-07