/* Analyseur syntaxique des expressions arithme'tiques imprime les nume'ros de regles a utiliser avec etf.lex qui reconnait les differents terminaux NUMBER: nombre entier (ne sert pas ici), PARO PARF: parentheses, MULT PLUS multiplication addition , POINTV point virgule, ID identificateur */ %{ #define YYSTYPE int %} %token NUMBER PLUS POINTV MULT PARO PARF ID EGAL %% statement : expression POINTV {printf("regle 0 \n");} ; expression : expression PLUS terme {printf("regle 1 \n");} | terme {printf("regle 2 \n");} ; terme : terme MULT facteur {printf("regle 3 \n");} | facteur {printf("regle 4 \n");} ; facteur : PARO expression PARF {printf("regle 5 \n");} | ID {printf("regle 6 \n");} ; %% #include "lex.yy.c" main() { yyparse(); } yyerror(char *s) { printf ("%s\n",s); }