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