%{ #include #include void yyerror(char *txt) { fprintf(stderr, "%s\n", txt); exit(EXIT_FAILURE); } extern int yylex(); %} %left '+' '-' %left '*' '/' %right UMINUS %token NUM %% E: E '+' E | E '-' E | E '*' E | E '/' E | '-' E %prec UMINUS | '(' E ')' | NUM ; %% int main() { yyparse(); return 0; }