%{ #include int yylex(void); void yyerror(char *); %} %token INTEGER %% program: program expr '\n' {printf("%d\n",$2);} | ; expr: INTEGER {$$ = $1;} | expr '+' expr {$$ = $1 + $3;} | expr '-' expr {$$ = $1 -$3;} | expr '*' expr {$$ = $1 * $3;} | expr '/' expr { if($3 == 0){ yyerror("Getting Zero");} else{ $$ = $1 / $3;}} ; %% void yyerror(char *S) { fprintf(stderr,"%s\n",S); }