Page précédente Page suivante Table des matières

3. L'analyse grammaticale avec Yacc

Pour les puristes : Yacc (Yet Another Compiler Compiler) est un programme destiné à compiler une grammaire du type LALR(1) et à produire le texte source d'un analyseur syntaxique du langage engendré par cette grammaire. Il est aussi possible, en plus de la vérification de la syntaxe de la grammaire, de lui faire effectuer des actions sémantiques.

De la même manière que pour un fichier Lex, un fichier Yacc se compose de trois parties, de cette façon :

declarations
%%
productions
%%
code additionnel
seul le premier séparateur %% et la deuxième partie étant obligatoires.

3.1 La première partie d'un fichier Yacc

La première partie d'un fichier Yacc peut contenir :

La variable yylval, déclarée implicitement du type de %union a une importance fondamentale dans le fichier, puisque celle-ci contient la description du dernier terminal lu.

3.2 La deuxième partie d'un fichier Yacc

Cette partie, qui ne peut pas être vide, contient :

Et enfin, on trouve...

3.3 La troisième partie d'un fichier Yacc

Cette partie, qui comporte le code additionnel, devra obligatoirement comporter une déclaration du main() (qui devra appeler la fonction yyparse()), et de la fonction yyerror(char *message), appelée lorsqu'une erreur de syntaxe est trouvée.

3.4 Conclusion sur Yacc

Ici aussi, nous sommes loin d'avoir fait le tour de Yacc, et je ne t'ai d'ailleurs pas tout expliqué. Nous allons préciser certains points dans l'exemple qui va suivre.


Page précédente Page suivante Table des matières