Dans le cadre de la création d'un compilateur pour un langage quelconque, je dois utiliser lex et yacc, et donc définir la grammaire du langage, en voici un morceau :
Code :
- Declaration : DECLARE Id_statement { printf("Declaration" ); }
- ;
- Id_statement : IDENTIFICATEUR { }
- | Id_statement ',' IDENTIFICATEUR { printf("reconnait plusieurs id" ); }
- ;
|
Comme décrit, une déclaration est définie par le mot clé DECLARE (le token étant défini plus haut) puis suivi d'un ou plusieurs identificateurs (identificateur = [A-Z]) séparés par une virgule. Cela implique donc de faire une récursion à droite en ce qui concerne la déclaration.
Le problème est que quoique je fasse, aucun DECLARE avec plus d'un identificateur à la suite n'est "compris". Alors où est le problème ?
Merci d'avance
---------------
Wigga with Attitude.