1264790Sbapt%{ 2264790Sbaptint yylex(void); 3264790Sbaptstatic void yyerror(const char *); 4264790Sbapt%} 5264790Sbapt 6264790Sbapt%union { 7264790Sbapt int ival; 8264790Sbapt double dval; 9264790Sbapt} 10264790Sbapt 11264790Sbapt%union { 12264790Sbapt int ival2; 13264790Sbapt double dval2; 14264790Sbapt} 15264790Sbapt 16264790Sbapt%start expr 17264790Sbapt%type <tag2> expr 18264790Sbapt 19264790Sbapt%token NUMBER 20264790Sbapt 21264790Sbapt%% 22264790Sbapt 23264790Sbaptexpr : '(' recur ')' 24264790Sbapt ; 25264790Sbapt 26264790Sbaptrecur : NUMBER 27264790Sbapt { $$ = 1; } 28264790Sbapt ; 29264790Sbapt 30264790Sbapt%% 31264790Sbapt 32264790Sbapt#include <stdio.h> 33264790Sbapt 34264790Sbaptint 35264790Sbaptmain(void) 36264790Sbapt{ 37264790Sbapt printf("yyparse() = %d\n", yyparse()); 38264790Sbapt return 0; 39264790Sbapt} 40264790Sbapt 41264790Sbaptint 42264790Sbaptyylex(void) 43264790Sbapt{ 44264790Sbapt return -1; 45264790Sbapt} 46264790Sbapt 47264790Sbaptstatic void 48264790Sbaptyyerror(const char* s) 49264790Sbapt{ 50264790Sbapt printf("%s\n", s); 51264790Sbapt} 52