1*0c8de5b0SBaptiste Daroussin /* original parser id follows */ 2*0c8de5b0SBaptiste Daroussin /* yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93" */ 3*0c8de5b0SBaptiste Daroussin /* (use YYMAJOR/YYMINOR for ifdefs dependent on parser version) */ 4*0c8de5b0SBaptiste Daroussin 5*0c8de5b0SBaptiste Daroussin #define YYBYACC 1 6*0c8de5b0SBaptiste Daroussin #define YYMAJOR 1 7*0c8de5b0SBaptiste Daroussin #define YYMINOR 9 8*0c8de5b0SBaptiste Daroussin #define YYCHECK "yyyymmdd" 9*0c8de5b0SBaptiste Daroussin 10*0c8de5b0SBaptiste Daroussin #define YYEMPTY (-1) 11*0c8de5b0SBaptiste Daroussin #define yyclearin (yychar = YYEMPTY) 12*0c8de5b0SBaptiste Daroussin #define yyerrok (yyerrflag = 0) 13*0c8de5b0SBaptiste Daroussin #define YYRECOVERING() (yyerrflag != 0) 14*0c8de5b0SBaptiste Daroussin #define YYENOMEM (-2) 15*0c8de5b0SBaptiste Daroussin #define YYEOF 0 16*0c8de5b0SBaptiste Daroussin 17*0c8de5b0SBaptiste Daroussin #ifndef yyparse 18*0c8de5b0SBaptiste Daroussin #define yyparse err_syntax20_parse 19*0c8de5b0SBaptiste Daroussin #endif /* yyparse */ 20*0c8de5b0SBaptiste Daroussin 21*0c8de5b0SBaptiste Daroussin #ifndef yylex 22*0c8de5b0SBaptiste Daroussin #define yylex err_syntax20_lex 23*0c8de5b0SBaptiste Daroussin #endif /* yylex */ 24*0c8de5b0SBaptiste Daroussin 25*0c8de5b0SBaptiste Daroussin #ifndef yyerror 26*0c8de5b0SBaptiste Daroussin #define yyerror err_syntax20_error 27*0c8de5b0SBaptiste Daroussin #endif /* yyerror */ 28*0c8de5b0SBaptiste Daroussin 29*0c8de5b0SBaptiste Daroussin #ifndef yychar 30*0c8de5b0SBaptiste Daroussin #define yychar err_syntax20_char 31*0c8de5b0SBaptiste Daroussin #endif /* yychar */ 32*0c8de5b0SBaptiste Daroussin 33*0c8de5b0SBaptiste Daroussin #ifndef yyval 34*0c8de5b0SBaptiste Daroussin #define yyval err_syntax20_val 35*0c8de5b0SBaptiste Daroussin #endif /* yyval */ 36*0c8de5b0SBaptiste Daroussin 37*0c8de5b0SBaptiste Daroussin #ifndef yylval 38*0c8de5b0SBaptiste Daroussin #define yylval err_syntax20_lval 39*0c8de5b0SBaptiste Daroussin #endif /* yylval */ 40*0c8de5b0SBaptiste Daroussin 41*0c8de5b0SBaptiste Daroussin #ifndef yydebug 42*0c8de5b0SBaptiste Daroussin #define yydebug err_syntax20_debug 43*0c8de5b0SBaptiste Daroussin #endif /* yydebug */ 44*0c8de5b0SBaptiste Daroussin 45*0c8de5b0SBaptiste Daroussin #ifndef yynerrs 46*0c8de5b0SBaptiste Daroussin #define yynerrs err_syntax20_nerrs 47*0c8de5b0SBaptiste Daroussin #endif /* yynerrs */ 48*0c8de5b0SBaptiste Daroussin 49*0c8de5b0SBaptiste Daroussin #ifndef yyerrflag 50*0c8de5b0SBaptiste Daroussin #define yyerrflag err_syntax20_errflag 51*0c8de5b0SBaptiste Daroussin #endif /* yyerrflag */ 52*0c8de5b0SBaptiste Daroussin 53*0c8de5b0SBaptiste Daroussin #ifndef yylhs 54*0c8de5b0SBaptiste Daroussin #define yylhs err_syntax20_lhs 55*0c8de5b0SBaptiste Daroussin #endif /* yylhs */ 56*0c8de5b0SBaptiste Daroussin 57*0c8de5b0SBaptiste Daroussin #ifndef yylen 58*0c8de5b0SBaptiste Daroussin #define yylen err_syntax20_len 59*0c8de5b0SBaptiste Daroussin #endif /* yylen */ 60*0c8de5b0SBaptiste Daroussin 61*0c8de5b0SBaptiste Daroussin #ifndef yydefred 62*0c8de5b0SBaptiste Daroussin #define yydefred err_syntax20_defred 63*0c8de5b0SBaptiste Daroussin #endif /* yydefred */ 64*0c8de5b0SBaptiste Daroussin 65*0c8de5b0SBaptiste Daroussin #ifndef yydgoto 66*0c8de5b0SBaptiste Daroussin #define yydgoto err_syntax20_dgoto 67*0c8de5b0SBaptiste Daroussin #endif /* yydgoto */ 68*0c8de5b0SBaptiste Daroussin 69*0c8de5b0SBaptiste Daroussin #ifndef yysindex 70*0c8de5b0SBaptiste Daroussin #define yysindex err_syntax20_sindex 71*0c8de5b0SBaptiste Daroussin #endif /* yysindex */ 72*0c8de5b0SBaptiste Daroussin 73*0c8de5b0SBaptiste Daroussin #ifndef yyrindex 74*0c8de5b0SBaptiste Daroussin #define yyrindex err_syntax20_rindex 75*0c8de5b0SBaptiste Daroussin #endif /* yyrindex */ 76*0c8de5b0SBaptiste Daroussin 77*0c8de5b0SBaptiste Daroussin #ifndef yygindex 78*0c8de5b0SBaptiste Daroussin #define yygindex err_syntax20_gindex 79*0c8de5b0SBaptiste Daroussin #endif /* yygindex */ 80*0c8de5b0SBaptiste Daroussin 81*0c8de5b0SBaptiste Daroussin #ifndef yytable 82*0c8de5b0SBaptiste Daroussin #define yytable err_syntax20_table 83*0c8de5b0SBaptiste Daroussin #endif /* yytable */ 84*0c8de5b0SBaptiste Daroussin 85*0c8de5b0SBaptiste Daroussin #ifndef yycheck 86*0c8de5b0SBaptiste Daroussin #define yycheck err_syntax20_check 87*0c8de5b0SBaptiste Daroussin #endif /* yycheck */ 88*0c8de5b0SBaptiste Daroussin 89*0c8de5b0SBaptiste Daroussin #ifndef yyname 90*0c8de5b0SBaptiste Daroussin #define yyname err_syntax20_name 91*0c8de5b0SBaptiste Daroussin #endif /* yyname */ 92*0c8de5b0SBaptiste Daroussin 93*0c8de5b0SBaptiste Daroussin #ifndef yyrule 94*0c8de5b0SBaptiste Daroussin #define yyrule err_syntax20_rule 95*0c8de5b0SBaptiste Daroussin #endif /* yyrule */ 96*0c8de5b0SBaptiste Daroussin #define YYPREFIX "err_syntax20_" 97*0c8de5b0SBaptiste Daroussin 98*0c8de5b0SBaptiste Daroussin #define YYPURE 0 99*0c8de5b0SBaptiste Daroussin 100*0c8de5b0SBaptiste Daroussin #line 2 "err_syntax20.y" 101*0c8de5b0SBaptiste Daroussin int yylex(void); 102*0c8de5b0SBaptiste Daroussin static void yyerror(const char *); 103*0c8de5b0SBaptiste Daroussin #line 104 "err_syntax20.tab.c" 104*0c8de5b0SBaptiste Daroussin 105*0c8de5b0SBaptiste Daroussin /* compatibility with bison */ 106*0c8de5b0SBaptiste Daroussin #ifdef YYPARSE_PARAM 107*0c8de5b0SBaptiste Daroussin /* compatibility with FreeBSD */ 108*0c8de5b0SBaptiste Daroussin # ifdef YYPARSE_PARAM_TYPE 109*0c8de5b0SBaptiste Daroussin # define YYPARSE_DECL() yyparse(YYPARSE_PARAM_TYPE YYPARSE_PARAM) 110*0c8de5b0SBaptiste Daroussin # else 111*0c8de5b0SBaptiste Daroussin # define YYPARSE_DECL() yyparse(void *YYPARSE_PARAM) 112*0c8de5b0SBaptiste Daroussin # endif 113*0c8de5b0SBaptiste Daroussin #else 114*0c8de5b0SBaptiste Daroussin # define YYPARSE_DECL() yyparse(void) 115*0c8de5b0SBaptiste Daroussin #endif 116*0c8de5b0SBaptiste Daroussin 117*0c8de5b0SBaptiste Daroussin /* Parameters sent to lex. */ 118*0c8de5b0SBaptiste Daroussin #ifdef YYLEX_PARAM 119*0c8de5b0SBaptiste Daroussin # define YYLEX_DECL() yylex(void *YYLEX_PARAM) 120*0c8de5b0SBaptiste Daroussin # define YYLEX yylex(YYLEX_PARAM) 121*0c8de5b0SBaptiste Daroussin #else 122*0c8de5b0SBaptiste Daroussin # define YYLEX_DECL() yylex(void) 123*0c8de5b0SBaptiste Daroussin # define YYLEX yylex() 124*0c8de5b0SBaptiste Daroussin #endif 125*0c8de5b0SBaptiste Daroussin 126*0c8de5b0SBaptiste Daroussin /* Parameters sent to yyerror. */ 127*0c8de5b0SBaptiste Daroussin #ifndef YYERROR_DECL 128*0c8de5b0SBaptiste Daroussin #define YYERROR_DECL() yyerror(const char *s) 129*0c8de5b0SBaptiste Daroussin #endif 130*0c8de5b0SBaptiste Daroussin #ifndef YYERROR_CALL 131*0c8de5b0SBaptiste Daroussin #define YYERROR_CALL(msg) yyerror(msg) 132*0c8de5b0SBaptiste Daroussin #endif 133*0c8de5b0SBaptiste Daroussin 134*0c8de5b0SBaptiste Daroussin extern int YYPARSE_DECL(); 135*0c8de5b0SBaptiste Daroussin 136*0c8de5b0SBaptiste Daroussin #define recur 257 137*0c8de5b0SBaptiste Daroussin #define YYERRCODE 256 138*0c8de5b0SBaptiste Daroussin typedef short YYINT; 139*0c8de5b0SBaptiste Daroussin static const YYINT err_syntax20_lhs[] = { -1, 140*0c8de5b0SBaptiste Daroussin 0, 141*0c8de5b0SBaptiste Daroussin }; 142*0c8de5b0SBaptiste Daroussin static const YYINT err_syntax20_len[] = { 2, 143*0c8de5b0SBaptiste Daroussin 3, 144*0c8de5b0SBaptiste Daroussin }; 145*0c8de5b0SBaptiste Daroussin static const YYINT err_syntax20_defred[] = { 0, 146*0c8de5b0SBaptiste Daroussin 0, 0, 0, 1, 147*0c8de5b0SBaptiste Daroussin }; 148*0c8de5b0SBaptiste Daroussin static const YYINT err_syntax20_dgoto[] = { 2, 149*0c8de5b0SBaptiste Daroussin }; 150*0c8de5b0SBaptiste Daroussin static const YYINT err_syntax20_sindex[] = { -40, 151*0c8de5b0SBaptiste Daroussin -256, 0, -39, 0, 152*0c8de5b0SBaptiste Daroussin }; 153*0c8de5b0SBaptiste Daroussin static const YYINT err_syntax20_rindex[] = { 0, 154*0c8de5b0SBaptiste Daroussin 0, 0, 0, 0, 155*0c8de5b0SBaptiste Daroussin }; 156*0c8de5b0SBaptiste Daroussin static const YYINT err_syntax20_gindex[] = { 0, 157*0c8de5b0SBaptiste Daroussin }; 158*0c8de5b0SBaptiste Daroussin #define YYTABLESIZE 2 159*0c8de5b0SBaptiste Daroussin static const YYINT err_syntax20_table[] = { 1, 160*0c8de5b0SBaptiste Daroussin 3, 4, 161*0c8de5b0SBaptiste Daroussin }; 162*0c8de5b0SBaptiste Daroussin static const YYINT err_syntax20_check[] = { 40, 163*0c8de5b0SBaptiste Daroussin 257, 41, 164*0c8de5b0SBaptiste Daroussin }; 165*0c8de5b0SBaptiste Daroussin #define YYFINAL 2 166*0c8de5b0SBaptiste Daroussin #ifndef YYDEBUG 167*0c8de5b0SBaptiste Daroussin #define YYDEBUG 0 168*0c8de5b0SBaptiste Daroussin #endif 169*0c8de5b0SBaptiste Daroussin #define YYMAXTOKEN 257 170*0c8de5b0SBaptiste Daroussin #define YYUNDFTOKEN 260 171*0c8de5b0SBaptiste Daroussin #define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? YYUNDFTOKEN : (a)) 172*0c8de5b0SBaptiste Daroussin #if YYDEBUG 173*0c8de5b0SBaptiste Daroussin static const char *const err_syntax20_name[] = { 174*0c8de5b0SBaptiste Daroussin 175*0c8de5b0SBaptiste Daroussin "end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 176*0c8de5b0SBaptiste Daroussin 0,0,0,0,0,0,"'('","')'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 177*0c8de5b0SBaptiste Daroussin 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 178*0c8de5b0SBaptiste Daroussin 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 179*0c8de5b0SBaptiste Daroussin 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 180*0c8de5b0SBaptiste Daroussin 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 181*0c8de5b0SBaptiste Daroussin 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"recur",0,0, 182*0c8de5b0SBaptiste Daroussin "illegal-symbol", 183*0c8de5b0SBaptiste Daroussin }; 184*0c8de5b0SBaptiste Daroussin static const char *const err_syntax20_rule[] = { 185*0c8de5b0SBaptiste Daroussin "$accept : expr", 186*0c8de5b0SBaptiste Daroussin "expr : '(' recur ')'", 187*0c8de5b0SBaptiste Daroussin 188*0c8de5b0SBaptiste Daroussin }; 189*0c8de5b0SBaptiste Daroussin #endif 190*0c8de5b0SBaptiste Daroussin 191*0c8de5b0SBaptiste Daroussin int yydebug; 192*0c8de5b0SBaptiste Daroussin int yynerrs; 193*0c8de5b0SBaptiste Daroussin 194*0c8de5b0SBaptiste Daroussin int yyerrflag; 195*0c8de5b0SBaptiste Daroussin int yychar; 196*0c8de5b0SBaptiste Daroussin YYSTYPE yyval; 197*0c8de5b0SBaptiste Daroussin YYSTYPE yylval; 198*0c8de5b0SBaptiste Daroussin 199*0c8de5b0SBaptiste Daroussin /* define the initial stack-sizes */ 200*0c8de5b0SBaptiste Daroussin #ifdef YYSTACKSIZE 201*0c8de5b0SBaptiste Daroussin #undef YYMAXDEPTH 202*0c8de5b0SBaptiste Daroussin #define YYMAXDEPTH YYSTACKSIZE 203*0c8de5b0SBaptiste Daroussin #else 204*0c8de5b0SBaptiste Daroussin #ifdef YYMAXDEPTH 205*0c8de5b0SBaptiste Daroussin #define YYSTACKSIZE YYMAXDEPTH 206*0c8de5b0SBaptiste Daroussin #else 207*0c8de5b0SBaptiste Daroussin #define YYSTACKSIZE 10000 208*0c8de5b0SBaptiste Daroussin #define YYMAXDEPTH 10000 209*0c8de5b0SBaptiste Daroussin #endif 210*0c8de5b0SBaptiste Daroussin #endif 211*0c8de5b0SBaptiste Daroussin 212*0c8de5b0SBaptiste Daroussin #define YYINITSTACKSIZE 200 213*0c8de5b0SBaptiste Daroussin 214*0c8de5b0SBaptiste Daroussin typedef struct { 215*0c8de5b0SBaptiste Daroussin unsigned stacksize; 216*0c8de5b0SBaptiste Daroussin YYINT *s_base; 217*0c8de5b0SBaptiste Daroussin YYINT *s_mark; 218*0c8de5b0SBaptiste Daroussin YYINT *s_last; 219*0c8de5b0SBaptiste Daroussin YYSTYPE *l_base; 220*0c8de5b0SBaptiste Daroussin YYSTYPE *l_mark; 221*0c8de5b0SBaptiste Daroussin } YYSTACKDATA; 222*0c8de5b0SBaptiste Daroussin /* variables for the parser stack */ 223*0c8de5b0SBaptiste Daroussin static YYSTACKDATA yystack; 224*0c8de5b0SBaptiste Daroussin #line 16 "err_syntax20.y" 225*0c8de5b0SBaptiste Daroussin 226*0c8de5b0SBaptiste Daroussin #include <stdio.h> 227*0c8de5b0SBaptiste Daroussin 228*0c8de5b0SBaptiste Daroussin int 229*0c8de5b0SBaptiste Daroussin main(void) 230*0c8de5b0SBaptiste Daroussin { 231*0c8de5b0SBaptiste Daroussin printf("yyparse() = %d\n", yyparse()); 232*0c8de5b0SBaptiste Daroussin return 0; 233*0c8de5b0SBaptiste Daroussin } 234*0c8de5b0SBaptiste Daroussin 235*0c8de5b0SBaptiste Daroussin int 236*0c8de5b0SBaptiste Daroussin yylex(void) 237*0c8de5b0SBaptiste Daroussin { 238*0c8de5b0SBaptiste Daroussin return -1; 239*0c8de5b0SBaptiste Daroussin } 240*0c8de5b0SBaptiste Daroussin 241*0c8de5b0SBaptiste Daroussin static void 242*0c8de5b0SBaptiste Daroussin yyerror(const char* s) 243*0c8de5b0SBaptiste Daroussin { 244*0c8de5b0SBaptiste Daroussin printf("%s\n", s); 245*0c8de5b0SBaptiste Daroussin } 246*0c8de5b0SBaptiste Daroussin #line 247 "err_syntax20.tab.c" 247*0c8de5b0SBaptiste Daroussin 248*0c8de5b0SBaptiste Daroussin #if YYDEBUG 249*0c8de5b0SBaptiste Daroussin #include <stdio.h> /* needed for printf */ 250*0c8de5b0SBaptiste Daroussin #endif 251*0c8de5b0SBaptiste Daroussin 252*0c8de5b0SBaptiste Daroussin #include <stdlib.h> /* needed for malloc, etc */ 253*0c8de5b0SBaptiste Daroussin #include <string.h> /* needed for memset */ 254*0c8de5b0SBaptiste Daroussin 255*0c8de5b0SBaptiste Daroussin /* allocate initial stack or double stack size, up to YYMAXDEPTH */ 256*0c8de5b0SBaptiste Daroussin static int yygrowstack(YYSTACKDATA *data) 257*0c8de5b0SBaptiste Daroussin { 258*0c8de5b0SBaptiste Daroussin int i; 259*0c8de5b0SBaptiste Daroussin unsigned newsize; 260*0c8de5b0SBaptiste Daroussin YYINT *newss; 261*0c8de5b0SBaptiste Daroussin YYSTYPE *newvs; 262*0c8de5b0SBaptiste Daroussin 263*0c8de5b0SBaptiste Daroussin if ((newsize = data->stacksize) == 0) 264*0c8de5b0SBaptiste Daroussin newsize = YYINITSTACKSIZE; 265*0c8de5b0SBaptiste Daroussin else if (newsize >= YYMAXDEPTH) 266*0c8de5b0SBaptiste Daroussin return YYENOMEM; 267*0c8de5b0SBaptiste Daroussin else if ((newsize *= 2) > YYMAXDEPTH) 268*0c8de5b0SBaptiste Daroussin newsize = YYMAXDEPTH; 269*0c8de5b0SBaptiste Daroussin 270*0c8de5b0SBaptiste Daroussin i = (int) (data->s_mark - data->s_base); 271*0c8de5b0SBaptiste Daroussin newss = (YYINT *)realloc(data->s_base, newsize * sizeof(*newss)); 272*0c8de5b0SBaptiste Daroussin if (newss == 0) 273*0c8de5b0SBaptiste Daroussin return YYENOMEM; 274*0c8de5b0SBaptiste Daroussin 275*0c8de5b0SBaptiste Daroussin data->s_base = newss; 276*0c8de5b0SBaptiste Daroussin data->s_mark = newss + i; 277*0c8de5b0SBaptiste Daroussin 278*0c8de5b0SBaptiste Daroussin newvs = (YYSTYPE *)realloc(data->l_base, newsize * sizeof(*newvs)); 279*0c8de5b0SBaptiste Daroussin if (newvs == 0) 280*0c8de5b0SBaptiste Daroussin return YYENOMEM; 281*0c8de5b0SBaptiste Daroussin 282*0c8de5b0SBaptiste Daroussin data->l_base = newvs; 283*0c8de5b0SBaptiste Daroussin data->l_mark = newvs + i; 284*0c8de5b0SBaptiste Daroussin 285*0c8de5b0SBaptiste Daroussin data->stacksize = newsize; 286*0c8de5b0SBaptiste Daroussin data->s_last = data->s_base + newsize - 1; 287*0c8de5b0SBaptiste Daroussin return 0; 288*0c8de5b0SBaptiste Daroussin } 289*0c8de5b0SBaptiste Daroussin 290*0c8de5b0SBaptiste Daroussin #if YYPURE || defined(YY_NO_LEAKS) 291*0c8de5b0SBaptiste Daroussin static void yyfreestack(YYSTACKDATA *data) 292*0c8de5b0SBaptiste Daroussin { 293*0c8de5b0SBaptiste Daroussin free(data->s_base); 294*0c8de5b0SBaptiste Daroussin free(data->l_base); 295*0c8de5b0SBaptiste Daroussin memset(data, 0, sizeof(*data)); 296*0c8de5b0SBaptiste Daroussin } 297*0c8de5b0SBaptiste Daroussin #else 298*0c8de5b0SBaptiste Daroussin #define yyfreestack(data) /* nothing */ 299*0c8de5b0SBaptiste Daroussin #endif 300*0c8de5b0SBaptiste Daroussin 301*0c8de5b0SBaptiste Daroussin #define YYABORT goto yyabort 302*0c8de5b0SBaptiste Daroussin #define YYREJECT goto yyabort 303*0c8de5b0SBaptiste Daroussin #define YYACCEPT goto yyaccept 304*0c8de5b0SBaptiste Daroussin #define YYERROR goto yyerrlab 305*0c8de5b0SBaptiste Daroussin 306*0c8de5b0SBaptiste Daroussin int 307*0c8de5b0SBaptiste Daroussin YYPARSE_DECL() 308*0c8de5b0SBaptiste Daroussin { 309*0c8de5b0SBaptiste Daroussin int yym, yyn, yystate; 310*0c8de5b0SBaptiste Daroussin #if YYDEBUG 311*0c8de5b0SBaptiste Daroussin const char *yys; 312*0c8de5b0SBaptiste Daroussin 313*0c8de5b0SBaptiste Daroussin if ((yys = getenv("YYDEBUG")) != 0) 314*0c8de5b0SBaptiste Daroussin { 315*0c8de5b0SBaptiste Daroussin yyn = *yys; 316*0c8de5b0SBaptiste Daroussin if (yyn >= '0' && yyn <= '9') 317*0c8de5b0SBaptiste Daroussin yydebug = yyn - '0'; 318*0c8de5b0SBaptiste Daroussin } 319*0c8de5b0SBaptiste Daroussin #endif 320*0c8de5b0SBaptiste Daroussin 321*0c8de5b0SBaptiste Daroussin yynerrs = 0; 322*0c8de5b0SBaptiste Daroussin yyerrflag = 0; 323*0c8de5b0SBaptiste Daroussin yychar = YYEMPTY; 324*0c8de5b0SBaptiste Daroussin yystate = 0; 325*0c8de5b0SBaptiste Daroussin 326*0c8de5b0SBaptiste Daroussin #if YYPURE 327*0c8de5b0SBaptiste Daroussin memset(&yystack, 0, sizeof(yystack)); 328*0c8de5b0SBaptiste Daroussin #endif 329*0c8de5b0SBaptiste Daroussin 330*0c8de5b0SBaptiste Daroussin if (yystack.s_base == NULL && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow; 331*0c8de5b0SBaptiste Daroussin yystack.s_mark = yystack.s_base; 332*0c8de5b0SBaptiste Daroussin yystack.l_mark = yystack.l_base; 333*0c8de5b0SBaptiste Daroussin yystate = 0; 334*0c8de5b0SBaptiste Daroussin *yystack.s_mark = 0; 335*0c8de5b0SBaptiste Daroussin 336*0c8de5b0SBaptiste Daroussin yyloop: 337*0c8de5b0SBaptiste Daroussin if ((yyn = yydefred[yystate]) != 0) goto yyreduce; 338*0c8de5b0SBaptiste Daroussin if (yychar < 0) 339*0c8de5b0SBaptiste Daroussin { 340*0c8de5b0SBaptiste Daroussin if ((yychar = YYLEX) < 0) yychar = YYEOF; 341*0c8de5b0SBaptiste Daroussin #if YYDEBUG 342*0c8de5b0SBaptiste Daroussin if (yydebug) 343*0c8de5b0SBaptiste Daroussin { 344*0c8de5b0SBaptiste Daroussin yys = yyname[YYTRANSLATE(yychar)]; 345*0c8de5b0SBaptiste Daroussin printf("%sdebug: state %d, reading %d (%s)\n", 346*0c8de5b0SBaptiste Daroussin YYPREFIX, yystate, yychar, yys); 347*0c8de5b0SBaptiste Daroussin } 348*0c8de5b0SBaptiste Daroussin #endif 349*0c8de5b0SBaptiste Daroussin } 350*0c8de5b0SBaptiste Daroussin if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 && 351*0c8de5b0SBaptiste Daroussin yyn <= YYTABLESIZE && yycheck[yyn] == yychar) 352*0c8de5b0SBaptiste Daroussin { 353*0c8de5b0SBaptiste Daroussin #if YYDEBUG 354*0c8de5b0SBaptiste Daroussin if (yydebug) 355*0c8de5b0SBaptiste Daroussin printf("%sdebug: state %d, shifting to state %d\n", 356*0c8de5b0SBaptiste Daroussin YYPREFIX, yystate, yytable[yyn]); 357*0c8de5b0SBaptiste Daroussin #endif 358*0c8de5b0SBaptiste Daroussin if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) 359*0c8de5b0SBaptiste Daroussin { 360*0c8de5b0SBaptiste Daroussin goto yyoverflow; 361*0c8de5b0SBaptiste Daroussin } 362*0c8de5b0SBaptiste Daroussin yystate = yytable[yyn]; 363*0c8de5b0SBaptiste Daroussin *++yystack.s_mark = yytable[yyn]; 364*0c8de5b0SBaptiste Daroussin *++yystack.l_mark = yylval; 365*0c8de5b0SBaptiste Daroussin yychar = YYEMPTY; 366*0c8de5b0SBaptiste Daroussin if (yyerrflag > 0) --yyerrflag; 367*0c8de5b0SBaptiste Daroussin goto yyloop; 368*0c8de5b0SBaptiste Daroussin } 369*0c8de5b0SBaptiste Daroussin if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 && 370*0c8de5b0SBaptiste Daroussin yyn <= YYTABLESIZE && yycheck[yyn] == yychar) 371*0c8de5b0SBaptiste Daroussin { 372*0c8de5b0SBaptiste Daroussin yyn = yytable[yyn]; 373*0c8de5b0SBaptiste Daroussin goto yyreduce; 374*0c8de5b0SBaptiste Daroussin } 375*0c8de5b0SBaptiste Daroussin if (yyerrflag) goto yyinrecovery; 376*0c8de5b0SBaptiste Daroussin 377*0c8de5b0SBaptiste Daroussin YYERROR_CALL("syntax error"); 378*0c8de5b0SBaptiste Daroussin 379*0c8de5b0SBaptiste Daroussin goto yyerrlab; 380*0c8de5b0SBaptiste Daroussin 381*0c8de5b0SBaptiste Daroussin yyerrlab: 382*0c8de5b0SBaptiste Daroussin ++yynerrs; 383*0c8de5b0SBaptiste Daroussin 384*0c8de5b0SBaptiste Daroussin yyinrecovery: 385*0c8de5b0SBaptiste Daroussin if (yyerrflag < 3) 386*0c8de5b0SBaptiste Daroussin { 387*0c8de5b0SBaptiste Daroussin yyerrflag = 3; 388*0c8de5b0SBaptiste Daroussin for (;;) 389*0c8de5b0SBaptiste Daroussin { 390*0c8de5b0SBaptiste Daroussin if ((yyn = yysindex[*yystack.s_mark]) && (yyn += YYERRCODE) >= 0 && 391*0c8de5b0SBaptiste Daroussin yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) 392*0c8de5b0SBaptiste Daroussin { 393*0c8de5b0SBaptiste Daroussin #if YYDEBUG 394*0c8de5b0SBaptiste Daroussin if (yydebug) 395*0c8de5b0SBaptiste Daroussin printf("%sdebug: state %d, error recovery shifting\ 396*0c8de5b0SBaptiste Daroussin to state %d\n", YYPREFIX, *yystack.s_mark, yytable[yyn]); 397*0c8de5b0SBaptiste Daroussin #endif 398*0c8de5b0SBaptiste Daroussin if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) 399*0c8de5b0SBaptiste Daroussin { 400*0c8de5b0SBaptiste Daroussin goto yyoverflow; 401*0c8de5b0SBaptiste Daroussin } 402*0c8de5b0SBaptiste Daroussin yystate = yytable[yyn]; 403*0c8de5b0SBaptiste Daroussin *++yystack.s_mark = yytable[yyn]; 404*0c8de5b0SBaptiste Daroussin *++yystack.l_mark = yylval; 405*0c8de5b0SBaptiste Daroussin goto yyloop; 406*0c8de5b0SBaptiste Daroussin } 407*0c8de5b0SBaptiste Daroussin else 408*0c8de5b0SBaptiste Daroussin { 409*0c8de5b0SBaptiste Daroussin #if YYDEBUG 410*0c8de5b0SBaptiste Daroussin if (yydebug) 411*0c8de5b0SBaptiste Daroussin printf("%sdebug: error recovery discarding state %d\n", 412*0c8de5b0SBaptiste Daroussin YYPREFIX, *yystack.s_mark); 413*0c8de5b0SBaptiste Daroussin #endif 414*0c8de5b0SBaptiste Daroussin if (yystack.s_mark <= yystack.s_base) goto yyabort; 415*0c8de5b0SBaptiste Daroussin --yystack.s_mark; 416*0c8de5b0SBaptiste Daroussin --yystack.l_mark; 417*0c8de5b0SBaptiste Daroussin } 418*0c8de5b0SBaptiste Daroussin } 419*0c8de5b0SBaptiste Daroussin } 420*0c8de5b0SBaptiste Daroussin else 421*0c8de5b0SBaptiste Daroussin { 422*0c8de5b0SBaptiste Daroussin if (yychar == YYEOF) goto yyabort; 423*0c8de5b0SBaptiste Daroussin #if YYDEBUG 424*0c8de5b0SBaptiste Daroussin if (yydebug) 425*0c8de5b0SBaptiste Daroussin { 426*0c8de5b0SBaptiste Daroussin yys = yyname[YYTRANSLATE(yychar)]; 427*0c8de5b0SBaptiste Daroussin printf("%sdebug: state %d, error recovery discards token %d (%s)\n", 428*0c8de5b0SBaptiste Daroussin YYPREFIX, yystate, yychar, yys); 429*0c8de5b0SBaptiste Daroussin } 430*0c8de5b0SBaptiste Daroussin #endif 431*0c8de5b0SBaptiste Daroussin yychar = YYEMPTY; 432*0c8de5b0SBaptiste Daroussin goto yyloop; 433*0c8de5b0SBaptiste Daroussin } 434*0c8de5b0SBaptiste Daroussin 435*0c8de5b0SBaptiste Daroussin yyreduce: 436*0c8de5b0SBaptiste Daroussin #if YYDEBUG 437*0c8de5b0SBaptiste Daroussin if (yydebug) 438*0c8de5b0SBaptiste Daroussin printf("%sdebug: state %d, reducing by rule %d (%s)\n", 439*0c8de5b0SBaptiste Daroussin YYPREFIX, yystate, yyn, yyrule[yyn]); 440*0c8de5b0SBaptiste Daroussin #endif 441*0c8de5b0SBaptiste Daroussin yym = yylen[yyn]; 442*0c8de5b0SBaptiste Daroussin if (yym) 443*0c8de5b0SBaptiste Daroussin yyval = yystack.l_mark[1-yym]; 444*0c8de5b0SBaptiste Daroussin else 445*0c8de5b0SBaptiste Daroussin memset(&yyval, 0, sizeof yyval); 446*0c8de5b0SBaptiste Daroussin switch (yyn) 447*0c8de5b0SBaptiste Daroussin { 448*0c8de5b0SBaptiste Daroussin case 1: 449*0c8de5b0SBaptiste Daroussin #line 12 "err_syntax20.y" 450*0c8de5b0SBaptiste Daroussin { yystack.l_mark[-1].rechk = 3; } 451*0c8de5b0SBaptiste Daroussin break; 452*0c8de5b0SBaptiste Daroussin #line 453 "err_syntax20.tab.c" 453*0c8de5b0SBaptiste Daroussin } 454*0c8de5b0SBaptiste Daroussin yystack.s_mark -= yym; 455*0c8de5b0SBaptiste Daroussin yystate = *yystack.s_mark; 456*0c8de5b0SBaptiste Daroussin yystack.l_mark -= yym; 457*0c8de5b0SBaptiste Daroussin yym = yylhs[yyn]; 458*0c8de5b0SBaptiste Daroussin if (yystate == 0 && yym == 0) 459*0c8de5b0SBaptiste Daroussin { 460*0c8de5b0SBaptiste Daroussin #if YYDEBUG 461*0c8de5b0SBaptiste Daroussin if (yydebug) 462*0c8de5b0SBaptiste Daroussin printf("%sdebug: after reduction, shifting from state 0 to\ 463*0c8de5b0SBaptiste Daroussin state %d\n", YYPREFIX, YYFINAL); 464*0c8de5b0SBaptiste Daroussin #endif 465*0c8de5b0SBaptiste Daroussin yystate = YYFINAL; 466*0c8de5b0SBaptiste Daroussin *++yystack.s_mark = YYFINAL; 467*0c8de5b0SBaptiste Daroussin *++yystack.l_mark = yyval; 468*0c8de5b0SBaptiste Daroussin if (yychar < 0) 469*0c8de5b0SBaptiste Daroussin { 470*0c8de5b0SBaptiste Daroussin if ((yychar = YYLEX) < 0) yychar = YYEOF; 471*0c8de5b0SBaptiste Daroussin #if YYDEBUG 472*0c8de5b0SBaptiste Daroussin if (yydebug) 473*0c8de5b0SBaptiste Daroussin { 474*0c8de5b0SBaptiste Daroussin yys = yyname[YYTRANSLATE(yychar)]; 475*0c8de5b0SBaptiste Daroussin printf("%sdebug: state %d, reading %d (%s)\n", 476*0c8de5b0SBaptiste Daroussin YYPREFIX, YYFINAL, yychar, yys); 477*0c8de5b0SBaptiste Daroussin } 478*0c8de5b0SBaptiste Daroussin #endif 479*0c8de5b0SBaptiste Daroussin } 480*0c8de5b0SBaptiste Daroussin if (yychar == YYEOF) goto yyaccept; 481*0c8de5b0SBaptiste Daroussin goto yyloop; 482*0c8de5b0SBaptiste Daroussin } 483*0c8de5b0SBaptiste Daroussin if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 && 484*0c8de5b0SBaptiste Daroussin yyn <= YYTABLESIZE && yycheck[yyn] == yystate) 485*0c8de5b0SBaptiste Daroussin yystate = yytable[yyn]; 486*0c8de5b0SBaptiste Daroussin else 487*0c8de5b0SBaptiste Daroussin yystate = yydgoto[yym]; 488*0c8de5b0SBaptiste Daroussin #if YYDEBUG 489*0c8de5b0SBaptiste Daroussin if (yydebug) 490*0c8de5b0SBaptiste Daroussin printf("%sdebug: after reduction, shifting from state %d \ 491*0c8de5b0SBaptiste Daroussin to state %d\n", YYPREFIX, *yystack.s_mark, yystate); 492*0c8de5b0SBaptiste Daroussin #endif 493*0c8de5b0SBaptiste Daroussin if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) 494*0c8de5b0SBaptiste Daroussin { 495*0c8de5b0SBaptiste Daroussin goto yyoverflow; 496*0c8de5b0SBaptiste Daroussin } 497*0c8de5b0SBaptiste Daroussin *++yystack.s_mark = (YYINT) yystate; 498*0c8de5b0SBaptiste Daroussin *++yystack.l_mark = yyval; 499*0c8de5b0SBaptiste Daroussin goto yyloop; 500*0c8de5b0SBaptiste Daroussin 501*0c8de5b0SBaptiste Daroussin yyoverflow: 502*0c8de5b0SBaptiste Daroussin YYERROR_CALL("yacc stack overflow"); 503*0c8de5b0SBaptiste Daroussin 504*0c8de5b0SBaptiste Daroussin yyabort: 505*0c8de5b0SBaptiste Daroussin yyfreestack(&yystack); 506*0c8de5b0SBaptiste Daroussin return (1); 507*0c8de5b0SBaptiste Daroussin 508*0c8de5b0SBaptiste Daroussin yyaccept: 509*0c8de5b0SBaptiste Daroussin yyfreestack(&yystack); 510*0c8de5b0SBaptiste Daroussin return (0); 511*0c8de5b0SBaptiste Daroussin } 512