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