diff options
Diffstat (limited to 'src/cmd/6a/y.tab.c')
-rw-r--r-- | src/cmd/6a/y.tab.c | 1054 |
1 files changed, 519 insertions, 535 deletions
diff --git a/src/cmd/6a/y.tab.c b/src/cmd/6a/y.tab.c index b69fd95b5..a698079d2 100644 --- a/src/cmd/6a/y.tab.c +++ b/src/cmd/6a/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 560 +#define YYLAST 549 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 56 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 42 +#define YYNNTS 41 /* YYNRULES -- Number of rules. */ -#define YYNRULES 137 +#define YYNRULES 134 /* YYNRULES -- Number of states. */ -#define YYNSTATES 277 +#define YYNSTATES 271 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -469,91 +469,91 @@ 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, 94, 95, 97, 101, 105, 108, 110, - 113, 115, 118, 120, 124, 130, 134, 140, 143, 145, - 147, 149, 153, 159, 163, 169, 172, 174, 178, 184, - 190, 191, 193, 197, 203, 207, 211, 213, 215, 217, - 219, 222, 225, 227, 229, 231, 233, 238, 241, 244, - 246, 248, 250, 252, 254, 256, 258, 261, 264, 267, - 270, 273, 278, 284, 288, 290, 292, 294, 299, 304, - 309, 316, 326, 336, 340, 344, 350, 359, 361, 368, - 374, 382, 383, 386, 389, 391, 393, 395, 397, 399, - 402, 405, 408, 412, 414, 417, 421, 426, 428, 432, - 436, 440, 444, 448, 453, 458, 462, 466 + 85, 88, 89, 91, 95, 99, 102, 104, 107, 109, + 112, 114, 118, 124, 128, 134, 137, 139, 141, 143, + 147, 153, 157, 163, 166, 168, 172, 178, 184, 185, + 187, 191, 197, 201, 205, 207, 209, 211, 213, 216, + 219, 221, 223, 225, 227, 232, 235, 237, 239, 241, + 243, 245, 247, 249, 252, 255, 258, 261, 264, 269, + 275, 279, 281, 283, 285, 290, 295, 300, 307, 317, + 327, 331, 335, 341, 350, 352, 359, 365, 373, 374, + 377, 380, 382, 384, 386, 388, 390, 393, 396, 399, + 403, 405, 408, 412, 417, 419, 423, 427, 431, 435, + 439, 444, 449, 453, 457 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int8 yyrhs[] = { 57, 0, -1, -1, -1, 57, 58, 59, -1, -1, - 46, 48, 60, 59, -1, -1, 45, 48, 61, 59, - -1, 49, -1, 62, 49, -1, 1, 49, -1, 45, - 50, 97, -1, 47, 50, 97, -1, 13, 63, -1, - 14, 67, -1, 15, 66, -1, 16, 64, -1, 17, - 65, -1, 21, 68, -1, 19, 69, -1, 22, 70, - -1, 18, 71, -1, 20, 72, -1, 25, 73, -1, - 26, 74, -1, 27, 75, -1, 28, 76, -1, 29, - 77, -1, 30, 78, -1, 23, 79, -1, 24, 80, - -1, 31, 81, -1, -1, 51, -1, 84, 51, 82, - -1, 82, 51, 84, -1, 84, 51, -1, 84, -1, - 51, 82, -1, 82, -1, 51, 85, -1, 85, -1, - 88, 51, 85, -1, 92, 11, 95, 51, 88, -1, - 89, 51, 87, -1, 89, 51, 95, 51, 87, -1, - 51, 83, -1, 83, -1, 63, -1, 67, -1, 84, - 51, 82, -1, 84, 51, 82, 48, 37, -1, 84, - 51, 82, -1, 84, 51, 82, 48, 38, -1, 84, - 51, -1, 84, -1, 84, 51, 82, -1, 86, 51, - 82, 51, 95, -1, 88, 51, 82, 51, 86, -1, - -1, 88, -1, 89, 51, 88, -1, 89, 51, 95, - 51, 88, -1, 84, 51, 84, -1, 84, 51, 84, - -1, 86, -1, 89, -1, 85, -1, 91, -1, 10, - 86, -1, 10, 90, -1, 86, -1, 90, -1, 82, - -1, 88, -1, 95, 52, 34, 53, -1, 45, 93, - -1, 46, 93, -1, 36, -1, 39, -1, 37, -1, - 40, -1, 44, -1, 38, -1, 41, -1, 54, 96, - -1, 54, 95, -1, 54, 92, -1, 54, 43, -1, - 54, 42, -1, 54, 52, 42, 53, -1, 54, 52, - 9, 42, 53, -1, 54, 9, 42, -1, 90, -1, - 91, -1, 95, -1, 95, 52, 37, 53, -1, 95, - 52, 44, 53, -1, 95, 52, 38, 53, -1, 95, - 52, 37, 10, 95, 53, -1, 95, 52, 37, 53, - 52, 37, 10, 95, 53, -1, 95, 52, 37, 53, - 52, 38, 10, 95, 53, -1, 52, 37, 53, -1, - 52, 44, 53, -1, 52, 37, 10, 95, 53, -1, - 52, 37, 53, 52, 37, 10, 95, 53, -1, 92, - -1, 92, 52, 37, 10, 95, 53, -1, 45, 93, - 52, 94, 53, -1, 45, 6, 7, 93, 52, 35, - 53, -1, -1, 8, 95, -1, 9, 95, -1, 35, - -1, 44, -1, 33, -1, 32, -1, 47, -1, 9, - 95, -1, 8, 95, -1, 55, 95, -1, 52, 97, - 53, -1, 32, -1, 9, 32, -1, 32, 9, 32, - -1, 9, 32, 9, 32, -1, 95, -1, 97, 8, - 97, -1, 97, 9, 97, -1, 97, 10, 97, -1, - 97, 11, 97, -1, 97, 12, 97, -1, 97, 6, - 6, 97, -1, 97, 7, 7, 97, -1, 97, 5, - 97, -1, 97, 4, 97, -1, 97, 3, 97, -1 + 45, 48, 60, 59, -1, 49, -1, 61, 49, -1, + 1, 49, -1, 45, 50, 96, -1, 47, 50, 96, + -1, 13, 62, -1, 14, 66, -1, 15, 65, -1, + 16, 63, -1, 17, 64, -1, 21, 67, -1, 19, + 68, -1, 22, 69, -1, 18, 70, -1, 20, 71, + -1, 25, 72, -1, 26, 73, -1, 27, 74, -1, + 28, 75, -1, 29, 76, -1, 30, 77, -1, 23, + 78, -1, 24, 79, -1, 31, 80, -1, -1, 51, + -1, 83, 51, 81, -1, 81, 51, 83, -1, 83, + 51, -1, 83, -1, 51, 81, -1, 81, -1, 51, + 84, -1, 84, -1, 87, 51, 84, -1, 91, 11, + 94, 51, 87, -1, 88, 51, 86, -1, 88, 51, + 94, 51, 86, -1, 51, 82, -1, 82, -1, 62, + -1, 66, -1, 83, 51, 81, -1, 83, 51, 81, + 48, 37, -1, 83, 51, 81, -1, 83, 51, 81, + 48, 38, -1, 83, 51, -1, 83, -1, 83, 51, + 81, -1, 85, 51, 81, 51, 94, -1, 87, 51, + 81, 51, 85, -1, -1, 87, -1, 88, 51, 87, + -1, 88, 51, 94, 51, 87, -1, 83, 51, 83, + -1, 83, 51, 83, -1, 85, -1, 88, -1, 84, + -1, 90, -1, 10, 85, -1, 10, 89, -1, 85, + -1, 89, -1, 81, -1, 87, -1, 94, 52, 34, + 53, -1, 45, 92, -1, 36, -1, 39, -1, 37, + -1, 40, -1, 44, -1, 38, -1, 41, -1, 54, + 95, -1, 54, 94, -1, 54, 91, -1, 54, 43, + -1, 54, 42, -1, 54, 52, 42, 53, -1, 54, + 52, 9, 42, 53, -1, 54, 9, 42, -1, 89, + -1, 90, -1, 94, -1, 94, 52, 37, 53, -1, + 94, 52, 44, 53, -1, 94, 52, 38, 53, -1, + 94, 52, 37, 10, 94, 53, -1, 94, 52, 37, + 53, 52, 37, 10, 94, 53, -1, 94, 52, 37, + 53, 52, 38, 10, 94, 53, -1, 52, 37, 53, + -1, 52, 44, 53, -1, 52, 37, 10, 94, 53, + -1, 52, 37, 53, 52, 37, 10, 94, 53, -1, + 91, -1, 91, 52, 37, 10, 94, 53, -1, 45, + 92, 52, 93, 53, -1, 45, 6, 7, 92, 52, + 35, 53, -1, -1, 8, 94, -1, 9, 94, -1, + 35, -1, 44, -1, 33, -1, 32, -1, 47, -1, + 9, 94, -1, 8, 94, -1, 55, 94, -1, 52, + 96, 53, -1, 32, -1, 9, 32, -1, 32, 9, + 32, -1, 9, 32, 9, 32, -1, 94, -1, 96, + 8, 96, -1, 96, 9, 96, -1, 96, 10, 96, + -1, 96, 11, 96, -1, 96, 12, 96, -1, 96, + 6, 6, 96, -1, 96, 7, 7, 96, -1, 96, + 5, 96, -1, 96, 4, 96, -1, 96, 3, 96, + -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 66, 66, 68, 67, 75, 74, 82, 81, 87, - 88, 89, 92, 97, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 124, 128, 135, 142, 149, 154, 161, - 166, 173, 178, 183, 190, 198, 203, 211, 216, 223, - 224, 227, 232, 242, 247, 257, 262, 267, 274, 282, - 292, 296, 303, 308, 316, 325, 336, 337, 340, 341, - 342, 346, 350, 351, 354, 355, 358, 364, 372, 380, - 385, 390, 395, 400, 405, 410, 416, 424, 430, 441, - 447, 453, 459, 465, 473, 474, 477, 483, 489, 495, - 501, 510, 519, 528, 533, 538, 546, 556, 560, 569, - 576, 585, 588, 592, 598, 599, 603, 606, 607, 611, - 615, 619, 623, 629, 634, 639, 644, 651, 652, 656, - 660, 664, 668, 672, 676, 680, 684, 688 + 0, 66, 66, 68, 67, 75, 74, 83, 84, 85, + 88, 93, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 120, 124, 131, 138, 145, 150, 157, 162, 169, + 174, 179, 186, 194, 200, 209, 214, 221, 222, 225, + 230, 240, 245, 255, 260, 265, 272, 280, 290, 294, + 301, 306, 314, 323, 334, 335, 338, 339, 340, 344, + 348, 349, 352, 353, 356, 362, 373, 378, 383, 388, + 393, 398, 403, 409, 417, 423, 434, 440, 446, 452, + 458, 466, 467, 470, 476, 482, 488, 494, 503, 512, + 521, 526, 531, 539, 549, 553, 562, 569, 578, 581, + 585, 591, 592, 596, 599, 600, 604, 608, 612, 616, + 622, 627, 632, 637, 644, 645, 649, 653, 657, 661, + 665, 669, 673, 677, 681 }; #endif @@ -569,7 +569,7 @@ static const char *const yytname[] = "LTYPEF", "LCONST", "LFP", "LPC", "LSB", "LBREG", "LLREG", "LSREG", "LFREG", "LMREG", "LXREG", "LFCONST", "LSCONST", "LSP", "LNAME", "LLAB", "LVAR", "':'", "';'", "'='", "','", "'('", "')'", "'$'", "'~'", - "$accept", "prog", "@1", "line", "@2", "@3", "inst", "nonnon", "rimrem", + "$accept", "prog", "@1", "line", "@2", "inst", "nonnon", "rimrem", "remrim", "rimnon", "nonrem", "nonrel", "spec1", "spec2", "spec3", "spec4", "spec5", "spec6", "spec7", "spec8", "spec9", "spec10", "spec11", "spec12", "spec13", "rem", "rom", "rim", "rel", "reg", "imm2", "imm", @@ -594,39 +594,39 @@ static const yytype_uint16 yytoknum[] = /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 56, 57, 58, 57, 60, 59, 61, 59, 59, - 59, 59, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 63, 63, 64, 65, 66, 66, 67, - 67, 68, 68, 68, 69, 70, 70, 71, 71, 72, - 72, 73, 73, 74, 74, 75, 75, 75, 76, 77, - 78, 78, 79, 79, 80, 81, 82, 82, 83, 83, - 83, 83, 83, 83, 84, 84, 85, 85, 85, 86, - 86, 86, 86, 86, 86, 86, 87, 88, 88, 88, - 88, 88, 88, 88, 89, 89, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 91, 91, 92, - 92, 93, 93, 93, 94, 94, 94, 95, 95, 95, - 95, 95, 95, 96, 96, 96, 96, 97, 97, 97, - 97, 97, 97, 97, 97, 97, 97, 97 + 0, 56, 57, 58, 57, 60, 59, 59, 59, 59, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 62, 62, 63, 64, 65, 65, 66, 66, 67, + 67, 67, 68, 69, 69, 70, 70, 71, 71, 72, + 72, 73, 73, 74, 74, 74, 75, 76, 77, 77, + 78, 78, 79, 80, 81, 81, 82, 82, 82, 82, + 82, 82, 83, 83, 84, 84, 85, 85, 85, 85, + 85, 85, 85, 86, 87, 87, 87, 87, 87, 87, + 87, 88, 88, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 90, 90, 91, 91, 92, 92, + 92, 93, 93, 93, 94, 94, 94, 94, 94, 94, + 95, 95, 95, 95, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96 }; /* 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, 2, 0, 1, 3, 3, 2, 1, 2, - 1, 2, 1, 3, 5, 3, 5, 2, 1, 1, - 1, 3, 5, 3, 5, 2, 1, 3, 5, 5, - 0, 1, 3, 5, 3, 3, 1, 1, 1, 1, - 2, 2, 1, 1, 1, 1, 4, 2, 2, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, - 2, 4, 5, 3, 1, 1, 1, 4, 4, 4, - 6, 9, 9, 3, 3, 5, 8, 1, 6, 5, - 7, 0, 2, 2, 1, 1, 1, 1, 1, 2, - 2, 2, 3, 1, 2, 3, 4, 1, 3, 3, - 3, 3, 3, 4, 4, 3, 3, 3 + 2, 0, 1, 3, 3, 2, 1, 2, 1, 2, + 1, 3, 5, 3, 5, 2, 1, 1, 1, 3, + 5, 3, 5, 2, 1, 3, 5, 5, 0, 1, + 3, 5, 3, 3, 1, 1, 1, 1, 2, 2, + 1, 1, 1, 1, 4, 2, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 2, 4, 5, + 3, 1, 1, 1, 4, 4, 4, 6, 9, 9, + 3, 3, 5, 8, 1, 6, 5, 7, 0, 2, + 2, 1, 1, 1, 1, 1, 2, 2, 2, 3, + 1, 2, 3, 4, 1, 3, 3, 3, 3, 3, + 4, 4, 3, 3, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -634,89 +634,89 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 3, 1, 0, 0, 33, 0, 0, 0, 0, - 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 60, 0, 0, 0, 0, 9, 4, 0, - 11, 34, 14, 0, 0, 117, 79, 81, 84, 80, - 82, 85, 83, 111, 118, 0, 0, 0, 15, 40, - 66, 67, 94, 95, 107, 96, 0, 16, 74, 38, - 75, 17, 0, 18, 0, 0, 111, 111, 0, 22, - 48, 68, 72, 73, 69, 96, 20, 0, 34, 49, - 50, 23, 111, 0, 0, 19, 42, 0, 0, 21, - 0, 30, 0, 31, 0, 24, 0, 25, 0, 26, - 56, 27, 0, 28, 0, 29, 61, 32, 0, 7, - 0, 5, 0, 10, 120, 119, 0, 0, 0, 0, - 39, 0, 0, 127, 0, 121, 0, 0, 0, 90, - 89, 0, 88, 87, 37, 0, 0, 70, 71, 77, - 78, 47, 0, 0, 77, 41, 0, 0, 0, 0, - 0, 0, 0, 55, 0, 0, 0, 0, 12, 0, - 13, 111, 112, 113, 0, 0, 103, 104, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 122, 0, - 0, 0, 0, 93, 0, 0, 35, 36, 0, 0, - 43, 0, 45, 0, 62, 0, 64, 51, 53, 57, - 0, 0, 65, 8, 6, 0, 116, 114, 115, 0, - 0, 0, 137, 136, 135, 0, 0, 128, 129, 130, - 131, 132, 0, 0, 97, 99, 98, 0, 91, 76, - 0, 0, 123, 86, 0, 0, 0, 0, 0, 0, - 0, 109, 105, 0, 133, 134, 0, 0, 0, 92, - 44, 124, 0, 46, 63, 52, 54, 58, 59, 0, - 0, 108, 100, 0, 0, 0, 125, 110, 0, 0, - 0, 126, 106, 0, 0, 101, 102 + 2, 3, 1, 0, 0, 31, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 58, 0, 0, 0, 7, 4, 0, 9, + 32, 12, 0, 0, 114, 76, 78, 81, 77, 79, + 82, 80, 108, 115, 0, 0, 0, 13, 38, 64, + 65, 91, 92, 104, 93, 0, 14, 72, 36, 73, + 15, 0, 16, 0, 0, 108, 0, 20, 46, 66, + 70, 71, 67, 93, 18, 0, 32, 47, 48, 21, + 108, 0, 0, 17, 40, 0, 0, 19, 0, 28, + 0, 29, 0, 22, 0, 23, 0, 24, 54, 25, + 0, 26, 0, 27, 59, 30, 0, 5, 0, 0, + 8, 117, 116, 0, 0, 0, 0, 37, 0, 0, + 124, 0, 118, 0, 0, 0, 87, 86, 0, 85, + 84, 35, 0, 0, 68, 69, 75, 45, 0, 0, + 75, 39, 0, 0, 0, 0, 0, 0, 0, 53, + 0, 0, 0, 0, 10, 11, 108, 109, 110, 0, + 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 119, 0, 0, 0, 0, 90, 0, + 0, 33, 34, 0, 0, 41, 0, 43, 0, 60, + 0, 62, 49, 51, 55, 0, 0, 63, 6, 0, + 113, 111, 112, 0, 0, 0, 134, 133, 132, 0, + 0, 125, 126, 127, 128, 129, 0, 0, 94, 96, + 95, 0, 88, 74, 0, 0, 120, 83, 0, 0, + 0, 0, 0, 0, 0, 106, 102, 0, 130, 131, + 0, 0, 0, 89, 42, 121, 0, 44, 61, 50, + 52, 56, 57, 0, 0, 105, 97, 0, 0, 0, + 122, 107, 0, 0, 0, 123, 103, 0, 0, 98, + 99 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 3, 28, 159, 157, 29, 32, 61, 63, - 57, 48, 85, 76, 89, 69, 81, 95, 97, 99, - 101, 103, 105, 91, 93, 107, 58, 70, 59, 71, - 50, 192, 60, 51, 52, 53, 54, 119, 209, 55, - 233, 124 + -1, 1, 3, 27, 153, 28, 31, 60, 62, 56, + 47, 83, 74, 87, 67, 79, 93, 95, 97, 99, + 101, 103, 89, 91, 105, 57, 68, 58, 69, 49, + 187, 59, 50, 51, 52, 53, 116, 203, 54, 227, + 121 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -94 +#define YYPACT_NINF -89 static const yytype_int16 yypact[] = { - -94, 15, -94, 218, -28, -25, 264, 285, 285, 340, - 163, 2, 319, 97, 415, 415, 285, 285, 285, 285, - 306, -24, -24, 285, -17, -14, 4, -94, -94, 48, - -94, -94, -94, 481, 481, -94, -94, -94, -94, -94, - -94, -94, -94, 19, -94, 340, 399, 481, -94, -94, - -94, -94, -94, -94, 46, 47, 385, -94, -94, 52, - -94, -94, 59, -94, 60, 374, 19, 56, 243, -94, - -94, -94, -94, -94, -94, 63, -94, 106, 340, -94, - -94, -94, 56, 138, 481, -94, -94, 69, 72, -94, - 74, -94, 76, -94, 77, -94, 79, -94, 80, -94, - 81, -94, 83, -94, 89, -94, -94, -94, 94, -94, - 481, -94, 481, -94, -94, -94, 119, 481, 481, 98, - -94, -1, 100, -94, 84, -94, 117, 23, 426, -94, - -94, 433, -94, -94, -94, 340, 285, -94, -94, 98, - -94, -94, 75, 481, -94, -94, 138, 122, 440, 444, - 285, 340, 340, 340, 340, 340, 285, 218, 393, 218, - 393, 56, -94, -94, -15, 481, 105, -94, 481, 481, - 481, 156, 162, 481, 481, 481, 481, 481, -94, 165, - 0, 123, 133, -94, 474, 134, -94, -94, 136, 140, - -94, 7, -94, 141, -94, 143, -94, 148, 149, -94, - 147, 160, -94, -94, -94, 164, -94, -94, -94, 167, - 168, 180, 533, 541, 548, 481, 481, 58, 58, -94, - -94, -94, 481, 481, 171, -94, -94, 172, -94, -94, - -24, 192, 217, -94, 175, -24, 219, 216, 481, 306, - 220, -94, -94, 247, 33, 33, 205, 208, 41, -94, - -94, 253, 234, -94, -94, -94, -94, -94, -94, 215, - 481, -94, -94, 259, 260, 239, -94, -94, 221, 481, - 481, -94, -94, 223, 224, -94, -94 + -89, 18, -89, 163, -5, -13, 219, 253, 253, 335, + 194, 16, 274, 369, 418, 418, 253, 253, 253, 253, + 240, 0, 0, 253, -17, 19, -89, -89, 24, -89, + -89, -89, 479, 479, -89, -89, -89, -89, -89, -89, + -89, -89, 111, -89, 335, 397, 479, -89, -89, -89, + -89, -89, -89, 33, 51, 390, -89, -89, 65, -89, + -89, 72, -89, 73, 356, 111, 314, -89, -89, -89, + -89, -89, -89, 74, -89, 30, 335, -89, -89, -89, + 70, 422, 479, -89, -89, 82, 86, -89, 88, -89, + 89, -89, 90, -89, 91, -89, 92, -89, 101, -89, + 105, -89, 114, -89, -89, -89, 116, -89, 479, 479, + -89, -89, -89, 118, 479, 479, 120, -89, 5, 115, + -89, 83, -89, 133, -12, 404, -89, -89, 439, -89, + -89, -89, 335, 253, -89, -89, 120, -89, 9, 479, + -89, -89, 422, 141, 119, 452, 253, 335, 335, 335, + 335, 335, 253, 163, 327, 327, 70, -89, -89, 4, + 479, 143, -89, 479, 479, 479, 190, 191, 479, 479, + 479, 479, 479, -89, 187, 6, 148, 152, -89, 470, + 156, -89, -89, 158, 162, -89, 8, -89, 164, -89, + 166, -89, 170, 171, -89, 169, 172, -89, -89, 173, + -89, -89, -89, 161, 176, 199, 102, 530, 537, 479, + 479, 39, 39, -89, -89, -89, 479, 479, 185, -89, + -89, 189, -89, -89, 0, 208, 234, -89, 193, 0, + 211, 212, 479, 240, 217, -89, -89, 255, 55, 55, + 214, 215, 59, -89, -89, 260, 241, -89, -89, -89, + -89, -89, -89, 222, 479, -89, -89, 262, 276, 256, + -89, -89, 242, 479, 479, -89, -89, 243, 246, -89, + -89 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -94, -94, -94, -43, -94, -94, -94, 266, -94, -94, - -94, 273, -94, -94, -94, -94, -94, -94, -94, -94, - -94, -94, -94, -94, -94, -94, 26, 229, 32, -11, - -9, 57, -8, 71, -2, -6, 1, -60, -94, -10, - -94, -93 + -89, -89, -89, 134, -89, -89, 289, -89, -89, -89, + 290, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -2, 237, 11, -11, -9, + 76, -8, 87, -4, 2, -3, -56, -89, -10, -89, + -88 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -726,124 +726,120 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -1 static const yytype_uint16 yytable[] = { - 75, 72, 86, 88, 74, 87, 139, 140, 73, 165, - 223, 102, 77, 104, 106, 2, 231, 158, 206, 160, - 207, 30, 144, 114, 115, 116, 31, 117, 118, 208, - 56, 109, 49, 110, 111, 64, 123, 125, 49, 232, - 62, 173, 174, 175, 176, 177, 133, 43, 94, 96, - 98, 100, 166, 224, 112, 108, 137, 132, 75, 72, - 180, 181, 74, 138, 117, 118, 73, 182, 175, 176, - 177, 120, 145, 88, 123, 212, 213, 214, 263, 264, - 217, 218, 219, 220, 221, 90, 92, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 113, 126, 127, - 123, 205, 123, 134, 120, 33, 34, 162, 163, 188, - 135, 136, 180, 181, 203, 142, 204, 143, 115, 182, - 146, 123, 244, 245, 147, 148, 161, 149, 150, 35, - 151, 152, 153, 189, 154, 190, 88, 178, 193, 195, - 155, 194, 82, 67, 44, 156, 33, 34, 83, 84, - 164, 56, 47, 167, 179, 210, 188, 211, 123, 123, - 123, 186, 215, 123, 123, 123, 123, 123, 187, 216, - 35, 33, 34, 65, 115, 222, 225, 197, 198, 199, - 200, 201, 196, 82, 67, 44, 226, 228, 202, 229, - 84, 230, 234, 47, 235, 35, 236, 237, 238, 36, - 37, 38, 39, 40, 41, 123, 123, 42, 66, 67, - 44, 239, 246, 247, 68, 46, 240, 243, 47, 4, - 241, 242, 250, 248, 251, 249, 252, 254, 257, 191, - 258, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 268, 33, 34, 65, 256, 259, 255, 260, 261, 273, - 274, 262, 265, 24, 25, 26, 266, 27, 267, 269, - 270, 271, 33, 34, 272, 35, 275, 276, 79, 36, - 37, 38, 39, 40, 41, 80, 0, 42, 66, 67, - 44, 253, 0, 33, 34, 46, 35, 141, 47, 0, - 36, 37, 38, 39, 40, 41, 0, 0, 42, 43, - 0, 44, 0, 0, 0, 45, 46, 35, 0, 47, - 0, 36, 37, 38, 39, 40, 41, 33, 34, 42, - 43, 0, 44, 0, 0, 0, 0, 46, 0, 56, - 47, 0, 36, 37, 38, 39, 40, 41, 33, 34, - 42, 35, 0, 0, 0, 36, 37, 38, 39, 40, - 41, 0, 0, 42, 43, 0, 44, 0, 0, 0, - 78, 46, 35, 0, 47, 0, 36, 37, 38, 39, - 40, 41, 33, 34, 42, 43, 0, 44, 0, 0, - 0, 0, 46, 33, 128, 47, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 35, 33, 34, 0, - 36, 37, 38, 39, 40, 41, 0, 35, 42, 0, - 0, 44, 0, 33, 34, 0, 46, 129, 130, 47, - 43, 35, 44, 0, 33, 34, 121, 131, 0, 0, - 47, 33, 184, 122, 0, 0, 44, 35, 33, 34, - 0, 84, 33, 34, 47, 0, 0, 0, 35, 0, - 43, 0, 44, 0, 0, 35, 0, 46, 183, 0, - 47, 0, 35, 44, 0, 185, 35, 0, 84, 0, - 44, 47, 33, 34, 0, 84, 0, 44, 47, 33, - 34, 44, 84, 0, 191, 47, 84, 0, 56, 47, - 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, - 0, 0, 0, 35, 0, 0, 227, 0, 0, 0, - 0, 44, 0, 0, 0, 0, 84, 0, 44, 47, - 0, 0, 0, 84, 0, 0, 47, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 170, 171, 172, 173, - 174, 175, 176, 177, 171, 172, 173, 174, 175, 176, - 177 + 73, 70, 84, 86, 48, 85, 71, 63, 75, 136, + 48, 100, 72, 102, 104, 160, 217, 225, 2, 61, + 154, 155, 111, 112, 140, 175, 176, 92, 94, 96, + 98, 107, 177, 108, 106, 120, 122, 200, 30, 201, + 226, 139, 117, 183, 29, 130, 175, 176, 202, 170, + 171, 172, 129, 177, 55, 134, 73, 70, 161, 218, + 135, 42, 71, 168, 169, 170, 171, 172, 72, 109, + 141, 86, 120, 110, 117, 206, 207, 208, 114, 115, + 211, 212, 213, 214, 215, 123, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 257, 258, 120, 120, + 199, 88, 90, 124, 157, 158, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 112, 131, 113, 120, 114, + 115, 238, 239, 132, 133, 156, 138, 32, 33, 184, + 181, 185, 86, 142, 188, 190, 173, 189, 143, 144, + 145, 146, 147, 148, 182, 192, 193, 194, 195, 196, + 204, 34, 149, 120, 120, 120, 150, 191, 120, 120, + 120, 120, 120, 197, 4, 151, 43, 152, 162, 112, + 174, 82, 159, 186, 46, 183, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 205, 209, 216, 210, 120, + 120, 219, 32, 33, 64, 220, 240, 241, 24, 222, + 25, 223, 26, 224, 235, 228, 244, 229, 230, 231, + 232, 248, 251, 233, 252, 234, 34, 32, 33, 236, + 35, 36, 37, 38, 39, 40, 237, 242, 41, 65, + 245, 43, 243, 246, 262, 66, 45, 186, 249, 46, + 250, 34, 253, 267, 268, 35, 36, 37, 38, 39, + 40, 32, 33, 41, 42, 254, 43, 255, 256, 259, + 44, 45, 263, 260, 46, 261, 35, 36, 37, 38, + 39, 40, 32, 33, 41, 34, 264, 198, 265, 35, + 36, 37, 38, 39, 40, 266, 269, 41, 42, 270, + 43, 77, 78, 137, 247, 45, 34, 55, 46, 0, + 35, 36, 37, 38, 39, 40, 0, 0, 41, 42, + 0, 43, 32, 33, 64, 76, 45, 0, 0, 46, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 0, 0, 0, 32, 33, 0, 34, 0, 0, 0, + 35, 36, 37, 38, 39, 40, 0, 0, 41, 65, + 0, 43, 0, 0, 32, 33, 45, 34, 0, 46, + 0, 35, 36, 37, 38, 39, 40, 32, 33, 41, + 42, 0, 43, 0, 0, 0, 0, 45, 34, 0, + 46, 0, 35, 36, 37, 38, 39, 40, 32, 125, + 41, 34, 0, 43, 0, 32, 33, 0, 45, 0, + 0, 46, 32, 33, 80, 0, 43, 0, 0, 0, + 81, 82, 34, 55, 46, 0, 32, 33, 0, 34, + 32, 33, 126, 127, 118, 42, 34, 43, 0, 0, + 0, 119, 128, 0, 43, 46, 178, 32, 179, 82, + 34, 43, 46, 0, 34, 0, 82, 0, 0, 46, + 32, 33, 0, 42, 0, 43, 0, 80, 0, 43, + 45, 34, 0, 46, 82, 0, 0, 46, 32, 33, + 0, 180, 0, 0, 34, 0, 43, 32, 33, 0, + 0, 82, 0, 0, 46, 0, 0, 0, 0, 43, + 0, 0, 34, 0, 82, 0, 55, 46, 0, 0, + 0, 34, 221, 0, 0, 0, 0, 43, 0, 0, + 0, 0, 82, 0, 0, 46, 43, 0, 0, 0, + 0, 82, 0, 0, 46, 165, 166, 167, 168, 169, + 170, 171, 172, 166, 167, 168, 169, 170, 171, 172 }; static const yytype_int16 yycheck[] = { - 10, 10, 13, 13, 10, 13, 66, 67, 10, 10, - 10, 20, 11, 21, 22, 0, 9, 110, 33, 112, - 35, 49, 82, 33, 34, 6, 51, 8, 9, 44, - 54, 48, 6, 50, 48, 9, 46, 47, 12, 32, - 8, 8, 9, 10, 11, 12, 56, 45, 16, 17, - 18, 19, 53, 53, 50, 23, 65, 56, 68, 68, - 37, 38, 68, 65, 8, 9, 68, 44, 10, 11, - 12, 45, 83, 83, 84, 168, 169, 170, 37, 38, - 173, 174, 175, 176, 177, 14, 15, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 49, 52, 52, - 110, 161, 112, 51, 78, 8, 9, 117, 118, 34, - 51, 51, 37, 38, 157, 52, 159, 11, 128, 44, - 51, 131, 215, 216, 52, 51, 7, 51, 51, 32, - 51, 51, 51, 143, 51, 146, 146, 53, 148, 149, - 51, 149, 45, 46, 47, 51, 8, 9, 51, 52, - 52, 54, 55, 53, 37, 165, 34, 52, 168, 169, - 170, 135, 6, 173, 174, 175, 176, 177, 136, 7, - 32, 8, 9, 10, 184, 10, 53, 151, 152, 153, - 154, 155, 150, 45, 46, 47, 53, 53, 156, 53, - 52, 51, 51, 55, 51, 32, 48, 48, 51, 36, - 37, 38, 39, 40, 41, 215, 216, 44, 45, 46, - 47, 51, 222, 223, 51, 52, 52, 37, 55, 1, - 53, 53, 230, 52, 32, 53, 9, 235, 238, 54, - 239, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 260, 8, 9, 10, 38, 35, 37, 10, 53, 269, - 270, 53, 9, 45, 46, 47, 32, 49, 53, 10, - 10, 32, 8, 9, 53, 32, 53, 53, 12, 36, - 37, 38, 39, 40, 41, 12, -1, 44, 45, 46, - 47, 234, -1, 8, 9, 52, 32, 68, 55, -1, + 10, 10, 13, 13, 6, 13, 10, 9, 11, 65, + 12, 20, 10, 21, 22, 10, 10, 9, 0, 8, + 108, 109, 32, 33, 80, 37, 38, 16, 17, 18, + 19, 48, 44, 50, 23, 45, 46, 33, 51, 35, + 32, 11, 44, 34, 49, 55, 37, 38, 44, 10, + 11, 12, 55, 44, 54, 64, 66, 66, 53, 53, + 64, 45, 66, 8, 9, 10, 11, 12, 66, 50, + 81, 81, 82, 49, 76, 163, 164, 165, 8, 9, + 168, 169, 170, 171, 172, 52, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 37, 38, 108, 109, + 156, 14, 15, 52, 114, 115, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 125, 51, 6, 128, 8, + 9, 209, 210, 51, 51, 7, 52, 8, 9, 139, + 132, 142, 142, 51, 144, 145, 53, 145, 52, 51, + 51, 51, 51, 51, 133, 147, 148, 149, 150, 151, + 160, 32, 51, 163, 164, 165, 51, 146, 168, 169, + 170, 171, 172, 152, 1, 51, 47, 51, 53, 179, + 37, 52, 52, 54, 55, 34, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 52, 6, 10, 7, 209, + 210, 53, 8, 9, 10, 53, 216, 217, 45, 53, + 47, 53, 49, 51, 53, 51, 224, 51, 48, 48, + 51, 229, 232, 51, 233, 52, 32, 8, 9, 53, + 36, 37, 38, 39, 40, 41, 37, 52, 44, 45, + 32, 47, 53, 9, 254, 51, 52, 54, 37, 55, + 38, 32, 35, 263, 264, 36, 37, 38, 39, 40, + 41, 8, 9, 44, 45, 10, 47, 53, 53, 9, + 51, 52, 10, 32, 55, 53, 36, 37, 38, 39, + 40, 41, 8, 9, 44, 32, 10, 153, 32, 36, + 37, 38, 39, 40, 41, 53, 53, 44, 45, 53, + 47, 12, 12, 66, 228, 52, 32, 54, 55, -1, 36, 37, 38, 39, 40, 41, -1, -1, 44, 45, - -1, 47, -1, -1, -1, 51, 52, 32, -1, 55, + -1, 47, 8, 9, 10, 51, 52, -1, -1, 55, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + -1, -1, -1, 8, 9, -1, 32, -1, -1, -1, + 36, 37, 38, 39, 40, 41, -1, -1, 44, 45, + -1, 47, -1, -1, 8, 9, 52, 32, -1, 55, -1, 36, 37, 38, 39, 40, 41, 8, 9, 44, - 45, -1, 47, -1, -1, -1, -1, 52, -1, 54, + 45, -1, 47, -1, -1, -1, -1, 52, 32, -1, 55, -1, 36, 37, 38, 39, 40, 41, 8, 9, - 44, 32, -1, -1, -1, 36, 37, 38, 39, 40, - 41, -1, -1, 44, 45, -1, 47, -1, -1, -1, - 51, 52, 32, -1, 55, -1, 36, 37, 38, 39, - 40, 41, 8, 9, 44, 45, -1, 47, -1, -1, - -1, -1, 52, 8, 9, 55, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 32, 8, 9, -1, - 36, 37, 38, 39, 40, 41, -1, 32, 44, -1, - -1, 47, -1, 8, 9, -1, 52, 42, 43, 55, - 45, 32, 47, -1, 8, 9, 37, 52, -1, -1, - 55, 8, 9, 44, -1, -1, 47, 32, 8, 9, - -1, 52, 8, 9, 55, -1, -1, -1, 32, -1, - 45, -1, 47, -1, -1, 32, -1, 52, 42, -1, - 55, -1, 32, 47, -1, 42, 32, -1, 52, -1, - 47, 55, 8, 9, -1, 52, -1, 47, 55, 8, - 9, 47, 52, -1, 54, 55, 52, -1, 54, 55, - -1, -1, -1, -1, -1, -1, 32, -1, -1, -1, - -1, -1, -1, 32, -1, -1, 42, -1, -1, -1, - -1, 47, -1, -1, -1, -1, 52, -1, 47, 55, - -1, -1, -1, 52, -1, -1, 55, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 5, 6, 7, 8, - 9, 10, 11, 12, 6, 7, 8, 9, 10, 11, - 12 + 44, 32, -1, 47, -1, 8, 9, -1, 52, -1, + -1, 55, 8, 9, 45, -1, 47, -1, -1, -1, + 51, 52, 32, 54, 55, -1, 8, 9, -1, 32, + 8, 9, 42, 43, 37, 45, 32, 47, -1, -1, + -1, 44, 52, -1, 47, 55, 42, 8, 9, 52, + 32, 47, 55, -1, 32, -1, 52, -1, -1, 55, + 8, 9, -1, 45, -1, 47, -1, 45, -1, 47, + 52, 32, -1, 55, 52, -1, -1, 55, 8, 9, + -1, 42, -1, -1, 32, -1, 47, 8, 9, -1, + -1, 52, -1, -1, 55, -1, -1, -1, -1, 47, + -1, -1, 32, -1, 52, -1, 54, 55, -1, -1, + -1, 32, 42, -1, -1, -1, -1, 47, -1, -1, + -1, -1, 52, -1, -1, 55, 47, -1, -1, -1, + -1, 52, -1, -1, 55, 5, 6, 7, 8, 9, + 10, 11, 12, 6, 7, 8, 9, 10, 11, 12 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -852,32 +848,32 @@ static const yytype_uint8 yystos[] = { 0, 57, 0, 58, 1, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 45, 46, 47, 49, 59, 62, - 49, 51, 63, 8, 9, 32, 36, 37, 38, 39, - 40, 41, 44, 45, 47, 51, 52, 55, 67, 82, - 86, 89, 90, 91, 92, 95, 54, 66, 82, 84, - 88, 64, 84, 65, 82, 10, 45, 46, 51, 71, - 83, 85, 86, 90, 91, 95, 69, 92, 51, 63, - 67, 72, 45, 51, 52, 68, 85, 88, 95, 70, - 89, 79, 89, 80, 84, 73, 84, 74, 84, 75, - 84, 76, 86, 77, 88, 78, 88, 81, 84, 48, - 50, 48, 50, 49, 95, 95, 6, 8, 9, 93, - 82, 37, 44, 95, 97, 95, 52, 52, 9, 42, - 43, 52, 92, 95, 51, 51, 51, 86, 90, 93, - 93, 83, 52, 11, 93, 85, 51, 52, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 61, 97, 60, - 97, 7, 95, 95, 52, 10, 53, 53, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 53, 37, - 37, 38, 44, 42, 9, 42, 82, 84, 34, 95, - 85, 54, 87, 95, 88, 95, 84, 82, 82, 82, - 82, 82, 84, 59, 59, 93, 33, 35, 44, 94, - 95, 52, 97, 97, 97, 6, 7, 97, 97, 97, - 97, 97, 10, 10, 53, 53, 53, 42, 53, 53, - 51, 9, 32, 96, 51, 51, 48, 48, 51, 51, - 52, 53, 53, 37, 97, 97, 95, 95, 52, 53, - 88, 32, 9, 87, 88, 37, 38, 95, 86, 35, - 10, 53, 53, 37, 38, 9, 32, 53, 95, 10, - 10, 32, 53, 95, 95, 53, 53 + 28, 29, 30, 31, 45, 47, 49, 59, 61, 49, + 51, 62, 8, 9, 32, 36, 37, 38, 39, 40, + 41, 44, 45, 47, 51, 52, 55, 66, 81, 85, + 88, 89, 90, 91, 94, 54, 65, 81, 83, 87, + 63, 83, 64, 81, 10, 45, 51, 70, 82, 84, + 85, 89, 90, 94, 68, 91, 51, 62, 66, 71, + 45, 51, 52, 67, 84, 87, 94, 69, 88, 78, + 88, 79, 83, 72, 83, 73, 83, 74, 83, 75, + 85, 76, 87, 77, 87, 80, 83, 48, 50, 50, + 49, 94, 94, 6, 8, 9, 92, 81, 37, 44, + 94, 96, 94, 52, 52, 9, 42, 43, 52, 91, + 94, 51, 51, 51, 85, 89, 92, 82, 52, 11, + 92, 84, 51, 52, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 60, 96, 96, 7, 94, 94, 52, + 10, 53, 53, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 53, 37, 37, 38, 44, 42, 9, + 42, 81, 83, 34, 94, 84, 54, 86, 94, 87, + 94, 83, 81, 81, 81, 81, 81, 83, 59, 92, + 33, 35, 44, 93, 94, 52, 96, 96, 96, 6, + 7, 96, 96, 96, 96, 96, 10, 10, 53, 53, + 53, 42, 53, 53, 51, 9, 32, 95, 51, 51, + 48, 48, 51, 51, 52, 53, 53, 37, 96, 96, + 94, 94, 52, 53, 87, 32, 9, 86, 87, 37, + 38, 94, 85, 35, 10, 53, 53, 37, 38, 9, + 32, 53, 94, 10, 10, 32, 53, 94, 94, 53, + 53 }; #define yyerrok (yyerrstatus = 0) @@ -1701,30 +1697,24 @@ yyreduce: case 5: #line 75 "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 82 "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 (%s)", (yyvsp[(1) - (2)].sym)->labelname, (yyvsp[(1) - (2)].sym)->name); (yyvsp[(1) - (2)].sym)->type = LLAB; (yyvsp[(1) - (2)].sym)->value = pc; } break; - case 12: -#line 93 "a.y" + case 10: +#line 89 "a.y" { (yyvsp[(1) - (3)].sym)->type = LVAR; (yyvsp[(1) - (3)].sym)->value = (yyvsp[(3) - (3)].lval); } break; - case 13: -#line 98 "a.y" + case 11: +#line 94 "a.y" { if((yyvsp[(1) - (3)].sym)->value != (yyvsp[(3) - (3)].lval)) yyerror("redeclaration of %s", (yyvsp[(1) - (3)].sym)->name); @@ -1732,191 +1722,191 @@ yyreduce: } break; + case 12: +#line 99 "a.y" + { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } + break; + + case 13: +#line 100 "a.y" + { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } + break; + case 14: -#line 103 "a.y" +#line 101 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 15: -#line 104 "a.y" +#line 102 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 16: -#line 105 "a.y" +#line 103 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 17: -#line 106 "a.y" +#line 104 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 18: -#line 107 "a.y" +#line 105 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 19: -#line 108 "a.y" +#line 106 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 20: -#line 109 "a.y" +#line 107 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 21: -#line 110 "a.y" +#line 108 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 22: -#line 111 "a.y" +#line 109 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 23: -#line 112 "a.y" +#line 110 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 24: -#line 113 "a.y" +#line 111 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 25: -#line 114 "a.y" +#line 112 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 26: -#line 115 "a.y" +#line 113 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 27: -#line 116 "a.y" +#line 114 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 28: -#line 117 "a.y" +#line 115 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 29: -#line 118 "a.y" +#line 116 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 30: -#line 119 "a.y" +#line 117 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } break; case 31: #line 120 "a.y" - { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } - break; - - case 32: -#line 121 "a.y" - { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); } - break; - - case 33: -#line 124 "a.y" { (yyval.addr2).from = nullgen; (yyval.addr2).to = nullgen; } break; - case 34: -#line 129 "a.y" + case 32: +#line 125 "a.y" { (yyval.addr2).from = nullgen; (yyval.addr2).to = nullgen; } break; - case 35: -#line 136 "a.y" + case 33: +#line 132 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (3)].addr); (yyval.addr2).to = (yyvsp[(3) - (3)].addr); } break; - case 36: -#line 143 "a.y" + case 34: +#line 139 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (3)].addr); (yyval.addr2).to = (yyvsp[(3) - (3)].addr); } break; - case 37: -#line 150 "a.y" + case 35: +#line 146 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (2)].addr); (yyval.addr2).to = nullgen; } break; - case 38: -#line 155 "a.y" + case 36: +#line 151 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (1)].addr); (yyval.addr2).to = nullgen; } break; - case 39: -#line 162 "a.y" + case 37: +#line 158 "a.y" { (yyval.addr2).from = nullgen; (yyval.addr2).to = (yyvsp[(2) - (2)].addr); } break; - case 40: -#line 167 "a.y" + case 38: +#line 163 "a.y" { (yyval.addr2).from = nullgen; (yyval.addr2).to = (yyvsp[(1) - (1)].addr); } break; - case 41: -#line 174 "a.y" + case 39: +#line 170 "a.y" { (yyval.addr2).from = nullgen; (yyval.addr2).to = (yyvsp[(2) - (2)].addr); } break; - case 42: -#line 179 "a.y" + case 40: +#line 175 "a.y" { (yyval.addr2).from = nullgen; (yyval.addr2).to = (yyvsp[(1) - (1)].addr); } break; - case 43: -#line 184 "a.y" + case 41: +#line 180 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (3)].addr); (yyval.addr2).to = (yyvsp[(3) - (3)].addr); } break; - case 44: -#line 191 "a.y" + case 42: +#line 187 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (5)].addr); (yyval.addr2).from.scale = (yyvsp[(3) - (5)].lval); @@ -1924,49 +1914,51 @@ yyreduce: } break; - case 45: -#line 199 "a.y" + case 43: +#line 195 "a.y" { + settext((yyvsp[(1) - (3)].addr).sym); (yyval.addr2).from = (yyvsp[(1) - (3)].addr); (yyval.addr2).to = (yyvsp[(3) - (3)].addr); } break; - case 46: -#line 204 "a.y" + case 44: +#line 201 "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 47: -#line 212 "a.y" + case 45: +#line 210 "a.y" { (yyval.addr2).from = nullgen; (yyval.addr2).to = (yyvsp[(2) - (2)].addr); } break; - case 48: -#line 217 "a.y" + case 46: +#line 215 "a.y" { (yyval.addr2).from = nullgen; (yyval.addr2).to = (yyvsp[(1) - (1)].addr); } break; - case 51: -#line 228 "a.y" + case 49: +#line 226 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (3)].addr); (yyval.addr2).to = (yyvsp[(3) - (3)].addr); } break; - case 52: -#line 233 "a.y" + case 50: +#line 231 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (5)].addr); (yyval.addr2).to = (yyvsp[(3) - (5)].addr); @@ -1976,16 +1968,16 @@ yyreduce: } break; - case 53: -#line 243 "a.y" + case 51: +#line 241 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (3)].addr); (yyval.addr2).to = (yyvsp[(3) - (3)].addr); } break; - case 54: -#line 248 "a.y" + case 52: +#line 246 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (5)].addr); (yyval.addr2).to = (yyvsp[(3) - (5)].addr); @@ -1995,32 +1987,32 @@ yyreduce: } break; - case 55: -#line 258 "a.y" + case 53: +#line 256 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (2)].addr); (yyval.addr2).to = nullgen; } break; - case 56: -#line 263 "a.y" + case 54: +#line 261 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (1)].addr); (yyval.addr2).to = nullgen; } break; - case 57: -#line 268 "a.y" + case 55: +#line 266 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (3)].addr); (yyval.addr2).to = (yyvsp[(3) - (3)].addr); } break; - case 58: -#line 275 "a.y" + case 56: +#line 273 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (5)].addr); (yyval.addr2).to = (yyvsp[(3) - (5)].addr); @@ -2028,8 +2020,8 @@ yyreduce: } break; - case 59: -#line 283 "a.y" + case 57: +#line 281 "a.y" { (yyval.addr2).from = (yyvsp[(3) - (5)].addr); (yyval.addr2).to = (yyvsp[(5) - (5)].addr); @@ -2039,32 +2031,32 @@ yyreduce: } break; - case 60: -#line 292 "a.y" + case 58: +#line 290 "a.y" { (yyval.addr2).from = nullgen; (yyval.addr2).to = nullgen; } break; - case 61: -#line 297 "a.y" + case 59: +#line 295 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (1)].addr); (yyval.addr2).to = nullgen; } break; - case 62: -#line 304 "a.y" + case 60: +#line 302 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (3)].addr); (yyval.addr2).to = (yyvsp[(3) - (3)].addr); } break; - case 63: -#line 309 "a.y" + case 61: +#line 307 "a.y" { (yyval.addr2).from = (yyvsp[(1) - (5)].addr); (yyval.addr2).from.scale = (yyvsp[(3) - (5)].lval); @@ -2072,8 +2064,8 @@ yyreduce: } break; - case 64: -#line 317 "a.y" + case 62: +#line 315 "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"); @@ -2082,8 +2074,8 @@ yyreduce: } break; - case 65: -#line 326 "a.y" + case 63: +#line 324 "a.y" { if((yyvsp[(1) - (3)].addr).type != D_CONST) yyerror("index for FUNCDATA must be integer constant"); @@ -2094,22 +2086,22 @@ yyreduce: } break; - case 70: -#line 343 "a.y" + case 68: +#line 341 "a.y" { (yyval.addr) = (yyvsp[(2) - (2)].addr); } break; - case 71: -#line 347 "a.y" + case 69: +#line 345 "a.y" { (yyval.addr) = (yyvsp[(2) - (2)].addr); } break; - case 76: -#line 359 "a.y" + case 74: +#line 357 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_BRANCH; @@ -2117,84 +2109,76 @@ yyreduce: } break; - case 77: -#line 365 "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 78: -#line 373 "a.y" + case 75: +#line 363 "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 79: -#line 381 "a.y" + case 76: +#line 374 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = (yyvsp[(1) - (1)].lval); } break; - case 80: -#line 386 "a.y" + case 77: +#line 379 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = (yyvsp[(1) - (1)].lval); } break; - case 81: -#line 391 "a.y" + case 78: +#line 384 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = (yyvsp[(1) - (1)].lval); } break; - case 82: -#line 396 "a.y" + case 79: +#line 389 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = (yyvsp[(1) - (1)].lval); } break; - case 83: -#line 401 "a.y" + case 80: +#line 394 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_SP; } break; - case 84: -#line 406 "a.y" + case 81: +#line 399 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = (yyvsp[(1) - (1)].lval); } break; - case 85: -#line 411 "a.y" + case 82: +#line 404 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = (yyvsp[(1) - (1)].lval); } break; - case 86: -#line 417 "a.y" + case 83: +#line 410 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_CONST; @@ -2202,8 +2186,8 @@ yyreduce: } break; - case 87: -#line 425 "a.y" + case 84: +#line 418 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_CONST; @@ -2211,8 +2195,8 @@ yyreduce: } break; - case 88: -#line 431 "a.y" + case 85: +#line 424 "a.y" { (yyval.addr) = (yyvsp[(2) - (2)].addr); (yyval.addr).index = (yyvsp[(2) - (2)].addr).type; @@ -2225,8 +2209,8 @@ yyreduce: } break; - case 89: -#line 442 "a.y" + case 86: +#line 435 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_SCONST; @@ -2234,8 +2218,8 @@ yyreduce: } break; - case 90: -#line 448 "a.y" + case 87: +#line 441 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_FCONST; @@ -2243,8 +2227,8 @@ yyreduce: } break; - case 91: -#line 454 "a.y" + case 88: +#line 447 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_FCONST; @@ -2252,8 +2236,8 @@ yyreduce: } break; - case 92: -#line 460 "a.y" + case 89: +#line 453 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_FCONST; @@ -2261,8 +2245,8 @@ yyreduce: } break; - case 93: -#line 466 "a.y" + case 90: +#line 459 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_FCONST; @@ -2270,8 +2254,8 @@ yyreduce: } break; - case 96: -#line 478 "a.y" + case 93: +#line 471 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_INDIR+D_NONE; @@ -2279,8 +2263,8 @@ yyreduce: } break; - case 97: -#line 484 "a.y" + case 94: +#line 477 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_INDIR+(yyvsp[(3) - (4)].lval); @@ -2288,8 +2272,8 @@ yyreduce: } break; - case 98: -#line 490 "a.y" + case 95: +#line 483 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_INDIR+D_SP; @@ -2297,8 +2281,8 @@ yyreduce: } break; - case 99: -#line 496 "a.y" + case 96: +#line 489 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_INDIR+(yyvsp[(3) - (4)].lval); @@ -2306,8 +2290,8 @@ yyreduce: } break; - case 100: -#line 502 "a.y" + case 97: +#line 495 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_INDIR+D_NONE; @@ -2318,8 +2302,8 @@ yyreduce: } break; - case 101: -#line 511 "a.y" + case 98: +#line 504 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_INDIR+(yyvsp[(3) - (9)].lval); @@ -2330,8 +2314,8 @@ yyreduce: } break; - case 102: -#line 520 "a.y" + case 99: +#line 513 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_INDIR+(yyvsp[(3) - (9)].lval); @@ -2342,24 +2326,24 @@ yyreduce: } break; - case 103: -#line 529 "a.y" + case 100: +#line 522 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_INDIR+(yyvsp[(2) - (3)].lval); } break; - case 104: -#line 534 "a.y" + case 101: +#line 527 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_INDIR+D_SP; } break; - case 105: -#line 539 "a.y" + case 102: +#line 532 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_INDIR+D_NONE; @@ -2369,8 +2353,8 @@ yyreduce: } break; - case 106: -#line 547 "a.y" + case 103: +#line 540 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_INDIR+(yyvsp[(2) - (8)].lval); @@ -2380,15 +2364,15 @@ yyreduce: } break; - case 107: -#line 557 "a.y" + case 104: +#line 550 "a.y" { (yyval.addr) = (yyvsp[(1) - (1)].addr); } break; - case 108: -#line 561 "a.y" + case 105: +#line 554 "a.y" { (yyval.addr) = (yyvsp[(1) - (6)].addr); (yyval.addr).index = (yyvsp[(3) - (6)].lval); @@ -2397,8 +2381,8 @@ yyreduce: } break; - case 109: -#line 570 "a.y" + case 106: +#line 563 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = (yyvsp[(4) - (5)].lval); @@ -2407,8 +2391,8 @@ yyreduce: } break; - case 110: -#line 577 "a.y" + case 107: +#line 570 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = D_STATIC; @@ -2417,166 +2401,166 @@ yyreduce: } break; - case 111: -#line 585 "a.y" + case 108: +#line 578 "a.y" { (yyval.lval) = 0; } break; - case 112: -#line 589 "a.y" + case 109: +#line 582 "a.y" { (yyval.lval) = (yyvsp[(2) - (2)].lval); } break; - case 113: -#line 593 "a.y" + case 110: +#line 586 "a.y" { (yyval.lval) = -(yyvsp[(2) - (2)].lval); } break; - case 115: -#line 600 "a.y" + case 112: +#line 593 "a.y" { (yyval.lval) = D_AUTO; } break; - case 118: -#line 608 "a.y" + case 115: +#line 601 "a.y" { (yyval.lval) = (yyvsp[(1) - (1)].sym)->value; } break; - case 119: -#line 612 "a.y" + case 116: +#line 605 "a.y" { (yyval.lval) = -(yyvsp[(2) - (2)].lval); } break; - case 120: -#line 616 "a.y" + case 117: +#line 609 "a.y" { (yyval.lval) = (yyvsp[(2) - (2)].lval); } break; - case 121: -#line 620 "a.y" + case 118: +#line 613 "a.y" { (yyval.lval) = ~(yyvsp[(2) - (2)].lval); } break; - case 122: -#line 624 "a.y" + case 119: +#line 617 "a.y" { (yyval.lval) = (yyvsp[(2) - (3)].lval); } break; - case 123: -#line 630 "a.y" + case 120: +#line 623 "a.y" { (yyval.lval) = ((yyvsp[(1) - (1)].lval) & 0xffffffffLL) + ((vlong)ArgsSizeUnknown << 32); } break; - case 124: -#line 635 "a.y" + case 121: +#line 628 "a.y" { (yyval.lval) = (-(yyvsp[(2) - (2)].lval) & 0xffffffffLL) + ((vlong)ArgsSizeUnknown << 32); } break; - case 125: -#line 640 "a.y" + case 122: +#line 633 "a.y" { (yyval.lval) = ((yyvsp[(1) - (3)].lval) & 0xffffffffLL) + (((yyvsp[(3) - (3)].lval) & 0xffffLL) << 32); } break; - case 126: -#line 645 "a.y" + case 123: +#line 638 "a.y" { (yyval.lval) = (-(yyvsp[(2) - (4)].lval) & 0xffffffffLL) + (((yyvsp[(4) - (4)].lval) & 0xffffLL) << 32); } break; - case 128: -#line 653 "a.y" + case 125: +#line 646 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) + (yyvsp[(3) - (3)].lval); } break; - case 129: -#line 657 "a.y" + case 126: +#line 650 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) - (yyvsp[(3) - (3)].lval); } break; - case 130: -#line 661 "a.y" + case 127: +#line 654 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) * (yyvsp[(3) - (3)].lval); } break; - case 131: -#line 665 "a.y" + case 128: +#line 658 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) / (yyvsp[(3) - (3)].lval); } break; - case 132: -#line 669 "a.y" + case 129: +#line 662 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) % (yyvsp[(3) - (3)].lval); } break; - case 133: -#line 673 "a.y" + case 130: +#line 666 "a.y" { (yyval.lval) = (yyvsp[(1) - (4)].lval) << (yyvsp[(4) - (4)].lval); } break; - case 134: -#line 677 "a.y" + case 131: +#line 670 "a.y" { (yyval.lval) = (yyvsp[(1) - (4)].lval) >> (yyvsp[(4) - (4)].lval); } break; - case 135: -#line 681 "a.y" + case 132: +#line 674 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) & (yyvsp[(3) - (3)].lval); } break; - case 136: -#line 685 "a.y" + case 133: +#line 678 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) ^ (yyvsp[(3) - (3)].lval); } break; - case 137: -#line 689 "a.y" + case 134: +#line 682 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) | (yyvsp[(3) - (3)].lval); } @@ -2584,7 +2568,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 2588 "y.tab.c" +#line 2572 "y.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); |