diff options
Diffstat (limited to 'src/cmd/8a/y.tab.c')
-rw-r--r-- | src/cmd/8a/y.tab.c | 1050 |
1 files changed, 518 insertions, 532 deletions
diff --git a/src/cmd/8a/y.tab.c b/src/cmd/8a/y.tab.c index 85279c21f..f284d8ea2 100644 --- a/src/cmd/8a/y.tab.c +++ b/src/cmd/8a/y.tab.c @@ -411,16 +411,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 546 +#define YYLAST 561 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 54 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 41 +#define YYNNTS 40 /* YYNRULES -- Number of rules. */ -#define YYNRULES 135 +#define YYNRULES 132 /* YYNRULES -- Number of states. */ -#define YYNSTATES 276 +#define YYNSTATES 270 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -469,91 +469,90 @@ static const yytype_uint8 yytranslate[] = YYRHS. */ static const yytype_uint16 yyprhs[] = { - 0, 0, 3, 4, 5, 9, 10, 15, 16, 21, - 23, 26, 29, 33, 37, 40, 43, 46, 49, 52, + 0, 0, 3, 4, 5, 9, 10, 15, 17, 20, + 23, 27, 31, 34, 37, 40, 43, 46, 49, 52, 55, 58, 61, 64, 67, 70, 73, 76, 79, 82, - 85, 88, 91, 92, 94, 98, 102, 105, 107, 110, - 112, 115, 117, 121, 127, 131, 137, 140, 142, 145, - 147, 149, 153, 159, 163, 169, 172, 174, 178, 182, - 188, 194, 200, 204, 208, 210, 212, 214, 216, 219, - 222, 224, 226, 228, 230, 232, 237, 240, 243, 245, - 247, 249, 251, 253, 255, 258, 261, 264, 267, 272, - 278, 282, 285, 287, 290, 294, 299, 301, 303, 305, - 310, 315, 322, 332, 342, 346, 350, 355, 361, 370, - 372, 379, 385, 393, 394, 397, 400, 402, 404, 406, - 408, 410, 413, 416, 419, 423, 425, 429, 433, 437, - 441, 445, 450, 455, 459, 463 + 85, 86, 88, 92, 96, 99, 101, 104, 106, 109, + 111, 115, 121, 125, 131, 134, 136, 139, 141, 143, + 147, 153, 157, 163, 166, 168, 172, 176, 182, 188, + 194, 198, 202, 204, 206, 208, 210, 213, 216, 218, + 220, 222, 224, 226, 231, 234, 236, 238, 240, 242, + 244, 246, 249, 252, 255, 258, 263, 269, 273, 276, + 278, 281, 285, 290, 292, 294, 296, 301, 306, 313, + 323, 333, 337, 341, 346, 352, 361, 363, 370, 376, + 384, 385, 388, 391, 393, 395, 397, 399, 401, 404, + 407, 410, 414, 416, 420, 424, 428, 432, 436, 441, + 446, 450, 454 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int8 yyrhs[] = { 55, 0, -1, -1, -1, 55, 56, 57, -1, -1, - 44, 46, 58, 57, -1, -1, 43, 46, 59, 57, - -1, 47, -1, 60, 47, -1, 1, 47, -1, 43, - 48, 94, -1, 45, 48, 94, -1, 13, 61, -1, - 14, 65, -1, 15, 64, -1, 16, 62, -1, 17, - 63, -1, 21, 66, -1, 19, 67, -1, 22, 68, - -1, 18, 69, -1, 20, 70, -1, 23, 71, -1, - 24, 72, -1, 25, 73, -1, 26, 74, -1, 27, - 75, -1, 28, 76, -1, 29, 77, -1, 30, 78, - -1, -1, 49, -1, 81, 49, 79, -1, 79, 49, - 81, -1, 81, 49, -1, 81, -1, 49, 79, -1, - 79, -1, 49, 82, -1, 82, -1, 84, 49, 82, - -1, 90, 11, 93, 49, 84, -1, 87, 49, 85, - -1, 87, 49, 93, 49, 85, -1, 49, 80, -1, - 80, -1, 10, 90, -1, 61, -1, 65, -1, 81, - 49, 79, -1, 81, 49, 79, 46, 36, -1, 81, - 49, 79, -1, 81, 49, 79, 46, 37, -1, 81, - 49, -1, 81, -1, 81, 49, 79, -1, 87, 49, - 84, -1, 87, 49, 93, 49, 84, -1, 83, 49, - 79, 49, 93, -1, 84, 49, 79, 49, 83, -1, - 81, 49, 81, -1, 81, 49, 81, -1, 83, -1, - 87, -1, 82, -1, 89, -1, 10, 83, -1, 10, - 88, -1, 83, -1, 88, -1, 84, -1, 79, -1, - 84, -1, 93, 50, 33, 51, -1, 43, 91, -1, - 44, 91, -1, 35, -1, 38, -1, 36, -1, 39, - -1, 42, -1, 37, -1, 52, 93, -1, 52, 90, - -1, 52, 41, -1, 52, 40, -1, 52, 50, 40, - 51, -1, 52, 50, 9, 40, 51, -1, 52, 9, - 40, -1, 52, 86, -1, 31, -1, 9, 31, -1, - 31, 9, 31, -1, 9, 31, 9, 31, -1, 88, - -1, 89, -1, 93, -1, 93, 50, 36, 51, -1, - 93, 50, 42, 51, -1, 93, 50, 36, 10, 93, - 51, -1, 93, 50, 36, 51, 50, 36, 10, 93, - 51, -1, 93, 50, 36, 51, 50, 37, 10, 93, - 51, -1, 50, 36, 51, -1, 50, 42, 51, -1, - 93, 50, 37, 51, -1, 50, 36, 10, 93, 51, - -1, 50, 36, 51, 50, 36, 10, 93, 51, -1, - 90, -1, 90, 50, 36, 10, 93, 51, -1, 43, - 91, 50, 92, 51, -1, 43, 6, 7, 91, 50, - 34, 51, -1, -1, 8, 93, -1, 9, 93, -1, - 34, -1, 42, -1, 32, -1, 31, -1, 45, -1, - 9, 93, -1, 8, 93, -1, 53, 93, -1, 50, - 94, 51, -1, 93, -1, 94, 8, 94, -1, 94, - 9, 94, -1, 94, 10, 94, -1, 94, 11, 94, - -1, 94, 12, 94, -1, 94, 6, 6, 94, -1, - 94, 7, 7, 94, -1, 94, 5, 94, -1, 94, - 4, 94, -1, 94, 3, 94, -1 + 43, 46, 58, 57, -1, 47, -1, 59, 47, -1, + 1, 47, -1, 43, 48, 93, -1, 45, 48, 93, + -1, 13, 60, -1, 14, 64, -1, 15, 63, -1, + 16, 61, -1, 17, 62, -1, 21, 65, -1, 19, + 66, -1, 22, 67, -1, 18, 68, -1, 20, 69, + -1, 23, 70, -1, 24, 71, -1, 25, 72, -1, + 26, 73, -1, 27, 74, -1, 28, 75, -1, 29, + 76, -1, 30, 77, -1, -1, 49, -1, 80, 49, + 78, -1, 78, 49, 80, -1, 80, 49, -1, 80, + -1, 49, 78, -1, 78, -1, 49, 81, -1, 81, + -1, 83, 49, 81, -1, 89, 11, 92, 49, 83, + -1, 86, 49, 84, -1, 86, 49, 92, 49, 84, + -1, 49, 79, -1, 79, -1, 10, 89, -1, 60, + -1, 64, -1, 80, 49, 78, -1, 80, 49, 78, + 46, 36, -1, 80, 49, 78, -1, 80, 49, 78, + 46, 37, -1, 80, 49, -1, 80, -1, 80, 49, + 78, -1, 86, 49, 83, -1, 86, 49, 92, 49, + 83, -1, 82, 49, 78, 49, 92, -1, 83, 49, + 78, 49, 82, -1, 80, 49, 80, -1, 80, 49, + 80, -1, 82, -1, 86, -1, 81, -1, 88, -1, + 10, 82, -1, 10, 87, -1, 82, -1, 87, -1, + 83, -1, 78, -1, 83, -1, 92, 50, 33, 51, + -1, 43, 90, -1, 35, -1, 38, -1, 36, -1, + 39, -1, 42, -1, 37, -1, 52, 92, -1, 52, + 89, -1, 52, 41, -1, 52, 40, -1, 52, 50, + 40, 51, -1, 52, 50, 9, 40, 51, -1, 52, + 9, 40, -1, 52, 85, -1, 31, -1, 9, 31, + -1, 31, 9, 31, -1, 9, 31, 9, 31, -1, + 87, -1, 88, -1, 92, -1, 92, 50, 36, 51, + -1, 92, 50, 42, 51, -1, 92, 50, 36, 10, + 92, 51, -1, 92, 50, 36, 51, 50, 36, 10, + 92, 51, -1, 92, 50, 36, 51, 50, 37, 10, + 92, 51, -1, 50, 36, 51, -1, 50, 42, 51, + -1, 92, 50, 37, 51, -1, 50, 36, 10, 92, + 51, -1, 50, 36, 51, 50, 36, 10, 92, 51, + -1, 89, -1, 89, 50, 36, 10, 92, 51, -1, + 43, 90, 50, 91, 51, -1, 43, 6, 7, 90, + 50, 34, 51, -1, -1, 8, 92, -1, 9, 92, + -1, 34, -1, 42, -1, 32, -1, 31, -1, 45, + -1, 9, 92, -1, 8, 92, -1, 53, 92, -1, + 50, 93, 51, -1, 92, -1, 93, 8, 93, -1, + 93, 9, 93, -1, 93, 10, 93, -1, 93, 11, + 93, -1, 93, 12, 93, -1, 93, 6, 6, 93, + -1, 93, 7, 7, 93, -1, 93, 5, 93, -1, + 93, 4, 93, -1, 93, 3, 93, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 69, 69, 71, 70, 78, 77, 85, 84, 90, - 91, 92, 95, 100, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 126, 130, 137, 144, 151, 156, 163, 168, - 175, 180, 185, 192, 200, 205, 213, 218, 223, 232, - 233, 236, 241, 251, 256, 266, 271, 276, 283, 288, - 296, 304, 314, 323, 334, 335, 338, 339, 340, 344, - 348, 349, 350, 353, 354, 357, 363, 371, 379, 384, - 389, 394, 399, 404, 411, 417, 428, 434, 440, 446, - 452, 460, 469, 474, 479, 484, 491, 492, 495, 501, - 507, 513, 522, 531, 540, 545, 550, 556, 564, 574, - 578, 587, 594, 603, 606, 610, 616, 617, 621, 624, - 625, 629, 633, 637, 641, 647, 648, 652, 656, 660, - 664, 668, 672, 676, 680, 684 + 0, 69, 69, 71, 70, 78, 77, 86, 87, 88, + 91, 96, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 122, 126, 133, 140, 147, 152, 159, 164, 171, 176, + 181, 188, 196, 202, 211, 216, 221, 230, 231, 234, + 239, 249, 254, 264, 269, 274, 281, 286, 294, 302, + 312, 321, 332, 333, 336, 337, 338, 342, 346, 347, + 348, 351, 352, 355, 361, 372, 377, 382, 387, 392, + 397, 404, 410, 421, 427, 433, 439, 445, 453, 462, + 467, 472, 477, 484, 485, 488, 494, 500, 506, 515, + 524, 533, 538, 543, 549, 557, 567, 571, 580, 587, + 596, 599, 603, 609, 610, 614, 617, 618, 622, 626, + 630, 634, 640, 641, 645, 649, 653, 657, 661, 665, + 669, 673, 677 }; #endif @@ -569,10 +568,10 @@ static const char *const yytname[] = "LCONST", "LFP", "LPC", "LSB", "LBREG", "LLREG", "LSREG", "LFREG", "LXREG", "LFCONST", "LSCONST", "LSP", "LNAME", "LLAB", "LVAR", "':'", "';'", "'='", "','", "'('", "')'", "'$'", "'~'", "$accept", "prog", "@1", - "line", "@2", "@3", "inst", "nonnon", "rimrem", "remrim", "rimnon", - "nonrem", "nonrel", "spec1", "spec2", "spec3", "spec4", "spec5", "spec6", - "spec7", "spec8", "spec9", "spec10", "spec11", "spec12", "rem", "rom", - "rim", "rel", "reg", "imm", "imm2", "con2", "mem", "omem", "nmem", "nam", + "line", "@2", "inst", "nonnon", "rimrem", "remrim", "rimnon", "nonrem", + "nonrel", "spec1", "spec2", "spec3", "spec4", "spec5", "spec6", "spec7", + "spec8", "spec9", "spec10", "spec11", "spec12", "rem", "rom", "rim", + "rel", "reg", "imm", "imm2", "con2", "mem", "omem", "nmem", "nam", "offset", "pointer", "con", "expr", 0 }; #endif @@ -594,39 +593,39 @@ static const yytype_uint16 yytoknum[] = /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 54, 55, 56, 55, 58, 57, 59, 57, 57, - 57, 57, 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 61, 61, 62, 63, 64, 64, 65, 65, - 66, 66, 66, 67, 68, 68, 69, 69, 69, 70, - 70, 71, 71, 72, 72, 73, 73, 73, 74, 74, - 75, 76, 77, 78, 79, 79, 80, 80, 80, 80, - 80, 80, 80, 81, 81, 82, 82, 82, 83, 83, - 83, 83, 83, 83, 84, 84, 84, 84, 84, 84, - 84, 85, 86, 86, 86, 86, 87, 87, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 89, - 89, 90, 90, 91, 91, 91, 92, 92, 92, 93, - 93, 93, 93, 93, 93, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94 + 0, 54, 55, 56, 55, 58, 57, 57, 57, 57, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 60, 60, 61, 62, 63, 63, 64, 64, 65, 65, + 65, 66, 67, 67, 68, 68, 68, 69, 69, 70, + 70, 71, 71, 72, 72, 72, 73, 73, 74, 75, + 76, 77, 78, 78, 79, 79, 79, 79, 79, 79, + 79, 80, 80, 81, 81, 82, 82, 82, 82, 82, + 82, 83, 83, 83, 83, 83, 83, 83, 84, 85, + 85, 85, 85, 86, 86, 87, 87, 87, 87, 87, + 87, 87, 87, 87, 87, 87, 88, 88, 89, 89, + 90, 90, 90, 91, 91, 91, 92, 92, 92, 92, + 92, 92, 93, 93, 93, 93, 93, 93, 93, 93, + 93, 93, 93 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { - 0, 2, 0, 0, 3, 0, 4, 0, 4, 1, - 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, + 0, 2, 0, 0, 3, 0, 4, 1, 2, 2, + 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 0, 1, 3, 3, 2, 1, 2, 1, - 2, 1, 3, 5, 3, 5, 2, 1, 2, 1, - 1, 3, 5, 3, 5, 2, 1, 3, 3, 5, - 5, 5, 3, 3, 1, 1, 1, 1, 2, 2, - 1, 1, 1, 1, 1, 4, 2, 2, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, 4, 5, - 3, 2, 1, 2, 3, 4, 1, 1, 1, 4, - 4, 6, 9, 9, 3, 3, 4, 5, 8, 1, - 6, 5, 7, 0, 2, 2, 1, 1, 1, 1, - 1, 2, 2, 2, 3, 1, 3, 3, 3, 3, - 3, 4, 4, 3, 3, 3 + 0, 1, 3, 3, 2, 1, 2, 1, 2, 1, + 3, 5, 3, 5, 2, 1, 2, 1, 1, 3, + 5, 3, 5, 2, 1, 3, 3, 5, 5, 5, + 3, 3, 1, 1, 1, 1, 2, 2, 1, 1, + 1, 1, 1, 4, 2, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 4, 5, 3, 2, 1, + 2, 3, 4, 1, 1, 1, 4, 4, 6, 9, + 9, 3, 3, 4, 5, 8, 1, 6, 5, 7, + 0, 2, 2, 1, 1, 1, 1, 1, 2, 2, + 2, 3, 1, 3, 3, 3, 3, 3, 4, 4, + 3, 3, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -634,89 +633,85 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 3, 1, 0, 0, 32, 0, 0, 0, 0, - 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 9, 4, 0, 11, - 33, 14, 0, 0, 119, 78, 80, 83, 79, 81, - 82, 113, 120, 0, 0, 0, 15, 39, 64, 65, - 96, 97, 109, 98, 0, 16, 73, 37, 74, 17, - 0, 18, 0, 0, 113, 113, 0, 22, 47, 66, - 70, 72, 71, 67, 98, 20, 0, 33, 49, 50, - 23, 113, 0, 0, 19, 41, 0, 0, 21, 0, - 24, 0, 25, 0, 26, 56, 27, 0, 28, 0, - 29, 0, 30, 0, 31, 0, 7, 0, 5, 0, - 10, 122, 121, 0, 0, 0, 0, 38, 0, 0, - 125, 0, 123, 0, 0, 0, 87, 86, 0, 85, - 84, 36, 0, 0, 68, 69, 48, 76, 77, 0, - 46, 0, 0, 76, 40, 0, 0, 0, 0, 0, - 55, 0, 0, 0, 0, 0, 0, 12, 0, 13, - 113, 114, 115, 0, 0, 104, 105, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 124, 0, 0, - 0, 0, 90, 0, 0, 34, 35, 0, 0, 42, - 0, 44, 0, 51, 53, 57, 58, 0, 0, 0, - 62, 63, 8, 6, 0, 118, 116, 117, 0, 0, - 0, 135, 134, 133, 0, 0, 126, 127, 128, 129, - 130, 0, 0, 99, 106, 100, 0, 88, 75, 0, - 0, 92, 91, 0, 0, 0, 0, 0, 0, 0, - 111, 107, 0, 131, 132, 0, 0, 0, 89, 43, - 93, 0, 45, 52, 54, 59, 60, 61, 0, 0, - 110, 101, 0, 0, 0, 94, 112, 0, 0, 0, - 95, 108, 0, 0, 102, 103 + 2, 3, 1, 0, 0, 30, 0, 0, 0, 0, + 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 7, 4, 0, 9, 31, + 12, 0, 0, 116, 75, 77, 80, 76, 78, 79, + 110, 117, 0, 0, 0, 13, 37, 62, 63, 93, + 94, 106, 95, 0, 14, 71, 35, 72, 15, 0, + 16, 0, 0, 110, 0, 20, 45, 64, 68, 70, + 69, 65, 95, 18, 0, 31, 47, 48, 21, 110, + 0, 0, 17, 39, 0, 0, 19, 0, 22, 0, + 23, 0, 24, 54, 25, 0, 26, 0, 27, 0, + 28, 0, 29, 0, 5, 0, 0, 8, 119, 118, + 0, 0, 0, 0, 36, 0, 0, 122, 0, 120, + 0, 0, 0, 84, 83, 0, 82, 81, 34, 0, + 0, 66, 67, 46, 74, 0, 44, 0, 0, 74, + 38, 0, 0, 0, 0, 0, 53, 0, 0, 0, + 0, 0, 0, 10, 11, 110, 111, 112, 0, 0, + 101, 102, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 121, 0, 0, 0, 0, 87, 0, 0, + 32, 33, 0, 0, 40, 0, 42, 0, 49, 51, + 55, 56, 0, 0, 0, 60, 61, 6, 0, 115, + 113, 114, 0, 0, 0, 132, 131, 130, 0, 0, + 123, 124, 125, 126, 127, 0, 0, 96, 103, 97, + 0, 85, 73, 0, 0, 89, 88, 0, 0, 0, + 0, 0, 0, 0, 108, 104, 0, 128, 129, 0, + 0, 0, 86, 41, 90, 0, 43, 50, 52, 57, + 58, 59, 0, 0, 107, 98, 0, 0, 0, 91, + 109, 0, 0, 0, 92, 105, 0, 0, 99, 100 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 3, 27, 158, 156, 28, 31, 59, 61, - 55, 46, 84, 75, 88, 67, 80, 90, 92, 94, - 96, 98, 100, 102, 104, 56, 68, 57, 69, 48, - 58, 191, 232, 49, 50, 51, 52, 116, 208, 53, - 121 + -1, 1, 3, 26, 152, 27, 30, 58, 60, 54, + 45, 82, 73, 86, 65, 78, 88, 90, 92, 94, + 96, 98, 100, 102, 55, 66, 56, 67, 47, 57, + 186, 226, 48, 49, 50, 51, 113, 202, 52, 118 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -104 +#define YYPACT_NINF -89 static const yytype_int16 yypact[] = { - -104, 4, -104, 173, -26, -25, 277, 297, 297, 349, - 225, -14, 329, 396, 18, 297, 297, 297, 18, 171, - -20, 297, 297, 2, -4, 26, -104, -104, 43, -104, - -104, -104, 478, 478, -104, -104, -104, -104, -104, -104, - -104, 111, -104, 349, 402, 478, -104, -104, -104, -104, - -104, -104, -12, -5, 83, -104, -104, 44, -104, -104, - 46, -104, 49, 349, 111, 113, 245, -104, -104, -104, - -104, -104, -104, -104, 50, -104, 100, 349, -104, -104, - -104, 113, 420, 478, -104, -104, 64, 66, -104, 78, - -104, 80, -104, 85, -104, 89, -104, 93, -104, 98, - -104, 101, -104, 112, -104, 121, -104, 478, -104, 478, - -104, -104, -104, 153, 478, 478, 135, -104, 8, 163, - -104, 74, -104, 179, 52, 427, -104, -104, 445, -104, - -104, -104, 349, 297, -104, -104, -104, 135, -104, 381, - -104, 33, 478, -104, -104, 420, 186, 451, 349, 349, - 349, 460, 349, 349, 297, 297, 173, 172, 173, 172, - 113, -104, -104, 5, 478, 180, -104, 478, 478, 478, - 226, 224, 478, 478, 478, 478, 478, -104, 235, 36, - 195, 196, -104, 466, 197, -104, -104, 199, 202, -104, - 21, -104, 203, 211, 219, -104, -104, 217, 222, 223, - -104, -104, -104, -104, 229, -104, -104, -104, 240, 241, - 237, 232, 527, 534, 478, 478, 134, 134, -104, -104, - -104, 478, 478, 243, -104, -104, 248, -104, -104, -20, - 263, 287, -104, 249, 264, 265, -20, 478, 171, 269, - -104, -104, 294, 214, 214, 256, 258, 119, -104, -104, - 301, 280, -104, -104, -104, -104, -104, -104, 266, 478, - -104, -104, 308, 311, 292, -104, -104, 273, 478, 478, - -104, -104, 274, 278, -104, -104 + -89, 8, -89, 211, -33, -23, 288, 308, 308, 360, + 236, -11, 340, 54, 41, 308, 308, 308, 41, 106, + -13, 308, 308, 62, -4, -89, -89, 45, -89, -89, + -89, 484, 484, -89, -89, -89, -89, -89, -89, -89, + 81, -89, 360, 413, 484, -89, -89, -89, -89, -89, + -89, 38, 48, 407, -89, -89, -2, -89, -89, 64, + -89, 78, 360, 81, 256, -89, -89, -89, -89, -89, + -89, -89, 61, -89, 107, 360, -89, -89, -89, 59, + 431, 484, -89, -89, 86, 79, -89, 87, -89, 89, + -89, 91, -89, 97, -89, 102, -89, 116, -89, 120, + -89, 148, -89, 151, -89, 484, 484, -89, -89, -89, + 123, 484, 484, 105, -89, 1, 150, -89, 169, -89, + 166, 9, 69, -89, -89, 456, -89, -89, -89, 360, + 308, -89, -89, -89, 105, 392, -89, -17, 484, -89, + -89, 431, 170, 460, 360, 360, 360, 469, 360, 360, + 308, 308, 211, 179, 179, 59, -89, -89, 6, 484, + 154, -89, 484, 484, 484, 201, 149, 484, 484, 484, + 484, 484, -89, 198, 13, 158, 159, -89, 480, 160, + -89, -89, 162, 165, -89, 0, -89, 167, 171, 172, + -89, -89, 193, 199, 200, -89, -89, -89, 197, -89, + -89, -89, 168, 204, 214, 534, 542, 549, 484, 484, + 113, 113, -89, -89, -89, 484, 484, 207, -89, -89, + 208, -89, -89, -13, 220, 251, -89, 209, 226, 231, + -13, 484, 106, 229, -89, -89, 259, 184, 184, 219, + 225, 80, -89, -89, 268, 249, -89, -89, -89, -89, + -89, -89, 232, 484, -89, -89, 272, 274, 269, -89, + -89, 239, 484, 484, -89, -89, 252, 253, -89, -89 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -104, -104, -104, -103, -104, -104, -104, 319, -104, -104, - -104, 331, -104, -104, -104, -104, -104, -104, -104, -104, - -104, -104, -104, -104, -104, 19, 275, -2, -6, -9, - -8, 115, -104, 22, 1, -1, -3, -48, -104, -10, - -66 + -89, -89, -89, 153, -89, -89, 290, -89, -89, -89, + 295, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, 18, 246, 20, -7, -9, -8, + 84, -89, 51, -3, -6, 4, -50, -89, -10, -88 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -726,120 +721,124 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -1 static const yytype_uint16 yytable[] = { - 74, 70, 71, 87, 2, 86, 60, 85, 76, 73, - 99, 72, 101, 91, 93, 95, 137, 138, 164, 103, - 105, 29, 111, 112, 30, 47, 32, 33, 62, 41, - 230, 47, 54, 143, 120, 122, 89, 205, 123, 206, - 97, 157, 108, 159, 130, 124, 222, 207, 106, 34, - 107, 129, 231, 202, 134, 203, 74, 70, 71, 165, - 136, 41, 117, 42, 135, 73, 187, 72, 44, 179, - 180, 45, 87, 120, 109, 181, 144, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 223, 179, 180, - 110, 32, 125, 131, 181, 132, 117, 120, 133, 120, - 141, 211, 212, 213, 161, 162, 216, 217, 218, 219, - 220, 142, 204, 145, 34, 112, 146, 113, 120, 114, - 115, 114, 115, 126, 127, 177, 41, 147, 42, 148, - 134, 186, 188, 128, 149, 87, 45, 192, 150, 189, - 135, 197, 151, 196, 174, 175, 176, 152, 243, 244, - 153, 185, 200, 201, 209, 262, 263, 120, 120, 120, - 160, 154, 120, 120, 120, 120, 120, 193, 194, 195, - 155, 198, 199, 112, 4, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 163, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 120, 120, 35, 36, 37, 38, - 39, 245, 246, 40, 166, 178, 23, 24, 25, 187, - 26, 249, 172, 173, 174, 175, 176, 256, 255, 257, - 210, 215, 214, 32, 33, 63, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 221, 224, 225, 227, 267, - 228, 229, 233, 32, 33, 139, 34, 234, 272, 273, - 35, 36, 37, 38, 39, 235, 236, 40, 64, 65, - 42, 237, 238, 242, 66, 44, 34, 54, 45, 239, - 35, 36, 37, 38, 39, 32, 33, 40, 64, 65, - 42, 240, 241, 247, 250, 44, 251, 54, 45, 248, - 253, 190, 254, 258, 259, 32, 33, 260, 34, 261, - 264, 265, 35, 36, 37, 38, 39, 266, 268, 40, - 41, 269, 42, 270, 271, 274, 43, 44, 34, 275, - 45, 78, 35, 36, 37, 38, 39, 32, 33, 40, - 41, 140, 42, 79, 0, 0, 0, 44, 252, 54, - 45, 0, 0, 0, 0, 0, 0, 32, 33, 0, - 34, 0, 0, 0, 35, 36, 37, 38, 39, 0, - 0, 40, 41, 0, 42, 0, 0, 0, 77, 44, - 34, 0, 45, 0, 35, 36, 37, 38, 39, 32, - 33, 40, 41, 0, 42, 0, 0, 0, 0, 44, - 0, 0, 45, 0, 32, 33, 0, 0, 0, 0, - 32, 33, 34, 0, 0, 0, 35, 36, 37, 38, - 39, 0, 0, 40, 0, 0, 42, 34, 32, 33, - 0, 44, 0, 34, 45, 32, 33, 0, 118, 81, - 65, 42, 0, 0, 119, 82, 83, 42, 54, 45, - 0, 34, 83, 32, 183, 45, 0, 0, 34, 32, - 33, 0, 0, 81, 65, 42, 0, 182, 32, 33, - 83, 0, 42, 45, 32, 33, 34, 83, 0, 0, - 45, 0, 34, 0, 0, 184, 32, 33, 0, 0, - 42, 34, 0, 0, 0, 83, 42, 34, 45, 0, - 0, 83, 0, 190, 45, 42, 226, 0, 0, 34, - 83, 42, 54, 45, 0, 0, 83, 0, 0, 45, - 0, 0, 0, 42, 0, 0, 0, 0, 83, 0, - 0, 45, 169, 170, 171, 172, 173, 174, 175, 176, - 170, 171, 172, 173, 174, 175, 176 + 72, 68, 69, 85, 71, 84, 83, 70, 2, 224, + 97, 159, 99, 134, 28, 74, 182, 153, 154, 174, + 175, 108, 109, 216, 46, 176, 29, 61, 59, 139, + 46, 225, 40, 117, 119, 89, 91, 93, 199, 53, + 200, 101, 103, 127, 106, 174, 175, 128, 201, 31, + 32, 176, 160, 131, 72, 68, 69, 126, 71, 132, + 114, 70, 31, 32, 217, 87, 133, 111, 112, 95, + 85, 117, 33, 140, 205, 206, 207, 31, 32, 210, + 211, 212, 213, 214, 40, 33, 41, 110, 120, 111, + 112, 43, 107, 114, 44, 117, 117, 79, 121, 41, + 33, 156, 157, 80, 81, 198, 53, 44, 104, 177, + 105, 137, 109, 129, 41, 117, 256, 257, 138, 81, + 237, 238, 44, 169, 170, 171, 131, 130, 183, 142, + 155, 85, 132, 187, 184, 141, 143, 192, 144, 191, + 145, 34, 35, 36, 37, 38, 146, 180, 39, 203, + 181, 147, 117, 117, 117, 158, 209, 117, 117, 117, + 117, 117, 188, 189, 190, 148, 193, 194, 109, 149, + 195, 196, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 167, 168, 169, 170, 171, 150, 117, 117, + 151, 161, 173, 182, 204, 239, 240, 208, 215, 218, + 219, 221, 4, 222, 223, 243, 227, 228, 229, 234, + 172, 250, 249, 251, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 230, 261, 31, 32, 62, 233, 231, 232, + 236, 244, 266, 267, 23, 235, 24, 241, 25, 242, + 245, 185, 247, 252, 31, 32, 135, 33, 248, 253, + 254, 34, 35, 36, 37, 38, 255, 258, 39, 63, + 259, 41, 262, 260, 263, 64, 43, 33, 53, 44, + 265, 34, 35, 36, 37, 38, 31, 32, 39, 63, + 264, 41, 76, 268, 269, 197, 43, 77, 53, 44, + 136, 246, 0, 0, 0, 0, 31, 32, 0, 33, + 0, 0, 0, 34, 35, 36, 37, 38, 0, 0, + 39, 40, 0, 41, 0, 0, 0, 42, 43, 33, + 0, 44, 0, 34, 35, 36, 37, 38, 31, 32, + 39, 40, 0, 41, 0, 0, 0, 0, 43, 0, + 53, 44, 0, 0, 0, 0, 0, 0, 31, 32, + 0, 33, 0, 0, 0, 34, 35, 36, 37, 38, + 0, 0, 39, 40, 0, 41, 0, 0, 0, 75, + 43, 33, 0, 44, 0, 34, 35, 36, 37, 38, + 31, 32, 39, 40, 0, 41, 0, 0, 0, 0, + 43, 0, 0, 44, 0, 31, 122, 0, 0, 0, + 0, 31, 32, 33, 0, 0, 0, 34, 35, 36, + 37, 38, 0, 0, 39, 0, 0, 41, 33, 31, + 32, 0, 43, 0, 33, 44, 0, 123, 124, 115, + 40, 0, 41, 0, 0, 116, 0, 125, 41, 0, + 44, 0, 33, 81, 31, 178, 44, 0, 31, 32, + 0, 0, 0, 0, 79, 0, 41, 31, 32, 0, + 0, 81, 0, 0, 44, 0, 0, 33, 31, 32, + 0, 33, 31, 32, 0, 0, 179, 0, 0, 0, + 33, 41, 0, 0, 0, 41, 81, 0, 0, 44, + 81, 33, 185, 44, 41, 33, 0, 0, 0, 81, + 220, 53, 44, 0, 0, 41, 0, 0, 0, 41, + 81, 0, 0, 44, 81, 0, 0, 44, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 164, 165, 166, + 167, 168, 169, 170, 171, 165, 166, 167, 168, 169, + 170, 171 }; static const yytype_int16 yycheck[] = { - 10, 10, 10, 13, 0, 13, 8, 13, 11, 10, - 19, 10, 20, 15, 16, 17, 64, 65, 10, 21, - 22, 47, 32, 33, 49, 6, 8, 9, 9, 43, - 9, 12, 52, 81, 44, 45, 14, 32, 50, 34, - 18, 107, 46, 109, 54, 50, 10, 42, 46, 31, - 48, 54, 31, 156, 63, 158, 66, 66, 66, 51, - 63, 43, 43, 45, 63, 66, 33, 66, 50, 36, - 37, 53, 82, 83, 48, 42, 82, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 51, 36, 37, - 47, 8, 9, 49, 42, 49, 77, 107, 49, 109, - 50, 167, 168, 169, 114, 115, 172, 173, 174, 175, - 176, 11, 160, 49, 31, 125, 50, 6, 128, 8, - 9, 8, 9, 40, 41, 51, 43, 49, 45, 49, - 139, 133, 142, 50, 49, 145, 53, 147, 49, 145, - 139, 151, 49, 151, 10, 11, 12, 49, 214, 215, - 49, 132, 154, 155, 164, 36, 37, 167, 168, 169, - 7, 49, 172, 173, 174, 175, 176, 148, 149, 150, - 49, 152, 153, 183, 1, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 50, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 214, 215, 35, 36, 37, 38, - 39, 221, 222, 42, 51, 36, 43, 44, 45, 33, - 47, 229, 8, 9, 10, 11, 12, 237, 236, 238, - 50, 7, 6, 8, 9, 10, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 10, 51, 51, 51, 259, - 51, 49, 49, 8, 9, 10, 31, 46, 268, 269, - 35, 36, 37, 38, 39, 46, 49, 42, 43, 44, - 45, 49, 49, 36, 49, 50, 31, 52, 53, 50, - 35, 36, 37, 38, 39, 8, 9, 42, 43, 44, - 45, 51, 51, 50, 31, 50, 9, 52, 53, 51, - 36, 52, 37, 34, 10, 8, 9, 51, 31, 51, - 9, 31, 35, 36, 37, 38, 39, 51, 10, 42, - 43, 10, 45, 31, 51, 51, 49, 50, 31, 51, - 53, 12, 35, 36, 37, 38, 39, 8, 9, 42, - 43, 66, 45, 12, -1, -1, -1, 50, 233, 52, - 53, -1, -1, -1, -1, -1, -1, 8, 9, -1, - 31, -1, -1, -1, 35, 36, 37, 38, 39, -1, - -1, 42, 43, -1, 45, -1, -1, -1, 49, 50, - 31, -1, 53, -1, 35, 36, 37, 38, 39, 8, - 9, 42, 43, -1, 45, -1, -1, -1, -1, 50, - -1, -1, 53, -1, 8, 9, -1, -1, -1, -1, - 8, 9, 31, -1, -1, -1, 35, 36, 37, 38, - 39, -1, -1, 42, -1, -1, 45, 31, 8, 9, - -1, 50, -1, 31, 53, 8, 9, -1, 36, 43, - 44, 45, -1, -1, 42, 49, 50, 45, 52, 53, - -1, 31, 50, 8, 9, 53, -1, -1, 31, 8, - 9, -1, -1, 43, 44, 45, -1, 40, 8, 9, - 50, -1, 45, 53, 8, 9, 31, 50, -1, -1, - 53, -1, 31, -1, -1, 40, 8, 9, -1, -1, - 45, 31, -1, -1, -1, 50, 45, 31, 53, -1, - -1, 50, -1, 52, 53, 45, 40, -1, -1, 31, - 50, 45, 52, 53, -1, -1, 50, -1, -1, 53, - -1, -1, -1, 45, -1, -1, -1, -1, 50, -1, - -1, 53, 5, 6, 7, 8, 9, 10, 11, 12, - 6, 7, 8, 9, 10, 11, 12 + 10, 10, 10, 13, 10, 13, 13, 10, 0, 9, + 19, 10, 20, 63, 47, 11, 33, 105, 106, 36, + 37, 31, 32, 10, 6, 42, 49, 9, 8, 79, + 12, 31, 43, 43, 44, 15, 16, 17, 32, 52, + 34, 21, 22, 53, 48, 36, 37, 49, 42, 8, + 9, 42, 51, 62, 64, 64, 64, 53, 64, 62, + 42, 64, 8, 9, 51, 14, 62, 8, 9, 18, + 80, 81, 31, 80, 162, 163, 164, 8, 9, 167, + 168, 169, 170, 171, 43, 31, 45, 6, 50, 8, + 9, 50, 47, 75, 53, 105, 106, 43, 50, 45, + 31, 111, 112, 49, 50, 155, 52, 53, 46, 40, + 48, 50, 122, 49, 45, 125, 36, 37, 11, 50, + 208, 209, 53, 10, 11, 12, 135, 49, 138, 50, + 7, 141, 135, 143, 141, 49, 49, 147, 49, 147, + 49, 35, 36, 37, 38, 39, 49, 129, 42, 159, + 130, 49, 162, 163, 164, 50, 7, 167, 168, 169, + 170, 171, 144, 145, 146, 49, 148, 149, 178, 49, + 150, 151, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 8, 9, 10, 11, 12, 49, 208, 209, + 49, 51, 36, 33, 50, 215, 216, 6, 10, 51, + 51, 51, 1, 51, 49, 223, 49, 46, 46, 51, + 51, 231, 230, 232, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 49, 253, 8, 9, 10, 50, 49, 49, + 36, 31, 262, 263, 43, 51, 45, 50, 47, 51, + 9, 52, 36, 34, 8, 9, 10, 31, 37, 10, + 51, 35, 36, 37, 38, 39, 51, 9, 42, 43, + 31, 45, 10, 51, 10, 49, 50, 31, 52, 53, + 51, 35, 36, 37, 38, 39, 8, 9, 42, 43, + 31, 45, 12, 51, 51, 152, 50, 12, 52, 53, + 64, 227, -1, -1, -1, -1, 8, 9, -1, 31, + -1, -1, -1, 35, 36, 37, 38, 39, -1, -1, + 42, 43, -1, 45, -1, -1, -1, 49, 50, 31, + -1, 53, -1, 35, 36, 37, 38, 39, 8, 9, + 42, 43, -1, 45, -1, -1, -1, -1, 50, -1, + 52, 53, -1, -1, -1, -1, -1, -1, 8, 9, + -1, 31, -1, -1, -1, 35, 36, 37, 38, 39, + -1, -1, 42, 43, -1, 45, -1, -1, -1, 49, + 50, 31, -1, 53, -1, 35, 36, 37, 38, 39, + 8, 9, 42, 43, -1, 45, -1, -1, -1, -1, + 50, -1, -1, 53, -1, 8, 9, -1, -1, -1, + -1, 8, 9, 31, -1, -1, -1, 35, 36, 37, + 38, 39, -1, -1, 42, -1, -1, 45, 31, 8, + 9, -1, 50, -1, 31, 53, -1, 40, 41, 36, + 43, -1, 45, -1, -1, 42, -1, 50, 45, -1, + 53, -1, 31, 50, 8, 9, 53, -1, 8, 9, + -1, -1, -1, -1, 43, -1, 45, 8, 9, -1, + -1, 50, -1, -1, 53, -1, -1, 31, 8, 9, + -1, 31, 8, 9, -1, -1, 40, -1, -1, -1, + 31, 45, -1, -1, -1, 45, 50, -1, -1, 53, + 50, 31, 52, 53, 45, 31, -1, -1, -1, 50, + 40, 52, 53, -1, -1, 45, -1, -1, -1, 45, + 50, -1, -1, 53, 50, -1, -1, 53, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 5, 6, 7, + 8, 9, 10, 11, 12, 6, 7, 8, 9, 10, + 11, 12 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -848,32 +847,31 @@ static const yytype_uint8 yystos[] = { 0, 55, 0, 56, 1, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 43, 44, 45, 47, 57, 60, 47, - 49, 61, 8, 9, 31, 35, 36, 37, 38, 39, - 42, 43, 45, 49, 50, 53, 65, 79, 83, 87, - 88, 89, 90, 93, 52, 64, 79, 81, 84, 62, - 81, 63, 79, 10, 43, 44, 49, 69, 80, 82, - 83, 84, 88, 89, 93, 67, 90, 49, 61, 65, - 70, 43, 49, 50, 66, 82, 84, 93, 68, 87, - 71, 81, 72, 81, 73, 81, 74, 87, 75, 83, - 76, 84, 77, 81, 78, 81, 46, 48, 46, 48, - 47, 93, 93, 6, 8, 9, 91, 79, 36, 42, - 93, 94, 93, 50, 50, 9, 40, 41, 50, 90, - 93, 49, 49, 49, 83, 88, 90, 91, 91, 10, - 80, 50, 11, 91, 82, 49, 50, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 59, 94, 58, 94, - 7, 93, 93, 50, 10, 51, 51, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 51, 36, 36, - 37, 42, 40, 9, 40, 79, 81, 33, 93, 82, - 52, 85, 93, 79, 79, 79, 84, 93, 79, 79, - 81, 81, 57, 57, 91, 32, 34, 42, 92, 93, - 50, 94, 94, 94, 6, 7, 94, 94, 94, 94, - 94, 10, 10, 51, 51, 51, 40, 51, 51, 49, - 9, 31, 86, 49, 46, 46, 49, 49, 49, 50, - 51, 51, 36, 94, 94, 93, 93, 50, 51, 84, - 31, 9, 85, 36, 37, 84, 93, 83, 34, 10, - 51, 51, 36, 37, 9, 31, 51, 93, 10, 10, - 31, 51, 93, 93, 51, 51 + 28, 29, 30, 43, 45, 47, 57, 59, 47, 49, + 60, 8, 9, 31, 35, 36, 37, 38, 39, 42, + 43, 45, 49, 50, 53, 64, 78, 82, 86, 87, + 88, 89, 92, 52, 63, 78, 80, 83, 61, 80, + 62, 78, 10, 43, 49, 68, 79, 81, 82, 83, + 87, 88, 92, 66, 89, 49, 60, 64, 69, 43, + 49, 50, 65, 81, 83, 92, 67, 86, 70, 80, + 71, 80, 72, 80, 73, 86, 74, 82, 75, 83, + 76, 80, 77, 80, 46, 48, 48, 47, 92, 92, + 6, 8, 9, 90, 78, 36, 42, 92, 93, 92, + 50, 50, 9, 40, 41, 50, 89, 92, 49, 49, + 49, 82, 87, 89, 90, 10, 79, 50, 11, 90, + 81, 49, 50, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 58, 93, 93, 7, 92, 92, 50, 10, + 51, 51, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 51, 36, 36, 37, 42, 40, 9, 40, + 78, 80, 33, 92, 81, 52, 84, 92, 78, 78, + 78, 83, 92, 78, 78, 80, 80, 57, 90, 32, + 34, 42, 91, 92, 50, 93, 93, 93, 6, 7, + 93, 93, 93, 93, 93, 10, 10, 51, 51, 51, + 40, 51, 51, 49, 9, 31, 85, 49, 46, 46, + 49, 49, 49, 50, 51, 51, 36, 93, 93, 92, + 92, 50, 51, 83, 31, 9, 84, 36, 37, 83, + 92, 82, 34, 10, 51, 51, 36, 37, 9, 31, + 51, 92, 10, 10, 31, 51, 92, 92, 51, 51 }; #define yyerrok (yyerrstatus = 0) @@ -1697,30 +1695,24 @@ yyreduce: case 5: #line 78 "a.y" { - if((yyvsp[(1) - (2)].sym)->value != pc) - yyerror("redeclaration of %s", (yyvsp[(1) - (2)].sym)->name); - (yyvsp[(1) - (2)].sym)->value = pc; - } - break; - - case 7: -#line 85 "a.y" - { + (yyvsp[(1) - (2)].sym) = labellookup((yyvsp[(1) - (2)].sym)); + if((yyvsp[(1) - (2)].sym)->type == LLAB && (yyvsp[(1) - (2)].sym)->value != pc) + yyerror("redeclaration of %s", (yyvsp[(1) - (2)].sym)->labelname); (yyvsp[(1) - (2)].sym)->type = LLAB; (yyvsp[(1) - (2)].sym)->value = pc; } break; - case 12: -#line 96 "a.y" + case 10: +#line 92 "a.y" { (yyvsp[(1) - (3)].sym)->type = LVAR; (yyvsp[(1) - (3)].sym)->value = (yyvsp[(3) - (3)].lval); } break; - case 13: -#line 101 "a.y" + case 11: +#line 97 "a.y" { if((yyvsp[(1) - (3)].sym)->value != (yyvsp[(3) - (3)].lval)) yyerror("redeclaration of %s", (yyvsp[(1) - (3)].sym)->name); @@ -1728,186 +1720,186 @@ yyreduce: } break; + case 12: +#line 102 "a.y" + { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } + break; + + case 13: +#line 103 "a.y" + { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } + break; + case 14: -#line 106 "a.y" +#line 104 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 15: -#line 107 "a.y" +#line 105 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 16: -#line 108 "a.y" +#line 106 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 17: -#line 109 "a.y" +#line 107 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 18: -#line 110 "a.y" +#line 108 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 19: -#line 111 "a.y" +#line 109 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 20: -#line 112 "a.y" +#line 110 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 21: -#line 113 "a.y" +#line 111 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 22: -#line 114 "a.y" +#line 112 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 23: -#line 115 "a.y" +#line 113 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 24: -#line 116 "a.y" +#line 114 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 25: -#line 117 "a.y" +#line 115 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 26: -#line 118 "a.y" +#line 116 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 27: -#line 119 "a.y" +#line 117 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 28: -#line 120 "a.y" +#line 118 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 29: -#line 121 "a.y" +#line 119 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 30: #line 122 "a.y" - { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } - break; - - case 31: -#line 123 "a.y" - { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } - break; - - case 32: -#line 126 "a.y" { (yyval.addr2).from = nullgen; (yyval.addr2).to = nullgen; } break; - case 33: -#line 131 "a.y" + case 31: +#line 127 "a.y" { (yyval.addr2).from = nullgen; (yyval.addr2).to = nullgen; } break; - case 34: -#line 138 "a.y" + case 32: +#line 134 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (3)].addr); (yyval.addr2).to = (yyvsp[(3) - (3)].addr); } break; - case 35: -#line 145 "a.y" + case 33: +#line 141 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (3)].addr); (yyval.addr2).to = (yyvsp[(3) - (3)].addr); } break; - case 36: -#line 152 "a.y" + case 34: +#line 148 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (2)].addr); (yyval.addr2).to = nullgen; } break; - case 37: -#line 157 "a.y" + case 35: +#line 153 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (1)].addr); (yyval.addr2).to = nullgen; } break; - case 38: -#line 164 "a.y" + case 36: +#line 160 "a.y" { (yyval.addr2).from = nullgen; (yyval.addr2).to = (yyvsp[(2) - (2)].addr); } break; - case 39: -#line 169 "a.y" + case 37: +#line 165 "a.y" { (yyval.addr2).from = nullgen; (yyval.addr2).to = (yyvsp[(1) - (1)].addr); } break; - case 40: -#line 176 "a.y" + case 38: +#line 172 "a.y" { (yyval.addr2).from = nullgen; (yyval.addr2).to = (yyvsp[(2) - (2)].addr); } break; - case 41: -#line 181 "a.y" + case 39: +#line 177 "a.y" { (yyval.addr2).from = nullgen; (yyval.addr2).to = (yyvsp[(1) - (1)].addr); } break; - case 42: -#line 186 "a.y" + case 40: +#line 182 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (3)].addr); (yyval.addr2).to = (yyvsp[(3) - (3)].addr); } break; - case 43: -#line 193 "a.y" + case 41: +#line 189 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (5)].addr); (yyval.addr2).from.scale = (yyvsp[(3) - (5)].lval); @@ -1915,41 +1907,43 @@ yyreduce: } break; - case 44: -#line 201 "a.y" + case 42: +#line 197 "a.y" { + settext((yyvsp[(1) - (3)].addr).sym); (yyval.addr2).from = (yyvsp[(1) - (3)].addr); (yyval.addr2).to = (yyvsp[(3) - (3)].addr); } break; - case 45: -#line 206 "a.y" + case 43: +#line 203 "a.y" { + settext((yyvsp[(1) - (5)].addr).sym); (yyval.addr2).from = (yyvsp[(1) - (5)].addr); (yyval.addr2).from.scale = (yyvsp[(3) - (5)].lval); (yyval.addr2).to = (yyvsp[(5) - (5)].addr); } break; - case 46: -#line 214 "a.y" + case 44: +#line 212 "a.y" { (yyval.addr2).from = nullgen; (yyval.addr2).to = (yyvsp[(2) - (2)].addr); } break; - case 47: -#line 219 "a.y" + case 45: +#line 217 "a.y" { (yyval.addr2).from = nullgen; (yyval.addr2).to = (yyvsp[(1) - (1)].addr); } break; - case 48: -#line 224 "a.y" + case 46: +#line 222 "a.y" { (yyval.addr2).from = nullgen; (yyval.addr2).to = (yyvsp[(2) - (2)].addr); @@ -1958,16 +1952,16 @@ yyreduce: } break; - case 51: -#line 237 "a.y" + case 49: +#line 235 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (3)].addr); (yyval.addr2).to = (yyvsp[(3) - (3)].addr); } break; - case 52: -#line 242 "a.y" + case 50: +#line 240 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (5)].addr); (yyval.addr2).to = (yyvsp[(3) - (5)].addr); @@ -1977,16 +1971,16 @@ yyreduce: } break; - case 53: -#line 252 "a.y" + case 51: +#line 250 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (3)].addr); (yyval.addr2).to = (yyvsp[(3) - (3)].addr); } break; - case 54: -#line 257 "a.y" + case 52: +#line 255 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (5)].addr); (yyval.addr2).to = (yyvsp[(3) - (5)].addr); @@ -1996,40 +1990,40 @@ yyreduce: } break; - case 55: -#line 267 "a.y" + case 53: +#line 265 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (2)].addr); (yyval.addr2).to = nullgen; } break; - case 56: -#line 272 "a.y" + case 54: +#line 270 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (1)].addr); (yyval.addr2).to = nullgen; } break; - case 57: -#line 277 "a.y" + case 55: +#line 275 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (3)].addr); (yyval.addr2).to = (yyvsp[(3) - (3)].addr); } break; - case 58: -#line 284 "a.y" + case 56: +#line 282 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (3)].addr); (yyval.addr2).to = (yyvsp[(3) - (3)].addr); } break; - case 59: -#line 289 "a.y" + case 57: +#line 287 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (5)].addr); (yyval.addr2).from.scale = (yyvsp[(3) - (5)].lval); @@ -2037,8 +2031,8 @@ yyreduce: } break; - case 60: -#line 297 "a.y" + case 58: +#line 295 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (5)].addr); (yyval.addr2).to = (yyvsp[(3) - (5)].addr); @@ -2046,8 +2040,8 @@ yyreduce: } break; - case 61: -#line 305 "a.y" + case 59: +#line 303 "a.y" { (yyval.addr2).from = (yyvsp[(3) - (5)].addr); (yyval.addr2).to = (yyvsp[(5) - (5)].addr); @@ -2057,8 +2051,8 @@ yyreduce: } break; - case 62: -#line 315 "a.y" + case 60: +#line 313 "a.y" { if((yyvsp[(1) - (3)].addr).type != D_CONST || (yyvsp[(3) - (3)].addr).type != D_CONST) yyerror("arguments to PCDATA must be integer constants"); @@ -2067,8 +2061,8 @@ yyreduce: } break; - case 63: -#line 324 "a.y" + case 61: +#line 322 "a.y" { if((yyvsp[(1) - (3)].addr).type != D_CONST) yyerror("index for FUNCDATA must be integer constant"); @@ -2079,22 +2073,22 @@ yyreduce: } break; - case 68: -#line 341 "a.y" + case 66: +#line 339 "a.y" { (yyval.addr) = (yyvsp[(2) - (2)].addr); } break; - case 69: -#line 345 "a.y" + case 67: +#line 343 "a.y" { (yyval.addr) = (yyvsp[(2) - (2)].addr); } break; - case 75: -#line 358 "a.y" + case 73: +#line 356 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_BRANCH; @@ -2102,76 +2096,68 @@ yyreduce: } break; - case 76: -#line 364 "a.y" - { - (yyval.addr) = nullgen; - if(pass == 2) - yyerror("undefined label: %s", (yyvsp[(1) - (2)].sym)->name); - (yyval.addr).type = D_BRANCH; - (yyval.addr).offset = (yyvsp[(2) - (2)].lval); - } - break; - - case 77: -#line 372 "a.y" + case 74: +#line 362 "a.y" { + (yyvsp[(1) - (2)].sym) = labellookup((yyvsp[(1) - (2)].sym)); (yyval.addr) = nullgen; + if(pass == 2 && (yyvsp[(1) - (2)].sym)->type != LLAB) + yyerror("undefined label: %s", (yyvsp[(1) - (2)].sym)->labelname); (yyval.addr).type = D_BRANCH; (yyval.addr).offset = (yyvsp[(1) - (2)].sym)->value + (yyvsp[(2) - (2)].lval); } break; - case 78: -#line 380 "a.y" + case 75: +#line 373 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = (yyvsp[(1) - (1)].lval); } break; - case 79: -#line 385 "a.y" + case 76: +#line 378 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = (yyvsp[(1) - (1)].lval); } break; - case 80: -#line 390 "a.y" + case 77: +#line 383 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = (yyvsp[(1) - (1)].lval); } break; - case 81: -#line 395 "a.y" + case 78: +#line 388 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = (yyvsp[(1) - (1)].lval); } break; - case 82: -#line 400 "a.y" + case 79: +#line 393 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_SP; } break; - case 83: -#line 405 "a.y" + case 80: +#line 398 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = (yyvsp[(1) - (1)].lval); } break; - case 84: -#line 412 "a.y" + case 81: +#line 405 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_CONST; @@ -2179,8 +2165,8 @@ yyreduce: } break; - case 85: -#line 418 "a.y" + case 82: +#line 411 "a.y" { (yyval.addr) = (yyvsp[(2) - (2)].addr); (yyval.addr).index = (yyvsp[(2) - (2)].addr).type; @@ -2193,8 +2179,8 @@ yyreduce: } break; - case 86: -#line 429 "a.y" + case 83: +#line 422 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_SCONST; @@ -2202,8 +2188,8 @@ yyreduce: } break; - case 87: -#line 435 "a.y" + case 84: +#line 428 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_FCONST; @@ -2211,8 +2197,8 @@ yyreduce: } break; - case 88: -#line 441 "a.y" + case 85: +#line 434 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_FCONST; @@ -2220,8 +2206,8 @@ yyreduce: } break; - case 89: -#line 447 "a.y" + case 86: +#line 440 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_FCONST; @@ -2229,8 +2215,8 @@ yyreduce: } break; - case 90: -#line 453 "a.y" + case 87: +#line 446 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_FCONST; @@ -2238,8 +2224,8 @@ yyreduce: } break; - case 91: -#line 461 "a.y" + case 88: +#line 454 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_CONST2; @@ -2248,40 +2234,40 @@ yyreduce: } break; - case 92: -#line 470 "a.y" + case 89: +#line 463 "a.y" { (yyval.con2).v1 = (yyvsp[(1) - (1)].lval); (yyval.con2).v2 = ArgsSizeUnknown; } break; - case 93: -#line 475 "a.y" + case 90: +#line 468 "a.y" { (yyval.con2).v1 = -(yyvsp[(2) - (2)].lval); (yyval.con2).v2 = ArgsSizeUnknown; } break; - case 94: -#line 480 "a.y" + case 91: +#line 473 "a.y" { (yyval.con2).v1 = (yyvsp[(1) - (3)].lval); (yyval.con2).v2 = (yyvsp[(3) - (3)].lval); } break; - case 95: -#line 485 "a.y" + case 92: +#line 478 "a.y" { (yyval.con2).v1 = -(yyvsp[(2) - (4)].lval); (yyval.con2).v2 = (yyvsp[(4) - (4)].lval); } break; - case 98: -#line 496 "a.y" + case 95: +#line 489 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_INDIR+D_NONE; @@ -2289,8 +2275,8 @@ yyreduce: } break; - case 99: -#line 502 "a.y" + case 96: +#line 495 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_INDIR+(yyvsp[(3) - (4)].lval); @@ -2298,8 +2284,8 @@ yyreduce: } break; - case 100: -#line 508 "a.y" + case 97: +#line 501 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_INDIR+D_SP; @@ -2307,8 +2293,8 @@ yyreduce: } break; - case 101: -#line 514 "a.y" + case 98: +#line 507 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_INDIR+D_NONE; @@ -2319,8 +2305,8 @@ yyreduce: } break; - case 102: -#line 523 "a.y" + case 99: +#line 516 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_INDIR+(yyvsp[(3) - (9)].lval); @@ -2331,8 +2317,8 @@ yyreduce: } break; - case 103: -#line 532 "a.y" + case 100: +#line 525 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_INDIR+(yyvsp[(3) - (9)].lval); @@ -2343,24 +2329,24 @@ yyreduce: } break; - case 104: -#line 541 "a.y" + case 101: +#line 534 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_INDIR+(yyvsp[(2) - (3)].lval); } break; - case 105: -#line 546 "a.y" + case 102: +#line 539 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_INDIR+D_SP; } break; - case 106: -#line 551 "a.y" + case 103: +#line 544 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_INDIR+(yyvsp[(3) - (4)].lval); @@ -2368,8 +2354,8 @@ yyreduce: } break; - case 107: -#line 557 "a.y" + case 104: +#line 550 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_INDIR+D_NONE; @@ -2379,8 +2365,8 @@ yyreduce: } break; - case 108: -#line 565 "a.y" + case 105: +#line 558 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_INDIR+(yyvsp[(2) - (8)].lval); @@ -2390,15 +2376,15 @@ yyreduce: } break; - case 109: -#line 575 "a.y" + case 106: +#line 568 "a.y" { (yyval.addr) = (yyvsp[(1) - (1)].addr); } break; - case 110: -#line 579 "a.y" + case 107: +#line 572 "a.y" { (yyval.addr) = (yyvsp[(1) - (6)].addr); (yyval.addr).index = (yyvsp[(3) - (6)].lval); @@ -2407,8 +2393,8 @@ yyreduce: } break; - case 111: -#line 588 "a.y" + case 108: +#line 581 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = (yyvsp[(4) - (5)].lval); @@ -2417,8 +2403,8 @@ yyreduce: } break; - case 112: -#line 595 "a.y" + case 109: +#line 588 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_STATIC; @@ -2427,134 +2413,134 @@ yyreduce: } break; - case 113: -#line 603 "a.y" + case 110: +#line 596 "a.y" { (yyval.lval) = 0; } break; - case 114: -#line 607 "a.y" + case 111: +#line 600 "a.y" { (yyval.lval) = (yyvsp[(2) - (2)].lval); } break; - case 115: -#line 611 "a.y" + case 112: +#line 604 "a.y" { (yyval.lval) = -(yyvsp[(2) - (2)].lval); } break; - case 117: -#line 618 "a.y" + case 114: +#line 611 "a.y" { (yyval.lval) = D_AUTO; } break; - case 120: -#line 626 "a.y" + case 117: +#line 619 "a.y" { (yyval.lval) = (yyvsp[(1) - (1)].sym)->value; } break; - case 121: -#line 630 "a.y" + case 118: +#line 623 "a.y" { (yyval.lval) = -(yyvsp[(2) - (2)].lval); } break; - case 122: -#line 634 "a.y" + case 119: +#line 627 "a.y" { (yyval.lval) = (yyvsp[(2) - (2)].lval); } break; - case 123: -#line 638 "a.y" + case 120: +#line 631 "a.y" { (yyval.lval) = ~(yyvsp[(2) - (2)].lval); } break; - case 124: -#line 642 "a.y" + case 121: +#line 635 "a.y" { (yyval.lval) = (yyvsp[(2) - (3)].lval); } break; - case 126: -#line 649 "a.y" + case 123: +#line 642 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) + (yyvsp[(3) - (3)].lval); } break; - case 127: -#line 653 "a.y" + case 124: +#line 646 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) - (yyvsp[(3) - (3)].lval); } break; - case 128: -#line 657 "a.y" + case 125: +#line 650 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) * (yyvsp[(3) - (3)].lval); } break; - case 129: -#line 661 "a.y" + case 126: +#line 654 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) / (yyvsp[(3) - (3)].lval); } break; - case 130: -#line 665 "a.y" + case 127: +#line 658 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) % (yyvsp[(3) - (3)].lval); } break; - case 131: -#line 669 "a.y" + case 128: +#line 662 "a.y" { (yyval.lval) = (yyvsp[(1) - (4)].lval) << (yyvsp[(4) - (4)].lval); } break; - case 132: -#line 673 "a.y" + case 129: +#line 666 "a.y" { (yyval.lval) = (yyvsp[(1) - (4)].lval) >> (yyvsp[(4) - (4)].lval); } break; - case 133: -#line 677 "a.y" + case 130: +#line 670 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) & (yyvsp[(3) - (3)].lval); } break; - case 134: -#line 681 "a.y" + case 131: +#line 674 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) ^ (yyvsp[(3) - (3)].lval); } break; - case 135: -#line 685 "a.y" + case 132: +#line 678 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) | (yyvsp[(3) - (3)].lval); } @@ -2562,7 +2548,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 2566 "y.tab.c" +#line 2552 "y.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); |