summaryrefslogtreecommitdiff
path: root/src/cmd/6a
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2013-07-16 16:23:28 -0400
committerRuss Cox <rsc@golang.org>2013-07-16 16:23:28 -0400
commit7dd62ca3f63f849dc9394ef8d0caaba1aaa15a67 (patch)
treec6b9bbbfeffbf3b6aefc61ee4308e09ce7330bb4 /src/cmd/6a
parentba306ff2abbc5c53e5799c2bafe893704400c0f1 (diff)
downloadgo-7dd62ca3f63f849dc9394ef8d0caaba1aaa15a67.tar.gz
cmd/5a, cmd/6a, cmd/8a: parse PCDATA
In cmd/5a, also add support for argument size in TEXT instruction. R=ken2 CC=golang-dev https://codereview.appspot.com/11357044
Diffstat (limited to 'src/cmd/6a')
-rw-r--r--src/cmd/6a/a.y20
-rw-r--r--src/cmd/6a/lex.c2
-rw-r--r--src/cmd/6a/y.tab.c1084
-rw-r--r--src/cmd/6a/y.tab.h92
4 files changed, 616 insertions, 582 deletions
diff --git a/src/cmd/6a/a.y b/src/cmd/6a/a.y
index 42af65e35..4f2672842 100644
--- a/src/cmd/6a/a.y
+++ b/src/cmd/6a/a.y
@@ -49,7 +49,7 @@
%left '+' '-'
%left '*' '/' '%'
%token <lval> LTYPE0 LTYPE1 LTYPE2 LTYPE3 LTYPE4
-%token <lval> LTYPEC LTYPED LTYPEN LTYPER LTYPET LTYPEG
+%token <lval> LTYPEC LTYPED LTYPEN LTYPER LTYPET LTYPEG LTYPEPC
%token <lval> LTYPES LTYPEM LTYPEI LTYPEXC LTYPEX LTYPERT
%token <lval> LCONST LFP LPC LSB
%token <lval> LBREG LLREG LSREG LFREG LMREG LXREG
@@ -58,7 +58,7 @@
%token <sym> LNAME LLAB LVAR
%type <lval> con con2 expr pointer offset
%type <gen> mem imm imm2 reg nam rel rem rim rom omem nmem
-%type <gen2> nonnon nonrel nonrem rimnon rimrem remrim spec10 spec11
+%type <gen2> nonnon nonrel nonrem rimnon rimrem remrim spec10 spec11 spec12
%type <gen2> spec1 spec2 spec3 spec4 spec5 spec6 spec7 spec8 spec9
%%
prog:
@@ -115,6 +115,7 @@ inst:
| LTYPEX spec9 { outcode($1, &$2); }
| LTYPERT spec10 { outcode($1, &$2); }
| LTYPEG spec11 { outcode($1, &$2); }
+| LTYPEPC spec12 { outcode($1, &$2); }
nonnon:
{
@@ -308,6 +309,13 @@ spec11: /* GLOBL */
$$.to = $5;
}
+spec12: /* PCDATA */
+ imm ',' imm
+ {
+ $$.from = $1;
+ $$.to = $3;
+ }
+
rem:
reg
| mem
@@ -605,11 +613,19 @@ con2:
}
| LCONST '-' LCONST
{
+ // Change explicit 0 argument size to 1
+ // so that we can distinguish it from missing.
+ if($3 == 0)
+ $3 = 1;
$$ = ($1 & 0xffffffffLL) +
(($3 & 0xffffLL) << 32);
}
| '-' LCONST '-' LCONST
{
+ // Change explicit 0 argument size to 1
+ // so that we can distinguish it from missing.
+ if($4 == 0)
+ $4 = 1;
$$ = (-$2 & 0xffffffffLL) +
(($4 & 0xffffLL) << 32);
}
diff --git a/src/cmd/6a/lex.c b/src/cmd/6a/lex.c
index 290785c55..46e5342c3 100644
--- a/src/cmd/6a/lex.c
+++ b/src/cmd/6a/lex.c
@@ -1020,7 +1020,7 @@ struct
"PSHUFD", LTYPEX, APSHUFD,
"USEFIELD", LTYPEN, AUSEFIELD,
"PCLMULQDQ", LTYPEX, APCLMULQDQ,
-
+ "PCDATA", LTYPEPC, APCDATA,
0
};
diff --git a/src/cmd/6a/y.tab.c b/src/cmd/6a/y.tab.c
index 75c4ad5ea..4e1faa6b9 100644
--- a/src/cmd/6a/y.tab.c
+++ b/src/cmd/6a/y.tab.c
@@ -77,28 +77,29 @@
LTYPER = 266,
LTYPET = 267,
LTYPEG = 268,
- LTYPES = 269,
- LTYPEM = 270,
- LTYPEI = 271,
- LTYPEXC = 272,
- LTYPEX = 273,
- LTYPERT = 274,
- LCONST = 275,
- LFP = 276,
- LPC = 277,
- LSB = 278,
- LBREG = 279,
- LLREG = 280,
- LSREG = 281,
- LFREG = 282,
- LMREG = 283,
- LXREG = 284,
- LFCONST = 285,
- LSCONST = 286,
- LSP = 287,
- LNAME = 288,
- LLAB = 289,
- LVAR = 290
+ LTYPEPC = 269,
+ LTYPES = 270,
+ LTYPEM = 271,
+ LTYPEI = 272,
+ LTYPEXC = 273,
+ LTYPEX = 274,
+ LTYPERT = 275,
+ LCONST = 276,
+ LFP = 277,
+ LPC = 278,
+ LSB = 279,
+ LBREG = 280,
+ LLREG = 281,
+ LSREG = 282,
+ LFREG = 283,
+ LMREG = 284,
+ LXREG = 285,
+ LFCONST = 286,
+ LSCONST = 287,
+ LSP = 288,
+ LNAME = 289,
+ LLAB = 290,
+ LVAR = 291
};
#endif
/* Tokens. */
@@ -113,28 +114,29 @@
#define LTYPER 266
#define LTYPET 267
#define LTYPEG 268
-#define LTYPES 269
-#define LTYPEM 270
-#define LTYPEI 271
-#define LTYPEXC 272
-#define LTYPEX 273
-#define LTYPERT 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 LMREG 283
-#define LXREG 284
-#define LFCONST 285
-#define LSCONST 286
-#define LSP 287
-#define LNAME 288
-#define LLAB 289
-#define LVAR 290
+#define LTYPEPC 269
+#define LTYPES 270
+#define LTYPEM 271
+#define LTYPEI 272
+#define LTYPEXC 273
+#define LTYPEX 274
+#define LTYPERT 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 LMREG 284
+#define LXREG 285
+#define LFCONST 286
+#define LSCONST 287
+#define LSP 288
+#define LNAME 289
+#define LLAB 290
+#define LVAR 291
@@ -178,7 +180,7 @@ typedef union YYSTYPE
Gen2 gen2;
}
/* Line 193 of yacc.c. */
-#line 182 "y.tab.c"
+#line 184 "y.tab.c"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
@@ -191,7 +193,7 @@ typedef union YYSTYPE
/* Line 216 of yacc.c. */
-#line 195 "y.tab.c"
+#line 197 "y.tab.c"
#ifdef short
# undef short
@@ -406,20 +408,20 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 554
+#define YYLAST 543
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 54
+#define YYNTOKENS 55
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 40
+#define YYNNTS 41
/* YYNRULES -- Number of rules. */
-#define YYNRULES 132
+#define YYNRULES 134
/* YYNRULES -- Number of states. */
-#define YYNSTATES 263
+#define YYNSTATES 268
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 290
+#define YYMAXUTOK 291
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -430,16 +432,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, 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, 53, 12, 5, 2,
+ 51, 52, 10, 8, 50, 9, 2, 11, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 47, 48,
+ 6, 49, 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, 53, 2, 2, 2,
+ 2, 2, 2, 2, 3, 2, 54, 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,
@@ -456,7 +458,7 @@ static const yytype_uint8 yytranslate[] =
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,
- 45
+ 45, 46
};
#if YYDEBUG
@@ -467,67 +469,68 @@ 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, 141, 143,
- 147, 153, 157, 163, 166, 168, 172, 178, 184, 185,
- 187, 191, 197, 199, 201, 203, 205, 208, 211, 213,
- 215, 217, 219, 224, 227, 230, 232, 234, 236, 238,
- 240, 242, 244, 247, 250, 253, 256, 259, 264, 270,
- 274, 276, 278, 280, 285, 290, 295, 302, 312, 316,
- 320, 326, 335, 337, 344, 350, 358, 359, 362, 365,
- 367, 369, 371, 373, 375, 378, 381, 384, 388, 390,
- 393, 397, 402, 404, 408, 412, 416, 420, 424, 429,
- 434, 438, 442
+ 85, 88, 91, 92, 94, 98, 102, 105, 107, 110,
+ 112, 115, 117, 121, 127, 131, 137, 140, 142, 144,
+ 146, 150, 156, 160, 166, 169, 171, 175, 181, 187,
+ 188, 190, 194, 200, 204, 206, 208, 210, 212, 215,
+ 218, 220, 222, 224, 226, 231, 234, 237, 239, 241,
+ 243, 245, 247, 249, 251, 254, 257, 260, 263, 266,
+ 271, 277, 281, 283, 285, 287, 292, 297, 302, 309,
+ 319, 323, 327, 333, 342, 344, 351, 357, 365, 366,
+ 369, 372, 374, 376, 378, 380, 382, 385, 388, 391,
+ 395, 397, 400, 404, 409, 411, 415, 419, 423, 427,
+ 431, 436, 441, 445, 449
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int8 yyrhs[] =
{
- 55, 0, -1, -1, -1, 55, 56, 57, -1, -1,
- 44, 46, 58, 57, -1, -1, 43, 46, 59, 57,
- -1, 47, -1, 60, 47, -1, 1, 47, -1, 43,
- 48, 93, -1, 45, 48, 93, -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, 24, 71, -1,
- 25, 72, -1, 26, 73, -1, 27, 74, -1, 28,
- 75, -1, 29, 76, -1, 23, 77, -1, -1, 49,
- -1, 80, 49, 78, -1, 78, 49, 80, -1, 80,
- 49, -1, 80, -1, 49, 78, -1, 78, -1, 49,
- 81, -1, 81, -1, 84, 49, 81, -1, 88, 11,
- 91, 49, 84, -1, 85, 49, 83, -1, 85, 49,
- 91, 49, 83, -1, 49, 79, -1, 79, -1, 61,
- -1, 65, -1, 80, 49, 78, -1, 80, 49, 78,
- 46, 35, -1, 80, 49, 78, -1, 80, 49, 78,
- 46, 36, -1, 80, 49, -1, 80, -1, 80, 49,
- 78, -1, 82, 49, 78, 49, 91, -1, 84, 49,
- 78, 49, 82, -1, -1, 84, -1, 85, 49, 84,
- -1, 85, 49, 91, 49, 84, -1, 82, -1, 85,
- -1, 81, -1, 87, -1, 10, 82, -1, 10, 86,
- -1, 82, -1, 86, -1, 78, -1, 84, -1, 91,
- 50, 32, 51, -1, 43, 89, -1, 44, 89, -1,
- 34, -1, 37, -1, 35, -1, 38, -1, 42, -1,
- 36, -1, 39, -1, 52, 92, -1, 52, 91, -1,
- 52, 88, -1, 52, 41, -1, 52, 40, -1, 52,
- 50, 40, 51, -1, 52, 50, 9, 40, 51, -1,
- 52, 9, 40, -1, 86, -1, 87, -1, 91, -1,
- 91, 50, 35, 51, -1, 91, 50, 42, 51, -1,
- 91, 50, 36, 51, -1, 91, 50, 35, 10, 91,
- 51, -1, 91, 50, 35, 51, 50, 35, 10, 91,
- 51, -1, 50, 35, 51, -1, 50, 42, 51, -1,
- 50, 35, 10, 91, 51, -1, 50, 35, 51, 50,
- 35, 10, 91, 51, -1, 88, -1, 88, 50, 35,
- 10, 91, 51, -1, 43, 89, 50, 90, 51, -1,
- 43, 6, 7, 89, 50, 33, 51, -1, -1, 8,
- 91, -1, 9, 91, -1, 33, -1, 42, -1, 31,
- -1, 30, -1, 45, -1, 9, 91, -1, 8, 91,
- -1, 53, 91, -1, 50, 93, 51, -1, 30, -1,
- 9, 30, -1, 30, 9, 30, -1, 9, 30, 9,
- 30, -1, 91, -1, 93, 8, 93, -1, 93, 9,
- 93, -1, 93, 10, 93, -1, 93, 11, 93, -1,
- 93, 12, 93, -1, 93, 6, 6, 93, -1, 93,
- 7, 7, 93, -1, 93, 5, 93, -1, 93, 4,
- 93, -1, 93, 3, 93, -1
+ 56, 0, -1, -1, -1, 56, 57, 58, -1, -1,
+ 45, 47, 59, 58, -1, -1, 44, 47, 60, 58,
+ -1, 48, -1, 61, 48, -1, 1, 48, -1, 44,
+ 49, 95, -1, 46, 49, 95, -1, 13, 62, -1,
+ 14, 66, -1, 15, 65, -1, 16, 63, -1, 17,
+ 64, -1, 21, 67, -1, 19, 68, -1, 22, 69,
+ -1, 18, 70, -1, 20, 71, -1, 25, 72, -1,
+ 26, 73, -1, 27, 74, -1, 28, 75, -1, 29,
+ 76, -1, 30, 77, -1, 23, 78, -1, 24, 79,
+ -1, -1, 50, -1, 82, 50, 80, -1, 80, 50,
+ 82, -1, 82, 50, -1, 82, -1, 50, 80, -1,
+ 80, -1, 50, 83, -1, 83, -1, 86, 50, 83,
+ -1, 90, 11, 93, 50, 86, -1, 87, 50, 85,
+ -1, 87, 50, 93, 50, 85, -1, 50, 81, -1,
+ 81, -1, 62, -1, 66, -1, 82, 50, 80, -1,
+ 82, 50, 80, 47, 36, -1, 82, 50, 80, -1,
+ 82, 50, 80, 47, 37, -1, 82, 50, -1, 82,
+ -1, 82, 50, 80, -1, 84, 50, 80, 50, 93,
+ -1, 86, 50, 80, 50, 84, -1, -1, 86, -1,
+ 87, 50, 86, -1, 87, 50, 93, 50, 86, -1,
+ 86, 50, 86, -1, 84, -1, 87, -1, 83, -1,
+ 89, -1, 10, 84, -1, 10, 88, -1, 84, -1,
+ 88, -1, 80, -1, 86, -1, 93, 51, 33, 52,
+ -1, 44, 91, -1, 45, 91, -1, 35, -1, 38,
+ -1, 36, -1, 39, -1, 43, -1, 37, -1, 40,
+ -1, 53, 94, -1, 53, 93, -1, 53, 90, -1,
+ 53, 42, -1, 53, 41, -1, 53, 51, 41, 52,
+ -1, 53, 51, 9, 41, 52, -1, 53, 9, 41,
+ -1, 88, -1, 89, -1, 93, -1, 93, 51, 36,
+ 52, -1, 93, 51, 43, 52, -1, 93, 51, 37,
+ 52, -1, 93, 51, 36, 10, 93, 52, -1, 93,
+ 51, 36, 52, 51, 36, 10, 93, 52, -1, 51,
+ 36, 52, -1, 51, 43, 52, -1, 51, 36, 10,
+ 93, 52, -1, 51, 36, 52, 51, 36, 10, 93,
+ 52, -1, 90, -1, 90, 51, 36, 10, 93, 52,
+ -1, 44, 91, 51, 92, 52, -1, 44, 6, 7,
+ 91, 51, 34, 52, -1, -1, 8, 93, -1, 9,
+ 93, -1, 34, -1, 43, -1, 32, -1, 31, -1,
+ 46, -1, 9, 93, -1, 8, 93, -1, 54, 93,
+ -1, 51, 95, 52, -1, 31, -1, 9, 31, -1,
+ 31, 9, 31, -1, 9, 31, 9, 31, -1, 93,
+ -1, 95, 8, 95, -1, 95, 9, 95, -1, 95,
+ 10, 95, -1, 95, 11, 95, -1, 95, 12, 95,
+ -1, 95, 6, 6, 95, -1, 95, 7, 7, 95,
+ -1, 95, 5, 95, -1, 95, 4, 95, -1, 95,
+ 3, 95, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
@@ -536,17 +539,17 @@ static const yytype_uint16 yyrline[] =
0, 64, 64, 66, 65, 73, 72, 80, 79, 85,
86, 87, 90, 95, 101, 102, 103, 104, 105, 106,
107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
- 117, 120, 124, 131, 138, 145, 150, 157, 162, 169,
- 174, 179, 186, 194, 199, 207, 212, 219, 220, 223,
- 228, 238, 243, 253, 258, 263, 270, 278, 288, 292,
- 299, 304, 312, 313, 316, 317, 318, 322, 326, 327,
- 330, 331, 334, 340, 349, 358, 363, 368, 373, 378,
- 383, 388, 394, 402, 408, 419, 425, 431, 437, 443,
- 451, 452, 455, 461, 467, 473, 479, 488, 497, 502,
- 507, 515, 525, 529, 538, 545, 554, 557, 561, 567,
- 568, 572, 575, 576, 580, 584, 588, 592, 598, 602,
- 606, 611, 618, 619, 623, 627, 631, 635, 639, 643,
- 647, 651, 655
+ 117, 118, 121, 125, 132, 139, 146, 151, 158, 163,
+ 170, 175, 180, 187, 195, 200, 208, 213, 220, 221,
+ 224, 229, 239, 244, 254, 259, 264, 271, 279, 289,
+ 293, 300, 305, 313, 320, 321, 324, 325, 326, 330,
+ 334, 335, 338, 339, 342, 348, 357, 366, 371, 376,
+ 381, 386, 391, 396, 402, 410, 416, 427, 433, 439,
+ 445, 451, 459, 460, 463, 469, 475, 481, 487, 496,
+ 505, 510, 515, 523, 533, 537, 546, 553, 562, 565,
+ 569, 575, 576, 580, 583, 584, 588, 592, 596, 600,
+ 606, 610, 614, 619, 626, 627, 631, 635, 639, 643,
+ 647, 651, 655, 659, 663
};
#endif
@@ -558,15 +561,15 @@ static const char *const yytname[] =
"$end", "error", "$undefined", "'|'", "'^'", "'&'", "'<'", "'>'", "'+'",
"'-'", "'*'", "'/'", "'%'", "LTYPE0", "LTYPE1", "LTYPE2", "LTYPE3",
"LTYPE4", "LTYPEC", "LTYPED", "LTYPEN", "LTYPER", "LTYPET", "LTYPEG",
- "LTYPES", "LTYPEM", "LTYPEI", "LTYPEXC", "LTYPEX", "LTYPERT", "LCONST",
- "LFP", "LPC", "LSB", "LBREG", "LLREG", "LSREG", "LFREG", "LMREG",
- "LXREG", "LFCONST", "LSCONST", "LSP", "LNAME", "LLAB", "LVAR", "':'",
- "';'", "'='", "','", "'('", "')'", "'$'", "'~'", "$accept", "prog", "@1",
- "line", "@2", "@3", "inst", "nonnon", "rimrem", "remrim", "rimnon",
- "nonrem", "nonrel", "spec1", "spec2", "spec3", "spec4", "spec5", "spec6",
- "spec7", "spec8", "spec9", "spec10", "spec11", "rem", "rom", "rim",
- "rel", "reg", "imm2", "imm", "mem", "omem", "nmem", "nam", "offset",
- "pointer", "con", "con2", "expr", 0
+ "LTYPEPC", "LTYPES", "LTYPEM", "LTYPEI", "LTYPEXC", "LTYPEX", "LTYPERT",
+ "LCONST", "LFP", "LPC", "LSB", "LBREG", "LLREG", "LSREG", "LFREG",
+ "LMREG", "LXREG", "LFCONST", "LSCONST", "LSP", "LNAME", "LLAB", "LVAR",
+ "':'", "';'", "'='", "','", "'('", "')'", "'$'", "'~'", "$accept",
+ "prog", "@1", "line", "@2", "@3", "inst", "nonnon", "rimrem", "remrim",
+ "rimnon", "nonrem", "nonrel", "spec1", "spec2", "spec3", "spec4",
+ "spec5", "spec6", "spec7", "spec8", "spec9", "spec10", "spec11",
+ "spec12", "rem", "rom", "rim", "rel", "reg", "imm2", "imm", "mem",
+ "omem", "nmem", "nam", "offset", "pointer", "con", "con2", "expr", 0
};
#endif
@@ -579,28 +582,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, 290, 58, 59, 61, 44,
- 40, 41, 36, 126
+ 285, 286, 287, 288, 289, 290, 291, 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, 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, 61, 61, 62, 63, 64, 64, 65, 65, 66,
- 66, 66, 67, 68, 68, 69, 69, 70, 70, 71,
- 71, 72, 72, 73, 73, 73, 74, 75, 76, 76,
- 77, 77, 78, 78, 79, 79, 79, 79, 79, 79,
- 80, 80, 81, 81, 81, 82, 82, 82, 82, 82,
- 82, 82, 83, 84, 84, 84, 84, 84, 84, 84,
- 85, 85, 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, 93, 93, 93, 93, 93, 93, 93, 93,
- 93, 93, 93
+ 0, 55, 56, 57, 56, 59, 58, 60, 58, 58,
+ 58, 58, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 62, 62, 63, 64, 65, 65, 66, 66,
+ 67, 67, 67, 68, 69, 69, 70, 70, 71, 71,
+ 72, 72, 73, 73, 74, 74, 74, 75, 76, 77,
+ 77, 78, 78, 79, 80, 80, 81, 81, 81, 81,
+ 81, 81, 82, 82, 83, 83, 83, 84, 84, 84,
+ 84, 84, 84, 84, 85, 86, 86, 86, 86, 86,
+ 86, 86, 87, 87, 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, 95, 95, 95, 95, 95, 95,
+ 95, 95, 95, 95, 95
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -609,17 +612,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, 1, 1, 3,
- 5, 3, 5, 2, 1, 3, 5, 5, 0, 1,
- 3, 5, 1, 1, 1, 1, 2, 2, 1, 1,
- 1, 1, 4, 2, 2, 1, 1, 1, 1, 1,
- 1, 1, 2, 2, 2, 2, 2, 4, 5, 3,
- 1, 1, 1, 4, 4, 4, 6, 9, 3, 3,
- 5, 8, 1, 6, 5, 7, 0, 2, 2, 1,
- 1, 1, 1, 1, 2, 2, 2, 3, 1, 2,
- 3, 4, 1, 3, 3, 3, 3, 3, 4, 4,
- 3, 3, 3
+ 2, 2, 0, 1, 3, 3, 2, 1, 2, 1,
+ 2, 1, 3, 5, 3, 5, 2, 1, 1, 1,
+ 3, 5, 3, 5, 2, 1, 3, 5, 5, 0,
+ 1, 3, 5, 3, 1, 1, 1, 1, 2, 2,
+ 1, 1, 1, 1, 4, 2, 2, 1, 1, 1,
+ 1, 1, 1, 1, 2, 2, 2, 2, 2, 4,
+ 5, 3, 1, 1, 1, 4, 4, 4, 6, 9,
+ 3, 3, 5, 8, 1, 6, 5, 7, 0, 2,
+ 2, 1, 1, 1, 1, 1, 2, 2, 2, 3,
+ 1, 2, 3, 4, 1, 3, 3, 3, 3, 3,
+ 4, 4, 3, 3, 3
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -627,85 +630,87 @@ 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, 58, 0, 0, 0, 9, 4, 0, 11, 32,
- 14, 0, 0, 112, 75, 77, 80, 76, 78, 81,
- 79, 106, 113, 0, 0, 0, 15, 38, 62, 63,
- 90, 91, 102, 92, 0, 16, 70, 36, 71, 17,
- 0, 18, 0, 0, 106, 106, 0, 22, 46, 64,
- 68, 69, 65, 92, 20, 0, 32, 47, 48, 23,
- 106, 0, 0, 19, 40, 0, 0, 21, 0, 30,
- 0, 24, 0, 25, 0, 26, 54, 27, 0, 28,
- 0, 29, 59, 7, 0, 5, 0, 10, 115, 114,
- 0, 0, 0, 0, 37, 0, 0, 122, 0, 116,
- 0, 0, 0, 86, 85, 0, 84, 83, 35, 0,
- 0, 66, 67, 73, 74, 45, 0, 0, 73, 39,
- 0, 0, 0, 0, 0, 0, 53, 0, 0, 0,
- 12, 0, 13, 106, 107, 108, 0, 0, 98, 99,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 117, 0, 0, 0, 0, 89, 0, 0, 33, 34,
- 0, 0, 41, 0, 43, 0, 60, 0, 49, 51,
- 55, 0, 0, 8, 6, 0, 111, 109, 110, 0,
- 0, 0, 132, 131, 130, 0, 0, 123, 124, 125,
- 126, 127, 0, 0, 93, 95, 94, 0, 87, 72,
- 0, 0, 118, 82, 0, 0, 0, 0, 0, 0,
- 0, 104, 100, 0, 128, 129, 0, 0, 0, 88,
- 42, 119, 0, 44, 61, 50, 52, 56, 57, 0,
- 0, 103, 96, 0, 0, 120, 105, 0, 0, 121,
- 101, 0, 97
+ 2, 3, 1, 0, 0, 32, 0, 0, 0, 0,
+ 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 59, 0, 0, 0, 9, 4, 0, 11,
+ 33, 14, 0, 0, 114, 77, 79, 82, 78, 80,
+ 83, 81, 108, 115, 0, 0, 0, 15, 39, 64,
+ 65, 92, 93, 104, 94, 0, 16, 72, 37, 73,
+ 17, 0, 18, 0, 0, 108, 108, 0, 22, 47,
+ 66, 70, 71, 67, 94, 20, 0, 33, 48, 49,
+ 23, 108, 0, 0, 19, 41, 0, 0, 21, 0,
+ 30, 0, 31, 0, 24, 0, 25, 0, 26, 55,
+ 27, 0, 28, 0, 29, 60, 7, 0, 5, 0,
+ 10, 117, 116, 0, 0, 0, 0, 38, 0, 0,
+ 124, 0, 118, 0, 0, 0, 88, 87, 0, 86,
+ 85, 36, 0, 0, 68, 69, 75, 76, 46, 0,
+ 0, 75, 40, 0, 0, 0, 0, 0, 0, 0,
+ 54, 0, 0, 0, 12, 0, 13, 108, 109, 110,
+ 0, 0, 100, 101, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 119, 0, 0, 0, 0, 91,
+ 0, 0, 34, 35, 0, 0, 42, 0, 44, 0,
+ 61, 0, 63, 50, 52, 56, 0, 0, 8, 6,
+ 0, 113, 111, 112, 0, 0, 0, 134, 133, 132,
+ 0, 0, 125, 126, 127, 128, 129, 0, 0, 95,
+ 97, 96, 0, 89, 74, 0, 0, 120, 84, 0,
+ 0, 0, 0, 0, 0, 0, 106, 102, 0, 130,
+ 131, 0, 0, 0, 90, 43, 121, 0, 45, 62,
+ 51, 53, 57, 58, 0, 0, 105, 98, 0, 0,
+ 122, 107, 0, 0, 123, 103, 0, 99
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 1, 3, 26, 151, 149, 27, 30, 59, 61,
- 55, 46, 83, 74, 87, 67, 79, 91, 93, 95,
- 97, 99, 101, 89, 56, 68, 57, 69, 48, 184,
- 58, 49, 50, 51, 52, 113, 199, 53, 223, 118
+ -1, 1, 3, 27, 155, 153, 28, 31, 60, 62,
+ 56, 47, 84, 75, 88, 68, 80, 94, 96, 98,
+ 100, 102, 104, 90, 92, 57, 69, 58, 70, 49,
+ 188, 59, 50, 51, 52, 53, 116, 204, 54, 228,
+ 121
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -97
+#define YYPACT_NINF -110
static const yytype_int16 yypact[] =
{
- -97, 40, -97, 208, 5, -4, 140, 295, 295, 343,
- 233, 15, 319, 381, 91, 91, 295, 295, 295, 222,
- 24, 24, -15, 22, 14, -97, -97, 30, -97, -97,
- -97, 486, 486, -97, -97, -97, -97, -97, -97, -97,
- -97, 42, -97, 343, 406, 486, -97, -97, -97, -97,
- -97, -97, 45, 48, 399, -97, -97, 20, -97, -97,
- 67, -97, 68, 367, 42, 19, 271, -97, -97, -97,
- -97, -97, -97, 87, -97, 127, 343, -97, -97, -97,
- 19, 437, 486, -97, -97, 90, 92, -97, 94, -97,
- 96, -97, 104, -97, 105, -97, 111, -97, 118, -97,
- 119, -97, -97, -97, 486, -97, 486, -97, -97, -97,
- 133, 486, 486, 121, -97, 8, 122, -97, 80, -97,
- 134, 78, 413, -97, -97, 446, -97, -97, -97, 343,
- 295, -97, -97, 121, -97, -97, 7, 486, -97, -97,
- 437, 148, 453, 462, 343, 343, 343, 343, 343, 208,
- 284, 208, 284, 19, -97, -97, -1, 486, 131, -97,
- 486, 486, 486, 166, 177, 486, 486, 486, 486, 486,
- -97, 176, 10, 136, 137, -97, 480, 141, -97, -97,
- 143, 142, -97, 16, -97, 149, -97, 150, 151, 154,
- -97, 152, 155, -97, -97, 156, -97, -97, -97, 157,
- 159, 170, 99, 535, 542, 486, 486, 26, 26, -97,
- -97, -97, 486, 486, 161, -97, -97, 162, -97, -97,
- 24, 184, 198, -97, 163, 24, 181, 183, 486, 222,
- 205, -97, -97, 229, 114, 114, 193, 194, 211, -97,
- -97, 238, 219, -97, -97, -97, -97, -97, -97, 199,
- 486, -97, -97, 244, 232, -97, -97, 214, 486, -97,
- -97, 215, -97
+ -110, 40, -110, 165, -1, 15, 253, 274, 274, 328,
+ 196, 12, 307, 372, 411, 411, 7, 274, 274, 274,
+ 73, 7, 7, -21, 20, 19, -110, -110, 22, -110,
+ -110, -110, 462, 462, -110, -110, -110, -110, -110, -110,
+ -110, -110, 24, -110, 328, 378, 462, -110, -110, -110,
+ -110, -110, -110, 23, 28, 397, -110, -110, 45, -110,
+ -110, 46, -110, 50, 361, 24, 42, 220, -110, -110,
+ -110, -110, -110, -110, 47, -110, 92, 328, -110, -110,
+ -110, 42, 98, 462, -110, -110, 64, 66, -110, 69,
+ -110, 70, -110, 78, -110, 87, -110, 90, -110, 91,
+ -110, 100, -110, 103, -110, -110, -110, 462, -110, 462,
+ -110, -110, -110, 141, 462, 462, 107, -110, 2, 112,
+ -110, 82, -110, 129, 16, 422, -110, -110, 428, -110,
+ -110, -110, 328, 274, -110, -110, 107, -110, -110, 6,
+ 462, -110, -110, 98, 134, 441, 452, 7, 328, 328,
+ 328, 328, 328, 165, 514, 165, 514, 42, -110, -110,
+ -5, 462, 117, -110, 462, 462, 462, 163, 164, 462,
+ 462, 462, 462, 462, -110, 162, 14, 144, 145, -110,
+ 458, 146, -110, -110, 147, 152, -110, 10, -110, 153,
+ -110, 166, -110, 167, 168, -110, 169, 170, -110, -110,
+ 161, -110, -110, -110, 172, 174, 182, 523, 531, 269,
+ 462, 462, 135, 135, -110, -110, -110, 462, 462, 186,
+ -110, -110, 191, -110, -110, 7, 190, 229, -110, 195,
+ 7, 208, 212, 462, 73, 218, -110, -110, 244, 115,
+ 115, 215, 216, 233, -110, -110, 261, 241, -110, -110,
+ -110, -110, -110, -110, 221, 462, -110, -110, 275, 255,
+ -110, -110, 235, 462, -110, -110, 242, -110
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -97, -97, -97, -96, -97, -97, -97, 261, -97, -97,
- -97, 262, -97, -97, -97, -97, -97, -97, -97, -97,
- -97, -97, -97, -97, 17, 218, -2, -11, -9, 61,
- -8, 51, 1, -3, -7, -56, -97, -10, -97, -87
+ -110, -110, -110, -109, -110, -110, -110, 283, -110, -110,
+ -110, 286, -110, -110, -110, -110, -110, -110, -110, -110,
+ -110, -110, -110, -110, -110, 25, 234, -2, -11, -9,
+ 71, -8, 48, -3, 11, -7, -56, -110, -10, -110,
+ -89
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
@@ -715,155 +720,153 @@ static const yytype_int16 yypgoto[] =
#define YYTABLE_NINF -1
static const yytype_uint16 yytable[] =
{
- 73, 70, 84, 86, 75, 85, 60, 72, 133, 134,
- 98, 71, 100, 102, 92, 94, 96, 150, 157, 152,
- 213, 108, 109, 47, 138, 221, 62, 111, 112, 47,
- 196, 103, 197, 104, 117, 119, 167, 168, 169, 180,
- 2, 198, 172, 173, 127, 29, 222, 126, 110, 174,
- 111, 112, 28, 193, 131, 194, 73, 70, 41, 158,
- 114, 214, 106, 72, 132, 88, 90, 71, 105, 128,
- 139, 86, 117, 202, 203, 204, 54, 107, 207, 208,
- 209, 210, 211, 160, 161, 162, 163, 164, 165, 166,
- 167, 168, 169, 114, 117, 120, 117, 195, 121, 31,
- 32, 154, 155, 161, 162, 163, 164, 165, 166, 167,
- 168, 169, 109, 172, 173, 117, 129, 130, 234, 235,
- 174, 33, 165, 166, 167, 168, 169, 181, 179, 182,
- 86, 170, 185, 187, 41, 186, 42, 136, 137, 140,
- 153, 44, 141, 142, 45, 143, 178, 200, 31, 32,
- 117, 117, 117, 144, 145, 117, 117, 117, 117, 117,
- 146, 188, 189, 190, 191, 192, 109, 147, 148, 171,
- 33, 156, 205, 159, 34, 35, 36, 37, 38, 39,
- 180, 201, 40, 41, 206, 42, 212, 215, 216, 43,
- 44, 220, 218, 45, 219, 117, 117, 226, 224, 225,
- 227, 228, 236, 237, 229, 233, 230, 242, 231, 4,
- 232, 238, 240, 239, 241, 183, 245, 244, 247, 246,
- 248, 5, 6, 7, 8, 9, 10, 11, 12, 13,
- 14, 15, 16, 17, 18, 19, 20, 21, 249, 250,
- 257, 31, 32, 63, 251, 252, 253, 254, 261, 255,
- 256, 22, 23, 24, 258, 25, 34, 35, 36, 37,
- 38, 39, 259, 33, 40, 260, 262, 34, 35, 36,
- 37, 38, 39, 77, 78, 40, 64, 65, 42, 31,
- 32, 63, 66, 44, 135, 243, 45, 160, 161, 162,
- 163, 164, 165, 166, 167, 168, 169, 0, 0, 0,
- 0, 33, 0, 31, 32, 34, 35, 36, 37, 38,
- 39, 0, 0, 40, 64, 65, 42, 0, 0, 0,
- 0, 44, 0, 0, 45, 33, 0, 31, 32, 34,
- 35, 36, 37, 38, 39, 0, 0, 40, 41, 0,
- 42, 0, 0, 0, 0, 44, 0, 54, 45, 33,
- 0, 31, 32, 34, 35, 36, 37, 38, 39, 0,
- 0, 40, 41, 0, 42, 0, 0, 0, 76, 44,
- 0, 0, 45, 33, 0, 31, 32, 34, 35, 36,
- 37, 38, 39, 0, 0, 40, 41, 0, 42, 31,
- 32, 0, 0, 44, 0, 0, 45, 33, 0, 0,
- 0, 34, 35, 36, 37, 38, 39, 31, 122, 40,
- 0, 33, 42, 0, 31, 32, 0, 44, 0, 0,
- 45, 31, 32, 0, 80, 65, 42, 0, 0, 33,
- 81, 82, 0, 54, 45, 0, 33, 0, 0, 123,
- 124, 115, 41, 33, 42, 31, 32, 0, 116, 125,
- 0, 42, 45, 175, 31, 176, 82, 0, 42, 45,
- 0, 31, 32, 82, 0, 0, 45, 33, 0, 0,
- 31, 32, 0, 0, 0, 0, 33, 0, 0, 0,
- 80, 65, 42, 33, 0, 0, 177, 82, 31, 32,
- 45, 42, 33, 0, 31, 32, 82, 0, 42, 45,
- 0, 0, 0, 82, 0, 183, 45, 42, 0, 0,
- 33, 0, 82, 0, 54, 45, 33, 0, 0, 0,
- 217, 0, 0, 0, 0, 42, 0, 0, 0, 0,
- 82, 42, 0, 45, 0, 0, 82, 0, 0, 45,
- 162, 163, 164, 165, 166, 167, 168, 169, 163, 164,
- 165, 166, 167, 168, 169
+ 74, 71, 85, 87, 76, 86, 61, 72, 93, 136,
+ 137, 101, 161, 103, 105, 95, 97, 99, 154, 226,
+ 156, 73, 111, 112, 218, 141, 106, 201, 107, 202,
+ 113, 48, 114, 115, 63, 120, 122, 48, 203, 184,
+ 2, 227, 176, 177, 198, 130, 199, 29, 129, 178,
+ 114, 115, 176, 177, 162, 134, 42, 74, 71, 178,
+ 55, 135, 89, 91, 72, 30, 219, 108, 109, 117,
+ 110, 142, 87, 120, 123, 207, 208, 209, 73, 124,
+ 212, 213, 214, 215, 216, 164, 165, 166, 167, 168,
+ 169, 170, 171, 172, 173, 131, 132, 120, 139, 120,
+ 133, 200, 117, 140, 158, 159, 32, 33, 35, 36,
+ 37, 38, 39, 40, 143, 112, 41, 144, 120, 145,
+ 146, 239, 240, 169, 170, 171, 172, 173, 147, 34,
+ 185, 183, 186, 87, 174, 189, 191, 148, 190, 192,
+ 149, 150, 81, 66, 43, 171, 172, 173, 157, 83,
+ 151, 205, 46, 152, 120, 120, 120, 182, 160, 120,
+ 120, 120, 120, 120, 163, 175, 4, 184, 206, 210,
+ 112, 211, 217, 193, 194, 195, 196, 197, 5, 6,
+ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 17, 18, 19, 20, 21, 22, 220, 221, 223, 224,
+ 120, 120, 225, 229, 32, 33, 64, 241, 242, 23,
+ 24, 25, 235, 26, 231, 232, 230, 245, 238, 233,
+ 234, 246, 249, 252, 236, 253, 237, 34, 32, 33,
+ 64, 35, 36, 37, 38, 39, 40, 243, 247, 41,
+ 65, 66, 43, 244, 250, 262, 67, 45, 187, 251,
+ 46, 34, 254, 266, 255, 35, 36, 37, 38, 39,
+ 40, 32, 33, 41, 65, 66, 43, 256, 257, 258,
+ 259, 45, 260, 261, 46, 167, 168, 169, 170, 171,
+ 172, 173, 32, 33, 34, 263, 264, 265, 35, 36,
+ 37, 38, 39, 40, 267, 78, 41, 42, 79, 43,
+ 248, 138, 0, 44, 45, 34, 0, 46, 0, 35,
+ 36, 37, 38, 39, 40, 32, 33, 41, 42, 0,
+ 43, 0, 0, 0, 0, 45, 0, 55, 46, 0,
+ 0, 0, 0, 0, 0, 0, 32, 33, 34, 0,
+ 0, 0, 35, 36, 37, 38, 39, 40, 0, 0,
+ 41, 42, 0, 43, 0, 0, 0, 77, 45, 34,
+ 0, 46, 0, 35, 36, 37, 38, 39, 40, 32,
+ 33, 41, 42, 0, 43, 0, 0, 0, 0, 45,
+ 32, 33, 46, 0, 0, 0, 32, 33, 0, 0,
+ 0, 0, 34, 0, 0, 0, 35, 36, 37, 38,
+ 39, 40, 0, 34, 41, 32, 125, 43, 0, 34,
+ 0, 0, 45, 0, 118, 46, 81, 66, 43, 32,
+ 33, 119, 82, 83, 43, 55, 46, 0, 34, 83,
+ 32, 33, 46, 0, 0, 0, 32, 180, 126, 127,
+ 0, 42, 34, 43, 0, 0, 0, 0, 128, 32,
+ 33, 46, 0, 34, 0, 42, 0, 43, 0, 34,
+ 32, 33, 45, 179, 0, 46, 32, 33, 43, 181,
+ 32, 33, 34, 83, 43, 0, 46, 0, 0, 83,
+ 0, 0, 46, 34, 0, 0, 0, 43, 0, 34,
+ 0, 0, 83, 34, 187, 46, 0, 0, 43, 222,
+ 0, 0, 0, 83, 43, 55, 46, 0, 43, 83,
+ 0, 0, 46, 83, 0, 0, 46, 164, 165, 166,
+ 167, 168, 169, 170, 171, 172, 173, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 166, 167, 168, 169,
+ 170, 171, 172, 173
};
static const yytype_int16 yycheck[] =
{
- 10, 10, 13, 13, 11, 13, 8, 10, 64, 65,
- 19, 10, 20, 21, 16, 17, 18, 104, 10, 106,
- 10, 31, 32, 6, 80, 9, 9, 8, 9, 12,
- 31, 46, 33, 48, 44, 45, 10, 11, 12, 32,
- 0, 42, 35, 36, 54, 49, 30, 54, 6, 42,
- 8, 9, 47, 149, 63, 151, 66, 66, 43, 51,
- 43, 51, 48, 66, 63, 14, 15, 66, 46, 49,
- 81, 81, 82, 160, 161, 162, 52, 47, 165, 166,
- 167, 168, 169, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 76, 104, 50, 106, 153, 50, 8,
- 9, 111, 112, 4, 5, 6, 7, 8, 9, 10,
- 11, 12, 122, 35, 36, 125, 49, 49, 205, 206,
- 42, 30, 8, 9, 10, 11, 12, 137, 130, 140,
- 140, 51, 142, 143, 43, 143, 45, 50, 11, 49,
- 7, 50, 50, 49, 53, 49, 129, 157, 8, 9,
- 160, 161, 162, 49, 49, 165, 166, 167, 168, 169,
- 49, 144, 145, 146, 147, 148, 176, 49, 49, 35,
- 30, 50, 6, 51, 34, 35, 36, 37, 38, 39,
- 32, 50, 42, 43, 7, 45, 10, 51, 51, 49,
- 50, 49, 51, 53, 51, 205, 206, 46, 49, 49,
- 46, 49, 212, 213, 49, 35, 50, 9, 51, 1,
- 51, 50, 220, 51, 30, 52, 35, 225, 228, 36,
- 229, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 33, 10,
- 250, 8, 9, 10, 51, 51, 35, 9, 258, 30,
- 51, 43, 44, 45, 10, 47, 34, 35, 36, 37,
- 38, 39, 30, 30, 42, 51, 51, 34, 35, 36,
- 37, 38, 39, 12, 12, 42, 43, 44, 45, 8,
- 9, 10, 49, 50, 66, 224, 53, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, -1, -1, -1,
- -1, 30, -1, 8, 9, 34, 35, 36, 37, 38,
- 39, -1, -1, 42, 43, 44, 45, -1, -1, -1,
- -1, 50, -1, -1, 53, 30, -1, 8, 9, 34,
- 35, 36, 37, 38, 39, -1, -1, 42, 43, -1,
- 45, -1, -1, -1, -1, 50, -1, 52, 53, 30,
- -1, 8, 9, 34, 35, 36, 37, 38, 39, -1,
- -1, 42, 43, -1, 45, -1, -1, -1, 49, 50,
- -1, -1, 53, 30, -1, 8, 9, 34, 35, 36,
- 37, 38, 39, -1, -1, 42, 43, -1, 45, 8,
- 9, -1, -1, 50, -1, -1, 53, 30, -1, -1,
- -1, 34, 35, 36, 37, 38, 39, 8, 9, 42,
- -1, 30, 45, -1, 8, 9, -1, 50, -1, -1,
- 53, 8, 9, -1, 43, 44, 45, -1, -1, 30,
- 49, 50, -1, 52, 53, -1, 30, -1, -1, 40,
- 41, 35, 43, 30, 45, 8, 9, -1, 42, 50,
- -1, 45, 53, 40, 8, 9, 50, -1, 45, 53,
- -1, 8, 9, 50, -1, -1, 53, 30, -1, -1,
- 8, 9, -1, -1, -1, -1, 30, -1, -1, -1,
- 43, 44, 45, 30, -1, -1, 40, 50, 8, 9,
- 53, 45, 30, -1, 8, 9, 50, -1, 45, 53,
- -1, -1, -1, 50, -1, 52, 53, 45, -1, -1,
- 30, -1, 50, -1, 52, 53, 30, -1, -1, -1,
- 40, -1, -1, -1, -1, 45, -1, -1, -1, -1,
- 50, 45, -1, 53, -1, -1, 50, -1, -1, 53,
- 5, 6, 7, 8, 9, 10, 11, 12, 6, 7,
- 8, 9, 10, 11, 12
+ 10, 10, 13, 13, 11, 13, 8, 10, 16, 65,
+ 66, 20, 10, 21, 22, 17, 18, 19, 107, 9,
+ 109, 10, 32, 33, 10, 81, 47, 32, 49, 34,
+ 6, 6, 8, 9, 9, 45, 46, 12, 43, 33,
+ 0, 31, 36, 37, 153, 55, 155, 48, 55, 43,
+ 8, 9, 36, 37, 52, 64, 44, 67, 67, 43,
+ 53, 64, 14, 15, 67, 50, 52, 47, 49, 44,
+ 48, 82, 82, 83, 51, 164, 165, 166, 67, 51,
+ 169, 170, 171, 172, 173, 3, 4, 5, 6, 7,
+ 8, 9, 10, 11, 12, 50, 50, 107, 51, 109,
+ 50, 157, 77, 11, 114, 115, 8, 9, 35, 36,
+ 37, 38, 39, 40, 50, 125, 43, 51, 128, 50,
+ 50, 210, 211, 8, 9, 10, 11, 12, 50, 31,
+ 140, 133, 143, 143, 52, 145, 146, 50, 146, 147,
+ 50, 50, 44, 45, 46, 10, 11, 12, 7, 51,
+ 50, 161, 54, 50, 164, 165, 166, 132, 51, 169,
+ 170, 171, 172, 173, 52, 36, 1, 33, 51, 6,
+ 180, 7, 10, 148, 149, 150, 151, 152, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 52, 52, 52, 52,
+ 210, 211, 50, 50, 8, 9, 10, 217, 218, 44,
+ 45, 46, 51, 48, 47, 47, 50, 225, 36, 50,
+ 50, 31, 230, 233, 52, 234, 52, 31, 8, 9,
+ 10, 35, 36, 37, 38, 39, 40, 51, 9, 43,
+ 44, 45, 46, 52, 36, 255, 50, 51, 53, 37,
+ 54, 31, 34, 263, 10, 35, 36, 37, 38, 39,
+ 40, 8, 9, 43, 44, 45, 46, 52, 52, 36,
+ 9, 51, 31, 52, 54, 6, 7, 8, 9, 10,
+ 11, 12, 8, 9, 31, 10, 31, 52, 35, 36,
+ 37, 38, 39, 40, 52, 12, 43, 44, 12, 46,
+ 229, 67, -1, 50, 51, 31, -1, 54, -1, 35,
+ 36, 37, 38, 39, 40, 8, 9, 43, 44, -1,
+ 46, -1, -1, -1, -1, 51, -1, 53, 54, -1,
+ -1, -1, -1, -1, -1, -1, 8, 9, 31, -1,
+ -1, -1, 35, 36, 37, 38, 39, 40, -1, -1,
+ 43, 44, -1, 46, -1, -1, -1, 50, 51, 31,
+ -1, 54, -1, 35, 36, 37, 38, 39, 40, 8,
+ 9, 43, 44, -1, 46, -1, -1, -1, -1, 51,
+ 8, 9, 54, -1, -1, -1, 8, 9, -1, -1,
+ -1, -1, 31, -1, -1, -1, 35, 36, 37, 38,
+ 39, 40, -1, 31, 43, 8, 9, 46, -1, 31,
+ -1, -1, 51, -1, 36, 54, 44, 45, 46, 8,
+ 9, 43, 50, 51, 46, 53, 54, -1, 31, 51,
+ 8, 9, 54, -1, -1, -1, 8, 9, 41, 42,
+ -1, 44, 31, 46, -1, -1, -1, -1, 51, 8,
+ 9, 54, -1, 31, -1, 44, -1, 46, -1, 31,
+ 8, 9, 51, 41, -1, 54, 8, 9, 46, 41,
+ 8, 9, 31, 51, 46, -1, 54, -1, -1, 51,
+ -1, -1, 54, 31, -1, -1, -1, 46, -1, 31,
+ -1, -1, 51, 31, 53, 54, -1, -1, 46, 41,
+ -1, -1, -1, 51, 46, 53, 54, -1, 46, 51,
+ -1, -1, 54, 51, -1, -1, 54, 3, 4, 5,
+ 6, 7, 8, 9, 10, 11, 12, 4, 5, 6,
+ 7, 8, 9, 10, 11, 12, 5, 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, 55, 0, 56, 1, 13, 14, 15, 16, 17,
+ 0, 56, 0, 57, 1, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
- 28, 29, 43, 44, 45, 47, 57, 60, 47, 49,
- 61, 8, 9, 30, 34, 35, 36, 37, 38, 39,
- 42, 43, 45, 49, 50, 53, 65, 78, 82, 85,
- 86, 87, 88, 91, 52, 64, 78, 80, 84, 62,
- 80, 63, 78, 10, 43, 44, 49, 69, 79, 81,
- 82, 86, 87, 91, 67, 88, 49, 61, 65, 70,
- 43, 49, 50, 66, 81, 84, 91, 68, 85, 77,
- 85, 71, 80, 72, 80, 73, 80, 74, 82, 75,
- 84, 76, 84, 46, 48, 46, 48, 47, 91, 91,
- 6, 8, 9, 89, 78, 35, 42, 91, 93, 91,
- 50, 50, 9, 40, 41, 50, 88, 91, 49, 49,
- 49, 82, 86, 89, 89, 79, 50, 11, 89, 81,
- 49, 50, 49, 49, 49, 49, 49, 49, 49, 59,
- 93, 58, 93, 7, 91, 91, 50, 10, 51, 51,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
- 51, 35, 35, 36, 42, 40, 9, 40, 78, 80,
- 32, 91, 81, 52, 83, 91, 84, 91, 78, 78,
- 78, 78, 78, 57, 57, 89, 31, 33, 42, 90,
- 91, 50, 93, 93, 93, 6, 7, 93, 93, 93,
- 93, 93, 10, 10, 51, 51, 51, 40, 51, 51,
- 49, 9, 30, 92, 49, 49, 46, 46, 49, 49,
- 50, 51, 51, 35, 93, 93, 91, 91, 50, 51,
- 84, 30, 9, 83, 84, 35, 36, 91, 82, 33,
- 10, 51, 51, 35, 9, 30, 51, 91, 10, 30,
- 51, 91, 51
+ 28, 29, 30, 44, 45, 46, 48, 58, 61, 48,
+ 50, 62, 8, 9, 31, 35, 36, 37, 38, 39,
+ 40, 43, 44, 46, 50, 51, 54, 66, 80, 84,
+ 87, 88, 89, 90, 93, 53, 65, 80, 82, 86,
+ 63, 82, 64, 80, 10, 44, 45, 50, 70, 81,
+ 83, 84, 88, 89, 93, 68, 90, 50, 62, 66,
+ 71, 44, 50, 51, 67, 83, 86, 93, 69, 87,
+ 78, 87, 79, 86, 72, 82, 73, 82, 74, 82,
+ 75, 84, 76, 86, 77, 86, 47, 49, 47, 49,
+ 48, 93, 93, 6, 8, 9, 91, 80, 36, 43,
+ 93, 95, 93, 51, 51, 9, 41, 42, 51, 90,
+ 93, 50, 50, 50, 84, 88, 91, 91, 81, 51,
+ 11, 91, 83, 50, 51, 50, 50, 50, 50, 50,
+ 50, 50, 50, 60, 95, 59, 95, 7, 93, 93,
+ 51, 10, 52, 52, 3, 4, 5, 6, 7, 8,
+ 9, 10, 11, 12, 52, 36, 36, 37, 43, 41,
+ 9, 41, 80, 82, 33, 93, 83, 53, 85, 93,
+ 86, 93, 86, 80, 80, 80, 80, 80, 58, 58,
+ 91, 32, 34, 43, 92, 93, 51, 95, 95, 95,
+ 6, 7, 95, 95, 95, 95, 95, 10, 10, 52,
+ 52, 52, 41, 52, 52, 50, 9, 31, 94, 50,
+ 50, 47, 47, 50, 50, 51, 52, 52, 36, 95,
+ 95, 93, 93, 51, 52, 86, 31, 9, 85, 86,
+ 36, 37, 93, 84, 34, 10, 52, 52, 36, 9,
+ 31, 52, 93, 10, 31, 52, 93, 52
};
#define yyerrok (yyerrstatus = 0)
@@ -1804,95 +1807,100 @@ yyreduce:
break;
case 31:
-#line 120 "a.y"
+#line 118 "a.y"
+ { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
+ break;
+
+ case 32:
+#line 121 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = nullgen;
}
break;
- case 32:
-#line 125 "a.y"
+ case 33:
+#line 126 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = nullgen;
}
break;
- case 33:
-#line 132 "a.y"
+ case 34:
+#line 133 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 34:
-#line 139 "a.y"
+ case 35:
+#line 140 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 35:
-#line 146 "a.y"
+ case 36:
+#line 147 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (2)].gen);
(yyval.gen2).to = nullgen;
}
break;
- case 36:
-#line 151 "a.y"
+ case 37:
+#line 152 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (1)].gen);
(yyval.gen2).to = nullgen;
}
break;
- case 37:
-#line 158 "a.y"
+ case 38:
+#line 159 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(2) - (2)].gen);
}
break;
- case 38:
-#line 163 "a.y"
+ case 39:
+#line 164 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(1) - (1)].gen);
}
break;
- case 39:
-#line 170 "a.y"
+ case 40:
+#line 171 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(2) - (2)].gen);
}
break;
- case 40:
-#line 175 "a.y"
+ case 41:
+#line 176 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(1) - (1)].gen);
}
break;
- case 41:
-#line 180 "a.y"
+ case 42:
+#line 181 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 42:
-#line 187 "a.y"
+ case 43:
+#line 188 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (5)].gen);
(yyval.gen2).from.scale = (yyvsp[(3) - (5)].lval);
@@ -1900,16 +1908,16 @@ yyreduce:
}
break;
- case 43:
-#line 195 "a.y"
+ case 44:
+#line 196 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 44:
-#line 200 "a.y"
+ case 45:
+#line 201 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (5)].gen);
(yyval.gen2).from.scale = (yyvsp[(3) - (5)].lval);
@@ -1917,32 +1925,32 @@ yyreduce:
}
break;
- case 45:
-#line 208 "a.y"
+ case 46:
+#line 209 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(2) - (2)].gen);
}
break;
- case 46:
-#line 213 "a.y"
+ case 47:
+#line 214 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(1) - (1)].gen);
}
break;
- case 49:
-#line 224 "a.y"
+ case 50:
+#line 225 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 50:
-#line 229 "a.y"
+ case 51:
+#line 230 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (5)].gen);
(yyval.gen2).to = (yyvsp[(3) - (5)].gen);
@@ -1952,16 +1960,16 @@ yyreduce:
}
break;
- case 51:
-#line 239 "a.y"
+ case 52:
+#line 240 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 52:
-#line 244 "a.y"
+ case 53:
+#line 245 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (5)].gen);
(yyval.gen2).to = (yyvsp[(3) - (5)].gen);
@@ -1971,32 +1979,32 @@ yyreduce:
}
break;
- case 53:
-#line 254 "a.y"
+ case 54:
+#line 255 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (2)].gen);
(yyval.gen2).to = nullgen;
}
break;
- case 54:
-#line 259 "a.y"
+ case 55:
+#line 260 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (1)].gen);
(yyval.gen2).to = nullgen;
}
break;
- case 55:
-#line 264 "a.y"
+ case 56:
+#line 265 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 56:
-#line 271 "a.y"
+ case 57:
+#line 272 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (5)].gen);
(yyval.gen2).to = (yyvsp[(3) - (5)].gen);
@@ -2004,8 +2012,8 @@ yyreduce:
}
break;
- case 57:
-#line 279 "a.y"
+ case 58:
+#line 280 "a.y"
{
(yyval.gen2).from = (yyvsp[(3) - (5)].gen);
(yyval.gen2).to = (yyvsp[(5) - (5)].gen);
@@ -2015,32 +2023,32 @@ yyreduce:
}
break;
- case 58:
-#line 288 "a.y"
+ case 59:
+#line 289 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = nullgen;
}
break;
- case 59:
-#line 293 "a.y"
+ case 60:
+#line 294 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (1)].gen);
(yyval.gen2).to = nullgen;
}
break;
- case 60:
-#line 300 "a.y"
+ case 61:
+#line 301 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 61:
-#line 305 "a.y"
+ case 62:
+#line 306 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (5)].gen);
(yyval.gen2).from.scale = (yyvsp[(3) - (5)].lval);
@@ -2048,22 +2056,30 @@ yyreduce:
}
break;
- case 66:
-#line 319 "a.y"
+ case 63:
+#line 314 "a.y"
+ {
+ (yyval.gen2).from = (yyvsp[(1) - (3)].gen);
+ (yyval.gen2).to = (yyvsp[(3) - (3)].gen);
+ }
+ break;
+
+ case 68:
+#line 327 "a.y"
{
(yyval.gen) = (yyvsp[(2) - (2)].gen);
}
break;
- case 67:
-#line 323 "a.y"
+ case 69:
+#line 331 "a.y"
{
(yyval.gen) = (yyvsp[(2) - (2)].gen);
}
break;
- case 72:
-#line 335 "a.y"
+ case 74:
+#line 343 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_BRANCH;
@@ -2071,8 +2087,8 @@ yyreduce:
}
break;
- case 73:
-#line 341 "a.y"
+ case 75:
+#line 349 "a.y"
{
(yyval.gen) = nullgen;
if(pass == 2)
@@ -2083,8 +2099,8 @@ yyreduce:
}
break;
- case 74:
-#line 350 "a.y"
+ case 76:
+#line 358 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_BRANCH;
@@ -2093,64 +2109,64 @@ yyreduce:
}
break;
- case 75:
-#line 359 "a.y"
+ case 77:
+#line 367 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = (yyvsp[(1) - (1)].lval);
}
break;
- case 76:
-#line 364 "a.y"
+ case 78:
+#line 372 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = (yyvsp[(1) - (1)].lval);
}
break;
- case 77:
-#line 369 "a.y"
+ case 79:
+#line 377 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = (yyvsp[(1) - (1)].lval);
}
break;
- case 78:
-#line 374 "a.y"
+ case 80:
+#line 382 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = (yyvsp[(1) - (1)].lval);
}
break;
- case 79:
-#line 379 "a.y"
+ case 81:
+#line 387 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_SP;
}
break;
- case 80:
-#line 384 "a.y"
+ case 82:
+#line 392 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = (yyvsp[(1) - (1)].lval);
}
break;
- case 81:
-#line 389 "a.y"
+ case 83:
+#line 397 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = (yyvsp[(1) - (1)].lval);
}
break;
- case 82:
-#line 395 "a.y"
+ case 84:
+#line 403 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_CONST;
@@ -2158,8 +2174,8 @@ yyreduce:
}
break;
- case 83:
-#line 403 "a.y"
+ case 85:
+#line 411 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_CONST;
@@ -2167,8 +2183,8 @@ yyreduce:
}
break;
- case 84:
-#line 409 "a.y"
+ case 86:
+#line 417 "a.y"
{
(yyval.gen) = (yyvsp[(2) - (2)].gen);
(yyval.gen).index = (yyvsp[(2) - (2)].gen).type;
@@ -2181,8 +2197,8 @@ yyreduce:
}
break;
- case 85:
-#line 420 "a.y"
+ case 87:
+#line 428 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_SCONST;
@@ -2190,8 +2206,8 @@ yyreduce:
}
break;
- case 86:
-#line 426 "a.y"
+ case 88:
+#line 434 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_FCONST;
@@ -2199,8 +2215,8 @@ yyreduce:
}
break;
- case 87:
-#line 432 "a.y"
+ case 89:
+#line 440 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_FCONST;
@@ -2208,8 +2224,8 @@ yyreduce:
}
break;
- case 88:
-#line 438 "a.y"
+ case 90:
+#line 446 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_FCONST;
@@ -2217,8 +2233,8 @@ yyreduce:
}
break;
- case 89:
-#line 444 "a.y"
+ case 91:
+#line 452 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_FCONST;
@@ -2226,8 +2242,8 @@ yyreduce:
}
break;
- case 92:
-#line 456 "a.y"
+ case 94:
+#line 464 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+D_NONE;
@@ -2235,8 +2251,8 @@ yyreduce:
}
break;
- case 93:
-#line 462 "a.y"
+ case 95:
+#line 470 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+(yyvsp[(3) - (4)].lval);
@@ -2244,8 +2260,8 @@ yyreduce:
}
break;
- case 94:
-#line 468 "a.y"
+ case 96:
+#line 476 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+D_SP;
@@ -2253,8 +2269,8 @@ yyreduce:
}
break;
- case 95:
-#line 474 "a.y"
+ case 97:
+#line 482 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+(yyvsp[(3) - (4)].lval);
@@ -2262,8 +2278,8 @@ yyreduce:
}
break;
- case 96:
-#line 480 "a.y"
+ case 98:
+#line 488 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+D_NONE;
@@ -2274,8 +2290,8 @@ yyreduce:
}
break;
- case 97:
-#line 489 "a.y"
+ case 99:
+#line 497 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+(yyvsp[(3) - (9)].lval);
@@ -2286,24 +2302,24 @@ yyreduce:
}
break;
- case 98:
-#line 498 "a.y"
+ case 100:
+#line 506 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+(yyvsp[(2) - (3)].lval);
}
break;
- case 99:
-#line 503 "a.y"
+ case 101:
+#line 511 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+D_SP;
}
break;
- case 100:
-#line 508 "a.y"
+ case 102:
+#line 516 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+D_NONE;
@@ -2313,8 +2329,8 @@ yyreduce:
}
break;
- case 101:
-#line 516 "a.y"
+ case 103:
+#line 524 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+(yyvsp[(2) - (8)].lval);
@@ -2324,15 +2340,15 @@ yyreduce:
}
break;
- case 102:
-#line 526 "a.y"
+ case 104:
+#line 534 "a.y"
{
(yyval.gen) = (yyvsp[(1) - (1)].gen);
}
break;
- case 103:
-#line 530 "a.y"
+ case 105:
+#line 538 "a.y"
{
(yyval.gen) = (yyvsp[(1) - (6)].gen);
(yyval.gen).index = (yyvsp[(3) - (6)].lval);
@@ -2341,8 +2357,8 @@ yyreduce:
}
break;
- case 104:
-#line 539 "a.y"
+ case 106:
+#line 547 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = (yyvsp[(4) - (5)].lval);
@@ -2351,8 +2367,8 @@ yyreduce:
}
break;
- case 105:
-#line 546 "a.y"
+ case 107:
+#line 554 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_STATIC;
@@ -2361,164 +2377,164 @@ yyreduce:
}
break;
- case 106:
-#line 554 "a.y"
+ case 108:
+#line 562 "a.y"
{
(yyval.lval) = 0;
}
break;
- case 107:
-#line 558 "a.y"
+ case 109:
+#line 566 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (2)].lval);
}
break;
- case 108:
-#line 562 "a.y"
+ case 110:
+#line 570 "a.y"
{
(yyval.lval) = -(yyvsp[(2) - (2)].lval);
}
break;
- case 110:
-#line 569 "a.y"
+ case 112:
+#line 577 "a.y"
{
(yyval.lval) = D_AUTO;
}
break;
- case 113:
-#line 577 "a.y"
+ case 115:
+#line 585 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (1)].sym)->value;
}
break;
- case 114:
-#line 581 "a.y"
+ case 116:
+#line 589 "a.y"
{
(yyval.lval) = -(yyvsp[(2) - (2)].lval);
}
break;
- case 115:
-#line 585 "a.y"
+ case 117:
+#line 593 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (2)].lval);
}
break;
- case 116:
-#line 589 "a.y"
+ case 118:
+#line 597 "a.y"
{
(yyval.lval) = ~(yyvsp[(2) - (2)].lval);
}
break;
- case 117:
-#line 593 "a.y"
+ case 119:
+#line 601 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (3)].lval);
}
break;
- case 118:
-#line 599 "a.y"
+ case 120:
+#line 607 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (1)].lval) & 0xffffffffLL;
}
break;
- case 119:
-#line 603 "a.y"
+ case 121:
+#line 611 "a.y"
{
(yyval.lval) = -(yyvsp[(2) - (2)].lval) & 0xffffffffLL;
}
break;
- case 120:
-#line 607 "a.y"
+ case 122:
+#line 615 "a.y"
{
(yyval.lval) = ((yyvsp[(1) - (3)].lval) & 0xffffffffLL) +
(((yyvsp[(3) - (3)].lval) & 0xffffLL) << 32);
}
break;
- case 121:
-#line 612 "a.y"
+ case 123:
+#line 620 "a.y"
{
(yyval.lval) = (-(yyvsp[(2) - (4)].lval) & 0xffffffffLL) +
(((yyvsp[(4) - (4)].lval) & 0xffffLL) << 32);
}
break;
- case 123:
-#line 620 "a.y"
+ case 125:
+#line 628 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) + (yyvsp[(3) - (3)].lval);
}
break;
- case 124:
-#line 624 "a.y"
+ case 126:
+#line 632 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) - (yyvsp[(3) - (3)].lval);
}
break;
- case 125:
-#line 628 "a.y"
+ case 127:
+#line 636 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) * (yyvsp[(3) - (3)].lval);
}
break;
- case 126:
-#line 632 "a.y"
+ case 128:
+#line 640 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) / (yyvsp[(3) - (3)].lval);
}
break;
- case 127:
-#line 636 "a.y"
+ case 129:
+#line 644 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) % (yyvsp[(3) - (3)].lval);
}
break;
- case 128:
-#line 640 "a.y"
+ case 130:
+#line 648 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (4)].lval) << (yyvsp[(4) - (4)].lval);
}
break;
- case 129:
-#line 644 "a.y"
+ case 131:
+#line 652 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (4)].lval) >> (yyvsp[(4) - (4)].lval);
}
break;
- case 130:
-#line 648 "a.y"
+ case 132:
+#line 656 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) & (yyvsp[(3) - (3)].lval);
}
break;
- case 131:
-#line 652 "a.y"
+ case 133:
+#line 660 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) ^ (yyvsp[(3) - (3)].lval);
}
break;
- case 132:
-#line 656 "a.y"
+ case 134:
+#line 664 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) | (yyvsp[(3) - (3)].lval);
}
@@ -2526,7 +2542,7 @@ yyreduce:
/* Line 1267 of yacc.c. */
-#line 2530 "y.tab.c"
+#line 2546 "y.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
diff --git a/src/cmd/6a/y.tab.h b/src/cmd/6a/y.tab.h
index 3cca766d3..bb529b828 100644
--- a/src/cmd/6a/y.tab.h
+++ b/src/cmd/6a/y.tab.h
@@ -50,28 +50,29 @@
LTYPER = 266,
LTYPET = 267,
LTYPEG = 268,
- LTYPES = 269,
- LTYPEM = 270,
- LTYPEI = 271,
- LTYPEXC = 272,
- LTYPEX = 273,
- LTYPERT = 274,
- LCONST = 275,
- LFP = 276,
- LPC = 277,
- LSB = 278,
- LBREG = 279,
- LLREG = 280,
- LSREG = 281,
- LFREG = 282,
- LMREG = 283,
- LXREG = 284,
- LFCONST = 285,
- LSCONST = 286,
- LSP = 287,
- LNAME = 288,
- LLAB = 289,
- LVAR = 290
+ LTYPEPC = 269,
+ LTYPES = 270,
+ LTYPEM = 271,
+ LTYPEI = 272,
+ LTYPEXC = 273,
+ LTYPEX = 274,
+ LTYPERT = 275,
+ LCONST = 276,
+ LFP = 277,
+ LPC = 278,
+ LSB = 279,
+ LBREG = 280,
+ LLREG = 281,
+ LSREG = 282,
+ LFREG = 283,
+ LMREG = 284,
+ LXREG = 285,
+ LFCONST = 286,
+ LSCONST = 287,
+ LSP = 288,
+ LNAME = 289,
+ LLAB = 290,
+ LVAR = 291
};
#endif
/* Tokens. */
@@ -86,28 +87,29 @@
#define LTYPER 266
#define LTYPET 267
#define LTYPEG 268
-#define LTYPES 269
-#define LTYPEM 270
-#define LTYPEI 271
-#define LTYPEXC 272
-#define LTYPEX 273
-#define LTYPERT 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 LMREG 283
-#define LXREG 284
-#define LFCONST 285
-#define LSCONST 286
-#define LSP 287
-#define LNAME 288
-#define LLAB 289
-#define LVAR 290
+#define LTYPEPC 269
+#define LTYPES 270
+#define LTYPEM 271
+#define LTYPEI 272
+#define LTYPEXC 273
+#define LTYPEX 274
+#define LTYPERT 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 LMREG 284
+#define LXREG 285
+#define LFCONST 286
+#define LSCONST 287
+#define LSP 288
+#define LNAME 289
+#define LLAB 290
+#define LVAR 291
@@ -124,7 +126,7 @@ typedef union YYSTYPE
Gen2 gen2;
}
/* Line 1529 of yacc.c. */
-#line 128 "y.tab.h"
+#line 130 "y.tab.h"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1