summaryrefslogtreecommitdiff
path: root/src/cmd/8a/y.tab.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/8a/y.tab.c')
-rw-r--r--src/cmd/8a/y.tab.c1922
1 files changed, 955 insertions, 967 deletions
diff --git a/src/cmd/8a/y.tab.c b/src/cmd/8a/y.tab.c
index ccd3a2563..38f2de52d 100644
--- a/src/cmd/8a/y.tab.c
+++ b/src/cmd/8a/y.tab.c
@@ -1,10 +1,8 @@
+/* A Bison parser, made by GNU Bison 2.6.5. */
-/* A Bison parser, made by GNU Bison 2.4.1. */
-
-/* Skeleton implementation for Bison's Yacc-like parsers in C
+/* Bison implementation for Yacc-like parsers in C
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
- Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989-1990, 2000-2012 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
@@ -46,7 +44,7 @@
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "2.4.1"
+#define YYBISON_VERSION "2.6.5"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -60,14 +58,11 @@
/* Pull parsers. */
#define YYPULL 1
-/* Using locations. */
-#define YYLSP_NEEDED 0
/* Copy the first part of user declarations. */
-
-/* Line 189 of yacc.c */
+/* Line 360 of yacc.c */
#line 31 "a.y"
#include <u.h>
@@ -75,14 +70,16 @@
#include <libc.h>
#include "a.h"
+/* Line 360 of yacc.c */
+#line 75 "y.tab.c"
-/* Line 189 of yacc.c */
-#line 81 "y.tab.c"
-
-/* Enabling traces. */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
+# ifndef YY_NULL
+# if defined __cplusplus && 201103L <= __cplusplus
+# define YY_NULL nullptr
+# else
+# define YY_NULL 0
+# endif
+# endif
/* Enabling verbose error messages. */
#ifdef YYERROR_VERBOSE
@@ -92,11 +89,17 @@
# define YYERROR_VERBOSE 0
#endif
-/* Enabling the token table. */
-#ifndef YYTOKEN_TABLE
-# define YYTOKEN_TABLE 0
+/* 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;
#endif
-
/* Tokens. */
#ifndef YYTOKENTYPE
@@ -118,20 +121,22 @@
LTYPEM = 269,
LTYPEI = 270,
LTYPEG = 271,
- LCONST = 272,
- LFP = 273,
- LPC = 274,
- LSB = 275,
- LBREG = 276,
- LLREG = 277,
- LSREG = 278,
- LFREG = 279,
- LFCONST = 280,
- LSCONST = 281,
- LSP = 282,
- LNAME = 283,
- LLAB = 284,
- LVAR = 285
+ 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
};
#endif
/* Tokens. */
@@ -149,29 +154,29 @@
#define LTYPEM 269
#define LTYPEI 270
#define LTYPEG 271
-#define LCONST 272
-#define LFP 273
-#define LPC 274
-#define LSB 275
-#define LBREG 276
-#define LLREG 277
-#define LSREG 278
-#define LFREG 279
-#define LFCONST 280
-#define LSCONST 281
-#define LSP 282
-#define LNAME 283
-#define LLAB 284
-#define LVAR 285
-
+#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
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
{
-
-/* Line 214 of yacc.c */
+/* Line 376 of yacc.c */
#line 37 "a.y"
Sym *sym;
@@ -186,21 +191,36 @@ typedef union YYSTYPE
Gen2 gen2;
-
-/* Line 214 of yacc.c */
-#line 192 "y.tab.c"
+/* Line 376 of yacc.c */
+#line 196 "y.tab.c"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
#endif
+extern YYSTYPE yylval;
-/* Copy the second part of user declarations. */
+#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 264 of yacc.c */
-#line 204 "y.tab.c"
+/* Line 379 of yacc.c */
+#line 224 "y.tab.c"
#ifdef short
# undef short
@@ -250,27 +270,27 @@ typedef short int yytype_int16;
#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
#ifndef YY_
-# if YYENABLE_NLS
+# 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)
@@ -303,11 +323,12 @@ YYID (yyi)
# define alloca _alloca
# else
# define YYSTACK_ALLOC alloca
-# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# 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 */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
+ /* Use EXIT_SUCCESS as a witness for stdlib.h. */
+# ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
# endif
# endif
# endif
@@ -330,24 +351,24 @@ YYID (yyi)
# ifndef YYSTACK_ALLOC_MAXIMUM
# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
# endif
-# if (defined __cplusplus && ! defined _STDLIB_H \
+# if (defined __cplusplus && ! defined EXIT_SUCCESS \
&& ! ((defined YYMALLOC || defined malloc) \
&& (defined YYFREE || defined free)))
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
+# ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
# endif
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
-# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# ifndef YYFREE
# define YYFREE free
-# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void free (void *); /* INFRINGES ON USER NAME SPACE */
# endif
@@ -376,23 +397,7 @@ union yyalloc
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ YYSTACK_GAP_MAXIMUM)
-/* Copy COUNT objects from FROM to TO. The source and destination do
- not overlap. */
-# ifndef YYCOPY
-# if defined __GNUC__ && 1 < __GNUC__
-# define YYCOPY(To, From, Count) \
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-# else
-# define YYCOPY(To, From, Count) \
- do \
- { \
- YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (To)[yyi] = (From)[yyi]; \
- } \
- while (YYID (0))
-# endif
-# endif
+# define YYCOPY_NEEDED 1
/* Relocate STACK from its old location to the new one. The
local variables YYSIZE and YYSTACKSIZE give the old and new number of
@@ -412,23 +417,43 @@ union yyalloc
#endif
+#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
+/* Copy COUNT objects from SRC to DST. 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)))
+# else
+# define YYCOPY(Dst, Src, Count) \
+ do \
+ { \
+ YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (Dst)[yyi] = (Src)[yyi]; \
+ } \
+ while (YYID (0))
+# endif
+# endif
+#endif /* !YYCOPY_NEEDED */
+
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 483
+#define YYLAST 544
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 49
+#define YYNTOKENS 51
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 37
+#define YYNNTS 38
/* YYNRULES -- Number of rules. */
-#define YYNRULES 124
+#define YYNRULES 128
/* YYNRULES -- Number of states. */
-#define YYNSTATES 244
+#define YYNSTATES 255
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 285
+#define YYMAXUTOK 287
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -439,16 +464,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, 47, 12, 5, 2,
- 45, 46, 10, 8, 44, 9, 2, 11, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 41, 42,
- 6, 43, 7, 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, 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, 48, 2, 2, 2,
+ 2, 2, 2, 2, 3, 2, 50, 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,
@@ -464,7 +489,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
+ 35, 36, 37, 38, 39, 40, 41, 42
};
#if YYDEBUG
@@ -474,64 +499,66 @@ 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, 80,
- 82, 86, 90, 93, 95, 98, 100, 103, 105, 111,
- 115, 121, 124, 126, 129, 131, 133, 137, 143, 147,
- 153, 156, 158, 162, 166, 172, 174, 176, 178, 180,
- 183, 186, 188, 190, 192, 194, 196, 201, 204, 207,
- 209, 211, 213, 215, 217, 220, 223, 226, 229, 234,
- 240, 244, 247, 249, 252, 256, 261, 263, 265, 267,
- 272, 277, 284, 294, 298, 302, 307, 313, 322, 324,
- 331, 337, 345, 346, 349, 352, 354, 356, 358, 360,
- 362, 365, 368, 371, 375, 377, 381, 385, 389, 393,
- 397, 402, 407, 411, 415
+ 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
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int8 yyrhs[] =
{
- 50, 0, -1, -1, -1, 50, 51, 52, -1, -1,
- 39, 41, 53, 52, -1, -1, 38, 41, 54, 52,
- -1, 42, -1, 55, 42, -1, 1, 42, -1, 38,
- 43, 85, -1, 40, 43, 85, -1, 13, 56, -1,
- 14, 60, -1, 15, 59, -1, 16, 57, -1, 17,
- 58, -1, 21, 61, -1, 19, 62, -1, 22, 63,
- -1, 18, 64, -1, 20, 65, -1, 23, 66, -1,
- 24, 67, -1, 25, 68, -1, 26, 69, -1, -1,
- 44, -1, 72, 44, 70, -1, 70, 44, 72, -1,
- 72, 44, -1, 72, -1, 44, 70, -1, 70, -1,
- 44, 73, -1, 73, -1, 81, 11, 84, 44, 75,
- -1, 78, 44, 76, -1, 78, 44, 84, 44, 76,
- -1, 44, 71, -1, 71, -1, 10, 81, -1, 56,
- -1, 60, -1, 72, 44, 70, -1, 72, 44, 70,
- 41, 32, -1, 72, 44, 70, -1, 72, 44, 70,
- 41, 33, -1, 72, 44, -1, 72, -1, 72, 44,
- 70, -1, 78, 44, 75, -1, 78, 44, 84, 44,
- 75, -1, 74, -1, 78, -1, 73, -1, 80, -1,
- 10, 74, -1, 10, 79, -1, 74, -1, 79, -1,
- 75, -1, 70, -1, 75, -1, 84, 45, 29, 46,
- -1, 38, 82, -1, 39, 82, -1, 31, -1, 34,
- -1, 32, -1, 37, -1, 33, -1, 47, 84, -1,
- 47, 81, -1, 47, 36, -1, 47, 35, -1, 47,
- 45, 35, 46, -1, 47, 45, 9, 35, 46, -1,
- 47, 9, 35, -1, 47, 77, -1, 27, -1, 9,
- 27, -1, 27, 9, 27, -1, 9, 27, 9, 27,
- -1, 79, -1, 80, -1, 84, -1, 84, 45, 32,
- 46, -1, 84, 45, 37, 46, -1, 84, 45, 32,
- 10, 84, 46, -1, 84, 45, 32, 46, 45, 32,
- 10, 84, 46, -1, 45, 32, 46, -1, 45, 37,
- 46, -1, 84, 45, 33, 46, -1, 45, 32, 10,
- 84, 46, -1, 45, 32, 46, 45, 32, 10, 84,
- 46, -1, 81, -1, 81, 45, 32, 10, 84, 46,
- -1, 38, 82, 45, 83, 46, -1, 38, 6, 7,
- 82, 45, 30, 46, -1, -1, 8, 84, -1, 9,
- 84, -1, 30, -1, 37, -1, 28, -1, 27, -1,
- 40, -1, 9, 84, -1, 8, 84, -1, 48, 84,
- -1, 45, 85, 46, -1, 84, -1, 85, 8, 85,
- -1, 85, 9, 85, -1, 85, 10, 85, -1, 85,
- 11, 85, -1, 85, 12, 85, -1, 85, 6, 6,
- 85, -1, 85, 7, 7, 85, -1, 85, 5, 85,
- -1, 85, 4, 85, -1, 85, 3, 85, -1
+ 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
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
@@ -539,21 +566,21 @@ 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, 121, 125,
- 132, 139, 146, 151, 158, 163, 170, 175, 182, 190,
- 195, 203, 208, 213, 222, 223, 226, 231, 241, 246,
- 256, 261, 266, 273, 278, 286, 287, 290, 291, 292,
- 296, 300, 301, 302, 305, 306, 309, 315, 324, 333,
- 338, 343, 348, 353, 360, 366, 377, 383, 389, 395,
- 401, 409, 418, 423, 428, 433, 440, 441, 444, 450,
- 456, 462, 471, 480, 485, 490, 496, 504, 514, 518,
- 527, 534, 543, 546, 550, 556, 557, 561, 564, 565,
- 569, 573, 577, 581, 587, 588, 592, 596, 600, 604,
- 608, 612, 616, 620, 624
+ 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
};
#endif
-#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
+#if YYDEBUG || YYERROR_VERBOSE || 0
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] =
@@ -561,14 +588,14 @@ static const char *const yytname[] =
"$end", "error", "$undefined", "'|'", "'^'", "'&'", "'<'", "'>'", "'+'",
"'-'", "'*'", "'/'", "'%'", "LTYPE0", "LTYPE1", "LTYPE2", "LTYPE3",
"LTYPE4", "LTYPEC", "LTYPED", "LTYPEN", "LTYPER", "LTYPET", "LTYPES",
- "LTYPEM", "LTYPEI", "LTYPEG", "LCONST", "LFP", "LPC", "LSB", "LBREG",
- "LLREG", "LSREG", "LFREG", "LFCONST", "LSCONST", "LSP", "LNAME", "LLAB",
- "LVAR", "':'", "';'", "'='", "','", "'('", "')'", "'$'", "'~'",
- "$accept", "prog", "$@1", "line", "$@2", "$@3", "inst", "nonnon",
+ "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", "rem", "rom",
- "rim", "rel", "reg", "imm", "imm2", "con2", "mem", "omem", "nmem", "nam",
- "offset", "pointer", "con", "expr", 0
+ "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
};
#endif
@@ -581,26 +608,27 @@ 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, 58, 59, 61, 44, 40, 41, 36, 126
+ 285, 286, 287, 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, 49, 50, 51, 50, 53, 52, 54, 52, 52,
- 52, 52, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 56, 56,
- 57, 58, 59, 59, 60, 60, 61, 61, 62, 63,
- 63, 64, 64, 64, 65, 65, 66, 66, 67, 67,
- 68, 68, 68, 69, 69, 70, 70, 71, 71, 71,
- 71, 71, 71, 71, 72, 72, 73, 73, 73, 74,
- 74, 74, 74, 74, 75, 75, 75, 75, 75, 75,
- 75, 76, 77, 77, 77, 77, 78, 78, 79, 79,
- 79, 79, 79, 79, 79, 79, 79, 79, 80, 80,
- 81, 81, 82, 82, 82, 83, 83, 83, 84, 84,
- 84, 84, 84, 84, 85, 85, 85, 85, 85, 85,
- 85, 85, 85, 85, 85
+ 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
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -608,241 +636,261 @@ 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, 0, 1,
- 3, 3, 2, 1, 2, 1, 2, 1, 5, 3,
- 5, 2, 1, 2, 1, 1, 3, 5, 3, 5,
- 2, 1, 3, 3, 5, 1, 1, 1, 1, 2,
- 2, 1, 1, 1, 1, 1, 4, 2, 2, 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, 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
};
-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
+ Performed when YYTABLE doesn't specify something else to do. Zero
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 2, 3, 1, 0, 0, 28, 0, 0, 0, 0,
- 0, 0, 28, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 9, 4, 0, 11, 29, 14, 0, 0,
- 108, 69, 71, 73, 70, 72, 102, 109, 0, 0,
- 0, 15, 35, 55, 56, 86, 87, 98, 88, 0,
- 16, 64, 33, 65, 17, 0, 18, 0, 0, 102,
- 102, 0, 22, 42, 57, 61, 63, 62, 58, 88,
- 20, 0, 29, 44, 45, 23, 102, 0, 0, 19,
- 37, 0, 21, 0, 24, 0, 25, 0, 26, 51,
- 27, 0, 7, 0, 5, 0, 10, 111, 110, 0,
- 0, 0, 0, 34, 0, 0, 114, 0, 112, 0,
- 0, 0, 77, 76, 0, 75, 74, 32, 0, 0,
- 59, 60, 43, 67, 68, 0, 41, 0, 0, 67,
- 36, 0, 0, 0, 0, 50, 0, 0, 12, 0,
- 13, 102, 103, 104, 0, 0, 93, 94, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 113, 0,
- 0, 0, 0, 80, 0, 0, 30, 31, 0, 0,
- 0, 39, 0, 46, 48, 52, 53, 0, 8, 6,
- 0, 107, 105, 106, 0, 0, 0, 124, 123, 122,
- 0, 0, 115, 116, 117, 118, 119, 0, 0, 89,
- 95, 90, 0, 78, 66, 0, 0, 82, 81, 0,
- 0, 0, 0, 0, 100, 96, 0, 120, 121, 0,
- 0, 0, 79, 38, 83, 0, 40, 47, 49, 54,
- 0, 0, 99, 91, 0, 0, 84, 101, 0, 0,
- 85, 97, 0, 92
+ 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
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 1, 3, 23, 139, 137, 24, 27, 54, 56,
- 50, 41, 79, 70, 82, 62, 75, 84, 86, 88,
- 90, 51, 63, 52, 64, 43, 53, 171, 208, 44,
- 45, 46, 47, 102, 184, 48, 107
+ -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
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -107
+#define YYPACT_NINF -96
static const yytype_int16 yypact[] =
{
- -107, 9, -107, 151, -28, -19, 235, 255, 255, 302,
- 175, 6, 282, 34, 363, 255, 255, 255, 363, -3,
- -6, 5, -107, -107, 4, -107, -107, -107, 373, 373,
- -107, -107, -107, -107, -107, -107, 128, -107, 302, 343,
- 373, -107, -107, -107, -107, -107, -107, 17, 19, 115,
- -107, -107, 15, -107, -107, 27, -107, 42, 302, 128,
- 72, 208, -107, -107, -107, -107, -107, -107, -107, 52,
- -107, 44, 302, -107, -107, -107, 72, 359, 373, -107,
- -107, 55, -107, 71, -107, 76, -107, 81, -107, 84,
- -107, 97, -107, 373, -107, 373, -107, -107, -107, 142,
- 373, 373, 114, -107, 1, 116, -107, 102, -107, 129,
- 66, 385, -107, -107, 387, -107, -107, -107, 302, 255,
- -107, -107, -107, 114, -107, 329, -107, 168, 373, -107,
- -107, 149, 18, 302, 302, 302, 397, 151, 447, 151,
- 447, 72, -107, -107, 47, 373, 134, -107, 373, 373,
- 373, 176, 179, 373, 373, 373, 373, 373, -107, 182,
- 3, 148, 152, -107, 401, 153, -107, -107, 158, 166,
- 14, -107, 167, 154, 189, -107, -107, 187, -107, -107,
- 188, -107, -107, -107, 186, 190, 202, 456, 464, 471,
- 373, 373, 146, 146, -107, -107, -107, 373, 373, 192,
- -107, -107, 203, -107, -107, 191, 223, 242, -107, 205,
- 222, 224, 191, 228, -107, -107, 249, 216, 216, 214,
- 215, 233, -107, -107, 261, 244, -107, -107, -107, -107,
- 230, 373, -107, -107, 264, 250, -107, -107, 232, 373,
- -107, -107, 238, -107
+ -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
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -107, -107, -107, -106, -107, -107, -107, 269, -107, -107,
- -107, 273, -107, -107, -107, -107, -107, -107, -107, -107,
- -107, -2, 236, 0, -1, -8, -9, 85, -107, 10,
- -4, -5, 11, -39, -107, -10, -61
+ -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
};
/* 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 zero, do what YYDEFACT says.
- If YYTABLE_NINF, syntax error. */
+ number is the opposite. If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -1
static const yytype_uint8 yytable[] =
{
- 69, 66, 65, 81, 42, 68, 67, 57, 55, 2,
- 42, 145, 80, 198, 25, 85, 87, 89, 97, 98,
- 123, 124, 71, 206, 83, 26, 28, 29, 91, 106,
- 108, 178, 138, 179, 140, 94, 103, 129, 92, 116,
- 93, 207, 28, 29, 36, 30, 96, 146, 95, 199,
- 120, 69, 66, 65, 121, 128, 68, 67, 37, 117,
- 115, 30, 109, 78, 110, 170, 40, 81, 106, 122,
- 103, 118, 76, 60, 37, 181, 130, 182, 77, 78,
- 100, 101, 40, 106, 183, 106, 119, 187, 188, 189,
- 142, 143, 192, 193, 194, 195, 196, 127, 160, 161,
- 131, 98, 180, 162, 106, 148, 149, 150, 151, 152,
- 153, 154, 155, 156, 157, 132, 166, 120, 169, 167,
- 133, 121, 172, 28, 111, 134, 177, 176, 135, 217,
- 218, 173, 174, 175, 99, 185, 100, 101, 106, 106,
- 106, 136, 30, 106, 106, 106, 106, 106, 158, 141,
- 112, 113, 4, 36, 98, 37, 155, 156, 157, 144,
- 114, 159, 147, 40, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, 16, 17, 18, 168, 186,
- 106, 106, 190, 28, 29, 58, 191, 219, 220, 19,
- 20, 21, 197, 22, 200, 210, 223, 168, 201, 203,
- 160, 161, 30, 229, 204, 162, 31, 32, 33, 34,
- 205, 209, 35, 59, 60, 37, 28, 29, 125, 61,
- 39, 238, 49, 40, 153, 154, 155, 156, 157, 242,
- 211, 212, 214, 213, 216, 30, 215, 221, 49, 31,
- 32, 33, 34, 28, 29, 35, 59, 60, 37, 222,
- 224, 225, 170, 39, 227, 49, 40, 228, 230, 231,
- 232, 233, 30, 28, 29, 234, 31, 32, 33, 34,
- 235, 236, 35, 36, 239, 37, 237, 240, 241, 38,
- 39, 73, 30, 40, 243, 74, 31, 32, 33, 34,
- 28, 29, 35, 36, 226, 37, 0, 126, 0, 0,
- 39, 0, 49, 40, 0, 0, 0, 0, 0, 30,
- 28, 29, 0, 31, 32, 33, 34, 0, 0, 35,
- 36, 0, 37, 0, 0, 0, 72, 39, 0, 30,
- 40, 0, 0, 31, 32, 33, 34, 28, 29, 35,
- 36, 0, 37, 0, 0, 0, 0, 39, 0, 0,
- 40, 28, 29, 0, 0, 0, 30, 0, 0, 0,
- 31, 32, 33, 34, 0, 0, 35, 28, 29, 37,
- 30, 28, 29, 0, 39, 104, 0, 40, 0, 0,
- 105, 28, 29, 37, 0, 0, 30, 0, 78, 0,
- 30, 40, 0, 28, 29, 28, 164, 76, 60, 37,
- 30, 36, 0, 37, 78, 28, 29, 40, 39, 28,
- 29, 40, 30, 37, 30, 0, 0, 0, 78, 0,
- 163, 40, 165, 0, 30, 37, 0, 37, 30, 0,
- 78, 0, 78, 40, 0, 40, 202, 37, 0, 0,
- 0, 37, 78, 0, 49, 40, 78, 0, 0, 40,
- 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
- 149, 150, 151, 152, 153, 154, 155, 156, 157, 150,
- 151, 152, 153, 154, 155, 156, 157, 151, 152, 153,
- 154, 155, 156, 157
+ 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
};
+#define yypact_value_is_default(Yystate) \
+ (!!((Yystate) == (-96)))
+
+#define yytable_value_is_error(Yytable_value) \
+ YYID (0)
+
static const yytype_int16 yycheck[] =
{
- 10, 10, 10, 13, 6, 10, 10, 9, 8, 0,
- 12, 10, 13, 10, 42, 15, 16, 17, 28, 29,
- 59, 60, 11, 9, 14, 44, 8, 9, 18, 39,
- 40, 137, 93, 139, 95, 41, 38, 76, 41, 49,
- 43, 27, 8, 9, 38, 27, 42, 46, 43, 46,
- 58, 61, 61, 61, 58, 11, 61, 61, 40, 44,
- 49, 27, 45, 45, 45, 47, 48, 77, 78, 58,
- 72, 44, 38, 39, 40, 28, 77, 30, 44, 45,
- 8, 9, 48, 93, 37, 95, 44, 148, 149, 150,
- 100, 101, 153, 154, 155, 156, 157, 45, 32, 33,
- 45, 111, 141, 37, 114, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 44, 118, 125, 128, 119,
- 44, 125, 132, 8, 9, 44, 136, 136, 44, 190,
- 191, 133, 134, 135, 6, 145, 8, 9, 148, 149,
- 150, 44, 27, 153, 154, 155, 156, 157, 46, 7,
- 35, 36, 1, 38, 164, 40, 10, 11, 12, 45,
- 45, 32, 46, 48, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, 23, 24, 25, 26, 29, 45,
- 190, 191, 6, 8, 9, 10, 7, 197, 198, 38,
- 39, 40, 10, 42, 46, 41, 205, 29, 46, 46,
- 32, 33, 27, 212, 46, 37, 31, 32, 33, 34,
- 44, 44, 37, 38, 39, 40, 8, 9, 10, 44,
- 45, 231, 47, 48, 8, 9, 10, 11, 12, 239,
- 41, 44, 46, 45, 32, 27, 46, 45, 47, 31,
- 32, 33, 34, 8, 9, 37, 38, 39, 40, 46,
- 27, 9, 47, 45, 32, 47, 48, 33, 30, 10,
- 46, 46, 27, 8, 9, 32, 31, 32, 33, 34,
- 9, 27, 37, 38, 10, 40, 46, 27, 46, 44,
- 45, 12, 27, 48, 46, 12, 31, 32, 33, 34,
- 8, 9, 37, 38, 209, 40, -1, 61, -1, -1,
- 45, -1, 47, 48, -1, -1, -1, -1, -1, 27,
- 8, 9, -1, 31, 32, 33, 34, -1, -1, 37,
- 38, -1, 40, -1, -1, -1, 44, 45, -1, 27,
- 48, -1, -1, 31, 32, 33, 34, 8, 9, 37,
- 38, -1, 40, -1, -1, -1, -1, 45, -1, -1,
- 48, 8, 9, -1, -1, -1, 27, -1, -1, -1,
- 31, 32, 33, 34, -1, -1, 37, 8, 9, 40,
- 27, 8, 9, -1, 45, 32, -1, 48, -1, -1,
- 37, 8, 9, 40, -1, -1, 27, -1, 45, -1,
- 27, 48, -1, 8, 9, 8, 9, 38, 39, 40,
- 27, 38, -1, 40, 45, 8, 9, 48, 45, 8,
- 9, 48, 27, 40, 27, -1, -1, -1, 45, -1,
- 35, 48, 35, -1, 27, 40, -1, 40, 27, -1,
- 45, -1, 45, 48, -1, 48, 35, 40, -1, -1,
- -1, 40, 45, -1, 47, 48, 45, -1, -1, 48,
- 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, 6, 7, 8,
- 9, 10, 11, 12
+ 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
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
- 0, 50, 0, 51, 1, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, 23, 24, 25, 26, 38,
- 39, 40, 42, 52, 55, 42, 44, 56, 8, 9,
- 27, 31, 32, 33, 34, 37, 38, 40, 44, 45,
- 48, 60, 70, 74, 78, 79, 80, 81, 84, 47,
- 59, 70, 72, 75, 57, 72, 58, 70, 10, 38,
- 39, 44, 64, 71, 73, 74, 75, 79, 80, 84,
- 62, 81, 44, 56, 60, 65, 38, 44, 45, 61,
- 73, 84, 63, 78, 66, 72, 67, 72, 68, 72,
- 69, 78, 41, 43, 41, 43, 42, 84, 84, 6,
- 8, 9, 82, 70, 32, 37, 84, 85, 84, 45,
- 45, 9, 35, 36, 45, 81, 84, 44, 44, 44,
- 74, 79, 81, 82, 82, 10, 71, 45, 11, 82,
- 73, 45, 44, 44, 44, 44, 44, 54, 85, 53,
- 85, 7, 84, 84, 45, 10, 46, 46, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, 46, 32,
- 32, 33, 37, 35, 9, 35, 70, 72, 29, 84,
- 47, 76, 84, 70, 70, 70, 75, 84, 52, 52,
- 82, 28, 30, 37, 83, 84, 45, 85, 85, 85,
- 6, 7, 85, 85, 85, 85, 85, 10, 10, 46,
- 46, 46, 35, 46, 46, 44, 9, 27, 77, 44,
- 41, 41, 44, 45, 46, 46, 32, 85, 85, 84,
- 84, 45, 46, 75, 27, 9, 76, 32, 33, 75,
- 30, 10, 46, 46, 32, 9, 27, 46, 84, 10,
- 27, 46, 84, 46
+ 0, 52, 0, 53, 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
};
#define yyerrok (yyerrstatus = 0)
@@ -857,78 +905,50 @@ static const yytype_uint8 yystos[] =
/* Like YYERROR except do call yyerror. This remains here temporarily
to ease the transition to the new meaning of YYERROR, for GCC.
- Once GCC version 2 has supplanted version 1, this can go. */
+ Once GCC version 2 has supplanted version 1, this can go. However,
+ YYFAIL appears to be in use. Nevertheless, it is formally deprecated
+ in Bison 2.4.2's NEWS entry, where a plan to phase it out is
+ discussed. */
#define YYFAIL goto yyerrlab
+#if defined YYFAIL
+ /* This is here to suppress warnings from the GCC cpp's
+ -Wunused-macros. Normally we don't worry about that warning, but
+ some users do, and we want to make it easy for users to remove
+ YYFAIL uses, which will produce warnings from Bison 2.5. */
+#endif
#define YYRECOVERING() (!!yyerrstatus)
-#define YYBACKUP(Token, Value) \
-do \
- if (yychar == YYEMPTY && yylen == 1) \
- { \
- yychar = (Token); \
- yylval = (Value); \
- yytoken = YYTRANSLATE (yychar); \
- YYPOPSTACK (1); \
- goto yybackup; \
- } \
- else \
- { \
+#define YYBACKUP(Token, Value) \
+do \
+ if (yychar == YYEMPTY) \
+ { \
+ yychar = (Token); \
+ yylval = (Value); \
+ YYPOPSTACK (yylen); \
+ yystate = *yyssp; \
+ 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
-
-
-/* YY_LOCATION_PRINT -- Print the location on the stream.
- This macro was not mandated originally: define only if we know
- we won't break user code: when these are the locations we know. */
-
+/* This macro is provided for backward compatibility. */
#ifndef YY_LOCATION_PRINT
-# if YYLTYPE_IS_TRIVIAL
-# define YY_LOCATION_PRINT(File, Loc) \
- fprintf (File, "%d.%d-%d.%d", \
- (Loc).first_line, (Loc).first_column, \
- (Loc).last_line, (Loc).last_column)
-# else
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
+# 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
@@ -978,6 +998,8 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep)
YYSTYPE const * const yyvaluep;
#endif
{
+ FILE *yyo = yyoutput;
+ YYUSE (yyo);
if (!yyvaluep)
return;
# ifdef YYPRINT
@@ -1115,7 +1137,6 @@ int yydebug;
# define YYMAXDEPTH 10000
#endif
-
#if YYERROR_VERBOSE
@@ -1218,115 +1239,142 @@ yytnamerr (char *yyres, const char *yystr)
}
# endif
-/* Copy into YYRESULT an error message about the unexpected token
- YYCHAR while in state YYSTATE. Return the number of bytes copied,
- including the terminating null byte. If YYRESULT is null, do not
- copy anything; just return the number of bytes that would be
- copied. As a special case, return 0 if an ordinary "syntax error"
- message will do. Return YYSIZE_MAXIMUM if overflow occurs during
- size calculation. */
-static YYSIZE_T
-yysyntax_error (char *yyresult, int yystate, int yychar)
-{
- int yyn = yypact[yystate];
+/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
+ about the unexpected token YYTOKEN for the state stack whose top is
+ YYSSP.
- if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
- return 0;
- else
- {
- int yytype = YYTRANSLATE (yychar);
- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
- YYSIZE_T yysize = yysize0;
- YYSIZE_T yysize1;
- int yysize_overflow = 0;
- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
- int yyx;
-
-# if 0
- /* This is so xgettext sees the translatable formats that are
- constructed on the fly. */
- YY_("syntax error, unexpected %s");
- YY_("syntax error, unexpected %s, expecting %s");
- YY_("syntax error, unexpected %s, expecting %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
-# endif
- char *yyfmt;
- char const *yyf;
- static char const yyunexpected[] = "syntax error, unexpected %s";
- static char const yyexpecting[] = ", expecting %s";
- static char const yyor[] = " or %s";
- char yyformat[sizeof yyunexpected
- + sizeof yyexpecting - 1
- + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
- * (sizeof yyor - 1))];
- char const *yyprefix = yyexpecting;
-
- /* Start YYX at -YYN if negative to avoid negative indexes in
- YYCHECK. */
- int yyxbegin = yyn < 0 ? -yyn : 0;
-
- /* Stay within bounds of both yycheck and yytname. */
- int yychecklim = YYLAST - yyn + 1;
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
- int yycount = 1;
-
- yyarg[0] = yytname[yytype];
- yyfmt = yystpcpy (yyformat, yyunexpected);
-
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
- {
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
- {
- yycount = 1;
- yysize = yysize0;
- yyformat[sizeof yyunexpected - 1] = '\0';
- break;
- }
- yyarg[yycount++] = yytname[yyx];
- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
- yyfmt = yystpcpy (yyfmt, yyprefix);
- yyprefix = yyor;
- }
+ Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
+ not large enough to hold the message. In that case, also set
+ *YYMSG_ALLOC to the required number of bytes. Return 2 if the
+ required number of bytes is too large to store. */
+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 yysize = yysize0;
+ YYSIZE_T yysize1;
+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+ /* Internationalized format string. */
+ const char *yyformat = YY_NULL;
+ /* Arguments of yyformat. */
+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+ /* Number of reported tokens (one for the "unexpected", one per
+ "expected"). */
+ int yycount = 0;
+
+ /* There are many possibilities here to consider:
+ - Assume YYFAIL is not used. It's too flawed to consider. See
+ <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
+ for details. YYERROR is fine as it does not invoke this
+ function.
+ - If this state is a consistent state with a default action, then
+ the only way this function was invoked is if the default action
+ is an error action. In that case, don't check for expected
+ tokens because there are none.
+ - The only way there can be no lookahead present (in yychar) is if
+ this state is a consistent state with a default action. Thus,
+ detecting the absence of a lookahead is sufficient to determine
+ that there is no unexpected or expected token to report. In that
+ case, just report a simple "syntax error".
+ - Don't assume there isn't a lookahead just because this state is a
+ consistent state with a default action. There might have been a
+ previous inconsistent state, consistent state with a non-default
+ action, or user semantic action that manipulated yychar.
+ - Of course, the expected token list depends on states to have
+ correct lookahead information, and it depends on the parser not
+ to perform extra reductions after fetching a lookahead from the
+ scanner and before detecting a syntax error. Thus, state merging
+ (from LALR or IELR) and default reductions corrupt the expected
+ token list. However, the list is correct for canonical LR with
+ one exception: it will still contain any token that will not be
+ accepted due to an error action in a later state.
+ */
+ if (yytoken != YYEMPTY)
+ {
+ int yyn = yypact[*yyssp];
+ yyarg[yycount++] = yytname[yytoken];
+ if (!yypact_value_is_default (yyn))
+ {
+ /* Start YYX at -YYN if negative to avoid negative indexes in
+ YYCHECK. In other words, skip the first -YYN actions for
+ this state because they are default actions. */
+ int yyxbegin = yyn < 0 ? -yyn : 0;
+ /* Stay within bounds of both yycheck and yytname. */
+ int yychecklim = YYLAST - yyn + 1;
+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+ int yyx;
+
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
+ && !yytable_value_is_error (yytable[yyx + yyn]))
+ {
+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+ {
+ yycount = 1;
+ yysize = yysize0;
+ break;
+ }
+ yyarg[yycount++] = yytname[yyx];
+ yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
+ if (! (yysize <= yysize1
+ && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+ return 2;
+ yysize = yysize1;
+ }
+ }
+ }
- yyf = YY_(yyformat);
- yysize1 = yysize + yystrlen (yyf);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
+ switch (yycount)
+ {
+# define YYCASE_(N, S) \
+ case N: \
+ yyformat = S; \
+ break
+ YYCASE_(0, YY_("syntax error"));
+ YYCASE_(1, YY_("syntax error, unexpected %s"));
+ YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
+ YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
+ YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
+ YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
+# undef YYCASE_
+ }
- if (yysize_overflow)
- return YYSIZE_MAXIMUM;
+ yysize1 = yysize + yystrlen (yyformat);
+ if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+ return 2;
+ yysize = yysize1;
- if (yyresult)
- {
- /* Avoid sprintf, as that infringes on the user's name space.
- Don't have undefined behavior even if the translation
- produced a string with the wrong number of "%s"s. */
- char *yyp = yyresult;
- int yyi = 0;
- while ((*yyp = *yyf) != '\0')
- {
- if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
- {
- yyp += yytnamerr (yyp, yyarg[yyi++]);
- yyf += 2;
- }
- else
- {
- yyp++;
- yyf++;
- }
- }
- }
- return yysize;
+ if (*yymsg_alloc < yysize)
+ {
+ *yymsg_alloc = 2 * yysize;
+ if (! (yysize <= *yymsg_alloc
+ && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
+ *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
+ return 1;
}
+
+ /* Avoid sprintf, as that infringes on the user's name space.
+ Don't have undefined behavior even if the translation
+ produced a string with the wrong number of "%s"s. */
+ {
+ char *yyp = *yymsg;
+ int yyi = 0;
+ while ((*yyp = *yyformat) != '\0')
+ if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
+ {
+ yyp += yytnamerr (yyp, yyarg[yyi++]);
+ yyformat += 2;
+ }
+ else
+ {
+ yyp++;
+ yyformat++;
+ }
+ }
+ return 0;
}
#endif /* YYERROR_VERBOSE */
-
/*-----------------------------------------------.
| Release the memory associated to this symbol. |
@@ -1359,36 +1407,31 @@ 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;
+YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
/* Number of syntax errors so far. */
int yynerrs;
-
-/*-------------------------.
-| yyparse or yypush_parse. |
-`-------------------------*/
+/*----------.
+| yyparse. |
+`----------*/
#ifdef YYPARSE_PARAM
#if (defined __STDC__ || defined __C99__FUNC__ \
@@ -1412,8 +1455,6 @@ yyparse ()
#endif
#endif
{
-
-
int yystate;
/* Number of tokens to shift before error messages enabled. */
int yyerrstatus;
@@ -1422,7 +1463,7 @@ yyparse ()
`yyss': related to states.
`yyvs': related to semantic values.
- Refer to the stacks thru separate pointers, to allow yyoverflow
+ Refer to the stacks through separate pointers, to allow yyoverflow
to reallocate them elsewhere. */
/* The state stack. */
@@ -1440,7 +1481,7 @@ yyparse ()
int yyn;
int yyresult;
/* Lookahead token as an internal (translated) token number. */
- int yytoken;
+ int yytoken = 0;
/* The variables used to return semantic value and location from the
action routines. */
YYSTYPE yyval;
@@ -1458,9 +1499,8 @@ yyparse ()
Keep to zero when no symbol should be popped. */
int yylen = 0;
- yytoken = 0;
- yyss = yyssa;
- yyvs = yyvsa;
+ yyssp = yyss = yyssa;
+ yyvsp = yyvs = yyvsa;
yystacksize = YYINITDEPTH;
YYDPRINTF ((stderr, "Starting parse\n"));
@@ -1469,14 +1509,6 @@ 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;
/*------------------------------------------------------------.
@@ -1568,7 +1600,7 @@ yybackup:
/* First try to decide what to do without reference to lookahead token. */
yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
+ if (yypact_value_is_default (yyn))
goto yydefault;
/* Not known => get a lookahead token if don't already have one. */
@@ -1599,8 +1631,8 @@ yybackup:
yyn = yytable[yyn];
if (yyn <= 0)
{
- if (yyn == 0 || yyn == YYTABLE_NINF)
- goto yyerrlab;
+ if (yytable_value_is_error (yyn))
+ goto yyerrlab;
yyn = -yyn;
goto yyreduce;
}
@@ -1617,7 +1649,9 @@ yybackup:
yychar = YYEMPTY;
yystate = yyn;
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
*++yyvsp = yylval;
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
goto yynewstate;
@@ -1654,8 +1688,7 @@ yyreduce:
switch (yyn)
{
case 3:
-
-/* Line 1455 of yacc.c */
+/* Line 1778 of yacc.c */
#line 70 "a.y"
{
stmtline = lineno;
@@ -1663,8 +1696,7 @@ yyreduce:
break;
case 5:
-
-/* Line 1455 of yacc.c */
+/* Line 1778 of yacc.c */
#line 77 "a.y"
{
if((yyvsp[(1) - (2)].sym)->value != pc)
@@ -1674,8 +1706,7 @@ yyreduce:
break;
case 7:
-
-/* Line 1455 of yacc.c */
+/* Line 1778 of yacc.c */
#line 84 "a.y"
{
(yyvsp[(1) - (2)].sym)->type = LLAB;
@@ -1684,8 +1715,7 @@ yyreduce:
break;
case 12:
-
-/* Line 1455 of yacc.c */
+/* Line 1778 of yacc.c */
#line 95 "a.y"
{
(yyvsp[(1) - (3)].sym)->type = LVAR;
@@ -1694,8 +1724,7 @@ yyreduce:
break;
case 13:
-
-/* Line 1455 of yacc.c */
+/* Line 1778 of yacc.c */
#line 100 "a.y"
{
if((yyvsp[(1) - (3)].sym)->value != (yyvsp[(3) - (3)].lval))
@@ -1705,207 +1734,197 @@ yyreduce:
break;
case 14:
-
-/* Line 1455 of yacc.c */
+/* Line 1778 of yacc.c */
#line 105 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 15:
-
-/* Line 1455 of yacc.c */
+/* Line 1778 of yacc.c */
#line 106 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 16:
-
-/* Line 1455 of yacc.c */
+/* Line 1778 of yacc.c */
#line 107 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 17:
-
-/* Line 1455 of yacc.c */
+/* Line 1778 of yacc.c */
#line 108 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 18:
-
-/* Line 1455 of yacc.c */
+/* Line 1778 of yacc.c */
#line 109 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 19:
-
-/* Line 1455 of yacc.c */
+/* Line 1778 of yacc.c */
#line 110 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 20:
-
-/* Line 1455 of yacc.c */
+/* Line 1778 of yacc.c */
#line 111 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 21:
-
-/* Line 1455 of yacc.c */
+/* Line 1778 of yacc.c */
#line 112 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 22:
-
-/* Line 1455 of yacc.c */
+/* Line 1778 of yacc.c */
#line 113 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 23:
-
-/* Line 1455 of yacc.c */
+/* Line 1778 of yacc.c */
#line 114 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 24:
-
-/* Line 1455 of yacc.c */
+/* Line 1778 of yacc.c */
#line 115 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 25:
-
-/* Line 1455 of yacc.c */
+/* Line 1778 of yacc.c */
#line 116 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 26:
-
-/* Line 1455 of yacc.c */
+/* Line 1778 of yacc.c */
#line 117 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
break;
case 27:
-
-/* Line 1455 of yacc.c */
+/* Line 1778 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 119 "a.y"
+ { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); }
+ break;
-/* Line 1455 of yacc.c */
-#line 121 "a.y"
+ case 29:
+/* Line 1778 of yacc.c */
+#line 122 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = nullgen;
}
break;
- case 29:
-
-/* Line 1455 of yacc.c */
-#line 126 "a.y"
+ case 30:
+/* Line 1778 of yacc.c */
+#line 127 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = nullgen;
}
break;
- case 30:
-
-/* Line 1455 of yacc.c */
-#line 133 "a.y"
+ case 31:
+/* Line 1778 of yacc.c */
+#line 134 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 31:
-
-/* Line 1455 of yacc.c */
-#line 140 "a.y"
+ case 32:
+/* Line 1778 of yacc.c */
+#line 141 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 32:
-
-/* Line 1455 of yacc.c */
-#line 147 "a.y"
+ case 33:
+/* Line 1778 of yacc.c */
+#line 148 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (2)].gen);
(yyval.gen2).to = nullgen;
}
break;
- case 33:
-
-/* Line 1455 of yacc.c */
-#line 152 "a.y"
+ case 34:
+/* Line 1778 of yacc.c */
+#line 153 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (1)].gen);
(yyval.gen2).to = nullgen;
}
break;
- case 34:
-
-/* Line 1455 of yacc.c */
-#line 159 "a.y"
+ case 35:
+/* Line 1778 of yacc.c */
+#line 160 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(2) - (2)].gen);
}
break;
- case 35:
-
-/* Line 1455 of yacc.c */
-#line 164 "a.y"
+ case 36:
+/* Line 1778 of yacc.c */
+#line 165 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(1) - (1)].gen);
}
break;
- case 36:
-
-/* Line 1455 of yacc.c */
-#line 171 "a.y"
+ case 37:
+/* Line 1778 of yacc.c */
+#line 172 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(2) - (2)].gen);
}
break;
- case 37:
-
-/* Line 1455 of yacc.c */
-#line 176 "a.y"
+ case 38:
+/* Line 1778 of yacc.c */
+#line 177 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(1) - (1)].gen);
}
break;
- case 38:
+ case 39:
+/* Line 1778 of yacc.c */
+#line 182 "a.y"
+ {
+ (yyval.gen2).from = (yyvsp[(1) - (3)].gen);
+ (yyval.gen2).to = (yyvsp[(3) - (3)].gen);
+ }
+ break;
-/* Line 1455 of yacc.c */
-#line 183 "a.y"
+ case 40:
+/* Line 1778 of yacc.c */
+#line 189 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (5)].gen);
(yyval.gen2).from.scale = (yyvsp[(3) - (5)].lval);
@@ -1913,20 +1932,18 @@ yyreduce:
}
break;
- case 39:
-
-/* Line 1455 of yacc.c */
-#line 191 "a.y"
+ case 41:
+/* Line 1778 of yacc.c */
+#line 197 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 40:
-
-/* Line 1455 of yacc.c */
-#line 196 "a.y"
+ case 42:
+/* Line 1778 of yacc.c */
+#line 202 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (5)].gen);
(yyval.gen2).from.scale = (yyvsp[(3) - (5)].lval);
@@ -1934,30 +1951,27 @@ yyreduce:
}
break;
- case 41:
-
-/* Line 1455 of yacc.c */
-#line 204 "a.y"
+ case 43:
+/* Line 1778 of yacc.c */
+#line 210 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(2) - (2)].gen);
}
break;
- case 42:
-
-/* Line 1455 of yacc.c */
-#line 209 "a.y"
+ case 44:
+/* Line 1778 of yacc.c */
+#line 215 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(1) - (1)].gen);
}
break;
- case 43:
-
-/* Line 1455 of yacc.c */
-#line 214 "a.y"
+ case 45:
+/* Line 1778 of yacc.c */
+#line 220 "a.y"
{
(yyval.gen2).from = nullgen;
(yyval.gen2).to = (yyvsp[(2) - (2)].gen);
@@ -1966,20 +1980,18 @@ yyreduce:
}
break;
- case 46:
-
-/* Line 1455 of yacc.c */
-#line 227 "a.y"
+ case 48:
+/* Line 1778 of yacc.c */
+#line 233 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 47:
-
-/* Line 1455 of yacc.c */
-#line 232 "a.y"
+ case 49:
+/* Line 1778 of yacc.c */
+#line 238 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (5)].gen);
(yyval.gen2).to = (yyvsp[(3) - (5)].gen);
@@ -1989,20 +2001,18 @@ yyreduce:
}
break;
- case 48:
-
-/* Line 1455 of yacc.c */
-#line 242 "a.y"
+ case 50:
+/* Line 1778 of yacc.c */
+#line 248 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 49:
-
-/* Line 1455 of yacc.c */
-#line 247 "a.y"
+ case 51:
+/* Line 1778 of yacc.c */
+#line 253 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (5)].gen);
(yyval.gen2).to = (yyvsp[(3) - (5)].gen);
@@ -2012,50 +2022,45 @@ yyreduce:
}
break;
- case 50:
-
-/* Line 1455 of yacc.c */
-#line 257 "a.y"
+ case 52:
+/* Line 1778 of yacc.c */
+#line 263 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (2)].gen);
(yyval.gen2).to = nullgen;
}
break;
- case 51:
-
-/* Line 1455 of yacc.c */
-#line 262 "a.y"
+ case 53:
+/* Line 1778 of yacc.c */
+#line 268 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (1)].gen);
(yyval.gen2).to = nullgen;
}
break;
- case 52:
-
-/* Line 1455 of yacc.c */
-#line 267 "a.y"
+ case 54:
+/* Line 1778 of yacc.c */
+#line 273 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 53:
-
-/* Line 1455 of yacc.c */
-#line 274 "a.y"
+ case 55:
+/* Line 1778 of yacc.c */
+#line 280 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (3)].gen);
(yyval.gen2).to = (yyvsp[(3) - (3)].gen);
}
break;
- case 54:
-
-/* Line 1455 of yacc.c */
-#line 279 "a.y"
+ case 56:
+/* Line 1778 of yacc.c */
+#line 285 "a.y"
{
(yyval.gen2).from = (yyvsp[(1) - (5)].gen);
(yyval.gen2).from.scale = (yyvsp[(3) - (5)].lval);
@@ -2063,28 +2068,35 @@ yyreduce:
}
break;
- case 59:
-
-/* Line 1455 of yacc.c */
+ case 57:
+/* Line 1778 of yacc.c */
#line 293 "a.y"
{
- (yyval.gen) = (yyvsp[(2) - (2)].gen);
+ (yyval.gen2).from = (yyvsp[(1) - (5)].gen);
+ (yyval.gen2).to = (yyvsp[(3) - (5)].gen);
+ (yyval.gen2).to.offset = (yyvsp[(5) - (5)].lval);
}
break;
- case 60:
-
-/* Line 1455 of yacc.c */
-#line 297 "a.y"
+ case 62:
+/* Line 1778 of yacc.c */
+#line 307 "a.y"
{
(yyval.gen) = (yyvsp[(2) - (2)].gen);
}
break;
- case 66:
+ case 63:
+/* Line 1778 of yacc.c */
+#line 311 "a.y"
+ {
+ (yyval.gen) = (yyvsp[(2) - (2)].gen);
+ }
+ break;
-/* Line 1455 of yacc.c */
-#line 310 "a.y"
+ case 69:
+/* Line 1778 of yacc.c */
+#line 324 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_BRANCH;
@@ -2092,10 +2104,9 @@ yyreduce:
}
break;
- case 67:
-
-/* Line 1455 of yacc.c */
-#line 316 "a.y"
+ case 70:
+/* Line 1778 of yacc.c */
+#line 330 "a.y"
{
(yyval.gen) = nullgen;
if(pass == 2)
@@ -2106,10 +2117,9 @@ yyreduce:
}
break;
- case 68:
-
-/* Line 1455 of yacc.c */
-#line 325 "a.y"
+ case 71:
+/* Line 1778 of yacc.c */
+#line 339 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_BRANCH;
@@ -2118,60 +2128,63 @@ yyreduce:
}
break;
- case 69:
-
-/* Line 1455 of yacc.c */
-#line 334 "a.y"
+ case 72:
+/* Line 1778 of yacc.c */
+#line 348 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = (yyvsp[(1) - (1)].lval);
}
break;
- case 70:
-
-/* Line 1455 of yacc.c */
-#line 339 "a.y"
+ case 73:
+/* Line 1778 of yacc.c */
+#line 353 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = (yyvsp[(1) - (1)].lval);
}
break;
- case 71:
-
-/* Line 1455 of yacc.c */
-#line 344 "a.y"
+ case 74:
+/* Line 1778 of yacc.c */
+#line 358 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = (yyvsp[(1) - (1)].lval);
}
break;
- case 72:
+ case 75:
+/* Line 1778 of yacc.c */
+#line 363 "a.y"
+ {
+ (yyval.gen) = nullgen;
+ (yyval.gen).type = (yyvsp[(1) - (1)].lval);
+ }
+ break;
-/* Line 1455 of yacc.c */
-#line 349 "a.y"
+ case 76:
+/* Line 1778 of yacc.c */
+#line 368 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_SP;
}
break;
- case 73:
-
-/* Line 1455 of yacc.c */
-#line 354 "a.y"
+ case 77:
+/* Line 1778 of yacc.c */
+#line 373 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = (yyvsp[(1) - (1)].lval);
}
break;
- case 74:
-
-/* Line 1455 of yacc.c */
-#line 361 "a.y"
+ case 78:
+/* Line 1778 of yacc.c */
+#line 380 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_CONST;
@@ -2179,10 +2192,9 @@ yyreduce:
}
break;
- case 75:
-
-/* Line 1455 of yacc.c */
-#line 367 "a.y"
+ case 79:
+/* Line 1778 of yacc.c */
+#line 386 "a.y"
{
(yyval.gen) = (yyvsp[(2) - (2)].gen);
(yyval.gen).index = (yyvsp[(2) - (2)].gen).type;
@@ -2195,10 +2207,9 @@ yyreduce:
}
break;
- case 76:
-
-/* Line 1455 of yacc.c */
-#line 378 "a.y"
+ case 80:
+/* Line 1778 of yacc.c */
+#line 397 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_SCONST;
@@ -2206,10 +2217,9 @@ yyreduce:
}
break;
- case 77:
-
-/* Line 1455 of yacc.c */
-#line 384 "a.y"
+ case 81:
+/* Line 1778 of yacc.c */
+#line 403 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_FCONST;
@@ -2217,10 +2227,9 @@ yyreduce:
}
break;
- case 78:
-
-/* Line 1455 of yacc.c */
-#line 390 "a.y"
+ case 82:
+/* Line 1778 of yacc.c */
+#line 409 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_FCONST;
@@ -2228,10 +2237,9 @@ yyreduce:
}
break;
- case 79:
-
-/* Line 1455 of yacc.c */
-#line 396 "a.y"
+ case 83:
+/* Line 1778 of yacc.c */
+#line 415 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_FCONST;
@@ -2239,10 +2247,9 @@ yyreduce:
}
break;
- case 80:
-
-/* Line 1455 of yacc.c */
-#line 402 "a.y"
+ case 84:
+/* Line 1778 of yacc.c */
+#line 421 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_FCONST;
@@ -2250,10 +2257,9 @@ yyreduce:
}
break;
- case 81:
-
-/* Line 1455 of yacc.c */
-#line 410 "a.y"
+ case 85:
+/* Line 1778 of yacc.c */
+#line 429 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_CONST2;
@@ -2262,50 +2268,45 @@ yyreduce:
}
break;
- case 82:
-
-/* Line 1455 of yacc.c */
-#line 419 "a.y"
+ case 86:
+/* Line 1778 of yacc.c */
+#line 438 "a.y"
{
(yyval.con2).v1 = (yyvsp[(1) - (1)].lval);
(yyval.con2).v2 = 0;
}
break;
- case 83:
-
-/* Line 1455 of yacc.c */
-#line 424 "a.y"
+ case 87:
+/* Line 1778 of yacc.c */
+#line 443 "a.y"
{
(yyval.con2).v1 = -(yyvsp[(2) - (2)].lval);
(yyval.con2).v2 = 0;
}
break;
- case 84:
-
-/* Line 1455 of yacc.c */
-#line 429 "a.y"
+ case 88:
+/* Line 1778 of yacc.c */
+#line 448 "a.y"
{
(yyval.con2).v1 = (yyvsp[(1) - (3)].lval);
(yyval.con2).v2 = (yyvsp[(3) - (3)].lval);
}
break;
- case 85:
-
-/* Line 1455 of yacc.c */
-#line 434 "a.y"
+ case 89:
+/* Line 1778 of yacc.c */
+#line 453 "a.y"
{
(yyval.con2).v1 = -(yyvsp[(2) - (4)].lval);
(yyval.con2).v2 = (yyvsp[(4) - (4)].lval);
}
break;
- case 88:
-
-/* Line 1455 of yacc.c */
-#line 445 "a.y"
+ case 92:
+/* Line 1778 of yacc.c */
+#line 464 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+D_NONE;
@@ -2313,10 +2314,9 @@ yyreduce:
}
break;
- case 89:
-
-/* Line 1455 of yacc.c */
-#line 451 "a.y"
+ case 93:
+/* Line 1778 of yacc.c */
+#line 470 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+(yyvsp[(3) - (4)].lval);
@@ -2324,10 +2324,9 @@ yyreduce:
}
break;
- case 90:
-
-/* Line 1455 of yacc.c */
-#line 457 "a.y"
+ case 94:
+/* Line 1778 of yacc.c */
+#line 476 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+D_SP;
@@ -2335,10 +2334,9 @@ yyreduce:
}
break;
- case 91:
-
-/* Line 1455 of yacc.c */
-#line 463 "a.y"
+ case 95:
+/* Line 1778 of yacc.c */
+#line 482 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+D_NONE;
@@ -2349,10 +2347,9 @@ yyreduce:
}
break;
- case 92:
-
-/* Line 1455 of yacc.c */
-#line 472 "a.y"
+ case 96:
+/* Line 1778 of yacc.c */
+#line 491 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+(yyvsp[(3) - (9)].lval);
@@ -2363,30 +2360,27 @@ yyreduce:
}
break;
- case 93:
-
-/* Line 1455 of yacc.c */
-#line 481 "a.y"
+ case 97:
+/* Line 1778 of yacc.c */
+#line 500 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+(yyvsp[(2) - (3)].lval);
}
break;
- case 94:
-
-/* Line 1455 of yacc.c */
-#line 486 "a.y"
+ case 98:
+/* Line 1778 of yacc.c */
+#line 505 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+D_SP;
}
break;
- case 95:
-
-/* Line 1455 of yacc.c */
-#line 491 "a.y"
+ case 99:
+/* Line 1778 of yacc.c */
+#line 510 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+(yyvsp[(3) - (4)].lval);
@@ -2394,10 +2388,9 @@ yyreduce:
}
break;
- case 96:
-
-/* Line 1455 of yacc.c */
-#line 497 "a.y"
+ case 100:
+/* Line 1778 of yacc.c */
+#line 516 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+D_NONE;
@@ -2407,10 +2400,9 @@ yyreduce:
}
break;
- case 97:
-
-/* Line 1455 of yacc.c */
-#line 505 "a.y"
+ case 101:
+/* Line 1778 of yacc.c */
+#line 524 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_INDIR+(yyvsp[(2) - (8)].lval);
@@ -2420,19 +2412,17 @@ yyreduce:
}
break;
- case 98:
-
-/* Line 1455 of yacc.c */
-#line 515 "a.y"
+ case 102:
+/* Line 1778 of yacc.c */
+#line 534 "a.y"
{
(yyval.gen) = (yyvsp[(1) - (1)].gen);
}
break;
- case 99:
-
-/* Line 1455 of yacc.c */
-#line 519 "a.y"
+ case 103:
+/* Line 1778 of yacc.c */
+#line 538 "a.y"
{
(yyval.gen) = (yyvsp[(1) - (6)].gen);
(yyval.gen).index = (yyvsp[(3) - (6)].lval);
@@ -2441,10 +2431,9 @@ yyreduce:
}
break;
- case 100:
-
-/* Line 1455 of yacc.c */
-#line 528 "a.y"
+ case 104:
+/* Line 1778 of yacc.c */
+#line 547 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = (yyvsp[(4) - (5)].lval);
@@ -2453,10 +2442,9 @@ yyreduce:
}
break;
- case 101:
-
-/* Line 1455 of yacc.c */
-#line 535 "a.y"
+ case 105:
+/* Line 1778 of yacc.c */
+#line 554 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_STATIC;
@@ -2465,183 +2453,174 @@ yyreduce:
}
break;
- case 102:
-
-/* Line 1455 of yacc.c */
-#line 543 "a.y"
+ case 106:
+/* Line 1778 of yacc.c */
+#line 562 "a.y"
{
(yyval.lval) = 0;
}
break;
- case 103:
-
-/* Line 1455 of yacc.c */
-#line 547 "a.y"
+ case 107:
+/* Line 1778 of yacc.c */
+#line 566 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (2)].lval);
}
break;
- case 104:
-
-/* Line 1455 of yacc.c */
-#line 551 "a.y"
+ case 108:
+/* Line 1778 of yacc.c */
+#line 570 "a.y"
{
(yyval.lval) = -(yyvsp[(2) - (2)].lval);
}
break;
- case 106:
-
-/* Line 1455 of yacc.c */
-#line 558 "a.y"
+ case 110:
+/* Line 1778 of yacc.c */
+#line 577 "a.y"
{
(yyval.lval) = D_AUTO;
}
break;
- case 109:
-
-/* Line 1455 of yacc.c */
-#line 566 "a.y"
+ case 113:
+/* Line 1778 of yacc.c */
+#line 585 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (1)].sym)->value;
}
break;
- case 110:
-
-/* Line 1455 of yacc.c */
-#line 570 "a.y"
+ case 114:
+/* Line 1778 of yacc.c */
+#line 589 "a.y"
{
(yyval.lval) = -(yyvsp[(2) - (2)].lval);
}
break;
- case 111:
-
-/* Line 1455 of yacc.c */
-#line 574 "a.y"
+ case 115:
+/* Line 1778 of yacc.c */
+#line 593 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (2)].lval);
}
break;
- case 112:
-
-/* Line 1455 of yacc.c */
-#line 578 "a.y"
+ case 116:
+/* Line 1778 of yacc.c */
+#line 597 "a.y"
{
(yyval.lval) = ~(yyvsp[(2) - (2)].lval);
}
break;
- case 113:
-
-/* Line 1455 of yacc.c */
-#line 582 "a.y"
+ case 117:
+/* Line 1778 of yacc.c */
+#line 601 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (3)].lval);
}
break;
- case 115:
-
-/* Line 1455 of yacc.c */
-#line 589 "a.y"
+ case 119:
+/* Line 1778 of yacc.c */
+#line 608 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) + (yyvsp[(3) - (3)].lval);
}
break;
- case 116:
-
-/* Line 1455 of yacc.c */
-#line 593 "a.y"
+ case 120:
+/* Line 1778 of yacc.c */
+#line 612 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) - (yyvsp[(3) - (3)].lval);
}
break;
- case 117:
-
-/* Line 1455 of yacc.c */
-#line 597 "a.y"
+ case 121:
+/* Line 1778 of yacc.c */
+#line 616 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) * (yyvsp[(3) - (3)].lval);
}
break;
- case 118:
-
-/* Line 1455 of yacc.c */
-#line 601 "a.y"
+ case 122:
+/* Line 1778 of yacc.c */
+#line 620 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) / (yyvsp[(3) - (3)].lval);
}
break;
- case 119:
-
-/* Line 1455 of yacc.c */
-#line 605 "a.y"
+ case 123:
+/* Line 1778 of yacc.c */
+#line 624 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) % (yyvsp[(3) - (3)].lval);
}
break;
- case 120:
-
-/* Line 1455 of yacc.c */
-#line 609 "a.y"
+ case 124:
+/* Line 1778 of yacc.c */
+#line 628 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (4)].lval) << (yyvsp[(4) - (4)].lval);
}
break;
- case 121:
-
-/* Line 1455 of yacc.c */
-#line 613 "a.y"
+ case 125:
+/* Line 1778 of yacc.c */
+#line 632 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (4)].lval) >> (yyvsp[(4) - (4)].lval);
}
break;
- case 122:
-
-/* Line 1455 of yacc.c */
-#line 617 "a.y"
+ case 126:
+/* Line 1778 of yacc.c */
+#line 636 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) & (yyvsp[(3) - (3)].lval);
}
break;
- case 123:
-
-/* Line 1455 of yacc.c */
-#line 621 "a.y"
+ case 127:
+/* Line 1778 of yacc.c */
+#line 640 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) ^ (yyvsp[(3) - (3)].lval);
}
break;
- case 124:
-
-/* Line 1455 of yacc.c */
-#line 625 "a.y"
+ case 128:
+/* Line 1778 of yacc.c */
+#line 644 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) | (yyvsp[(3) - (3)].lval);
}
break;
-
-/* Line 1455 of yacc.c */
-#line 2643 "y.tab.c"
+/* Line 1778 of yacc.c */
+#line 2611 "y.tab.c"
default: break;
}
+ /* User semantic actions sometimes alter yychar, and that requires
+ that yytoken be updated with the new translation. We take the
+ approach of translating immediately before every use of yytoken.
+ One alternative is translating here after every semantic action,
+ but that translation would be missed if the semantic action invokes
+ YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
+ if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
+ incorrect destructor might then be invoked immediately. In the
+ case of YYERROR or YYBACKUP, subsequent parser actions might lead
+ to an incorrect destructor call or verbose syntax error message
+ before the lookahead is translated. */
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
YYPOPSTACK (yylen);
@@ -2669,6 +2648,10 @@ yyreduce:
| yyerrlab -- here on detecting error |
`------------------------------------*/
yyerrlab:
+ /* Make sure we have latest lookahead translation. See comments at
+ user semantic actions for why this is necessary. */
+ yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
+
/* If not already recovering from an error, report this error. */
if (!yyerrstatus)
{
@@ -2676,37 +2659,36 @@ yyerrlab:
#if ! YYERROR_VERBOSE
yyerror (YY_("syntax error"));
#else
+# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
+ yyssp, yytoken)
{
- YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
- if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
- {
- YYSIZE_T yyalloc = 2 * yysize;
- if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
- yyalloc = YYSTACK_ALLOC_MAXIMUM;
- if (yymsg != yymsgbuf)
- YYSTACK_FREE (yymsg);
- yymsg = (char *) YYSTACK_ALLOC (yyalloc);
- if (yymsg)
- yymsg_alloc = yyalloc;
- else
- {
- yymsg = yymsgbuf;
- yymsg_alloc = sizeof yymsgbuf;
- }
- }
-
- if (0 < yysize && yysize <= yymsg_alloc)
- {
- (void) yysyntax_error (yymsg, yystate, yychar);
- yyerror (yymsg);
- }
- else
- {
- yyerror (YY_("syntax error"));
- if (yysize != 0)
- goto yyexhaustedlab;
- }
+ char const *yymsgp = YY_("syntax error");
+ int yysyntax_error_status;
+ yysyntax_error_status = YYSYNTAX_ERROR;
+ if (yysyntax_error_status == 0)
+ yymsgp = yymsg;
+ else if (yysyntax_error_status == 1)
+ {
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+ yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
+ if (!yymsg)
+ {
+ yymsg = yymsgbuf;
+ yymsg_alloc = sizeof yymsgbuf;
+ yysyntax_error_status = 2;
+ }
+ else
+ {
+ yysyntax_error_status = YYSYNTAX_ERROR;
+ yymsgp = yymsg;
+ }
+ }
+ yyerror (yymsgp);
+ if (yysyntax_error_status == 2)
+ goto yyexhaustedlab;
}
+# undef YYSYNTAX_ERROR
#endif
}
@@ -2765,7 +2747,7 @@ yyerrlab1:
for (;;)
{
yyn = yypact[yystate];
- if (yyn != YYPACT_NINF)
+ if (!yypact_value_is_default (yyn))
{
yyn += YYTERROR;
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
@@ -2788,7 +2770,9 @@ yyerrlab1:
YY_STACK_PRINT (yyss, yyssp);
}
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
*++yyvsp = yylval;
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
/* Shift the error token. */
@@ -2812,7 +2796,7 @@ yyabortlab:
yyresult = 1;
goto yyreturn;
-#if !defined(yyoverflow) || YYERROR_VERBOSE
+#if !defined yyoverflow || YYERROR_VERBOSE
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here. |
`-------------------------------------------------*/
@@ -2824,8 +2808,13 @@ yyexhaustedlab:
yyreturn:
if (yychar != YYEMPTY)
- yydestruct ("Cleanup: discarding lookahead",
- yytoken, &yylval);
+ {
+ /* Make sure we have latest lookahead translation. See comments at
+ user semantic actions for why this is necessary. */
+ yytoken = YYTRANSLATE (yychar);
+ yydestruct ("Cleanup: discarding lookahead",
+ yytoken, &yylval);
+ }
/* Do not reclaim the symbols of the rule which action triggered
this YYABORT or YYACCEPT. */
YYPOPSTACK (yylen);
@@ -2849,4 +2838,3 @@ yyreturn:
}
-