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