1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
%{#include <stdlib.h>
#include <stdio.h>
#define YYSTYPE double%}
%token entier reel
%start axiome
%%
axiome :expression {printf("%3.1lf/t",$1);}
;
expression :terme {$$=$1;}
|expression'+'terme {$$=$1+$3;}
|expression'-'terme {$$=$1-$3;}
;
terme :facteur
|terme'*'facteur {$$=$1*$3;}
|terme'/'facteur {$$=$1/$3;}
;
facteur :entier {$$=$1;}
|reel {$$=$1;}
|'('expression')'{$$=$2;}
;
%%
#include "lex.yy.c"
yyerror(char *s){printf("%s\t",s);}
main() {yyparse();} |
Partager