/* Analyseur syntaxique des expressions parenthèsées imprime la hauteur des parenthèses a utiliser avec exo2-1.lex qui reconnait les differents terminaux PARA PARB: parentheses de type (), POINTV point virgule */ %{ #define YYSTYPE char* int hauteur = 0; %} %token POINTV PARA PARB %% statement : expression POINTV {printf("\n");} ; expression : ouvrir expression fermer expression | ouvrir expression fermer | ouvrir fermer expression | ouvrir fermer ; ouvrir : PARA { hauteur++; if (hauteur>1) printf("%s", $1); else printf("c"); } ; fermer : PARB { hauteur--; if (hauteur>0) printf("%s", $1); else printf("d"); } ; %% #include "lex.yy.c" main() { yyparse(); } yyerror(char *s) { printf ("%s\n",s); }