1 /* $NetBSD: rename_debug.c,v 1.5 2024/09/14 21:29:05 christos Exp $ */ 2 3 /* original parser id follows */ 4 /* yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93" */ 5 /* (use YYMAJOR/YYMINOR for ifdefs dependent on parser version) */ 6 7 #define YYBYACC 1 8 #define YYMAJOR 2 9 #define YYMINOR 0 10 #define YYCHECK "yyyymmdd" 11 12 #define YYEMPTY (-1) 13 #define yyclearin (yychar = YYEMPTY) 14 #define yyerrok (yyerrflag = 0) 15 #define YYRECOVERING() (yyerrflag != 0) 16 #define YYENOMEM (-2) 17 #define YYEOF 0 18 #line 17 "rename_debug.c" 19 #include "rename_debug.i" 20 #include "rename_debug.h" 21 typedef int YYINT; 22 static const YYINT yylhs[] = { -1, 23 0, 24 }; 25 static const YYINT yylen[] = { 2, 26 1, 27 }; 28 static const YYINT yydefred[] = { 0, 29 1, 0, 30 }; 31 static const YYINT yydgoto[] = { 2, 32 }; 33 static const YYINT yysindex[] = { -256, 34 0, 0, 35 }; 36 static const YYINT yyrindex[] = { 0, 37 0, 0, 38 }; 39 static const YYINT yygindex[] = { 0, 40 }; 41 #define YYTABLESIZE 0 42 static const YYINT yytable[] = { 1, 43 }; 44 static const YYINT yycheck[] = { 256, 45 }; 46 #define YYFINAL 2 47 #ifndef YYDEBUG 48 #define YYDEBUG 1 49 #endif 50 #define YYMAXTOKEN 256 51 #define YYUNDFTOKEN 259 52 #define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? YYUNDFTOKEN : (a)) 53 #if YYDEBUG 54 static const char *const yyname[] = { 55 56 "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, 57 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, 58 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, 59 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, 60 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, 61 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, 62 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,"illegal-symbol", 63 }; 64 static const char *const yyrule[] = { 65 "$accept : S", 66 "S : error", 67 68 }; 69 #endif 70 71 #if YYDEBUG 72 int yydebug; 73 #endif 74 75 int yyerrflag; 76 int yychar; 77 YYSTYPE yyval; 78 YYSTYPE yylval; 79 int yynerrs; 80 81 /* define the initial stack-sizes */ 82 #ifdef YYSTACKSIZE 83 #undef YYMAXDEPTH 84 #define YYMAXDEPTH YYSTACKSIZE 85 #else 86 #ifdef YYMAXDEPTH 87 #define YYSTACKSIZE YYMAXDEPTH 88 #else 89 #define YYSTACKSIZE 10000 90 #define YYMAXDEPTH 10000 91 #endif 92 #endif 93 94 #define YYINITSTACKSIZE 200 95 96 typedef struct { 97 unsigned stacksize; 98 YYINT *s_base; 99 YYINT *s_mark; 100 YYINT *s_last; 101 YYSTYPE *l_base; 102 YYSTYPE *l_mark; 103 } YYSTACKDATA; 104 /* variables for the parser stack */ 105 static YYSTACKDATA yystack; 106 #line 12 "code_debug.y" 107 108 #include <stdio.h> 109 110 #ifdef YYBYACC 111 extern int YYLEX_DECL(); 112 #endif 113 114 int 115 main(void) 116 { 117 printf("yyparse() = %d\n", yyparse()); 118 return 0; 119 } 120 121 int 122 yylex(void) 123 { 124 return -1; 125 } 126 127 static void 128 yyerror(const char* s) 129 { 130 printf("%s\n", s); 131 } 132 #line 132 "rename_debug.c" 133 134 #if YYDEBUG 135 #include <stdio.h> /* needed for printf */ 136 #endif 137 138 #include <stdlib.h> /* needed for malloc, etc */ 139 #include <string.h> /* needed for memset */ 140 141 /* allocate initial stack or double stack size, up to YYMAXDEPTH */ 142 static int yygrowstack(YYSTACKDATA *data) 143 { 144 int i; 145 unsigned newsize; 146 YYINT *newss; 147 YYSTYPE *newvs; 148 149 if ((newsize = data->stacksize) == 0) 150 newsize = YYINITSTACKSIZE; 151 else if (newsize >= YYMAXDEPTH) 152 return YYENOMEM; 153 else if ((newsize *= 2) > YYMAXDEPTH) 154 newsize = YYMAXDEPTH; 155 156 i = (int) (data->s_mark - data->s_base); 157 newss = (YYINT *)realloc(data->s_base, newsize * sizeof(*newss)); 158 if (newss == 0) 159 return YYENOMEM; 160 161 data->s_base = newss; 162 data->s_mark = newss + i; 163 164 newvs = (YYSTYPE *)realloc(data->l_base, newsize * sizeof(*newvs)); 165 if (newvs == 0) 166 return YYENOMEM; 167 168 data->l_base = newvs; 169 data->l_mark = newvs + i; 170 171 data->stacksize = newsize; 172 data->s_last = data->s_base + newsize - 1; 173 return 0; 174 } 175 176 #if YYPURE || defined(YY_NO_LEAKS) 177 static void yyfreestack(YYSTACKDATA *data) 178 { 179 free(data->s_base); 180 free(data->l_base); 181 memset(data, 0, sizeof(*data)); 182 } 183 #else 184 #define yyfreestack(data) /* nothing */ 185 #endif 186 187 #define YYABORT goto yyabort 188 #define YYREJECT goto yyabort 189 #define YYACCEPT goto yyaccept 190 #define YYERROR goto yyerrlab 191 192 int 193 YYPARSE_DECL() 194 { 195 int yym, yyn, yystate; 196 #if YYDEBUG 197 const char *yys; 198 199 if ((yys = getenv("YYDEBUG")) != 0) 200 { 201 yyn = *yys; 202 if (yyn >= '0' && yyn <= '9') 203 yydebug = yyn - '0'; 204 } 205 #endif 206 207 /* yym is set below */ 208 /* yyn is set below */ 209 yynerrs = 0; 210 yyerrflag = 0; 211 yychar = YYEMPTY; 212 yystate = 0; 213 214 #if YYPURE 215 memset(&yystack, 0, sizeof(yystack)); 216 #endif 217 218 if (yystack.s_base == NULL && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow; 219 yystack.s_mark = yystack.s_base; 220 yystack.l_mark = yystack.l_base; 221 yystate = 0; 222 *yystack.s_mark = 0; 223 224 yyloop: 225 if ((yyn = yydefred[yystate]) != 0) goto yyreduce; 226 if (yychar < 0) 227 { 228 yychar = YYLEX; 229 if (yychar < 0) yychar = YYEOF; 230 #if YYDEBUG 231 if (yydebug) 232 { 233 if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN]; 234 printf("%sdebug: state %d, reading %d (%s)\n", 235 YYPREFIX, yystate, yychar, yys); 236 } 237 #endif 238 } 239 if (((yyn = yysindex[yystate]) != 0) && (yyn += yychar) >= 0 && 240 yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar) 241 { 242 #if YYDEBUG 243 if (yydebug) 244 printf("%sdebug: state %d, shifting to state %d\n", 245 YYPREFIX, yystate, yytable[yyn]); 246 #endif 247 if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow; 248 yystate = yytable[yyn]; 249 *++yystack.s_mark = yytable[yyn]; 250 *++yystack.l_mark = yylval; 251 yychar = YYEMPTY; 252 if (yyerrflag > 0) --yyerrflag; 253 goto yyloop; 254 } 255 if (((yyn = yyrindex[yystate]) != 0) && (yyn += yychar) >= 0 && 256 yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar) 257 { 258 yyn = yytable[yyn]; 259 goto yyreduce; 260 } 261 if (yyerrflag != 0) goto yyinrecovery; 262 263 YYERROR_CALL("syntax error"); 264 265 goto yyerrlab; /* redundant goto avoids 'unused label' warning */ 266 yyerrlab: 267 ++yynerrs; 268 269 yyinrecovery: 270 if (yyerrflag < 3) 271 { 272 yyerrflag = 3; 273 for (;;) 274 { 275 if (((yyn = yysindex[*yystack.s_mark]) != 0) && (yyn += YYERRCODE) >= 0 && 276 yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) YYERRCODE) 277 { 278 #if YYDEBUG 279 if (yydebug) 280 printf("%sdebug: state %d, error recovery shifting\ 281 to state %d\n", YYPREFIX, *yystack.s_mark, yytable[yyn]); 282 #endif 283 if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow; 284 yystate = yytable[yyn]; 285 *++yystack.s_mark = yytable[yyn]; 286 *++yystack.l_mark = yylval; 287 goto yyloop; 288 } 289 else 290 { 291 #if YYDEBUG 292 if (yydebug) 293 printf("%sdebug: error recovery discarding state %d\n", 294 YYPREFIX, *yystack.s_mark); 295 #endif 296 if (yystack.s_mark <= yystack.s_base) goto yyabort; 297 --yystack.s_mark; 298 --yystack.l_mark; 299 } 300 } 301 } 302 else 303 { 304 if (yychar == YYEOF) goto yyabort; 305 #if YYDEBUG 306 if (yydebug) 307 { 308 if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN]; 309 printf("%sdebug: state %d, error recovery discards token %d (%s)\n", 310 YYPREFIX, yystate, yychar, yys); 311 } 312 #endif 313 yychar = YYEMPTY; 314 goto yyloop; 315 } 316 317 yyreduce: 318 #if YYDEBUG 319 if (yydebug) 320 printf("%sdebug: state %d, reducing by rule %d (%s)\n", 321 YYPREFIX, yystate, yyn, yyrule[yyn]); 322 #endif 323 yym = yylen[yyn]; 324 if (yym > 0) 325 yyval = yystack.l_mark[1-yym]; 326 else 327 memset(&yyval, 0, sizeof yyval); 328 329 switch (yyn) 330 { 331 } 332 yystack.s_mark -= yym; 333 yystate = *yystack.s_mark; 334 yystack.l_mark -= yym; 335 yym = yylhs[yyn]; 336 if (yystate == 0 && yym == 0) 337 { 338 #if YYDEBUG 339 if (yydebug) 340 printf("%sdebug: after reduction, shifting from state 0 to\ 341 state %d\n", YYPREFIX, YYFINAL); 342 #endif 343 yystate = YYFINAL; 344 *++yystack.s_mark = YYFINAL; 345 *++yystack.l_mark = yyval; 346 if (yychar < 0) 347 { 348 yychar = YYLEX; 349 if (yychar < 0) yychar = YYEOF; 350 #if YYDEBUG 351 if (yydebug) 352 { 353 if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN]; 354 printf("%sdebug: state %d, reading %d (%s)\n", 355 YYPREFIX, YYFINAL, yychar, yys); 356 } 357 #endif 358 } 359 if (yychar == YYEOF) goto yyaccept; 360 goto yyloop; 361 } 362 if (((yyn = yygindex[yym]) != 0) && (yyn += yystate) >= 0 && 363 yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yystate) 364 yystate = yytable[yyn]; 365 else 366 yystate = yydgoto[yym]; 367 #if YYDEBUG 368 if (yydebug) 369 printf("%sdebug: after reduction, shifting from state %d \ 370 to state %d\n", YYPREFIX, *yystack.s_mark, yystate); 371 #endif 372 if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow; 373 *++yystack.s_mark = (YYINT) yystate; 374 *++yystack.l_mark = yyval; 375 goto yyloop; 376 377 yyoverflow: 378 YYERROR_CALL("yacc stack overflow"); 379 380 yyabort: 381 yyfreestack(&yystack); 382 return (1); 383 384 yyaccept: 385 yyfreestack(&yystack); 386 return (0); 387 } 388