1 %{ 2 int yylex(void); 3 static void yyerror(const char *); 4 %} 5 6 %union { 7 int ival; 8 double dval; 9 } 10 11 %start expr 12 %type <tag2> expr 13 14 %token NUMBER 15 16 %% 17 18 expr : '(' recur ')' 19 ; 20 21 recur : NUMBER 22 { $$ = 1; } 23 ; 24 25 %% 26 27 #include <stdio.h> 28 29 int 30 main(void) 31 { 32 printf("yyparse() = %d\n", yyparse()); 33 return 0; 34 } 35 36 int 37 yylex(void) 38 { 39 return -1; 40 } 41 42 static void 43 yyerror(const char* s) 44 { 45 printf("%s\n", s); 46 } 47