suivant: Décompilateur
monter: Structure des données
précédent: Paquets et règles
  Table des matières
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.
suivant: Décompilateur
monter: Structure des données
précédent: Paquets et règles
  Table des matières
Alexandre DAGAN
2000-07-07