summaryrefslogtreecommitdiff
path: root/src/cmd/8a
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/8a')
-rw-r--r--src/cmd/8a/a.y15
-rw-r--r--src/cmd/8a/lex.c6
-rw-r--r--src/cmd/8a/y.tab.c1572
-rw-r--r--src/cmd/8a/y.tab.h98
4 files changed, 922 insertions, 769 deletions
diff --git a/src/cmd/8a/a.y b/src/cmd/8a/a.y
index 60707d1c9..516e5fbe7 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> LCONST LFP LPC LSB
+%token <lval> LTYPEX 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
+%type <gen2> spec1 spec2 spec3 spec4 spec5 spec6 spec7 spec8 spec9 spec10
%%
prog:
| prog
@@ -117,6 +117,7 @@ inst:
| LTYPEI spec7 { outcode($1, &$2); }
| LTYPEG spec8 { outcode($1, &$2); }
| LTYPEXC spec9 { outcode($1, &$2); }
+| LTYPEX spec10 { outcode($1, &$2); }
nonnon:
{
@@ -296,6 +297,16 @@ spec9: /* CMPPS/CMPPD */
$$.to.offset = $5;
}
+spec10: /* PINSRD */
+ imm ',' rem ',' reg
+ {
+ $$.from = $3;
+ $$.to = $5;
+ if($1.type != D_CONST)
+ yyerror("illegal constant");
+ $$.to.offset = $1.offset;
+ }
+
rem:
reg
| mem
diff --git a/src/cmd/8a/lex.c b/src/cmd/8a/lex.c
index 770ca5a88..b8fc2c03e 100644
--- a/src/cmd/8a/lex.c
+++ b/src/cmd/8a/lex.c
@@ -306,6 +306,7 @@ struct
"CMPXCHGB", LTYPE3, ACMPXCHGB,
"CMPXCHGL", LTYPE3, ACMPXCHGL,
"CMPXCHGW", LTYPE3, ACMPXCHGW,
+ "CPUID", LTYPE0, ACPUID,
"DAA", LTYPE0, ADAA,
"DAS", LTYPE0, ADAS,
"DATA", LTYPED, ADATA,
@@ -408,6 +409,7 @@ struct
"MOVB", LTYPE3, AMOVB,
"MOVL", LTYPEM, AMOVL,
"MOVW", LTYPEM, AMOVW,
+ "MOVQ", LTYPEM, AMOVQ,
"MOVBLSX", LTYPE3, AMOVBLSX,
"MOVBLZX", LTYPE3, AMOVBLZX,
"MOVBWSX", LTYPE3, AMOVBWSX,
@@ -437,6 +439,7 @@ struct
"OUTSL", LTYPE0, AOUTSL,
"OUTSW", LTYPE0, AOUTSW,
"PAUSE", LTYPEN, APAUSE,
+ "PINSRD", LTYPEX, APINSRD,
"POPAL", LTYPE0, APOPAL,
"POPAW", LTYPE0, APOPAW,
"POPFL", LTYPE0, APOPFL,
@@ -687,6 +690,7 @@ struct
"ADDPS", LTYPE3, AADDPS,
"ADDSD", LTYPE3, AADDSD,
"ADDSS", LTYPE3, AADDSS,
+ "AESENC", LTYPE3, AAESENC,
"ANDNPD", LTYPE3, AANDNPD,
"ANDNPS", LTYPE3, AANDNPS,
"ANDPD", LTYPE3, AANDPD,
@@ -755,11 +759,13 @@ struct
"ORPD", LTYPE3, AORPD,
"ORPS", LTYPE3, AORPS,
"PADDQ", LTYPE3, APADDQ,
+ "PAND", LTYPE3, APAND,
"PMAXSW", LTYPE3, APMAXSW,
"PMAXUB", LTYPE3, APMAXUB,
"PMINSW", LTYPE3, APMINSW,
"PMINUB", LTYPE3, APMINUB,
"PSADBW", LTYPE3, APSADBW,
+ "PSHUFB", LTYPE3, APSHUFB,
"PSUBB", LTYPE3, APSUBB,
"PSUBL", LTYPE3, APSUBL,
"PSUBQ", LTYPE3, APSUBQ,
diff --git a/src/cmd/8a/y.tab.c b/src/cmd/8a/y.tab.c
index 38f2de52d..7eaff0bb0 100644
--- a/src/cmd/8a/y.tab.c
+++ b/src/cmd/8a/y.tab.c
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 2.6.5. */
+/* A Bison parser, made by GNU Bison 2.5. */
/* Bison implementation for Yacc-like parsers in C
- Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -44,7 +44,7 @@
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "2.6.5"
+#define YYBISON_VERSION "2.5"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -58,11 +58,14 @@
/* Pull parsers. */
#define YYPULL 1
+/* Using locations. */
+#define YYLSP_NEEDED 0
/* Copy the first part of user declarations. */
-/* Line 360 of yacc.c */
+
+/* Line 268 of yacc.c */
#line 31 "a.y"
#include <u.h>
@@ -70,16 +73,14 @@
#include <libc.h>
#include "a.h"
-/* Line 360 of yacc.c */
-#line 75 "y.tab.c"
-# ifndef YY_NULL
-# if defined __cplusplus && 201103L <= __cplusplus
-# define YY_NULL nullptr
-# else
-# define YY_NULL 0
-# endif
-# endif
+/* Line 268 of yacc.c */
+#line 79 "y.tab.c"
+
+/* Enabling traces. */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
/* Enabling verbose error messages. */
#ifdef YYERROR_VERBOSE
@@ -89,18 +90,12 @@
# define YYERROR_VERBOSE 0
#endif
-/* In a future release of Bison, this section will be replaced
- by #include "y.tab.h". */
-#ifndef YY_YY_Y_TAB_H_INCLUDED
-# define YY_YY_Y_TAB_H_INCLUDED
-/* Enabling traces. */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-#if YYDEBUG
-extern int yydebug;
+/* Enabling the token table. */
+#ifndef YYTOKEN_TABLE
+# define YYTOKEN_TABLE 0
#endif
+
/* Tokens. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
@@ -122,21 +117,22 @@ extern int yydebug;
LTYPEI = 270,
LTYPEG = 271,
LTYPEXC = 272,
- LCONST = 273,
- LFP = 274,
- LPC = 275,
- LSB = 276,
- LBREG = 277,
- LLREG = 278,
- LSREG = 279,
- LFREG = 280,
- LXREG = 281,
- LFCONST = 282,
- LSCONST = 283,
- LSP = 284,
- LNAME = 285,
- LLAB = 286,
- LVAR = 287
+ LTYPEX = 273,
+ LCONST = 274,
+ LFP = 275,
+ LPC = 276,
+ LSB = 277,
+ LBREG = 278,
+ LLREG = 279,
+ LSREG = 280,
+ LFREG = 281,
+ LXREG = 282,
+ LFCONST = 283,
+ LSCONST = 284,
+ LSP = 285,
+ LNAME = 286,
+ LLAB = 287,
+ LVAR = 288
};
#endif
/* Tokens. */
@@ -155,28 +151,31 @@ extern int yydebug;
#define LTYPEI 270
#define LTYPEG 271
#define LTYPEXC 272
-#define LCONST 273
-#define LFP 274
-#define LPC 275
-#define LSB 276
-#define LBREG 277
-#define LLREG 278
-#define LSREG 279
-#define LFREG 280
-#define LXREG 281
-#define LFCONST 282
-#define LSCONST 283
-#define LSP 284
-#define LNAME 285
-#define LLAB 286
-#define LVAR 287
+#define LTYPEX 273
+#define LCONST 274
+#define LFP 275
+#define LPC 276
+#define LSB 277
+#define LBREG 278
+#define LLREG 279
+#define LSREG 280
+#define LFREG 281
+#define LXREG 282
+#define LFCONST 283
+#define LSCONST 284
+#define LSP 285
+#define LNAME 286
+#define LLAB 287
+#define LVAR 288
+
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
{
-/* Line 376 of yacc.c */
+
+/* Line 293 of yacc.c */
#line 37 "a.y"
Sym *sym;
@@ -191,7 +190,8 @@ typedef union YYSTYPE
Gen2 gen2;
-/* Line 376 of yacc.c */
+
+/* Line 293 of yacc.c */
#line 196 "y.tab.c"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
@@ -199,28 +199,12 @@ typedef union YYSTYPE
# define YYSTYPE_IS_DECLARED 1
#endif
-extern YYSTYPE yylval;
-
-#ifdef YYPARSE_PARAM
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void *YYPARSE_PARAM);
-#else
-int yyparse ();
-#endif
-#else /* ! YYPARSE_PARAM */
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void);
-#else
-int yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
-
-#endif /* !YY_YY_Y_TAB_H_INCLUDED */
/* Copy the second part of user declarations. */
-/* Line 379 of yacc.c */
-#line 224 "y.tab.c"
+
+/* Line 343 of yacc.c */
+#line 208 "y.tab.c"
#ifdef short
# undef short
@@ -273,24 +257,24 @@ typedef short int yytype_int16;
# if defined YYENABLE_NLS && YYENABLE_NLS
# if ENABLE_NLS
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-# define YY_(Msgid) dgettext ("bison-runtime", Msgid)
+# define YY_(msgid) dgettext ("bison-runtime", msgid)
# endif
# endif
# ifndef YY_
-# define YY_(Msgid) Msgid
+# define YY_(msgid) msgid
# endif
#endif
/* Suppress unused-variable warnings by "using" E. */
#if ! defined lint || defined __GNUC__
-# define YYUSE(E) ((void) (E))
+# define YYUSE(e) ((void) (e))
#else
-# define YYUSE(E) /* empty */
+# define YYUSE(e) /* empty */
#endif
/* Identity function, used to suppress warnings about constant conditions. */
#ifndef lint
-# define YYID(N) (N)
+# define YYID(n) (n)
#else
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
@@ -326,7 +310,6 @@ YYID (yyi)
# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
- /* Use EXIT_SUCCESS as a witness for stdlib.h. */
# ifndef EXIT_SUCCESS
# define EXIT_SUCCESS 0
# endif
@@ -418,20 +401,20 @@ union yyalloc
#endif
#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
-/* Copy COUNT objects from SRC to DST. The source and destination do
+/* Copy COUNT objects from FROM to TO. The source and destination do
not overlap. */
# ifndef YYCOPY
# if defined __GNUC__ && 1 < __GNUC__
-# define YYCOPY(Dst, Src, Count) \
- __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
+# define YYCOPY(To, From, Count) \
+ __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
# else
-# define YYCOPY(Dst, Src, Count) \
- do \
- { \
- YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (Dst)[yyi] = (Src)[yyi]; \
- } \
+# define YYCOPY(To, From, Count) \
+ do \
+ { \
+ YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (To)[yyi] = (From)[yyi]; \
+ } \
while (YYID (0))
# endif
# endif
@@ -440,20 +423,20 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 544
+#define YYLAST 553
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 51
+#define YYNTOKENS 52
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 38
+#define YYNNTS 39
/* YYNRULES -- Number of rules. */
-#define YYNRULES 128
+#define YYNRULES 130
/* YYNRULES -- Number of states. */
-#define YYNSTATES 255
+#define YYNSTATES 262
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 287
+#define YYMAXUTOK 288
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -464,16 +447,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, 49, 12, 5, 2,
- 47, 48, 10, 8, 46, 9, 2, 11, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 43, 44,
- 6, 45, 7, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 50, 12, 5, 2,
+ 48, 49, 10, 8, 47, 9, 2, 11, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 44, 45,
+ 6, 46, 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, 50, 2, 2, 2,
+ 2, 2, 2, 2, 3, 2, 51, 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,
@@ -489,7 +472,7 @@ 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
+ 35, 36, 37, 38, 39, 40, 41, 42, 43
};
#if YYDEBUG
@@ -500,65 +483,67 @@ 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,
- 83, 85, 89, 93, 96, 98, 101, 103, 106, 108,
- 112, 118, 122, 128, 131, 133, 136, 138, 140, 144,
- 150, 154, 160, 163, 165, 169, 173, 179, 185, 187,
- 189, 191, 193, 196, 199, 201, 203, 205, 207, 209,
- 214, 217, 220, 222, 224, 226, 228, 230, 232, 235,
- 238, 241, 244, 249, 255, 259, 262, 264, 267, 271,
- 276, 278, 280, 282, 287, 292, 299, 309, 313, 317,
- 322, 328, 337, 339, 346, 352, 360, 361, 364, 367,
- 369, 371, 373, 375, 377, 380, 383, 386, 390, 392,
- 396, 400, 404, 408, 412, 417, 422, 426, 430
+ 85, 86, 88, 92, 96, 99, 101, 104, 106, 109,
+ 111, 115, 121, 125, 131, 134, 136, 139, 141, 143,
+ 147, 153, 157, 163, 166, 168, 172, 176, 182, 188,
+ 194, 196, 198, 200, 202, 205, 208, 210, 212, 214,
+ 216, 218, 223, 226, 229, 231, 233, 235, 237, 239,
+ 241, 244, 247, 250, 253, 258, 264, 268, 271, 273,
+ 276, 280, 285, 287, 289, 291, 296, 301, 308, 318,
+ 322, 326, 331, 337, 346, 348, 355, 361, 369, 370,
+ 373, 376, 378, 380, 382, 384, 386, 389, 392, 395,
+ 399, 401, 405, 409, 413, 417, 421, 426, 431, 435,
+ 439
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int8 yyrhs[] =
{
- 52, 0, -1, -1, -1, 52, 53, 54, -1, -1,
- 41, 43, 55, 54, -1, -1, 40, 43, 56, 54,
- -1, 44, -1, 57, 44, -1, 1, 44, -1, 40,
- 45, 88, -1, 42, 45, 88, -1, 13, 58, -1,
- 14, 62, -1, 15, 61, -1, 16, 59, -1, 17,
- 60, -1, 21, 63, -1, 19, 64, -1, 22, 65,
- -1, 18, 66, -1, 20, 67, -1, 23, 68, -1,
- 24, 69, -1, 25, 70, -1, 26, 71, -1, 27,
- 72, -1, -1, 46, -1, 75, 46, 73, -1, 73,
- 46, 75, -1, 75, 46, -1, 75, -1, 46, 73,
- -1, 73, -1, 46, 76, -1, 76, -1, 78, 46,
- 76, -1, 84, 11, 87, 46, 78, -1, 81, 46,
- 79, -1, 81, 46, 87, 46, 79, -1, 46, 74,
- -1, 74, -1, 10, 84, -1, 58, -1, 62, -1,
- 75, 46, 73, -1, 75, 46, 73, 43, 33, -1,
- 75, 46, 73, -1, 75, 46, 73, 43, 34, -1,
- 75, 46, -1, 75, -1, 75, 46, 73, -1, 81,
- 46, 78, -1, 81, 46, 87, 46, 78, -1, 77,
- 46, 73, 46, 87, -1, 77, -1, 81, -1, 76,
- -1, 83, -1, 10, 77, -1, 10, 82, -1, 77,
- -1, 82, -1, 78, -1, 73, -1, 78, -1, 87,
- 47, 30, 48, -1, 40, 85, -1, 41, 85, -1,
- 32, -1, 35, -1, 33, -1, 36, -1, 39, -1,
- 34, -1, 49, 87, -1, 49, 84, -1, 49, 38,
- -1, 49, 37, -1, 49, 47, 37, 48, -1, 49,
- 47, 9, 37, 48, -1, 49, 9, 37, -1, 49,
- 80, -1, 28, -1, 9, 28, -1, 28, 9, 28,
- -1, 9, 28, 9, 28, -1, 82, -1, 83, -1,
- 87, -1, 87, 47, 33, 48, -1, 87, 47, 39,
- 48, -1, 87, 47, 33, 10, 87, 48, -1, 87,
- 47, 33, 48, 47, 33, 10, 87, 48, -1, 47,
- 33, 48, -1, 47, 39, 48, -1, 87, 47, 34,
- 48, -1, 47, 33, 10, 87, 48, -1, 47, 33,
- 48, 47, 33, 10, 87, 48, -1, 84, -1, 84,
- 47, 33, 10, 87, 48, -1, 40, 85, 47, 86,
- 48, -1, 40, 6, 7, 85, 47, 31, 48, -1,
- -1, 8, 87, -1, 9, 87, -1, 31, -1, 39,
- -1, 29, -1, 28, -1, 42, -1, 9, 87, -1,
- 8, 87, -1, 50, 87, -1, 47, 88, 48, -1,
- 87, -1, 88, 8, 88, -1, 88, 9, 88, -1,
- 88, 10, 88, -1, 88, 11, 88, -1, 88, 12,
- 88, -1, 88, 6, 6, 88, -1, 88, 7, 7,
- 88, -1, 88, 5, 88, -1, 88, 4, 88, -1,
- 88, 3, 88, -1
+ 53, 0, -1, -1, -1, 53, 54, 55, -1, -1,
+ 42, 44, 56, 55, -1, -1, 41, 44, 57, 55,
+ -1, 45, -1, 58, 45, -1, 1, 45, -1, 41,
+ 46, 90, -1, 43, 46, 90, -1, 13, 59, -1,
+ 14, 63, -1, 15, 62, -1, 16, 60, -1, 17,
+ 61, -1, 21, 64, -1, 19, 65, -1, 22, 66,
+ -1, 18, 67, -1, 20, 68, -1, 23, 69, -1,
+ 24, 70, -1, 25, 71, -1, 26, 72, -1, 27,
+ 73, -1, 28, 74, -1, -1, 47, -1, 77, 47,
+ 75, -1, 75, 47, 77, -1, 77, 47, -1, 77,
+ -1, 47, 75, -1, 75, -1, 47, 78, -1, 78,
+ -1, 80, 47, 78, -1, 86, 11, 89, 47, 80,
+ -1, 83, 47, 81, -1, 83, 47, 89, 47, 81,
+ -1, 47, 76, -1, 76, -1, 10, 86, -1, 59,
+ -1, 63, -1, 77, 47, 75, -1, 77, 47, 75,
+ 44, 34, -1, 77, 47, 75, -1, 77, 47, 75,
+ 44, 35, -1, 77, 47, -1, 77, -1, 77, 47,
+ 75, -1, 83, 47, 80, -1, 83, 47, 89, 47,
+ 80, -1, 79, 47, 75, 47, 89, -1, 80, 47,
+ 75, 47, 79, -1, 79, -1, 83, -1, 78, -1,
+ 85, -1, 10, 79, -1, 10, 84, -1, 79, -1,
+ 84, -1, 80, -1, 75, -1, 80, -1, 89, 48,
+ 31, 49, -1, 41, 87, -1, 42, 87, -1, 33,
+ -1, 36, -1, 34, -1, 37, -1, 40, -1, 35,
+ -1, 50, 89, -1, 50, 86, -1, 50, 39, -1,
+ 50, 38, -1, 50, 48, 38, 49, -1, 50, 48,
+ 9, 38, 49, -1, 50, 9, 38, -1, 50, 82,
+ -1, 29, -1, 9, 29, -1, 29, 9, 29, -1,
+ 9, 29, 9, 29, -1, 84, -1, 85, -1, 89,
+ -1, 89, 48, 34, 49, -1, 89, 48, 40, 49,
+ -1, 89, 48, 34, 10, 89, 49, -1, 89, 48,
+ 34, 49, 48, 34, 10, 89, 49, -1, 48, 34,
+ 49, -1, 48, 40, 49, -1, 89, 48, 35, 49,
+ -1, 48, 34, 10, 89, 49, -1, 48, 34, 49,
+ 48, 34, 10, 89, 49, -1, 86, -1, 86, 48,
+ 34, 10, 89, 49, -1, 41, 87, 48, 88, 49,
+ -1, 41, 6, 7, 87, 48, 32, 49, -1, -1,
+ 8, 89, -1, 9, 89, -1, 32, -1, 40, -1,
+ 30, -1, 29, -1, 43, -1, 9, 89, -1, 8,
+ 89, -1, 51, 89, -1, 48, 90, 49, -1, 89,
+ -1, 90, 8, 90, -1, 90, 9, 90, -1, 90,
+ 10, 90, -1, 90, 11, 90, -1, 90, 12, 90,
+ -1, 90, 6, 6, 90, -1, 90, 7, 7, 90,
+ -1, 90, 5, 90, -1, 90, 4, 90, -1, 90,
+ 3, 90, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
@@ -566,21 +551,22 @@ 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, 122,
- 126, 133, 140, 147, 152, 159, 164, 171, 176, 181,
- 188, 196, 201, 209, 214, 219, 228, 229, 232, 237,
- 247, 252, 262, 267, 272, 279, 284, 292, 300, 301,
- 304, 305, 306, 310, 314, 315, 316, 319, 320, 323,
- 329, 338, 347, 352, 357, 362, 367, 372, 379, 385,
- 396, 402, 408, 414, 420, 428, 437, 442, 447, 452,
- 459, 460, 463, 469, 475, 481, 490, 499, 504, 509,
- 515, 523, 533, 537, 546, 553, 562, 565, 569, 575,
- 576, 580, 583, 584, 588, 592, 596, 600, 606, 607,
- 611, 615, 619, 623, 627, 631, 635, 639, 643
+ 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
+ 123, 127, 134, 141, 148, 153, 160, 165, 172, 177,
+ 182, 189, 197, 202, 210, 215, 220, 229, 230, 233,
+ 238, 248, 253, 263, 268, 273, 280, 285, 293, 301,
+ 311, 312, 315, 316, 317, 321, 325, 326, 327, 330,
+ 331, 334, 340, 349, 358, 363, 368, 373, 378, 383,
+ 390, 396, 407, 413, 419, 425, 431, 439, 448, 453,
+ 458, 463, 470, 471, 474, 480, 486, 492, 501, 510,
+ 515, 520, 526, 534, 544, 548, 557, 564, 573, 576,
+ 580, 586, 587, 591, 594, 595, 599, 603, 607, 611,
+ 617, 618, 622, 626, 630, 634, 638, 642, 646, 650,
+ 654
};
#endif
-#if YYDEBUG || YYERROR_VERBOSE || 0
+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] =
@@ -588,14 +574,15 @@ static const char *const yytname[] =
"$end", "error", "$undefined", "'|'", "'^'", "'&'", "'<'", "'>'", "'+'",
"'-'", "'*'", "'/'", "'%'", "LTYPE0", "LTYPE1", "LTYPE2", "LTYPE3",
"LTYPE4", "LTYPEC", "LTYPED", "LTYPEN", "LTYPER", "LTYPET", "LTYPES",
- "LTYPEM", "LTYPEI", "LTYPEG", "LTYPEXC", "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", "rem",
- "rom", "rim", "rel", "reg", "imm", "imm2", "con2", "mem", "omem", "nmem",
- "nam", "offset", "pointer", "con", "expr", YY_NULL
+ "LTYPEM", "LTYPEI", "LTYPEG", "LTYPEXC", "LTYPEX", "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", "rem", "rom", "rim", "rel", "reg", "imm",
+ "imm2", "con2", "mem", "omem", "nmem", "nam", "offset", "pointer", "con",
+ "expr", 0
};
#endif
@@ -608,27 +595,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, 58, 59, 61, 44, 40, 41, 36,
- 126
+ 285, 286, 287, 288, 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, 51, 52, 53, 52, 55, 54, 56, 54, 54,
- 54, 54, 57, 57, 57, 57, 57, 57, 57, 57,
- 57, 57, 57, 57, 57, 57, 57, 57, 57, 58,
- 58, 59, 60, 61, 61, 62, 62, 63, 63, 63,
- 64, 65, 65, 66, 66, 66, 67, 67, 68, 68,
- 69, 69, 70, 70, 70, 71, 71, 72, 73, 73,
- 74, 74, 74, 74, 74, 74, 74, 75, 75, 76,
- 76, 76, 77, 77, 77, 77, 77, 77, 78, 78,
- 78, 78, 78, 78, 78, 79, 80, 80, 80, 80,
- 81, 81, 82, 82, 82, 82, 82, 82, 82, 82,
- 82, 82, 83, 83, 84, 84, 85, 85, 85, 86,
- 86, 86, 87, 87, 87, 87, 87, 87, 88, 88,
- 88, 88, 88, 88, 88, 88, 88, 88, 88
+ 0, 52, 53, 54, 53, 56, 55, 57, 55, 55,
+ 55, 55, 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
+ 59, 59, 60, 61, 62, 62, 63, 63, 64, 64,
+ 64, 65, 66, 66, 67, 67, 67, 68, 68, 69,
+ 69, 70, 70, 71, 71, 71, 72, 72, 73, 74,
+ 75, 75, 76, 76, 76, 76, 76, 76, 76, 77,
+ 77, 78, 78, 78, 79, 79, 79, 79, 79, 79,
+ 80, 80, 80, 80, 80, 80, 80, 81, 82, 82,
+ 82, 82, 83, 83, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 85, 85, 86, 86, 87, 87,
+ 87, 88, 88, 88, 89, 89, 89, 89, 89, 89,
+ 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
+ 90
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -636,17 +624,18 @@ 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, 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, 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, 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, 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,
+ 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, 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 reduction number in state STATE-NUM.
@@ -654,243 +643,248 @@ static const yytype_uint8 yyr2[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 2, 3, 1, 0, 0, 29, 0, 0, 0, 0,
- 0, 0, 29, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 9, 4, 0, 11, 30, 14, 0,
- 0, 112, 72, 74, 77, 73, 75, 76, 106, 113,
- 0, 0, 0, 15, 36, 58, 59, 90, 91, 102,
- 92, 0, 16, 67, 34, 68, 17, 0, 18, 0,
- 0, 106, 106, 0, 22, 44, 60, 64, 66, 65,
- 61, 92, 20, 0, 30, 46, 47, 23, 106, 0,
- 0, 19, 38, 0, 0, 21, 0, 24, 0, 25,
- 0, 26, 53, 27, 0, 28, 0, 7, 0, 5,
- 0, 10, 115, 114, 0, 0, 0, 0, 35, 0,
- 0, 118, 0, 116, 0, 0, 0, 81, 80, 0,
- 79, 78, 33, 0, 0, 62, 63, 45, 70, 71,
- 0, 43, 0, 0, 70, 37, 0, 0, 0, 0,
- 0, 52, 0, 0, 0, 12, 0, 13, 106, 107,
- 108, 0, 0, 97, 98, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 117, 0, 0, 0, 0,
- 84, 0, 0, 31, 32, 0, 0, 39, 0, 41,
- 0, 48, 50, 54, 55, 0, 0, 8, 6, 0,
- 111, 109, 110, 0, 0, 0, 128, 127, 126, 0,
- 0, 119, 120, 121, 122, 123, 0, 0, 93, 99,
- 94, 0, 82, 69, 0, 0, 86, 85, 0, 0,
- 0, 0, 0, 0, 104, 100, 0, 124, 125, 0,
- 0, 0, 83, 40, 87, 0, 42, 49, 51, 56,
- 57, 0, 0, 103, 95, 0, 0, 88, 105, 0,
- 0, 89, 101, 0, 96
+ 2, 3, 1, 0, 0, 30, 0, 0, 0, 0,
+ 0, 0, 30, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 9, 4, 0, 11, 31, 14,
+ 0, 0, 114, 74, 76, 79, 75, 77, 78, 108,
+ 115, 0, 0, 0, 15, 37, 60, 61, 92, 93,
+ 104, 94, 0, 16, 69, 35, 70, 17, 0, 18,
+ 0, 0, 108, 108, 0, 22, 45, 62, 66, 68,
+ 67, 63, 94, 20, 0, 31, 47, 48, 23, 108,
+ 0, 0, 19, 39, 0, 0, 21, 0, 24, 0,
+ 25, 0, 26, 54, 27, 0, 28, 0, 29, 0,
+ 7, 0, 5, 0, 10, 117, 116, 0, 0, 0,
+ 0, 36, 0, 0, 120, 0, 118, 0, 0, 0,
+ 83, 82, 0, 81, 80, 34, 0, 0, 64, 65,
+ 46, 72, 73, 0, 44, 0, 0, 72, 38, 0,
+ 0, 0, 0, 0, 53, 0, 0, 0, 0, 12,
+ 0, 13, 108, 109, 110, 0, 0, 99, 100, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 119,
+ 0, 0, 0, 0, 86, 0, 0, 32, 33, 0,
+ 0, 40, 0, 42, 0, 49, 51, 55, 56, 0,
+ 0, 0, 8, 6, 0, 113, 111, 112, 0, 0,
+ 0, 130, 129, 128, 0, 0, 121, 122, 123, 124,
+ 125, 0, 0, 95, 101, 96, 0, 84, 71, 0,
+ 0, 88, 87, 0, 0, 0, 0, 0, 0, 0,
+ 106, 102, 0, 126, 127, 0, 0, 0, 85, 41,
+ 89, 0, 43, 50, 52, 57, 58, 59, 0, 0,
+ 105, 97, 0, 0, 90, 107, 0, 0, 91, 103,
+ 0, 98
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 1, 3, 24, 146, 144, 25, 28, 56, 58,
- 52, 43, 81, 72, 85, 64, 77, 87, 89, 91,
- 93, 95, 53, 65, 54, 66, 45, 55, 179, 217,
- 46, 47, 48, 49, 107, 193, 50, 112
+ -1, 1, 3, 25, 150, 148, 26, 29, 57, 59,
+ 53, 44, 82, 73, 86, 65, 78, 88, 90, 92,
+ 94, 96, 98, 54, 66, 55, 67, 46, 56, 183,
+ 222, 47, 48, 49, 50, 110, 198, 51, 115
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -96
+#define YYPACT_NINF -100
static const yytype_int16 yypact[] =
{
- -96, 34, -96, 158, -38, -30, 267, 288, 288, 338,
- 195, 20, 317, 210, 428, 288, 288, 288, 428, 68,
- -6, 2, 42, -96, -96, 45, -96, -96, -96, 449,
- 449, -96, -96, -96, -96, -96, -96, -96, 127, -96,
- 338, 388, 449, -96, -96, -96, -96, -96, -96, 46,
- 47, 382, -96, -96, 52, -96, -96, 59, -96, 62,
- 338, 127, 19, 238, -96, -96, -96, -96, -96, -96,
- -96, 63, -96, 103, 338, -96, -96, -96, 19, 403,
- 449, -96, -96, 69, 78, -96, 81, -96, 94, -96,
- 97, -96, 98, -96, 102, -96, 111, -96, 449, -96,
- 449, -96, -96, -96, 142, 449, 449, 113, -96, 23,
- 110, -96, 74, -96, 137, 58, 432, -96, -96, 439,
- -96, -96, -96, 338, 288, -96, -96, -96, 113, -96,
- 367, -96, 13, 449, -96, -96, 403, 156, 16, 338,
- 338, 338, 443, 338, 158, 523, 158, 523, 19, -96,
- -96, 11, 449, 140, -96, 449, 449, 449, 182, 194,
- 449, 449, 449, 449, 449, -96, 197, 25, 160, 161,
- -96, 475, 162, -96, -96, 163, 168, -96, 8, -96,
- 169, 173, 174, -96, -96, 175, 176, -96, -96, 177,
- -96, -96, -96, 172, 178, 192, 532, 157, 498, 449,
- 449, 64, 64, -96, -96, -96, 449, 449, 186, -96,
- -96, 191, -96, -96, 200, 215, 244, -96, 205, 222,
- 224, 200, 449, 230, -96, -96, 252, 183, 183, 216,
- 217, 234, -96, -96, 254, 240, -96, -96, -96, -96,
- -96, 221, 449, -96, -96, 271, 255, -96, -96, 236,
- 449, -96, -96, 241, -96
+ -100, 22, -100, 165, -32, -22, 263, 286, 286, 332,
+ 195, -1, 309, 212, 414, 286, 286, 286, 414, 81,
+ 7, -16, 24, -12, -100, -100, -4, -100, -100, -100,
+ 485, 485, -100, -100, -100, -100, -100, -100, -100, 39,
+ -100, 332, 385, 485, -100, -100, -100, -100, -100, -100,
+ 46, 65, 370, -100, -100, 72, -100, -100, 75, -100,
+ 76, 332, 39, 102, 240, -100, -100, -100, -100, -100,
+ -100, -100, 77, -100, 117, 332, -100, -100, -100, 102,
+ 408, 485, -100, -100, 83, 85, -100, 89, -100, 91,
+ -100, 92, -100, 97, -100, 98, -100, 100, -100, 101,
+ -100, 485, -100, 485, -100, -100, -100, 135, 485, 485,
+ 104, -100, -6, 113, -100, 71, -100, 119, 32, 423,
+ -100, -100, 438, -100, -100, -100, 332, 286, -100, -100,
+ -100, 104, -100, 355, -100, 29, 485, -100, -100, 408,
+ 146, 455, 332, 332, 332, 461, 332, 332, 165, 164,
+ 165, 164, 102, -100, -100, 6, 485, 161, -100, 485,
+ 485, 485, 206, 207, 485, 485, 485, 485, 485, -100,
+ 203, 4, 166, 167, -100, 470, 173, -100, -100, 174,
+ 178, -100, 15, -100, 179, 183, 189, -100, -100, 187,
+ 193, 197, -100, -100, 204, -100, -100, -100, 202, 208,
+ 222, 533, 541, 78, 485, 485, 95, 95, -100, -100,
+ -100, 485, 485, 210, -100, -100, 215, -100, -100, 7,
+ 232, 256, -100, 216, 233, 235, 7, 485, 81, 236,
+ -100, -100, 268, 188, 188, 230, 237, 250, -100, -100,
+ 276, 258, -100, -100, -100, -100, -100, -100, 244, 485,
+ -100, -100, 279, 272, -100, -100, 253, 485, -100, -100,
+ 259, -100
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -96, -96, -96, -95, -96, -96, -96, 270, -96, -96,
- -96, 274, -96, -96, -96, -96, -96, -96, -96, -96,
- -96, -96, -2, 227, 6, -12, -1, -8, 73, -96,
- 12, 1, 5, -3, -49, -96, -10, -44
+ -100, -100, -100, -99, -100, -100, -100, 293, -100, -100,
+ -100, 295, -100, -100, -100, -100, -100, -100, -100, -100,
+ -100, -100, -100, 17, 245, 0, -7, -9, -8, 90,
+ -100, 13, 1, -3, -2, -44, -100, -10, -64
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule which
number is the opposite. If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -1
-static const yytype_uint8 yytable[] =
+static const yytype_uint16 yytable[] =
{
- 71, 82, 68, 84, 44, 83, 26, 59, 73, 67,
- 44, 69, 128, 129, 57, 70, 27, 215, 96, 102,
- 103, 88, 90, 92, 29, 30, 86, 105, 106, 134,
- 94, 111, 113, 152, 2, 207, 216, 97, 108, 98,
- 190, 121, 191, 175, 31, 99, 167, 168, 120, 187,
- 192, 188, 169, 71, 145, 68, 147, 127, 39, 125,
- 38, 126, 67, 80, 69, 178, 42, 135, 70, 84,
- 111, 153, 108, 208, 162, 163, 164, 155, 156, 157,
- 158, 159, 160, 161, 162, 163, 164, 100, 111, 101,
- 111, 167, 168, 114, 115, 149, 150, 169, 122, 189,
- 32, 33, 34, 35, 36, 123, 103, 37, 124, 111,
- 132, 196, 197, 198, 133, 136, 201, 202, 203, 204,
- 205, 173, 165, 176, 177, 137, 84, 138, 180, 125,
- 174, 126, 185, 104, 184, 105, 106, 181, 182, 183,
- 139, 186, 194, 140, 141, 111, 111, 111, 142, 148,
- 111, 111, 111, 111, 111, 227, 228, 143, 154, 4,
- 151, 103, 157, 158, 159, 160, 161, 162, 163, 164,
- 166, 5, 6, 7, 8, 9, 10, 11, 12, 13,
- 14, 15, 16, 17, 18, 19, 175, 195, 199, 111,
- 111, 160, 161, 162, 163, 164, 229, 230, 20, 21,
- 22, 200, 23, 29, 30, 60, 233, 206, 209, 210,
- 212, 213, 240, 239, 214, 218, 219, 220, 29, 30,
- 224, 221, 222, 31, 223, 226, 225, 32, 33, 34,
- 35, 36, 249, 231, 37, 61, 62, 39, 31, 232,
- 253, 63, 41, 234, 51, 42, 29, 30, 130, 51,
- 78, 62, 39, 235, 178, 237, 79, 80, 238, 51,
- 42, 241, 242, 246, 243, 244, 31, 245, 247, 248,
- 32, 33, 34, 35, 36, 29, 30, 37, 61, 62,
- 39, 250, 75, 251, 252, 41, 76, 51, 42, 254,
- 131, 236, 0, 0, 0, 31, 29, 30, 0, 32,
- 33, 34, 35, 36, 0, 0, 37, 38, 0, 39,
- 0, 0, 0, 40, 41, 0, 31, 42, 0, 0,
- 32, 33, 34, 35, 36, 29, 30, 37, 38, 0,
- 39, 0, 0, 0, 0, 41, 0, 51, 42, 0,
- 0, 0, 0, 0, 0, 31, 29, 30, 0, 32,
- 33, 34, 35, 36, 0, 0, 37, 38, 0, 39,
- 0, 0, 0, 74, 41, 0, 31, 42, 0, 0,
- 32, 33, 34, 35, 36, 29, 30, 37, 38, 0,
- 39, 0, 0, 0, 0, 41, 0, 0, 42, 0,
- 29, 116, 0, 0, 0, 31, 29, 30, 0, 32,
- 33, 34, 35, 36, 0, 0, 37, 0, 0, 39,
- 31, 29, 30, 0, 41, 0, 31, 42, 0, 117,
- 118, 109, 38, 0, 39, 0, 0, 110, 0, 119,
- 39, 31, 42, 0, 0, 80, 29, 30, 42, 0,
- 29, 30, 0, 78, 62, 39, 0, 29, 171, 0,
- 80, 29, 30, 42, 0, 0, 31, 29, 30, 0,
- 31, 0, 0, 0, 0, 0, 0, 31, 38, 170,
- 39, 31, 0, 0, 39, 41, 172, 31, 42, 80,
- 0, 39, 42, 29, 30, 39, 80, 0, 0, 42,
- 80, 39, 51, 42, 0, 0, 80, 0, 0, 42,
- 0, 0, 0, 31, 158, 159, 160, 161, 162, 163,
- 164, 0, 211, 0, 0, 0, 0, 39, 0, 0,
- 0, 0, 80, 0, 0, 42, 155, 156, 157, 158,
- 159, 160, 161, 162, 163, 164, 156, 157, 158, 159,
- 160, 161, 162, 163, 164
+ 72, 68, 69, 85, 156, 84, 83, 71, 58, 74,
+ 97, 70, 99, 27, 212, 89, 91, 93, 131, 132,
+ 105, 106, 2, 45, 220, 28, 60, 87, 100, 45,
+ 101, 95, 114, 116, 103, 137, 195, 149, 196, 151,
+ 39, 104, 124, 157, 221, 107, 197, 108, 109, 192,
+ 123, 193, 128, 213, 72, 68, 69, 52, 111, 130,
+ 179, 71, 129, 171, 172, 70, 171, 172, 102, 173,
+ 85, 114, 173, 138, 159, 160, 161, 162, 163, 164,
+ 165, 166, 167, 168, 162, 163, 164, 165, 166, 167,
+ 168, 114, 111, 114, 117, 201, 202, 203, 153, 154,
+ 206, 207, 208, 209, 210, 166, 167, 168, 194, 106,
+ 108, 109, 114, 118, 33, 34, 35, 36, 37, 125,
+ 169, 38, 126, 127, 128, 135, 180, 178, 136, 85,
+ 139, 184, 181, 140, 129, 189, 141, 188, 142, 143,
+ 233, 234, 152, 177, 144, 145, 199, 146, 147, 114,
+ 114, 114, 155, 170, 114, 114, 114, 114, 114, 185,
+ 186, 187, 158, 190, 191, 106, 4, 159, 160, 161,
+ 162, 163, 164, 165, 166, 167, 168, 179, 5, 6,
+ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 17, 18, 19, 20, 114, 114, 164, 165, 166, 167,
+ 168, 235, 236, 30, 31, 61, 21, 22, 23, 200,
+ 24, 239, 204, 211, 205, 214, 215, 246, 245, 247,
+ 30, 31, 217, 218, 32, 219, 223, 224, 33, 34,
+ 35, 36, 37, 225, 226, 38, 62, 63, 40, 256,
+ 227, 32, 64, 42, 228, 52, 43, 260, 30, 31,
+ 133, 230, 229, 79, 63, 40, 232, 231, 237, 80,
+ 81, 240, 52, 43, 238, 241, 182, 243, 248, 32,
+ 244, 30, 31, 33, 34, 35, 36, 37, 249, 250,
+ 38, 62, 63, 40, 252, 253, 251, 254, 42, 257,
+ 52, 43, 32, 255, 30, 31, 33, 34, 35, 36,
+ 37, 258, 259, 38, 39, 76, 40, 77, 261, 134,
+ 41, 42, 0, 242, 43, 32, 0, 30, 31, 33,
+ 34, 35, 36, 37, 0, 0, 38, 39, 0, 40,
+ 0, 0, 0, 0, 42, 0, 52, 43, 32, 0,
+ 30, 31, 33, 34, 35, 36, 37, 0, 0, 38,
+ 39, 0, 40, 0, 0, 0, 75, 42, 0, 0,
+ 43, 32, 0, 30, 31, 33, 34, 35, 36, 37,
+ 0, 0, 38, 39, 0, 40, 0, 0, 30, 119,
+ 42, 0, 0, 43, 32, 0, 0, 0, 33, 34,
+ 35, 36, 37, 30, 31, 38, 0, 0, 40, 32,
+ 0, 0, 0, 42, 0, 0, 43, 0, 120, 121,
+ 0, 39, 0, 40, 32, 0, 30, 31, 122, 112,
+ 0, 43, 30, 31, 0, 113, 0, 0, 40, 0,
+ 0, 30, 31, 81, 0, 0, 43, 32, 0, 0,
+ 0, 0, 0, 32, 0, 0, 30, 175, 0, 79,
+ 63, 40, 32, 0, 0, 39, 81, 40, 0, 43,
+ 0, 174, 42, 30, 31, 43, 40, 32, 0, 30,
+ 31, 81, 0, 0, 43, 0, 176, 0, 30, 31,
+ 0, 40, 0, 0, 32, 0, 81, 0, 0, 43,
+ 32, 0, 0, 30, 31, 0, 0, 0, 40, 32,
+ 0, 0, 0, 81, 40, 182, 43, 0, 216, 81,
+ 0, 52, 43, 40, 32, 0, 0, 0, 81, 0,
+ 0, 43, 0, 0, 0, 0, 0, 0, 40, 0,
+ 0, 0, 0, 81, 0, 0, 43, 160, 161, 162,
+ 163, 164, 165, 166, 167, 168, 161, 162, 163, 164,
+ 165, 166, 167, 168
};
-#define yypact_value_is_default(Yystate) \
- (!!((Yystate) == (-96)))
+#define yypact_value_is_default(yystate) \
+ ((yystate) == (-100))
-#define yytable_value_is_error(Yytable_value) \
+#define yytable_value_is_error(yytable_value) \
YYID (0)
static const yytype_int16 yycheck[] =
{
- 10, 13, 10, 13, 6, 13, 44, 9, 11, 10,
- 12, 10, 61, 62, 8, 10, 46, 9, 19, 29,
- 30, 15, 16, 17, 8, 9, 14, 8, 9, 78,
- 18, 41, 42, 10, 0, 10, 28, 43, 40, 45,
- 29, 51, 31, 30, 28, 43, 33, 34, 51, 144,
- 39, 146, 39, 63, 98, 63, 100, 60, 42, 60,
- 40, 60, 63, 47, 63, 49, 50, 79, 63, 79,
- 80, 48, 74, 48, 10, 11, 12, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 45, 98, 44,
- 100, 33, 34, 47, 47, 105, 106, 39, 46, 148,
- 32, 33, 34, 35, 36, 46, 116, 39, 46, 119,
- 47, 155, 156, 157, 11, 46, 160, 161, 162, 163,
- 164, 123, 48, 133, 136, 47, 136, 46, 138, 130,
- 124, 130, 142, 6, 142, 8, 9, 139, 140, 141,
- 46, 143, 152, 46, 46, 155, 156, 157, 46, 7,
- 160, 161, 162, 163, 164, 199, 200, 46, 48, 1,
- 47, 171, 5, 6, 7, 8, 9, 10, 11, 12,
- 33, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 30, 47, 6, 199,
- 200, 8, 9, 10, 11, 12, 206, 207, 40, 41,
- 42, 7, 44, 8, 9, 10, 214, 10, 48, 48,
- 48, 48, 222, 221, 46, 46, 43, 43, 8, 9,
- 48, 46, 46, 28, 47, 33, 48, 32, 33, 34,
- 35, 36, 242, 47, 39, 40, 41, 42, 28, 48,
- 250, 46, 47, 28, 49, 50, 8, 9, 10, 49,
- 40, 41, 42, 9, 49, 33, 46, 47, 34, 49,
- 50, 31, 10, 9, 48, 48, 28, 33, 28, 48,
- 32, 33, 34, 35, 36, 8, 9, 39, 40, 41,
- 42, 10, 12, 28, 48, 47, 12, 49, 50, 48,
- 63, 218, -1, -1, -1, 28, 8, 9, -1, 32,
- 33, 34, 35, 36, -1, -1, 39, 40, -1, 42,
- -1, -1, -1, 46, 47, -1, 28, 50, -1, -1,
- 32, 33, 34, 35, 36, 8, 9, 39, 40, -1,
- 42, -1, -1, -1, -1, 47, -1, 49, 50, -1,
- -1, -1, -1, -1, -1, 28, 8, 9, -1, 32,
- 33, 34, 35, 36, -1, -1, 39, 40, -1, 42,
- -1, -1, -1, 46, 47, -1, 28, 50, -1, -1,
- 32, 33, 34, 35, 36, 8, 9, 39, 40, -1,
- 42, -1, -1, -1, -1, 47, -1, -1, 50, -1,
- 8, 9, -1, -1, -1, 28, 8, 9, -1, 32,
- 33, 34, 35, 36, -1, -1, 39, -1, -1, 42,
- 28, 8, 9, -1, 47, -1, 28, 50, -1, 37,
- 38, 33, 40, -1, 42, -1, -1, 39, -1, 47,
- 42, 28, 50, -1, -1, 47, 8, 9, 50, -1,
- 8, 9, -1, 40, 41, 42, -1, 8, 9, -1,
- 47, 8, 9, 50, -1, -1, 28, 8, 9, -1,
- 28, -1, -1, -1, -1, -1, -1, 28, 40, 37,
- 42, 28, -1, -1, 42, 47, 37, 28, 50, 47,
- -1, 42, 50, 8, 9, 42, 47, -1, -1, 50,
- 47, 42, 49, 50, -1, -1, 47, -1, -1, 50,
- -1, -1, -1, 28, 6, 7, 8, 9, 10, 11,
- 12, -1, 37, -1, -1, -1, -1, 42, -1, -1,
- -1, -1, 47, -1, -1, 50, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, 12, 4, 5, 6, 7,
- 8, 9, 10, 11, 12
+ 10, 10, 10, 13, 10, 13, 13, 10, 8, 11,
+ 19, 10, 20, 45, 10, 15, 16, 17, 62, 63,
+ 30, 31, 0, 6, 9, 47, 9, 14, 44, 12,
+ 46, 18, 42, 43, 46, 79, 30, 101, 32, 103,
+ 41, 45, 52, 49, 29, 6, 40, 8, 9, 148,
+ 52, 150, 61, 49, 64, 64, 64, 50, 41, 61,
+ 31, 64, 61, 34, 35, 64, 34, 35, 44, 40,
+ 80, 81, 40, 80, 3, 4, 5, 6, 7, 8,
+ 9, 10, 11, 12, 6, 7, 8, 9, 10, 11,
+ 12, 101, 75, 103, 48, 159, 160, 161, 108, 109,
+ 164, 165, 166, 167, 168, 10, 11, 12, 152, 119,
+ 8, 9, 122, 48, 33, 34, 35, 36, 37, 47,
+ 49, 40, 47, 47, 133, 48, 136, 127, 11, 139,
+ 47, 141, 139, 48, 133, 145, 47, 145, 47, 47,
+ 204, 205, 7, 126, 47, 47, 156, 47, 47, 159,
+ 160, 161, 48, 34, 164, 165, 166, 167, 168, 142,
+ 143, 144, 49, 146, 147, 175, 1, 3, 4, 5,
+ 6, 7, 8, 9, 10, 11, 12, 31, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 204, 205, 8, 9, 10, 11,
+ 12, 211, 212, 8, 9, 10, 41, 42, 43, 48,
+ 45, 219, 6, 10, 7, 49, 49, 227, 226, 228,
+ 8, 9, 49, 49, 29, 47, 47, 44, 33, 34,
+ 35, 36, 37, 44, 47, 40, 41, 42, 43, 249,
+ 47, 29, 47, 48, 47, 50, 51, 257, 8, 9,
+ 10, 49, 48, 41, 42, 43, 34, 49, 48, 47,
+ 48, 29, 50, 51, 49, 9, 50, 34, 32, 29,
+ 35, 8, 9, 33, 34, 35, 36, 37, 10, 49,
+ 40, 41, 42, 43, 34, 9, 49, 29, 48, 10,
+ 50, 51, 29, 49, 8, 9, 33, 34, 35, 36,
+ 37, 29, 49, 40, 41, 12, 43, 12, 49, 64,
+ 47, 48, -1, 223, 51, 29, -1, 8, 9, 33,
+ 34, 35, 36, 37, -1, -1, 40, 41, -1, 43,
+ -1, -1, -1, -1, 48, -1, 50, 51, 29, -1,
+ 8, 9, 33, 34, 35, 36, 37, -1, -1, 40,
+ 41, -1, 43, -1, -1, -1, 47, 48, -1, -1,
+ 51, 29, -1, 8, 9, 33, 34, 35, 36, 37,
+ -1, -1, 40, 41, -1, 43, -1, -1, 8, 9,
+ 48, -1, -1, 51, 29, -1, -1, -1, 33, 34,
+ 35, 36, 37, 8, 9, 40, -1, -1, 43, 29,
+ -1, -1, -1, 48, -1, -1, 51, -1, 38, 39,
+ -1, 41, -1, 43, 29, -1, 8, 9, 48, 34,
+ -1, 51, 8, 9, -1, 40, -1, -1, 43, -1,
+ -1, 8, 9, 48, -1, -1, 51, 29, -1, -1,
+ -1, -1, -1, 29, -1, -1, 8, 9, -1, 41,
+ 42, 43, 29, -1, -1, 41, 48, 43, -1, 51,
+ -1, 38, 48, 8, 9, 51, 43, 29, -1, 8,
+ 9, 48, -1, -1, 51, -1, 38, -1, 8, 9,
+ -1, 43, -1, -1, 29, -1, 48, -1, -1, 51,
+ 29, -1, -1, 8, 9, -1, -1, -1, 43, 29,
+ -1, -1, -1, 48, 43, 50, 51, -1, 38, 48,
+ -1, 50, 51, 43, 29, -1, -1, -1, 48, -1,
+ -1, 51, -1, -1, -1, -1, -1, -1, 43, -1,
+ -1, -1, -1, 48, -1, -1, 51, 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, 52, 0, 53, 1, 13, 14, 15, 16, 17,
+ 0, 53, 0, 54, 1, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
- 40, 41, 42, 44, 54, 57, 44, 46, 58, 8,
- 9, 28, 32, 33, 34, 35, 36, 39, 40, 42,
- 46, 47, 50, 62, 73, 77, 81, 82, 83, 84,
- 87, 49, 61, 73, 75, 78, 59, 75, 60, 73,
- 10, 40, 41, 46, 66, 74, 76, 77, 78, 82,
- 83, 87, 64, 84, 46, 58, 62, 67, 40, 46,
- 47, 63, 76, 78, 87, 65, 81, 68, 75, 69,
- 75, 70, 75, 71, 81, 72, 77, 43, 45, 43,
- 45, 44, 87, 87, 6, 8, 9, 85, 73, 33,
- 39, 87, 88, 87, 47, 47, 9, 37, 38, 47,
- 84, 87, 46, 46, 46, 77, 82, 84, 85, 85,
- 10, 74, 47, 11, 85, 76, 46, 47, 46, 46,
- 46, 46, 46, 46, 56, 88, 55, 88, 7, 87,
- 87, 47, 10, 48, 48, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 48, 33, 33, 34, 39,
- 37, 9, 37, 73, 75, 30, 87, 76, 49, 79,
- 87, 73, 73, 73, 78, 87, 73, 54, 54, 85,
- 29, 31, 39, 86, 87, 47, 88, 88, 88, 6,
- 7, 88, 88, 88, 88, 88, 10, 10, 48, 48,
- 48, 37, 48, 48, 46, 9, 28, 80, 46, 43,
- 43, 46, 46, 47, 48, 48, 33, 88, 88, 87,
- 87, 47, 48, 78, 28, 9, 79, 33, 34, 78,
- 87, 31, 10, 48, 48, 33, 9, 28, 48, 87,
- 10, 28, 48, 87, 48
+ 28, 41, 42, 43, 45, 55, 58, 45, 47, 59,
+ 8, 9, 29, 33, 34, 35, 36, 37, 40, 41,
+ 43, 47, 48, 51, 63, 75, 79, 83, 84, 85,
+ 86, 89, 50, 62, 75, 77, 80, 60, 77, 61,
+ 75, 10, 41, 42, 47, 67, 76, 78, 79, 80,
+ 84, 85, 89, 65, 86, 47, 59, 63, 68, 41,
+ 47, 48, 64, 78, 80, 89, 66, 83, 69, 77,
+ 70, 77, 71, 77, 72, 83, 73, 79, 74, 80,
+ 44, 46, 44, 46, 45, 89, 89, 6, 8, 9,
+ 87, 75, 34, 40, 89, 90, 89, 48, 48, 9,
+ 38, 39, 48, 86, 89, 47, 47, 47, 79, 84,
+ 86, 87, 87, 10, 76, 48, 11, 87, 78, 47,
+ 48, 47, 47, 47, 47, 47, 47, 47, 57, 90,
+ 56, 90, 7, 89, 89, 48, 10, 49, 49, 3,
+ 4, 5, 6, 7, 8, 9, 10, 11, 12, 49,
+ 34, 34, 35, 40, 38, 9, 38, 75, 77, 31,
+ 89, 78, 50, 81, 89, 75, 75, 75, 80, 89,
+ 75, 75, 55, 55, 87, 30, 32, 40, 88, 89,
+ 48, 90, 90, 90, 6, 7, 90, 90, 90, 90,
+ 90, 10, 10, 49, 49, 49, 38, 49, 49, 47,
+ 9, 29, 82, 47, 44, 44, 47, 47, 47, 48,
+ 49, 49, 34, 90, 90, 89, 89, 48, 49, 80,
+ 29, 9, 81, 34, 35, 80, 89, 79, 32, 10,
+ 49, 49, 34, 9, 29, 49, 89, 10, 29, 49,
+ 89, 49
};
#define yyerrok (yyerrstatus = 0)
@@ -920,35 +914,62 @@ static const yytype_uint8 yystos[] =
#define YYRECOVERING() (!!yyerrstatus)
-#define YYBACKUP(Token, Value) \
-do \
- if (yychar == YYEMPTY) \
- { \
- yychar = (Token); \
- yylval = (Value); \
- YYPOPSTACK (yylen); \
- yystate = *yyssp; \
- goto yybackup; \
- } \
- else \
- { \
+#define YYBACKUP(Token, Value) \
+do \
+ if (yychar == YYEMPTY && yylen == 1) \
+ { \
+ yychar = (Token); \
+ yylval = (Value); \
+ YYPOPSTACK (1); \
+ goto yybackup; \
+ } \
+ else \
+ { \
yyerror (YY_("syntax error: cannot back up")); \
YYERROR; \
} \
while (YYID (0))
-/* Error token number */
+
#define YYTERROR 1
#define YYERRCODE 256
+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
+ If N is 0, then set CURRENT to the empty location which ends
+ the previous symbol: RHS[0] (always defined). */
+
+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+#ifndef YYLLOC_DEFAULT
+# define YYLLOC_DEFAULT(Current, Rhs, N) \
+ do \
+ if (YYID (N)) \
+ { \
+ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
+ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
+ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
+ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
+ } \
+ else \
+ { \
+ (Current).first_line = (Current).last_line = \
+ YYRHSLOC (Rhs, 0).last_line; \
+ (Current).first_column = (Current).last_column = \
+ YYRHSLOC (Rhs, 0).last_column; \
+ } \
+ while (YYID (0))
+#endif
+
+
/* This macro is provided for backward compatibility. */
+
#ifndef YY_LOCATION_PRINT
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
#endif
/* YYLEX -- calling `yylex' with the right arguments. */
+
#ifdef YYLEX_PARAM
# define YYLEX yylex (YYLEX_PARAM)
#else
@@ -998,8 +1019,6 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep)
YYSTYPE const * const yyvaluep;
#endif
{
- FILE *yyo = yyoutput;
- YYUSE (yyo);
if (!yyvaluep)
return;
# ifdef YYPRINT
@@ -1251,12 +1270,12 @@ static int
yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
yytype_int16 *yyssp, int yytoken)
{
- YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
+ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
YYSIZE_T yysize = yysize0;
YYSIZE_T yysize1;
enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
/* Internationalized format string. */
- const char *yyformat = YY_NULL;
+ const char *yyformat = 0;
/* Arguments of yyformat. */
char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
/* Number of reported tokens (one for the "unexpected", one per
@@ -1316,7 +1335,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
break;
}
yyarg[yycount++] = yytname[yyx];
- yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
+ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
if (! (yysize <= yysize1
&& yysize1 <= YYSTACK_ALLOC_MAXIMUM))
return 2;
@@ -1408,22 +1427,27 @@ yydestruct (yymsg, yytype, yyvaluep)
}
+/* Prevent warnings from -Wmissing-prototypes. */
+#ifdef YYPARSE_PARAM
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void *YYPARSE_PARAM);
+#else
+int yyparse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void);
+#else
+int yyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
/* The lookahead symbol. */
int yychar;
-
-#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END
-#endif
-#ifndef YY_INITIAL_VALUE
-# define YY_INITIAL_VALUE(Value) /* Nothing. */
-#endif
-
/* The semantic value of the lookahead symbol. */
-YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
+YYSTYPE yylval;
/* Number of syntax errors so far. */
int yynerrs;
@@ -1463,7 +1487,7 @@ yyparse ()
`yyss': related to states.
`yyvs': related to semantic values.
- Refer to the stacks through separate pointers, to allow yyoverflow
+ Refer to the stacks thru separate pointers, to allow yyoverflow
to reallocate them elsewhere. */
/* The state stack. */
@@ -1481,7 +1505,7 @@ yyparse ()
int yyn;
int yyresult;
/* Lookahead token as an internal (translated) token number. */
- int yytoken = 0;
+ int yytoken;
/* The variables used to return semantic value and location from the
action routines. */
YYSTYPE yyval;
@@ -1499,8 +1523,9 @@ yyparse ()
Keep to zero when no symbol should be popped. */
int yylen = 0;
- yyssp = yyss = yyssa;
- yyvsp = yyvs = yyvsa;
+ yytoken = 0;
+ yyss = yyssa;
+ yyvs = yyvsa;
yystacksize = YYINITDEPTH;
YYDPRINTF ((stderr, "Starting parse\n"));
@@ -1509,6 +1534,14 @@ yyparse ()
yyerrstatus = 0;
yynerrs = 0;
yychar = YYEMPTY; /* Cause a token to be read. */
+
+ /* Initialize stack pointers.
+ Waste one element of value and location stack
+ so that they stay on the same level as the state stack.
+ The wasted elements are never initialized. */
+ yyssp = yyss;
+ yyvsp = yyvs;
+
goto yysetstate;
/*------------------------------------------------------------.
@@ -1649,9 +1682,7 @@ yybackup:
yychar = YYEMPTY;
yystate = yyn;
- YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
*++yyvsp = yylval;
- YY_IGNORE_MAYBE_UNINITIALIZED_END
goto yynewstate;
@@ -1688,7 +1719,8 @@ yyreduce:
switch (yyn)
{
case 3:
-/* Line 1778 of yacc.c */
+
+/* Line 1806 of yacc.c */
#line 70 "a.y"
{
stmtline = lineno;
@@ -1696,7 +1728,8 @@ yyreduce:
break;
case 5:
-/* Line 1778 of yacc.c */
+
+/* Line 1806 of yacc.c */
#line 77 "a.y"
{
if((yyvsp[(1) - (2)].sym)->value != pc)
@@ -1706,7 +1739,8 @@ yyreduce:
break;
case 7:
-/* Line 1778 of yacc.c */
+
+/* Line 1806 of yacc.c */
#line 84 "a.y"
{
(yyvsp[(1) - (2)].sym)->type = LLAB;
@@ -1715,7 +1749,8 @@ yyreduce:
break;
case 12:
-/* Line 1778 of yacc.c */
+
+/* Line 1806 of yacc.c */
#line 95 "a.y"
{
(yyvsp[(1) - (3)].sym)->type = LVAR;
@@ -1724,7 +1759,8 @@ yyreduce:
break;
case 13:
-/* Line 1778 of yacc.c */
+
+/* Line 1806 of yacc.c */
#line 100 "a.y"
{
if((yyvsp[(1) - (3)].sym)->value != (yyvsp[(3) - (3)].lval))
@@ -1734,197 +1770,231 @@ yyreduce:
break;
case 14:
-/* Line 1778 of yacc.c */
+
+/* Line 1806 of yacc.c */
#line 105 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 15:
-/* Line 1778 of yacc.c */
+
+/* Line 1806 of yacc.c */
#line 106 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 16:
-/* Line 1778 of yacc.c */
+
+/* Line 1806 of yacc.c */
#line 107 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 17:
-/* Line 1778 of yacc.c */
+
+/* Line 1806 of yacc.c */
#line 108 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 18:
-/* Line 1778 of yacc.c */
+
+/* Line 1806 of yacc.c */
#line 109 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 19:
-/* Line 1778 of yacc.c */
+
+/* Line 1806 of yacc.c */
#line 110 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 20:
-/* Line 1778 of yacc.c */
+
+/* Line 1806 of yacc.c */
#line 111 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 21:
-/* Line 1778 of yacc.c */
+
+/* Line 1806 of yacc.c */
#line 112 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 22:
-/* Line 1778 of yacc.c */
+
+/* Line 1806 of yacc.c */
#line 113 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 23:
-/* Line 1778 of yacc.c */
+
+/* Line 1806 of yacc.c */
#line 114 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 24:
-/* Line 1778 of yacc.c */
+
+/* Line 1806 of yacc.c */
#line 115 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 25:
-/* Line 1778 of yacc.c */
+
+/* Line 1806 of yacc.c */
#line 116 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 26:
-/* Line 1778 of yacc.c */
+
+/* Line 1806 of yacc.c */
#line 117 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 27:
-/* Line 1778 of yacc.c */
+
+/* Line 1806 of yacc.c */
#line 118 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 28:
-/* Line 1778 of yacc.c */
+
+/* Line 1806 of yacc.c */
#line 119 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 29:
-/* Line 1778 of yacc.c */
-#line 122 "a.y"
+
+/* Line 1806 of yacc.c */
+#line 120 "a.y"
+ { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
+ break;
+
+ case 30:
+
+/* Line 1806 of yacc.c */
+#line 123 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = nullgen;
}
break;
- case 30:
-/* Line 1778 of yacc.c */
-#line 127 "a.y"
+ case 31:
+
+/* Line 1806 of yacc.c */
+#line 128 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = nullgen;
}
break;
- case 31:
-/* Line 1778 of yacc.c */
-#line 134 "a.y"
+ case 32:
+
+/* Line 1806 of yacc.c */
+#line 135 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 32:
-/* Line 1778 of yacc.c */
-#line 141 "a.y"
+ case 33:
+
+/* Line 1806 of yacc.c */
+#line 142 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 33:
-/* Line 1778 of yacc.c */
-#line 148 "a.y"
+ case 34:
+
+/* Line 1806 of yacc.c */
+#line 149 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (2)].gen);
(yyval.gen2).to = nullgen;
}
break;
- case 34:
-/* Line 1778 of yacc.c */
-#line 153 "a.y"
+ case 35:
+
+/* Line 1806 of yacc.c */
+#line 154 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (1)].gen);
(yyval.gen2).to = nullgen;
}
break;
- case 35:
-/* Line 1778 of yacc.c */
-#line 160 "a.y"
+ case 36:
+
+/* Line 1806 of yacc.c */
+#line 161 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(2) - (2)].gen);
}
break;
- case 36:
-/* Line 1778 of yacc.c */
-#line 165 "a.y"
+ case 37:
+
+/* Line 1806 of yacc.c */
+#line 166 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(1) - (1)].gen);
}
break;
- case 37:
-/* Line 1778 of yacc.c */
-#line 172 "a.y"
+ case 38:
+
+/* Line 1806 of yacc.c */
+#line 173 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(2) - (2)].gen);
}
break;
- case 38:
-/* Line 1778 of yacc.c */
-#line 177 "a.y"
+ case 39:
+
+/* Line 1806 of yacc.c */
+#line 178 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(1) - (1)].gen);
}
break;
- case 39:
-/* Line 1778 of yacc.c */
-#line 182 "a.y"
+ case 40:
+
+/* Line 1806 of yacc.c */
+#line 183 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 40:
-/* Line 1778 of yacc.c */
-#line 189 "a.y"
+ case 41:
+
+/* Line 1806 of yacc.c */
+#line 190 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (5)].gen);
(yyval.gen2).from.scale = (yyvsp[(3) - (5)].lval);
@@ -1932,18 +2002,20 @@ yyreduce:
}
break;
- case 41:
-/* Line 1778 of yacc.c */
-#line 197 "a.y"
+ case 42:
+
+/* Line 1806 of yacc.c */
+#line 198 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 42:
-/* Line 1778 of yacc.c */
-#line 202 "a.y"
+ case 43:
+
+/* Line 1806 of yacc.c */
+#line 203 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (5)].gen);
(yyval.gen2).from.scale = (yyvsp[(3) - (5)].lval);
@@ -1951,27 +2023,30 @@ yyreduce:
}
break;
- case 43:
-/* Line 1778 of yacc.c */
-#line 210 "a.y"
+ case 44:
+
+/* Line 1806 of yacc.c */
+#line 211 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(2) - (2)].gen);
}
break;
- case 44:
-/* Line 1778 of yacc.c */
-#line 215 "a.y"
+ case 45:
+
+/* Line 1806 of yacc.c */
+#line 216 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(1) - (1)].gen);
}
break;
- case 45:
-/* Line 1778 of yacc.c */
-#line 220 "a.y"
+ case 46:
+
+/* Line 1806 of yacc.c */
+#line 221 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(2) - (2)].gen);
@@ -1980,18 +2055,20 @@ yyreduce:
}
break;
- case 48:
-/* Line 1778 of yacc.c */
-#line 233 "a.y"
+ case 49:
+
+/* Line 1806 of yacc.c */
+#line 234 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 49:
-/* Line 1778 of yacc.c */
-#line 238 "a.y"
+ case 50:
+
+/* Line 1806 of yacc.c */
+#line 239 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (5)].gen);
(yyval.gen2).to = (yyvsp[(3) - (5)].gen);
@@ -2001,18 +2078,20 @@ yyreduce:
}
break;
- case 50:
-/* Line 1778 of yacc.c */
-#line 248 "a.y"
+ case 51:
+
+/* Line 1806 of yacc.c */
+#line 249 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 51:
-/* Line 1778 of yacc.c */
-#line 253 "a.y"
+ case 52:
+
+/* Line 1806 of yacc.c */
+#line 254 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (5)].gen);
(yyval.gen2).to = (yyvsp[(3) - (5)].gen);
@@ -2022,45 +2101,50 @@ yyreduce:
}
break;
- case 52:
-/* Line 1778 of yacc.c */
-#line 263 "a.y"
+ case 53:
+
+/* Line 1806 of yacc.c */
+#line 264 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (2)].gen);
(yyval.gen2).to = nullgen;
}
break;
- case 53:
-/* Line 1778 of yacc.c */
-#line 268 "a.y"
+ case 54:
+
+/* Line 1806 of yacc.c */
+#line 269 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (1)].gen);
(yyval.gen2).to = nullgen;
}
break;
- case 54:
-/* Line 1778 of yacc.c */
-#line 273 "a.y"
+ case 55:
+
+/* Line 1806 of yacc.c */
+#line 274 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 55:
-/* Line 1778 of yacc.c */
-#line 280 "a.y"
+ case 56:
+
+/* Line 1806 of yacc.c */
+#line 281 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 56:
-/* Line 1778 of yacc.c */
-#line 285 "a.y"
+ case 57:
+
+/* Line 1806 of yacc.c */
+#line 286 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (5)].gen);
(yyval.gen2).from.scale = (yyvsp[(3) - (5)].lval);
@@ -2068,9 +2152,10 @@ yyreduce:
}
break;
- case 57:
-/* Line 1778 of yacc.c */
-#line 293 "a.y"
+ case 58:
+
+/* Line 1806 of yacc.c */
+#line 294 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (5)].gen);
(yyval.gen2).to = (yyvsp[(3) - (5)].gen);
@@ -2078,25 +2163,41 @@ yyreduce:
}
break;
- case 62:
-/* Line 1778 of yacc.c */
-#line 307 "a.y"
+ case 59:
+
+/* Line 1806 of yacc.c */
+#line 302 "a.y"
+ {
+ (yyval.gen2).from = (yyvsp[(3) - (5)].gen);
+ (yyval.gen2).to = (yyvsp[(5) - (5)].gen);
+ if((yyvsp[(1) - (5)].gen).type != D_CONST)
+ yyerror("illegal constant");
+ (yyval.gen2).to.offset = (yyvsp[(1) - (5)].gen).offset;
+ }
+ break;
+
+ case 64:
+
+/* Line 1806 of yacc.c */
+#line 318 "a.y"
{
(yyval.gen) = (yyvsp[(2) - (2)].gen);
}
break;
- case 63:
-/* Line 1778 of yacc.c */
-#line 311 "a.y"
+ case 65:
+
+/* Line 1806 of yacc.c */
+#line 322 "a.y"
{
(yyval.gen) = (yyvsp[(2) - (2)].gen);
}
break;
- case 69:
-/* Line 1778 of yacc.c */
-#line 324 "a.y"
+ case 71:
+
+/* Line 1806 of yacc.c */
+#line 335 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_BRANCH;
@@ -2104,9 +2205,10 @@ yyreduce:
}
break;
- case 70:
-/* Line 1778 of yacc.c */
-#line 330 "a.y"
+ case 72:
+
+/* Line 1806 of yacc.c */
+#line 341 "a.y"
{
(yyval.gen) = nullgen;
if(pass == 2)
@@ -2117,9 +2219,10 @@ yyreduce:
}
break;
- case 71:
-/* Line 1778 of yacc.c */
-#line 339 "a.y"
+ case 73:
+
+/* Line 1806 of yacc.c */
+#line 350 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_BRANCH;
@@ -2128,63 +2231,70 @@ yyreduce:
}
break;
- case 72:
-/* Line 1778 of yacc.c */
-#line 348 "a.y"
+ case 74:
+
+/* Line 1806 of yacc.c */
+#line 359 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = (yyvsp[(1) - (1)].lval);
}
break;
- case 73:
-/* Line 1778 of yacc.c */
-#line 353 "a.y"
+ case 75:
+
+/* Line 1806 of yacc.c */
+#line 364 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = (yyvsp[(1) - (1)].lval);
}
break;
- case 74:
-/* Line 1778 of yacc.c */
-#line 358 "a.y"
+ case 76:
+
+/* Line 1806 of yacc.c */
+#line 369 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = (yyvsp[(1) - (1)].lval);
}
break;
- case 75:
-/* Line 1778 of yacc.c */
-#line 363 "a.y"
+ case 77:
+
+/* Line 1806 of yacc.c */
+#line 374 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = (yyvsp[(1) - (1)].lval);
}
break;
- case 76:
-/* Line 1778 of yacc.c */
-#line 368 "a.y"
+ case 78:
+
+/* Line 1806 of yacc.c */
+#line 379 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_SP;
}
break;
- case 77:
-/* Line 1778 of yacc.c */
-#line 373 "a.y"
+ case 79:
+
+/* Line 1806 of yacc.c */
+#line 384 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = (yyvsp[(1) - (1)].lval);
}
break;
- case 78:
-/* Line 1778 of yacc.c */
-#line 380 "a.y"
+ case 80:
+
+/* Line 1806 of yacc.c */
+#line 391 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_CONST;
@@ -2192,9 +2302,10 @@ yyreduce:
}
break;
- case 79:
-/* Line 1778 of yacc.c */
-#line 386 "a.y"
+ case 81:
+
+/* Line 1806 of yacc.c */
+#line 397 "a.y"
{
(yyval.gen) = (yyvsp[(2) - (2)].gen);
(yyval.gen).index = (yyvsp[(2) - (2)].gen).type;
@@ -2207,9 +2318,10 @@ yyreduce:
}
break;
- case 80:
-/* Line 1778 of yacc.c */
-#line 397 "a.y"
+ case 82:
+
+/* Line 1806 of yacc.c */
+#line 408 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_SCONST;
@@ -2217,9 +2329,10 @@ yyreduce:
}
break;
- case 81:
-/* Line 1778 of yacc.c */
-#line 403 "a.y"
+ case 83:
+
+/* Line 1806 of yacc.c */
+#line 414 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_FCONST;
@@ -2227,9 +2340,10 @@ yyreduce:
}
break;
- case 82:
-/* Line 1778 of yacc.c */
-#line 409 "a.y"
+ case 84:
+
+/* Line 1806 of yacc.c */
+#line 420 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_FCONST;
@@ -2237,9 +2351,10 @@ yyreduce:
}
break;
- case 83:
-/* Line 1778 of yacc.c */
-#line 415 "a.y"
+ case 85:
+
+/* Line 1806 of yacc.c */
+#line 426 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_FCONST;
@@ -2247,9 +2362,10 @@ yyreduce:
}
break;
- case 84:
-/* Line 1778 of yacc.c */
-#line 421 "a.y"
+ case 86:
+
+/* Line 1806 of yacc.c */
+#line 432 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_FCONST;
@@ -2257,9 +2373,10 @@ yyreduce:
}
break;
- case 85:
-/* Line 1778 of yacc.c */
-#line 429 "a.y"
+ case 87:
+
+/* Line 1806 of yacc.c */
+#line 440 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_CONST2;
@@ -2268,45 +2385,50 @@ yyreduce:
}
break;
- case 86:
-/* Line 1778 of yacc.c */
-#line 438 "a.y"
+ case 88:
+
+/* Line 1806 of yacc.c */
+#line 449 "a.y"
{
(yyval.con2).v1 = (yyvsp[(1) - (1)].lval);
(yyval.con2).v2 = 0;
}
break;
- case 87:
-/* Line 1778 of yacc.c */
-#line 443 "a.y"
+ case 89:
+
+/* Line 1806 of yacc.c */
+#line 454 "a.y"
{
(yyval.con2).v1 = -(yyvsp[(2) - (2)].lval);
(yyval.con2).v2 = 0;
}
break;
- case 88:
-/* Line 1778 of yacc.c */
-#line 448 "a.y"
+ case 90:
+
+/* Line 1806 of yacc.c */
+#line 459 "a.y"
{
(yyval.con2).v1 = (yyvsp[(1) - (3)].lval);
(yyval.con2).v2 = (yyvsp[(3) - (3)].lval);
}
break;
- case 89:
-/* Line 1778 of yacc.c */
-#line 453 "a.y"
+ case 91:
+
+/* Line 1806 of yacc.c */
+#line 464 "a.y"
{
(yyval.con2).v1 = -(yyvsp[(2) - (4)].lval);
(yyval.con2).v2 = (yyvsp[(4) - (4)].lval);
}
break;
- case 92:
-/* Line 1778 of yacc.c */
-#line 464 "a.y"
+ case 94:
+
+/* Line 1806 of yacc.c */
+#line 475 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+D_NONE;
@@ -2314,9 +2436,10 @@ yyreduce:
}
break;
- case 93:
-/* Line 1778 of yacc.c */
-#line 470 "a.y"
+ case 95:
+
+/* Line 1806 of yacc.c */
+#line 481 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+(yyvsp[(3) - (4)].lval);
@@ -2324,9 +2447,10 @@ yyreduce:
}
break;
- case 94:
-/* Line 1778 of yacc.c */
-#line 476 "a.y"
+ case 96:
+
+/* Line 1806 of yacc.c */
+#line 487 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+D_SP;
@@ -2334,9 +2458,10 @@ yyreduce:
}
break;
- case 95:
-/* Line 1778 of yacc.c */
-#line 482 "a.y"
+ case 97:
+
+/* Line 1806 of yacc.c */
+#line 493 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+D_NONE;
@@ -2347,9 +2472,10 @@ yyreduce:
}
break;
- case 96:
-/* Line 1778 of yacc.c */
-#line 491 "a.y"
+ case 98:
+
+/* Line 1806 of yacc.c */
+#line 502 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+(yyvsp[(3) - (9)].lval);
@@ -2360,27 +2486,30 @@ yyreduce:
}
break;
- case 97:
-/* Line 1778 of yacc.c */
-#line 500 "a.y"
+ case 99:
+
+/* Line 1806 of yacc.c */
+#line 511 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+(yyvsp[(2) - (3)].lval);
}
break;
- case 98:
-/* Line 1778 of yacc.c */
-#line 505 "a.y"
+ case 100:
+
+/* Line 1806 of yacc.c */
+#line 516 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+D_SP;
}
break;
- case 99:
-/* Line 1778 of yacc.c */
-#line 510 "a.y"
+ case 101:
+
+/* Line 1806 of yacc.c */
+#line 521 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+(yyvsp[(3) - (4)].lval);
@@ -2388,9 +2517,10 @@ yyreduce:
}
break;
- case 100:
-/* Line 1778 of yacc.c */
-#line 516 "a.y"
+ case 102:
+
+/* Line 1806 of yacc.c */
+#line 527 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+D_NONE;
@@ -2400,9 +2530,10 @@ yyreduce:
}
break;
- case 101:
-/* Line 1778 of yacc.c */
-#line 524 "a.y"
+ case 103:
+
+/* Line 1806 of yacc.c */
+#line 535 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+(yyvsp[(2) - (8)].lval);
@@ -2412,17 +2543,19 @@ yyreduce:
}
break;
- case 102:
-/* Line 1778 of yacc.c */
-#line 534 "a.y"
+ case 104:
+
+/* Line 1806 of yacc.c */
+#line 545 "a.y"
{
(yyval.gen) = (yyvsp[(1) - (1)].gen);
}
break;
- case 103:
-/* Line 1778 of yacc.c */
-#line 538 "a.y"
+ case 105:
+
+/* Line 1806 of yacc.c */
+#line 549 "a.y"
{
(yyval.gen) = (yyvsp[(1) - (6)].gen);
(yyval.gen).index = (yyvsp[(3) - (6)].lval);
@@ -2431,9 +2564,10 @@ yyreduce:
}
break;
- case 104:
-/* Line 1778 of yacc.c */
-#line 547 "a.y"
+ case 106:
+
+/* Line 1806 of yacc.c */
+#line 558 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = (yyvsp[(4) - (5)].lval);
@@ -2442,9 +2576,10 @@ yyreduce:
}
break;
- case 105:
-/* Line 1778 of yacc.c */
-#line 554 "a.y"
+ case 107:
+
+/* Line 1806 of yacc.c */
+#line 565 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_STATIC;
@@ -2453,161 +2588,181 @@ yyreduce:
}
break;
- case 106:
-/* Line 1778 of yacc.c */
-#line 562 "a.y"
+ case 108:
+
+/* Line 1806 of yacc.c */
+#line 573 "a.y"
{
(yyval.lval) = 0;
}
break;
- case 107:
-/* Line 1778 of yacc.c */
-#line 566 "a.y"
+ case 109:
+
+/* Line 1806 of yacc.c */
+#line 577 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (2)].lval);
}
break;
- case 108:
-/* Line 1778 of yacc.c */
-#line 570 "a.y"
+ case 110:
+
+/* Line 1806 of yacc.c */
+#line 581 "a.y"
{
(yyval.lval) = -(yyvsp[(2) - (2)].lval);
}
break;
- case 110:
-/* Line 1778 of yacc.c */
-#line 577 "a.y"
+ case 112:
+
+/* Line 1806 of yacc.c */
+#line 588 "a.y"
{
(yyval.lval) = D_AUTO;
}
break;
- case 113:
-/* Line 1778 of yacc.c */
-#line 585 "a.y"
+ case 115:
+
+/* Line 1806 of yacc.c */
+#line 596 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (1)].sym)->value;
}
break;
- case 114:
-/* Line 1778 of yacc.c */
-#line 589 "a.y"
+ case 116:
+
+/* Line 1806 of yacc.c */
+#line 600 "a.y"
{
(yyval.lval) = -(yyvsp[(2) - (2)].lval);
}
break;
- case 115:
-/* Line 1778 of yacc.c */
-#line 593 "a.y"
+ case 117:
+
+/* Line 1806 of yacc.c */
+#line 604 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (2)].lval);
}
break;
- case 116:
-/* Line 1778 of yacc.c */
-#line 597 "a.y"
+ case 118:
+
+/* Line 1806 of yacc.c */
+#line 608 "a.y"
{
(yyval.lval) = ~(yyvsp[(2) - (2)].lval);
}
break;
- case 117:
-/* Line 1778 of yacc.c */
-#line 601 "a.y"
+ case 119:
+
+/* Line 1806 of yacc.c */
+#line 612 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (3)].lval);
}
break;
- case 119:
-/* Line 1778 of yacc.c */
-#line 608 "a.y"
+ case 121:
+
+/* Line 1806 of yacc.c */
+#line 619 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) + (yyvsp[(3) - (3)].lval);
}
break;
- case 120:
-/* Line 1778 of yacc.c */
-#line 612 "a.y"
+ case 122:
+
+/* Line 1806 of yacc.c */
+#line 623 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) - (yyvsp[(3) - (3)].lval);
}
break;
- case 121:
-/* Line 1778 of yacc.c */
-#line 616 "a.y"
+ case 123:
+
+/* Line 1806 of yacc.c */
+#line 627 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) * (yyvsp[(3) - (3)].lval);
}
break;
- case 122:
-/* Line 1778 of yacc.c */
-#line 620 "a.y"
+ case 124:
+
+/* Line 1806 of yacc.c */
+#line 631 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) / (yyvsp[(3) - (3)].lval);
}
break;
- case 123:
-/* Line 1778 of yacc.c */
-#line 624 "a.y"
+ case 125:
+
+/* Line 1806 of yacc.c */
+#line 635 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) % (yyvsp[(3) - (3)].lval);
}
break;
- case 124:
-/* Line 1778 of yacc.c */
-#line 628 "a.y"
+ case 126:
+
+/* Line 1806 of yacc.c */
+#line 639 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (4)].lval) << (yyvsp[(4) - (4)].lval);
}
break;
- case 125:
-/* Line 1778 of yacc.c */
-#line 632 "a.y"
+ case 127:
+
+/* Line 1806 of yacc.c */
+#line 643 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (4)].lval) >> (yyvsp[(4) - (4)].lval);
}
break;
- case 126:
-/* Line 1778 of yacc.c */
-#line 636 "a.y"
+ case 128:
+
+/* Line 1806 of yacc.c */
+#line 647 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) & (yyvsp[(3) - (3)].lval);
}
break;
- case 127:
-/* Line 1778 of yacc.c */
-#line 640 "a.y"
+ case 129:
+
+/* Line 1806 of yacc.c */
+#line 651 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) ^ (yyvsp[(3) - (3)].lval);
}
break;
- case 128:
-/* Line 1778 of yacc.c */
-#line 644 "a.y"
+ case 130:
+
+/* Line 1806 of yacc.c */
+#line 655 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) | (yyvsp[(3) - (3)].lval);
}
break;
-/* Line 1778 of yacc.c */
-#line 2611 "y.tab.c"
+
+/* Line 1806 of yacc.c */
+#line 2766 "y.tab.c"
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@@ -2770,9 +2925,7 @@ yyerrlab1:
YY_STACK_PRINT (yyss, yyssp);
}
- YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
*++yyvsp = yylval;
- YY_IGNORE_MAYBE_UNINITIALIZED_END
/* Shift the error token. */
@@ -2796,7 +2949,7 @@ yyabortlab:
yyresult = 1;
goto yyreturn;
-#if !defined yyoverflow || YYERROR_VERBOSE
+#if !defined(yyoverflow) || YYERROR_VERBOSE
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here. |
`-------------------------------------------------*/
@@ -2838,3 +2991,4 @@ yyreturn:
}
+
diff --git a/src/cmd/8a/y.tab.h b/src/cmd/8a/y.tab.h
index 621aba79f..4d7bbe80d 100644
--- a/src/cmd/8a/y.tab.h
+++ b/src/cmd/8a/y.tab.h
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 2.6.5. */
+/* A Bison parser, made by GNU Bison 2.5. */
/* Bison interface for Yacc-like parsers in C
- Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -30,15 +30,6 @@
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
-#ifndef YY_YY_Y_TAB_H_INCLUDED
-# define YY_YY_Y_TAB_H_INCLUDED
-/* Enabling traces. */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-#if YYDEBUG
-extern int yydebug;
-#endif
/* Tokens. */
#ifndef YYTOKENTYPE
@@ -61,21 +52,22 @@ extern int yydebug;
LTYPEI = 270,
LTYPEG = 271,
LTYPEXC = 272,
- LCONST = 273,
- LFP = 274,
- LPC = 275,
- LSB = 276,
- LBREG = 277,
- LLREG = 278,
- LSREG = 279,
- LFREG = 280,
- LXREG = 281,
- LFCONST = 282,
- LSCONST = 283,
- LSP = 284,
- LNAME = 285,
- LLAB = 286,
- LVAR = 287
+ LTYPEX = 273,
+ LCONST = 274,
+ LFP = 275,
+ LPC = 276,
+ LSB = 277,
+ LBREG = 278,
+ LLREG = 279,
+ LSREG = 280,
+ LFREG = 281,
+ LXREG = 282,
+ LFCONST = 283,
+ LSCONST = 284,
+ LSP = 285,
+ LNAME = 286,
+ LLAB = 287,
+ LVAR = 288
};
#endif
/* Tokens. */
@@ -94,28 +86,31 @@ extern int yydebug;
#define LTYPEI 270
#define LTYPEG 271
#define LTYPEXC 272
-#define LCONST 273
-#define LFP 274
-#define LPC 275
-#define LSB 276
-#define LBREG 277
-#define LLREG 278
-#define LSREG 279
-#define LFREG 280
-#define LXREG 281
-#define LFCONST 282
-#define LSCONST 283
-#define LSP 284
-#define LNAME 285
-#define LLAB 286
-#define LVAR 287
+#define LTYPEX 273
+#define LCONST 274
+#define LFP 275
+#define LPC 276
+#define LSB 277
+#define LBREG 278
+#define LLREG 279
+#define LSREG 280
+#define LFREG 281
+#define LXREG 282
+#define LFCONST 283
+#define LSCONST 284
+#define LSP 285
+#define LNAME 286
+#define LLAB 287
+#define LVAR 288
+
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
{
-/* Line 2042 of yacc.c */
+
+/* Line 2068 of yacc.c */
#line 37 "a.y"
Sym *sym;
@@ -130,8 +125,9 @@ typedef union YYSTYPE
Gen2 gen2;
-/* Line 2042 of yacc.c */
-#line 135 "y.tab.h"
+
+/* Line 2068 of yacc.c */
+#line 131 "y.tab.h"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -140,18 +136,4 @@ typedef union YYSTYPE
extern YYSTYPE yylval;
-#ifdef YYPARSE_PARAM
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void *YYPARSE_PARAM);
-#else
-int yyparse ();
-#endif
-#else /* ! YYPARSE_PARAM */
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void);
-#else
-int yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
-#endif /* !YY_YY_Y_TAB_H_INCLUDED */