github.com/roboticscm/goman@v0.0.0-20210203095141-87c07b4a0a55/src/cmd/5a/y.tab.c (about) 1 /* A Bison parser, made by GNU Bison 2.7.12-4996. */ 2 3 /* Bison implementation for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. 6 7 This program is free software: you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation, either version 3 of the License, or 10 (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 19 20 /* As a special exception, you may create a larger work that contains 21 part or all of the Bison parser skeleton and distribute that work 22 under terms of your choice, so long as that work isn't itself a 23 parser generator using the skeleton or a modified version thereof 24 as a parser skeleton. Alternatively, if you modify or redistribute 25 the parser skeleton itself, you may (at your option) remove this 26 special exception, which will cause the skeleton and the resulting 27 Bison output files to be licensed under the GNU General Public 28 License without this special exception. 29 30 This special exception was added by the Free Software Foundation in 31 version 2.2 of Bison. */ 32 33 /* C LALR(1) parser skeleton written by Richard Stallman, by 34 simplifying the original so-called "semantic" parser. */ 35 36 /* All symbols defined below should begin with yy or YY, to avoid 37 infringing on user name space. This should be done even for local 38 variables, as they might otherwise be expanded by user macros. 39 There are some unavoidable exceptions within include files to 40 define necessary library symbols; they are noted "INFRINGES ON 41 USER NAME SPACE" below. */ 42 43 /* Identify Bison output. */ 44 #define YYBISON 1 45 46 /* Bison version. */ 47 #define YYBISON_VERSION "2.7.12-4996" 48 49 /* Skeleton name. */ 50 #define YYSKELETON_NAME "yacc.c" 51 52 /* Pure parsers. */ 53 #define YYPURE 0 54 55 /* Push parsers. */ 56 #define YYPUSH 0 57 58 /* Pull parsers. */ 59 #define YYPULL 1 60 61 62 63 64 /* Copy the first part of user declarations. */ 65 /* Line 371 of yacc.c */ 66 #line 31 "a.y" 67 68 #include <u.h> 69 #include <stdio.h> /* if we don't, bison will, and a.h re-#defines getc */ 70 #include <libc.h> 71 #include "a.h" 72 #include "../../runtime/funcdata.h" 73 74 /* Line 371 of yacc.c */ 75 #line 76 "y.tab.c" 76 77 # ifndef YY_NULL 78 # if defined __cplusplus && 201103L <= __cplusplus 79 # define YY_NULL nullptr 80 # else 81 # define YY_NULL 0 82 # endif 83 # endif 84 85 /* Enabling verbose error messages. */ 86 #ifdef YYERROR_VERBOSE 87 # undef YYERROR_VERBOSE 88 # define YYERROR_VERBOSE 1 89 #else 90 # define YYERROR_VERBOSE 0 91 #endif 92 93 /* In a future release of Bison, this section will be replaced 94 by #include "y.tab.h". */ 95 #ifndef YY_YY_Y_TAB_H_INCLUDED 96 # define YY_YY_Y_TAB_H_INCLUDED 97 /* Enabling traces. */ 98 #ifndef YYDEBUG 99 # define YYDEBUG 0 100 #endif 101 #if YYDEBUG 102 extern int yydebug; 103 #endif 104 105 /* Tokens. */ 106 #ifndef YYTOKENTYPE 107 # define YYTOKENTYPE 108 /* Put the tokens into the symbol table, so that GDB and other debuggers 109 know about them. */ 110 enum yytokentype { 111 LTYPE1 = 258, 112 LTYPE2 = 259, 113 LTYPE3 = 260, 114 LTYPE4 = 261, 115 LTYPE5 = 262, 116 LTYPE6 = 263, 117 LTYPE7 = 264, 118 LTYPE8 = 265, 119 LTYPE9 = 266, 120 LTYPEA = 267, 121 LTYPEB = 268, 122 LTYPEC = 269, 123 LTYPED = 270, 124 LTYPEE = 271, 125 LTYPEG = 272, 126 LTYPEH = 273, 127 LTYPEI = 274, 128 LTYPEJ = 275, 129 LTYPEK = 276, 130 LTYPEL = 277, 131 LTYPEM = 278, 132 LTYPEN = 279, 133 LTYPEBX = 280, 134 LTYPEPLD = 281, 135 LCONST = 282, 136 LSP = 283, 137 LSB = 284, 138 LFP = 285, 139 LPC = 286, 140 LTYPEX = 287, 141 LTYPEPC = 288, 142 LTYPEF = 289, 143 LR = 290, 144 LREG = 291, 145 LF = 292, 146 LFREG = 293, 147 LC = 294, 148 LCREG = 295, 149 LPSR = 296, 150 LFCR = 297, 151 LCOND = 298, 152 LS = 299, 153 LAT = 300, 154 LFCONST = 301, 155 LSCONST = 302, 156 LNAME = 303, 157 LLAB = 304, 158 LVAR = 305 159 }; 160 #endif 161 /* Tokens. */ 162 #define LTYPE1 258 163 #define LTYPE2 259 164 #define LTYPE3 260 165 #define LTYPE4 261 166 #define LTYPE5 262 167 #define LTYPE6 263 168 #define LTYPE7 264 169 #define LTYPE8 265 170 #define LTYPE9 266 171 #define LTYPEA 267 172 #define LTYPEB 268 173 #define LTYPEC 269 174 #define LTYPED 270 175 #define LTYPEE 271 176 #define LTYPEG 272 177 #define LTYPEH 273 178 #define LTYPEI 274 179 #define LTYPEJ 275 180 #define LTYPEK 276 181 #define LTYPEL 277 182 #define LTYPEM 278 183 #define LTYPEN 279 184 #define LTYPEBX 280 185 #define LTYPEPLD 281 186 #define LCONST 282 187 #define LSP 283 188 #define LSB 284 189 #define LFP 285 190 #define LPC 286 191 #define LTYPEX 287 192 #define LTYPEPC 288 193 #define LTYPEF 289 194 #define LR 290 195 #define LREG 291 196 #define LF 292 197 #define LFREG 293 198 #define LC 294 199 #define LCREG 295 200 #define LPSR 296 201 #define LFCR 297 202 #define LCOND 298 203 #define LS 299 204 #define LAT 300 205 #define LFCONST 301 206 #define LSCONST 302 207 #define LNAME 303 208 #define LLAB 304 209 #define LVAR 305 210 211 212 213 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 214 typedef union YYSTYPE 215 { 216 /* Line 387 of yacc.c */ 217 #line 39 "a.y" 218 219 Sym *sym; 220 int32 lval; 221 double dval; 222 char sval[8]; 223 Addr addr; 224 225 226 /* Line 387 of yacc.c */ 227 #line 228 "y.tab.c" 228 } YYSTYPE; 229 # define YYSTYPE_IS_TRIVIAL 1 230 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ 231 # define YYSTYPE_IS_DECLARED 1 232 #endif 233 234 extern YYSTYPE yylval; 235 236 #ifdef YYPARSE_PARAM 237 #if defined __STDC__ || defined __cplusplus 238 int yyparse (void *YYPARSE_PARAM); 239 #else 240 int yyparse (); 241 #endif 242 #else /* ! YYPARSE_PARAM */ 243 #if defined __STDC__ || defined __cplusplus 244 int yyparse (void); 245 #else 246 int yyparse (); 247 #endif 248 #endif /* ! YYPARSE_PARAM */ 249 250 #endif /* !YY_YY_Y_TAB_H_INCLUDED */ 251 252 /* Copy the second part of user declarations. */ 253 254 /* Line 390 of yacc.c */ 255 #line 256 "y.tab.c" 256 257 #ifdef short 258 # undef short 259 #endif 260 261 #ifdef YYTYPE_UINT8 262 typedef YYTYPE_UINT8 yytype_uint8; 263 #else 264 typedef unsigned char yytype_uint8; 265 #endif 266 267 #ifdef YYTYPE_INT8 268 typedef YYTYPE_INT8 yytype_int8; 269 #elif (defined __STDC__ || defined __C99__FUNC__ \ 270 || defined __cplusplus || defined _MSC_VER) 271 typedef signed char yytype_int8; 272 #else 273 typedef short int yytype_int8; 274 #endif 275 276 #ifdef YYTYPE_UINT16 277 typedef YYTYPE_UINT16 yytype_uint16; 278 #else 279 typedef unsigned short int yytype_uint16; 280 #endif 281 282 #ifdef YYTYPE_INT16 283 typedef YYTYPE_INT16 yytype_int16; 284 #else 285 typedef short int yytype_int16; 286 #endif 287 288 #ifndef YYSIZE_T 289 # ifdef __SIZE_TYPE__ 290 # define YYSIZE_T __SIZE_TYPE__ 291 # elif defined size_t 292 # define YYSIZE_T size_t 293 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ 294 || defined __cplusplus || defined _MSC_VER) 295 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 296 # define YYSIZE_T size_t 297 # else 298 # define YYSIZE_T unsigned int 299 # endif 300 #endif 301 302 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) 303 304 #ifndef YY_ 305 # if defined YYENABLE_NLS && YYENABLE_NLS 306 # if ENABLE_NLS 307 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 308 # define YY_(Msgid) dgettext ("bison-runtime", Msgid) 309 # endif 310 # endif 311 # ifndef YY_ 312 # define YY_(Msgid) Msgid 313 # endif 314 #endif 315 316 #ifndef __attribute__ 317 /* This feature is available in gcc versions 2.5 and later. */ 318 # if (! defined __GNUC__ || __GNUC__ < 2 \ 319 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)) 320 # define __attribute__(Spec) /* empty */ 321 # endif 322 #endif 323 324 /* Suppress unused-variable warnings by "using" E. */ 325 #if ! defined lint || defined __GNUC__ 326 # define YYUSE(E) ((void) (E)) 327 #else 328 # define YYUSE(E) /* empty */ 329 #endif 330 331 332 /* Identity function, used to suppress warnings about constant conditions. */ 333 #ifndef lint 334 # define YYID(N) (N) 335 #else 336 #if (defined __STDC__ || defined __C99__FUNC__ \ 337 || defined __cplusplus || defined _MSC_VER) 338 static int 339 YYID (int yyi) 340 #else 341 static int 342 YYID (yyi) 343 int yyi; 344 #endif 345 { 346 return yyi; 347 } 348 #endif 349 350 #if ! defined yyoverflow || YYERROR_VERBOSE 351 352 /* The parser invokes alloca or malloc; define the necessary symbols. */ 353 354 # ifdef YYSTACK_USE_ALLOCA 355 # if YYSTACK_USE_ALLOCA 356 # ifdef __GNUC__ 357 # define YYSTACK_ALLOC __builtin_alloca 358 # elif defined __BUILTIN_VA_ARG_INCR 359 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */ 360 # elif defined _AIX 361 # define YYSTACK_ALLOC __alloca 362 # elif defined _MSC_VER 363 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */ 364 # define alloca _alloca 365 # else 366 # define YYSTACK_ALLOC alloca 367 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 368 || defined __cplusplus || defined _MSC_VER) 369 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 370 /* Use EXIT_SUCCESS as a witness for stdlib.h. */ 371 # ifndef EXIT_SUCCESS 372 # define EXIT_SUCCESS 0 373 # endif 374 # endif 375 # endif 376 # endif 377 # endif 378 379 # ifdef YYSTACK_ALLOC 380 /* Pacify GCC's `empty if-body' warning. */ 381 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) 382 # ifndef YYSTACK_ALLOC_MAXIMUM 383 /* The OS might guarantee only one guard page at the bottom of the stack, 384 and a page size can be as small as 4096 bytes. So we cannot safely 385 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number 386 to allow for a few compiler-allocated temporary stack slots. */ 387 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ 388 # endif 389 # else 390 # define YYSTACK_ALLOC YYMALLOC 391 # define YYSTACK_FREE YYFREE 392 # ifndef YYSTACK_ALLOC_MAXIMUM 393 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 394 # endif 395 # if (defined __cplusplus && ! defined EXIT_SUCCESS \ 396 && ! ((defined YYMALLOC || defined malloc) \ 397 && (defined YYFREE || defined free))) 398 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 399 # ifndef EXIT_SUCCESS 400 # define EXIT_SUCCESS 0 401 # endif 402 # endif 403 # ifndef YYMALLOC 404 # define YYMALLOC malloc 405 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 406 || defined __cplusplus || defined _MSC_VER) 407 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 408 # endif 409 # endif 410 # ifndef YYFREE 411 # define YYFREE free 412 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 413 || defined __cplusplus || defined _MSC_VER) 414 void free (void *); /* INFRINGES ON USER NAME SPACE */ 415 # endif 416 # endif 417 # endif 418 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */ 419 420 421 #if (! defined yyoverflow \ 422 && (! defined __cplusplus \ 423 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 424 425 /* A type that is properly aligned for any stack member. */ 426 union yyalloc 427 { 428 yytype_int16 yyss_alloc; 429 YYSTYPE yyvs_alloc; 430 }; 431 432 /* The size of the maximum gap between one aligned stack and the next. */ 433 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) 434 435 /* The size of an array large to enough to hold all stacks, each with 436 N elements. */ 437 # define YYSTACK_BYTES(N) \ 438 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ 439 + YYSTACK_GAP_MAXIMUM) 440 441 # define YYCOPY_NEEDED 1 442 443 /* Relocate STACK from its old location to the new one. The 444 local variables YYSIZE and YYSTACKSIZE give the old and new number of 445 elements in the stack, and YYPTR gives the new location of the 446 stack. Advance YYPTR to a properly aligned location for the next 447 stack. */ 448 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 449 do \ 450 { \ 451 YYSIZE_T yynewbytes; \ 452 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 453 Stack = &yyptr->Stack_alloc; \ 454 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 455 yyptr += yynewbytes / sizeof (*yyptr); \ 456 } \ 457 while (YYID (0)) 458 459 #endif 460 461 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED 462 /* Copy COUNT objects from SRC to DST. The source and destination do 463 not overlap. */ 464 # ifndef YYCOPY 465 # if defined __GNUC__ && 1 < __GNUC__ 466 # define YYCOPY(Dst, Src, Count) \ 467 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) 468 # else 469 # define YYCOPY(Dst, Src, Count) \ 470 do \ 471 { \ 472 YYSIZE_T yyi; \ 473 for (yyi = 0; yyi < (Count); yyi++) \ 474 (Dst)[yyi] = (Src)[yyi]; \ 475 } \ 476 while (YYID (0)) 477 # endif 478 # endif 479 #endif /* !YYCOPY_NEEDED */ 480 481 /* YYFINAL -- State number of the termination state. */ 482 #define YYFINAL 2 483 /* YYLAST -- Last index in YYTABLE. */ 484 #define YYLAST 609 485 486 /* YYNTOKENS -- Number of terminals. */ 487 #define YYNTOKENS 71 488 /* YYNNTS -- Number of nonterminals. */ 489 #define YYNNTS 35 490 /* YYNRULES -- Number of rules. */ 491 #define YYNRULES 133 492 /* YYNRULES -- Number of states. */ 493 #define YYNSTATES 339 494 495 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ 496 #define YYUNDEFTOK 2 497 #define YYMAXUTOK 305 498 499 #define YYTRANSLATE(YYX) \ 500 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 501 502 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ 503 static const yytype_uint8 yytranslate[] = 504 { 505 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 506 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 507 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 508 2, 2, 2, 2, 2, 2, 69, 12, 5, 2, 509 67, 68, 10, 8, 64, 9, 2, 11, 2, 2, 510 2, 2, 2, 2, 2, 2, 2, 2, 61, 63, 511 6, 62, 7, 2, 2, 2, 2, 2, 2, 2, 512 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 513 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 514 2, 65, 2, 66, 4, 2, 2, 2, 2, 2, 515 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 516 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 517 2, 2, 2, 2, 3, 2, 70, 2, 2, 2, 518 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 519 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 520 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 521 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 522 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 523 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 524 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 525 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 526 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 527 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 528 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 529 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 530 2, 2, 2, 2, 2, 2, 1, 2, 13, 14, 531 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 532 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 533 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 534 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 535 55, 56, 57, 58, 59, 60 536 }; 537 538 #if YYDEBUG 539 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in 540 YYRHS. */ 541 static const yytype_uint16 yyprhs[] = 542 { 543 0, 0, 3, 4, 5, 9, 10, 15, 16, 21, 544 26, 31, 33, 36, 39, 47, 54, 60, 66, 72, 545 77, 82, 86, 90, 95, 102, 110, 118, 126, 133, 546 140, 144, 149, 156, 165, 172, 177, 181, 187, 193, 547 201, 208, 221, 229, 239, 242, 247, 252, 255, 256, 548 259, 262, 263, 266, 271, 274, 277, 280, 283, 288, 549 291, 293, 296, 300, 302, 306, 310, 312, 314, 316, 550 321, 323, 325, 327, 329, 331, 333, 335, 339, 341, 551 346, 348, 353, 355, 357, 359, 361, 364, 366, 372, 552 377, 382, 387, 392, 394, 396, 398, 400, 405, 407, 553 409, 411, 416, 418, 420, 422, 427, 432, 438, 446, 554 447, 450, 453, 455, 457, 459, 461, 463, 466, 469, 555 472, 476, 477, 480, 482, 486, 490, 494, 498, 502, 556 507, 512, 516, 520 557 }; 558 559 /* YYRHS -- A `-1'-separated list of the rules' RHS. */ 560 static const yytype_int8 yyrhs[] = 561 { 562 72, 0, -1, -1, -1, 72, 73, 74, -1, -1, 563 59, 61, 75, 74, -1, -1, 58, 61, 76, 74, 564 -1, 58, 62, 105, 63, -1, 60, 62, 105, 63, 565 -1, 63, -1, 77, 63, -1, 1, 63, -1, 13, 566 78, 89, 64, 96, 64, 91, -1, 13, 78, 89, 567 64, 96, 64, -1, 13, 78, 89, 64, 91, -1, 568 14, 78, 89, 64, 91, -1, 15, 78, 84, 64, 569 84, -1, 16, 78, 79, 80, -1, 16, 78, 79, 570 85, -1, 35, 79, 86, -1, 17, 79, 80, -1, 571 18, 78, 79, 84, -1, 19, 78, 89, 64, 96, 572 79, -1, 20, 78, 87, 64, 65, 83, 66, -1, 573 20, 78, 65, 83, 66, 64, 87, -1, 21, 78, 574 91, 64, 86, 64, 91, -1, 21, 78, 91, 64, 575 86, 79, -1, 21, 78, 79, 86, 64, 91, -1, 576 22, 78, 79, -1, 23, 100, 64, 90, -1, 23, 577 100, 64, 103, 64, 90, -1, 23, 100, 64, 103, 578 64, 90, 9, 103, -1, 24, 100, 11, 103, 64, 579 81, -1, 25, 78, 91, 79, -1, 28, 79, 81, 580 -1, 29, 78, 99, 64, 99, -1, 31, 78, 98, 581 64, 99, -1, 31, 78, 98, 64, 48, 64, 99, 582 -1, 32, 78, 99, 64, 99, 79, -1, 30, 78, 583 103, 64, 105, 64, 96, 64, 97, 64, 97, 104, 584 -1, 33, 78, 91, 64, 91, 64, 92, -1, 34, 585 78, 91, 64, 91, 64, 91, 64, 96, -1, 36, 586 88, -1, 43, 84, 64, 84, -1, 44, 84, 64, 587 84, -1, 26, 79, -1, -1, 78, 53, -1, 78, 588 54, -1, -1, 64, 79, -1, 103, 67, 41, 68, 589 -1, 58, 101, -1, 59, 101, -1, 69, 103, -1, 590 69, 88, -1, 69, 10, 69, 88, -1, 69, 57, 591 -1, 82, -1, 69, 56, -1, 69, 9, 56, -1, 592 96, -1, 96, 9, 96, -1, 96, 79, 83, -1, 593 91, -1, 81, -1, 93, -1, 93, 67, 96, 68, 594 -1, 51, -1, 52, -1, 103, -1, 88, -1, 99, 595 -1, 86, -1, 100, -1, 67, 96, 68, -1, 86, 596 -1, 103, 67, 95, 68, -1, 100, -1, 100, 67, 597 95, 68, -1, 87, -1, 91, -1, 90, -1, 93, 598 -1, 69, 103, -1, 96, -1, 67, 96, 64, 96, 599 68, -1, 96, 6, 6, 94, -1, 96, 7, 7, 600 94, -1, 96, 9, 7, 94, -1, 96, 55, 7, 601 94, -1, 96, -1, 103, -1, 46, -1, 41, -1, 602 45, 67, 105, 68, -1, 95, -1, 38, -1, 50, 603 -1, 49, 67, 105, 68, -1, 99, -1, 82, -1, 604 48, -1, 47, 67, 103, 68, -1, 103, 67, 102, 605 68, -1, 58, 101, 67, 102, 68, -1, 58, 6, 606 7, 101, 67, 39, 68, -1, -1, 8, 103, -1, 607 9, 103, -1, 39, -1, 38, -1, 40, -1, 37, 608 -1, 60, -1, 9, 103, -1, 8, 103, -1, 70, 609 103, -1, 67, 105, 68, -1, -1, 64, 105, -1, 610 103, -1, 105, 8, 105, -1, 105, 9, 105, -1, 611 105, 10, 105, -1, 105, 11, 105, -1, 105, 12, 612 105, -1, 105, 6, 6, 105, -1, 105, 7, 7, 613 105, -1, 105, 5, 105, -1, 105, 4, 105, -1, 614 105, 3, 105, -1 615 }; 616 617 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ 618 static const yytype_uint16 yyrline[] = 619 { 620 0, 68, 68, 70, 69, 77, 76, 84, 83, 89, 621 94, 100, 101, 102, 108, 112, 116, 123, 130, 137, 622 141, 148, 155, 162, 169, 176, 185, 197, 201, 205, 623 212, 219, 225, 231, 240, 247, 254, 261, 265, 269, 624 273, 280, 302, 310, 319, 326, 335, 346, 352, 355, 625 359, 364, 365, 368, 374, 382, 389, 395, 400, 405, 626 411, 414, 420, 428, 432, 441, 447, 448, 449, 450, 627 455, 461, 467, 473, 474, 477, 478, 486, 495, 496, 628 505, 506, 512, 515, 516, 517, 519, 527, 535, 544, 629 550, 556, 562, 570, 576, 584, 585, 589, 597, 598, 630 604, 605, 613, 614, 617, 623, 631, 639, 647, 657, 631 660, 664, 670, 671, 672, 675, 676, 680, 684, 688, 632 692, 698, 701, 707, 708, 712, 716, 720, 724, 728, 633 732, 736, 740, 744 634 }; 635 #endif 636 637 #if YYDEBUG || YYERROR_VERBOSE || 0 638 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 639 First, the terminals, then, starting at YYNTOKENS, nonterminals. */ 640 static const char *const yytname[] = 641 { 642 "$end", "error", "$undefined", "'|'", "'^'", "'&'", "'<'", "'>'", "'+'", 643 "'-'", "'*'", "'/'", "'%'", "LTYPE1", "LTYPE2", "LTYPE3", "LTYPE4", 644 "LTYPE5", "LTYPE6", "LTYPE7", "LTYPE8", "LTYPE9", "LTYPEA", "LTYPEB", 645 "LTYPEC", "LTYPED", "LTYPEE", "LTYPEG", "LTYPEH", "LTYPEI", "LTYPEJ", 646 "LTYPEK", "LTYPEL", "LTYPEM", "LTYPEN", "LTYPEBX", "LTYPEPLD", "LCONST", 647 "LSP", "LSB", "LFP", "LPC", "LTYPEX", "LTYPEPC", "LTYPEF", "LR", "LREG", 648 "LF", "LFREG", "LC", "LCREG", "LPSR", "LFCR", "LCOND", "LS", "LAT", 649 "LFCONST", "LSCONST", "LNAME", "LLAB", "LVAR", "':'", "'='", "';'", 650 "','", "'['", "']'", "'('", "')'", "'$'", "'~'", "$accept", "prog", 651 "$@1", "line", "$@2", "$@3", "inst", "cond", "comma", "rel", "ximm", 652 "fcon", "reglist", "gen", "nireg", "ireg", "ioreg", "oreg", "imsr", 653 "imm", "reg", "regreg", "shift", "rcon", "sreg", "spreg", "creg", 654 "frcon", "freg", "name", "offset", "pointer", "con", "oexpr", "expr", YY_NULL 655 }; 656 #endif 657 658 # ifdef YYPRINT 659 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to 660 token YYLEX-NUM. */ 661 static const yytype_uint16 yytoknum[] = 662 { 663 0, 256, 257, 124, 94, 38, 60, 62, 43, 45, 664 42, 47, 37, 258, 259, 260, 261, 262, 263, 264, 665 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 666 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 667 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 668 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 669 305, 58, 61, 59, 44, 91, 93, 40, 41, 36, 670 126 671 }; 672 # endif 673 674 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 675 static const yytype_uint8 yyr1[] = 676 { 677 0, 71, 72, 73, 72, 75, 74, 76, 74, 74, 678 74, 74, 74, 74, 77, 77, 77, 77, 77, 77, 679 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 680 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 681 77, 77, 77, 77, 77, 77, 77, 77, 78, 78, 682 78, 79, 79, 80, 80, 80, 81, 81, 81, 81, 683 81, 82, 82, 83, 83, 83, 84, 84, 84, 84, 684 84, 84, 84, 84, 84, 85, 85, 86, 87, 87, 685 88, 88, 88, 89, 89, 89, 90, 91, 92, 93, 686 93, 93, 93, 94, 94, 95, 95, 95, 96, 96, 687 97, 97, 98, 98, 99, 99, 100, 100, 100, 101, 688 101, 101, 102, 102, 102, 103, 103, 103, 103, 103, 689 103, 104, 104, 105, 105, 105, 105, 105, 105, 105, 690 105, 105, 105, 105 691 }; 692 693 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ 694 static const yytype_uint8 yyr2[] = 695 { 696 0, 2, 0, 0, 3, 0, 4, 0, 4, 4, 697 4, 1, 2, 2, 7, 6, 5, 5, 5, 4, 698 4, 3, 3, 4, 6, 7, 7, 7, 6, 6, 699 3, 4, 6, 8, 6, 4, 3, 5, 5, 7, 700 6, 12, 7, 9, 2, 4, 4, 2, 0, 2, 701 2, 0, 2, 4, 2, 2, 2, 2, 4, 2, 702 1, 2, 3, 1, 3, 3, 1, 1, 1, 4, 703 1, 1, 1, 1, 1, 1, 1, 3, 1, 4, 704 1, 4, 1, 1, 1, 1, 2, 1, 5, 4, 705 4, 4, 4, 1, 1, 1, 1, 4, 1, 1, 706 1, 4, 1, 1, 1, 4, 4, 5, 7, 0, 707 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 708 3, 0, 2, 1, 3, 3, 3, 3, 3, 4, 709 4, 3, 3, 3 710 }; 711 712 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. 713 Performed when YYTABLE doesn't specify something else to do. Zero 714 means the default is an error. */ 715 static const yytype_uint8 yydefact[] = 716 { 717 2, 3, 1, 0, 0, 48, 48, 48, 48, 51, 718 48, 48, 48, 48, 48, 0, 0, 48, 51, 51, 719 48, 48, 48, 48, 48, 48, 51, 0, 0, 0, 720 0, 0, 0, 11, 4, 0, 13, 0, 0, 0, 721 51, 51, 0, 51, 0, 0, 51, 51, 0, 0, 722 115, 109, 116, 0, 0, 0, 0, 0, 0, 47, 723 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 724 82, 44, 80, 0, 99, 96, 0, 95, 0, 104, 725 70, 71, 0, 67, 60, 0, 73, 66, 68, 98, 726 87, 74, 72, 0, 7, 0, 5, 0, 12, 49, 727 50, 0, 0, 84, 83, 85, 0, 0, 0, 52, 728 109, 109, 22, 0, 0, 0, 0, 0, 0, 0, 729 0, 87, 30, 118, 117, 0, 0, 0, 0, 123, 730 0, 119, 0, 0, 0, 51, 36, 0, 0, 0, 731 103, 0, 102, 0, 0, 0, 0, 21, 0, 0, 732 0, 0, 0, 0, 0, 61, 59, 57, 56, 0, 733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 734 86, 0, 0, 0, 109, 19, 20, 75, 76, 0, 735 54, 55, 0, 23, 0, 0, 51, 0, 0, 0, 736 0, 109, 110, 111, 0, 0, 0, 0, 0, 0, 737 0, 0, 0, 0, 0, 120, 31, 0, 113, 112, 738 114, 0, 0, 35, 0, 0, 0, 0, 0, 0, 739 0, 77, 0, 0, 0, 0, 62, 0, 45, 0, 740 0, 0, 0, 0, 46, 8, 9, 6, 10, 16, 741 87, 17, 18, 54, 0, 0, 51, 0, 0, 0, 742 0, 0, 51, 0, 0, 133, 132, 131, 0, 0, 743 124, 125, 126, 127, 128, 0, 106, 0, 37, 0, 744 104, 38, 51, 0, 0, 81, 79, 97, 105, 58, 745 69, 89, 93, 94, 90, 91, 92, 15, 53, 24, 746 0, 64, 65, 0, 29, 51, 28, 0, 107, 129, 747 130, 32, 34, 0, 0, 40, 0, 0, 14, 26, 748 25, 27, 0, 0, 0, 39, 0, 42, 0, 108, 749 33, 0, 0, 0, 0, 100, 0, 0, 43, 0, 750 0, 0, 0, 121, 88, 101, 0, 41, 122 751 }; 752 753 /* YYDEFGOTO[NTERM-NUM]. */ 754 static const yytype_int16 yydefgoto[] = 755 { 756 -1, 1, 3, 34, 168, 166, 35, 37, 109, 112, 757 83, 84, 185, 85, 176, 69, 70, 86, 102, 103, 758 87, 317, 88, 281, 89, 121, 326, 141, 91, 72, 759 128, 211, 129, 337, 130 760 }; 761 762 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 763 STATE-NUM. */ 764 #define YYPACT_NINF -128 765 static const yytype_int16 yypact[] = 766 { 767 -128, 4, -128, 315, -35, -128, -128, -128, -128, -10, 768 -128, -128, -128, -128, -128, 44, 44, -128, -10, -10, 769 -128, -128, -128, -128, -128, -128, -10, 416, 371, 371, 770 -49, 9, 32, -128, -128, 38, -128, 487, 487, 344, 771 69, -10, 391, 69, 487, 209, 489, 69, 317, 317, 772 -128, 49, -128, 317, 317, 42, 48, 106, 67, -128, 773 61, 191, 25, 93, 191, 67, 67, 68, 170, -128, 774 -128, -128, 72, 84, -128, -128, 86, -128, 109, -128, 775 -128, -128, 233, -128, -128, 80, -128, -128, 115, -128, 776 426, -128, 84, 120, -128, 317, -128, 317, -128, -128, 777 -128, 317, 137, -128, -128, -128, 148, 155, 397, -128, 778 74, 74, -128, 164, 371, 204, 240, 207, 206, 68, 779 223, -128, -128, -128, -128, 270, 317, 317, 227, -128, 780 183, -128, 90, 160, 317, -10, -128, 234, 237, 16, 781 -128, 254, -128, 255, 256, 257, 240, -128, 212, 168, 782 548, 317, 317, 428, 258, -128, -128, -128, 84, 371, 783 240, 318, 316, 335, 348, 371, 315, 502, 315, 512, 784 -128, 240, 240, 371, 49, -128, -128, -128, -128, 289, 785 -128, -128, 330, -128, 240, 291, 11, 307, 168, 312, 786 68, 74, -128, -128, 160, 317, 317, 317, 377, 379, 787 317, 317, 317, 317, 317, -128, -128, 324, -128, -128, 788 -128, 325, 337, -128, 77, 317, 338, 126, 77, 240, 789 240, -128, 339, 342, 249, 347, -128, 416, -128, 352, 790 170, 170, 170, 170, -128, -128, -128, -128, -128, -128, 791 362, -128, -128, 227, -2, 359, -10, 366, 240, 240, 792 240, 240, 375, 336, 384, 562, 590, 597, 317, 317, 793 213, 213, -128, -128, -128, 385, -128, 61, -128, 357, 794 395, -128, -10, 396, 398, -128, -128, -128, -128, -128, 795 -128, -128, -128, -128, -128, -128, -128, 240, -128, -128, 796 434, -128, -128, 400, -128, 432, -128, 424, -128, 436, 797 436, 459, -128, 240, 77, -128, 402, 240, -128, -128, 798 -128, -128, 404, 317, 411, -128, 240, -128, 415, -128, 799 -128, 216, 418, 240, 413, -128, 421, 240, -128, 317, 800 216, 419, 302, 425, -128, -128, 317, -128, 573 801 }; 802 803 /* YYPGOTO[NTERM-NUM]. */ 804 static const yytype_int16 yypgoto[] = 805 { 806 -128, -128, -128, -77, -128, -128, -128, 538, 50, 382, 807 -57, 429, 33, -7, -128, -48, -43, -21, 36, -127, 808 -23, -128, 29, 17, -101, -28, 161, -128, -37, -8, 809 -65, 299, 2, -128, -32 810 }; 811 812 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If 813 positive, shift that token. If negative, reduce the rule which 814 number is the opposite. If YYTABLE_NINF, syntax error. */ 815 #define YYTABLE_NINF -64 816 static const yytype_int16 yytable[] = 817 { 818 90, 90, 117, 136, 2, 206, 71, 55, 57, 90, 819 90, 90, 94, 95, 104, 104, 90, 56, 56, 147, 820 248, 104, 93, 120, 137, 216, 142, 143, 36, 73, 821 92, 92, 107, 48, 49, 135, 208, 209, 210, 245, 822 148, 92, 144, 145, 113, 180, 181, 118, 222, 223, 823 123, 124, 48, 49, 41, 125, 131, 126, 127, 42, 824 177, 157, 50, 167, 138, 169, 105, 105, 59, 60, 825 96, 189, 155, 105, 106, 41, 67, -63, 99, 100, 826 115, 50, 126, 127, 158, 52, 90, 223, 186, 235, 827 108, 237, 53, 114, 97, 54, 119, 122, 48, 49, 828 178, 98, 51, 170, 52, 74, 132, 183, 75, 243, 829 179, 53, 76, 77, 54, 133, 92, 134, 148, 224, 830 99, 100, 99, 100, 78, 79, 253, 50, 192, 193, 831 82, 90, 229, 41, 207, 146, 212, 90, 301, 149, 832 78, 79, 252, 240, 159, 90, 99, 100, 239, 241, 833 52, 150, 228, 151, 225, 124, 246, 53, 234, 101, 834 54, 92, 139, 255, 256, 257, 242, 92, 260, 261, 835 262, 263, 264, 78, 270, 92, 152, 268, 48, 49, 836 271, 272, 160, 269, 165, 213, 195, 196, 197, 198, 837 199, 200, 201, 202, 203, 204, 273, 274, 208, 209, 838 210, 171, 282, 282, 282, 282, 279, 50, 74, 75, 839 302, 75, 172, 76, 77, 76, 77, 48, 49, 173, 840 291, 186, 186, 202, 203, 204, 299, 300, 294, 73, 841 52, 182, 283, 283, 283, 283, 249, 53, 78, 79, 842 54, 48, 153, 154, 99, 100, 50, 309, 284, 285, 843 286, 205, 195, 196, 197, 198, 199, 200, 201, 202, 844 203, 204, 99, 100, 308, 324, 325, 315, 184, 52, 845 50, 187, 311, 188, 116, 314, 68, 191, 74, 54, 846 221, 75, 292, 293, 318, 76, 77, 190, 322, 155, 847 156, 51, 118, 52, 194, 328, 289, 332, 214, 331, 848 68, 215, 296, 54, 338, 195, 196, 197, 198, 199, 849 200, 201, 202, 203, 204, 320, 4, 277, 217, 218, 850 219, 220, 305, 231, 230, 48, 49, 227, 5, 6, 851 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 852 17, 18, 232, 19, 20, 21, 22, 23, 24, 25, 853 26, 27, 48, 49, 50, 233, 244, 247, 28, 29, 854 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 855 335, 245, 250, 30, 31, 32, 251, 52, 33, 48, 856 49, 50, 74, 258, 53, 75, 259, 54, 265, 76, 857 77, 78, 79, 266, 226, 80, 81, 99, 100, 48, 858 49, 267, 51, 297, 52, 48, 49, 275, 50, 74, 859 276, 68, 75, 82, 54, 278, 76, 77, 78, 79, 860 280, 303, 80, 81, 48, 49, 287, 288, 50, 51, 861 290, 52, 161, 162, 50, 163, 48, 49, 68, 295, 862 82, 54, 48, 49, 200, 201, 202, 203, 204, 110, 863 111, 52, 298, 50, 101, 174, 111, 52, 53, 304, 864 306, 54, 307, 312, 68, 50, 310, 54, 313, 316, 865 74, 50, 319, 75, 51, 321, 52, 76, 77, 323, 866 329, 164, 327, 68, 226, 330, 54, 334, 52, 336, 867 175, 333, 140, 254, 52, 53, 41, 0, 54, 0, 868 0, 68, 0, 0, 54, 195, 196, 197, 198, 199, 869 200, 201, 202, 203, 204, 195, 196, 197, 198, 199, 870 200, 201, 202, 203, 204, 74, 0, 74, 75, 0, 871 75, 0, 76, 77, 76, 77, 0, 0, 0, 0, 872 99, 100, 99, 100, 38, 39, 40, 0, 43, 44, 873 45, 46, 47, 41, 0, 58, 101, 0, 61, 62, 874 63, 64, 65, 66, 0, 236, 196, 197, 198, 199, 875 200, 201, 202, 203, 204, 238, 195, 196, 197, 198, 876 199, 200, 201, 202, 203, 204, 208, 209, 210, 75, 877 0, 0, 0, 76, 77, 197, 198, 199, 200, 201, 878 202, 203, 204, 198, 199, 200, 201, 202, 203, 204 879 }; 880 881 #define yypact_value_is_default(Yystate) \ 882 (!!((Yystate) == (-128))) 883 884 #define yytable_value_is_error(Yytable_value) \ 885 YYID (0) 886 887 static const yytype_int16 yycheck[] = 888 { 889 28, 29, 45, 60, 0, 132, 27, 15, 16, 37, 890 38, 39, 61, 62, 37, 38, 44, 15, 16, 67, 891 9, 44, 29, 46, 61, 9, 63, 64, 63, 27, 892 28, 29, 39, 8, 9, 58, 38, 39, 40, 41, 893 68, 39, 65, 66, 42, 110, 111, 45, 149, 150, 894 48, 49, 8, 9, 64, 6, 54, 8, 9, 9, 895 108, 82, 37, 95, 62, 97, 37, 38, 18, 19, 896 61, 119, 56, 44, 38, 64, 26, 66, 53, 54, 897 44, 37, 8, 9, 82, 60, 114, 188, 116, 166, 898 40, 168, 67, 43, 62, 70, 46, 47, 8, 9, 899 108, 63, 58, 101, 60, 38, 64, 114, 41, 174, 900 108, 67, 45, 46, 70, 67, 114, 11, 146, 151, 901 53, 54, 53, 54, 47, 48, 191, 37, 126, 127, 902 69, 159, 160, 64, 132, 67, 134, 165, 265, 67, 903 47, 48, 190, 171, 64, 173, 53, 54, 171, 172, 904 60, 67, 159, 67, 152, 153, 184, 67, 165, 69, 905 70, 159, 69, 195, 196, 197, 173, 165, 200, 201, 906 202, 203, 204, 47, 48, 173, 67, 214, 8, 9, 907 217, 218, 67, 215, 64, 135, 3, 4, 5, 6, 908 7, 8, 9, 10, 11, 12, 219, 220, 38, 39, 909 40, 64, 230, 231, 232, 233, 227, 37, 38, 41, 910 267, 41, 64, 45, 46, 45, 46, 8, 9, 64, 911 248, 249, 250, 10, 11, 12, 258, 259, 251, 227, 912 60, 67, 230, 231, 232, 233, 186, 67, 47, 48, 913 70, 8, 9, 10, 53, 54, 37, 290, 231, 232, 914 233, 68, 3, 4, 5, 6, 7, 8, 9, 10, 915 11, 12, 53, 54, 287, 49, 50, 304, 64, 60, 916 37, 64, 295, 67, 65, 303, 67, 7, 38, 70, 917 68, 41, 249, 250, 307, 45, 46, 64, 316, 56, 918 57, 58, 290, 60, 67, 323, 246, 329, 64, 327, 919 67, 64, 252, 70, 336, 3, 4, 5, 6, 7, 920 8, 9, 10, 11, 12, 313, 1, 68, 64, 64, 921 64, 64, 272, 7, 6, 8, 9, 69, 13, 14, 922 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 923 25, 26, 7, 28, 29, 30, 31, 32, 33, 34, 924 35, 36, 8, 9, 37, 7, 67, 66, 43, 44, 925 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 926 68, 41, 65, 58, 59, 60, 64, 60, 63, 8, 927 9, 37, 38, 6, 67, 41, 7, 70, 64, 45, 928 46, 47, 48, 68, 56, 51, 52, 53, 54, 8, 929 9, 64, 58, 67, 60, 8, 9, 68, 37, 38, 930 68, 67, 41, 69, 70, 68, 45, 46, 47, 48, 931 68, 64, 51, 52, 8, 9, 64, 68, 37, 58, 932 64, 60, 6, 7, 37, 9, 8, 9, 67, 64, 933 69, 70, 8, 9, 8, 9, 10, 11, 12, 58, 934 59, 60, 68, 37, 69, 58, 59, 60, 67, 64, 935 64, 70, 64, 39, 67, 37, 66, 70, 9, 67, 936 38, 37, 68, 41, 58, 64, 60, 45, 46, 64, 937 67, 55, 64, 67, 56, 64, 70, 68, 60, 64, 938 108, 330, 63, 194, 60, 67, 64, -1, 70, -1, 939 -1, 67, -1, -1, 70, 3, 4, 5, 6, 7, 940 8, 9, 10, 11, 12, 3, 4, 5, 6, 7, 941 8, 9, 10, 11, 12, 38, -1, 38, 41, -1, 942 41, -1, 45, 46, 45, 46, -1, -1, -1, -1, 943 53, 54, 53, 54, 6, 7, 8, -1, 10, 11, 944 12, 13, 14, 64, -1, 17, 69, -1, 20, 21, 945 22, 23, 24, 25, -1, 63, 4, 5, 6, 7, 946 8, 9, 10, 11, 12, 63, 3, 4, 5, 6, 947 7, 8, 9, 10, 11, 12, 38, 39, 40, 41, 948 -1, -1, -1, 45, 46, 5, 6, 7, 8, 9, 949 10, 11, 12, 6, 7, 8, 9, 10, 11, 12 950 }; 951 952 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 953 symbol of state STATE-NUM. */ 954 static const yytype_uint8 yystos[] = 955 { 956 0, 72, 0, 73, 1, 13, 14, 15, 16, 17, 957 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 958 29, 30, 31, 32, 33, 34, 35, 36, 43, 44, 959 58, 59, 60, 63, 74, 77, 63, 78, 78, 78, 960 78, 64, 79, 78, 78, 78, 78, 78, 8, 9, 961 37, 58, 60, 67, 70, 100, 103, 100, 78, 79, 962 79, 78, 78, 78, 78, 78, 78, 79, 67, 86, 963 87, 88, 100, 103, 38, 41, 45, 46, 47, 48, 964 51, 52, 69, 81, 82, 84, 88, 91, 93, 95, 965 96, 99, 103, 84, 61, 62, 61, 62, 63, 53, 966 54, 69, 89, 90, 91, 93, 89, 84, 79, 79, 967 58, 59, 80, 103, 79, 89, 65, 87, 103, 79, 968 91, 96, 79, 103, 103, 6, 8, 9, 101, 103, 969 105, 103, 64, 67, 11, 91, 81, 99, 103, 69, 970 82, 98, 99, 99, 91, 91, 67, 86, 96, 67, 971 67, 67, 67, 9, 10, 56, 57, 88, 103, 64, 972 67, 6, 7, 9, 55, 64, 76, 105, 75, 105, 973 103, 64, 64, 64, 58, 80, 85, 86, 100, 103, 974 101, 101, 67, 84, 64, 83, 96, 64, 67, 86, 975 64, 7, 103, 103, 67, 3, 4, 5, 6, 7, 976 8, 9, 10, 11, 12, 68, 90, 103, 38, 39, 977 40, 102, 103, 79, 64, 64, 9, 64, 64, 64, 978 64, 68, 95, 95, 105, 103, 56, 69, 84, 96, 979 6, 7, 7, 7, 84, 74, 63, 74, 63, 91, 980 96, 91, 84, 101, 67, 41, 96, 66, 9, 79, 981 65, 64, 86, 101, 102, 105, 105, 105, 6, 7, 982 105, 105, 105, 105, 105, 64, 68, 64, 99, 105, 983 48, 99, 99, 91, 91, 68, 68, 68, 68, 88, 984 68, 94, 96, 103, 94, 94, 94, 64, 68, 79, 985 64, 96, 83, 83, 91, 64, 79, 67, 68, 105, 986 105, 90, 81, 64, 64, 79, 64, 64, 91, 87, 987 66, 91, 39, 9, 96, 99, 67, 92, 91, 68, 988 103, 64, 96, 64, 49, 50, 97, 64, 96, 67, 989 64, 96, 105, 97, 68, 68, 64, 104, 105 990 }; 991 992 #define yyerrok (yyerrstatus = 0) 993 #define yyclearin (yychar = YYEMPTY) 994 #define YYEMPTY (-2) 995 #define YYEOF 0 996 997 #define YYACCEPT goto yyacceptlab 998 #define YYABORT goto yyabortlab 999 #define YYERROR goto yyerrorlab 1000 1001 1002 /* Like YYERROR except do call yyerror. This remains here temporarily 1003 to ease the transition to the new meaning of YYERROR, for GCC. 1004 Once GCC version 2 has supplanted version 1, this can go. However, 1005 YYFAIL appears to be in use. Nevertheless, it is formally deprecated 1006 in Bison 2.4.2's NEWS entry, where a plan to phase it out is 1007 discussed. */ 1008 1009 #define YYFAIL goto yyerrlab 1010 #if defined YYFAIL 1011 /* This is here to suppress warnings from the GCC cpp's 1012 -Wunused-macros. Normally we don't worry about that warning, but 1013 some users do, and we want to make it easy for users to remove 1014 YYFAIL uses, which will produce warnings from Bison 2.5. */ 1015 #endif 1016 1017 #define YYRECOVERING() (!!yyerrstatus) 1018 1019 #define YYBACKUP(Token, Value) \ 1020 do \ 1021 if (yychar == YYEMPTY) \ 1022 { \ 1023 yychar = (Token); \ 1024 yylval = (Value); \ 1025 YYPOPSTACK (yylen); \ 1026 yystate = *yyssp; \ 1027 goto yybackup; \ 1028 } \ 1029 else \ 1030 { \ 1031 yyerror (YY_("syntax error: cannot back up")); \ 1032 YYERROR; \ 1033 } \ 1034 while (YYID (0)) 1035 1036 /* Error token number */ 1037 #define YYTERROR 1 1038 #define YYERRCODE 256 1039 1040 1041 /* This macro is provided for backward compatibility. */ 1042 #ifndef YY_LOCATION_PRINT 1043 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 1044 #endif 1045 1046 1047 /* YYLEX -- calling `yylex' with the right arguments. */ 1048 #ifdef YYLEX_PARAM 1049 # define YYLEX yylex (YYLEX_PARAM) 1050 #else 1051 # define YYLEX yylex () 1052 #endif 1053 1054 /* Enable debugging if requested. */ 1055 #if YYDEBUG 1056 1057 # ifndef YYFPRINTF 1058 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */ 1059 # define YYFPRINTF fprintf 1060 # endif 1061 1062 # define YYDPRINTF(Args) \ 1063 do { \ 1064 if (yydebug) \ 1065 YYFPRINTF Args; \ 1066 } while (YYID (0)) 1067 1068 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 1069 do { \ 1070 if (yydebug) \ 1071 { \ 1072 YYFPRINTF (stderr, "%s ", Title); \ 1073 yy_symbol_print (stderr, \ 1074 Type, Value); \ 1075 YYFPRINTF (stderr, "\n"); \ 1076 } \ 1077 } while (YYID (0)) 1078 1079 1080 /*--------------------------------. 1081 | Print this symbol on YYOUTPUT. | 1082 `--------------------------------*/ 1083 1084 /*ARGSUSED*/ 1085 #if (defined __STDC__ || defined __C99__FUNC__ \ 1086 || defined __cplusplus || defined _MSC_VER) 1087 static void 1088 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 1089 #else 1090 static void 1091 yy_symbol_value_print (yyoutput, yytype, yyvaluep) 1092 FILE *yyoutput; 1093 int yytype; 1094 YYSTYPE const * const yyvaluep; 1095 #endif 1096 { 1097 FILE *yyo = yyoutput; 1098 YYUSE (yyo); 1099 if (!yyvaluep) 1100 return; 1101 # ifdef YYPRINT 1102 if (yytype < YYNTOKENS) 1103 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 1104 # else 1105 YYUSE (yyoutput); 1106 # endif 1107 YYUSE (yytype); 1108 } 1109 1110 1111 /*--------------------------------. 1112 | Print this symbol on YYOUTPUT. | 1113 `--------------------------------*/ 1114 1115 #if (defined __STDC__ || defined __C99__FUNC__ \ 1116 || defined __cplusplus || defined _MSC_VER) 1117 static void 1118 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 1119 #else 1120 static void 1121 yy_symbol_print (yyoutput, yytype, yyvaluep) 1122 FILE *yyoutput; 1123 int yytype; 1124 YYSTYPE const * const yyvaluep; 1125 #endif 1126 { 1127 if (yytype < YYNTOKENS) 1128 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); 1129 else 1130 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); 1131 1132 yy_symbol_value_print (yyoutput, yytype, yyvaluep); 1133 YYFPRINTF (yyoutput, ")"); 1134 } 1135 1136 /*------------------------------------------------------------------. 1137 | yy_stack_print -- Print the state stack from its BOTTOM up to its | 1138 | TOP (included). | 1139 `------------------------------------------------------------------*/ 1140 1141 #if (defined __STDC__ || defined __C99__FUNC__ \ 1142 || defined __cplusplus || defined _MSC_VER) 1143 static void 1144 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) 1145 #else 1146 static void 1147 yy_stack_print (yybottom, yytop) 1148 yytype_int16 *yybottom; 1149 yytype_int16 *yytop; 1150 #endif 1151 { 1152 YYFPRINTF (stderr, "Stack now"); 1153 for (; yybottom <= yytop; yybottom++) 1154 { 1155 int yybot = *yybottom; 1156 YYFPRINTF (stderr, " %d", yybot); 1157 } 1158 YYFPRINTF (stderr, "\n"); 1159 } 1160 1161 # define YY_STACK_PRINT(Bottom, Top) \ 1162 do { \ 1163 if (yydebug) \ 1164 yy_stack_print ((Bottom), (Top)); \ 1165 } while (YYID (0)) 1166 1167 1168 /*------------------------------------------------. 1169 | Report that the YYRULE is going to be reduced. | 1170 `------------------------------------------------*/ 1171 1172 #if (defined __STDC__ || defined __C99__FUNC__ \ 1173 || defined __cplusplus || defined _MSC_VER) 1174 static void 1175 yy_reduce_print (YYSTYPE *yyvsp, int yyrule) 1176 #else 1177 static void 1178 yy_reduce_print (yyvsp, yyrule) 1179 YYSTYPE *yyvsp; 1180 int yyrule; 1181 #endif 1182 { 1183 int yynrhs = yyr2[yyrule]; 1184 int yyi; 1185 unsigned long int yylno = yyrline[yyrule]; 1186 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", 1187 yyrule - 1, yylno); 1188 /* The symbols being reduced. */ 1189 for (yyi = 0; yyi < yynrhs; yyi++) 1190 { 1191 YYFPRINTF (stderr, " $%d = ", yyi + 1); 1192 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], 1193 &(yyvsp[(yyi + 1) - (yynrhs)]) 1194 ); 1195 YYFPRINTF (stderr, "\n"); 1196 } 1197 } 1198 1199 # define YY_REDUCE_PRINT(Rule) \ 1200 do { \ 1201 if (yydebug) \ 1202 yy_reduce_print (yyvsp, Rule); \ 1203 } while (YYID (0)) 1204 1205 /* Nonzero means print parse trace. It is left uninitialized so that 1206 multiple parsers can coexist. */ 1207 int yydebug; 1208 #else /* !YYDEBUG */ 1209 # define YYDPRINTF(Args) 1210 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) 1211 # define YY_STACK_PRINT(Bottom, Top) 1212 # define YY_REDUCE_PRINT(Rule) 1213 #endif /* !YYDEBUG */ 1214 1215 1216 /* YYINITDEPTH -- initial size of the parser's stacks. */ 1217 #ifndef YYINITDEPTH 1218 # define YYINITDEPTH 200 1219 #endif 1220 1221 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only 1222 if the built-in stack extension method is used). 1223 1224 Do not make this value too large; the results are undefined if 1225 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) 1226 evaluated with infinite-precision integer arithmetic. */ 1227 1228 #ifndef YYMAXDEPTH 1229 # define YYMAXDEPTH 10000 1230 #endif 1231 1232 1233 #if YYERROR_VERBOSE 1234 1235 # ifndef yystrlen 1236 # if defined __GLIBC__ && defined _STRING_H 1237 # define yystrlen strlen 1238 # else 1239 /* Return the length of YYSTR. */ 1240 #if (defined __STDC__ || defined __C99__FUNC__ \ 1241 || defined __cplusplus || defined _MSC_VER) 1242 static YYSIZE_T 1243 yystrlen (const char *yystr) 1244 #else 1245 static YYSIZE_T 1246 yystrlen (yystr) 1247 const char *yystr; 1248 #endif 1249 { 1250 YYSIZE_T yylen; 1251 for (yylen = 0; yystr[yylen]; yylen++) 1252 continue; 1253 return yylen; 1254 } 1255 # endif 1256 # endif 1257 1258 # ifndef yystpcpy 1259 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE 1260 # define yystpcpy stpcpy 1261 # else 1262 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 1263 YYDEST. */ 1264 #if (defined __STDC__ || defined __C99__FUNC__ \ 1265 || defined __cplusplus || defined _MSC_VER) 1266 static char * 1267 yystpcpy (char *yydest, const char *yysrc) 1268 #else 1269 static char * 1270 yystpcpy (yydest, yysrc) 1271 char *yydest; 1272 const char *yysrc; 1273 #endif 1274 { 1275 char *yyd = yydest; 1276 const char *yys = yysrc; 1277 1278 while ((*yyd++ = *yys++) != '\0') 1279 continue; 1280 1281 return yyd - 1; 1282 } 1283 # endif 1284 # endif 1285 1286 # ifndef yytnamerr 1287 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary 1288 quotes and backslashes, so that it's suitable for yyerror. The 1289 heuristic is that double-quoting is unnecessary unless the string 1290 contains an apostrophe, a comma, or backslash (other than 1291 backslash-backslash). YYSTR is taken from yytname. If YYRES is 1292 null, do not copy; instead, return the length of what the result 1293 would have been. */ 1294 static YYSIZE_T 1295 yytnamerr (char *yyres, const char *yystr) 1296 { 1297 if (*yystr == '"') 1298 { 1299 YYSIZE_T yyn = 0; 1300 char const *yyp = yystr; 1301 1302 for (;;) 1303 switch (*++yyp) 1304 { 1305 case '\'': 1306 case ',': 1307 goto do_not_strip_quotes; 1308 1309 case '\\': 1310 if (*++yyp != '\\') 1311 goto do_not_strip_quotes; 1312 /* Fall through. */ 1313 default: 1314 if (yyres) 1315 yyres[yyn] = *yyp; 1316 yyn++; 1317 break; 1318 1319 case '"': 1320 if (yyres) 1321 yyres[yyn] = '\0'; 1322 return yyn; 1323 } 1324 do_not_strip_quotes: ; 1325 } 1326 1327 if (! yyres) 1328 return yystrlen (yystr); 1329 1330 return yystpcpy (yyres, yystr) - yyres; 1331 } 1332 # endif 1333 1334 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message 1335 about the unexpected token YYTOKEN for the state stack whose top is 1336 YYSSP. 1337 1338 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is 1339 not large enough to hold the message. In that case, also set 1340 *YYMSG_ALLOC to the required number of bytes. Return 2 if the 1341 required number of bytes is too large to store. */ 1342 static int 1343 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, 1344 yytype_int16 *yyssp, int yytoken) 1345 { 1346 YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]); 1347 YYSIZE_T yysize = yysize0; 1348 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 1349 /* Internationalized format string. */ 1350 const char *yyformat = YY_NULL; 1351 /* Arguments of yyformat. */ 1352 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; 1353 /* Number of reported tokens (one for the "unexpected", one per 1354 "expected"). */ 1355 int yycount = 0; 1356 1357 /* There are many possibilities here to consider: 1358 - Assume YYFAIL is not used. It's too flawed to consider. See 1359 <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html> 1360 for details. YYERROR is fine as it does not invoke this 1361 function. 1362 - If this state is a consistent state with a default action, then 1363 the only way this function was invoked is if the default action 1364 is an error action. In that case, don't check for expected 1365 tokens because there are none. 1366 - The only way there can be no lookahead present (in yychar) is if 1367 this state is a consistent state with a default action. Thus, 1368 detecting the absence of a lookahead is sufficient to determine 1369 that there is no unexpected or expected token to report. In that 1370 case, just report a simple "syntax error". 1371 - Don't assume there isn't a lookahead just because this state is a 1372 consistent state with a default action. There might have been a 1373 previous inconsistent state, consistent state with a non-default 1374 action, or user semantic action that manipulated yychar. 1375 - Of course, the expected token list depends on states to have 1376 correct lookahead information, and it depends on the parser not 1377 to perform extra reductions after fetching a lookahead from the 1378 scanner and before detecting a syntax error. Thus, state merging 1379 (from LALR or IELR) and default reductions corrupt the expected 1380 token list. However, the list is correct for canonical LR with 1381 one exception: it will still contain any token that will not be 1382 accepted due to an error action in a later state. 1383 */ 1384 if (yytoken != YYEMPTY) 1385 { 1386 int yyn = yypact[*yyssp]; 1387 yyarg[yycount++] = yytname[yytoken]; 1388 if (!yypact_value_is_default (yyn)) 1389 { 1390 /* Start YYX at -YYN if negative to avoid negative indexes in 1391 YYCHECK. In other words, skip the first -YYN actions for 1392 this state because they are default actions. */ 1393 int yyxbegin = yyn < 0 ? -yyn : 0; 1394 /* Stay within bounds of both yycheck and yytname. */ 1395 int yychecklim = YYLAST - yyn + 1; 1396 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; 1397 int yyx; 1398 1399 for (yyx = yyxbegin; yyx < yyxend; ++yyx) 1400 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR 1401 && !yytable_value_is_error (yytable[yyx + yyn])) 1402 { 1403 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) 1404 { 1405 yycount = 1; 1406 yysize = yysize0; 1407 break; 1408 } 1409 yyarg[yycount++] = yytname[yyx]; 1410 { 1411 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); 1412 if (! (yysize <= yysize1 1413 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 1414 return 2; 1415 yysize = yysize1; 1416 } 1417 } 1418 } 1419 } 1420 1421 switch (yycount) 1422 { 1423 # define YYCASE_(N, S) \ 1424 case N: \ 1425 yyformat = S; \ 1426 break 1427 YYCASE_(0, YY_("syntax error")); 1428 YYCASE_(1, YY_("syntax error, unexpected %s")); 1429 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); 1430 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); 1431 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); 1432 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); 1433 # undef YYCASE_ 1434 } 1435 1436 { 1437 YYSIZE_T yysize1 = yysize + yystrlen (yyformat); 1438 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 1439 return 2; 1440 yysize = yysize1; 1441 } 1442 1443 if (*yymsg_alloc < yysize) 1444 { 1445 *yymsg_alloc = 2 * yysize; 1446 if (! (yysize <= *yymsg_alloc 1447 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) 1448 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; 1449 return 1; 1450 } 1451 1452 /* Avoid sprintf, as that infringes on the user's name space. 1453 Don't have undefined behavior even if the translation 1454 produced a string with the wrong number of "%s"s. */ 1455 { 1456 char *yyp = *yymsg; 1457 int yyi = 0; 1458 while ((*yyp = *yyformat) != '\0') 1459 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) 1460 { 1461 yyp += yytnamerr (yyp, yyarg[yyi++]); 1462 yyformat += 2; 1463 } 1464 else 1465 { 1466 yyp++; 1467 yyformat++; 1468 } 1469 } 1470 return 0; 1471 } 1472 #endif /* YYERROR_VERBOSE */ 1473 1474 /*-----------------------------------------------. 1475 | Release the memory associated to this symbol. | 1476 `-----------------------------------------------*/ 1477 1478 /*ARGSUSED*/ 1479 #if (defined __STDC__ || defined __C99__FUNC__ \ 1480 || defined __cplusplus || defined _MSC_VER) 1481 static void 1482 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) 1483 #else 1484 static void 1485 yydestruct (yymsg, yytype, yyvaluep) 1486 const char *yymsg; 1487 int yytype; 1488 YYSTYPE *yyvaluep; 1489 #endif 1490 { 1491 YYUSE (yyvaluep); 1492 1493 if (!yymsg) 1494 yymsg = "Deleting"; 1495 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 1496 1497 YYUSE (yytype); 1498 } 1499 1500 1501 1502 1503 /* The lookahead symbol. */ 1504 int yychar; 1505 1506 1507 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 1508 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 1509 # define YY_IGNORE_MAYBE_UNINITIALIZED_END 1510 #endif 1511 #ifndef YY_INITIAL_VALUE 1512 # define YY_INITIAL_VALUE(Value) /* Nothing. */ 1513 #endif 1514 1515 /* The semantic value of the lookahead symbol. */ 1516 YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); 1517 1518 /* Number of syntax errors so far. */ 1519 int yynerrs; 1520 1521 1522 /*----------. 1523 | yyparse. | 1524 `----------*/ 1525 1526 #ifdef YYPARSE_PARAM 1527 #if (defined __STDC__ || defined __C99__FUNC__ \ 1528 || defined __cplusplus || defined _MSC_VER) 1529 int 1530 yyparse (void *YYPARSE_PARAM) 1531 #else 1532 int 1533 yyparse (YYPARSE_PARAM) 1534 void *YYPARSE_PARAM; 1535 #endif 1536 #else /* ! YYPARSE_PARAM */ 1537 #if (defined __STDC__ || defined __C99__FUNC__ \ 1538 || defined __cplusplus || defined _MSC_VER) 1539 int 1540 yyparse (void) 1541 #else 1542 int 1543 yyparse () 1544 1545 #endif 1546 #endif 1547 { 1548 int yystate; 1549 /* Number of tokens to shift before error messages enabled. */ 1550 int yyerrstatus; 1551 1552 /* The stacks and their tools: 1553 `yyss': related to states. 1554 `yyvs': related to semantic values. 1555 1556 Refer to the stacks through separate pointers, to allow yyoverflow 1557 to reallocate them elsewhere. */ 1558 1559 /* The state stack. */ 1560 yytype_int16 yyssa[YYINITDEPTH]; 1561 yytype_int16 *yyss; 1562 yytype_int16 *yyssp; 1563 1564 /* The semantic value stack. */ 1565 YYSTYPE yyvsa[YYINITDEPTH]; 1566 YYSTYPE *yyvs; 1567 YYSTYPE *yyvsp; 1568 1569 YYSIZE_T yystacksize; 1570 1571 int yyn; 1572 int yyresult; 1573 /* Lookahead token as an internal (translated) token number. */ 1574 int yytoken = 0; 1575 /* The variables used to return semantic value and location from the 1576 action routines. */ 1577 YYSTYPE yyval; 1578 1579 #if YYERROR_VERBOSE 1580 /* Buffer for error messages, and its allocated size. */ 1581 char yymsgbuf[128]; 1582 char *yymsg = yymsgbuf; 1583 YYSIZE_T yymsg_alloc = sizeof yymsgbuf; 1584 #endif 1585 1586 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) 1587 1588 /* The number of symbols on the RHS of the reduced rule. 1589 Keep to zero when no symbol should be popped. */ 1590 int yylen = 0; 1591 1592 yyssp = yyss = yyssa; 1593 yyvsp = yyvs = yyvsa; 1594 yystacksize = YYINITDEPTH; 1595 1596 YYDPRINTF ((stderr, "Starting parse\n")); 1597 1598 yystate = 0; 1599 yyerrstatus = 0; 1600 yynerrs = 0; 1601 yychar = YYEMPTY; /* Cause a token to be read. */ 1602 goto yysetstate; 1603 1604 /*------------------------------------------------------------. 1605 | yynewstate -- Push a new state, which is found in yystate. | 1606 `------------------------------------------------------------*/ 1607 yynewstate: 1608 /* In all cases, when you get here, the value and location stacks 1609 have just been pushed. So pushing a state here evens the stacks. */ 1610 yyssp++; 1611 1612 yysetstate: 1613 *yyssp = yystate; 1614 1615 if (yyss + yystacksize - 1 <= yyssp) 1616 { 1617 /* Get the current used size of the three stacks, in elements. */ 1618 YYSIZE_T yysize = yyssp - yyss + 1; 1619 1620 #ifdef yyoverflow 1621 { 1622 /* Give user a chance to reallocate the stack. Use copies of 1623 these so that the &'s don't force the real ones into 1624 memory. */ 1625 YYSTYPE *yyvs1 = yyvs; 1626 yytype_int16 *yyss1 = yyss; 1627 1628 /* Each stack pointer address is followed by the size of the 1629 data in use in that stack, in bytes. This used to be a 1630 conditional around just the two extra args, but that might 1631 be undefined if yyoverflow is a macro. */ 1632 yyoverflow (YY_("memory exhausted"), 1633 &yyss1, yysize * sizeof (*yyssp), 1634 &yyvs1, yysize * sizeof (*yyvsp), 1635 &yystacksize); 1636 1637 yyss = yyss1; 1638 yyvs = yyvs1; 1639 } 1640 #else /* no yyoverflow */ 1641 # ifndef YYSTACK_RELOCATE 1642 goto yyexhaustedlab; 1643 # else 1644 /* Extend the stack our own way. */ 1645 if (YYMAXDEPTH <= yystacksize) 1646 goto yyexhaustedlab; 1647 yystacksize *= 2; 1648 if (YYMAXDEPTH < yystacksize) 1649 yystacksize = YYMAXDEPTH; 1650 1651 { 1652 yytype_int16 *yyss1 = yyss; 1653 union yyalloc *yyptr = 1654 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 1655 if (! yyptr) 1656 goto yyexhaustedlab; 1657 YYSTACK_RELOCATE (yyss_alloc, yyss); 1658 YYSTACK_RELOCATE (yyvs_alloc, yyvs); 1659 # undef YYSTACK_RELOCATE 1660 if (yyss1 != yyssa) 1661 YYSTACK_FREE (yyss1); 1662 } 1663 # endif 1664 #endif /* no yyoverflow */ 1665 1666 yyssp = yyss + yysize - 1; 1667 yyvsp = yyvs + yysize - 1; 1668 1669 YYDPRINTF ((stderr, "Stack size increased to %lu\n", 1670 (unsigned long int) yystacksize)); 1671 1672 if (yyss + yystacksize - 1 <= yyssp) 1673 YYABORT; 1674 } 1675 1676 YYDPRINTF ((stderr, "Entering state %d\n", yystate)); 1677 1678 if (yystate == YYFINAL) 1679 YYACCEPT; 1680 1681 goto yybackup; 1682 1683 /*-----------. 1684 | yybackup. | 1685 `-----------*/ 1686 yybackup: 1687 1688 /* Do appropriate processing given the current state. Read a 1689 lookahead token if we need one and don't already have one. */ 1690 1691 /* First try to decide what to do without reference to lookahead token. */ 1692 yyn = yypact[yystate]; 1693 if (yypact_value_is_default (yyn)) 1694 goto yydefault; 1695 1696 /* Not known => get a lookahead token if don't already have one. */ 1697 1698 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ 1699 if (yychar == YYEMPTY) 1700 { 1701 YYDPRINTF ((stderr, "Reading a token: ")); 1702 yychar = YYLEX; 1703 } 1704 1705 if (yychar <= YYEOF) 1706 { 1707 yychar = yytoken = YYEOF; 1708 YYDPRINTF ((stderr, "Now at end of input.\n")); 1709 } 1710 else 1711 { 1712 yytoken = YYTRANSLATE (yychar); 1713 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); 1714 } 1715 1716 /* If the proper action on seeing token YYTOKEN is to reduce or to 1717 detect an error, take that action. */ 1718 yyn += yytoken; 1719 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) 1720 goto yydefault; 1721 yyn = yytable[yyn]; 1722 if (yyn <= 0) 1723 { 1724 if (yytable_value_is_error (yyn)) 1725 goto yyerrlab; 1726 yyn = -yyn; 1727 goto yyreduce; 1728 } 1729 1730 /* Count tokens shifted since error; after three, turn off error 1731 status. */ 1732 if (yyerrstatus) 1733 yyerrstatus--; 1734 1735 /* Shift the lookahead token. */ 1736 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); 1737 1738 /* Discard the shifted token. */ 1739 yychar = YYEMPTY; 1740 1741 yystate = yyn; 1742 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 1743 *++yyvsp = yylval; 1744 YY_IGNORE_MAYBE_UNINITIALIZED_END 1745 1746 goto yynewstate; 1747 1748 1749 /*-----------------------------------------------------------. 1750 | yydefault -- do the default action for the current state. | 1751 `-----------------------------------------------------------*/ 1752 yydefault: 1753 yyn = yydefact[yystate]; 1754 if (yyn == 0) 1755 goto yyerrlab; 1756 goto yyreduce; 1757 1758 1759 /*-----------------------------. 1760 | yyreduce -- Do a reduction. | 1761 `-----------------------------*/ 1762 yyreduce: 1763 /* yyn is the number of a rule to reduce with. */ 1764 yylen = yyr2[yyn]; 1765 1766 /* If YYLEN is nonzero, implement the default value of the action: 1767 `$$ = $1'. 1768 1769 Otherwise, the following line sets YYVAL to garbage. 1770 This behavior is undocumented and Bison 1771 users should not rely upon it. Assigning to YYVAL 1772 unconditionally makes the parser a bit smaller, and it avoids a 1773 GCC warning that YYVAL may be used uninitialized. */ 1774 yyval = yyvsp[1-yylen]; 1775 1776 1777 YY_REDUCE_PRINT (yyn); 1778 switch (yyn) 1779 { 1780 case 3: 1781 /* Line 1787 of yacc.c */ 1782 #line 70 "a.y" 1783 { 1784 stmtline = lineno; 1785 } 1786 break; 1787 1788 case 5: 1789 /* Line 1787 of yacc.c */ 1790 #line 77 "a.y" 1791 { 1792 if((yyvsp[(1) - (2)].sym)->value != pc) 1793 yyerror("redeclaration of %s", (yyvsp[(1) - (2)].sym)->name); 1794 (yyvsp[(1) - (2)].sym)->value = pc; 1795 } 1796 break; 1797 1798 case 7: 1799 /* Line 1787 of yacc.c */ 1800 #line 84 "a.y" 1801 { 1802 (yyvsp[(1) - (2)].sym)->type = LLAB; 1803 (yyvsp[(1) - (2)].sym)->value = pc; 1804 } 1805 break; 1806 1807 case 9: 1808 /* Line 1787 of yacc.c */ 1809 #line 90 "a.y" 1810 { 1811 (yyvsp[(1) - (4)].sym)->type = LVAR; 1812 (yyvsp[(1) - (4)].sym)->value = (yyvsp[(3) - (4)].lval); 1813 } 1814 break; 1815 1816 case 10: 1817 /* Line 1787 of yacc.c */ 1818 #line 95 "a.y" 1819 { 1820 if((yyvsp[(1) - (4)].sym)->value != (yyvsp[(3) - (4)].lval)) 1821 yyerror("redeclaration of %s", (yyvsp[(1) - (4)].sym)->name); 1822 (yyvsp[(1) - (4)].sym)->value = (yyvsp[(3) - (4)].lval); 1823 } 1824 break; 1825 1826 case 14: 1827 /* Line 1787 of yacc.c */ 1828 #line 109 "a.y" 1829 { 1830 outcode((yyvsp[(1) - (7)].lval), (yyvsp[(2) - (7)].lval), &(yyvsp[(3) - (7)].addr), (yyvsp[(5) - (7)].lval), &(yyvsp[(7) - (7)].addr)); 1831 } 1832 break; 1833 1834 case 15: 1835 /* Line 1787 of yacc.c */ 1836 #line 113 "a.y" 1837 { 1838 outcode((yyvsp[(1) - (6)].lval), (yyvsp[(2) - (6)].lval), &(yyvsp[(3) - (6)].addr), (yyvsp[(5) - (6)].lval), &nullgen); 1839 } 1840 break; 1841 1842 case 16: 1843 /* Line 1787 of yacc.c */ 1844 #line 117 "a.y" 1845 { 1846 outcode((yyvsp[(1) - (5)].lval), (yyvsp[(2) - (5)].lval), &(yyvsp[(3) - (5)].addr), NREG, &(yyvsp[(5) - (5)].addr)); 1847 } 1848 break; 1849 1850 case 17: 1851 /* Line 1787 of yacc.c */ 1852 #line 124 "a.y" 1853 { 1854 outcode((yyvsp[(1) - (5)].lval), (yyvsp[(2) - (5)].lval), &(yyvsp[(3) - (5)].addr), NREG, &(yyvsp[(5) - (5)].addr)); 1855 } 1856 break; 1857 1858 case 18: 1859 /* Line 1787 of yacc.c */ 1860 #line 131 "a.y" 1861 { 1862 outcode((yyvsp[(1) - (5)].lval), (yyvsp[(2) - (5)].lval), &(yyvsp[(3) - (5)].addr), NREG, &(yyvsp[(5) - (5)].addr)); 1863 } 1864 break; 1865 1866 case 19: 1867 /* Line 1787 of yacc.c */ 1868 #line 138 "a.y" 1869 { 1870 outcode((yyvsp[(1) - (4)].lval), (yyvsp[(2) - (4)].lval), &nullgen, NREG, &(yyvsp[(4) - (4)].addr)); 1871 } 1872 break; 1873 1874 case 20: 1875 /* Line 1787 of yacc.c */ 1876 #line 142 "a.y" 1877 { 1878 outcode((yyvsp[(1) - (4)].lval), (yyvsp[(2) - (4)].lval), &nullgen, NREG, &(yyvsp[(4) - (4)].addr)); 1879 } 1880 break; 1881 1882 case 21: 1883 /* Line 1787 of yacc.c */ 1884 #line 149 "a.y" 1885 { 1886 outcode((yyvsp[(1) - (3)].lval), Always, &nullgen, NREG, &(yyvsp[(3) - (3)].addr)); 1887 } 1888 break; 1889 1890 case 22: 1891 /* Line 1787 of yacc.c */ 1892 #line 156 "a.y" 1893 { 1894 outcode((yyvsp[(1) - (3)].lval), Always, &nullgen, NREG, &(yyvsp[(3) - (3)].addr)); 1895 } 1896 break; 1897 1898 case 23: 1899 /* Line 1787 of yacc.c */ 1900 #line 163 "a.y" 1901 { 1902 outcode((yyvsp[(1) - (4)].lval), (yyvsp[(2) - (4)].lval), &nullgen, NREG, &(yyvsp[(4) - (4)].addr)); 1903 } 1904 break; 1905 1906 case 24: 1907 /* Line 1787 of yacc.c */ 1908 #line 170 "a.y" 1909 { 1910 outcode((yyvsp[(1) - (6)].lval), (yyvsp[(2) - (6)].lval), &(yyvsp[(3) - (6)].addr), (yyvsp[(5) - (6)].lval), &nullgen); 1911 } 1912 break; 1913 1914 case 25: 1915 /* Line 1787 of yacc.c */ 1916 #line 177 "a.y" 1917 { 1918 Addr g; 1919 1920 g = nullgen; 1921 g.type = D_CONST; 1922 g.offset = (yyvsp[(6) - (7)].lval); 1923 outcode((yyvsp[(1) - (7)].lval), (yyvsp[(2) - (7)].lval), &(yyvsp[(3) - (7)].addr), NREG, &g); 1924 } 1925 break; 1926 1927 case 26: 1928 /* Line 1787 of yacc.c */ 1929 #line 186 "a.y" 1930 { 1931 Addr g; 1932 1933 g = nullgen; 1934 g.type = D_CONST; 1935 g.offset = (yyvsp[(4) - (7)].lval); 1936 outcode((yyvsp[(1) - (7)].lval), (yyvsp[(2) - (7)].lval), &g, NREG, &(yyvsp[(7) - (7)].addr)); 1937 } 1938 break; 1939 1940 case 27: 1941 /* Line 1787 of yacc.c */ 1942 #line 198 "a.y" 1943 { 1944 outcode((yyvsp[(1) - (7)].lval), (yyvsp[(2) - (7)].lval), &(yyvsp[(5) - (7)].addr), (yyvsp[(3) - (7)].addr).reg, &(yyvsp[(7) - (7)].addr)); 1945 } 1946 break; 1947 1948 case 28: 1949 /* Line 1787 of yacc.c */ 1950 #line 202 "a.y" 1951 { 1952 outcode((yyvsp[(1) - (6)].lval), (yyvsp[(2) - (6)].lval), &(yyvsp[(5) - (6)].addr), (yyvsp[(3) - (6)].addr).reg, &(yyvsp[(3) - (6)].addr)); 1953 } 1954 break; 1955 1956 case 29: 1957 /* Line 1787 of yacc.c */ 1958 #line 206 "a.y" 1959 { 1960 outcode((yyvsp[(1) - (6)].lval), (yyvsp[(2) - (6)].lval), &(yyvsp[(4) - (6)].addr), (yyvsp[(6) - (6)].addr).reg, &(yyvsp[(6) - (6)].addr)); 1961 } 1962 break; 1963 1964 case 30: 1965 /* Line 1787 of yacc.c */ 1966 #line 213 "a.y" 1967 { 1968 outcode((yyvsp[(1) - (3)].lval), (yyvsp[(2) - (3)].lval), &nullgen, NREG, &nullgen); 1969 } 1970 break; 1971 1972 case 31: 1973 /* Line 1787 of yacc.c */ 1974 #line 220 "a.y" 1975 { 1976 (yyvsp[(4) - (4)].addr).type = D_CONST2; 1977 (yyvsp[(4) - (4)].addr).offset2 = ArgsSizeUnknown; 1978 outcode((yyvsp[(1) - (4)].lval), Always, &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); 1979 } 1980 break; 1981 1982 case 32: 1983 /* Line 1787 of yacc.c */ 1984 #line 226 "a.y" 1985 { 1986 (yyvsp[(6) - (6)].addr).type = D_CONST2; 1987 (yyvsp[(6) - (6)].addr).offset2 = ArgsSizeUnknown; 1988 outcode((yyvsp[(1) - (6)].lval), Always, &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr)); 1989 } 1990 break; 1991 1992 case 33: 1993 /* Line 1787 of yacc.c */ 1994 #line 232 "a.y" 1995 { 1996 (yyvsp[(6) - (8)].addr).type = D_CONST2; 1997 (yyvsp[(6) - (8)].addr).offset2 = (yyvsp[(8) - (8)].lval); 1998 outcode((yyvsp[(1) - (8)].lval), Always, &(yyvsp[(2) - (8)].addr), (yyvsp[(4) - (8)].lval), &(yyvsp[(6) - (8)].addr)); 1999 } 2000 break; 2001 2002 case 34: 2003 /* Line 1787 of yacc.c */ 2004 #line 241 "a.y" 2005 { 2006 outcode((yyvsp[(1) - (6)].lval), Always, &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr)); 2007 } 2008 break; 2009 2010 case 35: 2011 /* Line 1787 of yacc.c */ 2012 #line 248 "a.y" 2013 { 2014 outcode((yyvsp[(1) - (4)].lval), (yyvsp[(2) - (4)].lval), &(yyvsp[(3) - (4)].addr), NREG, &nullgen); 2015 } 2016 break; 2017 2018 case 36: 2019 /* Line 1787 of yacc.c */ 2020 #line 255 "a.y" 2021 { 2022 outcode((yyvsp[(1) - (3)].lval), Always, &nullgen, NREG, &(yyvsp[(3) - (3)].addr)); 2023 } 2024 break; 2025 2026 case 37: 2027 /* Line 1787 of yacc.c */ 2028 #line 262 "a.y" 2029 { 2030 outcode((yyvsp[(1) - (5)].lval), (yyvsp[(2) - (5)].lval), &(yyvsp[(3) - (5)].addr), NREG, &(yyvsp[(5) - (5)].addr)); 2031 } 2032 break; 2033 2034 case 38: 2035 /* Line 1787 of yacc.c */ 2036 #line 266 "a.y" 2037 { 2038 outcode((yyvsp[(1) - (5)].lval), (yyvsp[(2) - (5)].lval), &(yyvsp[(3) - (5)].addr), NREG, &(yyvsp[(5) - (5)].addr)); 2039 } 2040 break; 2041 2042 case 39: 2043 /* Line 1787 of yacc.c */ 2044 #line 270 "a.y" 2045 { 2046 outcode((yyvsp[(1) - (7)].lval), (yyvsp[(2) - (7)].lval), &(yyvsp[(3) - (7)].addr), (yyvsp[(5) - (7)].lval), &(yyvsp[(7) - (7)].addr)); 2047 } 2048 break; 2049 2050 case 40: 2051 /* Line 1787 of yacc.c */ 2052 #line 274 "a.y" 2053 { 2054 outcode((yyvsp[(1) - (6)].lval), (yyvsp[(2) - (6)].lval), &(yyvsp[(3) - (6)].addr), (yyvsp[(5) - (6)].addr).reg, &nullgen); 2055 } 2056 break; 2057 2058 case 41: 2059 /* Line 1787 of yacc.c */ 2060 #line 281 "a.y" 2061 { 2062 Addr g; 2063 2064 g = nullgen; 2065 g.type = D_CONST; 2066 g.offset = 2067 (0xe << 24) | /* opcode */ 2068 ((yyvsp[(1) - (12)].lval) << 20) | /* MCR/MRC */ 2069 ((yyvsp[(2) - (12)].lval) << 28) | /* scond */ 2070 (((yyvsp[(3) - (12)].lval) & 15) << 8) | /* coprocessor number */ 2071 (((yyvsp[(5) - (12)].lval) & 7) << 21) | /* coprocessor operation */ 2072 (((yyvsp[(7) - (12)].lval) & 15) << 12) | /* arm register */ 2073 (((yyvsp[(9) - (12)].lval) & 15) << 16) | /* Crn */ 2074 (((yyvsp[(11) - (12)].lval) & 15) << 0) | /* Crm */ 2075 (((yyvsp[(12) - (12)].lval) & 7) << 5) | /* coprocessor information */ 2076 (1<<4); /* must be set */ 2077 outcode(AMRC, Always, &nullgen, NREG, &g); 2078 } 2079 break; 2080 2081 case 42: 2082 /* Line 1787 of yacc.c */ 2083 #line 303 "a.y" 2084 { 2085 outcode((yyvsp[(1) - (7)].lval), (yyvsp[(2) - (7)].lval), &(yyvsp[(3) - (7)].addr), (yyvsp[(5) - (7)].addr).reg, &(yyvsp[(7) - (7)].addr)); 2086 } 2087 break; 2088 2089 case 43: 2090 /* Line 1787 of yacc.c */ 2091 #line 311 "a.y" 2092 { 2093 (yyvsp[(7) - (9)].addr).type = D_REGREG2; 2094 (yyvsp[(7) - (9)].addr).offset = (yyvsp[(9) - (9)].lval); 2095 outcode((yyvsp[(1) - (9)].lval), (yyvsp[(2) - (9)].lval), &(yyvsp[(3) - (9)].addr), (yyvsp[(5) - (9)].addr).reg, &(yyvsp[(7) - (9)].addr)); 2096 } 2097 break; 2098 2099 case 44: 2100 /* Line 1787 of yacc.c */ 2101 #line 320 "a.y" 2102 { 2103 outcode((yyvsp[(1) - (2)].lval), Always, &(yyvsp[(2) - (2)].addr), NREG, &nullgen); 2104 } 2105 break; 2106 2107 case 45: 2108 /* Line 1787 of yacc.c */ 2109 #line 327 "a.y" 2110 { 2111 if((yyvsp[(2) - (4)].addr).type != D_CONST || (yyvsp[(4) - (4)].addr).type != D_CONST) 2112 yyerror("arguments to PCDATA must be integer constants"); 2113 outcode((yyvsp[(1) - (4)].lval), Always, &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr)); 2114 } 2115 break; 2116 2117 case 46: 2118 /* Line 1787 of yacc.c */ 2119 #line 336 "a.y" 2120 { 2121 if((yyvsp[(2) - (4)].addr).type != D_CONST) 2122 yyerror("index for FUNCDATA must be integer constant"); 2123 if((yyvsp[(4) - (4)].addr).type != D_EXTERN && (yyvsp[(4) - (4)].addr).type != D_STATIC && (yyvsp[(4) - (4)].addr).type != D_OREG) 2124 yyerror("value for FUNCDATA must be symbol reference"); 2125 outcode((yyvsp[(1) - (4)].lval), Always, &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr)); 2126 } 2127 break; 2128 2129 case 47: 2130 /* Line 1787 of yacc.c */ 2131 #line 347 "a.y" 2132 { 2133 outcode((yyvsp[(1) - (2)].lval), Always, &nullgen, NREG, &nullgen); 2134 } 2135 break; 2136 2137 case 48: 2138 /* Line 1787 of yacc.c */ 2139 #line 352 "a.y" 2140 { 2141 (yyval.lval) = Always; 2142 } 2143 break; 2144 2145 case 49: 2146 /* Line 1787 of yacc.c */ 2147 #line 356 "a.y" 2148 { 2149 (yyval.lval) = ((yyvsp[(1) - (2)].lval) & ~C_SCOND) | (yyvsp[(2) - (2)].lval); 2150 } 2151 break; 2152 2153 case 50: 2154 /* Line 1787 of yacc.c */ 2155 #line 360 "a.y" 2156 { 2157 (yyval.lval) = (yyvsp[(1) - (2)].lval) | (yyvsp[(2) - (2)].lval); 2158 } 2159 break; 2160 2161 case 53: 2162 /* Line 1787 of yacc.c */ 2163 #line 369 "a.y" 2164 { 2165 (yyval.addr) = nullgen; 2166 (yyval.addr).type = D_BRANCH; 2167 (yyval.addr).offset = (yyvsp[(1) - (4)].lval) + pc; 2168 } 2169 break; 2170 2171 case 54: 2172 /* Line 1787 of yacc.c */ 2173 #line 375 "a.y" 2174 { 2175 (yyval.addr) = nullgen; 2176 if(pass == 2) 2177 yyerror("undefined label: %s", (yyvsp[(1) - (2)].sym)->name); 2178 (yyval.addr).type = D_BRANCH; 2179 (yyval.addr).offset = (yyvsp[(2) - (2)].lval); 2180 } 2181 break; 2182 2183 case 55: 2184 /* Line 1787 of yacc.c */ 2185 #line 383 "a.y" 2186 { 2187 (yyval.addr) = nullgen; 2188 (yyval.addr).type = D_BRANCH; 2189 (yyval.addr).offset = (yyvsp[(1) - (2)].sym)->value + (yyvsp[(2) - (2)].lval); 2190 } 2191 break; 2192 2193 case 56: 2194 /* Line 1787 of yacc.c */ 2195 #line 390 "a.y" 2196 { 2197 (yyval.addr) = nullgen; 2198 (yyval.addr).type = D_CONST; 2199 (yyval.addr).offset = (yyvsp[(2) - (2)].lval); 2200 } 2201 break; 2202 2203 case 57: 2204 /* Line 1787 of yacc.c */ 2205 #line 396 "a.y" 2206 { 2207 (yyval.addr) = (yyvsp[(2) - (2)].addr); 2208 (yyval.addr).type = D_CONST; 2209 } 2210 break; 2211 2212 case 58: 2213 /* Line 1787 of yacc.c */ 2214 #line 401 "a.y" 2215 { 2216 (yyval.addr) = (yyvsp[(4) - (4)].addr); 2217 (yyval.addr).type = D_OCONST; 2218 } 2219 break; 2220 2221 case 59: 2222 /* Line 1787 of yacc.c */ 2223 #line 406 "a.y" 2224 { 2225 (yyval.addr) = nullgen; 2226 (yyval.addr).type = D_SCONST; 2227 memcpy((yyval.addr).u.sval, (yyvsp[(2) - (2)].sval), sizeof((yyval.addr).u.sval)); 2228 } 2229 break; 2230 2231 case 61: 2232 /* Line 1787 of yacc.c */ 2233 #line 415 "a.y" 2234 { 2235 (yyval.addr) = nullgen; 2236 (yyval.addr).type = D_FCONST; 2237 (yyval.addr).u.dval = (yyvsp[(2) - (2)].dval); 2238 } 2239 break; 2240 2241 case 62: 2242 /* Line 1787 of yacc.c */ 2243 #line 421 "a.y" 2244 { 2245 (yyval.addr) = nullgen; 2246 (yyval.addr).type = D_FCONST; 2247 (yyval.addr).u.dval = -(yyvsp[(3) - (3)].dval); 2248 } 2249 break; 2250 2251 case 63: 2252 /* Line 1787 of yacc.c */ 2253 #line 429 "a.y" 2254 { 2255 (yyval.lval) = 1 << (yyvsp[(1) - (1)].lval); 2256 } 2257 break; 2258 2259 case 64: 2260 /* Line 1787 of yacc.c */ 2261 #line 433 "a.y" 2262 { 2263 int i; 2264 (yyval.lval)=0; 2265 for(i=(yyvsp[(1) - (3)].lval); i<=(yyvsp[(3) - (3)].lval); i++) 2266 (yyval.lval) |= 1<<i; 2267 for(i=(yyvsp[(3) - (3)].lval); i<=(yyvsp[(1) - (3)].lval); i++) 2268 (yyval.lval) |= 1<<i; 2269 } 2270 break; 2271 2272 case 65: 2273 /* Line 1787 of yacc.c */ 2274 #line 442 "a.y" 2275 { 2276 (yyval.lval) = (1<<(yyvsp[(1) - (3)].lval)) | (yyvsp[(3) - (3)].lval); 2277 } 2278 break; 2279 2280 case 69: 2281 /* Line 1787 of yacc.c */ 2282 #line 451 "a.y" 2283 { 2284 (yyval.addr) = (yyvsp[(1) - (4)].addr); 2285 (yyval.addr).reg = (yyvsp[(3) - (4)].lval); 2286 } 2287 break; 2288 2289 case 70: 2290 /* Line 1787 of yacc.c */ 2291 #line 456 "a.y" 2292 { 2293 (yyval.addr) = nullgen; 2294 (yyval.addr).type = D_PSR; 2295 (yyval.addr).reg = (yyvsp[(1) - (1)].lval); 2296 } 2297 break; 2298 2299 case 71: 2300 /* Line 1787 of yacc.c */ 2301 #line 462 "a.y" 2302 { 2303 (yyval.addr) = nullgen; 2304 (yyval.addr).type = D_FPCR; 2305 (yyval.addr).reg = (yyvsp[(1) - (1)].lval); 2306 } 2307 break; 2308 2309 case 72: 2310 /* Line 1787 of yacc.c */ 2311 #line 468 "a.y" 2312 { 2313 (yyval.addr) = nullgen; 2314 (yyval.addr).type = D_OREG; 2315 (yyval.addr).offset = (yyvsp[(1) - (1)].lval); 2316 } 2317 break; 2318 2319 case 76: 2320 /* Line 1787 of yacc.c */ 2321 #line 479 "a.y" 2322 { 2323 (yyval.addr) = (yyvsp[(1) - (1)].addr); 2324 if((yyvsp[(1) - (1)].addr).name != D_EXTERN && (yyvsp[(1) - (1)].addr).name != D_STATIC) { 2325 } 2326 } 2327 break; 2328 2329 case 77: 2330 /* Line 1787 of yacc.c */ 2331 #line 487 "a.y" 2332 { 2333 (yyval.addr) = nullgen; 2334 (yyval.addr).type = D_OREG; 2335 (yyval.addr).reg = (yyvsp[(2) - (3)].lval); 2336 (yyval.addr).offset = 0; 2337 } 2338 break; 2339 2340 case 79: 2341 /* Line 1787 of yacc.c */ 2342 #line 497 "a.y" 2343 { 2344 (yyval.addr) = nullgen; 2345 (yyval.addr).type = D_OREG; 2346 (yyval.addr).reg = (yyvsp[(3) - (4)].lval); 2347 (yyval.addr).offset = (yyvsp[(1) - (4)].lval); 2348 } 2349 break; 2350 2351 case 81: 2352 /* Line 1787 of yacc.c */ 2353 #line 507 "a.y" 2354 { 2355 (yyval.addr) = (yyvsp[(1) - (4)].addr); 2356 (yyval.addr).type = D_OREG; 2357 (yyval.addr).reg = (yyvsp[(3) - (4)].lval); 2358 } 2359 break; 2360 2361 case 86: 2362 /* Line 1787 of yacc.c */ 2363 #line 520 "a.y" 2364 { 2365 (yyval.addr) = nullgen; 2366 (yyval.addr).type = D_CONST; 2367 (yyval.addr).offset = (yyvsp[(2) - (2)].lval); 2368 } 2369 break; 2370 2371 case 87: 2372 /* Line 1787 of yacc.c */ 2373 #line 528 "a.y" 2374 { 2375 (yyval.addr) = nullgen; 2376 (yyval.addr).type = D_REG; 2377 (yyval.addr).reg = (yyvsp[(1) - (1)].lval); 2378 } 2379 break; 2380 2381 case 88: 2382 /* Line 1787 of yacc.c */ 2383 #line 536 "a.y" 2384 { 2385 (yyval.addr) = nullgen; 2386 (yyval.addr).type = D_REGREG; 2387 (yyval.addr).reg = (yyvsp[(2) - (5)].lval); 2388 (yyval.addr).offset = (yyvsp[(4) - (5)].lval); 2389 } 2390 break; 2391 2392 case 89: 2393 /* Line 1787 of yacc.c */ 2394 #line 545 "a.y" 2395 { 2396 (yyval.addr) = nullgen; 2397 (yyval.addr).type = D_SHIFT; 2398 (yyval.addr).offset = (yyvsp[(1) - (4)].lval) | (yyvsp[(4) - (4)].lval) | (0 << 5); 2399 } 2400 break; 2401 2402 case 90: 2403 /* Line 1787 of yacc.c */ 2404 #line 551 "a.y" 2405 { 2406 (yyval.addr) = nullgen; 2407 (yyval.addr).type = D_SHIFT; 2408 (yyval.addr).offset = (yyvsp[(1) - (4)].lval) | (yyvsp[(4) - (4)].lval) | (1 << 5); 2409 } 2410 break; 2411 2412 case 91: 2413 /* Line 1787 of yacc.c */ 2414 #line 557 "a.y" 2415 { 2416 (yyval.addr) = nullgen; 2417 (yyval.addr).type = D_SHIFT; 2418 (yyval.addr).offset = (yyvsp[(1) - (4)].lval) | (yyvsp[(4) - (4)].lval) | (2 << 5); 2419 } 2420 break; 2421 2422 case 92: 2423 /* Line 1787 of yacc.c */ 2424 #line 563 "a.y" 2425 { 2426 (yyval.addr) = nullgen; 2427 (yyval.addr).type = D_SHIFT; 2428 (yyval.addr).offset = (yyvsp[(1) - (4)].lval) | (yyvsp[(4) - (4)].lval) | (3 << 5); 2429 } 2430 break; 2431 2432 case 93: 2433 /* Line 1787 of yacc.c */ 2434 #line 571 "a.y" 2435 { 2436 if((yyval.lval) < 0 || (yyval.lval) >= 16) 2437 print("register value out of range\n"); 2438 (yyval.lval) = (((yyvsp[(1) - (1)].lval)&15) << 8) | (1 << 4); 2439 } 2440 break; 2441 2442 case 94: 2443 /* Line 1787 of yacc.c */ 2444 #line 577 "a.y" 2445 { 2446 if((yyval.lval) < 0 || (yyval.lval) >= 32) 2447 print("shift value out of range\n"); 2448 (yyval.lval) = ((yyvsp[(1) - (1)].lval)&31) << 7; 2449 } 2450 break; 2451 2452 case 96: 2453 /* Line 1787 of yacc.c */ 2454 #line 586 "a.y" 2455 { 2456 (yyval.lval) = REGPC; 2457 } 2458 break; 2459 2460 case 97: 2461 /* Line 1787 of yacc.c */ 2462 #line 590 "a.y" 2463 { 2464 if((yyvsp[(3) - (4)].lval) < 0 || (yyvsp[(3) - (4)].lval) >= NREG) 2465 print("register value out of range\n"); 2466 (yyval.lval) = (yyvsp[(3) - (4)].lval); 2467 } 2468 break; 2469 2470 case 99: 2471 /* Line 1787 of yacc.c */ 2472 #line 599 "a.y" 2473 { 2474 (yyval.lval) = REGSP; 2475 } 2476 break; 2477 2478 case 101: 2479 /* Line 1787 of yacc.c */ 2480 #line 606 "a.y" 2481 { 2482 if((yyvsp[(3) - (4)].lval) < 0 || (yyvsp[(3) - (4)].lval) >= NREG) 2483 print("register value out of range\n"); 2484 (yyval.lval) = (yyvsp[(3) - (4)].lval); 2485 } 2486 break; 2487 2488 case 104: 2489 /* Line 1787 of yacc.c */ 2490 #line 618 "a.y" 2491 { 2492 (yyval.addr) = nullgen; 2493 (yyval.addr).type = D_FREG; 2494 (yyval.addr).reg = (yyvsp[(1) - (1)].lval); 2495 } 2496 break; 2497 2498 case 105: 2499 /* Line 1787 of yacc.c */ 2500 #line 624 "a.y" 2501 { 2502 (yyval.addr) = nullgen; 2503 (yyval.addr).type = D_FREG; 2504 (yyval.addr).reg = (yyvsp[(3) - (4)].lval); 2505 } 2506 break; 2507 2508 case 106: 2509 /* Line 1787 of yacc.c */ 2510 #line 632 "a.y" 2511 { 2512 (yyval.addr) = nullgen; 2513 (yyval.addr).type = D_OREG; 2514 (yyval.addr).name = (yyvsp[(3) - (4)].lval); 2515 (yyval.addr).sym = nil; 2516 (yyval.addr).offset = (yyvsp[(1) - (4)].lval); 2517 } 2518 break; 2519 2520 case 107: 2521 /* Line 1787 of yacc.c */ 2522 #line 640 "a.y" 2523 { 2524 (yyval.addr) = nullgen; 2525 (yyval.addr).type = D_OREG; 2526 (yyval.addr).name = (yyvsp[(4) - (5)].lval); 2527 (yyval.addr).sym = linklookup(ctxt, (yyvsp[(1) - (5)].sym)->name, 0); 2528 (yyval.addr).offset = (yyvsp[(2) - (5)].lval); 2529 } 2530 break; 2531 2532 case 108: 2533 /* Line 1787 of yacc.c */ 2534 #line 648 "a.y" 2535 { 2536 (yyval.addr) = nullgen; 2537 (yyval.addr).type = D_OREG; 2538 (yyval.addr).name = D_STATIC; 2539 (yyval.addr).sym = linklookup(ctxt, (yyvsp[(1) - (7)].sym)->name, 1); 2540 (yyval.addr).offset = (yyvsp[(4) - (7)].lval); 2541 } 2542 break; 2543 2544 case 109: 2545 /* Line 1787 of yacc.c */ 2546 #line 657 "a.y" 2547 { 2548 (yyval.lval) = 0; 2549 } 2550 break; 2551 2552 case 110: 2553 /* Line 1787 of yacc.c */ 2554 #line 661 "a.y" 2555 { 2556 (yyval.lval) = (yyvsp[(2) - (2)].lval); 2557 } 2558 break; 2559 2560 case 111: 2561 /* Line 1787 of yacc.c */ 2562 #line 665 "a.y" 2563 { 2564 (yyval.lval) = -(yyvsp[(2) - (2)].lval); 2565 } 2566 break; 2567 2568 case 116: 2569 /* Line 1787 of yacc.c */ 2570 #line 677 "a.y" 2571 { 2572 (yyval.lval) = (yyvsp[(1) - (1)].sym)->value; 2573 } 2574 break; 2575 2576 case 117: 2577 /* Line 1787 of yacc.c */ 2578 #line 681 "a.y" 2579 { 2580 (yyval.lval) = -(yyvsp[(2) - (2)].lval); 2581 } 2582 break; 2583 2584 case 118: 2585 /* Line 1787 of yacc.c */ 2586 #line 685 "a.y" 2587 { 2588 (yyval.lval) = (yyvsp[(2) - (2)].lval); 2589 } 2590 break; 2591 2592 case 119: 2593 /* Line 1787 of yacc.c */ 2594 #line 689 "a.y" 2595 { 2596 (yyval.lval) = ~(yyvsp[(2) - (2)].lval); 2597 } 2598 break; 2599 2600 case 120: 2601 /* Line 1787 of yacc.c */ 2602 #line 693 "a.y" 2603 { 2604 (yyval.lval) = (yyvsp[(2) - (3)].lval); 2605 } 2606 break; 2607 2608 case 121: 2609 /* Line 1787 of yacc.c */ 2610 #line 698 "a.y" 2611 { 2612 (yyval.lval) = 0; 2613 } 2614 break; 2615 2616 case 122: 2617 /* Line 1787 of yacc.c */ 2618 #line 702 "a.y" 2619 { 2620 (yyval.lval) = (yyvsp[(2) - (2)].lval); 2621 } 2622 break; 2623 2624 case 124: 2625 /* Line 1787 of yacc.c */ 2626 #line 709 "a.y" 2627 { 2628 (yyval.lval) = (yyvsp[(1) - (3)].lval) + (yyvsp[(3) - (3)].lval); 2629 } 2630 break; 2631 2632 case 125: 2633 /* Line 1787 of yacc.c */ 2634 #line 713 "a.y" 2635 { 2636 (yyval.lval) = (yyvsp[(1) - (3)].lval) - (yyvsp[(3) - (3)].lval); 2637 } 2638 break; 2639 2640 case 126: 2641 /* Line 1787 of yacc.c */ 2642 #line 717 "a.y" 2643 { 2644 (yyval.lval) = (yyvsp[(1) - (3)].lval) * (yyvsp[(3) - (3)].lval); 2645 } 2646 break; 2647 2648 case 127: 2649 /* Line 1787 of yacc.c */ 2650 #line 721 "a.y" 2651 { 2652 (yyval.lval) = (yyvsp[(1) - (3)].lval) / (yyvsp[(3) - (3)].lval); 2653 } 2654 break; 2655 2656 case 128: 2657 /* Line 1787 of yacc.c */ 2658 #line 725 "a.y" 2659 { 2660 (yyval.lval) = (yyvsp[(1) - (3)].lval) % (yyvsp[(3) - (3)].lval); 2661 } 2662 break; 2663 2664 case 129: 2665 /* Line 1787 of yacc.c */ 2666 #line 729 "a.y" 2667 { 2668 (yyval.lval) = (yyvsp[(1) - (4)].lval) << (yyvsp[(4) - (4)].lval); 2669 } 2670 break; 2671 2672 case 130: 2673 /* Line 1787 of yacc.c */ 2674 #line 733 "a.y" 2675 { 2676 (yyval.lval) = (yyvsp[(1) - (4)].lval) >> (yyvsp[(4) - (4)].lval); 2677 } 2678 break; 2679 2680 case 131: 2681 /* Line 1787 of yacc.c */ 2682 #line 737 "a.y" 2683 { 2684 (yyval.lval) = (yyvsp[(1) - (3)].lval) & (yyvsp[(3) - (3)].lval); 2685 } 2686 break; 2687 2688 case 132: 2689 /* Line 1787 of yacc.c */ 2690 #line 741 "a.y" 2691 { 2692 (yyval.lval) = (yyvsp[(1) - (3)].lval) ^ (yyvsp[(3) - (3)].lval); 2693 } 2694 break; 2695 2696 case 133: 2697 /* Line 1787 of yacc.c */ 2698 #line 745 "a.y" 2699 { 2700 (yyval.lval) = (yyvsp[(1) - (3)].lval) | (yyvsp[(3) - (3)].lval); 2701 } 2702 break; 2703 2704 2705 /* Line 1787 of yacc.c */ 2706 #line 2707 "y.tab.c" 2707 default: break; 2708 } 2709 /* User semantic actions sometimes alter yychar, and that requires 2710 that yytoken be updated with the new translation. We take the 2711 approach of translating immediately before every use of yytoken. 2712 One alternative is translating here after every semantic action, 2713 but that translation would be missed if the semantic action invokes 2714 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or 2715 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an 2716 incorrect destructor might then be invoked immediately. In the 2717 case of YYERROR or YYBACKUP, subsequent parser actions might lead 2718 to an incorrect destructor call or verbose syntax error message 2719 before the lookahead is translated. */ 2720 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); 2721 2722 YYPOPSTACK (yylen); 2723 yylen = 0; 2724 YY_STACK_PRINT (yyss, yyssp); 2725 2726 *++yyvsp = yyval; 2727 2728 /* Now `shift' the result of the reduction. Determine what state 2729 that goes to, based on the state we popped back to and the rule 2730 number reduced by. */ 2731 2732 yyn = yyr1[yyn]; 2733 2734 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; 2735 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) 2736 yystate = yytable[yystate]; 2737 else 2738 yystate = yydefgoto[yyn - YYNTOKENS]; 2739 2740 goto yynewstate; 2741 2742 2743 /*------------------------------------. 2744 | yyerrlab -- here on detecting error | 2745 `------------------------------------*/ 2746 yyerrlab: 2747 /* Make sure we have latest lookahead translation. See comments at 2748 user semantic actions for why this is necessary. */ 2749 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); 2750 2751 /* If not already recovering from an error, report this error. */ 2752 if (!yyerrstatus) 2753 { 2754 ++yynerrs; 2755 #if ! YYERROR_VERBOSE 2756 yyerror (YY_("syntax error")); 2757 #else 2758 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ 2759 yyssp, yytoken) 2760 { 2761 char const *yymsgp = YY_("syntax error"); 2762 int yysyntax_error_status; 2763 yysyntax_error_status = YYSYNTAX_ERROR; 2764 if (yysyntax_error_status == 0) 2765 yymsgp = yymsg; 2766 else if (yysyntax_error_status == 1) 2767 { 2768 if (yymsg != yymsgbuf) 2769 YYSTACK_FREE (yymsg); 2770 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); 2771 if (!yymsg) 2772 { 2773 yymsg = yymsgbuf; 2774 yymsg_alloc = sizeof yymsgbuf; 2775 yysyntax_error_status = 2; 2776 } 2777 else 2778 { 2779 yysyntax_error_status = YYSYNTAX_ERROR; 2780 yymsgp = yymsg; 2781 } 2782 } 2783 yyerror (yymsgp); 2784 if (yysyntax_error_status == 2) 2785 goto yyexhaustedlab; 2786 } 2787 # undef YYSYNTAX_ERROR 2788 #endif 2789 } 2790 2791 2792 2793 if (yyerrstatus == 3) 2794 { 2795 /* If just tried and failed to reuse lookahead token after an 2796 error, discard it. */ 2797 2798 if (yychar <= YYEOF) 2799 { 2800 /* Return failure if at end of input. */ 2801 if (yychar == YYEOF) 2802 YYABORT; 2803 } 2804 else 2805 { 2806 yydestruct ("Error: discarding", 2807 yytoken, &yylval); 2808 yychar = YYEMPTY; 2809 } 2810 } 2811 2812 /* Else will try to reuse lookahead token after shifting the error 2813 token. */ 2814 goto yyerrlab1; 2815 2816 2817 /*---------------------------------------------------. 2818 | yyerrorlab -- error raised explicitly by YYERROR. | 2819 `---------------------------------------------------*/ 2820 yyerrorlab: 2821 2822 /* Pacify compilers like GCC when the user code never invokes 2823 YYERROR and the label yyerrorlab therefore never appears in user 2824 code. */ 2825 if (/*CONSTCOND*/ 0) 2826 goto yyerrorlab; 2827 2828 /* Do not reclaim the symbols of the rule which action triggered 2829 this YYERROR. */ 2830 YYPOPSTACK (yylen); 2831 yylen = 0; 2832 YY_STACK_PRINT (yyss, yyssp); 2833 yystate = *yyssp; 2834 goto yyerrlab1; 2835 2836 2837 /*-------------------------------------------------------------. 2838 | yyerrlab1 -- common code for both syntax error and YYERROR. | 2839 `-------------------------------------------------------------*/ 2840 yyerrlab1: 2841 yyerrstatus = 3; /* Each real token shifted decrements this. */ 2842 2843 for (;;) 2844 { 2845 yyn = yypact[yystate]; 2846 if (!yypact_value_is_default (yyn)) 2847 { 2848 yyn += YYTERROR; 2849 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 2850 { 2851 yyn = yytable[yyn]; 2852 if (0 < yyn) 2853 break; 2854 } 2855 } 2856 2857 /* Pop the current state because it cannot handle the error token. */ 2858 if (yyssp == yyss) 2859 YYABORT; 2860 2861 2862 yydestruct ("Error: popping", 2863 yystos[yystate], yyvsp); 2864 YYPOPSTACK (1); 2865 yystate = *yyssp; 2866 YY_STACK_PRINT (yyss, yyssp); 2867 } 2868 2869 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 2870 *++yyvsp = yylval; 2871 YY_IGNORE_MAYBE_UNINITIALIZED_END 2872 2873 2874 /* Shift the error token. */ 2875 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); 2876 2877 yystate = yyn; 2878 goto yynewstate; 2879 2880 2881 /*-------------------------------------. 2882 | yyacceptlab -- YYACCEPT comes here. | 2883 `-------------------------------------*/ 2884 yyacceptlab: 2885 yyresult = 0; 2886 goto yyreturn; 2887 2888 /*-----------------------------------. 2889 | yyabortlab -- YYABORT comes here. | 2890 `-----------------------------------*/ 2891 yyabortlab: 2892 yyresult = 1; 2893 goto yyreturn; 2894 2895 #if !defined yyoverflow || YYERROR_VERBOSE 2896 /*-------------------------------------------------. 2897 | yyexhaustedlab -- memory exhaustion comes here. | 2898 `-------------------------------------------------*/ 2899 yyexhaustedlab: 2900 yyerror (YY_("memory exhausted")); 2901 yyresult = 2; 2902 /* Fall through. */ 2903 #endif 2904 2905 yyreturn: 2906 if (yychar != YYEMPTY) 2907 { 2908 /* Make sure we have latest lookahead translation. See comments at 2909 user semantic actions for why this is necessary. */ 2910 yytoken = YYTRANSLATE (yychar); 2911 yydestruct ("Cleanup: discarding lookahead", 2912 yytoken, &yylval); 2913 } 2914 /* Do not reclaim the symbols of the rule which action triggered 2915 this YYABORT or YYACCEPT. */ 2916 YYPOPSTACK (yylen); 2917 YY_STACK_PRINT (yyss, yyssp); 2918 while (yyssp != yyss) 2919 { 2920 yydestruct ("Cleanup: popping", 2921 yystos[*yyssp], yyvsp); 2922 YYPOPSTACK (1); 2923 } 2924 #ifndef yyoverflow 2925 if (yyss != yyssa) 2926 YYSTACK_FREE (yyss); 2927 #endif 2928 #if YYERROR_VERBOSE 2929 if (yymsg != yymsgbuf) 2930 YYSTACK_FREE (yymsg); 2931 #endif 2932 /* Make sure YYID is used. */ 2933 return YYID (yyresult); 2934 } 2935 2936