summaryrefslogtreecommitdiff
path: root/src/cmd/8a
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2013-07-18 15:38:19 -0400
committerRuss Cox <rsc@golang.org>2013-07-18 15:38:19 -0400
commite77921592506ee6fc3b2d70933010a448d609abe (patch)
tree9bb540885e9c4b6feeb01b2381b0ffd25f65fa20 /src/cmd/8a
parentd73a900230c5740dc887c01392ae711ad4a27f09 (diff)
downloadgo-e77921592506ee6fc3b2d70933010a448d609abe.tar.gz
cmd/6a, cmd/6l: make FUNCDATA work
R=ken2 CC=golang-dev https://codereview.appspot.com/11397043
Diffstat (limited to 'src/cmd/8a')
-rw-r--r--src/cmd/8a/a.y20
-rw-r--r--src/cmd/8a/lex.c1
-rw-r--r--src/cmd/8a/y.tab.c1055
-rw-r--r--src/cmd/8a/y.tab.h64
4 files changed, 593 insertions, 547 deletions
diff --git a/src/cmd/8a/a.y b/src/cmd/8a/a.y
index a9c92af03..0feadcd08 100644
--- a/src/cmd/8a/a.y
+++ b/src/cmd/8a/a.y
@@ -54,7 +54,7 @@
%left '*' '/' '%'
%token <lval> LTYPE0 LTYPE1 LTYPE2 LTYPE3 LTYPE4
%token <lval> LTYPEC LTYPED LTYPEN LTYPER LTYPET LTYPES LTYPEM LTYPEI LTYPEG LTYPEXC
-%token <lval> LTYPEX LTYPEPC LCONST LFP LPC LSB
+%token <lval> LTYPEX LTYPEPC LTYPEF LCONST LFP LPC LSB
%token <lval> LBREG LLREG LSREG LFREG LXREG
%token <dval> LFCONST
%token <sval> LSCONST LSP
@@ -63,7 +63,7 @@
%type <con2> con2
%type <gen> mem imm imm2 reg nam rel rem rim rom omem nmem
%type <gen2> nonnon nonrel nonrem rimnon rimrem remrim
-%type <gen2> spec1 spec2 spec3 spec4 spec5 spec6 spec7 spec8 spec9 spec10 spec11
+%type <gen2> spec1 spec2 spec3 spec4 spec5 spec6 spec7 spec8 spec9 spec10 spec11 spec12
%%
prog:
| prog
@@ -119,6 +119,7 @@ inst:
| LTYPEXC spec9 { outcode($1, &$2); }
| LTYPEX spec10 { outcode($1, &$2); }
| LTYPEPC spec11 { outcode($1, &$2); }
+| LTYPEF spec12 { outcode($1, &$2); }
nonnon:
{
@@ -309,12 +310,25 @@ spec10: /* PINSRD */
}
spec11: /* PCDATA */
- imm ',' imm
+ rim ',' rim
{
+ if($1.type != D_CONST || $3.type != D_CONST)
+ yyerror("arguments to PCDATA must be integer constants");
$$.from = $1;
$$.to = $3;
}
+spec12: /* FUNCDATA */
+ rim ',' rim
+ {
+ if($1.type != D_CONST)
+ yyerror("index for FUNCDATA must be integer constant");
+ if($3.type != D_EXTERN && $3.type != D_STATIC)
+ yyerror("value for FUNCDATA must be symbol reference");
+ $$.from = $1;
+ $$.to = $3;
+ }
+
rem:
reg
| mem
diff --git a/src/cmd/8a/lex.c b/src/cmd/8a/lex.c
index 45ba55592..474f965b3 100644
--- a/src/cmd/8a/lex.c
+++ b/src/cmd/8a/lex.c
@@ -800,6 +800,7 @@ struct
"XORPS", LTYPE3, AXORPS,
"USEFIELD", LTYPEN, AUSEFIELD,
"PCDATA", LTYPEPC, APCDATA,
+ "FUNCDATA", LTYPEF, AFUNCDATA,
0
};
diff --git a/src/cmd/8a/y.tab.c b/src/cmd/8a/y.tab.c
index 96a362f19..72086ec58 100644
--- a/src/cmd/8a/y.tab.c
+++ b/src/cmd/8a/y.tab.c
@@ -83,21 +83,22 @@
LTYPEXC = 272,
LTYPEX = 273,
LTYPEPC = 274,
- LCONST = 275,
- LFP = 276,
- LPC = 277,
- LSB = 278,
- LBREG = 279,
- LLREG = 280,
- LSREG = 281,
- LFREG = 282,
- LXREG = 283,
- LFCONST = 284,
- LSCONST = 285,
- LSP = 286,
- LNAME = 287,
- LLAB = 288,
- LVAR = 289
+ LTYPEF = 275,
+ LCONST = 276,
+ LFP = 277,
+ LPC = 278,
+ LSB = 279,
+ LBREG = 280,
+ LLREG = 281,
+ LSREG = 282,
+ LFREG = 283,
+ LXREG = 284,
+ LFCONST = 285,
+ LSCONST = 286,
+ LSP = 287,
+ LNAME = 288,
+ LLAB = 289,
+ LVAR = 290
};
#endif
/* Tokens. */
@@ -118,21 +119,22 @@
#define LTYPEXC 272
#define LTYPEX 273
#define LTYPEPC 274
-#define LCONST 275
-#define LFP 276
-#define LPC 277
-#define LSB 278
-#define LBREG 279
-#define LLREG 280
-#define LSREG 281
-#define LFREG 282
-#define LXREG 283
-#define LFCONST 284
-#define LSCONST 285
-#define LSP 286
-#define LNAME 287
-#define LLAB 288
-#define LVAR 289
+#define LTYPEF 275
+#define LCONST 276
+#define LFP 277
+#define LPC 278
+#define LSB 279
+#define LBREG 280
+#define LLREG 281
+#define LSREG 282
+#define LFREG 283
+#define LXREG 284
+#define LFCONST 285
+#define LSCONST 286
+#define LSP 287
+#define LNAME 288
+#define LLAB 289
+#define LVAR 290
@@ -180,7 +182,7 @@ typedef union YYSTYPE
Gen2 gen2;
}
/* Line 193 of yacc.c. */
-#line 184 "y.tab.c"
+#line 186 "y.tab.c"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
@@ -193,7 +195,7 @@ typedef union YYSTYPE
/* Line 216 of yacc.c. */
-#line 197 "y.tab.c"
+#line 199 "y.tab.c"
#ifdef short
# undef short
@@ -408,20 +410,20 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 525
+#define YYLAST 546
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 53
+#define YYNTOKENS 54
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 40
+#define YYNNTS 41
/* YYNRULES -- Number of rules. */
-#define YYNRULES 133
+#define YYNRULES 135
/* YYNRULES -- Number of states. */
-#define YYNSTATES 271
+#define YYNSTATES 276
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 289
+#define YYMAXUTOK 290
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -432,16 +434,16 @@ static const yytype_uint8 yytranslate[] =
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 51, 12, 5, 2,
- 49, 50, 10, 8, 48, 9, 2, 11, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 45, 46,
- 6, 47, 7, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 52, 12, 5, 2,
+ 50, 51, 10, 8, 49, 9, 2, 11, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 46, 47,
+ 6, 48, 7, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 4, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 3, 2, 52, 2, 2, 2,
+ 2, 2, 2, 2, 3, 2, 53, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -457,7 +459,8 @@ static const yytype_uint8 yytranslate[] =
2, 2, 2, 2, 2, 2, 1, 2, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45
};
#if YYDEBUG
@@ -468,68 +471,69 @@ static const yytype_uint16 yyprhs[] =
0, 0, 3, 4, 5, 9, 10, 15, 16, 21,
23, 26, 29, 33, 37, 40, 43, 46, 49, 52,
55, 58, 61, 64, 67, 70, 73, 76, 79, 82,
- 85, 88, 89, 91, 95, 99, 102, 104, 107, 109,
- 112, 114, 118, 124, 128, 134, 137, 139, 142, 144,
- 146, 150, 156, 160, 166, 169, 171, 175, 179, 185,
- 191, 197, 201, 203, 205, 207, 209, 212, 215, 217,
- 219, 221, 223, 225, 230, 233, 236, 238, 240, 242,
- 244, 246, 248, 251, 254, 257, 260, 265, 271, 275,
- 278, 280, 283, 287, 292, 294, 296, 298, 303, 308,
- 315, 325, 335, 339, 343, 348, 354, 363, 365, 372,
- 378, 386, 387, 390, 393, 395, 397, 399, 401, 403,
- 406, 409, 412, 416, 418, 422, 426, 430, 434, 438,
- 443, 448, 452, 456
+ 85, 88, 91, 92, 94, 98, 102, 105, 107, 110,
+ 112, 115, 117, 121, 127, 131, 137, 140, 142, 145,
+ 147, 149, 153, 159, 163, 169, 172, 174, 178, 182,
+ 188, 194, 200, 204, 208, 210, 212, 214, 216, 219,
+ 222, 224, 226, 228, 230, 232, 237, 240, 243, 245,
+ 247, 249, 251, 253, 255, 258, 261, 264, 267, 272,
+ 278, 282, 285, 287, 290, 294, 299, 301, 303, 305,
+ 310, 315, 322, 332, 342, 346, 350, 355, 361, 370,
+ 372, 379, 385, 393, 394, 397, 400, 402, 404, 406,
+ 408, 410, 413, 416, 419, 423, 425, 429, 433, 437,
+ 441, 445, 450, 455, 459, 463
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int8 yyrhs[] =
{
- 54, 0, -1, -1, -1, 54, 55, 56, -1, -1,
- 43, 45, 57, 56, -1, -1, 42, 45, 58, 56,
- -1, 46, -1, 59, 46, -1, 1, 46, -1, 42,
- 47, 92, -1, 44, 47, 92, -1, 13, 60, -1,
- 14, 64, -1, 15, 63, -1, 16, 61, -1, 17,
- 62, -1, 21, 65, -1, 19, 66, -1, 22, 67,
- -1, 18, 68, -1, 20, 69, -1, 23, 70, -1,
- 24, 71, -1, 25, 72, -1, 26, 73, -1, 27,
- 74, -1, 28, 75, -1, 29, 76, -1, -1, 48,
- -1, 79, 48, 77, -1, 77, 48, 79, -1, 79,
- 48, -1, 79, -1, 48, 77, -1, 77, -1, 48,
- 80, -1, 80, -1, 82, 48, 80, -1, 88, 11,
- 91, 48, 82, -1, 85, 48, 83, -1, 85, 48,
- 91, 48, 83, -1, 48, 78, -1, 78, -1, 10,
- 88, -1, 60, -1, 64, -1, 79, 48, 77, -1,
- 79, 48, 77, 45, 35, -1, 79, 48, 77, -1,
- 79, 48, 77, 45, 36, -1, 79, 48, -1, 79,
- -1, 79, 48, 77, -1, 85, 48, 82, -1, 85,
- 48, 91, 48, 82, -1, 81, 48, 77, 48, 91,
- -1, 82, 48, 77, 48, 81, -1, 82, 48, 82,
- -1, 81, -1, 85, -1, 80, -1, 87, -1, 10,
- 81, -1, 10, 86, -1, 81, -1, 86, -1, 82,
- -1, 77, -1, 82, -1, 91, 49, 32, 50, -1,
- 42, 89, -1, 43, 89, -1, 34, -1, 37, -1,
- 35, -1, 38, -1, 41, -1, 36, -1, 51, 91,
- -1, 51, 88, -1, 51, 40, -1, 51, 39, -1,
- 51, 49, 39, 50, -1, 51, 49, 9, 39, 50,
- -1, 51, 9, 39, -1, 51, 84, -1, 30, -1,
- 9, 30, -1, 30, 9, 30, -1, 9, 30, 9,
- 30, -1, 86, -1, 87, -1, 91, -1, 91, 49,
- 35, 50, -1, 91, 49, 41, 50, -1, 91, 49,
- 35, 10, 91, 50, -1, 91, 49, 35, 50, 49,
- 35, 10, 91, 50, -1, 91, 49, 35, 50, 49,
- 36, 10, 91, 50, -1, 49, 35, 50, -1, 49,
- 41, 50, -1, 91, 49, 36, 50, -1, 49, 35,
- 10, 91, 50, -1, 49, 35, 50, 49, 35, 10,
- 91, 50, -1, 88, -1, 88, 49, 35, 10, 91,
- 50, -1, 42, 89, 49, 90, 50, -1, 42, 6,
- 7, 89, 49, 33, 50, -1, -1, 8, 91, -1,
- 9, 91, -1, 33, -1, 41, -1, 31, -1, 30,
- -1, 44, -1, 9, 91, -1, 8, 91, -1, 52,
- 91, -1, 49, 92, 50, -1, 91, -1, 92, 8,
- 92, -1, 92, 9, 92, -1, 92, 10, 92, -1,
- 92, 11, 92, -1, 92, 12, 92, -1, 92, 6,
- 6, 92, -1, 92, 7, 7, 92, -1, 92, 5,
- 92, -1, 92, 4, 92, -1, 92, 3, 92, -1
+ 55, 0, -1, -1, -1, 55, 56, 57, -1, -1,
+ 44, 46, 58, 57, -1, -1, 43, 46, 59, 57,
+ -1, 47, -1, 60, 47, -1, 1, 47, -1, 43,
+ 48, 94, -1, 45, 48, 94, -1, 13, 61, -1,
+ 14, 65, -1, 15, 64, -1, 16, 62, -1, 17,
+ 63, -1, 21, 66, -1, 19, 67, -1, 22, 68,
+ -1, 18, 69, -1, 20, 70, -1, 23, 71, -1,
+ 24, 72, -1, 25, 73, -1, 26, 74, -1, 27,
+ 75, -1, 28, 76, -1, 29, 77, -1, 30, 78,
+ -1, -1, 49, -1, 81, 49, 79, -1, 79, 49,
+ 81, -1, 81, 49, -1, 81, -1, 49, 79, -1,
+ 79, -1, 49, 82, -1, 82, -1, 84, 49, 82,
+ -1, 90, 11, 93, 49, 84, -1, 87, 49, 85,
+ -1, 87, 49, 93, 49, 85, -1, 49, 80, -1,
+ 80, -1, 10, 90, -1, 61, -1, 65, -1, 81,
+ 49, 79, -1, 81, 49, 79, 46, 36, -1, 81,
+ 49, 79, -1, 81, 49, 79, 46, 37, -1, 81,
+ 49, -1, 81, -1, 81, 49, 79, -1, 87, 49,
+ 84, -1, 87, 49, 93, 49, 84, -1, 83, 49,
+ 79, 49, 93, -1, 84, 49, 79, 49, 83, -1,
+ 81, 49, 81, -1, 81, 49, 81, -1, 83, -1,
+ 87, -1, 82, -1, 89, -1, 10, 83, -1, 10,
+ 88, -1, 83, -1, 88, -1, 84, -1, 79, -1,
+ 84, -1, 93, 50, 33, 51, -1, 43, 91, -1,
+ 44, 91, -1, 35, -1, 38, -1, 36, -1, 39,
+ -1, 42, -1, 37, -1, 52, 93, -1, 52, 90,
+ -1, 52, 41, -1, 52, 40, -1, 52, 50, 40,
+ 51, -1, 52, 50, 9, 40, 51, -1, 52, 9,
+ 40, -1, 52, 86, -1, 31, -1, 9, 31, -1,
+ 31, 9, 31, -1, 9, 31, 9, 31, -1, 88,
+ -1, 89, -1, 93, -1, 93, 50, 36, 51, -1,
+ 93, 50, 42, 51, -1, 93, 50, 36, 10, 93,
+ 51, -1, 93, 50, 36, 51, 50, 36, 10, 93,
+ 51, -1, 93, 50, 36, 51, 50, 37, 10, 93,
+ 51, -1, 50, 36, 51, -1, 50, 42, 51, -1,
+ 93, 50, 37, 51, -1, 50, 36, 10, 93, 51,
+ -1, 50, 36, 51, 50, 36, 10, 93, 51, -1,
+ 90, -1, 90, 50, 36, 10, 93, 51, -1, 43,
+ 91, 50, 92, 51, -1, 43, 6, 7, 91, 50,
+ 34, 51, -1, -1, 8, 93, -1, 9, 93, -1,
+ 34, -1, 42, -1, 32, -1, 31, -1, 45, -1,
+ 9, 93, -1, 8, 93, -1, 53, 93, -1, 50,
+ 94, 51, -1, 93, -1, 94, 8, 94, -1, 94,
+ 9, 94, -1, 94, 10, 94, -1, 94, 11, 94,
+ -1, 94, 12, 94, -1, 94, 6, 6, 94, -1,
+ 94, 7, 7, 94, -1, 94, 5, 94, -1, 94,
+ 4, 94, -1, 94, 3, 94, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
@@ -538,17 +542,17 @@ static const yytype_uint16 yyrline[] =
0, 68, 68, 70, 69, 77, 76, 84, 83, 89,
90, 91, 94, 99, 105, 106, 107, 108, 109, 110,
111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
- 121, 124, 128, 135, 142, 149, 154, 161, 166, 173,
- 178, 183, 190, 198, 203, 211, 216, 221, 230, 231,
- 234, 239, 249, 254, 264, 269, 274, 281, 286, 294,
- 302, 312, 319, 320, 323, 324, 325, 329, 333, 334,
- 335, 338, 339, 342, 348, 357, 366, 371, 376, 381,
- 386, 391, 398, 404, 415, 421, 427, 433, 439, 447,
- 456, 461, 466, 475, 486, 487, 490, 496, 502, 508,
- 517, 526, 535, 540, 545, 551, 559, 569, 573, 582,
- 589, 598, 601, 605, 611, 612, 616, 619, 620, 624,
- 628, 632, 636, 642, 643, 647, 651, 655, 659, 663,
- 667, 671, 675, 679
+ 121, 122, 125, 129, 136, 143, 150, 155, 162, 167,
+ 174, 179, 184, 191, 199, 204, 212, 217, 222, 231,
+ 232, 235, 240, 250, 255, 265, 270, 275, 282, 287,
+ 295, 303, 313, 322, 333, 334, 337, 338, 339, 343,
+ 347, 348, 349, 352, 353, 356, 362, 371, 380, 385,
+ 390, 395, 400, 405, 412, 418, 429, 435, 441, 447,
+ 453, 461, 470, 475, 480, 489, 500, 501, 504, 510,
+ 516, 522, 531, 540, 549, 554, 559, 565, 573, 583,
+ 587, 596, 603, 612, 615, 619, 625, 626, 630, 633,
+ 634, 638, 642, 646, 650, 656, 657, 661, 665, 669,
+ 673, 677, 681, 685, 689, 693
};
#endif
@@ -560,14 +564,14 @@ static const char *const yytname[] =
"$end", "error", "$undefined", "'|'", "'^'", "'&'", "'<'", "'>'", "'+'",
"'-'", "'*'", "'/'", "'%'", "LTYPE0", "LTYPE1", "LTYPE2", "LTYPE3",
"LTYPE4", "LTYPEC", "LTYPED", "LTYPEN", "LTYPER", "LTYPET", "LTYPES",
- "LTYPEM", "LTYPEI", "LTYPEG", "LTYPEXC", "LTYPEX", "LTYPEPC", "LCONST",
- "LFP", "LPC", "LSB", "LBREG", "LLREG", "LSREG", "LFREG", "LXREG",
- "LFCONST", "LSCONST", "LSP", "LNAME", "LLAB", "LVAR", "':'", "';'",
- "'='", "','", "'('", "')'", "'$'", "'~'", "$accept", "prog", "@1",
+ "LTYPEM", "LTYPEI", "LTYPEG", "LTYPEXC", "LTYPEX", "LTYPEPC", "LTYPEF",
+ "LCONST", "LFP", "LPC", "LSB", "LBREG", "LLREG", "LSREG", "LFREG",
+ "LXREG", "LFCONST", "LSCONST", "LSP", "LNAME", "LLAB", "LVAR", "':'",
+ "';'", "'='", "','", "'('", "')'", "'$'", "'~'", "$accept", "prog", "@1",
"line", "@2", "@3", "inst", "nonnon", "rimrem", "remrim", "rimnon",
"nonrem", "nonrel", "spec1", "spec2", "spec3", "spec4", "spec5", "spec6",
- "spec7", "spec8", "spec9", "spec10", "spec11", "rem", "rom", "rim",
- "rel", "reg", "imm", "imm2", "con2", "mem", "omem", "nmem", "nam",
+ "spec7", "spec8", "spec9", "spec10", "spec11", "spec12", "rem", "rom",
+ "rim", "rel", "reg", "imm", "imm2", "con2", "mem", "omem", "nmem", "nam",
"offset", "pointer", "con", "expr", 0
};
#endif
@@ -581,28 +585,28 @@ static const yytype_uint16 yytoknum[] =
42, 47, 37, 258, 259, 260, 261, 262, 263, 264,
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 58, 59, 61, 44, 40,
- 41, 36, 126
+ 285, 286, 287, 288, 289, 290, 58, 59, 61, 44,
+ 40, 41, 36, 126
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 53, 54, 55, 54, 57, 56, 58, 56, 56,
- 56, 56, 59, 59, 59, 59, 59, 59, 59, 59,
- 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
- 59, 60, 60, 61, 62, 63, 63, 64, 64, 65,
- 65, 65, 66, 67, 67, 68, 68, 68, 69, 69,
- 70, 70, 71, 71, 72, 72, 72, 73, 73, 74,
- 75, 76, 77, 77, 78, 78, 78, 78, 78, 78,
- 78, 79, 79, 80, 80, 80, 81, 81, 81, 81,
- 81, 81, 82, 82, 82, 82, 82, 82, 82, 83,
- 84, 84, 84, 84, 85, 85, 86, 86, 86, 86,
- 86, 86, 86, 86, 86, 86, 86, 87, 87, 88,
- 88, 89, 89, 89, 90, 90, 90, 91, 91, 91,
- 91, 91, 91, 92, 92, 92, 92, 92, 92, 92,
- 92, 92, 92, 92
+ 0, 54, 55, 56, 55, 58, 57, 59, 57, 57,
+ 57, 57, 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 61, 61, 62, 63, 64, 64, 65, 65,
+ 66, 66, 66, 67, 68, 68, 69, 69, 69, 70,
+ 70, 71, 71, 72, 72, 73, 73, 73, 74, 74,
+ 75, 76, 77, 78, 79, 79, 80, 80, 80, 80,
+ 80, 80, 80, 81, 81, 82, 82, 82, 83, 83,
+ 83, 83, 83, 83, 84, 84, 84, 84, 84, 84,
+ 84, 85, 86, 86, 86, 86, 87, 87, 88, 88,
+ 88, 88, 88, 88, 88, 88, 88, 88, 88, 89,
+ 89, 90, 90, 91, 91, 91, 92, 92, 92, 93,
+ 93, 93, 93, 93, 93, 94, 94, 94, 94, 94,
+ 94, 94, 94, 94, 94, 94
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -611,17 +615,17 @@ static const yytype_uint8 yyr2[] =
0, 2, 0, 0, 3, 0, 4, 0, 4, 1,
2, 2, 3, 3, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 0, 1, 3, 3, 2, 1, 2, 1, 2,
- 1, 3, 5, 3, 5, 2, 1, 2, 1, 1,
- 3, 5, 3, 5, 2, 1, 3, 3, 5, 5,
- 5, 3, 1, 1, 1, 1, 2, 2, 1, 1,
- 1, 1, 1, 4, 2, 2, 1, 1, 1, 1,
- 1, 1, 2, 2, 2, 2, 4, 5, 3, 2,
- 1, 2, 3, 4, 1, 1, 1, 4, 4, 6,
- 9, 9, 3, 3, 4, 5, 8, 1, 6, 5,
- 7, 0, 2, 2, 1, 1, 1, 1, 1, 2,
- 2, 2, 3, 1, 3, 3, 3, 3, 3, 4,
- 4, 3, 3, 3
+ 2, 2, 0, 1, 3, 3, 2, 1, 2, 1,
+ 2, 1, 3, 5, 3, 5, 2, 1, 2, 1,
+ 1, 3, 5, 3, 5, 2, 1, 3, 3, 5,
+ 5, 5, 3, 3, 1, 1, 1, 1, 2, 2,
+ 1, 1, 1, 1, 1, 4, 2, 2, 1, 1,
+ 1, 1, 1, 1, 2, 2, 2, 2, 4, 5,
+ 3, 2, 1, 2, 3, 4, 1, 1, 1, 4,
+ 4, 6, 9, 9, 3, 3, 4, 5, 8, 1,
+ 6, 5, 7, 0, 2, 2, 1, 1, 1, 1,
+ 1, 2, 2, 2, 3, 1, 3, 3, 3, 3,
+ 3, 4, 4, 3, 3, 3
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -629,87 +633,89 @@ static const yytype_uint8 yyr2[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 2, 3, 1, 0, 0, 31, 0, 0, 0, 0,
- 0, 0, 31, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 9, 4, 0, 11, 32,
- 14, 0, 0, 117, 76, 78, 81, 77, 79, 80,
- 111, 118, 0, 0, 0, 15, 38, 62, 63, 94,
- 95, 107, 96, 0, 16, 71, 36, 72, 17, 0,
- 18, 0, 0, 111, 111, 0, 22, 46, 64, 68,
- 70, 69, 65, 96, 20, 0, 32, 48, 49, 23,
- 111, 0, 0, 19, 40, 0, 0, 21, 0, 24,
- 0, 25, 0, 26, 55, 27, 0, 28, 0, 29,
- 0, 30, 0, 7, 0, 5, 0, 10, 120, 119,
- 0, 0, 0, 0, 37, 0, 0, 123, 0, 121,
- 0, 0, 0, 85, 84, 0, 83, 82, 35, 0,
- 0, 66, 67, 47, 74, 75, 0, 45, 0, 0,
- 74, 39, 0, 0, 0, 0, 0, 54, 0, 0,
- 0, 0, 0, 12, 0, 13, 111, 112, 113, 0,
- 0, 102, 103, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 122, 0, 0, 0, 0, 88, 0,
- 0, 33, 34, 0, 0, 41, 0, 43, 0, 50,
- 52, 56, 57, 0, 0, 0, 61, 8, 6, 0,
- 116, 114, 115, 0, 0, 0, 133, 132, 131, 0,
- 0, 124, 125, 126, 127, 128, 0, 0, 97, 104,
- 98, 0, 86, 73, 0, 0, 90, 89, 0, 0,
- 0, 0, 0, 0, 0, 109, 105, 0, 129, 130,
- 0, 0, 0, 87, 42, 91, 0, 44, 51, 53,
- 58, 59, 60, 0, 0, 108, 99, 0, 0, 0,
- 92, 110, 0, 0, 0, 93, 106, 0, 0, 100,
- 101
+ 2, 3, 1, 0, 0, 32, 0, 0, 0, 0,
+ 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 4, 0, 11,
+ 33, 14, 0, 0, 119, 78, 80, 83, 79, 81,
+ 82, 113, 120, 0, 0, 0, 15, 39, 64, 65,
+ 96, 97, 109, 98, 0, 16, 73, 37, 74, 17,
+ 0, 18, 0, 0, 113, 113, 0, 22, 47, 66,
+ 70, 72, 71, 67, 98, 20, 0, 33, 49, 50,
+ 23, 113, 0, 0, 19, 41, 0, 0, 21, 0,
+ 24, 0, 25, 0, 26, 56, 27, 0, 28, 0,
+ 29, 0, 30, 0, 31, 0, 7, 0, 5, 0,
+ 10, 122, 121, 0, 0, 0, 0, 38, 0, 0,
+ 125, 0, 123, 0, 0, 0, 87, 86, 0, 85,
+ 84, 36, 0, 0, 68, 69, 48, 76, 77, 0,
+ 46, 0, 0, 76, 40, 0, 0, 0, 0, 0,
+ 55, 0, 0, 0, 0, 0, 0, 12, 0, 13,
+ 113, 114, 115, 0, 0, 104, 105, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 124, 0, 0,
+ 0, 0, 90, 0, 0, 34, 35, 0, 0, 42,
+ 0, 44, 0, 51, 53, 57, 58, 0, 0, 0,
+ 62, 63, 8, 6, 0, 118, 116, 117, 0, 0,
+ 0, 135, 134, 133, 0, 0, 126, 127, 128, 129,
+ 130, 0, 0, 99, 106, 100, 0, 88, 75, 0,
+ 0, 92, 91, 0, 0, 0, 0, 0, 0, 0,
+ 111, 107, 0, 131, 132, 0, 0, 0, 89, 43,
+ 93, 0, 45, 52, 54, 59, 60, 61, 0, 0,
+ 110, 101, 0, 0, 0, 94, 112, 0, 0, 0,
+ 95, 108, 0, 0, 102, 103
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 1, 3, 26, 154, 152, 27, 30, 58, 60,
- 54, 45, 83, 74, 87, 66, 79, 89, 91, 93,
- 95, 97, 99, 101, 55, 67, 56, 68, 47, 57,
- 187, 227, 48, 49, 50, 51, 113, 203, 52, 118
+ -1, 1, 3, 27, 158, 156, 28, 31, 59, 61,
+ 55, 46, 84, 75, 88, 67, 80, 90, 92, 94,
+ 96, 98, 100, 102, 104, 56, 68, 57, 69, 48,
+ 58, 191, 232, 49, 50, 51, 52, 116, 208, 53,
+ 121
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -89
+#define YYPACT_NINF -104
static const yytype_int16 yypact[] =
{
- -89, 35, -89, 213, -42, 21, 283, 306, 306, 352,
- 237, 12, 329, 390, 159, 306, 306, 306, 159, 4,
- 7, 7, 46, 5, 32, -89, -89, 51, -89, -89,
- -89, 455, 455, -89, -89, -89, -89, -89, -89, -89,
- 40, -89, 352, 421, 455, -89, -89, -89, -89, -89,
- -89, 55, 60, 406, -89, -89, 72, -89, -89, 76,
- -89, 77, 352, 40, 57, 260, -89, -89, -89, -89,
- -89, -89, -89, 79, -89, 115, 352, -89, -89, -89,
- 57, 43, 455, -89, -89, 82, 87, -89, 89, -89,
- 93, -89, 94, -89, 98, -89, 108, -89, 109, -89,
- 116, -89, 117, -89, 455, -89, 455, -89, -89, -89,
- 156, 455, 455, 132, -89, 10, 133, -89, 167, -89,
- 147, 64, 59, -89, -89, 444, -89, -89, -89, 352,
- 306, -89, -89, -89, 132, -89, 375, -89, 78, 455,
- -89, -89, 43, 152, 136, 352, 352, 352, 417, 352,
- 352, 7, 213, 505, 213, 505, 57, -89, -89, -4,
- 455, 137, -89, 455, 455, 455, 196, 197, 455, 455,
- 455, 455, 455, -89, 195, 13, 160, 162, -89, 451,
- 163, -89, -89, 165, 161, -89, 6, -89, 170, 174,
- 175, -89, -89, 173, 177, 210, -89, -89, -89, 194,
- -89, -89, -89, 226, 227, 247, 186, 513, 254, 455,
- 455, 106, 106, -89, -89, -89, 455, 455, 234, -89,
- -89, 243, -89, -89, 7, 257, 275, -89, 248, 265,
- 269, 7, 455, 4, 273, -89, -89, 297, 240, 240,
- 258, 266, 71, -89, -89, 301, 292, -89, -89, -89,
- -89, -89, -89, 276, 455, -89, -89, 313, 318, 299,
- -89, -89, 280, 455, 455, -89, -89, 284, 289, -89,
- -89
+ -104, 4, -104, 173, -26, -25, 277, 297, 297, 349,
+ 225, -14, 329, 396, 18, 297, 297, 297, 18, 171,
+ -20, 297, 297, 2, -4, 26, -104, -104, 43, -104,
+ -104, -104, 478, 478, -104, -104, -104, -104, -104, -104,
+ -104, 111, -104, 349, 402, 478, -104, -104, -104, -104,
+ -104, -104, -12, -5, 83, -104, -104, 44, -104, -104,
+ 46, -104, 49, 349, 111, 113, 245, -104, -104, -104,
+ -104, -104, -104, -104, 50, -104, 100, 349, -104, -104,
+ -104, 113, 420, 478, -104, -104, 64, 66, -104, 78,
+ -104, 80, -104, 85, -104, 89, -104, 93, -104, 98,
+ -104, 101, -104, 112, -104, 121, -104, 478, -104, 478,
+ -104, -104, -104, 153, 478, 478, 135, -104, 8, 163,
+ -104, 74, -104, 179, 52, 427, -104, -104, 445, -104,
+ -104, -104, 349, 297, -104, -104, -104, 135, -104, 381,
+ -104, 33, 478, -104, -104, 420, 186, 451, 349, 349,
+ 349, 460, 349, 349, 297, 297, 173, 172, 173, 172,
+ 113, -104, -104, 5, 478, 180, -104, 478, 478, 478,
+ 226, 224, 478, 478, 478, 478, 478, -104, 235, 36,
+ 195, 196, -104, 466, 197, -104, -104, 199, 202, -104,
+ 21, -104, 203, 211, 219, -104, -104, 217, 222, 223,
+ -104, -104, -104, -104, 229, -104, -104, -104, 240, 241,
+ 237, 232, 527, 534, 478, 478, 134, 134, -104, -104,
+ -104, 478, 478, 243, -104, -104, 248, -104, -104, -20,
+ 263, 287, -104, 249, 264, 265, -20, 478, 171, 269,
+ -104, -104, 294, 214, 214, 256, 258, 119, -104, -104,
+ 301, 280, -104, -104, -104, -104, -104, -104, 266, 478,
+ -104, -104, 308, 311, 292, -104, -104, 273, 478, 478,
+ -104, -104, 274, 278, -104, -104
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -89, -89, -89, -64, -89, -89, -89, 321, -89, -89,
- -89, 333, -89, -89, -89, -89, -89, -89, -89, -89,
- -89, -89, -89, -89, 2, 281, 9, -7, -9, -8,
- 121, -89, 14, -3, -1, 8, -33, -89, -10, -88
+ -104, -104, -104, -103, -104, -104, -104, 319, -104, -104,
+ -104, 331, -104, -104, -104, -104, -104, -104, -104, -104,
+ -104, -104, -104, -104, -104, 19, 275, -2, -6, -9,
+ -8, 115, -104, 22, 1, -1, -3, -48, -104, -10,
+ -66
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
@@ -719,150 +725,154 @@ static const yytype_int16 yypgoto[] =
#define YYTABLE_NINF -1
static const yytype_uint16 yytable[] =
{
- 73, 69, 70, 86, 28, 85, 84, 71, 46, 72,
- 98, 61, 100, 102, 46, 225, 153, 59, 155, 75,
- 160, 108, 109, 217, 90, 92, 94, 200, 88, 201,
- 134, 135, 96, 117, 119, 2, 226, 202, 34, 35,
- 36, 37, 38, 127, 114, 39, 110, 140, 111, 112,
- 105, 31, 32, 131, 40, 73, 69, 70, 53, 132,
- 161, 126, 71, 218, 72, 111, 112, 31, 32, 29,
- 133, 86, 117, 33, 141, 206, 207, 208, 114, 106,
- 211, 212, 213, 214, 215, 80, 64, 41, 197, 33,
- 198, 103, 82, 104, 117, 44, 117, 107, 178, 175,
- 176, 157, 158, 41, 120, 177, 257, 258, 82, 121,
- 183, 44, 109, 175, 176, 117, 170, 171, 172, 177,
- 128, 238, 239, 199, 129, 130, 139, 131, 138, 184,
- 142, 181, 86, 132, 188, 185, 143, 144, 193, 182,
- 192, 145, 146, 196, 31, 32, 147, 189, 190, 191,
- 204, 194, 195, 117, 117, 117, 148, 149, 117, 117,
- 117, 117, 117, 156, 150, 151, 33, 31, 32, 109,
- 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
- 41, 159, 174, 162, 183, 82, 205, 186, 44, 33,
- 164, 165, 166, 167, 168, 169, 170, 171, 172, 117,
- 117, 40, 209, 41, 210, 216, 240, 241, 43, 224,
- 219, 44, 220, 222, 4, 223, 244, 173, 228, 229,
- 230, 231, 251, 250, 252, 232, 5, 6, 7, 8,
+ 74, 70, 71, 87, 2, 86, 60, 85, 76, 73,
+ 99, 72, 101, 91, 93, 95, 137, 138, 164, 103,
+ 105, 29, 111, 112, 30, 47, 32, 33, 62, 41,
+ 230, 47, 54, 143, 120, 122, 89, 205, 123, 206,
+ 97, 157, 108, 159, 130, 124, 222, 207, 106, 34,
+ 107, 129, 231, 202, 134, 203, 74, 70, 71, 165,
+ 136, 41, 117, 42, 135, 73, 187, 72, 44, 179,
+ 180, 45, 87, 120, 109, 181, 144, 167, 168, 169,
+ 170, 171, 172, 173, 174, 175, 176, 223, 179, 180,
+ 110, 32, 125, 131, 181, 132, 117, 120, 133, 120,
+ 141, 211, 212, 213, 161, 162, 216, 217, 218, 219,
+ 220, 142, 204, 145, 34, 112, 146, 113, 120, 114,
+ 115, 114, 115, 126, 127, 177, 41, 147, 42, 148,
+ 134, 186, 188, 128, 149, 87, 45, 192, 150, 189,
+ 135, 197, 151, 196, 174, 175, 176, 152, 243, 244,
+ 153, 185, 200, 201, 209, 262, 263, 120, 120, 120,
+ 160, 154, 120, 120, 120, 120, 120, 193, 194, 195,
+ 155, 198, 199, 112, 4, 167, 168, 169, 170, 171,
+ 172, 173, 174, 175, 176, 163, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 234, 262, 31, 32, 62, 168, 169,
- 170, 171, 172, 267, 268, 22, 23, 24, 233, 25,
- 166, 167, 168, 169, 170, 171, 172, 33, 31, 32,
- 136, 34, 35, 36, 37, 38, 235, 236, 39, 63,
- 64, 41, 237, 242, 246, 65, 43, 245, 53, 44,
- 33, 31, 32, 243, 34, 35, 36, 37, 38, 186,
- 248, 39, 63, 64, 41, 249, 253, 254, 255, 43,
- 259, 53, 44, 33, 31, 32, 256, 34, 35, 36,
- 37, 38, 260, 263, 39, 40, 261, 41, 264, 265,
- 266, 42, 43, 77, 269, 44, 33, 31, 32, 270,
- 34, 35, 36, 37, 38, 78, 137, 39, 40, 247,
- 41, 0, 0, 0, 0, 43, 0, 53, 44, 33,
- 31, 32, 0, 34, 35, 36, 37, 38, 0, 0,
- 39, 40, 0, 41, 0, 0, 0, 76, 43, 0,
- 0, 44, 33, 31, 32, 0, 34, 35, 36, 37,
- 38, 0, 0, 39, 40, 0, 41, 0, 31, 32,
- 0, 43, 0, 0, 44, 33, 0, 0, 0, 34,
- 35, 36, 37, 38, 31, 122, 39, 0, 0, 41,
- 33, 0, 0, 0, 43, 31, 32, 44, 0, 31,
- 32, 0, 80, 64, 41, 0, 33, 0, 81, 82,
- 0, 53, 44, 0, 0, 123, 124, 33, 40, 0,
- 41, 33, 31, 179, 0, 125, 115, 0, 44, 31,
- 32, 41, 116, 31, 32, 41, 82, 0, 53, 44,
- 82, 0, 0, 44, 33, 0, 0, 0, 0, 0,
- 0, 33, 0, 180, 0, 33, 0, 0, 41, 0,
- 221, 0, 0, 82, 0, 41, 44, 0, 0, 41,
- 82, 0, 0, 44, 82, 0, 0, 44, 163, 164,
- 165, 166, 167, 168, 169, 170, 171, 172, 165, 166,
- 167, 168, 169, 170, 171, 172
+ 19, 20, 21, 22, 120, 120, 35, 36, 37, 38,
+ 39, 245, 246, 40, 166, 178, 23, 24, 25, 187,
+ 26, 249, 172, 173, 174, 175, 176, 256, 255, 257,
+ 210, 215, 214, 32, 33, 63, 168, 169, 170, 171,
+ 172, 173, 174, 175, 176, 221, 224, 225, 227, 267,
+ 228, 229, 233, 32, 33, 139, 34, 234, 272, 273,
+ 35, 36, 37, 38, 39, 235, 236, 40, 64, 65,
+ 42, 237, 238, 242, 66, 44, 34, 54, 45, 239,
+ 35, 36, 37, 38, 39, 32, 33, 40, 64, 65,
+ 42, 240, 241, 247, 250, 44, 251, 54, 45, 248,
+ 253, 190, 254, 258, 259, 32, 33, 260, 34, 261,
+ 264, 265, 35, 36, 37, 38, 39, 266, 268, 40,
+ 41, 269, 42, 270, 271, 274, 43, 44, 34, 275,
+ 45, 78, 35, 36, 37, 38, 39, 32, 33, 40,
+ 41, 140, 42, 79, 0, 0, 0, 44, 252, 54,
+ 45, 0, 0, 0, 0, 0, 0, 32, 33, 0,
+ 34, 0, 0, 0, 35, 36, 37, 38, 39, 0,
+ 0, 40, 41, 0, 42, 0, 0, 0, 77, 44,
+ 34, 0, 45, 0, 35, 36, 37, 38, 39, 32,
+ 33, 40, 41, 0, 42, 0, 0, 0, 0, 44,
+ 0, 0, 45, 0, 32, 33, 0, 0, 0, 0,
+ 32, 33, 34, 0, 0, 0, 35, 36, 37, 38,
+ 39, 0, 0, 40, 0, 0, 42, 34, 32, 33,
+ 0, 44, 0, 34, 45, 32, 33, 0, 118, 81,
+ 65, 42, 0, 0, 119, 82, 83, 42, 54, 45,
+ 0, 34, 83, 32, 183, 45, 0, 0, 34, 32,
+ 33, 0, 0, 81, 65, 42, 0, 182, 32, 33,
+ 83, 0, 42, 45, 32, 33, 34, 83, 0, 0,
+ 45, 0, 34, 0, 0, 184, 32, 33, 0, 0,
+ 42, 34, 0, 0, 0, 83, 42, 34, 45, 0,
+ 0, 83, 0, 190, 45, 42, 226, 0, 0, 34,
+ 83, 42, 54, 45, 0, 0, 83, 0, 0, 45,
+ 0, 0, 0, 42, 0, 0, 0, 0, 83, 0,
+ 0, 45, 169, 170, 171, 172, 173, 174, 175, 176,
+ 170, 171, 172, 173, 174, 175, 176
};
static const yytype_int16 yycheck[] =
{
- 10, 10, 10, 13, 46, 13, 13, 10, 6, 10,
- 19, 9, 20, 21, 12, 9, 104, 8, 106, 11,
- 10, 31, 32, 10, 15, 16, 17, 31, 14, 33,
- 63, 64, 18, 43, 44, 0, 30, 41, 34, 35,
- 36, 37, 38, 53, 42, 41, 6, 80, 8, 9,
- 45, 8, 9, 62, 42, 65, 65, 65, 51, 62,
- 50, 53, 65, 50, 65, 8, 9, 8, 9, 48,
- 62, 81, 82, 30, 81, 163, 164, 165, 76, 47,
- 168, 169, 170, 171, 172, 42, 43, 44, 152, 30,
- 154, 45, 49, 47, 104, 52, 106, 46, 39, 35,
- 36, 111, 112, 44, 49, 41, 35, 36, 49, 49,
- 32, 52, 122, 35, 36, 125, 10, 11, 12, 41,
- 48, 209, 210, 156, 48, 48, 11, 136, 49, 139,
- 48, 129, 142, 136, 144, 142, 49, 48, 148, 130,
- 148, 48, 48, 151, 8, 9, 48, 145, 146, 147,
- 160, 149, 150, 163, 164, 165, 48, 48, 168, 169,
- 170, 171, 172, 7, 48, 48, 30, 8, 9, 179,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
- 44, 49, 35, 50, 32, 49, 49, 51, 52, 30,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, 209,
- 210, 42, 6, 44, 7, 10, 216, 217, 49, 48,
- 50, 52, 50, 50, 1, 50, 224, 50, 48, 45,
- 45, 48, 232, 231, 233, 48, 13, 14, 15, 16,
+ 10, 10, 10, 13, 0, 13, 8, 13, 11, 10,
+ 19, 10, 20, 15, 16, 17, 64, 65, 10, 21,
+ 22, 47, 32, 33, 49, 6, 8, 9, 9, 43,
+ 9, 12, 52, 81, 44, 45, 14, 32, 50, 34,
+ 18, 107, 46, 109, 54, 50, 10, 42, 46, 31,
+ 48, 54, 31, 156, 63, 158, 66, 66, 66, 51,
+ 63, 43, 43, 45, 63, 66, 33, 66, 50, 36,
+ 37, 53, 82, 83, 48, 42, 82, 3, 4, 5,
+ 6, 7, 8, 9, 10, 11, 12, 51, 36, 37,
+ 47, 8, 9, 49, 42, 49, 77, 107, 49, 109,
+ 50, 167, 168, 169, 114, 115, 172, 173, 174, 175,
+ 176, 11, 160, 49, 31, 125, 50, 6, 128, 8,
+ 9, 8, 9, 40, 41, 51, 43, 49, 45, 49,
+ 139, 133, 142, 50, 49, 145, 53, 147, 49, 145,
+ 139, 151, 49, 151, 10, 11, 12, 49, 214, 215,
+ 49, 132, 154, 155, 164, 36, 37, 167, 168, 169,
+ 7, 49, 172, 173, 174, 175, 176, 148, 149, 150,
+ 49, 152, 153, 183, 1, 3, 4, 5, 6, 7,
+ 8, 9, 10, 11, 12, 50, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 49, 254, 8, 9, 10, 8, 9,
- 10, 11, 12, 263, 264, 42, 43, 44, 48, 46,
- 6, 7, 8, 9, 10, 11, 12, 30, 8, 9,
- 10, 34, 35, 36, 37, 38, 50, 50, 41, 42,
- 43, 44, 35, 49, 9, 48, 49, 30, 51, 52,
- 30, 8, 9, 50, 34, 35, 36, 37, 38, 51,
- 35, 41, 42, 43, 44, 36, 33, 10, 50, 49,
- 9, 51, 52, 30, 8, 9, 50, 34, 35, 36,
- 37, 38, 30, 10, 41, 42, 50, 44, 10, 30,
- 50, 48, 49, 12, 50, 52, 30, 8, 9, 50,
- 34, 35, 36, 37, 38, 12, 65, 41, 42, 228,
- 44, -1, -1, -1, -1, 49, -1, 51, 52, 30,
- 8, 9, -1, 34, 35, 36, 37, 38, -1, -1,
- 41, 42, -1, 44, -1, -1, -1, 48, 49, -1,
- -1, 52, 30, 8, 9, -1, 34, 35, 36, 37,
- 38, -1, -1, 41, 42, -1, 44, -1, 8, 9,
- -1, 49, -1, -1, 52, 30, -1, -1, -1, 34,
- 35, 36, 37, 38, 8, 9, 41, -1, -1, 44,
- 30, -1, -1, -1, 49, 8, 9, 52, -1, 8,
- 9, -1, 42, 43, 44, -1, 30, -1, 48, 49,
- -1, 51, 52, -1, -1, 39, 40, 30, 42, -1,
- 44, 30, 8, 9, -1, 49, 35, -1, 52, 8,
- 9, 44, 41, 8, 9, 44, 49, -1, 51, 52,
- 49, -1, -1, 52, 30, -1, -1, -1, -1, -1,
- -1, 30, -1, 39, -1, 30, -1, -1, 44, -1,
- 39, -1, -1, 49, -1, 44, 52, -1, -1, 44,
- 49, -1, -1, 52, 49, -1, -1, 52, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, 5, 6,
- 7, 8, 9, 10, 11, 12
+ 27, 28, 29, 30, 214, 215, 35, 36, 37, 38,
+ 39, 221, 222, 42, 51, 36, 43, 44, 45, 33,
+ 47, 229, 8, 9, 10, 11, 12, 237, 236, 238,
+ 50, 7, 6, 8, 9, 10, 4, 5, 6, 7,
+ 8, 9, 10, 11, 12, 10, 51, 51, 51, 259,
+ 51, 49, 49, 8, 9, 10, 31, 46, 268, 269,
+ 35, 36, 37, 38, 39, 46, 49, 42, 43, 44,
+ 45, 49, 49, 36, 49, 50, 31, 52, 53, 50,
+ 35, 36, 37, 38, 39, 8, 9, 42, 43, 44,
+ 45, 51, 51, 50, 31, 50, 9, 52, 53, 51,
+ 36, 52, 37, 34, 10, 8, 9, 51, 31, 51,
+ 9, 31, 35, 36, 37, 38, 39, 51, 10, 42,
+ 43, 10, 45, 31, 51, 51, 49, 50, 31, 51,
+ 53, 12, 35, 36, 37, 38, 39, 8, 9, 42,
+ 43, 66, 45, 12, -1, -1, -1, 50, 233, 52,
+ 53, -1, -1, -1, -1, -1, -1, 8, 9, -1,
+ 31, -1, -1, -1, 35, 36, 37, 38, 39, -1,
+ -1, 42, 43, -1, 45, -1, -1, -1, 49, 50,
+ 31, -1, 53, -1, 35, 36, 37, 38, 39, 8,
+ 9, 42, 43, -1, 45, -1, -1, -1, -1, 50,
+ -1, -1, 53, -1, 8, 9, -1, -1, -1, -1,
+ 8, 9, 31, -1, -1, -1, 35, 36, 37, 38,
+ 39, -1, -1, 42, -1, -1, 45, 31, 8, 9,
+ -1, 50, -1, 31, 53, 8, 9, -1, 36, 43,
+ 44, 45, -1, -1, 42, 49, 50, 45, 52, 53,
+ -1, 31, 50, 8, 9, 53, -1, -1, 31, 8,
+ 9, -1, -1, 43, 44, 45, -1, 40, 8, 9,
+ 50, -1, 45, 53, 8, 9, 31, 50, -1, -1,
+ 53, -1, 31, -1, -1, 40, 8, 9, -1, -1,
+ 45, 31, -1, -1, -1, 50, 45, 31, 53, -1,
+ -1, 50, -1, 52, 53, 45, 40, -1, -1, 31,
+ 50, 45, 52, 53, -1, -1, 50, -1, -1, 53,
+ -1, -1, -1, 45, -1, -1, -1, -1, 50, -1,
+ -1, 53, 5, 6, 7, 8, 9, 10, 11, 12,
+ 6, 7, 8, 9, 10, 11, 12
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
- 0, 54, 0, 55, 1, 13, 14, 15, 16, 17,
+ 0, 55, 0, 56, 1, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
- 28, 29, 42, 43, 44, 46, 56, 59, 46, 48,
- 60, 8, 9, 30, 34, 35, 36, 37, 38, 41,
- 42, 44, 48, 49, 52, 64, 77, 81, 85, 86,
- 87, 88, 91, 51, 63, 77, 79, 82, 61, 79,
- 62, 77, 10, 42, 43, 48, 68, 78, 80, 81,
- 82, 86, 87, 91, 66, 88, 48, 60, 64, 69,
- 42, 48, 49, 65, 80, 82, 91, 67, 85, 70,
- 79, 71, 79, 72, 79, 73, 85, 74, 81, 75,
- 82, 76, 82, 45, 47, 45, 47, 46, 91, 91,
- 6, 8, 9, 89, 77, 35, 41, 91, 92, 91,
- 49, 49, 9, 39, 40, 49, 88, 91, 48, 48,
- 48, 81, 86, 88, 89, 89, 10, 78, 49, 11,
- 89, 80, 48, 49, 48, 48, 48, 48, 48, 48,
- 48, 48, 58, 92, 57, 92, 7, 91, 91, 49,
- 10, 50, 50, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 50, 35, 35, 36, 41, 39, 9,
- 39, 77, 79, 32, 91, 80, 51, 83, 91, 77,
- 77, 77, 82, 91, 77, 77, 82, 56, 56, 89,
- 31, 33, 41, 90, 91, 49, 92, 92, 92, 6,
- 7, 92, 92, 92, 92, 92, 10, 10, 50, 50,
- 50, 39, 50, 50, 48, 9, 30, 84, 48, 45,
- 45, 48, 48, 48, 49, 50, 50, 35, 92, 92,
- 91, 91, 49, 50, 82, 30, 9, 83, 35, 36,
- 82, 91, 81, 33, 10, 50, 50, 35, 36, 9,
- 30, 50, 91, 10, 10, 30, 50, 91, 91, 50,
- 50
+ 28, 29, 30, 43, 44, 45, 47, 57, 60, 47,
+ 49, 61, 8, 9, 31, 35, 36, 37, 38, 39,
+ 42, 43, 45, 49, 50, 53, 65, 79, 83, 87,
+ 88, 89, 90, 93, 52, 64, 79, 81, 84, 62,
+ 81, 63, 79, 10, 43, 44, 49, 69, 80, 82,
+ 83, 84, 88, 89, 93, 67, 90, 49, 61, 65,
+ 70, 43, 49, 50, 66, 82, 84, 93, 68, 87,
+ 71, 81, 72, 81, 73, 81, 74, 87, 75, 83,
+ 76, 84, 77, 81, 78, 81, 46, 48, 46, 48,
+ 47, 93, 93, 6, 8, 9, 91, 79, 36, 42,
+ 93, 94, 93, 50, 50, 9, 40, 41, 50, 90,
+ 93, 49, 49, 49, 83, 88, 90, 91, 91, 10,
+ 80, 50, 11, 91, 82, 49, 50, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 59, 94, 58, 94,
+ 7, 93, 93, 50, 10, 51, 51, 3, 4, 5,
+ 6, 7, 8, 9, 10, 11, 12, 51, 36, 36,
+ 37, 42, 40, 9, 40, 79, 81, 33, 93, 82,
+ 52, 85, 93, 79, 79, 79, 84, 93, 79, 79,
+ 81, 81, 57, 57, 91, 32, 34, 42, 92, 93,
+ 50, 94, 94, 94, 6, 7, 94, 94, 94, 94,
+ 94, 10, 10, 51, 51, 51, 40, 51, 51, 49,
+ 9, 31, 86, 49, 46, 46, 49, 49, 49, 50,
+ 51, 51, 36, 94, 94, 93, 93, 50, 51, 84,
+ 31, 9, 85, 36, 37, 84, 93, 83, 34, 10,
+ 51, 51, 36, 37, 9, 31, 51, 93, 10, 10,
+ 31, 51, 93, 93, 51, 51
};
#define yyerrok (yyerrstatus = 0)
@@ -1803,95 +1813,100 @@ yyreduce:
break;
case 31:
-#line 124 "a.y"
+#line 122 "a.y"
+ { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
+ break;
+
+ case 32:
+#line 125 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = nullgen;
}
break;
- case 32:
-#line 129 "a.y"
+ case 33:
+#line 130 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = nullgen;
}
break;
- case 33:
-#line 136 "a.y"
+ case 34:
+#line 137 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 34:
-#line 143 "a.y"
+ case 35:
+#line 144 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 35:
-#line 150 "a.y"
+ case 36:
+#line 151 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (2)].gen);
(yyval.gen2).to = nullgen;
}
break;
- case 36:
-#line 155 "a.y"
+ case 37:
+#line 156 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (1)].gen);
(yyval.gen2).to = nullgen;
}
break;
- case 37:
-#line 162 "a.y"
+ case 38:
+#line 163 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(2) - (2)].gen);
}
break;
- case 38:
-#line 167 "a.y"
+ case 39:
+#line 168 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(1) - (1)].gen);
}
break;
- case 39:
-#line 174 "a.y"
+ case 40:
+#line 175 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(2) - (2)].gen);
}
break;
- case 40:
-#line 179 "a.y"
+ case 41:
+#line 180 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(1) - (1)].gen);
}
break;
- case 41:
-#line 184 "a.y"
+ case 42:
+#line 185 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 42:
-#line 191 "a.y"
+ case 43:
+#line 192 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (5)].gen);
(yyval.gen2).from.scale = (yyvsp[(3) - (5)].lval);
@@ -1899,16 +1914,16 @@ yyreduce:
}
break;
- case 43:
-#line 199 "a.y"
+ case 44:
+#line 200 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 44:
-#line 204 "a.y"
+ case 45:
+#line 205 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (5)].gen);
(yyval.gen2).from.scale = (yyvsp[(3) - (5)].lval);
@@ -1916,24 +1931,24 @@ yyreduce:
}
break;
- case 45:
-#line 212 "a.y"
+ case 46:
+#line 213 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(2) - (2)].gen);
}
break;
- case 46:
-#line 217 "a.y"
+ case 47:
+#line 218 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(1) - (1)].gen);
}
break;
- case 47:
-#line 222 "a.y"
+ case 48:
+#line 223 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(2) - (2)].gen);
@@ -1942,16 +1957,16 @@ yyreduce:
}
break;
- case 50:
-#line 235 "a.y"
+ case 51:
+#line 236 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 51:
-#line 240 "a.y"
+ case 52:
+#line 241 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (5)].gen);
(yyval.gen2).to = (yyvsp[(3) - (5)].gen);
@@ -1961,16 +1976,16 @@ yyreduce:
}
break;
- case 52:
-#line 250 "a.y"
+ case 53:
+#line 251 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 53:
-#line 255 "a.y"
+ case 54:
+#line 256 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (5)].gen);
(yyval.gen2).to = (yyvsp[(3) - (5)].gen);
@@ -1980,40 +1995,40 @@ yyreduce:
}
break;
- case 54:
-#line 265 "a.y"
+ case 55:
+#line 266 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (2)].gen);
(yyval.gen2).to = nullgen;
}
break;
- case 55:
-#line 270 "a.y"
+ case 56:
+#line 271 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (1)].gen);
(yyval.gen2).to = nullgen;
}
break;
- case 56:
-#line 275 "a.y"
+ case 57:
+#line 276 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 57:
-#line 282 "a.y"
+ case 58:
+#line 283 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 58:
-#line 287 "a.y"
+ case 59:
+#line 288 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (5)].gen);
(yyval.gen2).from.scale = (yyvsp[(3) - (5)].lval);
@@ -2021,8 +2036,8 @@ yyreduce:
}
break;
- case 59:
-#line 295 "a.y"
+ case 60:
+#line 296 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (5)].gen);
(yyval.gen2).to = (yyvsp[(3) - (5)].gen);
@@ -2030,8 +2045,8 @@ yyreduce:
}
break;
- case 60:
-#line 303 "a.y"
+ case 61:
+#line 304 "a.y"
{
(yyval.gen2).from = (yyvsp[(3) - (5)].gen);
(yyval.gen2).to = (yyvsp[(5) - (5)].gen);
@@ -2041,30 +2056,44 @@ yyreduce:
}
break;
- case 61:
-#line 313 "a.y"
+ case 62:
+#line 314 "a.y"
{
+ if((yyvsp[(1) - (3)].gen).type != D_CONST || (yyvsp[(3) - (3)].gen).type != D_CONST)
+ yyerror("arguments to PCDATA must be integer constants");
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 66:
-#line 326 "a.y"
+ case 63:
+#line 323 "a.y"
+ {
+ if((yyvsp[(1) - (3)].gen).type != D_CONST)
+ yyerror("index for FUNCDATA must be integer constant");
+ if((yyvsp[(3) - (3)].gen).type != D_EXTERN && (yyvsp[(3) - (3)].gen).type != D_STATIC)
+ yyerror("value for FUNCDATA must be symbol reference");
+ (yyval.gen2).from = (yyvsp[(1) - (3)].gen);
+ (yyval.gen2).to = (yyvsp[(3) - (3)].gen);
+ }
+ break;
+
+ case 68:
+#line 340 "a.y"
{
(yyval.gen) = (yyvsp[(2) - (2)].gen);
}
break;
- case 67:
-#line 330 "a.y"
+ case 69:
+#line 344 "a.y"
{
(yyval.gen) = (yyvsp[(2) - (2)].gen);
}
break;
- case 73:
-#line 343 "a.y"
+ case 75:
+#line 357 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_BRANCH;
@@ -2072,8 +2101,8 @@ yyreduce:
}
break;
- case 74:
-#line 349 "a.y"
+ case 76:
+#line 363 "a.y"
{
(yyval.gen) = nullgen;
if(pass == 2)
@@ -2084,8 +2113,8 @@ yyreduce:
}
break;
- case 75:
-#line 358 "a.y"
+ case 77:
+#line 372 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_BRANCH;
@@ -2094,56 +2123,56 @@ yyreduce:
}
break;
- case 76:
-#line 367 "a.y"
+ case 78:
+#line 381 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = (yyvsp[(1) - (1)].lval);
}
break;
- case 77:
-#line 372 "a.y"
+ case 79:
+#line 386 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = (yyvsp[(1) - (1)].lval);
}
break;
- case 78:
-#line 377 "a.y"
+ case 80:
+#line 391 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = (yyvsp[(1) - (1)].lval);
}
break;
- case 79:
-#line 382 "a.y"
+ case 81:
+#line 396 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = (yyvsp[(1) - (1)].lval);
}
break;
- case 80:
-#line 387 "a.y"
+ case 82:
+#line 401 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_SP;
}
break;
- case 81:
-#line 392 "a.y"
+ case 83:
+#line 406 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = (yyvsp[(1) - (1)].lval);
}
break;
- case 82:
-#line 399 "a.y"
+ case 84:
+#line 413 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_CONST;
@@ -2151,8 +2180,8 @@ yyreduce:
}
break;
- case 83:
-#line 405 "a.y"
+ case 85:
+#line 419 "a.y"
{
(yyval.gen) = (yyvsp[(2) - (2)].gen);
(yyval.gen).index = (yyvsp[(2) - (2)].gen).type;
@@ -2165,8 +2194,8 @@ yyreduce:
}
break;
- case 84:
-#line 416 "a.y"
+ case 86:
+#line 430 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_SCONST;
@@ -2174,8 +2203,8 @@ yyreduce:
}
break;
- case 85:
-#line 422 "a.y"
+ case 87:
+#line 436 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_FCONST;
@@ -2183,8 +2212,8 @@ yyreduce:
}
break;
- case 86:
-#line 428 "a.y"
+ case 88:
+#line 442 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_FCONST;
@@ -2192,8 +2221,8 @@ yyreduce:
}
break;
- case 87:
-#line 434 "a.y"
+ case 89:
+#line 448 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_FCONST;
@@ -2201,8 +2230,8 @@ yyreduce:
}
break;
- case 88:
-#line 440 "a.y"
+ case 90:
+#line 454 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_FCONST;
@@ -2210,8 +2239,8 @@ yyreduce:
}
break;
- case 89:
-#line 448 "a.y"
+ case 91:
+#line 462 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_CONST2;
@@ -2220,24 +2249,24 @@ yyreduce:
}
break;
- case 90:
-#line 457 "a.y"
+ case 92:
+#line 471 "a.y"
{
(yyval.con2).v1 = (yyvsp[(1) - (1)].lval);
(yyval.con2).v2 = 0;
}
break;
- case 91:
-#line 462 "a.y"
+ case 93:
+#line 476 "a.y"
{
(yyval.con2).v1 = -(yyvsp[(2) - (2)].lval);
(yyval.con2).v2 = 0;
}
break;
- case 92:
-#line 467 "a.y"
+ case 94:
+#line 481 "a.y"
{
// Change explicit 0 argument size to 1
// so that we can distinguish it from missing.
@@ -2248,8 +2277,8 @@ yyreduce:
}
break;
- case 93:
-#line 476 "a.y"
+ case 95:
+#line 490 "a.y"
{
// Change explicit 0 argument size to 1
// so that we can distinguish it from missing.
@@ -2260,8 +2289,8 @@ yyreduce:
}
break;
- case 96:
-#line 491 "a.y"
+ case 98:
+#line 505 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+D_NONE;
@@ -2269,8 +2298,8 @@ yyreduce:
}
break;
- case 97:
-#line 497 "a.y"
+ case 99:
+#line 511 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+(yyvsp[(3) - (4)].lval);
@@ -2278,8 +2307,8 @@ yyreduce:
}
break;
- case 98:
-#line 503 "a.y"
+ case 100:
+#line 517 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+D_SP;
@@ -2287,8 +2316,8 @@ yyreduce:
}
break;
- case 99:
-#line 509 "a.y"
+ case 101:
+#line 523 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+D_NONE;
@@ -2299,8 +2328,8 @@ yyreduce:
}
break;
- case 100:
-#line 518 "a.y"
+ case 102:
+#line 532 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+(yyvsp[(3) - (9)].lval);
@@ -2311,8 +2340,8 @@ yyreduce:
}
break;
- case 101:
-#line 527 "a.y"
+ case 103:
+#line 541 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+(yyvsp[(3) - (9)].lval);
@@ -2323,24 +2352,24 @@ yyreduce:
}
break;
- case 102:
-#line 536 "a.y"
+ case 104:
+#line 550 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+(yyvsp[(2) - (3)].lval);
}
break;
- case 103:
-#line 541 "a.y"
+ case 105:
+#line 555 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+D_SP;
}
break;
- case 104:
-#line 546 "a.y"
+ case 106:
+#line 560 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+(yyvsp[(3) - (4)].lval);
@@ -2348,8 +2377,8 @@ yyreduce:
}
break;
- case 105:
-#line 552 "a.y"
+ case 107:
+#line 566 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+D_NONE;
@@ -2359,8 +2388,8 @@ yyreduce:
}
break;
- case 106:
-#line 560 "a.y"
+ case 108:
+#line 574 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+(yyvsp[(2) - (8)].lval);
@@ -2370,15 +2399,15 @@ yyreduce:
}
break;
- case 107:
-#line 570 "a.y"
+ case 109:
+#line 584 "a.y"
{
(yyval.gen) = (yyvsp[(1) - (1)].gen);
}
break;
- case 108:
-#line 574 "a.y"
+ case 110:
+#line 588 "a.y"
{
(yyval.gen) = (yyvsp[(1) - (6)].gen);
(yyval.gen).index = (yyvsp[(3) - (6)].lval);
@@ -2387,8 +2416,8 @@ yyreduce:
}
break;
- case 109:
-#line 583 "a.y"
+ case 111:
+#line 597 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = (yyvsp[(4) - (5)].lval);
@@ -2397,8 +2426,8 @@ yyreduce:
}
break;
- case 110:
-#line 590 "a.y"
+ case 112:
+#line 604 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_STATIC;
@@ -2407,134 +2436,134 @@ yyreduce:
}
break;
- case 111:
-#line 598 "a.y"
+ case 113:
+#line 612 "a.y"
{
(yyval.lval) = 0;
}
break;
- case 112:
-#line 602 "a.y"
+ case 114:
+#line 616 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (2)].lval);
}
break;
- case 113:
-#line 606 "a.y"
+ case 115:
+#line 620 "a.y"
{
(yyval.lval) = -(yyvsp[(2) - (2)].lval);
}
break;
- case 115:
-#line 613 "a.y"
+ case 117:
+#line 627 "a.y"
{
(yyval.lval) = D_AUTO;
}
break;
- case 118:
-#line 621 "a.y"
+ case 120:
+#line 635 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (1)].sym)->value;
}
break;
- case 119:
-#line 625 "a.y"
+ case 121:
+#line 639 "a.y"
{
(yyval.lval) = -(yyvsp[(2) - (2)].lval);
}
break;
- case 120:
-#line 629 "a.y"
+ case 122:
+#line 643 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (2)].lval);
}
break;
- case 121:
-#line 633 "a.y"
+ case 123:
+#line 647 "a.y"
{
(yyval.lval) = ~(yyvsp[(2) - (2)].lval);
}
break;
- case 122:
-#line 637 "a.y"
+ case 124:
+#line 651 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (3)].lval);
}
break;
- case 124:
-#line 644 "a.y"
+ case 126:
+#line 658 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) + (yyvsp[(3) - (3)].lval);
}
break;
- case 125:
-#line 648 "a.y"
+ case 127:
+#line 662 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) - (yyvsp[(3) - (3)].lval);
}
break;
- case 126:
-#line 652 "a.y"
+ case 128:
+#line 666 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) * (yyvsp[(3) - (3)].lval);
}
break;
- case 127:
-#line 656 "a.y"
+ case 129:
+#line 670 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) / (yyvsp[(3) - (3)].lval);
}
break;
- case 128:
-#line 660 "a.y"
+ case 130:
+#line 674 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) % (yyvsp[(3) - (3)].lval);
}
break;
- case 129:
-#line 664 "a.y"
+ case 131:
+#line 678 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (4)].lval) << (yyvsp[(4) - (4)].lval);
}
break;
- case 130:
-#line 668 "a.y"
+ case 132:
+#line 682 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (4)].lval) >> (yyvsp[(4) - (4)].lval);
}
break;
- case 131:
-#line 672 "a.y"
+ case 133:
+#line 686 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) & (yyvsp[(3) - (3)].lval);
}
break;
- case 132:
-#line 676 "a.y"
+ case 134:
+#line 690 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) ^ (yyvsp[(3) - (3)].lval);
}
break;
- case 133:
-#line 680 "a.y"
+ case 135:
+#line 694 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) | (yyvsp[(3) - (3)].lval);
}
@@ -2542,7 +2571,7 @@ yyreduce:
/* Line 1267 of yacc.c. */
-#line 2546 "y.tab.c"
+#line 2575 "y.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
diff --git a/src/cmd/8a/y.tab.h b/src/cmd/8a/y.tab.h
index cb572f7b3..8ed61a9f8 100644
--- a/src/cmd/8a/y.tab.h
+++ b/src/cmd/8a/y.tab.h
@@ -56,21 +56,22 @@
LTYPEXC = 272,
LTYPEX = 273,
LTYPEPC = 274,
- LCONST = 275,
- LFP = 276,
- LPC = 277,
- LSB = 278,
- LBREG = 279,
- LLREG = 280,
- LSREG = 281,
- LFREG = 282,
- LXREG = 283,
- LFCONST = 284,
- LSCONST = 285,
- LSP = 286,
- LNAME = 287,
- LLAB = 288,
- LVAR = 289
+ LTYPEF = 275,
+ LCONST = 276,
+ LFP = 277,
+ LPC = 278,
+ LSB = 279,
+ LBREG = 280,
+ LLREG = 281,
+ LSREG = 282,
+ LFREG = 283,
+ LXREG = 284,
+ LFCONST = 285,
+ LSCONST = 286,
+ LSP = 287,
+ LNAME = 288,
+ LLAB = 289,
+ LVAR = 290
};
#endif
/* Tokens. */
@@ -91,21 +92,22 @@
#define LTYPEXC 272
#define LTYPEX 273
#define LTYPEPC 274
-#define LCONST 275
-#define LFP 276
-#define LPC 277
-#define LSB 278
-#define LBREG 279
-#define LLREG 280
-#define LSREG 281
-#define LFREG 282
-#define LXREG 283
-#define LFCONST 284
-#define LSCONST 285
-#define LSP 286
-#define LNAME 287
-#define LLAB 288
-#define LVAR 289
+#define LTYPEF 275
+#define LCONST 276
+#define LFP 277
+#define LPC 278
+#define LSB 279
+#define LBREG 280
+#define LLREG 281
+#define LSREG 282
+#define LFREG 283
+#define LXREG 284
+#define LFCONST 285
+#define LSCONST 286
+#define LSP 287
+#define LNAME 288
+#define LLAB 289
+#define LVAR 290
@@ -126,7 +128,7 @@ typedef union YYSTYPE
Gen2 gen2;
}
/* Line 1529 of yacc.c. */
-#line 130 "y.tab.h"
+#line 132 "y.tab.h"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1