%{ int yylex(void); static void yyerror(const char *); %} %union { int ival; double dval; } %start expr %type expr %token NUMBER %% expr : '(' recur ')' ; recur : NUMBER { $$ = 1; } ; %% #include int main(void) { printf("yyparse() = %d\n", yyparse()); return 0; } int yylex(void) { return -1; } static void yyerror(const char* s) { printf("%s\n", s); }