%{ #define YYERROR_VERBOSE void yyerror(char *); %} %verbose %token '(' ')' ID ILLEGAL_CHAR %nonassoc '<' '>' EQ LE GE NE %left '+' '-' %left '*' '/' %% e: e '*' e | e '/' e | e '+' e | e '-' e | e '<' e | e '>' e | e EQ e | e LE e | e GE e | e NE e | '(' e ')' | ID ; %% void yyerror(char *msg) { printf("\n%s\n", msg); } int main() { return yyparse(); }