suivant: Présentation de l'exemple
monter: Structure des données
précédent: Structure des données
  Table des matières
Pour que les différents points de génération puissent s'échanger des informations, il est
nécessaire d'avoir recours à des variables globales. Nous avons ainsi, notamment, 9 pointeurs (sur
des objets, ou sur d'autres pointeurs) :
- programme pointe sur le premier paquet de règles du programme de l'utilisateur. Lorsque
aucune règle n'est en cours d'analyse, il permet d'accéder à l'ensemble des objets correspondants
au programme (à l'exception des symboles).
- question pointe sur le premier terme de la question en cours de construction. Une fois qu'une
question est construite, il permet d'accéder à l'ensemble des objets correspondants (à l'exception
des symboles).
- symbole pointe sur la table des symboles. La structure de celle-ci sera étudiée plus loin. Pour
l'instant, il suffit de savoir que dernier pointe sur le dernier symbole inséré dans cette table.
- paquet et regle pointent respectivement sur le dernier paquet et la dernière règle
commencés.
- regle_avant pointe sur la règle précédente, afin de pouvoir déterminer le moment
venu si la règle en cours de construction appartient au même paquet que celle-ci.
- terme pointe sur le pointeur au bout duquel le prochain terme devra être placé. Il en va de
même pour noeud en ce qui concerne le prochain n
ud. Un n
ud est associé à chaque symbole,
que ce soit un foncteur (avec ou sans arguments) ou bien une variable ; la distinction s'effectue à
l'aide d'un champ de la structure.
- foncteur pointe sur le sommet d'une pile d'objets de type foncteur_typ. À
chaque fois qu'un foncteur vient s'imbriquer, un nouvel objet est empilé. Il est ainsi possible de
reprendre le chaînage là où il était interrompu (au niveau supérieur) lorsqu'on rencontre une
parenthèse fermante. C'est une sorte de pile de reprise.
Quoi qu'il en soit, les rôles de ces différents pointeurs apparaîtront plus clair au fur et à mesure
du déroulement de l'exemple qui suit.
suivant: Présentation de l'exemple
monter: Structure des données
précédent: Structure des données
  Table des matières
Alexandre DAGAN
2000-07-07