%{ #include using namespace std; extern int yylex(); extern int lineno; void yyerror(char*s); %} %token PLUS TIMES INT CR RPAREN LPAREN %% lines : lines line | line ; line : expr CR ; expr : expr PLUS term | term ; term : term TIMES factor | factor ; factor : LPAREN expr RPAREN | INT ; %% int main() { yyparse(); } void yyerror(char *s) { cout << "Syntax error on line " << lineno << endl; }