From d0c21af7d30214e19ad1cfd018ce76fcda3a86ea Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Wed, 18 Feb 2015 13:32:28 -0500 Subject: [PATCH] [dev.cc] cmd/9a, cmd/new9a: fix line numbers Fixed for the other assemblers in CL 2297042 in 2010. Change-Id: I6cf41c569e884d98d295369e60e550ff8c0884e6 Reviewed-on: https://go-review.googlesource.com/5173 Reviewed-by: Rob Pike --- src/cmd/9a/a.h | 1 + src/cmd/9a/a.y | 6 +- src/cmd/9a/lex.c | 4 +- src/cmd/9a/y.tab.c | 1455 +++++++++++++++++++++-------------------- src/cmd/new9a/a.y | 6 +- src/cmd/new9a/lex.go | 9 +- src/cmd/new9a/y.go | 1468 ++++++++++++++++++++++++------------------ 7 files changed, 1580 insertions(+), 1369 deletions(-) diff --git a/src/cmd/9a/a.h b/src/cmd/9a/a.h index a2280b1e98..d4f2fee119 100644 --- a/src/cmd/9a/a.h +++ b/src/cmd/9a/a.h @@ -118,6 +118,7 @@ EXTERN char* outfile; EXTERN int pass; EXTERN int32 pc; EXTERN int peekc; +EXTERN int32 stmtline; EXTERN int sym; EXTERN char* symb; EXTERN int thechar; diff --git a/src/cmd/9a/a.y b/src/cmd/9a/a.y index 71d714b0d1..7c55af96c2 100644 --- a/src/cmd/9a/a.y +++ b/src/cmd/9a/a.y @@ -64,7 +64,11 @@ %type imm ximm fimm rel psr lcr cbit fpscr msr mask %% prog: -| prog line +| prog + { + stmtline = lineno; + } + line line: LNAME ':' diff --git a/src/cmd/9a/lex.c b/src/cmd/9a/lex.c index 942791247e..ad552370d4 100644 --- a/src/cmd/9a/lex.c +++ b/src/cmd/9a/lex.c @@ -672,7 +672,7 @@ outcode(int a, Addr *g1, int reg, Addr *g2) p = emallocz(sizeof(Prog)); p->as = a; - p->lineno = lineno; + p->lineno = stmtline; if(nosched) p->mark |= NOSCHED; p->from = *g1; @@ -702,7 +702,7 @@ outgcode(int a, Addr *g1, int reg, Addr *g2, Addr *g3) p = emallocz(sizeof(Prog)); p->as = a; - p->lineno = lineno; + p->lineno = stmtline; if(nosched) p->mark |= NOSCHED; p->from = *g1; diff --git a/src/cmd/9a/y.tab.c b/src/cmd/9a/y.tab.c index 178dfe1bca..e89d94d43d 100644 --- a/src/cmd/9a/y.tab.c +++ b/src/cmd/9a/y.tab.c @@ -462,16 +462,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 932 +#define YYLAST 880 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 82 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 31 +#define YYNNTS 32 /* YYNRULES -- Number of rules. */ -#define YYNRULES 186 +#define YYNRULES 187 /* YYNRULES -- Number of states. */ -#define YYNSTATES 462 +#define YYNSTATES 463 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -522,140 +522,140 @@ static const yytype_uint8 yytranslate[] = YYRHS. */ static const yytype_uint16 yyprhs[] = { - 0, 0, 3, 4, 7, 8, 13, 18, 23, 26, - 28, 31, 34, 39, 44, 49, 54, 59, 64, 69, - 74, 79, 84, 89, 94, 99, 104, 109, 114, 119, - 124, 129, 134, 141, 146, 151, 158, 163, 168, 175, - 182, 189, 194, 199, 206, 211, 218, 223, 230, 235, - 240, 243, 250, 255, 260, 265, 272, 277, 282, 287, - 292, 297, 302, 307, 312, 315, 318, 323, 327, 331, - 337, 342, 347, 354, 359, 364, 371, 378, 385, 394, - 399, 404, 408, 411, 416, 421, 428, 437, 442, 449, - 454, 459, 466, 473, 482, 491, 500, 509, 514, 519, - 524, 531, 536, 543, 548, 553, 556, 559, 563, 567, - 571, 575, 578, 582, 586, 591, 596, 599, 605, 613, - 618, 625, 632, 639, 646, 649, 654, 657, 659, 661, - 663, 665, 667, 669, 671, 673, 678, 680, 682, 684, - 689, 691, 696, 698, 702, 704, 707, 711, 716, 719, - 722, 725, 729, 732, 734, 739, 743, 749, 751, 756, - 761, 767, 775, 776, 778, 779, 782, 785, 787, 789, - 791, 793, 795, 798, 801, 804, 808, 810, 814, 818, - 822, 826, 830, 835, 840, 844, 848 + 0, 0, 3, 4, 5, 9, 10, 15, 20, 25, + 28, 30, 33, 36, 41, 46, 51, 56, 61, 66, + 71, 76, 81, 86, 91, 96, 101, 106, 111, 116, + 121, 126, 131, 136, 143, 148, 153, 160, 165, 170, + 177, 184, 191, 196, 201, 208, 213, 220, 225, 232, + 237, 242, 245, 252, 257, 262, 267, 274, 279, 284, + 289, 294, 299, 304, 309, 314, 317, 320, 325, 329, + 333, 339, 344, 349, 356, 361, 366, 373, 380, 387, + 396, 401, 406, 410, 413, 418, 423, 430, 439, 444, + 451, 456, 461, 468, 475, 484, 493, 502, 511, 516, + 521, 526, 533, 538, 545, 550, 555, 558, 561, 565, + 569, 573, 577, 580, 584, 588, 593, 598, 601, 607, + 615, 620, 627, 634, 641, 648, 651, 656, 659, 661, + 663, 665, 667, 669, 671, 673, 675, 680, 682, 684, + 686, 691, 693, 698, 700, 704, 706, 709, 713, 718, + 721, 724, 727, 731, 734, 736, 741, 745, 751, 753, + 758, 763, 769, 777, 778, 780, 781, 784, 787, 789, + 791, 793, 795, 797, 800, 803, 806, 810, 812, 816, + 820, 824, 828, 832, 837, 842, 846, 850 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int8 yyrhs[] = { - 83, 0, -1, -1, 83, 84, -1, -1, 71, 74, - 85, 84, -1, 71, 75, 112, 76, -1, 73, 75, - 112, 76, -1, 58, 76, -1, 76, -1, 86, 76, - -1, 1, 76, -1, 13, 88, 77, 88, -1, 13, - 106, 77, 88, -1, 13, 105, 77, 88, -1, 14, - 88, 77, 88, -1, 14, 106, 77, 88, -1, 14, - 105, 77, 88, -1, 22, 106, 77, 96, -1, 22, - 105, 77, 96, -1, 22, 102, 77, 96, -1, 22, - 96, 77, 96, -1, 22, 96, 77, 106, -1, 22, - 96, 77, 105, -1, 13, 88, 77, 106, -1, 13, - 88, 77, 105, -1, 14, 88, 77, 106, -1, 14, - 88, 77, 105, -1, 13, 96, 77, 106, -1, 13, - 96, 77, 105, -1, 13, 95, 77, 96, -1, 13, - 96, 77, 95, -1, 13, 96, 77, 103, 77, 95, - -1, 13, 95, 77, 97, -1, 67, 103, 77, 111, - -1, 13, 88, 77, 103, 77, 91, -1, 13, 88, - 77, 97, -1, 13, 88, 77, 91, -1, 18, 88, - 77, 104, 77, 88, -1, 18, 103, 77, 104, 77, - 88, -1, 18, 88, 77, 103, 77, 88, -1, 18, - 88, 77, 88, -1, 18, 103, 77, 88, -1, 16, - 88, 77, 104, 77, 88, -1, 16, 88, 77, 88, - -1, 17, 88, 77, 104, 77, 88, -1, 17, 88, - 77, 88, -1, 17, 103, 77, 104, 77, 88, -1, - 17, 103, 77, 88, -1, 15, 88, 77, 88, -1, - 15, 88, -1, 68, 88, 77, 104, 77, 88, -1, - 13, 103, 77, 88, -1, 13, 101, 77, 88, -1, - 20, 98, 77, 98, -1, 20, 98, 77, 111, 77, - 98, -1, 13, 97, 77, 97, -1, 13, 94, 77, - 97, -1, 13, 91, 77, 88, -1, 13, 94, 77, - 88, -1, 13, 89, 77, 88, -1, 13, 88, 77, - 89, -1, 13, 97, 77, 94, -1, 13, 88, 77, - 94, -1, 21, 87, -1, 21, 106, -1, 21, 78, - 89, 79, -1, 21, 77, 87, -1, 21, 77, 106, - -1, 21, 77, 78, 89, 79, -1, 21, 97, 77, - 87, -1, 21, 97, 77, 106, -1, 21, 97, 77, - 78, 89, 79, -1, 21, 111, 77, 87, -1, 21, - 111, 77, 106, -1, 21, 111, 77, 78, 89, 79, - -1, 21, 111, 77, 111, 77, 87, -1, 21, 111, - 77, 111, 77, 106, -1, 21, 111, 77, 111, 77, - 78, 89, 79, -1, 27, 88, 77, 104, -1, 27, - 103, 77, 104, -1, 27, 88, 108, -1, 27, 108, - -1, 23, 96, 77, 96, -1, 25, 96, 77, 96, - -1, 25, 96, 77, 96, 77, 96, -1, 26, 96, - 77, 96, 77, 96, 77, 96, -1, 24, 96, 77, - 96, -1, 24, 96, 77, 96, 77, 97, -1, 19, - 88, 77, 88, -1, 19, 88, 77, 103, -1, 19, - 88, 77, 88, 77, 97, -1, 19, 88, 77, 103, - 77, 97, -1, 63, 103, 77, 88, 77, 103, 77, - 88, -1, 63, 103, 77, 88, 77, 99, 77, 88, - -1, 63, 88, 77, 88, 77, 103, 77, 88, -1, - 63, 88, 77, 88, 77, 99, 77, 88, -1, 64, - 106, 77, 88, -1, 64, 88, 77, 106, -1, 59, - 105, 77, 88, -1, 59, 105, 77, 103, 77, 88, - -1, 60, 88, 77, 105, -1, 60, 88, 77, 103, - 77, 105, -1, 62, 105, 77, 88, -1, 62, 88, - 77, 105, -1, 61, 105, -1, 29, 108, -1, 29, - 88, 108, -1, 29, 96, 108, -1, 29, 77, 88, - -1, 29, 77, 96, -1, 29, 103, -1, 32, 103, - 108, -1, 32, 101, 108, -1, 56, 103, 77, 103, - -1, 57, 103, 77, 106, -1, 30, 108, -1, 33, - 107, 77, 80, 100, -1, 33, 107, 77, 111, 77, - 80, 100, -1, 34, 107, 77, 103, -1, 34, 107, - 77, 111, 77, 103, -1, 35, 107, 11, 111, 77, - 103, -1, 35, 107, 11, 111, 77, 101, -1, 35, - 107, 11, 111, 77, 102, -1, 36, 108, -1, 111, - 78, 41, 79, -1, 71, 109, -1, 104, -1, 90, - -1, 92, -1, 50, -1, 47, -1, 51, -1, 55, - -1, 53, -1, 52, 78, 111, 79, -1, 93, -1, - 49, -1, 45, -1, 48, 78, 111, 79, -1, 42, - -1, 47, 78, 111, 79, -1, 111, -1, 111, 77, - 111, -1, 37, -1, 9, 37, -1, 37, 9, 37, - -1, 9, 37, 9, 37, -1, 80, 106, -1, 80, - 70, -1, 80, 69, -1, 80, 9, 69, -1, 80, - 111, -1, 44, -1, 46, 78, 111, 79, -1, 78, - 104, 79, -1, 78, 104, 8, 104, 79, -1, 107, - -1, 111, 78, 104, 79, -1, 111, 78, 110, 79, - -1, 71, 109, 78, 110, 79, -1, 71, 6, 7, - 109, 78, 39, 79, -1, -1, 77, -1, -1, 8, - 111, -1, 9, 111, -1, 39, -1, 38, -1, 40, - -1, 37, -1, 73, -1, 9, 111, -1, 8, 111, - -1, 81, 111, -1, 78, 112, 79, -1, 111, -1, - 112, 8, 112, -1, 112, 9, 112, -1, 112, 10, - 112, -1, 112, 11, 112, -1, 112, 12, 112, -1, - 112, 6, 6, 112, -1, 112, 7, 7, 112, -1, - 112, 5, 112, -1, 112, 4, 112, -1, 112, 3, - 112, -1 + 83, 0, -1, -1, -1, 83, 84, 85, -1, -1, + 71, 74, 86, 85, -1, 71, 75, 113, 76, -1, + 73, 75, 113, 76, -1, 58, 76, -1, 76, -1, + 87, 76, -1, 1, 76, -1, 13, 89, 77, 89, + -1, 13, 107, 77, 89, -1, 13, 106, 77, 89, + -1, 14, 89, 77, 89, -1, 14, 107, 77, 89, + -1, 14, 106, 77, 89, -1, 22, 107, 77, 97, + -1, 22, 106, 77, 97, -1, 22, 103, 77, 97, + -1, 22, 97, 77, 97, -1, 22, 97, 77, 107, + -1, 22, 97, 77, 106, -1, 13, 89, 77, 107, + -1, 13, 89, 77, 106, -1, 14, 89, 77, 107, + -1, 14, 89, 77, 106, -1, 13, 97, 77, 107, + -1, 13, 97, 77, 106, -1, 13, 96, 77, 97, + -1, 13, 97, 77, 96, -1, 13, 97, 77, 104, + 77, 96, -1, 13, 96, 77, 98, -1, 67, 104, + 77, 112, -1, 13, 89, 77, 104, 77, 92, -1, + 13, 89, 77, 98, -1, 13, 89, 77, 92, -1, + 18, 89, 77, 105, 77, 89, -1, 18, 104, 77, + 105, 77, 89, -1, 18, 89, 77, 104, 77, 89, + -1, 18, 89, 77, 89, -1, 18, 104, 77, 89, + -1, 16, 89, 77, 105, 77, 89, -1, 16, 89, + 77, 89, -1, 17, 89, 77, 105, 77, 89, -1, + 17, 89, 77, 89, -1, 17, 104, 77, 105, 77, + 89, -1, 17, 104, 77, 89, -1, 15, 89, 77, + 89, -1, 15, 89, -1, 68, 89, 77, 105, 77, + 89, -1, 13, 104, 77, 89, -1, 13, 102, 77, + 89, -1, 20, 99, 77, 99, -1, 20, 99, 77, + 112, 77, 99, -1, 13, 98, 77, 98, -1, 13, + 95, 77, 98, -1, 13, 92, 77, 89, -1, 13, + 95, 77, 89, -1, 13, 90, 77, 89, -1, 13, + 89, 77, 90, -1, 13, 98, 77, 95, -1, 13, + 89, 77, 95, -1, 21, 88, -1, 21, 107, -1, + 21, 78, 90, 79, -1, 21, 77, 88, -1, 21, + 77, 107, -1, 21, 77, 78, 90, 79, -1, 21, + 98, 77, 88, -1, 21, 98, 77, 107, -1, 21, + 98, 77, 78, 90, 79, -1, 21, 112, 77, 88, + -1, 21, 112, 77, 107, -1, 21, 112, 77, 78, + 90, 79, -1, 21, 112, 77, 112, 77, 88, -1, + 21, 112, 77, 112, 77, 107, -1, 21, 112, 77, + 112, 77, 78, 90, 79, -1, 27, 89, 77, 105, + -1, 27, 104, 77, 105, -1, 27, 89, 109, -1, + 27, 109, -1, 23, 97, 77, 97, -1, 25, 97, + 77, 97, -1, 25, 97, 77, 97, 77, 97, -1, + 26, 97, 77, 97, 77, 97, 77, 97, -1, 24, + 97, 77, 97, -1, 24, 97, 77, 97, 77, 98, + -1, 19, 89, 77, 89, -1, 19, 89, 77, 104, + -1, 19, 89, 77, 89, 77, 98, -1, 19, 89, + 77, 104, 77, 98, -1, 63, 104, 77, 89, 77, + 104, 77, 89, -1, 63, 104, 77, 89, 77, 100, + 77, 89, -1, 63, 89, 77, 89, 77, 104, 77, + 89, -1, 63, 89, 77, 89, 77, 100, 77, 89, + -1, 64, 107, 77, 89, -1, 64, 89, 77, 107, + -1, 59, 106, 77, 89, -1, 59, 106, 77, 104, + 77, 89, -1, 60, 89, 77, 106, -1, 60, 89, + 77, 104, 77, 106, -1, 62, 106, 77, 89, -1, + 62, 89, 77, 106, -1, 61, 106, -1, 29, 109, + -1, 29, 89, 109, -1, 29, 97, 109, -1, 29, + 77, 89, -1, 29, 77, 97, -1, 29, 104, -1, + 32, 104, 109, -1, 32, 102, 109, -1, 56, 104, + 77, 104, -1, 57, 104, 77, 107, -1, 30, 109, + -1, 33, 108, 77, 80, 101, -1, 33, 108, 77, + 112, 77, 80, 101, -1, 34, 108, 77, 104, -1, + 34, 108, 77, 112, 77, 104, -1, 35, 108, 11, + 112, 77, 104, -1, 35, 108, 11, 112, 77, 102, + -1, 35, 108, 11, 112, 77, 103, -1, 36, 109, + -1, 112, 78, 41, 79, -1, 71, 110, -1, 105, + -1, 91, -1, 93, -1, 50, -1, 47, -1, 51, + -1, 55, -1, 53, -1, 52, 78, 112, 79, -1, + 94, -1, 49, -1, 45, -1, 48, 78, 112, 79, + -1, 42, -1, 47, 78, 112, 79, -1, 112, -1, + 112, 77, 112, -1, 37, -1, 9, 37, -1, 37, + 9, 37, -1, 9, 37, 9, 37, -1, 80, 107, + -1, 80, 70, -1, 80, 69, -1, 80, 9, 69, + -1, 80, 112, -1, 44, -1, 46, 78, 112, 79, + -1, 78, 105, 79, -1, 78, 105, 8, 105, 79, + -1, 108, -1, 112, 78, 105, 79, -1, 112, 78, + 111, 79, -1, 71, 110, 78, 111, 79, -1, 71, + 6, 7, 110, 78, 39, 79, -1, -1, 77, -1, + -1, 8, 112, -1, 9, 112, -1, 39, -1, 38, + -1, 40, -1, 37, -1, 73, -1, 9, 112, -1, + 8, 112, -1, 81, 112, -1, 78, 113, 79, -1, + 112, -1, 113, 8, 113, -1, 113, 9, 113, -1, + 113, 10, 113, -1, 113, 11, 113, -1, 113, 12, + 113, -1, 113, 6, 6, 113, -1, 113, 7, 7, + 113, -1, 113, 5, 113, -1, 113, 4, 113, -1, + 113, 3, 113, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 66, 66, 67, 71, 70, 79, 84, 90, 94, - 95, 96, 102, 106, 110, 114, 118, 122, 129, 133, - 137, 141, 145, 149, 156, 160, 164, 168, 175, 179, - 186, 190, 194, 198, 202, 209, 213, 217, 227, 231, + 0, 66, 66, 68, 67, 75, 74, 83, 88, 94, + 98, 99, 100, 106, 110, 114, 118, 122, 126, 133, + 137, 141, 145, 149, 153, 160, 164, 168, 172, 179, + 183, 190, 194, 198, 202, 206, 213, 217, 221, 231, 235, 239, 243, 247, 251, 255, 259, 263, 267, 271, - 275, 282, 289, 293, 300, 304, 312, 316, 320, 324, - 328, 332, 336, 340, 349, 353, 357, 361, 365, 369, - 373, 377, 381, 385, 389, 393, 397, 405, 413, 424, - 428, 432, 436, 443, 447, 451, 455, 459, 463, 470, - 474, 478, 482, 489, 493, 497, 501, 508, 512, 520, - 524, 528, 532, 536, 540, 544, 551, 555, 559, 563, - 567, 571, 578, 582, 589, 598, 609, 616, 621, 633, - 638, 651, 659, 667, 678, 684, 690, 701, 709, 710, - 713, 721, 729, 737, 745, 751, 759, 762, 770, 776, - 784, 790, 798, 806, 827, 834, 841, 848, 857, 862, - 870, 876, 883, 891, 892, 900, 907, 917, 918, 927, - 935, 943, 952, 953, 956, 959, 963, 969, 970, 971, - 974, 975, 979, 983, 987, 991, 997, 998, 1002, 1006, - 1010, 1014, 1018, 1022, 1026, 1030, 1034 + 275, 279, 286, 293, 297, 304, 308, 316, 320, 324, + 328, 332, 336, 340, 344, 353, 357, 361, 365, 369, + 373, 377, 381, 385, 389, 393, 397, 401, 409, 417, + 428, 432, 436, 440, 447, 451, 455, 459, 463, 467, + 474, 478, 482, 486, 493, 497, 501, 505, 512, 516, + 524, 528, 532, 536, 540, 544, 548, 555, 559, 563, + 567, 571, 575, 582, 586, 593, 602, 613, 620, 625, + 637, 642, 655, 663, 671, 682, 688, 694, 705, 713, + 714, 717, 725, 733, 741, 749, 755, 763, 766, 774, + 780, 788, 794, 802, 810, 831, 838, 845, 852, 861, + 866, 874, 880, 887, 895, 896, 904, 911, 921, 922, + 931, 939, 947, 956, 957, 960, 963, 967, 973, 974, + 975, 978, 979, 983, 987, 991, 995, 1001, 1002, 1006, + 1010, 1014, 1018, 1022, 1026, 1030, 1034, 1038 }; #endif @@ -673,8 +673,8 @@ static const char *const yytname[] = "LCTR", "LSPR", "LSPREG", "LSEG", "LMSR", "LPCDAT", "LFUNCDAT", "LSCHED", "LXLD", "LXST", "LXOP", "LXMV", "LRLWM", "LMOVMW", "LMOVEM", "LMOVFL", "LMTFSB", "LMA", "LFCONST", "LSCONST", "LNAME", "LLAB", "LVAR", "':'", - "'='", "';'", "','", "'('", "')'", "'$'", "'~'", "$accept", "prog", - "line", "@1", "inst", "rel", "rreg", "xlreg", "lr", "lcr", "ctr", "msr", + "'='", "';'", "','", "'('", "')'", "'$'", "'~'", "$accept", "prog", "@1", + "line", "@2", "inst", "rel", "rreg", "xlreg", "lr", "lcr", "ctr", "msr", "psr", "fpscr", "freg", "creg", "cbit", "mask", "textsize", "ximm", "fimm", "imm", "sreg", "regaddr", "addr", "name", "comma", "offset", "pointer", "con", "expr", 0 @@ -701,49 +701,49 @@ static const yytype_uint16 yytoknum[] = /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 82, 83, 83, 85, 84, 84, 84, 84, 84, - 84, 84, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 87, 87, 88, 89, 89, - 90, 91, 92, 93, 94, 94, 94, 95, 96, 96, - 97, 97, 98, 99, 100, 100, 100, 100, 101, 101, - 102, 102, 103, 104, 104, 105, 105, 106, 106, 107, - 107, 107, 108, 108, 109, 109, 109, 110, 110, 110, - 111, 111, 111, 111, 111, 111, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112 + 0, 82, 83, 84, 83, 86, 85, 85, 85, 85, + 85, 85, 85, 87, 87, 87, 87, 87, 87, 87, + 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, + 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, + 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, + 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, + 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, + 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, + 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, + 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, + 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, + 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, + 87, 87, 87, 87, 87, 87, 88, 88, 89, 90, + 90, 91, 92, 93, 94, 95, 95, 95, 96, 97, + 97, 98, 98, 99, 100, 101, 101, 101, 101, 102, + 102, 103, 103, 104, 105, 105, 106, 106, 107, 107, + 108, 108, 108, 109, 109, 110, 110, 110, 111, 111, + 111, 112, 112, 112, 112, 112, 112, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { - 0, 2, 0, 2, 0, 4, 4, 4, 2, 1, - 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, + 0, 2, 0, 0, 3, 0, 4, 4, 4, 2, + 1, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 6, 4, 4, 6, 4, 4, 6, 6, - 6, 4, 4, 6, 4, 6, 4, 6, 4, 4, - 2, 6, 4, 4, 4, 6, 4, 4, 4, 4, - 4, 4, 4, 4, 2, 2, 4, 3, 3, 5, - 4, 4, 6, 4, 4, 6, 6, 6, 8, 4, - 4, 3, 2, 4, 4, 6, 8, 4, 6, 4, - 4, 6, 6, 8, 8, 8, 8, 4, 4, 4, - 6, 4, 6, 4, 4, 2, 2, 3, 3, 3, - 3, 2, 3, 3, 4, 4, 2, 5, 7, 4, - 6, 6, 6, 6, 2, 4, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 4, 1, 1, 1, 4, - 1, 4, 1, 3, 1, 2, 3, 4, 2, 2, - 2, 3, 2, 1, 4, 3, 5, 1, 4, 4, - 5, 7, 0, 1, 0, 2, 2, 1, 1, 1, - 1, 1, 2, 2, 2, 3, 1, 3, 3, 3, - 3, 3, 4, 4, 3, 3, 3 + 4, 4, 4, 6, 4, 4, 6, 4, 4, 6, + 6, 6, 4, 4, 6, 4, 6, 4, 6, 4, + 4, 2, 6, 4, 4, 4, 6, 4, 4, 4, + 4, 4, 4, 4, 4, 2, 2, 4, 3, 3, + 5, 4, 4, 6, 4, 4, 6, 6, 6, 8, + 4, 4, 3, 2, 4, 4, 6, 8, 4, 6, + 4, 4, 6, 6, 8, 8, 8, 8, 4, 4, + 4, 6, 4, 6, 4, 4, 2, 2, 3, 3, + 3, 3, 2, 3, 3, 4, 4, 2, 5, 7, + 4, 6, 6, 6, 6, 2, 4, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, + 4, 1, 4, 1, 3, 1, 2, 3, 4, 2, + 2, 2, 3, 2, 1, 4, 3, 5, 1, 4, + 4, 5, 7, 0, 1, 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 @@ -751,125 +751,125 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 162, 162, - 162, 0, 0, 0, 0, 162, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, - 3, 0, 11, 0, 0, 170, 140, 153, 138, 0, - 131, 0, 137, 130, 132, 0, 134, 133, 164, 171, - 0, 0, 0, 0, 0, 128, 0, 129, 136, 0, - 0, 0, 0, 0, 0, 127, 0, 0, 157, 0, - 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 142, 0, 164, 0, 0, 64, 0, - 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 163, 162, 0, 82, 163, 162, 162, 111, 106, - 116, 162, 162, 0, 0, 0, 0, 124, 0, 0, - 8, 0, 0, 0, 105, 0, 0, 0, 0, 0, - 0, 0, 0, 4, 0, 0, 10, 173, 172, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 176, 0, - 149, 148, 152, 174, 0, 0, 0, 0, 0, 0, + 2, 3, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 163, + 163, 163, 0, 0, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 152, 0, 0, 0, 0, 0, 0, 126, 0, - 67, 68, 0, 0, 0, 0, 0, 0, 150, 0, - 0, 0, 0, 0, 0, 0, 0, 163, 81, 0, - 109, 110, 107, 108, 113, 112, 0, 0, 0, 0, + 10, 4, 0, 12, 0, 0, 171, 141, 154, 139, + 0, 132, 0, 138, 131, 133, 0, 135, 134, 165, + 172, 0, 0, 0, 0, 0, 129, 0, 130, 137, + 0, 0, 0, 0, 0, 0, 128, 0, 0, 158, + 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 143, 0, 165, 0, 0, 65, + 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 164, 163, 0, 83, 164, 163, 163, 112, + 107, 117, 163, 163, 0, 0, 0, 0, 125, 0, + 0, 9, 0, 0, 0, 106, 0, 0, 0, 0, + 0, 0, 0, 0, 5, 0, 0, 11, 174, 173, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, + 0, 150, 149, 153, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, - 165, 166, 0, 0, 155, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 175, 12, 61, 37, 63, - 36, 0, 25, 24, 60, 58, 59, 57, 30, 33, - 31, 0, 29, 28, 62, 56, 53, 52, 14, 13, - 168, 167, 169, 0, 0, 15, 27, 26, 17, 16, - 49, 44, 127, 46, 127, 48, 127, 41, 0, 127, - 42, 127, 89, 90, 54, 142, 0, 66, 0, 70, - 71, 0, 73, 74, 0, 0, 151, 21, 23, 22, - 20, 19, 18, 83, 87, 84, 0, 79, 80, 0, - 0, 119, 0, 0, 114, 115, 99, 0, 0, 101, - 104, 103, 0, 0, 98, 97, 34, 0, 5, 6, - 7, 154, 141, 139, 135, 0, 0, 0, 186, 185, - 184, 0, 0, 177, 178, 179, 180, 181, 0, 0, - 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 69, 0, 0, 0, 125, 0, 0, 0, 0, - 144, 117, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 160, 156, 182, 183, 131, 35, 32, 43, 45, - 47, 40, 38, 39, 91, 92, 55, 72, 75, 0, - 76, 77, 88, 85, 0, 145, 0, 0, 120, 0, - 122, 123, 121, 100, 102, 0, 0, 0, 0, 0, - 51, 0, 0, 0, 0, 146, 118, 0, 0, 0, - 0, 0, 0, 161, 78, 86, 147, 96, 95, 143, - 94, 93 + 0, 0, 153, 0, 0, 0, 0, 0, 0, 127, + 0, 68, 69, 0, 0, 0, 0, 0, 0, 151, + 0, 0, 0, 0, 0, 0, 0, 0, 164, 82, + 0, 110, 111, 108, 109, 114, 113, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 165, 166, 167, 0, 0, 156, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 176, 13, 62, 38, + 64, 37, 0, 26, 25, 61, 59, 60, 58, 31, + 34, 32, 0, 30, 29, 63, 57, 54, 53, 15, + 14, 169, 168, 170, 0, 0, 16, 28, 27, 18, + 17, 50, 45, 128, 47, 128, 49, 128, 42, 0, + 128, 43, 128, 90, 91, 55, 143, 0, 67, 0, + 71, 72, 0, 74, 75, 0, 0, 152, 22, 24, + 23, 21, 20, 19, 84, 88, 85, 0, 80, 81, + 0, 0, 120, 0, 0, 115, 116, 100, 0, 0, + 102, 105, 104, 0, 0, 99, 98, 35, 0, 6, + 7, 8, 155, 142, 140, 136, 0, 0, 0, 187, + 186, 185, 0, 0, 178, 179, 180, 181, 182, 0, + 0, 159, 160, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 70, 0, 0, 0, 126, 0, 0, 0, + 0, 145, 118, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 161, 157, 183, 184, 132, 36, 33, 44, + 46, 48, 41, 39, 40, 92, 93, 56, 73, 76, + 0, 77, 78, 89, 86, 0, 146, 0, 0, 121, + 0, 123, 124, 122, 101, 103, 0, 0, 0, 0, + 0, 52, 0, 0, 0, 0, 147, 119, 0, 0, + 0, 0, 0, 0, 162, 79, 87, 148, 97, 96, + 144, 95, 94 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 40, 232, 41, 98, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 92, 435, 391, 73, - 104, 74, 75, 76, 161, 78, 114, 156, 284, 158, - 159 + -1, 1, 3, 41, 233, 42, 99, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 93, 436, 392, + 74, 105, 75, 76, 77, 162, 79, 115, 157, 285, + 159, 160 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -179 +#define YYPACT_NINF -180 static const yytype_int16 yypact[] = { - -179, 484, -179, -64, 581, 686, 74, 74, -24, -24, - 74, 845, 641, 656, -29, -29, -29, -29, 19, -11, - -54, -38, 747, 747, 747, -54, -19, -19, -50, -6, - 74, -6, -14, -24, 707, -19, 74, -36, 18, -179, - -179, 2, -179, 845, 845, -179, -179, -179, -179, 24, - 27, 48, -179, -179, -179, 61, -179, -179, 188, -179, - 717, 738, 845, 79, 81, -179, 93, -179, -179, 99, - 107, 116, 126, 127, 130, -179, 132, 133, -179, 87, - 136, 138, 157, 159, 171, 845, 176, 179, 182, 184, - 186, 845, 194, -179, 27, 188, 762, 764, -179, 196, - -179, 66, 8, 198, 200, 201, 202, 203, 206, 215, - 216, -179, 217, 219, -179, 181, -54, -54, -179, -179, - -179, -54, -54, 220, 167, 221, 178, -179, 223, 224, - -179, 74, 225, 226, -179, 227, 231, 232, 233, 234, - 236, 237, 238, -179, 845, 845, -179, -179, -179, 845, - 845, 845, 845, 242, 845, 845, 229, 3, -179, 377, - -179, -179, 87, -179, 629, 74, 74, 172, 26, 732, - 39, 74, 74, 74, 74, 230, 686, 74, 74, 74, - 74, -179, 74, 74, -24, 74, -24, 845, 229, 764, - -179, -179, 241, 243, 784, 814, 111, 254, -179, 67, - -29, -29, -29, -29, -29, -29, -29, 74, -179, 74, - -179, -179, -179, -179, -179, -179, 821, 45, 830, 845, - -19, 747, -24, 49, -6, 74, 74, 74, 747, 74, - 845, 74, 548, 463, 518, 246, 247, 248, 249, 155, - -179, -179, 45, 74, -179, 845, 845, 845, 323, 325, - 845, 845, 845, 845, 845, -179, -179, -179, -179, -179, - -179, 259, -179, -179, -179, -179, -179, -179, -179, -179, - -179, 260, -179, -179, -179, -179, -179, -179, -179, -179, - -179, -179, -179, 265, 266, -179, -179, -179, -179, -179, - -179, -179, 269, -179, 270, -179, 272, -179, 278, 279, - -179, 280, 283, 284, -179, 285, 275, -179, 764, -179, - -179, 764, -179, -179, 105, 286, -179, -179, -179, -179, - -179, -179, -179, -179, 289, 296, 297, -179, -179, 9, - 299, -179, 301, 319, -179, -179, -179, 320, 321, -179, - -179, -179, 324, 327, -179, -179, -179, 328, -179, -179, - -179, -179, -179, -179, -179, 329, 333, 334, 591, 430, - 451, 845, 845, 78, 78, -179, -179, -179, 316, 353, - -179, -179, 74, 74, 74, 74, 74, 74, 20, 20, - 845, -179, 335, 336, 841, -179, 20, -29, -29, 369, - 399, -179, 338, -19, 339, 74, -6, 830, 830, 74, - 382, -179, -179, 277, 277, -179, -179, -179, -179, -179, - -179, -179, -179, -179, -179, -179, -179, -179, -179, 764, - -179, -179, -179, -179, 345, 414, 387, 9, -179, 322, - -179, -179, -179, -179, -179, 350, 351, 352, 354, 355, - -179, 366, 372, -29, 393, -179, -179, 851, 74, 74, - 845, 74, 74, -179, -179, -179, -179, -179, -179, -179, - -179, -179 + -180, 12, -180, 484, -53, 517, 619, 28, 28, -24, + -24, 28, 799, 577, 596, -29, -29, -29, -29, 19, + -11, -51, -38, 701, 701, 701, -51, -19, -19, -8, + -7, 28, -7, -14, -24, 643, -19, 28, -36, 6, + -180, -180, 26, -180, 799, 799, -180, -180, -180, -180, + 7, 27, 51, -180, -180, -180, 61, -180, -180, 188, + -180, 662, 674, 799, 79, 93, -180, 99, -180, -180, + 112, 116, 126, 136, 138, 157, -180, 168, 176, -180, + 80, 179, 182, 184, 186, 194, 799, 196, 198, 200, + 201, 202, 799, 203, -180, 27, 188, 714, 676, -180, + 206, -180, 49, 8, 215, 216, 217, 219, 220, 221, + 223, 224, -180, 225, 226, -180, 181, -51, -51, -180, + -180, -180, -51, -51, 227, 158, 231, 296, -180, 232, + 233, -180, 28, 234, 236, -180, 237, 238, 242, 245, + 246, 248, 249, 250, -180, 799, 799, -180, -180, -180, + 799, 799, 799, 799, 321, 799, 799, 251, 3, -180, + 377, -180, -180, 80, -180, 565, 28, 28, 172, 162, + 623, 31, 28, 28, 28, 28, 230, 619, 28, 28, + 28, 28, -180, 28, 28, -24, 28, -24, 799, 251, + 676, -180, -180, 254, 257, 723, 753, 111, 268, -180, + 67, -29, -29, -29, -29, -29, -29, -29, 28, -180, + 28, -180, -180, -180, -180, -180, -180, 733, 96, 760, + 799, -19, 701, -24, 40, -7, 28, 28, 28, 701, + 28, 799, 28, 484, 463, 524, 265, 266, 267, 270, + 135, -180, -180, 96, 28, -180, 799, 799, 799, 341, + 347, 799, 799, 799, 799, 799, -180, -180, -180, -180, + -180, -180, 278, -180, -180, -180, -180, -180, -180, -180, + -180, -180, 279, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, 281, 282, -180, -180, -180, -180, + -180, -180, -180, 280, -180, 285, -180, 286, -180, 288, + 289, -180, 297, 299, 301, -180, 319, 294, -180, 676, + -180, -180, 676, -180, -180, 171, 318, -180, -180, -180, + -180, -180, -180, -180, -180, 324, 325, 327, -180, -180, + 9, 328, -180, 329, 330, -180, -180, -180, 331, 335, + -180, -180, -180, 336, 337, -180, -180, -180, 338, -180, + -180, -180, -180, -180, -180, -180, 320, 339, 340, 571, + 430, 82, 799, 799, 153, 153, -180, -180, -180, 374, + 373, -180, -180, 28, 28, 28, 28, 28, 28, 20, + 20, 799, -180, 344, 345, 772, -180, 20, -29, -29, + 390, 419, -180, 349, -19, 350, 28, -7, 760, 760, + 28, 392, -180, -180, 277, 277, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + 676, -180, -180, -180, -180, 355, 436, 411, 9, -180, + 322, -180, -180, -180, -180, -180, 375, 376, 378, 380, + 381, -180, 372, 382, -29, 417, -180, -180, 790, 28, + 28, 799, 28, 28, -180, -180, -180, -180, -180, -180, + -180, -180, -180 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -179, -179, 222, -179, -179, -72, -5, -61, -179, -157, - -179, -179, -149, -161, 38, 31, -178, 50, 28, -15, - 58, 98, 168, 82, 96, 112, 25, -85, 211, 36, - 88 + -180, -180, -180, 229, -180, -180, -73, -6, -62, -180, + -158, -180, -180, -150, -162, 37, 30, -179, 60, 32, + -16, 68, 97, 167, 81, 95, 159, 24, -86, 239, + 35, 87 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -879,251 +879,241 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -1 static const yytype_uint16 yytable[] = { - 80, 83, 84, 86, 88, 90, 121, 258, 270, 304, - 188, 243, 42, 112, 116, 259, 48, 197, 389, 51, - 47, 274, 49, 111, 190, 133, 130, 135, 137, 139, - 47, 142, 49, 47, 48, 49, 193, 51, 143, 144, - 79, 79, 61, 99, 119, 120, 390, 93, 101, 79, - 127, 103, 107, 108, 109, 110, 85, 117, 124, 124, - 124, 85, 46, 47, 131, 49, 115, 94, 46, 85, - 79, 48, 131, 94, 51, 43, 44, 198, 146, 147, - 148, 46, 244, 280, 281, 282, 94, 81, 252, 253, - 254, 55, 56, 145, 57, 105, 111, 162, 163, 85, - 77, 82, 149, 257, 45, 150, 87, 89, 100, 106, - 210, 132, 48, 134, 136, 51, 113, 118, 47, 122, - 49, 181, 309, 312, 128, 129, 151, 131, 306, 85, - 140, 138, 192, 141, 123, 125, 126, 208, 58, 152, - 59, 212, 213, 195, 196, 60, 214, 215, 62, 280, - 281, 282, 315, 211, 355, 47, 164, 49, 165, 256, - 264, 265, 266, 154, 155, 175, 276, 277, 278, 279, - 166, 285, 288, 289, 290, 291, 167, 293, 295, 297, - 300, 302, 384, 196, 168, 235, 236, 237, 238, 219, - 240, 241, 191, 169, 153, 260, 154, 155, 267, 269, - 79, 275, 416, 170, 171, 79, 268, 172, 407, 173, - 174, 406, 79, 176, 46, 177, 47, 336, 49, 94, - 341, 342, 343, 305, 345, 47, 48, 49, 157, 51, - 192, 314, 233, 234, 178, 79, 179, 317, 320, 321, - 322, 323, 324, 325, 326, 217, 262, 382, 180, 239, - 383, 272, 330, 182, 332, 333, 183, 79, 286, 184, - 263, 185, 261, 186, 79, 273, 346, 271, 280, 281, - 282, 187, 287, 194, 47, 199, 49, 200, 201, 202, - 203, 318, 298, 204, 303, 250, 251, 252, 253, 254, - 310, 313, 205, 206, 207, 319, 209, 216, 218, 157, - 220, 221, 222, 223, 224, 339, 340, 242, 225, 226, - 227, 228, 420, 229, 230, 231, 331, 335, 334, 196, - 337, 338, 307, 316, 344, 351, 352, 353, 354, 361, - 43, 447, 362, 358, 359, 360, 368, 369, 363, 364, - 365, 366, 367, 283, 370, 371, 372, 373, 292, 374, - 294, 296, 299, 301, 381, 375, 376, 377, 442, 45, - 378, 379, 380, 405, 283, 385, 386, 408, 409, 410, - 411, 412, 413, 387, 388, 327, 392, 328, 393, 430, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 433, 198, 160, 58, 440, 59, 394, 395, 396, 347, - 91, 397, 52, 62, 398, 399, 425, 400, 426, 414, - 415, 357, 401, 402, 417, 418, 93, 422, 427, 429, - 192, 441, 443, 444, 445, 423, 424, 448, 449, 450, - 456, 451, 452, 437, 437, 247, 248, 249, 250, 251, - 252, 253, 254, 457, 458, 453, 460, 461, 438, 403, - 404, 454, 431, 356, 348, 446, 255, 248, 249, 250, - 251, 252, 253, 254, 0, 162, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 0, 0, 434, 0, - 421, 455, 0, 148, 2, 3, 459, 0, 0, 0, - 0, 428, 432, 0, 0, 436, 439, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 0, 19, 20, 0, 21, 22, 23, 24, - 25, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 0, 0, 0, 0, 0, 0, 0, 0, 349, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 3, - 0, 35, 36, 0, 0, 37, 0, 38, 0, 0, - 39, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 0, 19, 20, 0, - 21, 22, 23, 24, 25, 0, 0, 0, 0, 43, - 44, 0, 0, 0, 350, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 0, 0, 35, 36, 0, 45, 37, - 0, 38, 0, 46, 39, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 0, 57, 43, 44, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, - 44, 0, 58, 0, 59, 0, 0, 0, 0, 60, - 0, 61, 62, 0, 43, 44, 45, 0, 0, 0, - 0, 46, 0, 47, 0, 49, 50, 0, 45, 53, - 54, 55, 56, 46, 57, 0, 0, 0, 94, 0, - 0, 0, 0, 45, 43, 44, 0, 0, 0, 0, - 58, 48, 59, 0, 51, 0, 0, 60, 0, 85, - 62, 0, 95, 0, 59, 43, 44, 0, 96, 97, - 0, 0, 62, 45, 0, 43, 44, 58, 0, 59, - 47, 0, 49, 0, 60, 0, 102, 62, 0, 0, - 43, 44, 0, 0, 45, 0, 43, 44, 0, 0, - 0, 47, 0, 49, 45, 43, 44, 58, 0, 59, - 0, 47, 0, 49, 60, 0, 0, 62, 0, 45, - 43, 44, 43, 44, 0, 45, 0, 0, 58, 0, - 59, 52, 0, 0, 45, 91, 0, 0, 62, 0, - 59, 0, 43, 44, 0, 91, 0, 0, 62, 45, - 0, 45, 0, 58, 0, 59, 0, 0, 160, 58, - 60, 59, 85, 62, 53, 54, 91, 0, 58, 62, - 59, 45, 43, 44, 0, 91, 0, 0, 62, 43, - 44, 0, 0, 95, 0, 59, 0, 59, 43, 44, - 189, 0, 91, 62, 0, 62, 0, 0, 0, 43, - 44, 45, 0, 43, 44, 95, 0, 59, 45, 43, - 44, 0, 308, 0, 0, 62, 0, 45, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, - 0, 0, 45, 0, 0, 95, 0, 59, 45, 0, - 0, 0, 311, 0, 59, 62, 0, 0, 0, 91, - 0, 329, 62, 59, 0, 0, 0, 0, 91, 0, - 85, 62, 95, 0, 59, 0, 0, 0, 59, 419, - 316, 0, 62, 91, 59, 0, 62, 0, 0, 91, - 0, 0, 62 + 81, 84, 85, 87, 89, 91, 122, 259, 271, 305, + 189, 244, 2, 113, 117, 260, 49, 198, 390, 52, + 48, 275, 50, 43, 191, 134, 112, 136, 138, 140, + 48, 143, 50, 48, 49, 50, 194, 52, 144, 145, + 80, 80, 62, 100, 120, 121, 391, 94, 102, 80, + 128, 104, 108, 109, 110, 111, 86, 118, 125, 125, + 125, 86, 47, 48, 132, 50, 116, 95, 131, 86, + 80, 132, 48, 47, 50, 44, 45, 199, 95, 148, + 149, 146, 245, 56, 57, 150, 58, 82, 249, 250, + 251, 252, 253, 254, 255, 106, 112, 163, 164, 86, + 78, 83, 147, 258, 46, 151, 88, 90, 101, 107, + 211, 133, 49, 135, 137, 52, 114, 119, 132, 123, + 86, 182, 310, 313, 129, 130, 196, 197, 307, 152, + 141, 139, 193, 142, 281, 282, 283, 209, 59, 153, + 60, 213, 214, 155, 156, 61, 215, 216, 63, 281, + 282, 283, 316, 212, 356, 48, 165, 50, 176, 257, + 265, 266, 267, 253, 254, 255, 277, 278, 279, 280, + 166, 286, 289, 290, 291, 292, 167, 294, 296, 298, + 301, 303, 124, 126, 127, 236, 237, 238, 239, 168, + 241, 242, 192, 169, 154, 261, 155, 156, 268, 270, + 80, 276, 417, 170, 47, 80, 269, 49, 408, 95, + 52, 407, 80, 171, 47, 172, 48, 337, 50, 95, + 342, 343, 344, 306, 346, 48, 49, 50, 158, 52, + 193, 315, 234, 235, 173, 80, 218, 318, 321, 322, + 323, 324, 325, 326, 327, 174, 263, 383, 385, 197, + 384, 273, 331, 175, 333, 334, 177, 80, 287, 178, + 264, 179, 262, 180, 80, 274, 347, 272, 281, 282, + 283, 181, 288, 183, 48, 184, 50, 185, 186, 187, + 188, 319, 299, 195, 304, 251, 252, 253, 254, 255, + 311, 314, 200, 201, 202, 320, 203, 204, 205, 158, + 206, 207, 208, 210, 217, 340, 341, 220, 219, 221, + 222, 223, 421, 224, 225, 226, 332, 336, 335, 227, + 338, 339, 228, 229, 345, 230, 231, 232, 240, 243, + 44, 448, 197, 359, 360, 361, 308, 317, 364, 365, + 366, 367, 368, 284, 352, 353, 354, 362, 293, 355, + 295, 297, 300, 302, 363, 369, 370, 373, 443, 46, + 371, 372, 374, 375, 284, 376, 377, 409, 410, 411, + 412, 413, 414, 382, 378, 328, 379, 329, 380, 431, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 434, 199, 161, 59, 441, 60, 381, 386, 401, 348, + 92, 387, 388, 63, 389, 393, 394, 395, 396, 415, + 416, 358, 397, 398, 399, 400, 94, 423, 402, 403, + 193, 406, 53, 418, 419, 424, 425, 426, 427, 428, + 430, 442, 444, 438, 438, 248, 249, 250, 251, 252, + 253, 254, 255, 458, 459, 445, 461, 462, 446, 404, + 405, 454, 449, 450, 457, 451, 256, 452, 453, 439, + 447, 455, 349, 432, 0, 163, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 0, 0, 435, 0, + 422, 456, 357, 149, 0, 4, 460, 0, 0, 0, + 0, 429, 433, 0, 0, 437, 440, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 0, 20, 21, 0, 22, 23, 24, 25, + 26, 0, 0, 0, 0, 44, 45, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 0, 0, 350, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 0, + 0, 36, 37, 0, 46, 38, 0, 39, 0, 47, + 40, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 0, 58, 44, 45, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 0, 44, 45, 0, 59, 0, + 60, 0, 0, 0, 0, 61, 0, 62, 63, 0, + 351, 0, 46, 0, 44, 45, 0, 47, 0, 48, + 0, 50, 51, 0, 46, 54, 55, 56, 57, 47, + 58, 0, 0, 0, 95, 0, 0, 44, 45, 0, + 0, 44, 45, 46, 0, 0, 59, 0, 60, 0, + 0, 49, 0, 61, 52, 86, 63, 0, 96, 0, + 60, 44, 45, 0, 97, 98, 46, 0, 63, 0, + 46, 0, 0, 48, 0, 50, 0, 59, 0, 60, + 44, 45, 53, 0, 61, 0, 103, 63, 0, 0, + 46, 0, 44, 45, 44, 45, 0, 48, 0, 50, + 59, 0, 60, 0, 59, 0, 60, 61, 0, 46, + 63, 61, 0, 86, 63, 0, 48, 0, 50, 44, + 45, 46, 0, 46, 59, 0, 60, 0, 0, 0, + 0, 92, 44, 45, 63, 0, 54, 55, 0, 0, + 0, 44, 45, 0, 0, 60, 0, 0, 46, 0, + 92, 44, 45, 63, 161, 59, 0, 60, 0, 60, + 0, 46, 92, 0, 92, 63, 0, 63, 0, 0, + 46, 44, 45, 0, 0, 0, 0, 0, 44, 45, + 46, 0, 59, 0, 60, 0, 0, 0, 0, 92, + 44, 45, 63, 0, 0, 96, 0, 60, 0, 0, + 46, 0, 190, 0, 96, 63, 60, 46, 44, 45, + 0, 309, 0, 0, 63, 0, 60, 44, 45, 46, + 0, 92, 0, 330, 63, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 96, 0, 60, 46, 0, 0, + 0, 312, 0, 60, 63, 0, 46, 0, 92, 0, + 86, 63, 0, 96, 0, 60, 0, 0, 0, 0, + 420, 0, 0, 63, 0, 0, 0, 0, 0, 317, + 0, 0, 0, 60, 0, 0, 0, 0, 92, 0, + 0, 63, 60, 0, 0, 0, 0, 92, 0, 0, + 63 }; static const yytype_int16 yycheck[] = { - 5, 6, 7, 8, 9, 10, 21, 164, 169, 187, - 95, 8, 76, 18, 19, 164, 45, 9, 9, 48, - 44, 170, 46, 77, 96, 30, 76, 32, 33, 34, - 44, 36, 46, 44, 45, 46, 97, 48, 74, 75, - 4, 5, 80, 12, 19, 20, 37, 11, 12, 13, - 25, 13, 14, 15, 16, 17, 80, 19, 22, 23, - 24, 80, 42, 44, 78, 46, 77, 47, 42, 80, - 34, 45, 78, 47, 48, 8, 9, 69, 76, 43, - 44, 42, 79, 38, 39, 40, 47, 5, 10, 11, - 12, 52, 53, 75, 55, 13, 77, 61, 62, 80, - 4, 5, 78, 164, 37, 78, 8, 9, 12, 13, - 115, 29, 45, 31, 32, 48, 18, 19, 44, 21, - 46, 85, 194, 195, 26, 27, 78, 78, 189, 80, - 34, 33, 96, 35, 22, 23, 24, 112, 71, 78, - 73, 116, 117, 77, 78, 78, 121, 122, 81, 38, - 39, 40, 41, 115, 239, 44, 77, 46, 77, 164, - 165, 166, 167, 8, 9, 78, 171, 172, 173, 174, - 77, 176, 177, 178, 179, 180, 77, 182, 183, 184, - 185, 186, 77, 78, 77, 149, 150, 151, 152, 11, - 154, 155, 96, 77, 6, 164, 8, 9, 167, 168, - 164, 170, 380, 77, 77, 169, 168, 77, 369, 77, - 77, 368, 176, 77, 42, 77, 44, 222, 46, 47, - 225, 226, 227, 187, 229, 44, 45, 46, 60, 48, - 194, 195, 144, 145, 77, 199, 77, 199, 200, 201, - 202, 203, 204, 205, 206, 78, 164, 308, 77, 7, - 311, 169, 216, 77, 218, 219, 77, 221, 176, 77, - 164, 77, 164, 77, 228, 169, 230, 169, 38, 39, - 40, 77, 176, 77, 44, 77, 46, 77, 77, 77, - 77, 199, 184, 77, 186, 8, 9, 10, 11, 12, - 194, 195, 77, 77, 77, 199, 77, 77, 77, 131, - 77, 77, 77, 77, 77, 223, 224, 78, 77, 77, - 77, 77, 384, 77, 77, 77, 218, 221, 220, 78, - 222, 223, 79, 69, 228, 79, 79, 79, 79, 6, - 8, 9, 7, 245, 246, 247, 77, 77, 250, 251, - 252, 253, 254, 175, 79, 79, 77, 77, 180, 77, - 182, 183, 184, 185, 79, 77, 77, 77, 419, 37, - 77, 77, 77, 47, 196, 79, 77, 372, 373, 374, - 375, 376, 377, 77, 77, 207, 77, 209, 77, 394, + 6, 7, 8, 9, 10, 11, 22, 165, 170, 188, + 96, 8, 0, 19, 20, 165, 45, 9, 9, 48, + 44, 171, 46, 76, 97, 31, 77, 33, 34, 35, + 44, 37, 46, 44, 45, 46, 98, 48, 74, 75, + 5, 6, 80, 13, 20, 21, 37, 12, 13, 14, + 26, 14, 15, 16, 17, 18, 80, 20, 23, 24, + 25, 80, 42, 44, 78, 46, 77, 47, 76, 80, + 35, 78, 44, 42, 46, 8, 9, 69, 47, 44, + 45, 75, 79, 52, 53, 78, 55, 6, 6, 7, + 8, 9, 10, 11, 12, 14, 77, 62, 63, 80, + 5, 6, 76, 165, 37, 78, 9, 10, 13, 14, + 116, 30, 45, 32, 33, 48, 19, 20, 78, 22, + 80, 86, 195, 196, 27, 28, 77, 78, 190, 78, + 35, 34, 97, 36, 38, 39, 40, 113, 71, 78, + 73, 117, 118, 8, 9, 78, 122, 123, 81, 38, + 39, 40, 41, 116, 240, 44, 77, 46, 78, 165, + 166, 167, 168, 10, 11, 12, 172, 173, 174, 175, + 77, 177, 178, 179, 180, 181, 77, 183, 184, 185, + 186, 187, 23, 24, 25, 150, 151, 152, 153, 77, + 155, 156, 97, 77, 6, 165, 8, 9, 168, 169, + 165, 171, 381, 77, 42, 170, 169, 45, 370, 47, + 48, 369, 177, 77, 42, 77, 44, 223, 46, 47, + 226, 227, 228, 188, 230, 44, 45, 46, 61, 48, + 195, 196, 145, 146, 77, 200, 78, 200, 201, 202, + 203, 204, 205, 206, 207, 77, 165, 309, 77, 78, + 312, 170, 217, 77, 219, 220, 77, 222, 177, 77, + 165, 77, 165, 77, 229, 170, 231, 170, 38, 39, + 40, 77, 177, 77, 44, 77, 46, 77, 77, 77, + 77, 200, 185, 77, 187, 8, 9, 10, 11, 12, + 195, 196, 77, 77, 77, 200, 77, 77, 77, 132, + 77, 77, 77, 77, 77, 224, 225, 11, 77, 77, + 77, 77, 385, 77, 77, 77, 219, 222, 221, 77, + 223, 224, 77, 77, 229, 77, 77, 77, 7, 78, + 8, 9, 78, 246, 247, 248, 79, 69, 251, 252, + 253, 254, 255, 176, 79, 79, 79, 6, 181, 79, + 183, 184, 185, 186, 7, 77, 77, 77, 420, 37, + 79, 79, 77, 77, 197, 77, 77, 373, 374, 375, + 376, 377, 378, 79, 77, 208, 77, 210, 77, 395, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 395, 69, 70, 71, 399, 73, 77, 77, 77, 231, - 78, 77, 49, 81, 77, 77, 37, 78, 9, 378, - 379, 243, 79, 79, 79, 79, 380, 386, 80, 80, - 384, 39, 77, 9, 37, 387, 388, 77, 77, 77, - 37, 77, 77, 397, 398, 5, 6, 7, 8, 9, - 10, 11, 12, 448, 449, 79, 451, 452, 398, 361, - 362, 79, 394, 242, 232, 427, 79, 6, 7, 8, - 9, 10, 11, 12, -1, 429, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, -1, -1, 396, -1, - 384, 443, -1, 447, 0, 1, 450, -1, -1, -1, - -1, 393, 394, -1, -1, 397, 398, 13, 14, 15, + 396, 69, 70, 71, 400, 73, 77, 79, 78, 232, + 78, 77, 77, 81, 77, 77, 77, 77, 77, 379, + 380, 244, 77, 77, 77, 77, 381, 387, 79, 79, + 385, 47, 49, 79, 79, 388, 389, 37, 9, 80, + 80, 39, 77, 398, 399, 5, 6, 7, 8, 9, + 10, 11, 12, 449, 450, 9, 452, 453, 37, 362, + 363, 79, 77, 77, 37, 77, 79, 77, 77, 399, + 428, 79, 233, 395, -1, 430, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, -1, -1, 397, -1, + 385, 444, 243, 448, -1, 1, 451, -1, -1, -1, + -1, 394, 395, -1, -1, 398, 399, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, 30, -1, 32, 33, 34, 35, - 36, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, -1, -1, -1, -1, -1, -1, -1, -1, 76, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 1, - -1, 67, 68, -1, -1, 71, -1, 73, -1, -1, - 76, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, -1, 29, 30, -1, - 32, 33, 34, 35, 36, -1, -1, -1, -1, 8, - 9, -1, -1, -1, 76, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 56, 57, 58, 59, 60, 61, - 62, 63, 64, -1, -1, 67, 68, -1, 37, 71, - -1, 73, -1, 42, 76, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, -1, 55, 8, 9, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, - 9, -1, 71, -1, 73, -1, -1, -1, -1, 78, - -1, 80, 81, -1, 8, 9, 37, -1, -1, -1, - -1, 42, -1, 44, -1, 46, 47, -1, 37, 50, - 51, 52, 53, 42, 55, -1, -1, -1, 47, -1, - -1, -1, -1, 37, 8, 9, -1, -1, -1, -1, - 71, 45, 73, -1, 48, -1, -1, 78, -1, 80, - 81, -1, 71, -1, 73, 8, 9, -1, 77, 78, - -1, -1, 81, 37, -1, 8, 9, 71, -1, 73, - 44, -1, 46, -1, 78, -1, 80, 81, -1, -1, - 8, 9, -1, -1, 37, -1, 8, 9, -1, -1, - -1, 44, -1, 46, 37, 8, 9, 71, -1, 73, - -1, 44, -1, 46, 78, -1, -1, 81, -1, 37, - 8, 9, 8, 9, -1, 37, -1, -1, 71, -1, - 73, 49, -1, -1, 37, 78, -1, -1, 81, -1, - 73, -1, 8, 9, -1, 78, -1, -1, 81, 37, - -1, 37, -1, 71, -1, 73, -1, -1, 70, 71, - 78, 73, 80, 81, 50, 51, 78, -1, 71, 81, - 73, 37, 8, 9, -1, 78, -1, -1, 81, 8, - 9, -1, -1, 71, -1, 73, -1, 73, 8, 9, - 78, -1, 78, 81, -1, 81, -1, -1, -1, 8, - 9, 37, -1, 8, 9, 71, -1, 73, 37, 8, - 9, -1, 78, -1, -1, 81, -1, 37, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, - -1, -1, 37, -1, -1, 71, -1, 73, 37, -1, - -1, -1, 78, -1, 73, 81, -1, -1, -1, 78, - -1, 80, 81, 73, -1, -1, -1, -1, 78, -1, - 80, 81, 71, -1, 73, -1, -1, -1, 73, 78, - 69, -1, 81, 78, 73, -1, 81, -1, -1, 78, - -1, -1, 81 + 36, -1, -1, -1, -1, 8, 9, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, -1, -1, 76, + 56, 57, 58, 59, 60, 61, 62, 63, 64, -1, + -1, 67, 68, -1, 37, 71, -1, 73, -1, 42, + 76, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, -1, 55, 8, 9, 4, 5, 6, 7, 8, + 9, 10, 11, 12, -1, 8, 9, -1, 71, -1, + 73, -1, -1, -1, -1, 78, -1, 80, 81, -1, + 76, -1, 37, -1, 8, 9, -1, 42, -1, 44, + -1, 46, 47, -1, 37, 50, 51, 52, 53, 42, + 55, -1, -1, -1, 47, -1, -1, 8, 9, -1, + -1, 8, 9, 37, -1, -1, 71, -1, 73, -1, + -1, 45, -1, 78, 48, 80, 81, -1, 71, -1, + 73, 8, 9, -1, 77, 78, 37, -1, 81, -1, + 37, -1, -1, 44, -1, 46, -1, 71, -1, 73, + 8, 9, 49, -1, 78, -1, 80, 81, -1, -1, + 37, -1, 8, 9, 8, 9, -1, 44, -1, 46, + 71, -1, 73, -1, 71, -1, 73, 78, -1, 37, + 81, 78, -1, 80, 81, -1, 44, -1, 46, 8, + 9, 37, -1, 37, 71, -1, 73, -1, -1, -1, + -1, 78, 8, 9, 81, -1, 50, 51, -1, -1, + -1, 8, 9, -1, -1, 73, -1, -1, 37, -1, + 78, 8, 9, 81, 70, 71, -1, 73, -1, 73, + -1, 37, 78, -1, 78, 81, -1, 81, -1, -1, + 37, 8, 9, -1, -1, -1, -1, -1, 8, 9, + 37, -1, 71, -1, 73, -1, -1, -1, -1, 78, + 8, 9, 81, -1, -1, 71, -1, 73, -1, -1, + 37, -1, 78, -1, 71, 81, 73, 37, 8, 9, + -1, 78, -1, -1, 81, -1, 73, 8, 9, 37, + -1, 78, -1, 80, 81, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 71, -1, 73, 37, -1, -1, + -1, 78, -1, 73, 81, -1, 37, -1, 78, -1, + 80, 81, -1, 71, -1, 73, -1, -1, -1, -1, + 78, -1, -1, 81, -1, -1, -1, -1, -1, 69, + -1, -1, -1, 73, -1, -1, -1, -1, 78, -1, + -1, 81, 73, -1, -1, -1, -1, 78, -1, -1, + 81 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 83, 0, 1, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, - 30, 32, 33, 34, 35, 36, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 67, 68, 71, 73, 76, - 84, 86, 76, 8, 9, 37, 42, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 55, 71, 73, - 78, 80, 81, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 101, 103, 104, 105, 106, 107, 111, - 88, 105, 106, 88, 88, 80, 88, 103, 88, 103, - 88, 78, 98, 111, 47, 71, 77, 78, 87, 97, - 106, 111, 80, 96, 102, 105, 106, 96, 96, 96, - 96, 77, 88, 103, 108, 77, 88, 96, 103, 108, - 108, 101, 103, 107, 111, 107, 107, 108, 103, 103, - 76, 78, 105, 88, 105, 88, 105, 88, 103, 88, - 106, 103, 88, 74, 75, 75, 76, 111, 111, 78, - 78, 78, 78, 6, 8, 9, 109, 104, 111, 112, - 70, 106, 111, 111, 77, 77, 77, 77, 77, 77, - 77, 77, 77, 77, 77, 78, 77, 77, 77, 77, - 77, 111, 77, 77, 77, 77, 77, 77, 109, 78, - 87, 106, 111, 89, 77, 77, 78, 9, 69, 77, - 77, 77, 77, 77, 77, 77, 77, 77, 108, 77, - 88, 96, 108, 108, 108, 108, 77, 78, 77, 11, - 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, - 77, 77, 85, 112, 112, 111, 111, 111, 111, 7, - 111, 111, 78, 8, 79, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 79, 88, 89, 91, 94, - 97, 103, 105, 106, 88, 88, 88, 97, 96, 97, - 95, 103, 105, 106, 94, 97, 88, 88, 88, 88, - 38, 39, 40, 104, 110, 88, 105, 106, 88, 88, - 88, 88, 104, 88, 104, 88, 104, 88, 103, 104, - 88, 104, 88, 103, 98, 111, 89, 79, 78, 87, - 106, 78, 87, 106, 111, 41, 69, 96, 105, 106, - 96, 96, 96, 96, 96, 96, 96, 104, 104, 80, - 111, 103, 111, 111, 103, 106, 88, 103, 103, 105, - 105, 88, 88, 88, 106, 88, 111, 104, 84, 76, - 76, 79, 79, 79, 79, 109, 110, 104, 112, 112, - 112, 6, 7, 112, 112, 112, 112, 112, 77, 77, - 79, 79, 77, 77, 77, 77, 77, 77, 77, 77, - 77, 79, 89, 89, 77, 79, 77, 77, 77, 9, - 37, 100, 77, 77, 77, 77, 77, 77, 77, 77, - 78, 79, 79, 112, 112, 47, 91, 95, 88, 88, - 88, 88, 88, 88, 97, 97, 98, 79, 79, 78, - 87, 106, 97, 96, 96, 37, 9, 80, 103, 80, - 101, 102, 103, 88, 105, 99, 103, 111, 99, 103, - 88, 39, 89, 77, 9, 37, 100, 9, 77, 77, - 77, 77, 77, 79, 79, 96, 37, 88, 88, 111, - 88, 88 + 0, 83, 0, 84, 1, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 29, 30, 32, 33, 34, 35, 36, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 67, 68, 71, 73, + 76, 85, 87, 76, 8, 9, 37, 42, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 55, 71, + 73, 78, 80, 81, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 102, 104, 105, 106, 107, 108, + 112, 89, 106, 107, 89, 89, 80, 89, 104, 89, + 104, 89, 78, 99, 112, 47, 71, 77, 78, 88, + 98, 107, 112, 80, 97, 103, 106, 107, 97, 97, + 97, 97, 77, 89, 104, 109, 77, 89, 97, 104, + 109, 109, 102, 104, 108, 112, 108, 108, 109, 104, + 104, 76, 78, 106, 89, 106, 89, 106, 89, 104, + 89, 107, 104, 89, 74, 75, 75, 76, 112, 112, + 78, 78, 78, 78, 6, 8, 9, 110, 105, 112, + 113, 70, 107, 112, 112, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 78, 77, 77, 77, + 77, 77, 112, 77, 77, 77, 77, 77, 77, 110, + 78, 88, 107, 112, 90, 77, 77, 78, 9, 69, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 109, + 77, 89, 97, 109, 109, 109, 109, 77, 78, 77, + 11, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 86, 113, 113, 112, 112, 112, 112, + 7, 112, 112, 78, 8, 79, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 79, 89, 90, 92, + 95, 98, 104, 106, 107, 89, 89, 89, 98, 97, + 98, 96, 104, 106, 107, 95, 98, 89, 89, 89, + 89, 38, 39, 40, 105, 111, 89, 106, 107, 89, + 89, 89, 89, 105, 89, 105, 89, 105, 89, 104, + 105, 89, 105, 89, 104, 99, 112, 90, 79, 78, + 88, 107, 78, 88, 107, 112, 41, 69, 97, 106, + 107, 97, 97, 97, 97, 97, 97, 97, 105, 105, + 80, 112, 104, 112, 112, 104, 107, 89, 104, 104, + 106, 106, 89, 89, 89, 107, 89, 112, 105, 85, + 76, 76, 79, 79, 79, 79, 110, 111, 105, 113, + 113, 113, 6, 7, 113, 113, 113, 113, 113, 77, + 77, 79, 79, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 79, 90, 90, 77, 79, 77, 77, 77, + 9, 37, 101, 77, 77, 77, 77, 77, 77, 77, + 77, 78, 79, 79, 113, 113, 47, 92, 96, 89, + 89, 89, 89, 89, 89, 98, 98, 99, 79, 79, + 78, 88, 107, 98, 97, 97, 37, 9, 80, 104, + 80, 102, 103, 104, 89, 106, 100, 104, 112, 100, + 104, 89, 39, 90, 77, 9, 37, 101, 9, 77, + 77, 77, 77, 77, 79, 79, 97, 37, 89, 89, + 112, 89, 89 }; #define yyerrok (yyerrstatus = 0) @@ -1937,8 +1927,15 @@ yyreduce: YY_REDUCE_PRINT (yyn); switch (yyn) { - case 4: -#line 71 "a.y" + case 3: +#line 68 "a.y" + { + stmtline = lineno; + } + break; + + case 5: +#line 75 "a.y" { (yyvsp[(1) - (2)].sym) = labellookup((yyvsp[(1) - (2)].sym)); if((yyvsp[(1) - (2)].sym)->type == LLAB && (yyvsp[(1) - (2)].sym)->value != pc) @@ -1948,16 +1945,16 @@ yyreduce: } break; - case 6: -#line 80 "a.y" + case 7: +#line 84 "a.y" { (yyvsp[(1) - (4)].sym)->type = LVAR; (yyvsp[(1) - (4)].sym)->value = (yyvsp[(3) - (4)].lval); } break; - case 7: -#line 85 "a.y" + case 8: +#line 89 "a.y" { if((yyvsp[(1) - (4)].sym)->value != (yyvsp[(3) - (4)].lval)) yyerror("redeclaration of %s", (yyvsp[(1) - (4)].sym)->name); @@ -1965,20 +1962,13 @@ yyreduce: } break; - case 8: -#line 91 "a.y" + case 9: +#line 95 "a.y" { nosched = (yyvsp[(1) - (2)].lval); } break; - case 12: -#line 103 "a.y" - { - outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); - } - break; - case 13: #line 107 "a.y" { @@ -2015,7 +2005,7 @@ yyreduce: break; case 18: -#line 130 "a.y" +#line 127 "a.y" { outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); } @@ -2057,7 +2047,7 @@ yyreduce: break; case 24: -#line 157 "a.y" +#line 154 "a.y" { outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); } @@ -2085,7 +2075,7 @@ yyreduce: break; case 28: -#line 176 "a.y" +#line 173 "a.y" { outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); } @@ -2099,7 +2089,7 @@ yyreduce: break; case 30: -#line 187 "a.y" +#line 184 "a.y" { outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); } @@ -2115,35 +2105,35 @@ yyreduce: case 32: #line 195 "a.y" { - outgcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), 0, &(yyvsp[(4) - (6)].addr), &(yyvsp[(6) - (6)].addr)); + outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); } break; case 33: #line 199 "a.y" { - outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); + outgcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), 0, &(yyvsp[(4) - (6)].addr), &(yyvsp[(6) - (6)].addr)); } break; case 34: #line 203 "a.y" { - outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), (yyvsp[(4) - (4)].lval), &nullgen); + outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); } break; case 35: -#line 210 "a.y" +#line 207 "a.y" { - outgcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), 0, &(yyvsp[(4) - (6)].addr), &(yyvsp[(6) - (6)].addr)); + outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), (yyvsp[(4) - (4)].lval), &nullgen); } break; case 36: #line 214 "a.y" { - outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); + outgcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), 0, &(yyvsp[(4) - (6)].addr), &(yyvsp[(6) - (6)].addr)); } break; @@ -2155,9 +2145,9 @@ yyreduce: break; case 38: -#line 228 "a.y" +#line 222 "a.y" { - outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr)); + outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); } break; @@ -2171,14 +2161,14 @@ yyreduce: case 40: #line 236 "a.y" { - outgcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), 0, &(yyvsp[(4) - (6)].addr), &(yyvsp[(6) - (6)].addr)); + outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr)); } break; case 41: #line 240 "a.y" { - outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); + outgcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), 0, &(yyvsp[(4) - (6)].addr), &(yyvsp[(6) - (6)].addr)); } break; @@ -2192,42 +2182,42 @@ yyreduce: case 43: #line 248 "a.y" { - outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr)); + outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); } break; case 44: #line 252 "a.y" { - outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); + outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr)); } break; case 45: #line 256 "a.y" { - outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr)); + outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); } break; case 46: #line 260 "a.y" { - outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); + outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr)); } break; case 47: #line 264 "a.y" { - outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr)); + outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); } break; case 48: #line 268 "a.y" { - outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); + outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr)); } break; @@ -2241,21 +2231,21 @@ yyreduce: case 50: #line 276 "a.y" { - outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr), 0, &(yyvsp[(2) - (2)].addr)); + outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); } break; case 51: -#line 283 "a.y" +#line 280 "a.y" { - outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr)); + outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr), 0, &(yyvsp[(2) - (2)].addr)); } break; case 52: -#line 290 "a.y" +#line 287 "a.y" { - outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); + outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr)); } break; @@ -2267,23 +2257,23 @@ yyreduce: break; case 54: -#line 301 "a.y" +#line 298 "a.y" { - outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), (yyvsp[(4) - (4)].addr).reg, &(yyvsp[(4) - (4)].addr)); + outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); } break; case 55: #line 305 "a.y" { - outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr)); + outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), (yyvsp[(4) - (4)].addr).reg, &(yyvsp[(4) - (4)].addr)); } break; case 56: -#line 313 "a.y" +#line 309 "a.y" { - outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); + outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr)); } break; @@ -2337,9 +2327,9 @@ yyreduce: break; case 64: -#line 350 "a.y" +#line 345 "a.y" { - outcode((yyvsp[(1) - (2)].lval), &nullgen, 0, &(yyvsp[(2) - (2)].addr)); + outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); } break; @@ -2353,14 +2343,14 @@ yyreduce: case 66: #line 358 "a.y" { - outcode((yyvsp[(1) - (4)].lval), &nullgen, 0, &(yyvsp[(3) - (4)].addr)); + outcode((yyvsp[(1) - (2)].lval), &nullgen, 0, &(yyvsp[(2) - (2)].addr)); } break; case 67: #line 362 "a.y" { - outcode((yyvsp[(1) - (3)].lval), &nullgen, 0, &(yyvsp[(3) - (3)].addr)); + outcode((yyvsp[(1) - (4)].lval), &nullgen, 0, &(yyvsp[(3) - (4)].addr)); } break; @@ -2374,14 +2364,14 @@ yyreduce: case 69: #line 370 "a.y" { - outcode((yyvsp[(1) - (5)].lval), &nullgen, 0, &(yyvsp[(4) - (5)].addr)); + outcode((yyvsp[(1) - (3)].lval), &nullgen, 0, &(yyvsp[(3) - (3)].addr)); } break; case 70: #line 374 "a.y" { - outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); + outcode((yyvsp[(1) - (5)].lval), &nullgen, 0, &(yyvsp[(4) - (5)].addr)); } break; @@ -2395,14 +2385,14 @@ yyreduce: case 72: #line 382 "a.y" { - outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), 0, &(yyvsp[(5) - (6)].addr)); + outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); } break; case 73: #line 386 "a.y" { - outcode((yyvsp[(1) - (4)].lval), &nullgen, (yyvsp[(2) - (4)].lval), &(yyvsp[(4) - (4)].addr)); + outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), 0, &(yyvsp[(5) - (6)].addr)); } break; @@ -2416,23 +2406,19 @@ yyreduce: case 75: #line 394 "a.y" { - outcode((yyvsp[(1) - (6)].lval), &nullgen, (yyvsp[(2) - (6)].lval), &(yyvsp[(5) - (6)].addr)); + outcode((yyvsp[(1) - (4)].lval), &nullgen, (yyvsp[(2) - (4)].lval), &(yyvsp[(4) - (4)].addr)); } break; case 76: #line 398 "a.y" { - Addr g; - g = nullgen; - g.type = TYPE_CONST; - g.offset = (yyvsp[(2) - (6)].lval); - outcode((yyvsp[(1) - (6)].lval), &g, REG_R0+(yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr)); + outcode((yyvsp[(1) - (6)].lval), &nullgen, (yyvsp[(2) - (6)].lval), &(yyvsp[(5) - (6)].addr)); } break; case 77: -#line 406 "a.y" +#line 402 "a.y" { Addr g; g = nullgen; @@ -2443,7 +2429,18 @@ yyreduce: break; case 78: -#line 414 "a.y" +#line 410 "a.y" + { + Addr g; + g = nullgen; + g.type = TYPE_CONST; + g.offset = (yyvsp[(2) - (6)].lval); + outcode((yyvsp[(1) - (6)].lval), &g, REG_R0+(yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr)); + } + break; + + case 79: +#line 418 "a.y" { Addr g; g = nullgen; @@ -2453,13 +2450,6 @@ yyreduce: } break; - case 79: -#line 425 "a.y" - { - outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), (yyvsp[(4) - (4)].lval), &nullgen); - } - break; - case 80: #line 429 "a.y" { @@ -2470,21 +2460,21 @@ yyreduce: case 81: #line 433 "a.y" { - outcode((yyvsp[(1) - (3)].lval), &(yyvsp[(2) - (3)].addr), 0, &nullgen); + outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), (yyvsp[(4) - (4)].lval), &nullgen); } break; case 82: #line 437 "a.y" { - outcode((yyvsp[(1) - (2)].lval), &nullgen, 0, &nullgen); + outcode((yyvsp[(1) - (3)].lval), &(yyvsp[(2) - (3)].addr), 0, &nullgen); } break; case 83: -#line 444 "a.y" +#line 441 "a.y" { - outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); + outcode((yyvsp[(1) - (2)].lval), &nullgen, 0, &nullgen); } break; @@ -2498,35 +2488,35 @@ yyreduce: case 85: #line 452 "a.y" { - outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].addr).reg, &(yyvsp[(6) - (6)].addr)); + outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); } break; case 86: #line 456 "a.y" { - outgcode((yyvsp[(1) - (8)].lval), &(yyvsp[(2) - (8)].addr), (yyvsp[(4) - (8)].addr).reg, &(yyvsp[(6) - (8)].addr), &(yyvsp[(8) - (8)].addr)); + outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].addr).reg, &(yyvsp[(6) - (6)].addr)); } break; case 87: #line 460 "a.y" { - outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); + outgcode((yyvsp[(1) - (8)].lval), &(yyvsp[(2) - (8)].addr), (yyvsp[(4) - (8)].addr).reg, &(yyvsp[(6) - (8)].addr), &(yyvsp[(8) - (8)].addr)); } break; case 88: #line 464 "a.y" { - outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(6) - (6)].addr).reg, &(yyvsp[(4) - (6)].addr)); + outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); } break; case 89: -#line 471 "a.y" +#line 468 "a.y" { - outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); + outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(6) - (6)].addr).reg, &(yyvsp[(4) - (6)].addr)); } break; @@ -2540,7 +2530,7 @@ yyreduce: case 91: #line 479 "a.y" { - outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(6) - (6)].addr).reg, &(yyvsp[(4) - (6)].addr)); + outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); } break; @@ -2552,9 +2542,9 @@ yyreduce: break; case 93: -#line 490 "a.y" +#line 487 "a.y" { - outgcode((yyvsp[(1) - (8)].lval), &(yyvsp[(2) - (8)].addr), (yyvsp[(4) - (8)].addr).reg, &(yyvsp[(6) - (8)].addr), &(yyvsp[(8) - (8)].addr)); + outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(6) - (6)].addr).reg, &(yyvsp[(4) - (6)].addr)); } break; @@ -2580,9 +2570,9 @@ yyreduce: break; case 97: -#line 509 "a.y" +#line 506 "a.y" { - outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); + outgcode((yyvsp[(1) - (8)].lval), &(yyvsp[(2) - (8)].addr), (yyvsp[(4) - (8)].addr).reg, &(yyvsp[(6) - (8)].addr), &(yyvsp[(8) - (8)].addr)); } break; @@ -2594,7 +2584,7 @@ yyreduce: break; case 99: -#line 521 "a.y" +#line 517 "a.y" { outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); } @@ -2603,28 +2593,28 @@ yyreduce: case 100: #line 525 "a.y" { - outgcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), 0, &(yyvsp[(4) - (6)].addr), &(yyvsp[(6) - (6)].addr)); + outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); } break; case 101: #line 529 "a.y" { - outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); + outgcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), 0, &(yyvsp[(4) - (6)].addr), &(yyvsp[(6) - (6)].addr)); } break; case 102: #line 533 "a.y" { - outgcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), 0, &(yyvsp[(4) - (6)].addr), &(yyvsp[(6) - (6)].addr)); + outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); } break; case 103: #line 537 "a.y" { - outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); + outgcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), 0, &(yyvsp[(4) - (6)].addr), &(yyvsp[(6) - (6)].addr)); } break; @@ -2638,21 +2628,21 @@ yyreduce: case 105: #line 545 "a.y" { - outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr), 0, &nullgen); + outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); } break; case 106: -#line 552 "a.y" +#line 549 "a.y" { - outcode((yyvsp[(1) - (2)].lval), &nullgen, 0, &nullgen); + outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr), 0, &nullgen); } break; case 107: #line 556 "a.y" { - outcode((yyvsp[(1) - (3)].lval), &(yyvsp[(2) - (3)].addr), 0, &nullgen); + outcode((yyvsp[(1) - (2)].lval), &nullgen, 0, &nullgen); } break; @@ -2666,7 +2656,7 @@ yyreduce: case 109: #line 564 "a.y" { - outcode((yyvsp[(1) - (3)].lval), &nullgen, 0, &(yyvsp[(3) - (3)].addr)); + outcode((yyvsp[(1) - (3)].lval), &(yyvsp[(2) - (3)].addr), 0, &nullgen); } break; @@ -2680,14 +2670,14 @@ yyreduce: case 111: #line 572 "a.y" { - outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr), 0, &nullgen); + outcode((yyvsp[(1) - (3)].lval), &nullgen, 0, &(yyvsp[(3) - (3)].addr)); } break; case 112: -#line 579 "a.y" +#line 576 "a.y" { - outcode((yyvsp[(1) - (3)].lval), &(yyvsp[(2) - (3)].addr), 0, &nullgen); + outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr), 0, &nullgen); } break; @@ -2699,7 +2689,14 @@ yyreduce: break; case 114: -#line 590 "a.y" +#line 587 "a.y" + { + outcode((yyvsp[(1) - (3)].lval), &(yyvsp[(2) - (3)].addr), 0, &nullgen); + } + break; + + case 115: +#line 594 "a.y" { if((yyvsp[(2) - (4)].addr).type != TYPE_CONST || (yyvsp[(4) - (4)].addr).type != TYPE_CONST) yyerror("arguments to PCDATA must be integer constants"); @@ -2707,8 +2704,8 @@ yyreduce: } break; - case 115: -#line 599 "a.y" + case 116: +#line 603 "a.y" { if((yyvsp[(2) - (4)].addr).type != TYPE_CONST) yyerror("index for FUNCDATA must be integer constant"); @@ -2718,23 +2715,23 @@ yyreduce: } break; - case 116: -#line 610 "a.y" + case 117: +#line 614 "a.y" { outcode((yyvsp[(1) - (2)].lval), &nullgen, 0, &nullgen); } break; - case 117: -#line 617 "a.y" + case 118: +#line 621 "a.y" { settext((yyvsp[(2) - (5)].addr).sym); outcode((yyvsp[(1) - (5)].lval), &(yyvsp[(2) - (5)].addr), 0, &(yyvsp[(5) - (5)].addr)); } break; - case 118: -#line 622 "a.y" + case 119: +#line 626 "a.y" { settext((yyvsp[(2) - (7)].addr).sym); outcode((yyvsp[(1) - (7)].lval), &(yyvsp[(2) - (7)].addr), 0, &(yyvsp[(7) - (7)].addr)); @@ -2745,16 +2742,16 @@ yyreduce: } break; - case 119: -#line 634 "a.y" + case 120: +#line 638 "a.y" { settext((yyvsp[(2) - (4)].addr).sym); outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); } break; - case 120: -#line 639 "a.y" + case 121: +#line 643 "a.y" { settext((yyvsp[(2) - (6)].addr).sym); outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), 0, &(yyvsp[(6) - (6)].addr)); @@ -2765,19 +2762,8 @@ yyreduce: } break; - case 121: -#line 652 "a.y" - { - outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), 0, &(yyvsp[(6) - (6)].addr)); - if(pass > 1) { - lastpc->from3.type = TYPE_CONST; - lastpc->from3.offset = (yyvsp[(4) - (6)].lval); - } - } - break; - case 122: -#line 660 "a.y" +#line 656 "a.y" { outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), 0, &(yyvsp[(6) - (6)].addr)); if(pass > 1) { @@ -2788,7 +2774,7 @@ yyreduce: break; case 123: -#line 668 "a.y" +#line 664 "a.y" { outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), 0, &(yyvsp[(6) - (6)].addr)); if(pass > 1) { @@ -2799,14 +2785,25 @@ yyreduce: break; case 124: -#line 679 "a.y" +#line 672 "a.y" + { + outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), 0, &(yyvsp[(6) - (6)].addr)); + if(pass > 1) { + lastpc->from3.type = TYPE_CONST; + lastpc->from3.offset = (yyvsp[(4) - (6)].lval); + } + } + break; + + case 125: +#line 683 "a.y" { outcode((yyvsp[(1) - (2)].lval), &nullgen, 0, &nullgen); } break; - case 125: -#line 685 "a.y" + case 126: +#line 689 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_BRANCH; @@ -2814,8 +2811,8 @@ yyreduce: } break; - case 126: -#line 691 "a.y" + case 127: +#line 695 "a.y" { (yyvsp[(1) - (2)].sym) = labellookup((yyvsp[(1) - (2)].sym)); (yyval.addr) = nullgen; @@ -2826,17 +2823,8 @@ yyreduce: } break; - case 127: -#line 702 "a.y" - { - (yyval.addr) = nullgen; - (yyval.addr).type = TYPE_REG; - (yyval.addr).reg = (yyvsp[(1) - (1)].lval); - } - break; - - case 130: -#line 714 "a.y" + case 128: +#line 706 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REG; @@ -2845,16 +2833,7 @@ yyreduce: break; case 131: -#line 722 "a.y" - { - (yyval.addr) = nullgen; - (yyval.addr).type = TYPE_REG; - (yyval.addr).reg = (yyvsp[(1) - (1)].lval); /* whole register */ - } - break; - - case 132: -#line 730 "a.y" +#line 718 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REG; @@ -2862,8 +2841,17 @@ yyreduce: } break; + case 132: +#line 726 "a.y" + { + (yyval.addr) = nullgen; + (yyval.addr).type = TYPE_REG; + (yyval.addr).reg = (yyvsp[(1) - (1)].lval); /* whole register */ + } + break; + case 133: -#line 738 "a.y" +#line 734 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REG; @@ -2872,7 +2860,7 @@ yyreduce: break; case 134: -#line 746 "a.y" +#line 742 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REG; @@ -2881,7 +2869,16 @@ yyreduce: break; case 135: -#line 752 "a.y" +#line 750 "a.y" + { + (yyval.addr) = nullgen; + (yyval.addr).type = TYPE_REG; + (yyval.addr).reg = (yyvsp[(1) - (1)].lval); + } + break; + + case 136: +#line 756 "a.y" { if((yyvsp[(3) - (4)].lval) < 0 || (yyvsp[(3) - (4)].lval) >= 1024) yyerror("SPR/DCR out of range"); @@ -2891,17 +2888,8 @@ yyreduce: } break; - case 137: -#line 763 "a.y" - { - (yyval.addr) = nullgen; - (yyval.addr).type = TYPE_REG; - (yyval.addr).reg = (yyvsp[(1) - (1)].lval); - } - break; - case 138: -#line 771 "a.y" +#line 767 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REG; @@ -2910,7 +2898,16 @@ yyreduce: break; case 139: -#line 777 "a.y" +#line 775 "a.y" + { + (yyval.addr) = nullgen; + (yyval.addr).type = TYPE_REG; + (yyval.addr).reg = (yyvsp[(1) - (1)].lval); + } + break; + + case 140: +#line 781 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REG; @@ -2918,8 +2915,8 @@ yyreduce: } break; - case 140: -#line 785 "a.y" + case 141: +#line 789 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REG; @@ -2927,8 +2924,8 @@ yyreduce: } break; - case 141: -#line 791 "a.y" + case 142: +#line 795 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REG; @@ -2936,8 +2933,8 @@ yyreduce: } break; - case 142: -#line 799 "a.y" + case 143: +#line 803 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REG; @@ -2945,8 +2942,8 @@ yyreduce: } break; - case 143: -#line 807 "a.y" + case 144: +#line 811 "a.y" { int mb, me; uint32 v; @@ -2967,8 +2964,8 @@ yyreduce: } break; - case 144: -#line 828 "a.y" + case 145: +#line 832 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_TEXTSIZE; @@ -2977,8 +2974,8 @@ yyreduce: } break; - case 145: -#line 835 "a.y" + case 146: +#line 839 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_TEXTSIZE; @@ -2987,8 +2984,8 @@ yyreduce: } break; - case 146: -#line 842 "a.y" + case 147: +#line 846 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_TEXTSIZE; @@ -2997,8 +2994,8 @@ yyreduce: } break; - case 147: -#line 849 "a.y" + case 148: +#line 853 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_TEXTSIZE; @@ -3007,16 +3004,16 @@ yyreduce: } break; - case 148: -#line 858 "a.y" + case 149: +#line 862 "a.y" { (yyval.addr) = (yyvsp[(2) - (2)].addr); (yyval.addr).type = TYPE_ADDR; } break; - case 149: -#line 863 "a.y" + case 150: +#line 867 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_SCONST; @@ -3024,8 +3021,8 @@ yyreduce: } break; - case 150: -#line 871 "a.y" + case 151: +#line 875 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_FCONST; @@ -3033,8 +3030,8 @@ yyreduce: } break; - case 151: -#line 877 "a.y" + case 152: +#line 881 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_FCONST; @@ -3042,8 +3039,8 @@ yyreduce: } break; - case 152: -#line 884 "a.y" + case 153: +#line 888 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_CONST; @@ -3051,8 +3048,8 @@ yyreduce: } break; - case 154: -#line 893 "a.y" + case 155: +#line 897 "a.y" { if((yyval.lval) < 0 || (yyval.lval) >= NREG) print("register value out of range\n"); @@ -3060,8 +3057,8 @@ yyreduce: } break; - case 155: -#line 901 "a.y" + case 156: +#line 905 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_MEM; @@ -3070,8 +3067,8 @@ yyreduce: } break; - case 156: -#line 908 "a.y" + case 157: +#line 912 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_MEM; @@ -3081,8 +3078,8 @@ yyreduce: } break; - case 158: -#line 919 "a.y" + case 159: +#line 923 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_MEM; @@ -3091,8 +3088,8 @@ yyreduce: } break; - case 159: -#line 928 "a.y" + case 160: +#line 932 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_MEM; @@ -3102,8 +3099,8 @@ yyreduce: } break; - case 160: -#line 936 "a.y" + case 161: +#line 940 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_MEM; @@ -3113,8 +3110,8 @@ yyreduce: } break; - case 161: -#line 944 "a.y" + case 162: +#line 948 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_MEM; @@ -3124,127 +3121,127 @@ yyreduce: } break; - case 164: -#line 956 "a.y" - { - (yyval.lval) = 0; - } - break; - case 165: #line 960 "a.y" { - (yyval.lval) = (yyvsp[(2) - (2)].lval); + (yyval.lval) = 0; } break; case 166: #line 964 "a.y" { - (yyval.lval) = -(yyvsp[(2) - (2)].lval); + (yyval.lval) = (yyvsp[(2) - (2)].lval); } break; - case 171: -#line 976 "a.y" + case 167: +#line 968 "a.y" { - (yyval.lval) = (yyvsp[(1) - (1)].sym)->value; + (yyval.lval) = -(yyvsp[(2) - (2)].lval); } break; case 172: #line 980 "a.y" { - (yyval.lval) = -(yyvsp[(2) - (2)].lval); + (yyval.lval) = (yyvsp[(1) - (1)].sym)->value; } break; case 173: #line 984 "a.y" { - (yyval.lval) = (yyvsp[(2) - (2)].lval); + (yyval.lval) = -(yyvsp[(2) - (2)].lval); } break; case 174: #line 988 "a.y" { - (yyval.lval) = ~(yyvsp[(2) - (2)].lval); + (yyval.lval) = (yyvsp[(2) - (2)].lval); } break; case 175: #line 992 "a.y" { - (yyval.lval) = (yyvsp[(2) - (3)].lval); + (yyval.lval) = ~(yyvsp[(2) - (2)].lval); } break; - case 177: -#line 999 "a.y" + case 176: +#line 996 "a.y" { - (yyval.lval) = (yyvsp[(1) - (3)].lval) + (yyvsp[(3) - (3)].lval); + (yyval.lval) = (yyvsp[(2) - (3)].lval); } break; case 178: #line 1003 "a.y" { - (yyval.lval) = (yyvsp[(1) - (3)].lval) - (yyvsp[(3) - (3)].lval); + (yyval.lval) = (yyvsp[(1) - (3)].lval) + (yyvsp[(3) - (3)].lval); } break; case 179: #line 1007 "a.y" { - (yyval.lval) = (yyvsp[(1) - (3)].lval) * (yyvsp[(3) - (3)].lval); + (yyval.lval) = (yyvsp[(1) - (3)].lval) - (yyvsp[(3) - (3)].lval); } break; case 180: #line 1011 "a.y" { - (yyval.lval) = (yyvsp[(1) - (3)].lval) / (yyvsp[(3) - (3)].lval); + (yyval.lval) = (yyvsp[(1) - (3)].lval) * (yyvsp[(3) - (3)].lval); } break; case 181: #line 1015 "a.y" { - (yyval.lval) = (yyvsp[(1) - (3)].lval) % (yyvsp[(3) - (3)].lval); + (yyval.lval) = (yyvsp[(1) - (3)].lval) / (yyvsp[(3) - (3)].lval); } break; case 182: #line 1019 "a.y" { - (yyval.lval) = (yyvsp[(1) - (4)].lval) << (yyvsp[(4) - (4)].lval); + (yyval.lval) = (yyvsp[(1) - (3)].lval) % (yyvsp[(3) - (3)].lval); } break; case 183: #line 1023 "a.y" { - (yyval.lval) = (yyvsp[(1) - (4)].lval) >> (yyvsp[(4) - (4)].lval); + (yyval.lval) = (yyvsp[(1) - (4)].lval) << (yyvsp[(4) - (4)].lval); } break; case 184: #line 1027 "a.y" { - (yyval.lval) = (yyvsp[(1) - (3)].lval) & (yyvsp[(3) - (3)].lval); + (yyval.lval) = (yyvsp[(1) - (4)].lval) >> (yyvsp[(4) - (4)].lval); } break; case 185: #line 1031 "a.y" { - (yyval.lval) = (yyvsp[(1) - (3)].lval) ^ (yyvsp[(3) - (3)].lval); + (yyval.lval) = (yyvsp[(1) - (3)].lval) & (yyvsp[(3) - (3)].lval); } break; case 186: #line 1035 "a.y" + { + (yyval.lval) = (yyvsp[(1) - (3)].lval) ^ (yyvsp[(3) - (3)].lval); + } + break; + + case 187: +#line 1039 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) | (yyvsp[(3) - (3)].lval); } @@ -3252,7 +3249,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 3256 "y.tab.c" +#line 3253 "y.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); diff --git a/src/cmd/new9a/a.y b/src/cmd/new9a/a.y index 6177577951..b6e76d8e03 100644 --- a/src/cmd/new9a/a.y +++ b/src/cmd/new9a/a.y @@ -68,7 +68,11 @@ import ( %type imm ximm fimm rel psr lcr cbit fpscr msr mask %% prog: -| prog line +| prog + { + stmtline = asm.Lineno + } + line line: LNAME ':' diff --git a/src/cmd/new9a/lex.go b/src/cmd/new9a/lex.go index bb6df238dc..d480e4540e 100644 --- a/src/cmd/new9a/lex.go +++ b/src/cmd/new9a/lex.go @@ -38,8 +38,9 @@ import ( ) var ( - yyerror = asm.Yyerror - nullgen obj.Addr + yyerror = asm.Yyerror + nullgen obj.Addr + stmtline int32 ) func main() { @@ -496,7 +497,7 @@ func outcode(a int, g1 *obj.Addr, reg int, g2 *obj.Addr) { p = asm.Ctxt.NewProg() p.As = int16(a) - p.Lineno = asm.Lineno + p.Lineno = stmtline if nosched != 0 { p.Mark |= ppc64.NOSCHED } @@ -529,7 +530,7 @@ func outgcode(a int, g1 *obj.Addr, reg int, g2, g3 *obj.Addr) { p = asm.Ctxt.NewProg() p.As = int16(a) - p.Lineno = asm.Lineno + p.Lineno = stmtline if nosched != 0 { p.Mark |= ppc64.NOSCHED } diff --git a/src/cmd/new9a/y.go b/src/cmd/new9a/y.go index 3b2663d95d..4444f70579 100644 --- a/src/cmd/new9a/y.go +++ b/src/cmd/new9a/y.go @@ -165,313 +165,310 @@ const yyMaxDepth = 200 var yyExca = []int{ -1, 1, 1, -1, - -2, 0, + -2, 2, } -const yyNprod = 186 +const yyNprod = 187 const yyPrivate = 57344 var yyTokenNames []string var yyStates []string -const yyLast = 922 +const yyLast = 900 var yyAct = []int{ - 47, 393, 53, 89, 426, 272, 439, 57, 51, 101, - 93, 84, 171, 55, 94, 96, 97, 99, 100, 56, - 50, 112, 73, 434, 74, 2, 120, 122, 124, 65, - 127, 129, 90, 132, 104, 52, 137, 126, 277, 93, - 453, 452, 116, 117, 118, 119, 416, 415, 92, 95, - 114, 98, 73, 133, 74, 115, 113, 73, 93, 74, - 405, 404, 121, 383, 382, 204, 447, 379, 135, 136, - 138, 139, 245, 244, 243, 241, 242, 236, 237, 238, - 239, 240, 368, 131, 367, 366, 126, 140, 148, 365, - 49, 145, 126, 93, 363, 163, 362, 315, 60, 60, - 60, 86, 88, 203, 204, 406, 283, 102, 109, 276, - 204, 73, 62, 74, 197, 63, 60, 161, 231, 125, - 165, 128, 130, 205, 168, 170, 142, 142, 142, 54, - 48, 85, 87, 169, 164, 224, 446, 445, 147, 149, - 105, 444, 198, 443, 134, 246, 46, 93, 123, 108, - 442, 247, 255, 256, 167, 225, 263, 264, 253, 268, - 269, 270, 259, 207, 254, 398, 397, 175, 176, 177, - 252, 266, 234, 396, 392, 261, 391, 390, 389, 287, - 290, 291, 188, 222, 223, 388, 250, 226, 227, 260, - 302, 304, 306, 308, 310, 311, 201, 387, 386, 385, - 384, 378, 292, 293, 294, 295, 313, 377, 316, 376, - 375, 374, 373, 372, 331, 333, 334, 335, 371, 337, - 361, 341, 360, 232, 230, 301, 229, 228, 199, 115, - 327, 328, 329, 330, 221, 220, 219, 317, 320, 60, - 218, 249, 60, 217, 258, 216, 215, 214, 213, 332, - 212, 211, 210, 279, 338, 340, 209, 280, 281, 282, - 208, 206, 285, 286, 343, 202, 196, 60, 347, 289, - 195, 248, 194, 60, 257, 297, 299, 193, 192, 191, - 251, 190, 79, 451, 262, 314, 189, 265, 267, 369, - 187, 201, 323, 184, 183, 58, 182, 370, 181, 288, - 180, 179, 178, 160, 159, 296, 60, 158, 157, 156, - 339, 76, 342, 155, 154, 153, 152, 151, 60, 346, - 150, 348, 349, 318, 321, 45, 44, 380, 41, 42, - 381, 43, 350, 351, 352, 353, 354, 186, 336, 357, - 358, 359, 298, 185, 166, 75, 62, 77, 64, 63, - 344, 66, 103, 402, 440, 80, 111, 162, 79, 78, - 66, 69, 68, 62, 81, 111, 63, 73, 62, 74, - 403, 63, 407, 408, 409, 410, 411, 412, 413, 66, - 401, 73, 460, 74, 111, 79, 78, 76, 414, 79, - 78, 395, 430, 66, 73, 429, 74, 185, 111, 448, - 433, 437, 438, 79, 78, 420, 421, 274, 273, 275, - 324, 233, 449, 73, 76, 74, 432, 417, 76, 394, - 356, 75, 162, 77, 284, 425, 428, 441, 61, 173, - 174, 80, 76, 435, 436, 355, 450, 66, 73, 7, - 74, 146, 111, 1, 455, 456, 298, 458, 459, 70, - 77, 399, 400, 72, 77, 103, 71, 271, 80, 103, - 0, 93, 80, 454, 0, 0, 110, 102, 77, 0, - 0, 201, 107, 106, 0, 0, 80, 0, 427, 427, - 274, 273, 275, 431, 59, 300, 303, 305, 307, 309, - 0, 312, 0, 274, 273, 275, 238, 239, 240, 73, - 271, 74, 325, 418, 326, 245, 244, 243, 241, 242, - 236, 237, 238, 239, 240, 0, 422, 423, 424, 0, - 0, 0, 141, 143, 144, 0, 0, 0, 167, 8, - 172, 0, 173, 174, 457, 236, 237, 238, 239, 240, - 175, 9, 10, 16, 14, 15, 13, 25, 18, 19, - 11, 21, 24, 22, 23, 20, 0, 32, 36, 0, - 33, 37, 39, 38, 40, 79, 78, 0, 0, 79, - 78, 0, 0, 364, 241, 242, 236, 237, 238, 239, - 240, 278, 0, 0, 34, 35, 5, 28, 29, 31, - 30, 26, 27, 0, 76, 12, 17, 0, 76, 3, - 0, 4, 0, 66, 6, 73, 62, 74, 67, 63, - 64, 82, 83, 69, 68, 0, 81, 79, 78, 244, - 243, 241, 242, 236, 237, 238, 239, 240, 79, 78, - 77, 0, 75, 0, 77, 103, 0, 345, 80, 61, - 0, 65, 80, 0, 79, 78, 76, 0, 0, 0, - 0, 66, 0, 73, 0, 74, 67, 76, 0, 82, - 83, 69, 68, 0, 81, 62, 79, 78, 63, 0, - 79, 78, 0, 76, 0, 0, 79, 78, 0, 0, - 75, 62, 77, 0, 63, 0, 0, 61, 0, 93, - 80, 75, 0, 77, 0, 76, 79, 78, 61, 76, - 91, 80, 73, 0, 74, 76, 0, 75, 0, 77, - 0, 64, 0, 0, 61, 79, 78, 80, 82, 83, - 0, 79, 78, 0, 0, 76, 0, 79, 78, 75, - 0, 77, 0, 75, 0, 77, 103, 0, 0, 80, - 61, 77, 93, 80, 76, 0, 103, 79, 78, 80, - 76, 73, 0, 74, 0, 0, 76, 0, 166, 75, - 0, 77, 0, 0, 79, 78, 103, 0, 0, 80, - 79, 78, 0, 0, 79, 78, 76, 0, 0, 0, - 77, 0, 0, 0, 110, 103, 77, 0, 80, 0, - 75, 419, 77, 76, 80, 0, 0, 103, 0, 76, - 80, 0, 0, 76, 0, 0, 0, 0, 0, 0, - 110, 0, 77, 0, 0, 0, 0, 322, 0, 0, - 80, 0, 0, 0, 0, 0, 0, 110, 0, 77, - 0, 0, 0, 110, 319, 77, 0, 80, 0, 77, - 200, 0, 0, 80, 103, 0, 0, 80, 245, 244, - 243, 241, 242, 236, 237, 238, 239, 240, 243, 241, - 242, 236, 237, 238, 239, 240, 0, 0, 0, 0, + 48, 394, 54, 90, 427, 273, 440, 58, 52, 102, + 80, 79, 85, 172, 94, 95, 97, 98, 100, 101, + 51, 57, 113, 3, 80, 79, 56, 121, 123, 125, + 435, 128, 130, 91, 133, 53, 278, 138, 74, 77, + 75, 66, 164, 117, 118, 119, 120, 454, 453, 93, + 96, 65, 99, 77, 134, 417, 127, 114, 94, 74, + 416, 75, 74, 122, 75, 406, 83, 84, 105, 136, + 137, 139, 140, 76, 94, 78, 80, 79, 405, 384, + 62, 127, 94, 81, 383, 205, 148, 150, 149, 78, + 50, 380, 116, 369, 104, 94, 127, 81, 368, 61, + 61, 61, 87, 89, 367, 77, 366, 277, 103, 110, + 364, 363, 316, 63, 407, 198, 64, 61, 284, 55, + 126, 205, 129, 131, 162, 206, 232, 143, 143, 143, + 169, 74, 63, 75, 171, 64, 225, 204, 205, 76, + 109, 78, 170, 165, 448, 47, 62, 447, 92, 81, + 446, 445, 248, 256, 257, 168, 226, 264, 265, 254, + 269, 270, 271, 260, 135, 444, 443, 94, 176, 177, + 178, 235, 399, 253, 398, 397, 262, 199, 255, 393, + 288, 291, 292, 189, 392, 267, 391, 251, 390, 389, + 261, 303, 305, 307, 309, 311, 312, 202, 388, 387, + 166, 386, 385, 293, 294, 295, 296, 314, 379, 317, + 115, 49, 86, 88, 378, 332, 334, 335, 336, 377, + 338, 106, 342, 376, 375, 374, 302, 373, 372, 124, + 362, 328, 329, 330, 331, 361, 233, 231, 230, 229, + 61, 116, 250, 61, 132, 259, 222, 221, 141, 220, + 333, 219, 146, 218, 280, 339, 341, 217, 281, 282, + 283, 216, 215, 286, 287, 344, 214, 213, 61, 348, + 290, 252, 318, 321, 61, 263, 298, 300, 266, 268, + 351, 352, 353, 354, 355, 212, 315, 358, 359, 360, + 370, 211, 202, 324, 59, 210, 80, 79, 209, 371, + 207, 203, 197, 196, 195, 194, 193, 61, 192, 200, + 191, 340, 190, 343, 188, 185, 184, 80, 79, 61, + 347, 183, 349, 350, 208, 77, 182, 181, 381, 180, + 67, 382, 74, 63, 75, 68, 64, 65, 83, 84, + 70, 69, 179, 82, 223, 224, 77, 161, 227, 228, + 160, 159, 249, 158, 157, 258, 156, 163, 155, 76, + 154, 78, 153, 152, 151, 46, 62, 45, 66, 81, + 44, 404, 187, 408, 409, 410, 411, 412, 413, 414, + 289, 299, 78, 402, 42, 43, 297, 104, 63, 415, + 81, 64, 67, 431, 65, 63, 430, 112, 64, 400, + 401, 403, 438, 439, 319, 322, 421, 422, 246, 245, + 244, 242, 243, 237, 238, 239, 240, 241, 67, 337, + 441, 461, 163, 112, 449, 434, 426, 429, 442, 234, + 450, 345, 186, 433, 436, 437, 357, 451, 74, 63, + 75, 74, 64, 75, 285, 456, 457, 356, 459, 460, + 67, 8, 418, 60, 67, 112, 74, 272, 75, 112, + 70, 69, 396, 82, 455, 275, 274, 276, 103, 174, + 175, 74, 202, 75, 275, 274, 276, 80, 452, 428, + 428, 247, 147, 2, 432, 301, 304, 306, 308, 310, + 395, 313, 142, 144, 145, 275, 274, 276, 325, 9, + 272, 74, 326, 75, 327, 1, 77, 423, 424, 425, + 71, 10, 11, 17, 15, 16, 14, 26, 19, 20, + 12, 22, 25, 23, 24, 21, 73, 33, 37, 168, + 34, 38, 40, 39, 41, 458, 72, 0, 186, 167, + 76, 176, 78, 80, 79, 0, 173, 104, 174, 175, + 81, 239, 240, 241, 35, 36, 6, 29, 30, 32, + 31, 27, 28, 80, 79, 13, 18, 0, 0, 4, + 0, 5, 77, 365, 7, 0, 0, 67, 0, 74, + 0, 75, 68, 0, 419, 83, 84, 70, 69, 0, + 82, 0, 77, 0, 80, 79, 0, 67, 0, 0, + 80, 79, 112, 0, 0, 0, 76, 0, 78, 80, + 79, 0, 0, 62, 0, 94, 81, 237, 238, 239, + 240, 241, 0, 77, 0, 0, 111, 0, 78, 77, + 0, 63, 108, 107, 64, 0, 81, 0, 77, 80, + 79, 0, 0, 0, 0, 74, 0, 75, 245, 244, + 242, 243, 237, 238, 239, 240, 241, 76, 0, 78, + 0, 0, 167, 76, 62, 78, 0, 81, 77, 0, + 104, 0, 76, 81, 78, 74, 0, 75, 0, 62, + 0, 0, 81, 246, 245, 244, 242, 243, 237, 238, + 239, 240, 241, 80, 79, 80, 79, 80, 79, 0, + 0, 0, 76, 0, 78, 0, 80, 79, 0, 104, + 80, 79, 81, 0, 0, 0, 0, 0, 0, 80, + 79, 0, 77, 0, 77, 0, 77, 0, 0, 74, + 0, 75, 80, 79, 0, 77, 0, 0, 0, 77, + 0, 0, 0, 80, 79, 0, 0, 0, 77, 0, + 0, 0, 80, 79, 0, 0, 299, 0, 78, 279, + 78, 77, 78, 104, 0, 104, 81, 104, 81, 94, + 81, 78, 77, 111, 0, 78, 104, 0, 346, 81, + 420, 77, 76, 81, 78, 0, 0, 0, 0, 104, + 0, 0, 81, 0, 0, 111, 0, 78, 0, 0, + 0, 0, 323, 0, 0, 81, 111, 0, 78, 0, + 0, 0, 0, 320, 0, 111, 81, 78, 0, 0, + 0, 0, 201, 0, 0, 81, 246, 245, 244, 242, + 243, 237, 238, 239, 240, 241, 244, 242, 243, 237, + 238, 239, 240, 241, 242, 243, 237, 238, 239, 240, + 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 235, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, } var yyPact = []int{ - -1000, 527, -1000, 253, 255, 249, -1000, 248, 69, 560, - 349, 619, -71, 12, 393, 12, 393, 393, 765, 394, - -23, 300, 300, 300, 300, 393, 12, 657, 13, 393, - 7, 13, 66, -52, -71, -71, 151, 718, 718, 718, - 151, -1000, 765, 765, -1000, -1000, -1000, 242, 239, 238, - 237, 236, 235, 231, 230, 229, 226, 225, -1000, -1000, - 38, 706, -1000, 55, -1000, 687, -1000, 45, -1000, 54, - -1000, -1000, -1000, -1000, 46, 523, -1000, -1000, 765, 765, - 765, -1000, -1000, -1000, 224, 223, 222, 220, 218, 216, - 215, 327, 212, 765, 208, 203, 201, 200, 199, 194, - 192, 188, -1000, 765, -1000, -1000, 667, 761, 187, 25, - 523, 45, 183, 182, -1000, -1000, 178, 174, 173, 172, - 170, 169, 168, 167, 165, 162, 393, 158, 157, 156, - -1000, -1000, 151, 151, 322, -1000, 151, 151, 149, 148, - -1000, 146, 39, 145, 399, -1000, 527, 844, -1000, 68, - 608, 393, 393, 661, 317, 393, 393, 308, 336, 393, - 393, 454, 29, 501, 765, -1000, -1000, 38, 765, 765, - 765, 27, 416, 765, 765, -1000, -1000, -1000, 349, 393, - 393, 300, 300, 300, 635, -1000, 272, 765, -1000, 12, - 393, 393, 393, 393, 393, 393, 765, 17, -1000, -1000, - 667, 31, 755, 738, 368, 27, 393, -1000, 393, 300, - 300, 300, 300, 12, 393, 393, 393, 718, 12, -42, - 393, 13, -1000, -1000, -1000, -1000, -1000, -1000, -71, 718, - 556, 441, 380, 765, -1000, -1000, 765, 765, 765, 765, - 765, 428, 412, 765, 765, 765, -1000, -1000, -1000, -1000, - 144, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 142, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 16, 14, -1000, -1000, -1000, -1000, 393, -1000, 9, - 5, 4, 2, 441, 420, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 497, -1000, 309, 294, 290, -1000, 288, 68, + 287, 600, 67, -67, -7, 396, -7, 396, 396, 308, + 554, 14, 342, 342, 342, 342, 396, -7, 630, 2, + 396, 17, 2, 86, -40, -67, -67, 163, 710, 710, + 710, 163, -1000, 308, 308, -1000, -1000, -1000, 286, 285, + 284, 282, 280, 278, 276, 275, 273, 272, 269, -1000, + -1000, 45, 684, -1000, 64, -1000, 591, -1000, 51, -1000, + 63, -1000, -1000, -1000, -1000, 55, 539, -1000, -1000, 308, + 308, 308, -1000, -1000, -1000, 264, 251, 249, 248, 243, + 238, 237, 362, 236, 308, 234, 232, 230, 228, 227, + 226, 225, 224, -1000, 308, -1000, -1000, 15, 743, 223, + 59, 539, 51, 222, 220, -1000, -1000, 217, 213, 207, + 189, 188, 184, 183, 179, 175, 173, 396, 171, 169, + 168, -1000, -1000, 163, 163, 393, -1000, 163, 163, 161, + 160, -1000, 159, 47, 158, 417, -1000, 497, 822, -1000, + 404, 534, 396, 396, 1, 349, 396, 396, 407, 411, + 396, 396, 426, 27, 679, 308, -1000, -1000, 45, 308, + 308, 308, 39, 436, 308, 308, -1000, -1000, -1000, 600, + 396, 396, 342, 342, 342, 585, -1000, 311, 308, -1000, + -7, 396, 396, 396, 396, 396, 396, 308, 32, -1000, + -1000, 15, 42, 734, 723, 456, 39, 396, -1000, 396, + 342, 342, 342, 342, -7, 396, 396, 396, 710, -7, + -23, 396, 2, -1000, -1000, -1000, -1000, -1000, -1000, -67, + 710, 697, 435, 688, 308, -1000, -1000, 308, 308, 308, + 308, 308, 440, 428, 308, 308, 308, -1000, -1000, -1000, + -1000, 157, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 152, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 31, 30, -1000, -1000, -1000, -1000, 396, -1000, + 26, 24, 18, 13, 435, 460, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 140, 135, -1000, 134, -1000, 133, -1000, 132, -1000, 131, - -1000, -1000, 129, -1000, 123, -1000, -13, -1000, -1000, 667, - -1000, -1000, 667, -14, -17, -1000, -1000, -1000, 122, 121, - 120, 119, 107, 100, 99, -1000, -1000, -1000, 98, -1000, - 96, -1000, -1000, -1000, -1000, 381, 95, -1000, 88, 87, - 485, 485, -1000, -1000, -1000, 765, 765, 567, 852, 614, - 305, 298, -1000, -1000, -19, -1000, -1000, -1000, -1000, -20, - 26, 393, 393, 393, 393, 393, 393, 393, 765, -1000, - -33, -34, 712, -1000, 300, 300, 350, 350, 350, 380, - 380, 393, 13, -1000, 406, 362, -58, -71, -75, 526, - 526, -1000, -1000, -1000, -1000, -1000, 314, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 667, - -1000, 72, -1000, -1000, -1000, 65, 63, 59, 58, -12, - -1000, -1000, 361, 402, 381, -1000, -1000, -1000, -1000, 273, - -39, -40, 300, 393, 393, 765, 393, 393, -1000, 344, - -1000, 376, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, + -1000, 150, 149, -1000, 147, -1000, 146, -1000, 145, -1000, + 141, -1000, -1000, 136, -1000, 130, -1000, 11, -1000, -1000, + 15, -1000, -1000, 15, 6, -1, -1000, -1000, -1000, 124, + 123, 121, 120, 111, 110, 108, -1000, -1000, -1000, 106, + -1000, 101, -1000, -1000, -1000, -1000, 452, 97, -1000, 96, + 94, 540, 540, -1000, -1000, -1000, 308, 308, 837, 830, + 643, 353, 344, -1000, -1000, -2, -1000, -1000, -1000, -1000, + -15, 35, 396, 396, 396, 396, 396, 396, 396, 308, + -1000, -20, -25, 701, -1000, 342, 342, 375, 375, 375, + 688, 688, 396, 2, -1000, 423, 387, -51, -67, -75, + 608, 608, -1000, -1000, -1000, -1000, -1000, 380, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 15, -1000, 88, -1000, -1000, -1000, 87, 73, 72, 69, + 66, -1000, -1000, 386, 420, 452, -1000, -1000, -1000, -1000, + 468, -32, -33, 342, 396, 396, 308, 396, 396, -1000, + 383, -1000, 686, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, } var yyPgo = []int{ - 0, 88, 95, 5, 12, 295, 120, 0, 90, 484, - 129, 20, 7, 456, 453, 1, 35, 2, 3, 34, - 13, 19, 9, 8, 449, 4, 443, 25, 441, 439, - 50, + 0, 88, 42, 5, 13, 294, 200, 0, 90, 453, + 119, 20, 7, 536, 526, 1, 35, 2, 3, 68, + 26, 21, 9, 8, 510, 4, 505, 483, 23, 482, + 451, 210, } var yyR1 = []int{ - 0, 26, 26, 28, 27, 27, 27, 27, 27, 27, - 27, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 19, 19, 7, 12, 12, 13, - 21, 14, 24, 20, 20, 20, 23, 11, 11, 10, - 10, 22, 25, 15, 15, 15, 15, 17, 17, 18, - 18, 16, 5, 5, 8, 8, 6, 6, 9, 9, - 9, 30, 30, 4, 4, 4, 3, 3, 3, 1, - 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, + 0, 26, 27, 26, 29, 28, 28, 28, 28, 28, + 28, 28, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 19, 19, 7, 12, 12, + 13, 21, 14, 24, 20, 20, 20, 23, 11, 11, + 10, 10, 22, 25, 15, 15, 15, 15, 17, 17, + 18, 18, 16, 5, 5, 8, 8, 6, 6, 9, + 9, 9, 31, 31, 4, 4, 4, 3, 3, 3, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, } var yyR2 = []int{ - 0, 0, 2, 0, 4, 4, 4, 2, 1, 2, - 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 0, 0, 0, 3, 0, 4, 4, 4, 2, 1, + 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 6, 4, 4, 6, 4, 4, 6, 6, 6, - 4, 4, 6, 4, 6, 4, 6, 4, 4, 2, - 6, 4, 4, 4, 6, 4, 4, 4, 4, 4, - 4, 4, 4, 2, 2, 4, 3, 3, 5, 4, - 4, 6, 4, 4, 6, 6, 6, 8, 4, 4, - 3, 2, 4, 4, 6, 8, 4, 6, 4, 4, - 6, 6, 8, 8, 8, 8, 4, 4, 4, 6, - 4, 6, 4, 4, 2, 2, 3, 3, 3, 3, - 2, 3, 3, 4, 4, 2, 5, 7, 4, 6, - 6, 6, 6, 2, 4, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 4, 1, 1, 1, 4, 1, - 4, 1, 3, 1, 2, 3, 4, 2, 2, 2, - 3, 2, 1, 4, 3, 5, 1, 4, 4, 5, - 7, 0, 1, 0, 2, 2, 1, 1, 1, 1, - 1, 2, 2, 2, 3, 1, 3, 3, 3, 3, - 3, 4, 4, 3, 3, 3, + 4, 4, 6, 4, 4, 6, 4, 4, 6, 6, + 6, 4, 4, 6, 4, 6, 4, 6, 4, 4, + 2, 6, 4, 4, 4, 6, 4, 4, 4, 4, + 4, 4, 4, 4, 2, 2, 4, 3, 3, 5, + 4, 4, 6, 4, 4, 6, 6, 6, 8, 4, + 4, 3, 2, 4, 4, 6, 8, 4, 6, 4, + 4, 6, 6, 8, 8, 8, 8, 4, 4, 4, + 6, 4, 6, 4, 4, 2, 2, 3, 3, 3, + 3, 2, 3, 3, 4, 4, 2, 5, 7, 4, + 6, 6, 6, 6, 2, 4, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 4, 1, 1, 1, 4, + 1, 4, 1, 3, 1, 2, 3, 4, 2, 2, + 2, 3, 2, 1, 4, 3, 5, 1, 4, 4, + 5, 7, 0, 1, 0, 2, 2, 1, 1, 1, + 1, 1, 2, 2, 2, 3, 1, 3, 3, 3, + 3, 3, 4, 4, 3, 3, 3, } var yyChk = []int{ - -1000, -26, -27, 72, 74, 59, 77, -29, 2, 14, - 15, 23, 68, 19, 17, 18, 16, 69, 21, 22, - 28, 24, 26, 27, 25, 20, 64, 65, 60, 61, - 63, 62, 30, 33, 57, 58, 31, 34, 36, 35, - 37, 75, 76, 76, 77, 77, 77, -7, -6, -8, - -11, -23, -16, -17, -10, -20, -21, -12, -5, -9, - -1, 79, 46, 49, 50, 81, 43, 48, 54, 53, - -24, -13, -14, 45, 47, 72, 38, 74, 10, 9, - 82, 56, 51, 52, -7, -6, -8, -6, -8, -18, - -11, 81, -16, 81, -7, -16, -7, -7, -16, -7, - -7, -22, -1, 79, -19, -6, 79, 78, -10, -1, - 72, 48, -7, -16, -30, 78, -11, -11, -11, -11, - -7, -16, -7, -6, -7, -8, 79, -7, -8, -7, - -8, -30, -7, -11, 78, -16, -16, -17, -16, -16, - -30, -9, -1, -9, -9, -30, -28, -2, -1, -2, + -1000, -26, -27, -28, 72, 74, 59, 77, -30, 2, + 14, 15, 23, 68, 19, 17, 18, 16, 69, 21, + 22, 28, 24, 26, 27, 25, 20, 64, 65, 60, + 61, 63, 62, 30, 33, 57, 58, 31, 34, 36, + 35, 37, 75, 76, 76, 77, 77, 77, -7, -6, + -8, -11, -23, -16, -17, -10, -20, -21, -12, -5, + -9, -1, 79, 46, 49, 50, 81, 43, 48, 54, + 53, -24, -13, -14, 45, 47, 72, 38, 74, 10, + 9, 82, 56, 51, 52, -7, -6, -8, -6, -8, + -18, -11, 81, -16, 81, -7, -16, -7, -7, -16, + -7, -7, -22, -1, 79, -19, -6, 79, 78, -10, + -1, 72, 48, -7, -16, -31, 78, -11, -11, -11, + -11, -7, -16, -7, -6, -7, -8, 79, -7, -8, + -7, -8, -31, -7, -11, 78, -16, -16, -17, -16, + -16, -31, -9, -1, -9, -9, -31, -29, -2, -1, + -2, 78, 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 79, -5, -2, 79, -6, 71, -1, 79, + 79, 79, -4, 7, 9, 10, -1, -1, -1, 78, + 78, 78, 78, 78, 78, 78, 70, 10, 78, -1, + 78, 78, 78, 78, 78, 78, 78, 78, -12, -19, + -6, 79, -1, 78, 78, 79, -4, 78, -31, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 79, -5, -2, 79, -6, 71, -1, 79, 79, - 79, -4, 7, 9, 10, -1, -1, -1, 78, 78, - 78, 78, 78, 78, 78, 70, 10, 78, -1, 78, - 78, 78, 78, 78, 78, 78, 78, -12, -19, -6, - 79, -1, 78, 78, 79, -4, 78, -30, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, -30, -30, -7, -11, -30, -30, 78, 78, - 78, 79, 78, 12, -27, 77, 9, 10, 11, 12, - 13, 7, 8, 6, 5, 4, 77, -7, -6, -8, - -16, -10, -21, -12, -20, -7, -7, -6, -8, -23, - -16, -11, -10, -7, -7, -10, -20, -10, -7, -7, - -7, -5, -3, 40, 39, 41, 80, 9, 80, -1, - -1, -1, -1, 79, 8, -1, -1, -7, -6, -8, - -7, -7, -11, -11, -11, -11, -6, -8, 70, -1, - -5, -16, -7, -5, -7, -5, -7, -5, -7, -5, - -7, -7, -5, -22, -1, 80, -12, -19, -6, 79, - -19, -6, 79, -1, 42, -5, -5, -11, -11, -11, - -11, -7, -16, -7, -7, -7, -6, -7, -16, -8, - -16, -7, -8, -16, -6, 81, -1, -16, -1, -1, - -2, -2, -2, -2, -2, 7, 8, -2, -2, -2, - 78, 78, 80, 80, -5, 80, 80, 80, 80, -3, - -4, 78, 78, 78, 78, 78, 78, 78, 78, 80, - -12, -12, 78, 80, 78, 78, 78, 78, 78, 78, - 78, 78, 78, -15, 38, 10, 78, 78, 78, -2, - -2, -21, 48, -23, 80, 80, 79, -7, -7, -7, - -7, -7, -7, -7, -22, 80, 80, -19, -6, 79, - -11, -11, -10, -10, -10, -16, -25, -1, -16, -25, - -7, -8, 10, 38, 81, -16, -16, -17, -18, 81, - 40, -12, 78, 78, 78, 78, 78, 78, 38, 10, - -15, 10, 80, 80, -11, -7, -7, -1, -7, -7, - 38, + 78, 78, 78, -31, -31, -7, -11, -31, -31, 78, + 78, 78, 79, 78, 12, -28, 77, 9, 10, 11, + 12, 13, 7, 8, 6, 5, 4, 77, -7, -6, + -8, -16, -10, -21, -12, -20, -7, -7, -6, -8, + -23, -16, -11, -10, -7, -7, -10, -20, -10, -7, + -7, -7, -5, -3, 40, 39, 41, 80, 9, 80, + -1, -1, -1, -1, 79, 8, -1, -1, -7, -6, + -8, -7, -7, -11, -11, -11, -11, -6, -8, 70, + -1, -5, -16, -7, -5, -7, -5, -7, -5, -7, + -5, -7, -7, -5, -22, -1, 80, -12, -19, -6, + 79, -19, -6, 79, -1, 42, -5, -5, -11, -11, + -11, -11, -7, -16, -7, -7, -7, -6, -7, -16, + -8, -16, -7, -8, -16, -6, 81, -1, -16, -1, + -1, -2, -2, -2, -2, -2, 7, 8, -2, -2, + -2, 78, 78, 80, 80, -5, 80, 80, 80, 80, + -3, -4, 78, 78, 78, 78, 78, 78, 78, 78, + 80, -12, -12, 78, 80, 78, 78, 78, 78, 78, + 78, 78, 78, 78, -15, 38, 10, 78, 78, 78, + -2, -2, -21, 48, -23, 80, 80, 79, -7, -7, + -7, -7, -7, -7, -7, -22, 80, 80, -19, -6, + 79, -11, -11, -10, -10, -10, -16, -25, -1, -16, + -25, -7, -8, 10, 38, 81, -16, -16, -17, -18, + 81, 40, -12, 78, 78, 78, 78, 78, 78, 38, + 10, -15, 10, 80, 80, -11, -7, -7, -1, -7, + -7, 38, } var yyDef = []int{ - 1, -2, 2, 0, 0, 0, 8, 0, 0, 0, + 1, -2, 0, 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 161, 0, 0, 0, 161, 0, 0, 0, - 161, 3, 0, 0, 7, 9, 10, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 126, 156, - 0, 0, 137, 0, 136, 0, 139, 130, 133, 0, - 135, 127, 128, 152, 0, 163, 169, 170, 0, 0, - 0, 132, 129, 131, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, - 0, 0, 141, 0, 63, 64, 0, 0, 0, 0, - 163, 0, 161, 0, 81, 162, 0, 0, 0, 0, + 0, 162, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 162, 0, 0, 0, 162, 0, 0, + 0, 162, 4, 0, 0, 8, 10, 11, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, + 157, 0, 0, 138, 0, 137, 0, 140, 131, 134, + 0, 136, 128, 129, 153, 0, 164, 170, 171, 0, + 0, 0, 133, 130, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 104, 105, 161, 161, 162, 110, 161, 161, 0, 0, - 115, 0, 0, 0, 0, 123, 0, 0, 175, 0, + 50, 0, 0, 142, 0, 64, 65, 0, 0, 0, + 0, 164, 0, 162, 0, 82, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 147, 148, 151, 0, 0, - 0, 0, 0, 0, 0, 171, 172, 173, 0, 0, - 0, 0, 0, 0, 0, 149, 0, 0, 151, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 67, - 0, 0, 0, 0, 0, 125, 162, 80, 0, 0, + 0, 105, 106, 162, 162, 163, 111, 162, 162, 0, + 0, 116, 0, 0, 0, 0, 124, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 106, 107, 108, 109, 111, 112, 0, 0, - 0, 0, 0, 0, 4, 5, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 6, 11, 23, 24, - 0, 35, 36, 60, 62, 12, 13, 27, 28, 30, - 0, 29, 32, 51, 52, 55, 61, 56, 58, 57, - 59, 0, 0, 166, 167, 168, 154, 0, 174, 0, - 0, 0, 0, 0, 163, 164, 165, 14, 25, 26, - 15, 16, 17, 18, 19, 20, 21, 22, 150, 33, - 126, 0, 40, 126, 41, 126, 43, 126, 45, 126, - 47, 48, 0, 53, 141, 65, 0, 69, 70, 0, - 72, 73, 0, 0, 0, 78, 79, 82, 83, 0, - 86, 88, 89, 0, 0, 96, 97, 98, 0, 100, - 0, 102, 103, 113, 114, 0, 0, 118, 0, 0, - 176, 177, 178, 179, 180, 0, 0, 183, 184, 185, - 0, 0, 157, 158, 0, 138, 140, 134, 153, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, - 0, 0, 0, 124, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 116, 143, 0, 0, 0, 0, 181, - 182, 34, 130, 31, 155, 159, 0, 37, 39, 38, - 42, 44, 46, 50, 54, 71, 74, 75, 76, 0, - 84, 0, 87, 90, 91, 0, 0, 0, 0, 0, - 99, 101, 0, 144, 0, 119, 120, 121, 122, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 145, 0, - 117, 0, 160, 77, 85, 92, 93, 142, 94, 95, - 146, + 0, 0, 0, 0, 0, 0, 148, 149, 152, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 174, 0, + 0, 0, 0, 0, 0, 0, 150, 0, 0, 152, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, + 68, 0, 0, 0, 0, 0, 126, 163, 81, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 107, 108, 109, 110, 112, 113, 0, + 0, 0, 0, 0, 0, 5, 6, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7, 12, 24, + 25, 0, 36, 37, 61, 63, 13, 14, 28, 29, + 31, 0, 30, 33, 52, 53, 56, 62, 57, 59, + 58, 60, 0, 0, 167, 168, 169, 155, 0, 175, + 0, 0, 0, 0, 0, 164, 165, 166, 15, 26, + 27, 16, 17, 18, 19, 20, 21, 22, 23, 151, + 34, 127, 0, 41, 127, 42, 127, 44, 127, 46, + 127, 48, 49, 0, 54, 142, 66, 0, 70, 71, + 0, 73, 74, 0, 0, 0, 79, 80, 83, 84, + 0, 87, 89, 90, 0, 0, 97, 98, 99, 0, + 101, 0, 103, 104, 114, 115, 0, 0, 119, 0, + 0, 177, 178, 179, 180, 181, 0, 0, 184, 185, + 186, 0, 0, 158, 159, 0, 139, 141, 135, 154, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 69, 0, 0, 0, 125, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 117, 144, 0, 0, 0, 0, + 182, 183, 35, 131, 32, 156, 160, 0, 38, 40, + 39, 43, 45, 47, 51, 55, 72, 75, 76, 77, + 0, 85, 0, 88, 91, 92, 0, 0, 0, 0, + 0, 100, 102, 0, 145, 0, 120, 121, 122, 123, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, + 0, 118, 0, 161, 78, 86, 93, 94, 143, 95, + 96, 147, } var yyTok1 = []int{ @@ -514,6 +511,26 @@ type yyLexer interface { Error(s string) } +type yyParser interface { + Parse(yyLexer) int + Lookahead() int +} + +type yyParserImpl struct { + lookahead func() int +} + +func (p *yyParserImpl) Lookahead() int { + return p.lookahead() +} + +func yyNewParser() yyParser { + p := &yyParserImpl{ + lookahead: func() int { return -1 }, + } + return p +} + const yyFlag = -1000 func yyTokname(c int) string { @@ -535,51 +552,63 @@ func yyStatname(s int) string { return __yyfmt__.Sprintf("state-%v", s) } -func yylex1(lex yyLexer, lval *yySymType) int { - c := 0 - char := lex.Lex(lval) +func yylex1(lex yyLexer, lval *yySymType) (char, token int) { + token = 0 + char = lex.Lex(lval) if char <= 0 { - c = yyTok1[0] + token = yyTok1[0] goto out } if char < len(yyTok1) { - c = yyTok1[char] + token = yyTok1[char] goto out } if char >= yyPrivate { if char < yyPrivate+len(yyTok2) { - c = yyTok2[char-yyPrivate] + token = yyTok2[char-yyPrivate] goto out } } for i := 0; i < len(yyTok3); i += 2 { - c = yyTok3[i+0] - if c == char { - c = yyTok3[i+1] + token = yyTok3[i+0] + if token == char { + token = yyTok3[i+1] goto out } } out: - if c == 0 { - c = yyTok2[1] /* unknown char */ + if token == 0 { + token = yyTok2[1] /* unknown char */ } if yyDebug >= 3 { - __yyfmt__.Printf("lex %s(%d)\n", yyTokname(c), uint(char)) + __yyfmt__.Printf("lex %s(%d)\n", yyTokname(token), uint(char)) } - return c + return char, token } func yyParse(yylex yyLexer) int { + return yyNewParser().Parse(yylex) +} + +func (yyrcvr *yyParserImpl) Parse(yylex yyLexer) int { var yyn int var yylval yySymType var yyVAL yySymType + var yyDollar []yySymType yyS := make([]yySymType, yyMaxDepth) Nerrs := 0 /* number of errors */ Errflag := 0 /* error recovery flag */ yystate := 0 yychar := -1 + yytoken := -1 // yychar translated into internal numbering + yyrcvr.lookahead = func() int { return yychar } + defer func() { + // Make sure we report no lookahead when not parsing. + yychar = -1 + yytoken = -1 + }() yyp := -1 goto yystack @@ -592,7 +621,7 @@ ret1: yystack: /* put a state and value onto the stack */ if yyDebug >= 4 { - __yyfmt__.Printf("char %v in %v\n", yyTokname(yychar), yyStatname(yystate)) + __yyfmt__.Printf("char %v in %v\n", yyTokname(yytoken), yyStatname(yystate)) } yyp++ @@ -610,15 +639,16 @@ yynewstate: goto yydefault /* simple state */ } if yychar < 0 { - yychar = yylex1(yylex, &yylval) + yychar, yytoken = yylex1(yylex, &yylval) } - yyn += yychar + yyn += yytoken if yyn < 0 || yyn >= yyLast { goto yydefault } yyn = yyAct[yyn] - if yyChk[yyn] == yychar { /* valid shift */ + if yyChk[yyn] == yytoken { /* valid shift */ yychar = -1 + yytoken = -1 yyVAL = yylval yystate = yyn if Errflag > 0 { @@ -632,7 +662,7 @@ yydefault: yyn = yyDef[yystate] if yyn == -2 { if yychar < 0 { - yychar = yylex1(yylex, &yylval) + yychar, yytoken = yylex1(yylex, &yylval) } /* look through exception table */ @@ -645,7 +675,7 @@ yydefault: } for xi += 2; ; xi += 2 { yyn = yyExca[xi+0] - if yyn < 0 || yyn == yychar { + if yyn < 0 || yyn == yytoken { break } } @@ -662,7 +692,7 @@ yydefault: Nerrs++ if yyDebug >= 1 { __yyfmt__.Printf("%s", yyStatname(yystate)) - __yyfmt__.Printf(" saw %s\n", yyTokname(yychar)) + __yyfmt__.Printf(" saw %s\n", yyTokname(yytoken)) } fallthrough @@ -690,12 +720,13 @@ yydefault: case 3: /* no shift yet; clobber input char */ if yyDebug >= 2 { - __yyfmt__.Printf("error recovery discards %s\n", yyTokname(yychar)) + __yyfmt__.Printf("error recovery discards %s\n", yyTokname(yytoken)) } - if yychar == yyEofCode { + if yytoken == yyEofCode { goto ret1 } yychar = -1 + yytoken = -1 goto yynewstate /* try again in the same state */ } } @@ -735,773 +766,912 @@ yydefault: // dummy call; replaced with literal code switch yynt { - case 3: - //line a.y:75 + case 2: + yyDollar = yyS[yypt-1 : yypt+1] + //line a.y:72 { - yyS[yypt-1].sym = asm.LabelLookup(yyS[yypt-1].sym) - if yyS[yypt-1].sym.Type == LLAB && yyS[yypt-1].sym.Value != int64(asm.PC) { - yyerror("redeclaration of %s", yyS[yypt-1].sym.Labelname) - } - yyS[yypt-1].sym.Type = LLAB - yyS[yypt-1].sym.Value = int64(asm.PC) + stmtline = asm.Lineno } - case 5: - //line a.y:85 + case 4: + yyDollar = yyS[yypt-2 : yypt+1] + //line a.y:79 { - yyS[yypt-3].sym.Type = LVAR - yyS[yypt-3].sym.Value = yyS[yypt-1].lval + yyDollar[1].sym = asm.LabelLookup(yyDollar[1].sym) + if yyDollar[1].sym.Type == LLAB && yyDollar[1].sym.Value != int64(asm.PC) { + yyerror("redeclaration of %s", yyDollar[1].sym.Labelname) + } + yyDollar[1].sym.Type = LLAB + yyDollar[1].sym.Value = int64(asm.PC) } case 6: - //line a.y:90 + yyDollar = yyS[yypt-4 : yypt+1] + //line a.y:89 { - if yyS[yypt-3].sym.Value != yyS[yypt-1].lval { - yyerror("redeclaration of %s", yyS[yypt-3].sym.Name) - } - yyS[yypt-3].sym.Value = yyS[yypt-1].lval + yyDollar[1].sym.Type = LVAR + yyDollar[1].sym.Value = yyDollar[3].lval } case 7: - //line a.y:97 + yyDollar = yyS[yypt-4 : yypt+1] + //line a.y:94 { - nosched = int(yyS[yypt-1].lval) + if yyDollar[1].sym.Value != yyDollar[3].lval { + yyerror("redeclaration of %s", yyDollar[1].sym.Name) + } + yyDollar[1].sym.Value = yyDollar[3].lval } - case 11: - //line a.y:109 + case 8: + yyDollar = yyS[yypt-2 : yypt+1] + //line a.y:101 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + nosched = int(yyDollar[1].lval) } case 12: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:113 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 13: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:117 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 14: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:121 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 15: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:125 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 16: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:129 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 17: - //line a.y:136 + yyDollar = yyS[yypt-4 : yypt+1] + //line a.y:133 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 18: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:140 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 19: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:144 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 20: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:148 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 21: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:152 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 22: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:156 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 23: - //line a.y:163 + yyDollar = yyS[yypt-4 : yypt+1] + //line a.y:160 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 24: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:167 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 25: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:171 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 26: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:175 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 27: - //line a.y:182 + yyDollar = yyS[yypt-4 : yypt+1] + //line a.y:179 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 28: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:186 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 29: - //line a.y:193 + yyDollar = yyS[yypt-4 : yypt+1] + //line a.y:190 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 30: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:197 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 31: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:201 { - outgcode(int(yyS[yypt-5].lval), &yyS[yypt-4].addr, 0, &yyS[yypt-2].addr, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 32: + yyDollar = yyS[yypt-6 : yypt+1] //line a.y:205 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outgcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr, &yyDollar[6].addr) } case 33: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:209 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, int(yyS[yypt-0].lval), &nullgen) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 34: - //line a.y:216 + yyDollar = yyS[yypt-4 : yypt+1] + //line a.y:213 { - outgcode(int(yyS[yypt-5].lval), &yyS[yypt-4].addr, 0, &yyS[yypt-2].addr, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].lval), &nullgen) } case 35: + yyDollar = yyS[yypt-6 : yypt+1] //line a.y:220 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outgcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr, &yyDollar[6].addr) } case 36: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:224 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 37: - //line a.y:234 + yyDollar = yyS[yypt-4 : yypt+1] + //line a.y:228 { - outcode(int(yyS[yypt-5].lval), &yyS[yypt-4].addr, int(yyS[yypt-2].lval), &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 38: + yyDollar = yyS[yypt-6 : yypt+1] //line a.y:238 { - outcode(int(yyS[yypt-5].lval), &yyS[yypt-4].addr, int(yyS[yypt-2].lval), &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].lval), &yyDollar[6].addr) } case 39: + yyDollar = yyS[yypt-6 : yypt+1] //line a.y:242 { - outgcode(int(yyS[yypt-5].lval), &yyS[yypt-4].addr, 0, &yyS[yypt-2].addr, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].lval), &yyDollar[6].addr) } case 40: + yyDollar = yyS[yypt-6 : yypt+1] //line a.y:246 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outgcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr, &yyDollar[6].addr) } case 41: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:250 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 42: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:254 { - outcode(int(yyS[yypt-5].lval), &yyS[yypt-4].addr, int(yyS[yypt-2].lval), &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 43: + yyDollar = yyS[yypt-6 : yypt+1] //line a.y:258 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].lval), &yyDollar[6].addr) } case 44: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:262 { - outcode(int(yyS[yypt-5].lval), &yyS[yypt-4].addr, int(yyS[yypt-2].lval), &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 45: + yyDollar = yyS[yypt-6 : yypt+1] //line a.y:266 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].lval), &yyDollar[6].addr) } case 46: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:270 { - outcode(int(yyS[yypt-5].lval), &yyS[yypt-4].addr, int(yyS[yypt-2].lval), &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 47: + yyDollar = yyS[yypt-6 : yypt+1] //line a.y:274 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].lval), &yyDollar[6].addr) } case 48: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:278 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 49: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:282 { - outcode(int(yyS[yypt-1].lval), &yyS[yypt-0].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 50: - //line a.y:289 + yyDollar = yyS[yypt-2 : yypt+1] + //line a.y:286 { - outcode(int(yyS[yypt-5].lval), &yyS[yypt-4].addr, int(yyS[yypt-2].lval), &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[2].addr) } case 51: - //line a.y:296 + yyDollar = yyS[yypt-6 : yypt+1] + //line a.y:293 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].lval), &yyDollar[6].addr) } case 52: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:300 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 53: - //line a.y:307 + yyDollar = yyS[yypt-4 : yypt+1] + //line a.y:304 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, int(yyS[yypt-0].addr.Reg), &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 54: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:311 { - outcode(int(yyS[yypt-5].lval), &yyS[yypt-4].addr, int(yyS[yypt-2].lval), &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].addr.Reg), &yyDollar[4].addr) } case 55: - //line a.y:319 + yyDollar = yyS[yypt-6 : yypt+1] + //line a.y:315 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].lval), &yyDollar[6].addr) } case 56: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:323 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 57: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:327 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 58: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:331 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 59: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:335 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 60: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:339 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 61: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:343 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 62: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:347 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 63: - //line a.y:356 + yyDollar = yyS[yypt-4 : yypt+1] + //line a.y:351 { - outcode(int(yyS[yypt-1].lval), &nullgen, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 64: + yyDollar = yyS[yypt-2 : yypt+1] //line a.y:360 { - outcode(int(yyS[yypt-1].lval), &nullgen, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &nullgen, 0, &yyDollar[2].addr) } case 65: + yyDollar = yyS[yypt-2 : yypt+1] //line a.y:364 { - outcode(int(yyS[yypt-3].lval), &nullgen, 0, &yyS[yypt-1].addr) + outcode(int(yyDollar[1].lval), &nullgen, 0, &yyDollar[2].addr) } case 66: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:368 { - outcode(int(yyS[yypt-2].lval), &nullgen, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &nullgen, 0, &yyDollar[3].addr) } case 67: + yyDollar = yyS[yypt-3 : yypt+1] //line a.y:372 { - outcode(int(yyS[yypt-2].lval), &nullgen, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &nullgen, 0, &yyDollar[3].addr) } case 68: + yyDollar = yyS[yypt-3 : yypt+1] //line a.y:376 { - outcode(int(yyS[yypt-4].lval), &nullgen, 0, &yyS[yypt-1].addr) + outcode(int(yyDollar[1].lval), &nullgen, 0, &yyDollar[3].addr) } case 69: + yyDollar = yyS[yypt-5 : yypt+1] //line a.y:380 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &nullgen, 0, &yyDollar[4].addr) } case 70: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:384 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 71: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:388 { - outcode(int(yyS[yypt-5].lval), &yyS[yypt-4].addr, 0, &yyS[yypt-1].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 72: + yyDollar = yyS[yypt-6 : yypt+1] //line a.y:392 { - outcode(int(yyS[yypt-3].lval), &nullgen, int(yyS[yypt-2].lval), &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[5].addr) } case 73: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:396 { - outcode(int(yyS[yypt-3].lval), &nullgen, int(yyS[yypt-2].lval), &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &nullgen, int(yyDollar[2].lval), &yyDollar[4].addr) } case 74: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:400 { - outcode(int(yyS[yypt-5].lval), &nullgen, int(yyS[yypt-4].lval), &yyS[yypt-1].addr) + outcode(int(yyDollar[1].lval), &nullgen, int(yyDollar[2].lval), &yyDollar[4].addr) } case 75: + yyDollar = yyS[yypt-6 : yypt+1] //line a.y:404 { - var g obj.Addr - g = nullgen - g.Type = obj.TYPE_CONST - g.Offset = yyS[yypt-4].lval - outcode(int(yyS[yypt-5].lval), &g, int(REG_R0+yyS[yypt-2].lval), &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &nullgen, int(yyDollar[2].lval), &yyDollar[5].addr) } case 76: - //line a.y:412 + yyDollar = yyS[yypt-6 : yypt+1] + //line a.y:408 { var g obj.Addr g = nullgen g.Type = obj.TYPE_CONST - g.Offset = yyS[yypt-4].lval - outcode(int(yyS[yypt-5].lval), &g, int(REG_R0+yyS[yypt-2].lval), &yyS[yypt-0].addr) + g.Offset = yyDollar[2].lval + outcode(int(yyDollar[1].lval), &g, int(REG_R0+yyDollar[4].lval), &yyDollar[6].addr) } case 77: - //line a.y:420 + yyDollar = yyS[yypt-6 : yypt+1] + //line a.y:416 { var g obj.Addr g = nullgen g.Type = obj.TYPE_CONST - g.Offset = yyS[yypt-6].lval - outcode(int(yyS[yypt-7].lval), &g, int(REG_R0+yyS[yypt-4].lval), &yyS[yypt-1].addr) + g.Offset = yyDollar[2].lval + outcode(int(yyDollar[1].lval), &g, int(REG_R0+yyDollar[4].lval), &yyDollar[6].addr) } case 78: - //line a.y:431 + yyDollar = yyS[yypt-8 : yypt+1] + //line a.y:424 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, int(yyS[yypt-0].lval), &nullgen) + var g obj.Addr + g = nullgen + g.Type = obj.TYPE_CONST + g.Offset = yyDollar[2].lval + outcode(int(yyDollar[1].lval), &g, int(REG_R0+yyDollar[4].lval), &yyDollar[7].addr) } case 79: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:435 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, int(yyS[yypt-0].lval), &nullgen) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].lval), &nullgen) } case 80: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:439 { - outcode(int(yyS[yypt-2].lval), &yyS[yypt-1].addr, 0, &nullgen) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].lval), &nullgen) } case 81: + yyDollar = yyS[yypt-3 : yypt+1] //line a.y:443 { - outcode(int(yyS[yypt-1].lval), &nullgen, 0, &nullgen) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &nullgen) } case 82: - //line a.y:450 + yyDollar = yyS[yypt-2 : yypt+1] + //line a.y:447 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &nullgen, 0, &nullgen) } case 83: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:454 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 84: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:458 { - outcode(int(yyS[yypt-5].lval), &yyS[yypt-4].addr, int(yyS[yypt-2].addr.Reg), &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 85: + yyDollar = yyS[yypt-6 : yypt+1] //line a.y:462 { - outgcode(int(yyS[yypt-7].lval), &yyS[yypt-6].addr, int(yyS[yypt-4].addr.Reg), &yyS[yypt-2].addr, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].addr.Reg), &yyDollar[6].addr) } case 86: + yyDollar = yyS[yypt-8 : yypt+1] //line a.y:466 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outgcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].addr.Reg), &yyDollar[6].addr, &yyDollar[8].addr) } case 87: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:470 { - outcode(int(yyS[yypt-5].lval), &yyS[yypt-4].addr, int(yyS[yypt-0].addr.Reg), &yyS[yypt-2].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 88: - //line a.y:477 + yyDollar = yyS[yypt-6 : yypt+1] + //line a.y:474 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[6].addr.Reg), &yyDollar[4].addr) } case 89: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:481 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 90: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:485 { - outcode(int(yyS[yypt-5].lval), &yyS[yypt-4].addr, int(yyS[yypt-0].addr.Reg), &yyS[yypt-2].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 91: + yyDollar = yyS[yypt-6 : yypt+1] //line a.y:489 { - outcode(int(yyS[yypt-5].lval), &yyS[yypt-4].addr, int(yyS[yypt-0].addr.Reg), &yyS[yypt-2].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[6].addr.Reg), &yyDollar[4].addr) } case 92: - //line a.y:496 + yyDollar = yyS[yypt-6 : yypt+1] + //line a.y:493 { - outgcode(int(yyS[yypt-7].lval), &yyS[yypt-6].addr, int(yyS[yypt-4].addr.Reg), &yyS[yypt-2].addr, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[6].addr.Reg), &yyDollar[4].addr) } case 93: + yyDollar = yyS[yypt-8 : yypt+1] //line a.y:500 { - outgcode(int(yyS[yypt-7].lval), &yyS[yypt-6].addr, int(yyS[yypt-4].addr.Reg), &yyS[yypt-2].addr, &yyS[yypt-0].addr) + outgcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].addr.Reg), &yyDollar[6].addr, &yyDollar[8].addr) } case 94: + yyDollar = yyS[yypt-8 : yypt+1] //line a.y:504 { - outgcode(int(yyS[yypt-7].lval), &yyS[yypt-6].addr, int(yyS[yypt-4].addr.Reg), &yyS[yypt-2].addr, &yyS[yypt-0].addr) + outgcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].addr.Reg), &yyDollar[6].addr, &yyDollar[8].addr) } case 95: + yyDollar = yyS[yypt-8 : yypt+1] //line a.y:508 { - outgcode(int(yyS[yypt-7].lval), &yyS[yypt-6].addr, int(yyS[yypt-4].addr.Reg), &yyS[yypt-2].addr, &yyS[yypt-0].addr) + outgcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].addr.Reg), &yyDollar[6].addr, &yyDollar[8].addr) } case 96: - //line a.y:515 + yyDollar = yyS[yypt-8 : yypt+1] + //line a.y:512 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outgcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].addr.Reg), &yyDollar[6].addr, &yyDollar[8].addr) } case 97: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:519 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 98: - //line a.y:527 + yyDollar = yyS[yypt-4 : yypt+1] + //line a.y:523 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 99: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:531 { - outgcode(int(yyS[yypt-5].lval), &yyS[yypt-4].addr, 0, &yyS[yypt-2].addr, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 100: + yyDollar = yyS[yypt-6 : yypt+1] //line a.y:535 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outgcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr, &yyDollar[6].addr) } case 101: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:539 { - outgcode(int(yyS[yypt-5].lval), &yyS[yypt-4].addr, 0, &yyS[yypt-2].addr, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 102: + yyDollar = yyS[yypt-6 : yypt+1] //line a.y:543 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outgcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr, &yyDollar[6].addr) } case 103: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:547 { - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 104: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:551 { - outcode(int(yyS[yypt-1].lval), &yyS[yypt-0].addr, 0, &nullgen) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 105: - //line a.y:558 + yyDollar = yyS[yypt-2 : yypt+1] + //line a.y:555 { - outcode(int(yyS[yypt-1].lval), &nullgen, 0, &nullgen) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &nullgen) } case 106: + yyDollar = yyS[yypt-2 : yypt+1] //line a.y:562 { - outcode(int(yyS[yypt-2].lval), &yyS[yypt-1].addr, 0, &nullgen) + outcode(int(yyDollar[1].lval), &nullgen, 0, &nullgen) } case 107: + yyDollar = yyS[yypt-3 : yypt+1] //line a.y:566 { - outcode(int(yyS[yypt-2].lval), &yyS[yypt-1].addr, 0, &nullgen) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &nullgen) } case 108: + yyDollar = yyS[yypt-3 : yypt+1] //line a.y:570 { - outcode(int(yyS[yypt-2].lval), &nullgen, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &nullgen) } case 109: + yyDollar = yyS[yypt-3 : yypt+1] //line a.y:574 { - outcode(int(yyS[yypt-2].lval), &nullgen, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &nullgen, 0, &yyDollar[3].addr) } case 110: + yyDollar = yyS[yypt-3 : yypt+1] //line a.y:578 { - outcode(int(yyS[yypt-1].lval), &yyS[yypt-0].addr, 0, &nullgen) + outcode(int(yyDollar[1].lval), &nullgen, 0, &yyDollar[3].addr) } case 111: - //line a.y:585 + yyDollar = yyS[yypt-2 : yypt+1] + //line a.y:582 { - outcode(int(yyS[yypt-2].lval), &yyS[yypt-1].addr, 0, &nullgen) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &nullgen) } case 112: + yyDollar = yyS[yypt-3 : yypt+1] //line a.y:589 { - outcode(int(yyS[yypt-2].lval), &yyS[yypt-1].addr, 0, &nullgen) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &nullgen) } case 113: - //line a.y:596 + yyDollar = yyS[yypt-3 : yypt+1] + //line a.y:593 { - if yyS[yypt-2].addr.Type != obj.TYPE_CONST || yyS[yypt-0].addr.Type != obj.TYPE_CONST { - yyerror("arguments to PCDATA must be integer constants") - } - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &nullgen) } case 114: - //line a.y:606 + yyDollar = yyS[yypt-4 : yypt+1] + //line a.y:600 { - if yyS[yypt-2].addr.Type != obj.TYPE_CONST { - yyerror("index for FUNCDATA must be integer constant") + if yyDollar[2].addr.Type != obj.TYPE_CONST || yyDollar[4].addr.Type != obj.TYPE_CONST { + yyerror("arguments to PCDATA must be integer constants") } - if yyS[yypt-0].addr.Type != obj.TYPE_MEM || (yyS[yypt-0].addr.Name != obj.NAME_EXTERN && yyS[yypt-0].addr.Name != obj.NAME_STATIC) { - yyerror("value for FUNCDATA must be symbol reference") - } - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 115: - //line a.y:619 + yyDollar = yyS[yypt-4 : yypt+1] + //line a.y:610 { - outcode(int(yyS[yypt-1].lval), &nullgen, 0, &nullgen) + if yyDollar[2].addr.Type != obj.TYPE_CONST { + yyerror("index for FUNCDATA must be integer constant") + } + if yyDollar[4].addr.Type != obj.TYPE_MEM || (yyDollar[4].addr.Name != obj.NAME_EXTERN && yyDollar[4].addr.Name != obj.NAME_STATIC) { + yyerror("value for FUNCDATA must be symbol reference") + } + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 116: - //line a.y:626 + yyDollar = yyS[yypt-2 : yypt+1] + //line a.y:623 { - asm.Settext(yyS[yypt-3].addr.Sym) - outcode(int(yyS[yypt-4].lval), &yyS[yypt-3].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &nullgen, 0, &nullgen) } case 117: - //line a.y:631 + yyDollar = yyS[yypt-5 : yypt+1] + //line a.y:630 { - asm.Settext(yyS[yypt-5].addr.Sym) - outcode(int(yyS[yypt-6].lval), &yyS[yypt-5].addr, int(yyS[yypt-3].lval), &yyS[yypt-0].addr) - if asm.Pass > 1 { - lastpc.From3.Type = obj.TYPE_CONST - lastpc.From3.Offset = yyS[yypt-3].lval - } + asm.Settext(yyDollar[2].addr.Sym) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[5].addr) } case 118: - //line a.y:643 + yyDollar = yyS[yypt-7 : yypt+1] + //line a.y:635 { - asm.Settext(yyS[yypt-2].addr.Sym) - outcode(int(yyS[yypt-3].lval), &yyS[yypt-2].addr, 0, &yyS[yypt-0].addr) - } - case 119: - //line a.y:648 - { - asm.Settext(yyS[yypt-4].addr.Sym) - outcode(int(yyS[yypt-5].lval), &yyS[yypt-4].addr, 0, &yyS[yypt-0].addr) + asm.Settext(yyDollar[2].addr.Sym) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].lval), &yyDollar[7].addr) if asm.Pass > 1 { lastpc.From3.Type = obj.TYPE_CONST - lastpc.From3.Offset = yyS[yypt-2].lval + lastpc.From3.Offset = yyDollar[4].lval } } - case 120: - //line a.y:661 + case 119: + yyDollar = yyS[yypt-4 : yypt+1] + //line a.y:647 { - outcode(int(yyS[yypt-5].lval), &yyS[yypt-4].addr, 0, &yyS[yypt-0].addr) + asm.Settext(yyDollar[2].addr.Sym) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr) + } + case 120: + yyDollar = yyS[yypt-6 : yypt+1] + //line a.y:652 + { + asm.Settext(yyDollar[2].addr.Sym) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[6].addr) if asm.Pass > 1 { lastpc.From3.Type = obj.TYPE_CONST - lastpc.From3.Offset = yyS[yypt-2].lval + lastpc.From3.Offset = yyDollar[4].lval } } case 121: - //line a.y:669 + yyDollar = yyS[yypt-6 : yypt+1] + //line a.y:665 { - outcode(int(yyS[yypt-5].lval), &yyS[yypt-4].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[6].addr) if asm.Pass > 1 { lastpc.From3.Type = obj.TYPE_CONST - lastpc.From3.Offset = yyS[yypt-2].lval + lastpc.From3.Offset = yyDollar[4].lval } } case 122: - //line a.y:677 + yyDollar = yyS[yypt-6 : yypt+1] + //line a.y:673 { - outcode(int(yyS[yypt-5].lval), &yyS[yypt-4].addr, 0, &yyS[yypt-0].addr) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[6].addr) if asm.Pass > 1 { lastpc.From3.Type = obj.TYPE_CONST - lastpc.From3.Offset = yyS[yypt-2].lval + lastpc.From3.Offset = yyDollar[4].lval } } case 123: - //line a.y:688 + yyDollar = yyS[yypt-6 : yypt+1] + //line a.y:681 { - outcode(int(yyS[yypt-1].lval), &nullgen, 0, &nullgen) + outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[6].addr) + if asm.Pass > 1 { + lastpc.From3.Type = obj.TYPE_CONST + lastpc.From3.Offset = yyDollar[4].lval + } } case 124: - //line a.y:694 + yyDollar = yyS[yypt-2 : yypt+1] + //line a.y:692 { - yyVAL.addr = nullgen - yyVAL.addr.Type = obj.TYPE_BRANCH - yyVAL.addr.Offset = yyS[yypt-3].lval + int64(asm.PC) + outcode(int(yyDollar[1].lval), &nullgen, 0, &nullgen) } case 125: - //line a.y:700 + yyDollar = yyS[yypt-4 : yypt+1] + //line a.y:698 { - yyS[yypt-1].sym = asm.LabelLookup(yyS[yypt-1].sym) yyVAL.addr = nullgen - if asm.Pass == 2 && yyS[yypt-1].sym.Type != LLAB { - yyerror("undefined label: %s", yyS[yypt-1].sym.Labelname) - } yyVAL.addr.Type = obj.TYPE_BRANCH - yyVAL.addr.Offset = yyS[yypt-1].sym.Value + yyS[yypt-0].lval + yyVAL.addr.Offset = yyDollar[1].lval + int64(asm.PC) } case 126: - //line a.y:712 + yyDollar = yyS[yypt-2 : yypt+1] + //line a.y:704 + { + yyDollar[1].sym = asm.LabelLookup(yyDollar[1].sym) + yyVAL.addr = nullgen + if asm.Pass == 2 && yyDollar[1].sym.Type != LLAB { + yyerror("undefined label: %s", yyDollar[1].sym.Labelname) + } + yyVAL.addr.Type = obj.TYPE_BRANCH + yyVAL.addr.Offset = yyDollar[1].sym.Value + yyDollar[2].lval + } + case 127: + yyDollar = yyS[yypt-1 : yypt+1] + //line a.y:716 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_REG - yyVAL.addr.Reg = int16(yyS[yypt-0].lval) + yyVAL.addr.Reg = int16(yyDollar[1].lval) } - case 127: - yyVAL.addr = yyS[yypt-0].addr case 128: yyVAL.addr = yyS[yypt-0].addr case 129: - //line a.y:724 - { - yyVAL.addr = nullgen - yyVAL.addr.Type = obj.TYPE_REG - yyVAL.addr.Reg = int16(yyS[yypt-0].lval) - } + yyVAL.addr = yyS[yypt-0].addr case 130: - //line a.y:732 + yyDollar = yyS[yypt-1 : yypt+1] + //line a.y:728 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_REG - yyVAL.addr.Reg = int16(yyS[yypt-0].lval) /* whole register */ + yyVAL.addr.Reg = int16(yyDollar[1].lval) } case 131: - //line a.y:739 + yyDollar = yyS[yypt-1 : yypt+1] + //line a.y:736 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_REG - yyVAL.addr.Reg = int16(yyS[yypt-0].lval) + yyVAL.addr.Reg = int16(yyDollar[1].lval) /* whole register */ } case 132: - //line a.y:747 + yyDollar = yyS[yypt-1 : yypt+1] + //line a.y:743 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_REG - yyVAL.addr.Reg = int16(yyS[yypt-0].lval) + yyVAL.addr.Reg = int16(yyDollar[1].lval) } case 133: - //line a.y:755 + yyDollar = yyS[yypt-1 : yypt+1] + //line a.y:751 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_REG - yyVAL.addr.Reg = int16(yyS[yypt-0].lval) + yyVAL.addr.Reg = int16(yyDollar[1].lval) } case 134: - //line a.y:761 + yyDollar = yyS[yypt-1 : yypt+1] + //line a.y:759 { - if yyS[yypt-1].lval < 0 || yyS[yypt-1].lval >= 1024 { + yyVAL.addr = nullgen + yyVAL.addr.Type = obj.TYPE_REG + yyVAL.addr.Reg = int16(yyDollar[1].lval) + } + case 135: + yyDollar = yyS[yypt-4 : yypt+1] + //line a.y:765 + { + if yyDollar[3].lval < 0 || yyDollar[3].lval >= 1024 { yyerror("SPR/DCR out of range") } yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_REG - yyVAL.addr.Reg = int16(yyS[yypt-3].lval + yyS[yypt-1].lval) + yyVAL.addr.Reg = int16(yyDollar[1].lval + yyDollar[3].lval) } - case 135: - yyVAL.addr = yyS[yypt-0].addr case 136: - //line a.y:773 - { - yyVAL.addr = nullgen - yyVAL.addr.Type = obj.TYPE_REG - yyVAL.addr.Reg = int16(yyS[yypt-0].lval) - } + yyVAL.addr = yyS[yypt-0].addr case 137: - //line a.y:781 + yyDollar = yyS[yypt-1 : yypt+1] + //line a.y:777 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_REG - yyVAL.addr.Reg = int16(yyS[yypt-0].lval) + yyVAL.addr.Reg = int16(yyDollar[1].lval) } case 138: - //line a.y:787 + yyDollar = yyS[yypt-1 : yypt+1] + //line a.y:785 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_REG - yyVAL.addr.Reg = int16(REG_F0 + yyS[yypt-1].lval) + yyVAL.addr.Reg = int16(yyDollar[1].lval) } case 139: - //line a.y:795 + yyDollar = yyS[yypt-4 : yypt+1] + //line a.y:791 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_REG - yyVAL.addr.Reg = int16(yyS[yypt-0].lval) + yyVAL.addr.Reg = int16(REG_F0 + yyDollar[3].lval) } case 140: - //line a.y:801 + yyDollar = yyS[yypt-1 : yypt+1] + //line a.y:799 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_REG - yyVAL.addr.Reg = int16(REG_C0 + yyS[yypt-1].lval) + yyVAL.addr.Reg = int16(yyDollar[1].lval) } case 141: - //line a.y:809 + yyDollar = yyS[yypt-4 : yypt+1] + //line a.y:805 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_REG - yyVAL.addr.Reg = int16(yyS[yypt-0].lval) + yyVAL.addr.Reg = int16(REG_C0 + yyDollar[3].lval) } case 142: - //line a.y:817 + yyDollar = yyS[yypt-1 : yypt+1] + //line a.y:813 + { + yyVAL.addr = nullgen + yyVAL.addr.Type = obj.TYPE_REG + yyVAL.addr.Reg = int16(yyDollar[1].lval) + } + case 143: + yyDollar = yyS[yypt-3 : yypt+1] + //line a.y:821 { var mb, me int var v uint32 yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_CONST - mb = int(yyS[yypt-2].lval) - me = int(yyS[yypt-0].lval) + mb = int(yyDollar[1].lval) + me = int(yyDollar[3].lval) if mb < 0 || mb > 31 || me < 0 || me > 31 { yyerror("illegal mask start/end value(s)") mb = 0 @@ -1514,153 +1684,170 @@ yydefault: } yyVAL.addr.Offset = int64(v) } - case 143: - //line a.y:840 - { - yyVAL.addr = nullgen - yyVAL.addr.Type = obj.TYPE_TEXTSIZE - yyVAL.addr.Offset = int64(yyS[yypt-0].lval) - yyVAL.addr.U.Argsize = obj.ArgsSizeUnknown - } case 144: - //line a.y:847 + yyDollar = yyS[yypt-1 : yypt+1] + //line a.y:844 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_TEXTSIZE - yyVAL.addr.Offset = -int64(yyS[yypt-0].lval) + yyVAL.addr.Offset = int64(yyDollar[1].lval) yyVAL.addr.U.Argsize = obj.ArgsSizeUnknown } case 145: - //line a.y:854 + yyDollar = yyS[yypt-2 : yypt+1] + //line a.y:851 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_TEXTSIZE - yyVAL.addr.Offset = int64(yyS[yypt-2].lval) - yyVAL.addr.U.Argsize = int32(yyS[yypt-0].lval) + yyVAL.addr.Offset = -int64(yyDollar[2].lval) + yyVAL.addr.U.Argsize = obj.ArgsSizeUnknown } case 146: - //line a.y:861 + yyDollar = yyS[yypt-3 : yypt+1] + //line a.y:858 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_TEXTSIZE - yyVAL.addr.Offset = -int64(yyS[yypt-2].lval) - yyVAL.addr.U.Argsize = int32(yyS[yypt-0].lval) + yyVAL.addr.Offset = int64(yyDollar[1].lval) + yyVAL.addr.U.Argsize = int32(yyDollar[3].lval) } case 147: - //line a.y:870 + yyDollar = yyS[yypt-4 : yypt+1] + //line a.y:865 { - yyVAL.addr = yyS[yypt-0].addr - yyVAL.addr.Type = obj.TYPE_ADDR + yyVAL.addr = nullgen + yyVAL.addr.Type = obj.TYPE_TEXTSIZE + yyVAL.addr.Offset = -int64(yyDollar[2].lval) + yyVAL.addr.U.Argsize = int32(yyDollar[4].lval) } case 148: - //line a.y:875 + yyDollar = yyS[yypt-2 : yypt+1] + //line a.y:874 + { + yyVAL.addr = yyDollar[2].addr + yyVAL.addr.Type = obj.TYPE_ADDR + } + case 149: + yyDollar = yyS[yypt-2 : yypt+1] + //line a.y:879 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_SCONST - yyVAL.addr.U.Sval = yyS[yypt-0].sval - } - case 149: - //line a.y:883 - { - yyVAL.addr = nullgen - yyVAL.addr.Type = obj.TYPE_FCONST - yyVAL.addr.U.Dval = yyS[yypt-0].dval + yyVAL.addr.U.Sval = yyDollar[2].sval } case 150: - //line a.y:889 + yyDollar = yyS[yypt-2 : yypt+1] + //line a.y:887 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_FCONST - yyVAL.addr.U.Dval = -yyS[yypt-0].dval + yyVAL.addr.U.Dval = yyDollar[2].dval } case 151: - //line a.y:896 + yyDollar = yyS[yypt-3 : yypt+1] + //line a.y:893 + { + yyVAL.addr = nullgen + yyVAL.addr.Type = obj.TYPE_FCONST + yyVAL.addr.U.Dval = -yyDollar[3].dval + } + case 152: + yyDollar = yyS[yypt-2 : yypt+1] + //line a.y:900 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_CONST - yyVAL.addr.Offset = yyS[yypt-0].lval + yyVAL.addr.Offset = yyDollar[2].lval } - case 152: - yyVAL.lval = yyS[yypt-0].lval case 153: - //line a.y:905 + yyVAL.lval = yyS[yypt-0].lval + case 154: + yyDollar = yyS[yypt-4 : yypt+1] + //line a.y:909 { if yyVAL.lval < 0 || yyVAL.lval >= NREG { print("register value out of range\n") } - yyVAL.lval = REG_R0 + yyS[yypt-1].lval - } - case 154: - //line a.y:914 - { - yyVAL.addr = nullgen - yyVAL.addr.Type = obj.TYPE_MEM - yyVAL.addr.Reg = int16(yyS[yypt-1].lval) - yyVAL.addr.Offset = 0 + yyVAL.lval = REG_R0 + yyDollar[3].lval } case 155: - //line a.y:921 + yyDollar = yyS[yypt-3 : yypt+1] + //line a.y:918 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_MEM - yyVAL.addr.Reg = int16(yyS[yypt-3].lval) - yyVAL.addr.Scale = int8(yyS[yypt-1].lval) + yyVAL.addr.Reg = int16(yyDollar[2].lval) yyVAL.addr.Offset = 0 } case 156: - yyVAL.addr = yyS[yypt-0].addr - case 157: - //line a.y:932 + yyDollar = yyS[yypt-5 : yypt+1] + //line a.y:925 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_MEM - yyVAL.addr.Reg = int16(yyS[yypt-1].lval) - yyVAL.addr.Offset = yyS[yypt-3].lval + yyVAL.addr.Reg = int16(yyDollar[2].lval) + yyVAL.addr.Scale = int8(yyDollar[4].lval) + yyVAL.addr.Offset = 0 } + case 157: + yyVAL.addr = yyS[yypt-0].addr case 158: - //line a.y:941 + yyDollar = yyS[yypt-4 : yypt+1] + //line a.y:936 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_MEM - yyVAL.addr.Name = int8(yyS[yypt-1].lval) - yyVAL.addr.Sym = nil - yyVAL.addr.Offset = yyS[yypt-3].lval + yyVAL.addr.Reg = int16(yyDollar[3].lval) + yyVAL.addr.Offset = yyDollar[1].lval } case 159: - //line a.y:949 + yyDollar = yyS[yypt-4 : yypt+1] + //line a.y:945 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_MEM - yyVAL.addr.Name = int8(yyS[yypt-1].lval) - yyVAL.addr.Sym = obj.Linklookup(asm.Ctxt, yyS[yypt-4].sym.Name, 0) - yyVAL.addr.Offset = yyS[yypt-3].lval + yyVAL.addr.Name = int8(yyDollar[3].lval) + yyVAL.addr.Sym = nil + yyVAL.addr.Offset = yyDollar[1].lval } case 160: - //line a.y:957 + yyDollar = yyS[yypt-5 : yypt+1] + //line a.y:953 + { + yyVAL.addr = nullgen + yyVAL.addr.Type = obj.TYPE_MEM + yyVAL.addr.Name = int8(yyDollar[4].lval) + yyVAL.addr.Sym = obj.Linklookup(asm.Ctxt, yyDollar[1].sym.Name, 0) + yyVAL.addr.Offset = yyDollar[2].lval + } + case 161: + yyDollar = yyS[yypt-7 : yypt+1] + //line a.y:961 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_MEM yyVAL.addr.Name = obj.NAME_STATIC - yyVAL.addr.Sym = obj.Linklookup(asm.Ctxt, yyS[yypt-6].sym.Name, 0) - yyVAL.addr.Offset = yyS[yypt-3].lval + yyVAL.addr.Sym = obj.Linklookup(asm.Ctxt, yyDollar[1].sym.Name, 0) + yyVAL.addr.Offset = yyDollar[4].lval } - case 163: - //line a.y:969 + case 164: + yyDollar = yyS[yypt-0 : yypt+1] + //line a.y:973 { yyVAL.lval = 0 } - case 164: - //line a.y:973 - { - yyVAL.lval = yyS[yypt-0].lval - } case 165: + yyDollar = yyS[yypt-2 : yypt+1] //line a.y:977 { - yyVAL.lval = -yyS[yypt-0].lval + yyVAL.lval = yyDollar[2].lval } case 166: - yyVAL.lval = yyS[yypt-0].lval + yyDollar = yyS[yypt-2 : yypt+1] + //line a.y:981 + { + yyVAL.lval = -yyDollar[2].lval + } case 167: yyVAL.lval = yyS[yypt-0].lval case 168: @@ -1668,81 +1855,98 @@ yydefault: case 169: yyVAL.lval = yyS[yypt-0].lval case 170: - //line a.y:989 - { - yyVAL.lval = yyS[yypt-0].sym.Value - } + yyVAL.lval = yyS[yypt-0].lval case 171: + yyDollar = yyS[yypt-1 : yypt+1] //line a.y:993 { - yyVAL.lval = -yyS[yypt-0].lval + yyVAL.lval = yyDollar[1].sym.Value } case 172: + yyDollar = yyS[yypt-2 : yypt+1] //line a.y:997 { - yyVAL.lval = yyS[yypt-0].lval + yyVAL.lval = -yyDollar[2].lval } case 173: + yyDollar = yyS[yypt-2 : yypt+1] //line a.y:1001 { - yyVAL.lval = ^yyS[yypt-0].lval + yyVAL.lval = yyDollar[2].lval } case 174: + yyDollar = yyS[yypt-2 : yypt+1] //line a.y:1005 { - yyVAL.lval = yyS[yypt-1].lval + yyVAL.lval = ^yyDollar[2].lval } case 175: - yyVAL.lval = yyS[yypt-0].lval - case 176: - //line a.y:1012 + yyDollar = yyS[yypt-3 : yypt+1] + //line a.y:1009 { - yyVAL.lval = yyS[yypt-2].lval + yyS[yypt-0].lval + yyVAL.lval = yyDollar[2].lval } + case 176: + yyVAL.lval = yyS[yypt-0].lval case 177: + yyDollar = yyS[yypt-3 : yypt+1] //line a.y:1016 { - yyVAL.lval = yyS[yypt-2].lval - yyS[yypt-0].lval + yyVAL.lval = yyDollar[1].lval + yyDollar[3].lval } case 178: + yyDollar = yyS[yypt-3 : yypt+1] //line a.y:1020 { - yyVAL.lval = yyS[yypt-2].lval * yyS[yypt-0].lval + yyVAL.lval = yyDollar[1].lval - yyDollar[3].lval } case 179: + yyDollar = yyS[yypt-3 : yypt+1] //line a.y:1024 { - yyVAL.lval = yyS[yypt-2].lval / yyS[yypt-0].lval + yyVAL.lval = yyDollar[1].lval * yyDollar[3].lval } case 180: + yyDollar = yyS[yypt-3 : yypt+1] //line a.y:1028 { - yyVAL.lval = yyS[yypt-2].lval % yyS[yypt-0].lval + yyVAL.lval = yyDollar[1].lval / yyDollar[3].lval } case 181: + yyDollar = yyS[yypt-3 : yypt+1] //line a.y:1032 { - yyVAL.lval = yyS[yypt-3].lval << uint(yyS[yypt-0].lval) + yyVAL.lval = yyDollar[1].lval % yyDollar[3].lval } case 182: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:1036 { - yyVAL.lval = yyS[yypt-3].lval >> uint(yyS[yypt-0].lval) + yyVAL.lval = yyDollar[1].lval << uint(yyDollar[4].lval) } case 183: + yyDollar = yyS[yypt-4 : yypt+1] //line a.y:1040 { - yyVAL.lval = yyS[yypt-2].lval & yyS[yypt-0].lval + yyVAL.lval = yyDollar[1].lval >> uint(yyDollar[4].lval) } case 184: + yyDollar = yyS[yypt-3 : yypt+1] //line a.y:1044 { - yyVAL.lval = yyS[yypt-2].lval ^ yyS[yypt-0].lval + yyVAL.lval = yyDollar[1].lval & yyDollar[3].lval } case 185: + yyDollar = yyS[yypt-3 : yypt+1] //line a.y:1048 { - yyVAL.lval = yyS[yypt-2].lval | yyS[yypt-0].lval + yyVAL.lval = yyDollar[1].lval ^ yyDollar[3].lval + } + case 186: + yyDollar = yyS[yypt-3 : yypt+1] + //line a.y:1052 + { + yyVAL.lval = yyDollar[1].lval | yyDollar[3].lval } } goto yystack /* stack new state and value */