suivant: Structure des données
monter: Le compilateur
précédent: Forme BNF de la
  Table des matières
La grammaire présentée ci-dessus ne fait naturellement pas apparaître les points de génération.
L'insertion de ces derniers ne s'est cependant pas faite sans peine. Le problème est, qu'au niveau de
Yacc, tout ajout de point de génération modifie la grammaire. En effet, Yacc insère à chaque fois un
nouveau symbole non terminal. Ainsi, la grammaire peut (et ne manque pas de) ne plus respecter les
contraintes de Yacc en ce qui concerne le type de grammaire autorisé. Il s'agit alors de ruser,
notamment en changeant subtilement de place les points de génération, sans pour autant changer en
quoi que ce soit l'ordre de parcours désiré. D'une manière générale, il suffit en cas de problème de
les remonter d'un niveau, en écrivant :
session :
suite_de_phrases .
;
suite_de_phrases :
{ Phrase(); } phrase ; suite_de_phrases
| { Phrase(); } phrase
;
et non :
session :
{ Phrase(); } suite_de_phrases .
;
suite_de_phrases :
phrase ; { Phrase(); } suite_de_phrases
| phrase
;
Nous n'étudierons pas plus précisément le placement des différents points de générations. Pour
en savoir plus, il sera nécessaire de se reporter au fichier gloorp.y. En revanche, la section
suivante décrit plus en détails leur fonctionnement, et notamment les structures de données qu'ils
créent.
suivant: Structure des données
monter: Le compilateur
précédent: Forme BNF de la
  Table des matières
Alexandre DAGAN
2000-07-07