aboutsummaryrefslogtreecommitdiff
path: root/engines/director
diff options
context:
space:
mode:
authorEugene Sandulenko2019-12-06 16:53:14 +0100
committerEugene Sandulenko2019-12-06 16:53:14 +0100
commit458ad2a86f2abbcdc521cbee15ca293052fd4b1f (patch)
treeaa8bbe72e33cf1c82f5009d2af142f73d6f1c0b5 /engines/director
parenta45beac45712a64ddf3c66cf2cc12e348d555e27 (diff)
downloadscummvm-rg350-458ad2a86f2abbcdc521cbee15ca293052fd4b1f.tar.gz
scummvm-rg350-458ad2a86f2abbcdc521cbee15ca293052fd4b1f.tar.bz2
scummvm-rg350-458ad2a86f2abbcdc521cbee15ca293052fd4b1f.zip
DIRECTOR: LINGO: Switch back to LALR(1) parser
Diffstat (limited to 'engines/director')
-rw-r--r--engines/director/lingo/lingo-gr.cpp5830
-rw-r--r--engines/director/lingo/lingo-gr.h332
-rw-r--r--engines/director/lingo/lingo-gr.y1
3 files changed, 2279 insertions, 3884 deletions
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 6205e16a32..a4c727415c 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -1,13 +1,14 @@
-/* A Bison parser, made by GNU Bison 3.4.2. */
+/* A Bison parser, made by GNU Bison 2.3. */
-/* Skeleton implementation for Bison GLR parsers in C
+/* Skeleton implementation for Bison's Yacc-like parsers in C
- Copyright (C) 2002-2015, 2018-2019 Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+ Free Software Foundation, Inc.
- This program is free software: you can redistribute it and/or modify
+ 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
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -15,7 +16,9 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
@@ -30,30 +33,228 @@
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
-/* C GLR parser skeleton written by Paul Hilfinger. */
+/* C LALR(1) parser skeleton written by Richard Stallman, by
+ simplifying the original so-called "semantic" parser. */
-/* Undocumented macros, especially those whose name start with YY_,
- are private implementation details. Do not rely on them. */
+/* All symbols defined below should begin with yy or YY, to avoid
+ infringing on user name space. This should be done even for local
+ variables, as they might otherwise be expanded by user macros.
+ There are some unavoidable exceptions within include files to
+ define necessary library symbols; they are noted "INFRINGES ON
+ USER NAME SPACE" below. */
/* Identify Bison output. */
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "3.4.2"
+#define YYBISON_VERSION "2.3"
/* Skeleton name. */
-#define YYSKELETON_NAME "glr.c"
+#define YYSKELETON_NAME "yacc.c"
/* Pure parsers. */
#define YYPURE 0
-
-
-
-
-
-/* First part of user prologue. */
-#line 50 "engines/director/lingo/lingo-gr.y"
+/* Using locations. */
+#define YYLSP_NEEDED 0
+
+
+
+/* Tokens. */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
+ know about them. */
+ enum yytokentype {
+ UNARY = 258,
+ CASTREF = 259,
+ VOID = 260,
+ VAR = 261,
+ POINT = 262,
+ RECT = 263,
+ ARRAY = 264,
+ OBJECT = 265,
+ REFERENCE = 266,
+ INT = 267,
+ ARGC = 268,
+ ARGCNORET = 269,
+ THEENTITY = 270,
+ THEENTITYWITHID = 271,
+ FLOAT = 272,
+ BLTIN = 273,
+ BLTINNOARGS = 274,
+ BLTINNOARGSORONE = 275,
+ BLTINONEARG = 276,
+ BLTINARGLIST = 277,
+ TWOWORDBUILTIN = 278,
+ FBLTIN = 279,
+ FBLTINNOARGS = 280,
+ FBLTINONEARG = 281,
+ FBLTINARGLIST = 282,
+ RBLTIN = 283,
+ RBLTINONEARG = 284,
+ ID = 285,
+ STRING = 286,
+ HANDLER = 287,
+ SYMBOL = 288,
+ ENDCLAUSE = 289,
+ tPLAYACCEL = 290,
+ tDOWN = 291,
+ tELSE = 292,
+ tNLELSIF = 293,
+ tEXIT = 294,
+ tFRAME = 295,
+ tGLOBAL = 296,
+ tGO = 297,
+ tIF = 298,
+ tINTO = 299,
+ tLOOP = 300,
+ tMACRO = 301,
+ tMOVIE = 302,
+ tNEXT = 303,
+ tOF = 304,
+ tPREVIOUS = 305,
+ tPUT = 306,
+ tREPEAT = 307,
+ tSET = 308,
+ tTHEN = 309,
+ tTHENNL = 310,
+ tTO = 311,
+ tWHEN = 312,
+ tWITH = 313,
+ tWHILE = 314,
+ tNLELSE = 315,
+ tFACTORY = 316,
+ tMETHOD = 317,
+ tOPEN = 318,
+ tPLAY = 319,
+ tDONE = 320,
+ tINSTANCE = 321,
+ tGE = 322,
+ tLE = 323,
+ tGT = 324,
+ tLT = 325,
+ tEQ = 326,
+ tNEQ = 327,
+ tAND = 328,
+ tOR = 329,
+ tNOT = 330,
+ tMOD = 331,
+ tAFTER = 332,
+ tBEFORE = 333,
+ tCONCAT = 334,
+ tCONTAINS = 335,
+ tSTARTS = 336,
+ tCHAR = 337,
+ tITEM = 338,
+ tLINE = 339,
+ tWORD = 340,
+ tSPRITE = 341,
+ tINTERSECTS = 342,
+ tWITHIN = 343,
+ tTELL = 344,
+ tPROPERTY = 345,
+ tON = 346,
+ tME = 347
+ };
+#endif
+/* Tokens. */
+#define UNARY 258
+#define CASTREF 259
+#define VOID 260
+#define VAR 261
+#define POINT 262
+#define RECT 263
+#define ARRAY 264
+#define OBJECT 265
+#define REFERENCE 266
+#define INT 267
+#define ARGC 268
+#define ARGCNORET 269
+#define THEENTITY 270
+#define THEENTITYWITHID 271
+#define FLOAT 272
+#define BLTIN 273
+#define BLTINNOARGS 274
+#define BLTINNOARGSORONE 275
+#define BLTINONEARG 276
+#define BLTINARGLIST 277
+#define TWOWORDBUILTIN 278
+#define FBLTIN 279
+#define FBLTINNOARGS 280
+#define FBLTINONEARG 281
+#define FBLTINARGLIST 282
+#define RBLTIN 283
+#define RBLTINONEARG 284
+#define ID 285
+#define STRING 286
+#define HANDLER 287
+#define SYMBOL 288
+#define ENDCLAUSE 289
+#define tPLAYACCEL 290
+#define tDOWN 291
+#define tELSE 292
+#define tNLELSIF 293
+#define tEXIT 294
+#define tFRAME 295
+#define tGLOBAL 296
+#define tGO 297
+#define tIF 298
+#define tINTO 299
+#define tLOOP 300
+#define tMACRO 301
+#define tMOVIE 302
+#define tNEXT 303
+#define tOF 304
+#define tPREVIOUS 305
+#define tPUT 306
+#define tREPEAT 307
+#define tSET 308
+#define tTHEN 309
+#define tTHENNL 310
+#define tTO 311
+#define tWHEN 312
+#define tWITH 313
+#define tWHILE 314
+#define tNLELSE 315
+#define tFACTORY 316
+#define tMETHOD 317
+#define tOPEN 318
+#define tPLAY 319
+#define tDONE 320
+#define tINSTANCE 321
+#define tGE 322
+#define tLE 323
+#define tGT 324
+#define tLT 325
+#define tEQ 326
+#define tNEQ 327
+#define tAND 328
+#define tOR 329
+#define tNOT 330
+#define tMOD 331
+#define tAFTER 332
+#define tBEFORE 333
+#define tCONCAT 334
+#define tCONTAINS 335
+#define tSTARTS 336
+#define tCHAR 337
+#define tITEM 338
+#define tLINE 339
+#define tWORD 340
+#define tSPRITE 341
+#define tINTERSECTS 342
+#define tWITHIN 343
+#define tTELL 344
+#define tPROPERTY 345
+#define tON 346
+#define tME 347
+
+
+
+
+/* Copy the first part of user declarations. */
+#line 49 "engines/director/lingo/lingo-gr.y"
#define FORBIDDEN_SYMBOL_ALLOW_ALL
@@ -83,22 +284,11 @@ void checkEnd(Common::String *token, const char *expect, bool required) {
}
-#line 87 "engines/director/lingo/lingo-gr.cpp"
-
-
-# ifndef YY_NULLPTR
-# if defined __cplusplus
-# if 201103L <= __cplusplus
-# define YY_NULLPTR nullptr
-# else
-# define YY_NULLPTR 0
-# endif
-# else
-# define YY_NULLPTR ((void*)0)
-# endif
-# endif
-#include "lingo-gr.h"
+/* Enabling traces. */
+#ifndef YYDEBUG
+# define YYDEBUG 1
+#endif
/* Enabling verbose error messages. */
#ifdef YYERROR_VERBOSE
@@ -108,137 +298,253 @@ void checkEnd(Common::String *token, const char *expect, bool required) {
# define YYERROR_VERBOSE 0
#endif
-/* Default (constant) value used for initialization for null
- right-hand sides. Unlike the standard yacc.c template, here we set
- the default value of $$ to a zeroed-out value. Since the default
- value is undefined, this behavior is technically correct. */
-static YYSTYPE yyval_default;
+/* Enabling the token table. */
+#ifndef YYTOKEN_TABLE
+# define YYTOKEN_TABLE 0
+#endif
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE
+#line 79 "engines/director/lingo/lingo-gr.y"
+{
+ Common::String *s;
+ int i;
+ double f;
+ int e[2]; // Entity + field
+ int code;
+ int narg; /* number of arguments */
+ Common::Array<double> *arr;
+}
+/* Line 193 of yacc.c. */
+#line 320 "engines/director/lingo/lingo-gr.cpp"
+ YYSTYPE;
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#ifndef YY_
-# if defined YYENABLE_NLS && YYENABLE_NLS
-# if ENABLE_NLS
-# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-# define YY_(Msgid) dgettext ("bison-runtime", Msgid)
-# endif
-# endif
-# ifndef YY_
-# define YY_(Msgid) Msgid
-# endif
-#endif
+/* Copy the second part of user declarations. */
-#ifndef YYFREE
-# define YYFREE free
-#endif
-#ifndef YYMALLOC
-# define YYMALLOC malloc
+
+/* Line 216 of yacc.c. */
+#line 333 "engines/director/lingo/lingo-gr.cpp"
+
+#ifdef short
+# undef short
#endif
-#ifndef YYREALLOC
-# define YYREALLOC realloc
+
+#ifdef YYTYPE_UINT8
+typedef YYTYPE_UINT8 yytype_uint8;
+#else
+typedef unsigned char yytype_uint8;
#endif
-#define YYSIZEMAX ((size_t) -1)
+#ifdef YYTYPE_INT8
+typedef YYTYPE_INT8 yytype_int8;
+#elif (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+typedef signed char yytype_int8;
+#else
+typedef short int yytype_int8;
+#endif
-#ifdef __cplusplus
- typedef bool yybool;
-# define yytrue true
-# define yyfalse false
+#ifdef YYTYPE_UINT16
+typedef YYTYPE_UINT16 yytype_uint16;
#else
- /* When we move to stdbool, get rid of the various casts to yybool. */
- typedef unsigned char yybool;
-# define yytrue 1
-# define yyfalse 0
+typedef unsigned short int yytype_uint16;
#endif
-#ifndef YYSETJMP
-# include <setjmp.h>
-# define YYJMP_BUF jmp_buf
-# define YYSETJMP(Env) setjmp (Env)
-/* Pacify Clang and ICC. */
-# define YYLONGJMP(Env, Val) \
- do { \
- longjmp (Env, Val); \
- YYASSERT (0); \
- } while (yyfalse)
+#ifdef YYTYPE_INT16
+typedef YYTYPE_INT16 yytype_int16;
+#else
+typedef short int yytype_int16;
#endif
-#ifndef YY_ATTRIBUTE
-# if (defined __GNUC__ \
- && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
- || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
-# define YY_ATTRIBUTE(Spec) __attribute__(Spec)
+#ifndef YYSIZE_T
+# ifdef __SIZE_TYPE__
+# define YYSIZE_T __SIZE_TYPE__
+# elif defined size_t
+# define YYSIZE_T size_t
+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+# define YYSIZE_T size_t
# else
-# define YY_ATTRIBUTE(Spec) /* empty */
+# define YYSIZE_T unsigned int
# endif
#endif
-#ifndef YY_ATTRIBUTE_PURE
-# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
-#endif
-
-#ifndef YY_ATTRIBUTE_UNUSED
-# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
-#endif
+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
-/* The _Noreturn keyword of C11. */
-#ifndef _Noreturn
-# if (defined __cplusplus \
- && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \
- || (defined _MSC_VER && 1900 <= _MSC_VER)))
-# define _Noreturn [[noreturn]]
-# elif ((!defined __cplusplus || defined __clang__) \
- && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
- || 4 < __GNUC__ + (7 <= __GNUC_MINOR__)))
- /* _Noreturn works as-is. */
-# elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C
-# define _Noreturn __attribute__ ((__noreturn__))
-# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0)
-# define _Noreturn __declspec (noreturn)
-# else
-# define _Noreturn
+#ifndef YY_
+# if defined YYENABLE_NLS && YYENABLE_NLS
+# if ENABLE_NLS
+# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
+# define YY_(msgid) dgettext ("bison-runtime", msgid)
+# endif
+# endif
+# ifndef YY_
+# 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
-#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
-/* Suppress an incorrect diagnostic about yylval being uninitialized. */
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
- _Pragma ("GCC diagnostic push") \
- _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
- _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
- _Pragma ("GCC diagnostic pop")
+/* Identity function, used to suppress warnings about constant conditions. */
+#ifndef lint
+# define YYID(n) (n)
#else
-# define YY_INITIAL_VALUE(Value) Value
-#endif
-#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static int
+YYID (int i)
+#else
+static int
+YYID (i)
+ int i;
#endif
-#ifndef YY_INITIAL_VALUE
-# define YY_INITIAL_VALUE(Value) /* Nothing. */
+{
+ return i;
+}
#endif
+#if ! defined yyoverflow || YYERROR_VERBOSE
+
+/* The parser invokes alloca or malloc; define the necessary symbols. */
+
+# ifdef YYSTACK_USE_ALLOCA
+# if YYSTACK_USE_ALLOCA
+# ifdef __GNUC__
+# define YYSTACK_ALLOC __builtin_alloca
+# elif defined __BUILTIN_VA_ARG_INCR
+# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
+# elif defined _AIX
+# define YYSTACK_ALLOC __alloca
+# elif defined _MSC_VER
+# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
+# define alloca _alloca
+# else
+# define YYSTACK_ALLOC alloca
+# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (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
+# endif
+# endif
+# endif
+# endif
+# endif
+
+# ifdef YYSTACK_ALLOC
+ /* Pacify GCC's `empty if-body' warning. */
+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
+# ifndef YYSTACK_ALLOC_MAXIMUM
+ /* The OS might guarantee only one guard page at the bottom of the stack,
+ and a page size can be as small as 4096 bytes. So we cannot safely
+ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
+ to allow for a few compiler-allocated temporary stack slots. */
+# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
+# endif
+# else
+# define YYSTACK_ALLOC YYMALLOC
+# define YYSTACK_FREE YYFREE
+# ifndef YYSTACK_ALLOC_MAXIMUM
+# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
+# endif
+# if (defined __cplusplus && ! defined _STDLIB_H \
+ && ! ((defined YYMALLOC || defined malloc) \
+ && (defined YYFREE || defined free)))
+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+# ifndef _STDLIB_H
+# define _STDLIB_H 1
+# endif
+# endif
+# ifndef YYMALLOC
+# define YYMALLOC malloc
+# if ! defined malloc && ! defined _STDLIB_H && (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__ \
+ || defined __cplusplus || defined _MSC_VER)
+void free (void *); /* INFRINGES ON USER NAME SPACE */
+# endif
+# endif
+# endif
+#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
+
+
+#if (! defined yyoverflow \
+ && (! defined __cplusplus \
+ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+
+/* A type that is properly aligned for any stack member. */
+union yyalloc
+{
+ yytype_int16 yyss;
+ YYSTYPE yyvs;
+ };
+
+/* The size of the maximum gap between one aligned stack and the next. */
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+ N elements. */
+# define YYSTACK_BYTES(N) \
+ ((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
+
+/* Relocate STACK from its old location to the new one. The
+ local variables YYSIZE and YYSTACKSIZE give the old and new number of
+ elements in the stack, and YYPTR gives the new location of the
+ stack. Advance YYPTR to a properly aligned location for the next
+ stack. */
+# define YYSTACK_RELOCATE(Stack) \
+ do \
+ { \
+ YYSIZE_T yynewbytes; \
+ YYCOPY (&yyptr->Stack, Stack, yysize); \
+ Stack = &yyptr->Stack; \
+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+ yyptr += yynewbytes / sizeof (*yyptr); \
+ } \
+ while (YYID (0))
-#ifndef YYASSERT
-# define YYASSERT(Condition) ((void) ((Condition) || (abort (), 0)))
#endif
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 126
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 3379
+#define YYLAST 1563
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 107
@@ -246,28 +552,18 @@ static YYSTYPE yyval_default;
#define YYNNTS 41
/* YYNRULES -- Number of rules. */
#define YYNRULES 163
-/* YYNSTATES -- Number of states. */
+/* YYNRULES -- Number of states. */
#define YYNSTATES 358
-/* YYMAXRHS -- Maximum number of symbols on right-hand side of rule. */
-#define YYMAXRHS 11
-/* YYMAXLEFT -- Maximum number of symbols to the left of a handle
- accessed by $0, $-1, etc., in any rule. */
-#define YYMAXLEFT 0
-/* YYMAXUTOK -- Last valid token number (for yychar). */
-#define YYMAXUTOK 347
-/* YYUNDEFTOK -- Symbol number (for yytoken) that denotes an unknown
- token. */
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
+#define YYMAXUTOK 347
-/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
- as returned by yylex, with out-of-bounds checking. */
-#define YYTRANSLATE(YYX) \
- ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+#define YYTRANSLATE(YYX) \
+ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
- as returned by yylex. */
-static const unsigned char yytranslate[] =
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
+static const yytype_uint8 yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
99, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -307,30 +603,121 @@ static const unsigned char yytranslate[] =
};
#if YYDEBUG
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+ YYRHS. */
+static const yytype_uint16 yyprhs[] =
+{
+ 0, 0, 3, 7, 9, 12, 13, 15, 17, 22,
+ 27, 32, 37, 42, 47, 52, 57, 63, 69, 71,
+ 73, 75, 77, 79, 85, 96, 108, 112, 119, 124,
+ 135, 142, 152, 159, 160, 163, 170, 177, 179, 189,
+ 195, 200, 206, 211, 214, 218, 220, 222, 223, 224,
+ 225, 228, 231, 235, 237, 239, 241, 243, 245, 247,
+ 249, 251, 253, 256, 259, 264, 266, 269, 271, 275,
+ 279, 283, 287, 291, 295, 299, 303, 307, 311, 315,
+ 319, 323, 326, 330, 334, 338, 342, 345, 348, 352,
+ 356, 361, 366, 371, 378, 383, 390, 395, 402, 407,
+ 414, 416, 419, 422, 424, 426, 429, 431, 434, 437,
+ 440, 442, 445, 448, 450, 453, 458, 465, 470, 473,
+ 477, 479, 483, 485, 489, 491, 495, 498, 501, 504,
+ 507, 511, 514, 517, 519, 523, 526, 529, 532, 536,
+ 539, 540, 544, 545, 554, 557, 558, 567, 576, 583,
+ 586, 587, 589, 593, 598, 599, 601, 605, 606, 609,
+ 610, 612, 616, 618
+};
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+static const yytype_int16 yyrhs[] =
+{
+ 108, 0, -1, 108, 99, 109, -1, 109, -1, 1,
+ 99, -1, -1, 138, -1, 112, -1, 51, 127, 44,
+ 30, -1, 51, 127, 44, 128, -1, 51, 127, 77,
+ 127, -1, 51, 127, 78, 127, -1, 53, 30, 71,
+ 127, -1, 53, 15, 71, 127, -1, 53, 30, 56,
+ 127, -1, 53, 15, 56, 127, -1, 53, 16, 127,
+ 56, 127, -1, 53, 16, 126, 71, 127, -1, 145,
+ -1, 127, -1, 129, -1, 111, -1, 113, -1, 117,
+ 127, 123, 122, 34, -1, 118, 71, 127, 122, 56,
+ 127, 122, 123, 122, 34, -1, 118, 71, 127, 122,
+ 36, 56, 127, 122, 123, 122, 34, -1, 124, 111,
+ 122, -1, 125, 127, 99, 123, 122, 34, -1, 125,
+ 127, 56, 127, -1, 119, 127, 54, 121, 111, 122,
+ 114, 122, 116, 122, -1, 119, 127, 54, 121, 111,
+ 122, -1, 119, 127, 55, 123, 122, 114, 122, 116,
+ 122, -1, 119, 127, 55, 123, 122, 34, -1, -1,
+ 115, 114, -1, 120, 127, 54, 121, 111, 122, -1,
+ 120, 127, 55, 121, 123, 122, -1, 34, -1, 120,
+ 127, 54, 121, 111, 122, 37, 111, 122, -1, 37,
+ 121, 123, 122, 34, -1, 37, 121, 111, 122, -1,
+ 60, 121, 123, 122, 34, -1, 60, 121, 111, 122,
+ -1, 52, 59, -1, 52, 58, 30, -1, 43, -1,
+ 38, -1, -1, -1, -1, 123, 99, -1, 123, 112,
+ -1, 57, 30, 54, -1, 89, -1, 12, -1, 17,
+ -1, 33, -1, 31, -1, 30, -1, 126, -1, 128,
+ -1, 25, -1, 26, 127, -1, 27, 147, -1, 30,
+ 100, 146, 101, -1, 15, -1, 16, 127, -1, 110,
+ -1, 127, 94, 127, -1, 127, 95, 127, -1, 127,
+ 96, 127, -1, 127, 97, 127, -1, 127, 76, 127,
+ -1, 127, 102, 127, -1, 127, 103, 127, -1, 127,
+ 71, 127, -1, 127, 72, 127, -1, 127, 67, 127,
+ -1, 127, 68, 127, -1, 127, 73, 127, -1, 127,
+ 74, 127, -1, 75, 127, -1, 127, 93, 127, -1,
+ 127, 79, 127, -1, 127, 80, 127, -1, 127, 81,
+ 127, -1, 94, 127, -1, 95, 127, -1, 100, 127,
+ 101, -1, 104, 146, 105, -1, 86, 127, 87, 127,
+ -1, 86, 127, 88, 127, -1, 82, 127, 49, 127,
+ -1, 82, 127, 56, 127, 49, 127, -1, 83, 127,
+ 49, 127, -1, 83, 127, 56, 127, 49, 127, -1,
+ 84, 127, 49, 127, -1, 84, 127, 56, 127, 49,
+ 127, -1, 85, 127, 49, 127, -1, 85, 127, 56,
+ 127, 49, 127, -1, 92, -1, 29, 127, -1, 51,
+ 127, -1, 133, -1, 136, -1, 39, 52, -1, 39,
+ -1, 41, 130, -1, 90, 131, -1, 66, 132, -1,
+ 19, -1, 21, 127, -1, 20, 127, -1, 20, -1,
+ 22, 147, -1, 92, 100, 30, 101, -1, 92, 100,
+ 30, 106, 146, 101, -1, 63, 127, 58, 127, -1,
+ 63, 127, -1, 23, 30, 146, -1, 30, -1, 130,
+ 106, 30, -1, 30, -1, 131, 106, 30, -1, 30,
+ -1, 132, 106, 30, -1, 42, 45, -1, 42, 48,
+ -1, 42, 50, -1, 42, 134, -1, 42, 134, 135,
+ -1, 42, 135, -1, 40, 127, -1, 127, -1, 49,
+ 47, 127, -1, 47, 127, -1, 64, 65, -1, 64,
+ 134, -1, 64, 134, 135, -1, 64, 135, -1, -1,
+ 35, 137, 146, -1, -1, 46, 30, 139, 121, 142,
+ 99, 144, 123, -1, 61, 30, -1, -1, 62, 30,
+ 140, 121, 142, 99, 144, 123, -1, 141, 121, 142,
+ 99, 144, 123, 34, 143, -1, 141, 121, 142, 99,
+ 144, 123, -1, 91, 30, -1, -1, 30, -1, 142,
+ 106, 30, -1, 142, 99, 106, 30, -1, -1, 30,
+ -1, 143, 106, 30, -1, -1, 30, 147, -1, -1,
+ 127, -1, 146, 106, 127, -1, 127, -1, 147, 106,
+ 127, -1
+};
+
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
-static const unsigned short yyrline[] =
-{
- 0, 121, 121, 122, 123, 126, 127, 128, 131, 137,
- 140, 141, 142, 148, 155, 161, 168, 174, 182, 183,
- 184, 187, 188, 193, 206, 224, 238, 243, 246, 251,
- 261, 271, 281, 293, 294, 297, 303, 311, 312, 318,
- 322, 325, 329, 333, 336, 343, 350, 358, 361, 364,
- 365, 366, 369, 375, 379, 382, 385, 388, 391, 397,
- 398, 399, 402, 405, 406, 409, 417, 423, 424, 425,
- 426, 427, 428, 429, 430, 431, 432, 433, 434, 435,
- 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
- 446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
- 456, 459, 464, 465, 466, 467, 468, 469, 470, 471,
- 472, 475, 478, 481, 485, 486, 487, 488, 489, 490,
- 493, 494, 497, 498, 501, 502, 513, 514, 515, 516,
- 520, 524, 530, 531, 534, 535, 538, 539, 543, 547,
- 551, 551, 581, 581, 586, 587, 587, 592, 599, 605,
- 607, 608, 609, 610, 613, 614, 615, 618, 622, 630,
- 631, 632, 635, 636
+static const yytype_uint16 yyrline[] =
+{
+ 0, 120, 120, 121, 122, 125, 126, 127, 130, 136,
+ 139, 140, 141, 147, 154, 160, 167, 173, 181, 182,
+ 183, 186, 187, 192, 205, 223, 237, 242, 245, 250,
+ 260, 270, 280, 292, 293, 296, 302, 310, 311, 317,
+ 321, 324, 328, 332, 335, 342, 349, 357, 360, 363,
+ 364, 365, 368, 374, 378, 381, 384, 387, 390, 396,
+ 397, 398, 401, 404, 405, 408, 416, 422, 423, 424,
+ 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
+ 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
+ 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
+ 455, 458, 463, 464, 465, 466, 467, 468, 469, 470,
+ 471, 474, 477, 480, 484, 485, 486, 487, 488, 489,
+ 492, 493, 496, 497, 500, 501, 512, 513, 514, 515,
+ 519, 523, 529, 530, 533, 534, 537, 538, 542, 546,
+ 550, 550, 580, 580, 585, 586, 586, 591, 598, 604,
+ 606, 607, 608, 609, 612, 613, 614, 617, 621, 629,
+ 630, 631, 634, 635
};
#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[] =
@@ -355,61 +742,79 @@ static const char *const yytname[] =
"elseifstmtlist", "elseifstmt", "endifstmt", "repeatwhile", "repeatwith",
"if", "elseif", "begin", "end", "stmtlist", "when", "tell", "simpleexpr",
"expr", "reference", "proc", "globallist", "propertylist",
- "instancelist", "gotofunc", "gotoframe", "gotomovie", "playfunc", "$@1",
- "defn", "$@2", "$@3", "on", "argdef", "endargdef", "argstore", "macro",
- "arglist", "nonemptyarglist", YY_NULLPTR
+ "instancelist", "gotofunc", "gotoframe", "gotomovie", "playfunc", "@1",
+ "defn", "@2", "@3", "on", "argdef", "endargdef", "argstore", "macro",
+ "arglist", "nonemptyarglist", 0
};
#endif
-#define YYPACT_NINF -290
-#define YYTABLE_NINF -31
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+ token YYLEX-NUM. */
+static const yytype_uint16 yytoknum[] =
+{
+ 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+ 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
+ 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
+ 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+ 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 38, 43, 45, 42, 47, 37, 10,
+ 40, 41, 62, 60, 91, 93, 44
+};
+# endif
- /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
-static const short yypact[] =
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+static const yytype_uint8 yyr1[] =
{
- 341, -83, -290, -290, 1231, -290, -290, 1271, 1231, 1231,
- 16, -290, 1231, 1231, 1231, 1352, -290, -290, -290, 21,
- 22, 1110, -290, 53, 1231, 94, -2, 67, 90, 126,
- 1231, 1150, 130, 1231, 1231, 1231, 1231, 1231, 1231, -290,
- 136, 137, 63, 1231, 1231, 1231, 1231, 6, -290, -290,
- -290, -290, -290, 1231, 99, 1231, 857, 1231, -290, 1945,
- -290, -290, -290, -290, -290, -290, -290, -290, 71, 1231,
- -290, 1978, 2011, 2044, 2077, 82, 1392, 2110, 86, 2143,
- 1231, 82, 1473, -290, -290, 87, 1231, -290, 1231, -290,
- 152, -290, 2176, 77, -290, -290, 1507, 143, -290, -8,
- 1231, 10, 148, -290, -290, 919, -290, 77, -290, -290,
- 98, -43, 19, 1578, 1611, 1644, 1875, -290, 101, -290,
- 179, -41, 0, 1005, 2209, 4, -290, 427, 2242, 1231,
- 146, -290, 1842, 1231, 1231, 1231, 1231, 1231, 1231, 1231,
- 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231,
- 180, 1231, 1545, 1231, 109, 1908, -82, 109, 191, 2275,
- 2308, 1231, -290, -290, 125, 1231, 1231, -290, 1231, 1231,
- 153, 833, 1231, 1231, -290, -290, 1231, -290, 193, 1231,
- 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 200,
- -51, -290, -290, 1231, -290, 599, 2341, -290, -290, -290,
- 1231, -290, 158, 202, 1173, 1294, 3199, 3232, 15, 2374,
- 1467, 3243, 230, 312, 398, 48, 95, 2407, 2440, -290,
- -35, 2473, -290, -290, 2506, 180, -290, -290, 2539, 2572,
- 2605, 3254, 1231, 1231, 2638, 3265, 180, 2671, -290, 2704,
- 1442, 2737, 1677, 2770, 1710, 2803, 1743, 2836, 2869, -290,
- -290, 1231, 2902, -290, -290, 199, -11, 857, 599, 2935,
- 599, 129, 208, -29, 3276, 2968, 2, 1231, 1231, 1231,
- 1231, 5, -290, 188, 1231, -290, 51, 211, 216, -290,
- -290, 129, 129, 3001, 3034, 3067, 3100, -290, 1231, 3133,
- -16, -290, -290, -290, 212, 1231, -290, -290, 513, -290,
- -290, 3166, -290, -290, 20, -290, 1776, 226, 685, 771,
- -290, 599, 20, -290, -290, -290, -290, 1231, -290, -290,
- -290, 156, 599, 224, -290, 943, 1029, -290, 1809, 857,
- -290, 237, 234, -290, -290, -290, 599, -290, 599, -290,
- -290, 599, -290, -290, -290, 235, -290, 239, 857, -290,
- -290, -290, -290, -290, 240, 857, -290, -290
+ 0, 107, 108, 108, 108, 109, 109, 109, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110, 110, 111, 111,
+ 111, 112, 112, 112, 112, 112, 112, 112, 112, 113,
+ 113, 113, 113, 114, 114, 115, 115, 116, 116, 116,
+ 116, 116, 116, 117, 118, 119, 120, 121, 122, 123,
+ 123, 123, 124, 125, 126, 126, 126, 126, 126, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 128, 129, 129, 129, 129, 129, 129, 129, 129,
+ 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
+ 130, 130, 131, 131, 132, 132, 133, 133, 133, 133,
+ 133, 133, 134, 134, 135, 135, 136, 136, 136, 136,
+ 137, 136, 139, 138, 138, 140, 138, 138, 138, 141,
+ 142, 142, 142, 142, 143, 143, 143, 144, 145, 146,
+ 146, 146, 147, 147
};
- /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
- Performed when YYTABLE does not specify something else to do. Zero
- means the default is an error. */
-static const unsigned char yydefact[] =
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+static const yytype_uint8 yyr2[] =
+{
+ 0, 2, 3, 1, 2, 0, 1, 1, 4, 4,
+ 4, 4, 4, 4, 4, 4, 5, 5, 1, 1,
+ 1, 1, 1, 5, 10, 11, 3, 6, 4, 10,
+ 6, 9, 6, 0, 2, 6, 6, 1, 9, 5,
+ 4, 5, 4, 2, 3, 1, 1, 0, 0, 0,
+ 2, 2, 3, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 2, 2, 4, 1, 2, 1, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 2, 3, 3, 3, 3, 2, 2, 3, 3,
+ 4, 4, 4, 6, 4, 6, 4, 6, 4, 6,
+ 1, 2, 2, 1, 1, 2, 1, 2, 2, 2,
+ 1, 2, 2, 1, 2, 4, 6, 4, 2, 3,
+ 1, 3, 1, 3, 1, 3, 2, 2, 2, 2,
+ 3, 2, 2, 1, 3, 2, 2, 2, 3, 2,
+ 0, 3, 0, 8, 2, 0, 8, 8, 6, 2,
+ 0, 1, 3, 4, 0, 1, 3, 0, 2, 0,
+ 1, 3, 1, 3
+};
+
+/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+ STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+ means the default is an error. */
+static const yytype_uint8 yydefact[] =
{
0, 0, 54, 65, 0, 55, 110, 113, 0, 0,
0, 61, 0, 0, 0, 58, 57, 56, 140, 106,
@@ -449,18 +854,8 @@ static const unsigned char yydefact[] =
36, 39, 41, 48, 0, 0, 48, 38
};
- /* YYPGOTO[NTERM-NUM]. */
-static const short yypgoto[] =
-{
- -290, -290, 149, -290, -54, 1, -290, -171, -290, -33,
- -290, -290, -290, -289, -128, -1, -94, -290, -290, 182,
- -4, 116, -290, -290, -290, -290, -290, 252, -19, -290,
- -290, -290, -290, -290, -290, -169, -290, -123, -290, -39,
- 133
-};
-
- /* YYDEFGOTO[NTERM-NUM]. */
-static const short yydefgoto[] =
+/* YYDEFGOTO[NTERM-NUM]. */
+static const yytype_int16 yydefgoto[] =
{
-1, 47, 48, 49, 50, 254, 52, 293, 294, 316,
53, 54, 55, 295, 150, 199, 195, 56, 57, 58,
@@ -469,62 +864,117 @@ static const short yydefgoto[] =
75
};
- /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
- positive, shift that token. If negative, reduce the rule whose
- number is the opposite. If YYTABLE_NINF, syntax error. */
-static const short yytable[] =
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+#define YYPACT_NINF -289
+static const yytype_int16 yypact[] =
+{
+ 341, -37, -289, -289, 887, -289, -289, 887, 887, 887,
+ 26, -289, 887, 887, 887, 927, -289, -289, -289, 18,
+ 43, 766, -289, 67, 887, 8, -2, 87, 88, 89,
+ 887, 806, 90, 887, 887, 887, 887, 887, 887, -289,
+ 93, 94, 27, 887, 887, 887, 887, 6, -289, -289,
+ -289, -289, -289, 887, 55, 887, 685, 887, -289, 1427,
+ -289, -289, -289, -289, -289, -289, -289, -289, 46, 887,
+ -289, 1427, 1427, 1427, 1427, 42, 887, 1427, 42, 1427,
+ 887, 42, 887, -289, -289, 44, 887, -289, 887, -289,
+ 104, -289, 1427, 30, -289, -289, 961, 122, -289, -33,
+ 887, -10, 99, -289, -289, 1324, -289, 30, -289, -289,
+ 48, -43, 19, 994, 1027, 1060, 1357, -289, 49, -289,
+ 126, -43, -43, 1390, 1427, -3, -289, 427, 1427, 887,
+ 146, -289, 1291, 887, 887, 887, 887, 887, 887, 887,
+ 887, 887, 887, 887, 887, 887, 887, 887, 887, 887,
+ 128, 887, 961, 887, 53, 1390, -21, 53, 130, 1427,
+ 1427, 887, -289, -289, 79, 887, 887, -289, 887, 887,
+ 92, 661, 887, 887, -289, -289, 887, -289, 136, 887,
+ 887, 887, 887, 887, 887, 887, 887, 887, 887, 137,
+ -12, -289, -289, 887, -289, 599, 1427, -289, -289, -289,
+ 887, -289, 158, 158, 158, 158, 1460, 1460, -43, 1427,
+ 158, 158, 201, 229, 229, -43, -43, 1427, 1427, -289,
+ -51, 1427, -289, -289, 1427, 128, -289, -289, 1427, 1427,
+ 1427, 158, 887, 887, 1427, 158, 128, 1427, -289, 1427,
+ 1093, 1427, 1126, 1427, 1159, 1427, 1192, 1427, 1427, -289,
+ -289, 887, 1427, -289, -289, 139, -11, 685, 599, 1427,
+ 599, 64, 141, -49, 158, 1427, -35, 887, 887, 887,
+ 887, 0, -289, 118, 887, -289, 20, 154, 162, -289,
+ -289, 64, 64, 1427, 1427, 1427, 1427, -289, 887, 1427,
+ 155, -289, -289, -289, 155, 887, -289, -289, 513, -289,
+ -289, 1427, -289, -289, -16, -289, 1225, 167, 599, 599,
+ -289, 599, -16, -289, -289, -289, -289, 887, -289, -289,
+ -289, 96, 599, 164, -289, 685, 685, -289, 1258, 685,
+ -289, 169, 170, -289, -289, -289, 599, -289, 599, -289,
+ -289, 599, -289, -289, -289, 173, -289, 175, 685, -289,
+ -289, -289, -289, -289, 178, 685, -289, -289
+};
+
+/* YYPGOTO[NTERM-NUM]. */
+static const yytype_int16 yypgoto[] =
+{
+ -289, -289, 83, -289, -54, 1, -289, -275, -289, -91,
+ -289, -289, -289, -288, -128, -1, -94, -289, -289, 123,
+ -4, 60, -289, -289, -289, -289, -289, 199, -19, -289,
+ -289, -289, -289, -289, -289, -173, -289, -171, -289, -39,
+ 68
+};
+
+/* 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. */
+#define YYTABLE_NINF -6
+static const yytype_int16 yytable[] =
{
71, 51, 131, 72, 73, 74, 126, 125, 77, 74,
- 79, 74, 108, 99, 100, 317, 67, 92, -30, 222,
- 96, -30, 292, 317, 193, 273, 105, 92, 101, 111,
- 112, 113, 114, 115, 116, 225, 140, 154, 140, 121,
- 122, 123, 124, 157, -30, 274, 76, 236, 168, 128,
- 250, 130, 84, 132, 313, 251, 263, 314, 292, 148,
- 149, 148, 149, 169, 261, 152, 172, 266, 179, 257,
- 281, 262, 124, 83, 162, 180, 155, 262, 124, 140,
- 315, 173, 159, 95, 160, 291, 133, 134, 177, 292,
- 135, 136, 137, 138, 140, 139, 171, 102, 140, 141,
- 142, 282, 148, 149, 258, 127, 287, 260, 262, 192,
- 193, 193, 143, 144, 145, 146, 147, 148, 149, 303,
- 103, 148, 149, 305, 88, 196, 90, 140, 51, 202,
+ 79, 74, 108, 99, 100, 303, 317, 92, 313, 305,
+ 96, 314, 292, 168, 317, 273, 105, 92, 101, 111,
+ 112, 113, 114, 115, 116, 225, 140, 154, 169, 121,
+ 122, 123, 124, 157, 315, 274, 172, 236, 261, 128,
+ 281, 130, 263, 132, 291, 262, 76, 262, 292, 148,
+ 149, 173, 67, 266, 282, 152, 97, 98, 179, 257,
+ 83, 262, 124, 84, 162, 180, 155, 88, 124, 90,
+ 222, 78, 159, 81, 160, 193, 133, 134, 177, 250,
+ 135, 136, 137, 138, 251, 139, 171, 95, 140, 141,
+ 142, 287, 192, 193, 258, 127, 193, 260, 14, 226,
+ 299, 300, 143, 144, 145, 146, 147, 102, 103, 104,
+ 109, 148, 149, 117, 119, 196, 129, 120, 51, 202,
203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
- 213, 214, 215, 216, 217, 218, 78, 124, 81, 221,
- 148, 149, 97, 98, 14, 226, 104, 224, 299, 300,
- 109, 228, 229, 120, 230, 231, 117, 119, 234, 235,
- 129, 151, 237, 167, 140, 239, 240, 241, 242, 243,
- 244, 245, 246, 247, 248, 298, 325, 326, 153, 252,
- 329, 330, 153, 158, 255, 256, 259, 148, 149, 161,
- 197, 198, 174, 275, 178, 308, 309, 189, 311, 190,
- 219, 348, 271, 133, 134, 193, 322, 135, 136, 137,
- 138, 223, 139, 238, 232, 140, 141, 142, 264, 265,
- 249, 336, 338, 272, 139, 278, 341, 140, 280, 143,
- 144, 145, 146, 147, 288, 296, 297, 124, 148, 149,
- 292, 143, 144, 145, 146, 147, 320, 276, 333, 277,
- 148, 149, 331, 283, 284, 285, 286, 342, 343, 351,
- 289, 335, 337, 352, 290, 340, 194, 355, 139, 324,
- 227, 140, 170, 107, 301, 0, 0, 0, 302, 0,
- 0, 306, 304, 0, 353, 143, 144, 145, 146, 147,
- 310, 356, 312, 0, 148, 149, 139, 0, 0, 140,
+ 213, 214, 215, 216, 217, 218, 151, 124, 153, 221,
+ 158, 161, 167, 174, 178, 189, 190, 224, 219, 193,
+ 223, 228, 229, 232, 230, 231, 238, 249, 234, 235,
+ 278, 280, 237, 272, 288, 239, 240, 241, 242, 243,
+ 244, 245, 246, 247, 248, 298, 325, 326, 296, 252,
+ 329, 330, 297, 292, 255, 256, 259, 320, 333, 342,
+ 197, 198, 331, 275, 343, 308, 309, 351, 311, 352,
+ 194, 348, 271, 133, 134, 355, 322, 135, 136, 137,
+ 138, 324, 139, 170, 227, 140, 141, 142, 264, 265,
+ 107, 336, 338, 0, 139, 0, 341, 140, 0, 143,
+ 144, 145, 146, 147, 0, 0, 0, 124, 148, 149,
+ 0, 143, 144, 145, 146, 147, 0, 276, 0, 277,
+ 148, 149, 0, 283, 284, 285, 286, 0, 0, 0,
+ 289, 335, 337, 0, 290, 340, 0, 139, 0, 0,
+ 140, 0, 0, 0, 301, 0, 0, 0, 302, 0,
+ 0, 306, 304, 0, 353, 144, 145, 146, 147, 0,
+ 310, 356, 312, 148, 149, 139, 0, 0, 140, 0,
323, 0, 0, 328, 0, 327, 0, 0, 0, 0,
- 0, 332, 0, 334, 144, 145, 146, 147, 0, 0,
- 0, 0, 148, 149, 344, 345, 346, 347, 0, 349,
+ 0, 332, 0, 334, 0, 146, 147, 0, 0, 0,
+ 0, 148, 149, 0, 344, 345, 346, 347, 0, 349,
350, -5, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 354, 2, 0, 357, 3, 4, 5, 0,
6, 7, 8, 9, 10, 0, 11, 12, 13, 0,
14, 15, 16, 0, 17, 0, 18, 0, 0, 0,
- 19, 0, 20, 21, 22, 0, 0, 23, 139, 0,
- 0, 140, 24, 25, 26, 0, 0, 0, 27, 0,
- 0, 0, 28, 29, 30, 31, 0, 32, 146, 147,
- 0, 0, 0, 0, 148, 149, 33, 0, 0, 0,
+ 19, 0, 20, 21, 22, 0, 0, 23, 0, 0,
+ 0, 0, 24, 25, 26, 0, 0, 0, 27, 0,
+ 0, 0, 28, 29, 30, 31, 0, 32, 0, 0,
+ 0, 0, 0, 0, 0, 0, 33, 0, 0, 0,
0, 0, 0, 34, 35, 36, 37, 38, 0, 0,
39, 40, 41, 42, 0, 43, 44, 0, 0, 2,
-5, 45, 3, 4, 5, 46, 6, 7, 8, 9,
10, 0, 11, 12, 13, 0, 14, 15, 16, 0,
17, 0, 18, 0, 0, 0, 19, 0, 20, 21,
- 22, 0, 0, 23, 139, 0, 0, 140, 24, 25,
+ 22, 0, 0, 23, 0, 0, 0, 0, 24, 25,
26, 0, 0, 0, 27, 0, 0, 0, 28, 29,
- 30, 31, 0, 32, 146, 147, 0, 0, 0, 0,
- 148, 149, 33, 0, 0, 0, 0, 0, 0, 34,
+ 30, 31, 0, 32, 0, 0, 0, 0, 0, 0,
+ 0, 0, 33, 0, 0, 0, 0, 0, 0, 34,
35, 36, 37, 38, 0, 0, 39, 40, 41, 42,
0, 43, 44, 0, 0, 2, 0, 45, 3, 4,
5, 46, 6, 7, 8, 9, 10, 0, 11, 12,
@@ -545,328 +995,147 @@ static const short yytable[] =
0, 34, 35, 36, 37, 38, 0, 0, 39, 40,
0, 42, 0, 43, 44, 0, 0, 2, 253, 45,
3, 4, 5, 46, 6, 7, 8, 9, 10, 0,
- 11, 12, 13, 0, 14, 15, 16, 0, 17, 0,
- 18, 0, 0, 0, 19, 0, 20, 21, 22, 0,
- 0, 0, 0, 0, 0, 0, 24, 25, 26, 0,
- 0, 0, 27, 0, 0, 0, 0, 0, 30, 31,
- 0, 32, 0, 0, 0, 0, 0, 0, 0, 0,
- 33, 0, 0, 0, 0, 0, 0, 34, 35, 36,
- 37, 38, 0, 0, 39, 40, 0, 42, 0, 43,
- 44, 0, 0, 2, 253, 45, 3, 4, 5, 46,
- 6, 7, 8, 9, 10, 0, 11, 12, 13, 0,
- 14, 15, 16, 0, 17, 0, 18, 0, 0, 0,
- 19, 0, 20, 21, 22, 0, 0, 0, 0, 0,
- 0, 0, 24, 25, 26, 0, 0, 0, 27, 0,
- 0, 0, 0, 0, 30, 31, 0, 32, 0, 0,
- 0, 0, 0, 0, 0, 0, 33, 0, 0, 0,
- 0, 0, 0, 34, 35, 36, 37, 38, 0, 0,
- 39, 40, 0, 42, 0, 43, 44, 0, 0, 2,
- 253, 45, 3, 4, 5, 46, 6, 7, 8, 9,
- 10, 0, 11, 12, 13, 0, 14, 15, 16, 233,
- 17, 0, 18, 0, 0, 0, 19, 0, 20, 21,
- 133, 134, 0, 0, 135, 136, 137, 138, 24, 139,
- 26, 0, 140, 141, 142, 0, 0, 0, 0, 0,
- 30, 31, 0, 32, 0, 0, 143, 144, 145, 146,
- 147, 0, 33, 0, 0, 148, 149, 0, 0, 34,
- 35, 36, 37, 38, 0, 0, 0, 40, 0, 42,
- 0, 43, 44, 0, 0, 2, 0, 45, 3, 4,
- 5, 46, 6, 7, 8, 9, 10, 0, 11, 12,
- 13, 0, 14, 15, 16, 0, 17, 176, 18, 0,
- 0, 0, 19, 0, 20, 21, 133, 134, 0, 0,
- 135, 136, 137, 138, 24, 139, 26, 0, 140, 141,
- 142, 0, 0, 0, 0, 0, 30, 31, 0, 32,
- 0, 0, 143, 144, 145, 146, 147, 0, 33, 0,
- 0, 148, 149, 0, 0, 34, 35, 36, 37, 38,
- 0, 0, 0, 40, 0, 42, 0, 43, 44, 0,
- 0, 2, 0, 45, 3, 4, 5, 46, 6, 7,
- 8, 9, 10, 0, 11, 12, 13, 0, 14, 15,
- 16, 0, 17, 0, 18, 0, 0, 0, 19, 0,
- 20, 21, 133, 134, 0, 0, 135, 136, 137, 138,
- 24, 139, 26, 0, 140, 141, 142, 0, 0, 0,
- 0, 0, 30, 31, 0, 32, 0, 0, 143, 144,
- 145, 146, 147, 0, 33, 0, 191, 148, 149, 0,
- 0, 34, 35, 36, 37, 38, 0, 0, 0, 40,
- 0, 42, 2, 43, 44, 3, 4, 5, 0, 45,
- 0, 0, 0, 46, 0, 11, 12, 13, 0, 14,
- 68, 16, 0, 17, 0, 0, 0, 0, 0, 0,
- 86, 0, 0, 0, 0, 87, 0, 88, 89, 90,
- 91, 69, 2, 26, 0, 3, 4, 5, 0, 0,
- 0, 0, 0, 0, 0, 11, 12, 13, 0, 14,
- 68, 16, 0, 17, 0, 33, 0, 0, 0, 0,
- 86, 0, 34, 35, 36, 37, 38, 88, 0, 90,
- 0, 69, 70, 26, 43, 44, 0, 0, 0, 0,
- 45, 0, 0, 0, 46, 106, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 33, 0, 0, 0, 0,
- 0, 0, 34, 35, 36, 37, 38, 0, 0, 0,
- 0, 0, 70, 2, 43, 44, 3, 4, 5, 139,
- 45, 0, 140, 0, 46, 0, 11, 12, 13, 0,
- 14, 68, 16, 0, 17, 0, 143, 144, 145, 146,
- 147, 0, 0, 0, 0, 148, 149, 0, 0, 0,
- 0, 0, 69, 2, 26, 0, 3, 4, 5, 0,
- 0, 0, 0, 0, 0, 0, 11, 12, 13, 0,
- 14, 68, 16, 0, 17, 0, 33, 0, 0, 0,
- 0, 0, 0, 34, 35, 36, 37, 38, 0, 0,
- 0, 0, 69, 70, 26, 43, 44, 0, 0, 0,
- 0, 45, 0, 0, 0, 46, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 33, 0, 0, 0,
- 0, 0, 0, 34, 35, 36, 37, 38, 0, 0,
- 0, 0, 0, 70, 2, 43, 44, 3, 4, 5,
- 139, 45, 0, 140, 0, 46, 0, 11, 12, 13,
- 0, 14, 68, 16, 0, 17, 0, 143, 144, 145,
- 146, 147, 0, 0, 0, 0, 148, 149, 0, 0,
- 0, 0, 0, 69, 2, 26, 0, 3, 4, 5,
- 0, 0, 0, 0, 0, 0, 0, 11, 12, 13,
- 0, 14, 68, 16, 0, 17, 0, 33, 0, 0,
- 0, 0, 0, 0, 34, 35, 36, 37, 38, 0,
- 0, 0, 0, 69, 70, 26, 43, 44, 0, 0,
- 0, 0, 80, 0, 0, 0, 46, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 33, 0, 0,
- 0, 0, 0, 0, 34, 35, 36, 37, 38, 0,
- 0, 0, 0, 0, 70, 2, 43, 44, 3, 4,
- 5, 267, 45, 0, 0, 0, 46, 0, 11, 12,
- 13, 0, 14, 68, 16, 0, 17, 0, 0, 133,
- 134, 0, 0, 135, 136, 137, 138, 0, 139, 0,
- 0, 140, 141, 142, 69, 0, 26, 0, 0, 0,
- 0, 0, 0, 0, 0, 143, 144, 145, 146, 147,
- 0, 0, 0, 139, 148, 149, 140, 0, 33, 0,
- 0, 164, 0, 0, 0, 34, 35, 36, 37, 38,
- 143, 144, 145, 146, 147, 70, 0, 43, 44, 148,
- 149, 0, 0, 45, 133, 134, 0, 46, 135, 136,
- 137, 138, 0, 139, 165, 166, 140, 141, 142, 164,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 143, 144, 145, 146, 147, 0, 0, 0, 0, 148,
- 149, 0, 133, 134, 0, 0, 135, 136, 137, 138,
- 0, 139, 165, 166, 140, 141, 142, 181, 0, 0,
- 0, 0, 0, 0, 182, 0, 0, 0, 143, 144,
- 145, 146, 147, 0, 0, 133, 134, 148, 149, 135,
- 136, 137, 138, 0, 139, 0, 0, 140, 141, 142,
- 183, 0, 0, 0, 0, 0, 0, 184, 0, 0,
- 0, 143, 144, 145, 146, 147, 0, 0, 133, 134,
- 148, 149, 135, 136, 137, 138, 0, 139, 0, 0,
- 140, 141, 142, 185, 0, 0, 0, 0, 0, 0,
- 186, 0, 0, 0, 143, 144, 145, 146, 147, 0,
- 0, 133, 134, 148, 149, 135, 136, 137, 138, 0,
- 139, 0, 0, 140, 141, 142, 268, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 143, 144, 145,
- 146, 147, 0, 0, 133, 134, 148, 149, 135, 136,
- 137, 138, 0, 139, 0, 0, 140, 141, 142, 269,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 143, 144, 145, 146, 147, 0, 0, 133, 134, 148,
- 149, 135, 136, 137, 138, 0, 139, 0, 0, 140,
- 141, 142, 270, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 143, 144, 145, 146, 147, 0, 0,
- 133, 134, 148, 149, 135, 136, 137, 138, 0, 139,
- 0, 0, 140, 141, 142, 0, 0, 0, 0, 0,
- 318, 319, 0, 0, 0, 0, 143, 144, 145, 146,
- 147, 0, 0, 133, 134, 148, 149, 135, 136, 137,
- 138, 0, 139, 0, 0, 140, 141, 142, 0, 0,
- 0, 0, 0, 339, 0, 0, 0, 0, 0, 143,
- 144, 145, 146, 147, 0, 0, 133, 134, 148, 149,
- 135, 136, 137, 138, 0, 139, 0, 0, 140, 141,
- 142, 0, 0, 0, 0, 0, 0, 0, 200, 0,
- 0, 0, 143, 144, 145, 146, 147, 0, 0, 133,
- 134, 148, 149, 135, 136, 137, 138, 0, 139, 0,
- 0, 140, 141, 142, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 143, 144, 145, 146, 147,
- 0, 201, 133, 134, 148, 149, 135, 136, 137, 138,
- 0, 139, 0, 0, 140, 141, 142, 0, 0, 0,
- 0, 0, 187, 188, 0, 0, 0, 0, 143, 144,
- 145, 146, 147, 0, 0, 133, 134, 148, 149, 135,
- 136, 137, 138, 0, 139, 0, 0, 140, 141, 142,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 143, 144, 145, 146, 147, 0, 0, 0, 191,
- 148, 149, 133, 134, 0, 0, 135, 136, 137, 138,
- 0, 139, 0, 0, 140, 141, 142, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 143, 144,
- 145, 146, 147, 0, 0, 133, 134, 148, 149, 135,
- 136, 137, 138, 0, 139, 0, 0, 140, 141, 142,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 143, 144, 145, 146, 147, 0, 0, 133, 134,
- 148, 149, 135, 136, 137, 138, 0, 139, 0, 0,
- 140, 141, 142, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 143, 144, 145, 146, 147, 0,
+ 11, 12, 13, 0, 14, 15, 16, 233, 17, 0,
+ 18, 0, 0, 0, 19, 0, 20, 21, 133, 134,
+ 0, 0, 135, 136, 137, 138, 24, 139, 26, 0,
+ 140, 141, 142, 0, 0, 0, 0, 0, 30, 31,
+ 0, 32, 0, 0, 143, 144, 145, 146, 147, 0,
+ 33, 0, 0, 148, 149, 0, 0, 34, 35, 36,
+ 37, 38, 0, 0, 0, 40, 0, 42, 2, 43,
+ 44, 3, 4, 5, 0, 45, 0, 0, 0, 46,
+ 0, 11, 12, 13, 0, 14, 68, 16, 0, 17,
+ 0, 0, 0, 0, 0, 0, 86, 0, 0, 0,
+ 0, 87, 0, 88, 89, 90, 91, 69, 2, 26,
+ 0, 3, 4, 5, 0, 0, 0, 0, 0, 0,
+ 0, 11, 12, 13, 0, 14, 68, 16, 0, 17,
+ 0, 33, 0, 0, 0, 0, 86, 0, 34, 35,
+ 36, 37, 38, 88, 0, 90, 0, 69, 70, 26,
+ 43, 44, 0, 0, 0, 0, 45, 0, 0, 0,
+ 46, 106, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 33, 0, 0, 0, 0, 0, 0, 34, 35,
+ 36, 37, 38, 0, 0, 0, 0, 0, 70, 2,
+ 43, 44, 3, 4, 5, 0, 45, 0, 0, 0,
+ 46, 0, 11, 12, 13, 0, 14, 68, 16, 0,
+ 17, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 69, 2,
+ 26, 0, 3, 4, 5, 0, 0, 0, 0, 0,
+ 0, 0, 11, 12, 13, 0, 14, 68, 16, 0,
+ 17, 0, 33, 0, 0, 0, 0, 0, 0, 34,
+ 35, 36, 37, 38, 0, 0, 0, 0, 69, 70,
+ 26, 43, 44, 0, 0, 0, 0, 45, 0, 0,
+ 0, 46, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 33, 0, 0, 164, 0, 0, 0, 34,
+ 35, 36, 37, 38, 0, 0, 0, 0, 0, 70,
+ 0, 43, 44, 0, 0, 0, 0, 80, 133, 134,
+ 0, 46, 135, 136, 137, 138, 0, 139, 165, 166,
+ 140, 141, 142, 181, 0, 0, 0, 0, 0, 0,
+ 182, 0, 0, 0, 143, 144, 145, 146, 147, 0,
0, 133, 134, 148, 149, 135, 136, 137, 138, 0,
- 139, 0, 0, 140, 141, 142, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 143, 144, 145,
+ 139, 0, 0, 140, 141, 142, 183, 0, 0, 0,
+ 0, 0, 0, 184, 0, 0, 0, 143, 144, 145,
146, 147, 0, 0, 133, 134, 148, 149, 135, 136,
- 137, 138, 0, 139, 0, 0, 140, 141, 142, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 137, 138, 0, 139, 0, 0, 140, 141, 142, 185,
+ 0, 0, 0, 0, 0, 0, 186, 0, 0, 0,
143, 144, 145, 146, 147, 0, 0, 133, 134, 148,
149, 135, 136, 137, 138, 0, 139, 0, 0, 140,
- 141, 142, 0, 0, 0, 0, 0, 0, 0, 0,
+ 141, 142, 267, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 143, 144, 145, 146, 147, 0, 0,
133, 134, 148, 149, 135, 136, 137, 138, 0, 139,
- 0, 0, 140, 141, 142, 0, 0, 0, 0, 0,
+ 0, 0, 140, 141, 142, 268, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 143, 144, 145, 146,
147, 0, 0, 133, 134, 148, 149, 135, 136, 137,
- 138, 0, 139, 0, 0, 140, 141, 142, 0, 0,
+ 138, 0, 139, 0, 0, 140, 141, 142, 269, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 143,
144, 145, 146, 147, 0, 0, 133, 134, 148, 149,
135, 136, 137, 138, 0, 139, 0, 0, 140, 141,
- 142, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 142, 270, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 143, 144, 145, 146, 147, 0, 0, 133,
134, 148, 149, 135, 136, 137, 138, 0, 139, 0,
- 0, 140, 141, 142, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 143, 144, 145, 146, 147,
+ 0, 140, 141, 142, 0, 0, 0, 0, 0, 318,
+ 319, 0, 0, 0, 0, 143, 144, 145, 146, 147,
0, 0, 133, 134, 148, 149, 135, 136, 137, 138,
0, 139, 0, 0, 140, 141, 142, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 143, 144,
+ 0, 0, 339, 0, 0, 0, 0, 0, 143, 144,
145, 146, 147, 0, 0, 133, 134, 148, 149, 135,
136, 137, 138, 0, 139, 0, 0, 140, 141, 142,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 200, 0, 0,
0, 143, 144, 145, 146, 147, 0, 0, 133, 134,
148, 149, 135, 136, 137, 138, 0, 139, 0, 0,
140, 141, 142, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 143, 144, 145, 146, 147, 0,
- 0, 133, 134, 148, 149, 135, 136, 137, 138, 0,
+ 0, 0, 176, 0, 143, 144, 145, 146, 147, 0,
+ 201, 133, 134, 148, 149, 135, 136, 137, 138, 0,
139, 0, 0, 140, 141, 142, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 143, 144, 145,
146, 147, 0, 0, 133, 134, 148, 149, 135, 136,
137, 138, 0, 139, 0, 0, 140, 141, 142, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 187, 188, 0, 0, 0, 0,
143, 144, 145, 146, 147, 0, 0, 133, 134, 148,
149, 135, 136, 137, 138, 0, 139, 0, 0, 140,
141, 142, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 143, 144, 145, 146, 147, 0, 0,
- 133, 134, 148, 149, 135, 136, 137, 138, 0, 139,
- 0, 0, 140, 141, 142, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 143, 144, 145, 146,
- 147, 0, 0, 133, 134, 148, 149, 135, 136, 137,
- 138, 0, 139, 0, 0, 140, 141, 142, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 143,
- 144, 145, 146, 147, 0, 0, 133, 134, 148, 149,
- 135, 136, 137, 138, 0, 139, 0, 0, 140, 141,
- 142, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 143, 144, 145, 146, 147, 0, 0, 133,
- 134, 148, 149, 135, 136, 137, 138, 0, 139, 0,
- 0, 140, 141, 142, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 143, 144, 145, 146, 147,
- 0, 0, 133, 134, 148, 149, 135, 136, 137, 138,
- 0, 139, 0, 0, 140, 141, 142, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 143, 144,
- 145, 146, 147, 0, 0, 133, 134, 148, 149, 135,
- 136, 137, 138, 0, 139, 0, 0, 140, 141, 142,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 143, 144, 145, 146, 147, 0, 0, 133, 134,
- 148, 149, 135, 136, 137, 138, 0, 139, 0, 0,
- 140, 141, 142, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 143, 144, 145, 146, 147, 0,
- 0, 133, 134, 148, 149, 135, 136, 137, 138, 0,
- 139, 0, 0, 140, 141, 142, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 143, 144, 145,
- 146, 147, 0, 0, 133, 134, 148, 149, 135, 136,
+ 0, 191, 148, 149, 133, 134, 0, 0, 135, 136,
137, 138, 0, 139, 0, 0, 140, 141, 142, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
143, 144, 145, 146, 147, 0, 0, 133, 134, 148,
- 149, 135, 136, 137, 138, 0, 139, 0, 0, 140,
+ 149, 135, 136, 0, 0, 0, 139, 0, 0, 140,
141, 142, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 143, 144, 145, 146, 147, 0, 0,
- 133, 134, 148, 149, 135, 136, 137, 138, 0, 139,
- 0, 0, 140, 141, 142, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 143, 144, 145, 146,
- 147, 0, 0, 133, 134, 148, 149, 135, 136, 137,
- 138, 0, 139, 0, 0, 140, 141, 142, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 143,
- 144, 145, 146, 147, 0, 0, 133, 134, 148, 149,
- 135, 136, 137, 138, 0, 139, 0, 0, 140, 141,
- 142, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 143, 144, 145, 146, 147, 0, 0, 133,
- 134, 148, 149, 135, 136, 137, 138, 0, 139, 0,
- 0, 140, 141, 142, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 143, 144, 145, 146, 147,
- 0, 0, 133, 134, 148, 149, 135, 136, 137, 138,
- 0, 139, 0, 0, 140, 141, 142, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 143, 144,
- 145, 146, 147, 0, 0, 133, 134, 148, 149, 135,
- 136, 137, 138, 0, 139, 0, 0, 140, 141, 142,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 143, 144, 145, 146, 147, 0, 0, 133, 134,
- 148, 149, 135, 136, 137, 138, 0, 139, 0, 0,
- 140, 141, 142, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 143, 144, 145, 146, 147, 0,
- 0, 133, 134, 148, 149, 135, 136, 137, 138, 0,
- 139, 0, 0, 140, 141, 142, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 143, 144, 145,
- 146, 147, 0, 0, 133, 134, 148, 149, 135, 136,
- 137, 138, 0, 139, 0, 0, 140, 141, 142, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 143, 144, 145, 146, 147, 0, 0, 133, 134, 148,
- 149, 135, 136, 137, 138, 0, 139, 0, 0, 140,
- 141, 142, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 143, 144, 145, 146, 147, 0, 0,
- 133, 134, 148, 149, 135, 136, 137, 138, 0, 139,
- 0, 0, 140, 141, 142, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 143, 144, 145, 146,
- 147, 0, 0, 133, 134, 148, 149, 135, 136, 137,
- 138, 0, 139, 0, 0, 140, 141, 142, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 143,
- 144, 145, 146, 147, 0, 0, 133, 134, 148, 149,
- 135, 136, 0, 0, 0, 139, 0, 0, 140, 141,
- 142, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 143, 144, 145, 146, 147, 0, 0, 133,
- 134, 148, 149, 135, 136, 0, 0, 0, 139, 0,
- 0, 140, 141, 142, 0, 0, 0, 0, 0, 139,
- 0, 0, 140, 0, 0, 143, 144, 145, 146, 147,
- 139, 0, 0, 140, 148, 149, 143, 144, 145, 146,
- 147, 139, 0, 0, 140, 148, 149, 143, 144, 145,
- 146, 147, 139, 0, 0, 140, 148, 149, 143, 144,
- 145, 146, 147, 0, 0, 0, 0, 148, 149, 143,
- 144, 145, 146, 147, 0, 0, 0, 0, 148, 149
+ 0, 0, 148, 149
};
-static const short yycheck[] =
+static const yytype_int16 yycheck[] =
{
4, 0, 56, 7, 8, 9, 0, 46, 12, 13,
- 14, 15, 31, 15, 16, 304, 99, 21, 34, 101,
- 24, 37, 38, 312, 106, 36, 30, 31, 30, 33,
- 34, 35, 36, 37, 38, 163, 79, 76, 79, 43,
- 44, 45, 46, 82, 60, 56, 30, 175, 56, 53,
- 101, 55, 30, 57, 34, 106, 225, 37, 38, 102,
- 103, 102, 103, 71, 99, 69, 56, 236, 49, 197,
- 99, 106, 76, 52, 93, 56, 80, 106, 82, 79,
- 60, 71, 86, 30, 88, 34, 67, 68, 107, 38,
- 71, 72, 73, 74, 79, 76, 100, 30, 79, 80,
- 81, 99, 102, 103, 198, 99, 101, 201, 106, 105,
- 106, 106, 93, 94, 95, 96, 97, 102, 103, 290,
- 30, 102, 103, 294, 47, 129, 49, 79, 127, 133,
+ 14, 15, 31, 15, 16, 290, 304, 21, 34, 294,
+ 24, 37, 38, 56, 312, 36, 30, 31, 30, 33,
+ 34, 35, 36, 37, 38, 163, 79, 76, 71, 43,
+ 44, 45, 46, 82, 60, 56, 56, 175, 99, 53,
+ 99, 55, 225, 57, 34, 106, 30, 106, 38, 102,
+ 103, 71, 99, 236, 99, 69, 58, 59, 49, 197,
+ 52, 106, 76, 30, 93, 56, 80, 47, 82, 49,
+ 101, 13, 86, 15, 88, 106, 67, 68, 107, 101,
+ 71, 72, 73, 74, 106, 76, 100, 30, 79, 80,
+ 81, 101, 105, 106, 198, 99, 106, 201, 29, 30,
+ 281, 282, 93, 94, 95, 96, 97, 30, 30, 30,
+ 30, 102, 103, 30, 30, 129, 71, 100, 127, 133,
134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 13, 151, 15, 153,
- 102, 103, 58, 59, 29, 30, 30, 161, 281, 282,
- 30, 165, 166, 100, 168, 169, 30, 30, 172, 173,
- 71, 100, 176, 30, 79, 179, 180, 181, 182, 183,
- 184, 185, 186, 187, 188, 279, 314, 315, 106, 193,
- 318, 319, 106, 106, 195, 196, 200, 102, 103, 47,
- 54, 55, 54, 257, 106, 299, 300, 106, 302, 30,
- 30, 339, 251, 67, 68, 106, 310, 71, 72, 73,
- 74, 30, 76, 30, 71, 79, 80, 81, 232, 233,
- 30, 325, 326, 34, 76, 106, 330, 79, 30, 93,
- 94, 95, 96, 97, 56, 34, 30, 251, 102, 103,
- 38, 93, 94, 95, 96, 97, 30, 258, 34, 260,
- 102, 103, 106, 267, 268, 269, 270, 30, 34, 34,
- 274, 325, 326, 34, 275, 329, 127, 37, 76, 312,
- 164, 79, 100, 31, 288, -1, -1, -1, 289, -1,
- -1, 295, 293, -1, 348, 93, 94, 95, 96, 97,
- 301, 355, 303, -1, 102, 103, 76, -1, -1, 79,
+ 144, 145, 146, 147, 148, 149, 100, 151, 106, 153,
+ 106, 47, 30, 54, 106, 106, 30, 161, 30, 106,
+ 30, 165, 166, 71, 168, 169, 30, 30, 172, 173,
+ 106, 30, 176, 34, 56, 179, 180, 181, 182, 183,
+ 184, 185, 186, 187, 188, 279, 314, 315, 34, 193,
+ 318, 319, 30, 38, 195, 196, 200, 30, 34, 30,
+ 54, 55, 106, 257, 34, 299, 300, 34, 302, 34,
+ 127, 339, 251, 67, 68, 37, 310, 71, 72, 73,
+ 74, 312, 76, 100, 164, 79, 80, 81, 232, 233,
+ 31, 325, 326, -1, 76, -1, 330, 79, -1, 93,
+ 94, 95, 96, 97, -1, -1, -1, 251, 102, 103,
+ -1, 93, 94, 95, 96, 97, -1, 258, -1, 260,
+ 102, 103, -1, 267, 268, 269, 270, -1, -1, -1,
+ 274, 325, 326, -1, 275, 329, -1, 76, -1, -1,
+ 79, -1, -1, -1, 288, -1, -1, -1, 289, -1,
+ -1, 295, 293, -1, 348, 94, 95, 96, 97, -1,
+ 301, 355, 303, 102, 103, 76, -1, -1, 79, -1,
311, -1, -1, 317, -1, 316, -1, -1, -1, -1,
- -1, 322, -1, 324, 94, 95, 96, 97, -1, -1,
- -1, -1, 102, 103, 335, 336, 337, 338, -1, 340,
+ -1, 322, -1, 324, -1, 96, 97, -1, -1, -1,
+ -1, 102, 103, -1, 335, 336, 337, 338, -1, 340,
341, 0, 1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 353, 12, -1, 356, 15, 16, 17, -1,
19, 20, 21, 22, 23, -1, 25, 26, 27, -1,
29, 30, 31, -1, 33, -1, 35, -1, -1, -1,
- 39, -1, 41, 42, 43, -1, -1, 46, 76, -1,
- -1, 79, 51, 52, 53, -1, -1, -1, 57, -1,
- -1, -1, 61, 62, 63, 64, -1, 66, 96, 97,
- -1, -1, -1, -1, 102, 103, 75, -1, -1, -1,
+ 39, -1, 41, 42, 43, -1, -1, 46, -1, -1,
+ -1, -1, 51, 52, 53, -1, -1, -1, 57, -1,
+ -1, -1, 61, 62, 63, 64, -1, 66, -1, -1,
+ -1, -1, -1, -1, -1, -1, 75, -1, -1, -1,
-1, -1, -1, 82, 83, 84, 85, 86, -1, -1,
89, 90, 91, 92, -1, 94, 95, -1, -1, 12,
99, 100, 15, 16, 17, 104, 19, 20, 21, 22,
23, -1, 25, 26, 27, -1, 29, 30, 31, -1,
33, -1, 35, -1, -1, -1, 39, -1, 41, 42,
- 43, -1, -1, 46, 76, -1, -1, 79, 51, 52,
+ 43, -1, -1, 46, -1, -1, -1, -1, 51, 52,
53, -1, -1, -1, 57, -1, -1, -1, 61, 62,
- 63, 64, -1, 66, 96, 97, -1, -1, -1, -1,
- 102, 103, 75, -1, -1, -1, -1, -1, -1, 82,
+ 63, 64, -1, 66, -1, -1, -1, -1, -1, -1,
+ -1, -1, 75, -1, -1, -1, -1, -1, -1, 82,
83, 84, 85, 86, -1, -1, 89, 90, 91, 92,
-1, 94, 95, -1, -1, 12, -1, 100, 15, 16,
17, 104, 19, 20, 21, 22, 23, -1, 25, 26,
@@ -887,278 +1156,97 @@ static const short yycheck[] =
-1, 82, 83, 84, 85, 86, -1, -1, 89, 90,
-1, 92, -1, 94, 95, -1, -1, 12, 99, 100,
15, 16, 17, 104, 19, 20, 21, 22, 23, -1,
- 25, 26, 27, -1, 29, 30, 31, -1, 33, -1,
- 35, -1, -1, -1, 39, -1, 41, 42, 43, -1,
- -1, -1, -1, -1, -1, -1, 51, 52, 53, -1,
- -1, -1, 57, -1, -1, -1, -1, -1, 63, 64,
- -1, 66, -1, -1, -1, -1, -1, -1, -1, -1,
- 75, -1, -1, -1, -1, -1, -1, 82, 83, 84,
- 85, 86, -1, -1, 89, 90, -1, 92, -1, 94,
- 95, -1, -1, 12, 99, 100, 15, 16, 17, 104,
- 19, 20, 21, 22, 23, -1, 25, 26, 27, -1,
- 29, 30, 31, -1, 33, -1, 35, -1, -1, -1,
- 39, -1, 41, 42, 43, -1, -1, -1, -1, -1,
- -1, -1, 51, 52, 53, -1, -1, -1, 57, -1,
- -1, -1, -1, -1, 63, 64, -1, 66, -1, -1,
- -1, -1, -1, -1, -1, -1, 75, -1, -1, -1,
- -1, -1, -1, 82, 83, 84, 85, 86, -1, -1,
- 89, 90, -1, 92, -1, 94, 95, -1, -1, 12,
- 99, 100, 15, 16, 17, 104, 19, 20, 21, 22,
- 23, -1, 25, 26, 27, -1, 29, 30, 31, 56,
- 33, -1, 35, -1, -1, -1, 39, -1, 41, 42,
- 67, 68, -1, -1, 71, 72, 73, 74, 51, 76,
- 53, -1, 79, 80, 81, -1, -1, -1, -1, -1,
- 63, 64, -1, 66, -1, -1, 93, 94, 95, 96,
- 97, -1, 75, -1, -1, 102, 103, -1, -1, 82,
- 83, 84, 85, 86, -1, -1, -1, 90, -1, 92,
- -1, 94, 95, -1, -1, 12, -1, 100, 15, 16,
- 17, 104, 19, 20, 21, 22, 23, -1, 25, 26,
- 27, -1, 29, 30, 31, -1, 33, 58, 35, -1,
- -1, -1, 39, -1, 41, 42, 67, 68, -1, -1,
- 71, 72, 73, 74, 51, 76, 53, -1, 79, 80,
- 81, -1, -1, -1, -1, -1, 63, 64, -1, 66,
- -1, -1, 93, 94, 95, 96, 97, -1, 75, -1,
- -1, 102, 103, -1, -1, 82, 83, 84, 85, 86,
- -1, -1, -1, 90, -1, 92, -1, 94, 95, -1,
- -1, 12, -1, 100, 15, 16, 17, 104, 19, 20,
- 21, 22, 23, -1, 25, 26, 27, -1, 29, 30,
- 31, -1, 33, -1, 35, -1, -1, -1, 39, -1,
- 41, 42, 67, 68, -1, -1, 71, 72, 73, 74,
- 51, 76, 53, -1, 79, 80, 81, -1, -1, -1,
- -1, -1, 63, 64, -1, 66, -1, -1, 93, 94,
- 95, 96, 97, -1, 75, -1, 101, 102, 103, -1,
- -1, 82, 83, 84, 85, 86, -1, -1, -1, 90,
- -1, 92, 12, 94, 95, 15, 16, 17, -1, 100,
- -1, -1, -1, 104, -1, 25, 26, 27, -1, 29,
- 30, 31, -1, 33, -1, -1, -1, -1, -1, -1,
- 40, -1, -1, -1, -1, 45, -1, 47, 48, 49,
- 50, 51, 12, 53, -1, 15, 16, 17, -1, -1,
- -1, -1, -1, -1, -1, 25, 26, 27, -1, 29,
- 30, 31, -1, 33, -1, 75, -1, -1, -1, -1,
- 40, -1, 82, 83, 84, 85, 86, 47, -1, 49,
- -1, 51, 92, 53, 94, 95, -1, -1, -1, -1,
- 100, -1, -1, -1, 104, 65, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 75, -1, -1, -1, -1,
- -1, -1, 82, 83, 84, 85, 86, -1, -1, -1,
- -1, -1, 92, 12, 94, 95, 15, 16, 17, 76,
- 100, -1, 79, -1, 104, -1, 25, 26, 27, -1,
- 29, 30, 31, -1, 33, -1, 93, 94, 95, 96,
- 97, -1, -1, -1, -1, 102, 103, -1, -1, -1,
- -1, -1, 51, 12, 53, -1, 15, 16, 17, -1,
- -1, -1, -1, -1, -1, -1, 25, 26, 27, -1,
- 29, 30, 31, -1, 33, -1, 75, -1, -1, -1,
- -1, -1, -1, 82, 83, 84, 85, 86, -1, -1,
- -1, -1, 51, 92, 53, 94, 95, -1, -1, -1,
- -1, 100, -1, -1, -1, 104, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 75, -1, -1, -1,
- -1, -1, -1, 82, 83, 84, 85, 86, -1, -1,
- -1, -1, -1, 92, 12, 94, 95, 15, 16, 17,
- 76, 100, -1, 79, -1, 104, -1, 25, 26, 27,
- -1, 29, 30, 31, -1, 33, -1, 93, 94, 95,
- 96, 97, -1, -1, -1, -1, 102, 103, -1, -1,
- -1, -1, -1, 51, 12, 53, -1, 15, 16, 17,
- -1, -1, -1, -1, -1, -1, -1, 25, 26, 27,
- -1, 29, 30, 31, -1, 33, -1, 75, -1, -1,
- -1, -1, -1, -1, 82, 83, 84, 85, 86, -1,
- -1, -1, -1, 51, 92, 53, 94, 95, -1, -1,
- -1, -1, 100, -1, -1, -1, 104, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 75, -1, -1,
- -1, -1, -1, -1, 82, 83, 84, 85, 86, -1,
- -1, -1, -1, -1, 92, 12, 94, 95, 15, 16,
- 17, 49, 100, -1, -1, -1, 104, -1, 25, 26,
- 27, -1, 29, 30, 31, -1, 33, -1, -1, 67,
- 68, -1, -1, 71, 72, 73, 74, -1, 76, -1,
- -1, 79, 80, 81, 51, -1, 53, -1, -1, -1,
- -1, -1, -1, -1, -1, 93, 94, 95, 96, 97,
- -1, -1, -1, 76, 102, 103, 79, -1, 75, -1,
- -1, 44, -1, -1, -1, 82, 83, 84, 85, 86,
- 93, 94, 95, 96, 97, 92, -1, 94, 95, 102,
- 103, -1, -1, 100, 67, 68, -1, 104, 71, 72,
- 73, 74, -1, 76, 77, 78, 79, 80, 81, 44,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 93, 94, 95, 96, 97, -1, -1, -1, -1, 102,
- 103, -1, 67, 68, -1, -1, 71, 72, 73, 74,
- -1, 76, 77, 78, 79, 80, 81, 49, -1, -1,
- -1, -1, -1, -1, 56, -1, -1, -1, 93, 94,
- 95, 96, 97, -1, -1, 67, 68, 102, 103, 71,
- 72, 73, 74, -1, 76, -1, -1, 79, 80, 81,
- 49, -1, -1, -1, -1, -1, -1, 56, -1, -1,
- -1, 93, 94, 95, 96, 97, -1, -1, 67, 68,
- 102, 103, 71, 72, 73, 74, -1, 76, -1, -1,
+ 25, 26, 27, -1, 29, 30, 31, 56, 33, -1,
+ 35, -1, -1, -1, 39, -1, 41, 42, 67, 68,
+ -1, -1, 71, 72, 73, 74, 51, 76, 53, -1,
+ 79, 80, 81, -1, -1, -1, -1, -1, 63, 64,
+ -1, 66, -1, -1, 93, 94, 95, 96, 97, -1,
+ 75, -1, -1, 102, 103, -1, -1, 82, 83, 84,
+ 85, 86, -1, -1, -1, 90, -1, 92, 12, 94,
+ 95, 15, 16, 17, -1, 100, -1, -1, -1, 104,
+ -1, 25, 26, 27, -1, 29, 30, 31, -1, 33,
+ -1, -1, -1, -1, -1, -1, 40, -1, -1, -1,
+ -1, 45, -1, 47, 48, 49, 50, 51, 12, 53,
+ -1, 15, 16, 17, -1, -1, -1, -1, -1, -1,
+ -1, 25, 26, 27, -1, 29, 30, 31, -1, 33,
+ -1, 75, -1, -1, -1, -1, 40, -1, 82, 83,
+ 84, 85, 86, 47, -1, 49, -1, 51, 92, 53,
+ 94, 95, -1, -1, -1, -1, 100, -1, -1, -1,
+ 104, 65, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 75, -1, -1, -1, -1, -1, -1, 82, 83,
+ 84, 85, 86, -1, -1, -1, -1, -1, 92, 12,
+ 94, 95, 15, 16, 17, -1, 100, -1, -1, -1,
+ 104, -1, 25, 26, 27, -1, 29, 30, 31, -1,
+ 33, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 51, 12,
+ 53, -1, 15, 16, 17, -1, -1, -1, -1, -1,
+ -1, -1, 25, 26, 27, -1, 29, 30, 31, -1,
+ 33, -1, 75, -1, -1, -1, -1, -1, -1, 82,
+ 83, 84, 85, 86, -1, -1, -1, -1, 51, 92,
+ 53, 94, 95, -1, -1, -1, -1, 100, -1, -1,
+ -1, 104, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 75, -1, -1, 44, -1, -1, -1, 82,
+ 83, 84, 85, 86, -1, -1, -1, -1, -1, 92,
+ -1, 94, 95, -1, -1, -1, -1, 100, 67, 68,
+ -1, 104, 71, 72, 73, 74, -1, 76, 77, 78,
79, 80, 81, 49, -1, -1, -1, -1, -1, -1,
56, -1, -1, -1, 93, 94, 95, 96, 97, -1,
-1, 67, 68, 102, 103, 71, 72, 73, 74, -1,
76, -1, -1, 79, 80, 81, 49, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 93, 94, 95,
+ -1, -1, -1, 56, -1, -1, -1, 93, 94, 95,
96, 97, -1, -1, 67, 68, 102, 103, 71, 72,
73, 74, -1, 76, -1, -1, 79, 80, 81, 49,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 56, -1, -1, -1,
93, 94, 95, 96, 97, -1, -1, 67, 68, 102,
103, 71, 72, 73, 74, -1, 76, -1, -1, 79,
80, 81, 49, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 93, 94, 95, 96, 97, -1, -1,
67, 68, 102, 103, 71, 72, 73, 74, -1, 76,
- -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
- 54, 55, -1, -1, -1, -1, 93, 94, 95, 96,
- 97, -1, -1, 67, 68, 102, 103, 71, 72, 73,
- 74, -1, 76, -1, -1, 79, 80, 81, -1, -1,
- -1, -1, -1, 54, -1, -1, -1, -1, -1, 93,
- 94, 95, 96, 97, -1, -1, 67, 68, 102, 103,
- 71, 72, 73, 74, -1, 76, -1, -1, 79, 80,
- 81, -1, -1, -1, -1, -1, -1, -1, 56, -1,
- -1, -1, 93, 94, 95, 96, 97, -1, -1, 67,
- 68, 102, 103, 71, 72, 73, 74, -1, 76, -1,
- -1, 79, 80, 81, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 93, 94, 95, 96, 97,
- -1, 99, 67, 68, 102, 103, 71, 72, 73, 74,
- -1, 76, -1, -1, 79, 80, 81, -1, -1, -1,
- -1, -1, 87, 88, -1, -1, -1, -1, 93, 94,
- 95, 96, 97, -1, -1, 67, 68, 102, 103, 71,
- 72, 73, 74, -1, 76, -1, -1, 79, 80, 81,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 93, 94, 95, 96, 97, -1, -1, -1, 101,
- 102, 103, 67, 68, -1, -1, 71, 72, 73, 74,
- -1, 76, -1, -1, 79, 80, 81, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 93, 94,
- 95, 96, 97, -1, -1, 67, 68, 102, 103, 71,
- 72, 73, 74, -1, 76, -1, -1, 79, 80, 81,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 93, 94, 95, 96, 97, -1, -1, 67, 68,
- 102, 103, 71, 72, 73, 74, -1, 76, -1, -1,
- 79, 80, 81, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 93, 94, 95, 96, 97, -1,
- -1, 67, 68, 102, 103, 71, 72, 73, 74, -1,
- 76, -1, -1, 79, 80, 81, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 93, 94, 95,
- 96, 97, -1, -1, 67, 68, 102, 103, 71, 72,
- 73, 74, -1, 76, -1, -1, 79, 80, 81, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 93, 94, 95, 96, 97, -1, -1, 67, 68, 102,
- 103, 71, 72, 73, 74, -1, 76, -1, -1, 79,
- 80, 81, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 93, 94, 95, 96, 97, -1, -1,
- 67, 68, 102, 103, 71, 72, 73, 74, -1, 76,
- -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
+ -1, -1, 79, 80, 81, 49, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 93, 94, 95, 96,
97, -1, -1, 67, 68, 102, 103, 71, 72, 73,
- 74, -1, 76, -1, -1, 79, 80, 81, -1, -1,
+ 74, -1, 76, -1, -1, 79, 80, 81, 49, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
94, 95, 96, 97, -1, -1, 67, 68, 102, 103,
71, 72, 73, 74, -1, 76, -1, -1, 79, 80,
- 81, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 81, 49, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 93, 94, 95, 96, 97, -1, -1, 67,
68, 102, 103, 71, 72, 73, 74, -1, 76, -1,
- -1, 79, 80, 81, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 93, 94, 95, 96, 97,
+ -1, 79, 80, 81, -1, -1, -1, -1, -1, 54,
+ 55, -1, -1, -1, -1, 93, 94, 95, 96, 97,
-1, -1, 67, 68, 102, 103, 71, 72, 73, 74,
-1, 76, -1, -1, 79, 80, 81, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 93, 94,
+ -1, -1, 54, -1, -1, -1, -1, -1, 93, 94,
95, 96, 97, -1, -1, 67, 68, 102, 103, 71,
72, 73, 74, -1, 76, -1, -1, 79, 80, 81,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 56, -1, -1,
-1, 93, 94, 95, 96, 97, -1, -1, 67, 68,
102, 103, 71, 72, 73, 74, -1, 76, -1, -1,
79, 80, 81, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 93, 94, 95, 96, 97, -1,
- -1, 67, 68, 102, 103, 71, 72, 73, 74, -1,
+ -1, -1, 58, -1, 93, 94, 95, 96, 97, -1,
+ 99, 67, 68, 102, 103, 71, 72, 73, 74, -1,
76, -1, -1, 79, 80, 81, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 93, 94, 95,
96, 97, -1, -1, 67, 68, 102, 103, 71, 72,
73, 74, -1, 76, -1, -1, 79, 80, 81, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 87, 88, -1, -1, -1, -1,
93, 94, 95, 96, 97, -1, -1, 67, 68, 102,
103, 71, 72, 73, 74, -1, 76, -1, -1, 79,
80, 81, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 93, 94, 95, 96, 97, -1, -1,
- 67, 68, 102, 103, 71, 72, 73, 74, -1, 76,
- -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 93, 94, 95, 96,
- 97, -1, -1, 67, 68, 102, 103, 71, 72, 73,
- 74, -1, 76, -1, -1, 79, 80, 81, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
- 94, 95, 96, 97, -1, -1, 67, 68, 102, 103,
- 71, 72, 73, 74, -1, 76, -1, -1, 79, 80,
- 81, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 93, 94, 95, 96, 97, -1, -1, 67,
- 68, 102, 103, 71, 72, 73, 74, -1, 76, -1,
- -1, 79, 80, 81, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 93, 94, 95, 96, 97,
- -1, -1, 67, 68, 102, 103, 71, 72, 73, 74,
- -1, 76, -1, -1, 79, 80, 81, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 93, 94,
- 95, 96, 97, -1, -1, 67, 68, 102, 103, 71,
- 72, 73, 74, -1, 76, -1, -1, 79, 80, 81,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 93, 94, 95, 96, 97, -1, -1, 67, 68,
- 102, 103, 71, 72, 73, 74, -1, 76, -1, -1,
- 79, 80, 81, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 93, 94, 95, 96, 97, -1,
- -1, 67, 68, 102, 103, 71, 72, 73, 74, -1,
- 76, -1, -1, 79, 80, 81, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 93, 94, 95,
- 96, 97, -1, -1, 67, 68, 102, 103, 71, 72,
+ -1, 101, 102, 103, 67, 68, -1, -1, 71, 72,
73, 74, -1, 76, -1, -1, 79, 80, 81, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
93, 94, 95, 96, 97, -1, -1, 67, 68, 102,
- 103, 71, 72, 73, 74, -1, 76, -1, -1, 79,
+ 103, 71, 72, -1, -1, -1, 76, -1, -1, 79,
80, 81, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 93, 94, 95, 96, 97, -1, -1,
- 67, 68, 102, 103, 71, 72, 73, 74, -1, 76,
- -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 93, 94, 95, 96,
- 97, -1, -1, 67, 68, 102, 103, 71, 72, 73,
- 74, -1, 76, -1, -1, 79, 80, 81, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
- 94, 95, 96, 97, -1, -1, 67, 68, 102, 103,
- 71, 72, 73, 74, -1, 76, -1, -1, 79, 80,
- 81, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 93, 94, 95, 96, 97, -1, -1, 67,
- 68, 102, 103, 71, 72, 73, 74, -1, 76, -1,
- -1, 79, 80, 81, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 93, 94, 95, 96, 97,
- -1, -1, 67, 68, 102, 103, 71, 72, 73, 74,
- -1, 76, -1, -1, 79, 80, 81, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 93, 94,
- 95, 96, 97, -1, -1, 67, 68, 102, 103, 71,
- 72, 73, 74, -1, 76, -1, -1, 79, 80, 81,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 93, 94, 95, 96, 97, -1, -1, 67, 68,
- 102, 103, 71, 72, 73, 74, -1, 76, -1, -1,
- 79, 80, 81, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 93, 94, 95, 96, 97, -1,
- -1, 67, 68, 102, 103, 71, 72, 73, 74, -1,
- 76, -1, -1, 79, 80, 81, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 93, 94, 95,
- 96, 97, -1, -1, 67, 68, 102, 103, 71, 72,
- 73, 74, -1, 76, -1, -1, 79, 80, 81, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 93, 94, 95, 96, 97, -1, -1, 67, 68, 102,
- 103, 71, 72, 73, 74, -1, 76, -1, -1, 79,
- 80, 81, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 93, 94, 95, 96, 97, -1, -1,
- 67, 68, 102, 103, 71, 72, 73, 74, -1, 76,
- -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 93, 94, 95, 96,
- 97, -1, -1, 67, 68, 102, 103, 71, 72, 73,
- 74, -1, 76, -1, -1, 79, 80, 81, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
- 94, 95, 96, 97, -1, -1, 67, 68, 102, 103,
- 71, 72, -1, -1, -1, 76, -1, -1, 79, 80,
- 81, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 93, 94, 95, 96, 97, -1, -1, 67,
- 68, 102, 103, 71, 72, -1, -1, -1, 76, -1,
- -1, 79, 80, 81, -1, -1, -1, -1, -1, 76,
- -1, -1, 79, -1, -1, 93, 94, 95, 96, 97,
- 76, -1, -1, 79, 102, 103, 93, 94, 95, 96,
- 97, 76, -1, -1, 79, 102, 103, 93, 94, 95,
- 96, 97, 76, -1, -1, 79, 102, 103, 93, 94,
- 95, 96, 97, -1, -1, -1, -1, 102, 103, 93,
- 94, 95, 96, 97, -1, -1, -1, -1, 102, 103
+ -1, -1, 102, 103
};
- /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
-static const unsigned char yystos[] =
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+static const yytype_uint8 yystos[] =
{
0, 1, 12, 15, 16, 17, 19, 20, 21, 22,
23, 25, 26, 27, 29, 30, 31, 33, 35, 39,
@@ -1198,705 +1286,259 @@ static const unsigned char yystos[] =
122, 34, 34, 111, 122, 37, 111, 122
};
- /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const unsigned char yyr1[] =
-{
- 0, 107, 108, 108, 108, 109, 109, 109, 110, 110,
- 110, 110, 110, 110, 110, 110, 110, 110, 111, 111,
- 111, 112, 112, 112, 112, 112, 112, 112, 112, 113,
- 113, 113, 113, 114, 114, 115, 115, 116, 116, 116,
- 116, 116, 116, 117, 118, 119, 120, 121, 122, 123,
- 123, 123, 124, 125, 126, 126, 126, 126, 126, 127,
- 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
- 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
- 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
- 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
- 127, 128, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 130, 130, 131, 131, 132, 132, 133, 133, 133, 133,
- 133, 133, 134, 134, 135, 135, 136, 136, 136, 136,
- 137, 136, 139, 138, 138, 140, 138, 138, 138, 141,
- 142, 142, 142, 142, 143, 143, 143, 144, 145, 146,
- 146, 146, 147, 147
-};
-
- /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
-static const unsigned char yyr2[] =
-{
- 0, 2, 3, 1, 2, 0, 1, 1, 4, 4,
- 4, 4, 4, 4, 4, 4, 5, 5, 1, 1,
- 1, 1, 1, 5, 10, 11, 3, 6, 4, 10,
- 6, 9, 6, 0, 2, 6, 6, 1, 9, 5,
- 4, 5, 4, 2, 3, 1, 1, 0, 0, 0,
- 2, 2, 3, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 2, 2, 4, 1, 2, 1, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 2, 3, 3, 3, 3, 2, 2, 3, 3,
- 4, 4, 4, 6, 4, 6, 4, 6, 4, 6,
- 1, 2, 2, 1, 1, 2, 1, 2, 2, 2,
- 1, 2, 2, 1, 2, 4, 6, 4, 2, 3,
- 1, 3, 1, 3, 1, 3, 2, 2, 2, 2,
- 3, 2, 2, 1, 3, 2, 2, 2, 3, 2,
- 0, 3, 0, 8, 2, 0, 8, 8, 6, 2,
- 0, 1, 3, 4, 0, 1, 3, 0, 2, 0,
- 1, 3, 1, 3
-};
-
-
-/* YYDPREC[RULE-NUM] -- Dynamic precedence of rule #RULE-NUM (0 if none). */
-static const unsigned char yydprec[] =
-{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0
-};
-
-/* YYMERGER[RULE-NUM] -- Index of merging function for rule #RULE-NUM. */
-static const unsigned char yymerger[] =
-{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0
-};
-
-/* YYIMMEDIATE[RULE-NUM] -- True iff rule #RULE-NUM is not to be deferred, as
- in the case of predicates. */
-static const yybool yyimmediate[] =
-{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0
-};
-
-/* YYCONFLP[YYPACT[STATE-NUM]] -- Pointer into YYCONFL of start of
- list of conflicting reductions corresponding to action entry for
- state STATE-NUM in yytable. 0 means no conflicts. The list in
- yyconfl is terminated by a rule number of 0. */
-static const unsigned short yyconflp[] =
-{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1171, 0,
- 0, 1173, 1175, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 361, 0, 367, 0,
- 0, 0, 0, 0, 1178, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 363,
- 365, 369, 371, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 97, 0, 0, 0, 0, 0, 373,
- 0, 0, 0, 0, 0, 1027, 0, 0, 0, 1029,
- 0, 0, 0, 0, 435, 0, 0, 0, 0, 0,
- 0, 0, 375, 377, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 437, 439, 0,
- 0, 0, 0, 0, 0, 0, 0, 505, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 507, 509, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 99, 0, 0, 0, 0, 0, 0,
- 0, 105, 0, 0, 511, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 265, 0, 0, 0, 0, 513, 515, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 397, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 399, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1180, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 401, 403, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 405, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 407, 409, 0, 0, 0, 487,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 489, 491, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 493, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 495, 497, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 499, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 501, 503, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1182, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1188, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1190, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1192, 0, 0, 1194, 1196,
- 1198, 0, 1200, 1202, 1204, 1206, 1208, 0, 1210, 1212,
- 1214, 0, 1216, 1218, 1220, 0, 1222, 0, 1224, 0,
- 0, 0, 1226, 0, 1228, 1230, 0, 0, 0, 0,
- 0, 0, 0, 0, 1232, 0, 1234, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1236, 1238, 0, 1240,
- 0, 0, 0, 357, 359, 0, 0, 0, 1242, 0,
- 0, 0, 0, 0, 0, 1244, 1246, 1248, 1250, 1252,
- 0, 0, 0, 1254, 0, 1256, 0, 1258, 1260, 0,
- 0, 1266, 0, 1262, 1268, 1270, 1272, 1264, 1274, 1276,
- 1278, 1280, 1282, 0, 1284, 1286, 1288, 0, 1290, 1292,
- 1294, 0, 1296, 0, 1298, 0, 0, 0, 1300, 0,
- 1302, 1304, 0, 0, 0, 0, 0, 0, 0, 0,
- 1306, 0, 1308, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1310, 1312, 0, 1314, 0, 0, 0, 0,
- 0, 0, 0, 0, 1316, 0, 0, 0, 0, 0,
- 0, 1318, 1320, 1322, 1324, 1326, 0, 0, 0, 1328,
- 0, 1330, 0, 1332, 1334, 0, 0, 0, 0, 1336,
- 0, 0, 0, 1338, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 411, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 413, 415, 0, 0, 0,
- 0, 0, 0, 1, 0, 0, 3, 5, 7, 0,
- 0, 0, 0, 0, 0, 0, 9, 11, 13, 0,
- 15, 17, 19, 0, 21, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 23, 0, 25, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 27, 0, 0, 0,
- 0, 0, 0, 29, 31, 33, 35, 37, 0, 0,
- 0, 0, 0, 39, 49, 41, 43, 51, 53, 55,
- 0, 45, 0, 417, 0, 47, 0, 57, 59, 61,
- 0, 63, 65, 67, 0, 69, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 419, 421, 0, 0,
- 0, 0, 0, 71, 183, 73, 0, 185, 187, 189,
- 0, 0, 0, 0, 0, 0, 0, 191, 193, 195,
- 0, 197, 199, 201, 0, 203, 0, 75, 0, 0,
- 0, 0, 0, 0, 77, 79, 81, 83, 85, 0,
- 0, 0, 0, 205, 87, 207, 89, 91, 0, 0,
- 0, 0, 93, 0, 0, 0, 95, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 209, 0, 0,
- 0, 0, 0, 0, 211, 213, 215, 217, 219, 0,
- 0, 0, 0, 0, 221, 301, 223, 225, 303, 305,
- 307, 0, 227, 0, 0, 0, 229, 0, 309, 311,
- 313, 0, 315, 317, 319, 0, 321, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 323, 0, 325, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 475, 0, 327, 0,
- 0, 0, 0, 0, 0, 329, 331, 333, 335, 337,
- 0, 0, 0, 0, 0, 339, 0, 341, 343, 477,
- 479, 0, 0, 345, 0, 0, 0, 347, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 353, 355, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 387,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 101,
- 103, 0, 0, 0, 0, 107, 109, 0, 0, 111,
- 113, 115, 117, 0, 119, 0, 0, 121, 123, 125,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 127, 129, 131, 133, 135, 0, 0, 0, 0,
- 137, 139, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 141, 143, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 145, 147,
- 0, 0, 0, 0, 149, 151, 0, 0, 153, 155,
- 157, 159, 0, 161, 0, 0, 163, 165, 167, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 169, 171, 173, 175, 177, 0, 0, 231, 233, 179,
- 181, 235, 237, 239, 241, 0, 243, 0, 0, 245,
- 247, 249, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 251, 253, 255, 257, 259, 0, 0,
- 267, 269, 261, 263, 271, 273, 275, 277, 0, 279,
- 0, 0, 281, 283, 285, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 287, 289, 291, 293,
- 295, 0, 0, 0, 0, 297, 299, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 349, 351, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 379, 381, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 383, 385, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 389,
- 391, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 393, 395, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 441, 443, 0, 0, 445, 447, 449, 451, 0,
- 453, 0, 0, 455, 457, 459, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 461, 463, 465,
- 467, 469, 0, 0, 517, 519, 471, 473, 521, 523,
- 525, 527, 0, 529, 0, 0, 531, 533, 535, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 537, 539, 541, 543, 545, 0, 0, 551, 553, 547,
- 549, 555, 557, 559, 561, 0, 563, 0, 0, 565,
- 567, 569, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 571, 573, 575, 577, 579, 0, 0,
- 585, 587, 581, 583, 589, 591, 593, 595, 0, 597,
- 0, 0, 599, 601, 603, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 605, 607, 609, 611,
- 613, 0, 0, 0, 0, 615, 617, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 619, 621, 0, 0, 0, 0, 623, 625, 0, 0,
- 627, 629, 631, 633, 0, 635, 0, 0, 637, 639,
- 641, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 643, 645, 647, 649, 651, 0, 0, 657,
- 659, 653, 655, 661, 663, 665, 667, 0, 669, 0,
- 0, 671, 673, 675, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 677, 679, 681, 683, 685,
- 0, 0, 691, 693, 687, 689, 695, 697, 699, 701,
- 0, 703, 0, 0, 705, 707, 709, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 711, 713,
- 715, 717, 719, 0, 0, 731, 733, 721, 723, 735,
- 737, 739, 741, 0, 743, 0, 0, 745, 747, 749,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 751, 753, 755, 757, 759, 0, 0, 0, 0,
- 761, 763, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 771, 773, 0, 0, 0,
- 0, 775, 777, 0, 0, 779, 781, 783, 785, 0,
- 787, 0, 0, 789, 791, 793, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 795, 797, 799,
- 801, 803, 0, 0, 809, 811, 805, 807, 813, 815,
- 817, 819, 0, 821, 0, 0, 823, 825, 827, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 829, 831, 833, 835, 837, 0, 0, 843, 845, 839,
- 841, 847, 849, 851, 853, 0, 855, 0, 0, 857,
- 859, 861, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 863, 865, 867, 869, 871, 0, 0,
- 877, 879, 873, 875, 881, 883, 885, 887, 0, 889,
- 0, 0, 891, 893, 895, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 897, 899, 901, 903,
- 905, 0, 0, 911, 913, 907, 909, 915, 917, 919,
- 921, 0, 923, 0, 0, 925, 927, 929, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 931,
- 933, 935, 937, 939, 0, 0, 945, 947, 941, 943,
- 949, 951, 953, 955, 0, 957, 0, 0, 959, 961,
- 963, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 965, 967, 969, 971, 973, 0, 0, 0,
- 0, 975, 977, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 979, 981, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 983,
- 985, 0, 0, 0, 0, 993, 995, 0, 0, 997,
- 999, 1001, 1003, 0, 1005, 0, 0, 1007, 1009, 1011,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1013, 1015, 1017, 1019, 1021, 0, 0, 1031, 1033,
- 1023, 1025, 1035, 1037, 1039, 1041, 0, 1043, 0, 0,
- 1045, 1047, 1049, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1051, 1053, 1055, 1057, 1059, 0,
- 0, 1065, 1067, 1061, 1063, 1069, 1071, 1073, 1075, 0,
- 1077, 0, 0, 1079, 1081, 1083, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1085, 1087, 1089,
- 1091, 1093, 0, 0, 1099, 1101, 1095, 1097, 1103, 1105,
- 1107, 1109, 0, 1111, 0, 0, 1113, 1115, 1117, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1119, 1121, 1123, 1125, 1127, 0, 0, 1133, 1135, 1129,
- 1131, 1137, 1139, 1141, 1143, 0, 1145, 0, 0, 1147,
- 1149, 1151, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1153, 1155, 1157, 1159, 1161, 0, 0,
- 0, 0, 1163, 1165, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1167, 1169, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1184, 1186, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 423, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 425, 427, 0, 0, 0, 0, 0, 0, 0,
- 0, 429, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 481, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 725, 431, 433, 0, 0, 0, 0,
- 0, 0, 0, 0, 765, 483, 485, 0, 0, 0,
- 0, 0, 0, 0, 0, 987, 727, 729, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 767, 769, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 989, 991
-};
-
-/* YYCONFL[I] -- lists of conflicting rule numbers, each terminated by
- 0, pointed into by YYCONFLP. */
-static const short yyconfl[] =
-{
- 0, 113, 0, 113, 0, 113, 0, 113, 0, 113,
- 0, 113, 0, 113, 0, 113, 0, 113, 0, 113,
- 0, 113, 0, 113, 0, 113, 0, 113, 0, 113,
- 0, 113, 0, 113, 0, 113, 0, 113, 0, 113,
- 0, 113, 0, 113, 0, 113, 0, 113, 0, 58,
- 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
- 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
- 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
- 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
- 0, 58, 0, 58, 0, 58, 0, 106, 0, 100,
- 0, 19, 0, 19, 0, 58, 0, 66, 0, 66,
- 0, 66, 0, 66, 0, 66, 0, 66, 0, 66,
- 0, 66, 0, 66, 0, 66, 0, 66, 0, 66,
- 0, 66, 0, 66, 0, 66, 0, 66, 0, 66,
- 0, 112, 0, 112, 0, 111, 0, 111, 0, 162,
- 0, 162, 0, 162, 0, 162, 0, 162, 0, 162,
- 0, 162, 0, 162, 0, 162, 0, 162, 0, 162,
- 0, 162, 0, 162, 0, 162, 0, 162, 0, 162,
- 0, 162, 0, 159, 0, 159, 0, 159, 0, 159,
- 0, 159, 0, 159, 0, 159, 0, 159, 0, 159,
- 0, 159, 0, 159, 0, 159, 0, 159, 0, 159,
- 0, 159, 0, 159, 0, 159, 0, 159, 0, 159,
- 0, 159, 0, 159, 0, 159, 0, 159, 0, 159,
- 0, 62, 0, 62, 0, 62, 0, 62, 0, 62,
- 0, 62, 0, 62, 0, 62, 0, 62, 0, 62,
- 0, 62, 0, 62, 0, 62, 0, 62, 0, 62,
- 0, 62, 0, 62, 0, 63, 0, 101, 0, 101,
- 0, 101, 0, 101, 0, 101, 0, 101, 0, 101,
- 0, 101, 0, 101, 0, 101, 0, 101, 0, 101,
- 0, 101, 0, 101, 0, 101, 0, 101, 0, 101,
- 0, 159, 0, 159, 0, 159, 0, 159, 0, 159,
- 0, 159, 0, 159, 0, 159, 0, 159, 0, 159,
- 0, 159, 0, 159, 0, 159, 0, 159, 0, 159,
- 0, 159, 0, 159, 0, 159, 0, 159, 0, 159,
- 0, 159, 0, 159, 0, 159, 0, 159, 0, 133,
- 0, 133, 0, 102, 0, 102, 0, 118, 0, 118,
- 0, 81, 0, 81, 0, 81, 0, 86, 0, 86,
- 0, 86, 0, 87, 0, 87, 0, 87, 0, 160,
- 0, 160, 0, 49, 0, 49, 0, 160, 0, 132,
- 0, 132, 0, 135, 0, 135, 0, 59, 0, 77,
- 0, 77, 0, 77, 0, 78, 0, 78, 0, 78,
- 0, 75, 0, 75, 0, 75, 0, 76, 0, 76,
- 0, 76, 0, 79, 0, 79, 0, 79, 0, 80,
- 0, 80, 0, 80, 0, 72, 0, 72, 0, 72,
- 0, 83, 0, 83, 0, 83, 0, 83, 0, 83,
- 0, 83, 0, 83, 0, 83, 0, 83, 0, 83,
- 0, 83, 0, 83, 0, 83, 0, 83, 0, 83,
- 0, 83, 0, 83, 0, 84, 0, 84, 0, 84,
- 0, 85, 0, 85, 0, 85, 0, 82, 0, 82,
- 0, 82, 0, 68, 0, 68, 0, 68, 0, 69,
- 0, 69, 0, 69, 0, 70, 0, 70, 0, 70,
- 0, 71, 0, 71, 0, 71, 0, 73, 0, 73,
- 0, 73, 0, 73, 0, 73, 0, 73, 0, 73,
- 0, 73, 0, 73, 0, 73, 0, 73, 0, 73,
- 0, 73, 0, 73, 0, 73, 0, 73, 0, 73,
- 0, 74, 0, 74, 0, 74, 0, 74, 0, 74,
- 0, 74, 0, 74, 0, 74, 0, 74, 0, 74,
- 0, 74, 0, 74, 0, 74, 0, 74, 0, 74,
- 0, 74, 0, 74, 0, 163, 0, 163, 0, 163,
- 0, 163, 0, 163, 0, 163, 0, 163, 0, 163,
- 0, 163, 0, 163, 0, 163, 0, 163, 0, 163,
- 0, 163, 0, 163, 0, 163, 0, 163, 0, 134,
- 0, 134, 0, 10, 0, 10, 0, 10, 0, 10,
- 0, 10, 0, 10, 0, 10, 0, 10, 0, 10,
- 0, 10, 0, 10, 0, 10, 0, 10, 0, 10,
- 0, 10, 0, 10, 0, 10, 0, 11, 0, 11,
- 0, 11, 0, 11, 0, 11, 0, 11, 0, 11,
- 0, 11, 0, 11, 0, 11, 0, 11, 0, 11,
- 0, 11, 0, 11, 0, 11, 0, 11, 0, 11,
- 0, 15, 0, 15, 0, 15, 0, 15, 0, 15,
- 0, 15, 0, 15, 0, 15, 0, 15, 0, 15,
- 0, 15, 0, 15, 0, 15, 0, 15, 0, 15,
- 0, 15, 0, 15, 0, 13, 0, 13, 0, 13,
- 0, 14, 0, 14, 0, 14, 0, 14, 0, 14,
- 0, 14, 0, 14, 0, 14, 0, 14, 0, 14,
- 0, 14, 0, 14, 0, 14, 0, 14, 0, 14,
- 0, 14, 0, 14, 0, 12, 0, 12, 0, 12,
- 0, 117, 0, 117, 0, 92, 0, 92, 0, 92,
- 0, 92, 0, 92, 0, 92, 0, 92, 0, 92,
- 0, 92, 0, 92, 0, 92, 0, 92, 0, 92,
- 0, 92, 0, 92, 0, 92, 0, 92, 0, 94,
- 0, 94, 0, 94, 0, 94, 0, 94, 0, 94,
- 0, 94, 0, 94, 0, 94, 0, 94, 0, 94,
- 0, 94, 0, 94, 0, 94, 0, 94, 0, 94,
- 0, 94, 0, 96, 0, 96, 0, 96, 0, 96,
- 0, 96, 0, 96, 0, 96, 0, 96, 0, 96,
- 0, 96, 0, 96, 0, 96, 0, 96, 0, 96,
- 0, 96, 0, 96, 0, 96, 0, 98, 0, 98,
- 0, 98, 0, 98, 0, 98, 0, 98, 0, 98,
- 0, 98, 0, 98, 0, 98, 0, 98, 0, 98,
- 0, 98, 0, 98, 0, 98, 0, 98, 0, 98,
- 0, 90, 0, 90, 0, 90, 0, 90, 0, 90,
- 0, 90, 0, 90, 0, 90, 0, 90, 0, 90,
- 0, 90, 0, 90, 0, 90, 0, 90, 0, 90,
- 0, 90, 0, 90, 0, 91, 0, 91, 0, 91,
- 0, 91, 0, 91, 0, 91, 0, 91, 0, 91,
- 0, 91, 0, 91, 0, 91, 0, 91, 0, 91,
- 0, 91, 0, 91, 0, 91, 0, 91, 0, 161,
- 0, 161, 0, 28, 0, 28, 0, 17, 0, 17,
- 0, 17, 0, 16, 0, 16, 0, 16, 0, 16,
- 0, 16, 0, 16, 0, 16, 0, 16, 0, 16,
- 0, 16, 0, 16, 0, 16, 0, 16, 0, 16,
- 0, 16, 0, 16, 0, 16, 0, 33, 0, 33,
- 0, 93, 0, 93, 0, 93, 0, 93, 0, 93,
- 0, 93, 0, 93, 0, 93, 0, 93, 0, 93,
- 0, 93, 0, 93, 0, 93, 0, 93, 0, 93,
- 0, 93, 0, 93, 0, 95, 0, 95, 0, 95,
- 0, 95, 0, 95, 0, 95, 0, 95, 0, 95,
- 0, 95, 0, 95, 0, 95, 0, 95, 0, 95,
- 0, 95, 0, 95, 0, 95, 0, 95, 0, 97,
- 0, 97, 0, 97, 0, 97, 0, 97, 0, 97,
- 0, 97, 0, 97, 0, 97, 0, 97, 0, 97,
- 0, 97, 0, 97, 0, 97, 0, 97, 0, 97,
- 0, 97, 0, 99, 0, 99, 0, 99, 0, 99,
- 0, 99, 0, 99, 0, 99, 0, 99, 0, 99,
- 0, 99, 0, 99, 0, 99, 0, 99, 0, 99,
- 0, 99, 0, 99, 0, 99, 0, 48, 0, 48,
- 0, 33, 0, 33, 0, 30, 33, 0, 33, 0,
- 33, 0, 148, 0, 48, 0, 48, 0, 143, 0,
- 146, 0, 49, 0, 49, 0, 49, 0, 49, 0,
- 49, 0, 49, 0, 49, 0, 49, 0, 49, 0,
- 49, 0, 49, 0, 49, 0, 49, 0, 49, 0,
- 49, 0, 49, 0, 49, 0, 49, 0, 49, 0,
- 49, 0, 49, 0, 49, 0, 49, 0, 49, 0,
- 49, 0, 49, 0, 49, 0, 49, 0, 49, 0,
- 49, 0, 49, 0, 49, 0, 49, 0, 49, 0,
- 49, 0, 49, 0, 49, 0, 49, 0, 49, 0,
- 49, 0, 49, 0, 49, 0, 49, 0, 49, 0,
- 49, 0, 49, 0, 49, 0, 49, 0, 49, 0,
- 49, 0, 49, 0, 49, 0, 49, 0, 49, 0,
- 49, 0, 49, 0, 49, 0, 49, 0, 49, 0,
- 49, 0, 49, 0, 49, 0, 49, 0, 49, 0,
- 49, 0, 49, 0, 49, 0, 49, 0, 49, 0,
- 49, 0, 49, 0, 49, 0, 49, 0, 49, 0
-};
-
-/* Error token number */
-#define YYTERROR 1
-
+#define yyerrok (yyerrstatus = 0)
+#define yyclearin (yychar = YYEMPTY)
+#define YYEMPTY (-2)
+#define YYEOF 0
+
+#define YYACCEPT goto yyacceptlab
+#define YYABORT goto yyabortlab
+#define YYERROR goto yyerrorlab
+
+
+/* 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. */
+
+#define YYFAIL goto yyerrlab
+
+#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 \
+ { \
+ yyerror (YY_("syntax error: cannot back up")); \
+ YYERROR; \
+ } \
+while (YYID (0))
+
+
+#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
-YYSTYPE yylval;
+/* 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. */
-int yynerrs;
-int yychar;
+#ifndef YY_LOCATION_PRINT
+# if defined YYLTYPE_IS_TRIVIAL && 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
+#endif
-static const int YYEOF = 0;
-static const int YYEMPTY = -2;
-typedef enum { yyok, yyaccept, yyabort, yyerr } YYRESULTTAG;
+/* YYLEX -- calling `yylex' with the right arguments. */
-#define YYCHK(YYE) \
- do { \
- YYRESULTTAG yychk_flag = YYE; \
- if (yychk_flag != yyok) \
- return yychk_flag; \
- } while (0)
+#ifdef YYLEX_PARAM
+# define YYLEX yylex (YYLEX_PARAM)
+#else
+# define YYLEX yylex ()
+#endif
+/* Enable debugging if requested. */
#if YYDEBUG
# ifndef YYFPRINTF
+# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
# define YYFPRINTF fprintf
# endif
-/* This macro is provided for backward compatibility. */
-#ifndef YY_LOCATION_PRINT
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+# define YYDPRINTF(Args) \
+do { \
+ if (yydebug) \
+ YYFPRINTF Args; \
+} while (YYID (0))
+
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
+do { \
+ if (yydebug) \
+ { \
+ YYFPRINTF (stderr, "%s ", Title); \
+ yy_symbol_print (stderr, \
+ Type, Value); \
+ YYFPRINTF (stderr, "\n"); \
+ } \
+} while (YYID (0))
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
+
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+#else
+static void
+yy_symbol_value_print (yyoutput, yytype, yyvaluep)
+ FILE *yyoutput;
+ int yytype;
+ YYSTYPE const * const yyvaluep;
#endif
+{
+ if (!yyvaluep)
+ return;
+# ifdef YYPRINT
+ if (yytype < YYNTOKENS)
+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# else
+ YYUSE (yyoutput);
+# endif
+ switch (yytype)
+ {
+ default:
+ break;
+ }
+}
-# define YYDPRINTF(Args) \
- do { \
- if (yydebug) \
- YYFPRINTF Args; \
- } while (0)
+/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+#else
+static void
+yy_symbol_print (yyoutput, yytype, yyvaluep)
+ FILE *yyoutput;
+ int yytype;
+ YYSTYPE const * const yyvaluep;
+#endif
+{
+ if (yytype < YYNTOKENS)
+ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+ else
+ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-/*-----------------------------------.
-| Print this symbol's value on YYO. |
-`-----------------------------------*/
+ yy_symbol_value_print (yyoutput, yytype, yyvaluep);
+ YYFPRINTF (yyoutput, ")");
+}
+
+/*------------------------------------------------------------------.
+| yy_stack_print -- Print the state stack from its BOTTOM up to its |
+| TOP (included). |
+`------------------------------------------------------------------*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
+#else
static void
-yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
+yy_stack_print (bottom, top)
+ yytype_int16 *bottom;
+ yytype_int16 *top;
+#endif
{
- FILE *yyoutput = yyo;
- YYUSE (yyoutput);
- if (!yyvaluep)
- return;
- YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
- YYUSE (yytype);
- YY_IGNORE_MAYBE_UNINITIALIZED_END
+ YYFPRINTF (stderr, "Stack now");
+ for (; bottom <= top; ++bottom)
+ YYFPRINTF (stderr, " %d", *bottom);
+ YYFPRINTF (stderr, "\n");
}
+# define YY_STACK_PRINT(Bottom, Top) \
+do { \
+ if (yydebug) \
+ yy_stack_print ((Bottom), (Top)); \
+} while (YYID (0))
-/*---------------------------.
-| Print this symbol on YYO. |
-`---------------------------*/
+/*------------------------------------------------.
+| Report that the YYRULE is going to be reduced. |
+`------------------------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
+#else
static void
-yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
+yy_reduce_print (yyvsp, yyrule)
+ YYSTYPE *yyvsp;
+ int yyrule;
+#endif
{
- YYFPRINTF (yyo, "%s %s (",
- yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
-
- yy_symbol_value_print (yyo, yytype, yyvaluep);
- YYFPRINTF (yyo, ")");
+ int yynrhs = yyr2[yyrule];
+ int yyi;
+ unsigned long int yylno = yyrline[yyrule];
+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
+ yyrule - 1, yylno);
+ /* The symbols being reduced. */
+ for (yyi = 0; yyi < yynrhs; yyi++)
+ {
+ fprintf (stderr, " $%d = ", yyi + 1);
+ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
+ &(yyvsp[(yyi + 1) - (yynrhs)])
+ );
+ fprintf (stderr, "\n");
+ }
}
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
- do { \
- if (yydebug) \
- { \
- YYFPRINTF (stderr, "%s ", Title); \
- yy_symbol_print (stderr, Type, Value); \
- YYFPRINTF (stderr, "\n"); \
- } \
- } while (0)
+# define YY_REDUCE_PRINT(Rule) \
+do { \
+ if (yydebug) \
+ yy_reduce_print (yyvsp, Rule); \
+} while (YYID (0))
/* Nonzero means print parse trace. It is left uninitialized so that
multiple parsers can coexist. */
int yydebug;
-
-struct yyGLRStack;
-static void yypstack (struct yyGLRStack* yystackp, size_t yyk)
- YY_ATTRIBUTE_UNUSED;
-static void yypdumpstack (struct yyGLRStack* yystackp)
- YY_ATTRIBUTE_UNUSED;
-
#else /* !YYDEBUG */
-
# define YYDPRINTF(Args)
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
-
+# define YY_STACK_PRINT(Bottom, Top)
+# define YY_REDUCE_PRINT(Rule)
#endif /* !YYDEBUG */
+
/* YYINITDEPTH -- initial size of the parser's stacks. */
-#ifndef YYINITDEPTH
+#ifndef YYINITDEPTH
# define YYINITDEPTH 200
#endif
@@ -1904,40 +1546,39 @@ static void yypdumpstack (struct yyGLRStack* yystackp)
if the built-in stack extension method is used).
Do not make this value too large; the results are undefined if
- SIZE_MAX < YYMAXDEPTH * sizeof (GLRStackItem)
+ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
evaluated with infinite-precision integer arithmetic. */
#ifndef YYMAXDEPTH
# define YYMAXDEPTH 10000
#endif
-/* Minimum number of free items on the stack allowed after an
- allocation. This is to allow allocation and initialization
- to be completed by functions that call yyexpandGLRStack before the
- stack is expanded, thus insuring that all necessary pointers get
- properly redirected to new data. */
-#define YYHEADROOM 2
+
-#ifndef YYSTACKEXPANDABLE
-# define YYSTACKEXPANDABLE 1
-#endif
+#if YYERROR_VERBOSE
-#if YYSTACKEXPANDABLE
-# define YY_RESERVE_GLRSTACK(Yystack) \
- do { \
- if (Yystack->yyspaceLeft < YYHEADROOM) \
- yyexpandGLRStack (Yystack); \
- } while (0)
+# ifndef yystrlen
+# if defined __GLIBC__ && defined _STRING_H
+# define yystrlen strlen
+# else
+/* Return the length of YYSTR. */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static YYSIZE_T
+yystrlen (const char *yystr)
#else
-# define YY_RESERVE_GLRSTACK(Yystack) \
- do { \
- if (Yystack->yyspaceLeft < YYHEADROOM) \
- yyMemoryExhausted (Yystack); \
- } while (0)
+static YYSIZE_T
+yystrlen (yystr)
+ const char *yystr;
#endif
-
-
-#if YYERROR_VERBOSE
+{
+ YYSIZE_T yylen;
+ for (yylen = 0; yystr[yylen]; yylen++)
+ continue;
+ return yylen;
+}
+# endif
+# endif
# ifndef yystpcpy
# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
@@ -1945,8 +1586,16 @@ static void yypdumpstack (struct yyGLRStack* yystackp)
# else
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
YYDEST. */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
static char *
yystpcpy (char *yydest, const char *yysrc)
+#else
+static char *
+yystpcpy (yydest, yysrc)
+ char *yydest;
+ const char *yysrc;
+#endif
{
char *yyd = yydest;
const char *yys = yysrc;
@@ -1967,2942 +1616,1607 @@ yystpcpy (char *yydest, const char *yysrc)
backslash-backslash). YYSTR is taken from yytname. If YYRES is
null, do not copy; instead, return the length of what the result
would have been. */
-static size_t
+static YYSIZE_T
yytnamerr (char *yyres, const char *yystr)
{
if (*yystr == '"')
{
- size_t yyn = 0;
+ YYSIZE_T yyn = 0;
char const *yyp = yystr;
for (;;)
- switch (*++yyp)
- {
- case '\'':
- case ',':
- goto do_not_strip_quotes;
-
- case '\\':
- if (*++yyp != '\\')
- goto do_not_strip_quotes;
- else
- goto append;
-
- append:
- default:
- if (yyres)
- yyres[yyn] = *yyp;
- yyn++;
- break;
-
- case '"':
- if (yyres)
- yyres[yyn] = '\0';
- return yyn;
- }
+ switch (*++yyp)
+ {
+ case '\'':
+ case ',':
+ goto do_not_strip_quotes;
+
+ case '\\':
+ if (*++yyp != '\\')
+ goto do_not_strip_quotes;
+ /* Fall through. */
+ default:
+ if (yyres)
+ yyres[yyn] = *yyp;
+ yyn++;
+ break;
+
+ case '"':
+ if (yyres)
+ yyres[yyn] = '\0';
+ return yyn;
+ }
do_not_strip_quotes: ;
}
if (! yyres)
- return strlen (yystr);
+ return yystrlen (yystr);
- return (size_t) (yystpcpy (yyres, yystr) - yyres);
+ return yystpcpy (yyres, yystr) - yyres;
}
# endif
-#endif /* !YYERROR_VERBOSE */
-
-/** State numbers, as in LALR(1) machine */
-typedef int yyStateNum;
-
-/** Rule numbers, as in LALR(1) machine */
-typedef int yyRuleNum;
-
-/** Grammar symbol */
-typedef int yySymbol;
-
-/** Item references, as in LALR(1) machine */
-typedef short yyItemNum;
-
-typedef struct yyGLRState yyGLRState;
-typedef struct yyGLRStateSet yyGLRStateSet;
-typedef struct yySemanticOption yySemanticOption;
-typedef union yyGLRStackItem yyGLRStackItem;
-typedef struct yyGLRStack yyGLRStack;
-
-struct yyGLRState {
- /** Type tag: always true. */
- yybool yyisState;
- /** Type tag for yysemantics. If true, yysval applies, otherwise
- * yyfirstVal applies. */
- yybool yyresolved;
- /** Number of corresponding LALR(1) machine state. */
- yyStateNum yylrState;
- /** Preceding state in this stack */
- yyGLRState* yypred;
- /** Source position of the last token produced by my symbol */
- size_t yyposn;
- union {
- /** First in a chain of alternative reductions producing the
- * nonterminal corresponding to this state, threaded through
- * yynext. */
- yySemanticOption* yyfirstVal;
- /** Semantic value for this state. */
- YYSTYPE yysval;
- } yysemantics;
-};
+/* 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];
-struct yyGLRStateSet {
- yyGLRState** yystates;
- /** During nondeterministic operation, yylookaheadNeeds tracks which
- * stacks have actually needed the current lookahead. During deterministic
- * operation, yylookaheadNeeds[0] is not maintained since it would merely
- * duplicate yychar != YYEMPTY. */
- yybool* yylookaheadNeeds;
- size_t yysize, yycapacity;
-};
+ 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;
+ }
+
+ yyf = YY_(yyformat);
+ yysize1 = yysize + yystrlen (yyf);
+ yysize_overflow |= (yysize1 < yysize);
+ yysize = yysize1;
+
+ if (yysize_overflow)
+ return YYSIZE_MAXIMUM;
+
+ 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;
+ }
+}
+#endif /* YYERROR_VERBOSE */
+
-struct yySemanticOption {
- /** Type tag: always false. */
- yybool yyisState;
- /** Rule number for this reduction */
- yyRuleNum yyrule;
- /** The last RHS state in the list of states to be reduced. */
- yyGLRState* yystate;
- /** The lookahead for this reduction. */
- int yyrawchar;
- YYSTYPE yyval;
- /** Next sibling in chain of options. To facilitate merging,
- * options are chained in decreasing order by address. */
- yySemanticOption* yynext;
-};
+/*-----------------------------------------------.
+| Release the memory associated to this symbol. |
+`-----------------------------------------------*/
-/** Type of the items in the GLR stack. The yyisState field
- * indicates which item of the union is valid. */
-union yyGLRStackItem {
- yyGLRState yystate;
- yySemanticOption yyoption;
-};
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yydestruct (yymsg, yytype, yyvaluep)
+ const char *yymsg;
+ int yytype;
+ YYSTYPE *yyvaluep;
+#endif
+{
+ YYUSE (yyvaluep);
-struct yyGLRStack {
- int yyerrState;
+ if (!yymsg)
+ yymsg = "Deleting";
+ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+ switch (yytype)
+ {
- YYJMP_BUF yyexception_buffer;
- yyGLRStackItem* yyitems;
- yyGLRStackItem* yynextFree;
- size_t yyspaceLeft;
- yyGLRState* yysplitPoint;
- yyGLRState* yylastDeleted;
- yyGLRStateSet yytops;
-};
+ default:
+ break;
+ }
+}
+
-#if YYSTACKEXPANDABLE
-static void yyexpandGLRStack (yyGLRStack* yystackp);
+/* 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 */
-_Noreturn static void
-yyFail (yyGLRStack* yystackp, const char* yymsg)
-{
- if (yymsg != YY_NULLPTR)
- yyerror (yymsg);
- YYLONGJMP (yystackp->yyexception_buffer, 1);
-}
-_Noreturn static void
-yyMemoryExhausted (yyGLRStack* yystackp)
-{
- YYLONGJMP (yystackp->yyexception_buffer, 2);
-}
-#if YYDEBUG || YYERROR_VERBOSE
-/** A printable representation of TOKEN. */
-static inline const char*
-yytokenName (yySymbol yytoken)
-{
- if (yytoken == YYEMPTY)
- return "";
+/* The look-ahead symbol. */
+int yychar;
- return yytname[yytoken];
-}
+/* The semantic value of the look-ahead symbol. */
+YYSTYPE yylval;
+
+/* Number of syntax errors so far. */
+int yynerrs;
+
+
+
+/*----------.
+| yyparse. |
+`----------*/
+
+#ifdef YYPARSE_PARAM
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+int
+yyparse (void *YYPARSE_PARAM)
+#else
+int
+yyparse (YYPARSE_PARAM)
+ void *YYPARSE_PARAM;
#endif
+#else /* ! YYPARSE_PARAM */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+int
+yyparse (void)
+#else
+int
+yyparse ()
-/** Fill in YYVSP[YYLOW1 .. YYLOW0-1] from the chain of states starting
- * at YYVSP[YYLOW0].yystate.yypred. Leaves YYVSP[YYLOW1].yystate.yypred
- * containing the pointer to the next state in the chain. */
-static void yyfillin (yyGLRStackItem *, int, int) YY_ATTRIBUTE_UNUSED;
-static void
-yyfillin (yyGLRStackItem *yyvsp, int yylow0, int yylow1)
+#endif
+#endif
{
- int i;
- yyGLRState *s = yyvsp[yylow0].yystate.yypred;
- for (i = yylow0-1; i >= yylow1; i -= 1)
- {
-#if YYDEBUG
- yyvsp[i].yystate.yylrState = s->yylrState;
+
+ int yystate;
+ int yyn;
+ int yyresult;
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
+ /* Look-ahead token as an internal (translated) token number. */
+ int yytoken = 0;
+#if YYERROR_VERBOSE
+ /* Buffer for error messages, and its allocated size. */
+ char yymsgbuf[128];
+ char *yymsg = yymsgbuf;
+ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
#endif
- yyvsp[i].yystate.yyresolved = s->yyresolved;
- if (s->yyresolved)
- yyvsp[i].yystate.yysemantics.yysval = s->yysemantics.yysval;
- else
- /* The effect of using yysval or yyloc (in an immediate rule) is
- * undefined. */
- yyvsp[i].yystate.yysemantics.yyfirstVal = YY_NULLPTR;
- s = yyvsp[i].yystate.yypred = s->yypred;
+
+ /* Three stacks and their tools:
+ `yyss': related to states,
+ `yyvs': related to semantic values,
+ `yyls': related to locations.
+
+ Refer to the stacks thru separate pointers, to allow yyoverflow
+ to reallocate them elsewhere. */
+
+ /* The state stack. */
+ yytype_int16 yyssa[YYINITDEPTH];
+ yytype_int16 *yyss = yyssa;
+ yytype_int16 *yyssp;
+
+ /* The semantic value stack. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs = yyvsa;
+ YYSTYPE *yyvsp;
+
+
+
+#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
+
+ YYSIZE_T yystacksize = YYINITDEPTH;
+
+ /* The variables used to return semantic value and location from the
+ action routines. */
+ YYSTYPE yyval;
+
+
+ /* The number of symbols on the RHS of the reduced rule.
+ Keep to zero when no symbol should be popped. */
+ int yylen = 0;
+
+ YYDPRINTF ((stderr, "Starting parse\n"));
+
+ yystate = 0;
+ 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;
+
+/*------------------------------------------------------------.
+| yynewstate -- Push a new state, which is found in yystate. |
+`------------------------------------------------------------*/
+ yynewstate:
+ /* In all cases, when you get here, the value and location stacks
+ have just been pushed. So pushing a state here evens the stacks. */
+ yyssp++;
+
+ yysetstate:
+ *yyssp = yystate;
+
+ if (yyss + yystacksize - 1 <= yyssp)
+ {
+ /* Get the current used size of the three stacks, in elements. */
+ YYSIZE_T yysize = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+ {
+ /* Give user a chance to reallocate the stack. Use copies of
+ these so that the &'s don't force the real ones into
+ memory. */
+ YYSTYPE *yyvs1 = yyvs;
+ yytype_int16 *yyss1 = yyss;
+
+
+ /* Each stack pointer address is followed by the size of the
+ data in use in that stack, in bytes. This used to be a
+ conditional around just the two extra args, but that might
+ be undefined if yyoverflow is a macro. */
+ yyoverflow (YY_("memory exhausted"),
+ &yyss1, yysize * sizeof (*yyssp),
+ &yyvs1, yysize * sizeof (*yyvsp),
+
+ &yystacksize);
+
+ yyss = yyss1;
+ yyvs = yyvs1;
+ }
+#else /* no yyoverflow */
+# ifndef YYSTACK_RELOCATE
+ goto yyexhaustedlab;
+# else
+ /* Extend the stack our own way. */
+ if (YYMAXDEPTH <= yystacksize)
+ goto yyexhaustedlab;
+ yystacksize *= 2;
+ if (YYMAXDEPTH < yystacksize)
+ yystacksize = YYMAXDEPTH;
+
+ {
+ yytype_int16 *yyss1 = yyss;
+ union yyalloc *yyptr =
+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+ if (! yyptr)
+ goto yyexhaustedlab;
+ YYSTACK_RELOCATE (yyss);
+ YYSTACK_RELOCATE (yyvs);
+
+# undef YYSTACK_RELOCATE
+ if (yyss1 != yyssa)
+ YYSTACK_FREE (yyss1);
+ }
+# endif
+#endif /* no yyoverflow */
+
+ yyssp = yyss + yysize - 1;
+ yyvsp = yyvs + yysize - 1;
+
+
+ YYDPRINTF ((stderr, "Stack size increased to %lu\n",
+ (unsigned long int) yystacksize));
+
+ if (yyss + yystacksize - 1 <= yyssp)
+ YYABORT;
}
-}
+ YYDPRINTF ((stderr, "Entering state %d\n", yystate));
-/** If yychar is empty, fetch the next token. */
-static inline yySymbol
-yygetToken (int *yycharp)
-{
- yySymbol yytoken;
- if (*yycharp == YYEMPTY)
+ goto yybackup;
+
+/*-----------.
+| yybackup. |
+`-----------*/
+yybackup:
+
+ /* Do appropriate processing given the current state. Read a
+ look-ahead token if we need one and don't already have one. */
+
+ /* First try to decide what to do without reference to look-ahead token. */
+ yyn = yypact[yystate];
+ if (yyn == YYPACT_NINF)
+ goto yydefault;
+
+ /* Not known => get a look-ahead token if don't already have one. */
+
+ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
+ if (yychar == YYEMPTY)
{
YYDPRINTF ((stderr, "Reading a token: "));
- *yycharp = yylex ();
+ yychar = YYLEX;
}
- if (*yycharp <= YYEOF)
+
+ if (yychar <= YYEOF)
{
- *yycharp = yytoken = YYEOF;
+ yychar = yytoken = YYEOF;
YYDPRINTF ((stderr, "Now at end of input.\n"));
}
else
{
- yytoken = YYTRANSLATE (*yycharp);
+ yytoken = YYTRANSLATE (yychar);
YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
}
- return yytoken;
-}
-/* Do nothing if YYNORMAL or if *YYLOW <= YYLOW1. Otherwise, fill in
- * YYVSP[YYLOW1 .. *YYLOW-1] as in yyfillin and set *YYLOW = YYLOW1.
- * For convenience, always return YYLOW1. */
-static inline int yyfill (yyGLRStackItem *, int *, int, yybool)
- YY_ATTRIBUTE_UNUSED;
-static inline int
-yyfill (yyGLRStackItem *yyvsp, int *yylow, int yylow1, yybool yynormal)
-{
- if (!yynormal && yylow1 < *yylow)
- {
- yyfillin (yyvsp, *yylow, yylow1);
- *yylow = yylow1;
+ /* If the proper action on seeing token YYTOKEN is to reduce or to
+ detect an error, take that action. */
+ yyn += yytoken;
+ if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
+ goto yydefault;
+ yyn = yytable[yyn];
+ if (yyn <= 0)
+ {
+ if (yyn == 0 || yyn == YYTABLE_NINF)
+ goto yyerrlab;
+ yyn = -yyn;
+ goto yyreduce;
}
- return yylow1;
-}
-/** Perform user action for rule number YYN, with RHS length YYRHSLEN,
- * and top stack item YYVSP. YYLVALP points to place to put semantic
- * value ($$), and yylocp points to place for location information
- * (@$). Returns yyok for normal return, yyaccept for YYACCEPT,
- * yyerr for YYERROR, yyabort for YYABORT. */
-static YYRESULTTAG
-yyuserAction (yyRuleNum yyn, int yyrhslen, yyGLRStackItem* yyvsp,
- yyGLRStack* yystackp,
- YYSTYPE* yyvalp)
-{
- yybool yynormal YY_ATTRIBUTE_UNUSED = (yybool) (yystackp->yysplitPoint == YY_NULLPTR);
- int yylow;
- YYUSE (yyvalp);
- YYUSE (yyrhslen);
-# undef yyerrok
-# define yyerrok (yystackp->yyerrState = 0)
-# undef YYACCEPT
-# define YYACCEPT return yyaccept
-# undef YYABORT
-# define YYABORT return yyabort
-# undef YYERROR
-# define YYERROR return yyerrok, yyerr
-# undef YYRECOVERING
-# define YYRECOVERING() (yystackp->yyerrState != 0)
-# undef yyclearin
-# define yyclearin (yychar = YYEMPTY)
-# undef YYFILL
-# define YYFILL(N) yyfill (yyvsp, &yylow, (N), yynormal)
-# undef YYBACKUP
-# define YYBACKUP(Token, Value) \
- return yyerror (YY_("syntax error: cannot back up")), \
- yyerrok, yyerr
-
- yylow = 1;
- if (yyrhslen == 0)
- *yyvalp = yyval_default;
- else
- *yyvalp = yyvsp[YYFILL (1-yyrhslen)].yystate.yysemantics.yysval;
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+ /* Count tokens shifted since error; after three, turn off error
+ status. */
+ if (yyerrstatus)
+ yyerrstatus--;
+
+ /* Shift the look-ahead token. */
+ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
+
+ /* Discard the shifted token unless it is eof. */
+ if (yychar != YYEOF)
+ yychar = YYEMPTY;
+
+ yystate = yyn;
+ *++yyvsp = yylval;
+
+ goto yynewstate;
+
+
+/*-----------------------------------------------------------.
+| yydefault -- do the default action for the current state. |
+`-----------------------------------------------------------*/
+yydefault:
+ yyn = yydefact[yystate];
+ if (yyn == 0)
+ goto yyerrlab;
+ goto yyreduce;
+
+
+/*-----------------------------.
+| yyreduce -- Do a reduction. |
+`-----------------------------*/
+yyreduce:
+ /* yyn is the number of a rule to reduce with. */
+ yylen = yyr2[yyn];
+
+ /* If YYLEN is nonzero, implement the default value of the action:
+ `$$ = $1'.
+
+ Otherwise, the following line sets YYVAL to garbage.
+ This behavior is undocumented and Bison
+ users should not rely upon it. Assigning to YYVAL
+ unconditionally makes the parser a bit smaller, and it avoids a
+ GCC warning that YYVAL may be used uninitialized. */
+ yyval = yyvsp[1-yylen];
+
+
+ YY_REDUCE_PRINT (yyn);
switch (yyn)
{
- case 4:
-#line 123 "engines/director/lingo/lingo-gr.y"
- { yyerrok; }
-#line 2239 "engines/director/lingo/lingo-gr.cpp"
+ case 4:
+#line 122 "engines/director/lingo/lingo-gr.y"
+ { yyerrok; ;}
break;
case 8:
-#line 131 "engines/director/lingo/lingo-gr.y"
+#line 130 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_varpush);
- g_lingo->codeString((((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s)->c_str());
+ g_lingo->codeString((yyvsp[(4) - (4)].s)->c_str());
g_lingo->code1(g_lingo->c_assign);
- ((*yyvalp).code) = (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.code);
- delete (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s); }
-#line 2250 "engines/director/lingo/lingo-gr.cpp"
+ (yyval.code) = (yyvsp[(2) - (4)].code);
+ delete (yyvsp[(4) - (4)].s); ;}
break;
case 9:
-#line 137 "engines/director/lingo/lingo-gr.y"
+#line 136 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_assign);
- ((*yyvalp).code) = (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.code); }
-#line 2258 "engines/director/lingo/lingo-gr.cpp"
+ (yyval.code) = (yyvsp[(2) - (4)].code); ;}
break;
case 10:
-#line 140 "engines/director/lingo/lingo-gr.y"
- { ((*yyvalp).code) = g_lingo->code1(g_lingo->c_after); }
-#line 2264 "engines/director/lingo/lingo-gr.cpp"
+#line 139 "engines/director/lingo/lingo-gr.y"
+ { (yyval.code) = g_lingo->code1(g_lingo->c_after); ;}
break;
case 11:
-#line 141 "engines/director/lingo/lingo-gr.y"
- { ((*yyvalp).code) = g_lingo->code1(g_lingo->c_before); }
-#line 2270 "engines/director/lingo/lingo-gr.cpp"
+#line 140 "engines/director/lingo/lingo-gr.y"
+ { (yyval.code) = g_lingo->code1(g_lingo->c_before); ;}
break;
case 12:
-#line 142 "engines/director/lingo/lingo-gr.y"
+#line 141 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_varpush);
- g_lingo->codeString((((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.s)->c_str());
+ g_lingo->codeString((yyvsp[(2) - (4)].s)->c_str());
g_lingo->code1(g_lingo->c_assign);
- ((*yyvalp).code) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.code);
- delete (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.s); }
-#line 2281 "engines/director/lingo/lingo-gr.cpp"
+ (yyval.code) = (yyvsp[(4) - (4)].code);
+ delete (yyvsp[(2) - (4)].s); ;}
break;
case 13:
-#line 148 "engines/director/lingo/lingo-gr.y"
+#line 147 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_intpush);
g_lingo->codeInt(0); // Put dummy id
g_lingo->code1(g_lingo->c_theentityassign);
- g_lingo->codeInt((((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.e)[0]);
- g_lingo->codeInt((((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.e)[1]);
- ((*yyvalp).code) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.code); }
-#line 2293 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->codeInt((yyvsp[(2) - (4)].e)[0]);
+ g_lingo->codeInt((yyvsp[(2) - (4)].e)[1]);
+ (yyval.code) = (yyvsp[(4) - (4)].code); ;}
break;
case 14:
-#line 155 "engines/director/lingo/lingo-gr.y"
+#line 154 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_varpush);
- g_lingo->codeString((((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.s)->c_str());
+ g_lingo->codeString((yyvsp[(2) - (4)].s)->c_str());
g_lingo->code1(g_lingo->c_assign);
- ((*yyvalp).code) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.code);
- delete (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.s); }
-#line 2304 "engines/director/lingo/lingo-gr.cpp"
+ (yyval.code) = (yyvsp[(4) - (4)].code);
+ delete (yyvsp[(2) - (4)].s); ;}
break;
case 15:
-#line 161 "engines/director/lingo/lingo-gr.y"
+#line 160 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_intpush);
g_lingo->codeInt(0); // Put dummy id
g_lingo->code1(g_lingo->c_theentityassign);
- g_lingo->codeInt((((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.e)[0]);
- g_lingo->codeInt((((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.e)[1]);
- ((*yyvalp).code) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.code); }
-#line 2316 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->codeInt((yyvsp[(2) - (4)].e)[0]);
+ g_lingo->codeInt((yyvsp[(2) - (4)].e)[1]);
+ (yyval.code) = (yyvsp[(4) - (4)].code); ;}
break;
case 16:
-#line 168 "engines/director/lingo/lingo-gr.y"
+#line 167 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_swap);
g_lingo->code1(g_lingo->c_theentityassign);
- g_lingo->codeInt((((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.e)[0]);
- g_lingo->codeInt((((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.e)[1]);
- ((*yyvalp).code) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.code); }
-#line 2327 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->codeInt((yyvsp[(2) - (5)].e)[0]);
+ g_lingo->codeInt((yyvsp[(2) - (5)].e)[1]);
+ (yyval.code) = (yyvsp[(5) - (5)].code); ;}
break;
case 17:
-#line 174 "engines/director/lingo/lingo-gr.y"
+#line 173 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_swap);
g_lingo->code1(g_lingo->c_theentityassign);
- g_lingo->codeInt((((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.e)[0]);
- g_lingo->codeInt((((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.e)[1]);
- ((*yyvalp).code) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.code); }
-#line 2338 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->codeInt((yyvsp[(2) - (5)].e)[0]);
+ g_lingo->codeInt((yyvsp[(2) - (5)].e)[1]);
+ (yyval.code) = (yyvsp[(5) - (5)].code); ;}
break;
case 23:
-#line 193 "engines/director/lingo/lingo-gr.y"
+#line 192 "engines/director/lingo/lingo-gr.y"
{
inst body = 0, end = 0;
- WRITE_UINT32(&body, (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.code) - (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.code));
- WRITE_UINT32(&end, (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.code) - (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.code));
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.code) + 1] = body; /* body of loop */
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.code) + 2] = end; /* end, if cond fails */
+ WRITE_UINT32(&body, (yyvsp[(3) - (5)].code) - (yyvsp[(1) - (5)].code));
+ WRITE_UINT32(&end, (yyvsp[(4) - (5)].code) - (yyvsp[(1) - (5)].code));
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (5)].code) + 1] = body; /* body of loop */
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (5)].code) + 2] = end; /* end, if cond fails */
- checkEnd((((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s), "repeat", true); }
-#line 2351 "engines/director/lingo/lingo-gr.cpp"
+ checkEnd((yyvsp[(5) - (5)].s), "repeat", true); ;}
break;
case 24:
-#line 206 "engines/director/lingo/lingo-gr.y"
+#line 205 "engines/director/lingo/lingo-gr.y"
{
inst init = 0, finish = 0, body = 0, end = 0, inc = 0;
- WRITE_UINT32(&init, (((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval.code) - (((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval.code));
- WRITE_UINT32(&finish, (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.code) - (((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval.code));
- WRITE_UINT32(&body, (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.code) - (((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval.code));
- WRITE_UINT32(&end, (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.code) - (((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval.code));
+ WRITE_UINT32(&init, (yyvsp[(3) - (10)].code) - (yyvsp[(1) - (10)].code));
+ WRITE_UINT32(&finish, (yyvsp[(6) - (10)].code) - (yyvsp[(1) - (10)].code));
+ WRITE_UINT32(&body, (yyvsp[(8) - (10)].code) - (yyvsp[(1) - (10)].code));
+ WRITE_UINT32(&end, (yyvsp[(9) - (10)].code) - (yyvsp[(1) - (10)].code));
WRITE_UINT32(&inc, 1);
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval.code) + 1] = init; /* initial count value */
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval.code) + 2] = finish;/* final count value */
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval.code) + 3] = body; /* body of loop */
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval.code) + 4] = inc; /* increment */
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval.code) + 5] = end; /* end, if cond fails */
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (10)].code) + 1] = init; /* initial count value */
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (10)].code) + 2] = finish;/* final count value */
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (10)].code) + 3] = body; /* body of loop */
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (10)].code) + 4] = inc; /* increment */
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (10)].code) + 5] = end; /* end, if cond fails */
- checkEnd((((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s), "repeat", true); }
-#line 2370 "engines/director/lingo/lingo-gr.cpp"
+ checkEnd((yyvsp[(10) - (10)].s), "repeat", true); ;}
break;
case 25:
-#line 224 "engines/director/lingo/lingo-gr.y"
+#line 223 "engines/director/lingo/lingo-gr.y"
{
inst init = 0, finish = 0, body = 0, end = 0, inc = 0;
- WRITE_UINT32(&init, (((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval.code) - (((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval.code));
- WRITE_UINT32(&finish, (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.code) - (((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval.code));
- WRITE_UINT32(&body, (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.code) - (((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval.code));
- WRITE_UINT32(&end, (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.code) - (((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval.code));
+ WRITE_UINT32(&init, (yyvsp[(3) - (11)].code) - (yyvsp[(1) - (11)].code));
+ WRITE_UINT32(&finish, (yyvsp[(7) - (11)].code) - (yyvsp[(1) - (11)].code));
+ WRITE_UINT32(&body, (yyvsp[(9) - (11)].code) - (yyvsp[(1) - (11)].code));
+ WRITE_UINT32(&end, (yyvsp[(10) - (11)].code) - (yyvsp[(1) - (11)].code));
WRITE_UINT32(&inc, (uint32)-1);
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval.code) + 1] = init; /* initial count value */
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval.code) + 2] = finish;/* final count value */
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval.code) + 3] = body; /* body of loop */
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval.code) + 4] = inc; /* increment */
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval.code) + 5] = end; /* end, if cond fails */
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (11)].code) + 1] = init; /* initial count value */
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (11)].code) + 2] = finish;/* final count value */
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (11)].code) + 3] = body; /* body of loop */
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (11)].code) + 4] = inc; /* increment */
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (11)].code) + 5] = end; /* end, if cond fails */
- checkEnd((((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s), "repeat", true); }
-#line 2389 "engines/director/lingo/lingo-gr.cpp"
+ checkEnd((yyvsp[(11) - (11)].s), "repeat", true); ;}
break;
case 26:
-#line 238 "engines/director/lingo/lingo-gr.y"
+#line 237 "engines/director/lingo/lingo-gr.y"
{
inst end = 0;
- WRITE_UINT32(&end, (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.code) - (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.code));
+ WRITE_UINT32(&end, (yyvsp[(3) - (3)].code) - (yyvsp[(1) - (3)].code));
g_lingo->code1(STOP);
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.code) + 1] = end; }
-#line 2399 "engines/director/lingo/lingo-gr.cpp"
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (3)].code) + 1] = end; ;}
break;
case 27:
-#line 243 "engines/director/lingo/lingo-gr.y"
+#line 242 "engines/director/lingo/lingo-gr.y"
{
warning("STUB: TELL is not implemented");
- checkEnd((((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s), "tell", true); }
-#line 2407 "engines/director/lingo/lingo-gr.cpp"
+ checkEnd((yyvsp[(6) - (6)].s), "tell", true); ;}
break;
case 28:
-#line 246 "engines/director/lingo/lingo-gr.y"
+#line 245 "engines/director/lingo/lingo-gr.y"
{
warning("STUB: TELL is not implemented");
- }
-#line 2415 "engines/director/lingo/lingo-gr.cpp"
+ ;}
break;
case 29:
-#line 251 "engines/director/lingo/lingo-gr.y"
+#line 250 "engines/director/lingo/lingo-gr.y"
{
inst then = 0, else1 = 0, end = 0;
- WRITE_UINT32(&then, (((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval.code) - (((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval.code));
- WRITE_UINT32(&else1, (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.code) - (((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval.code));
- WRITE_UINT32(&end, (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.code) - (((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval.code));
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval.code) + 1] = then; /* thenpart */
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval.code) + 2] = else1; /* elsepart */
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval.code) + 3] = end; /* end, if cond fails */
+ WRITE_UINT32(&then, (yyvsp[(4) - (10)].code) - (yyvsp[(1) - (10)].code));
+ WRITE_UINT32(&else1, (yyvsp[(6) - (10)].code) - (yyvsp[(1) - (10)].code));
+ WRITE_UINT32(&end, (yyvsp[(10) - (10)].code) - (yyvsp[(1) - (10)].code));
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (10)].code) + 1] = then; /* thenpart */
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (10)].code) + 2] = else1; /* elsepart */
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (10)].code) + 3] = end; /* end, if cond fails */
- g_lingo->processIf(0, (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.code) - (((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval.code)); }
-#line 2430 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->processIf(0, (yyvsp[(10) - (10)].code) - (yyvsp[(1) - (10)].code)); ;}
break;
case 30:
-#line 261 "engines/director/lingo/lingo-gr.y"
+#line 260 "engines/director/lingo/lingo-gr.y"
{
inst then = 0, else1 = 0, end = 0;
- WRITE_UINT32(&then, (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.code) - (((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.code));
+ WRITE_UINT32(&then, (yyvsp[(4) - (6)].code) - (yyvsp[(1) - (6)].code));
WRITE_UINT32(&else1, 0);
- WRITE_UINT32(&end, (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.code) - (((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.code));
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.code) + 1] = then; /* thenpart */
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.code) + 2] = else1; /* elsepart */
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.code) + 3] = end; /* end, if cond fails */
+ WRITE_UINT32(&end, (yyvsp[(6) - (6)].code) - (yyvsp[(1) - (6)].code));
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (6)].code) + 1] = then; /* thenpart */
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (6)].code) + 2] = else1; /* elsepart */
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (6)].code) + 3] = end; /* end, if cond fails */
- g_lingo->processIf(0, 0); }
-#line 2445 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->processIf(0, 0); ;}
break;
case 31:
-#line 271 "engines/director/lingo/lingo-gr.y"
+#line 270 "engines/director/lingo/lingo-gr.y"
{
inst then = 0, else1 = 0, end = 0;
- WRITE_UINT32(&then, (((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.code) - (((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval.code));
- WRITE_UINT32(&else1, (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.code) - (((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval.code));
- WRITE_UINT32(&end, (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.code) - (((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval.code));
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval.code) + 1] = then; /* thenpart */
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval.code) + 2] = else1; /* elsepart */
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval.code) + 3] = end; /* end, if cond fails */
+ WRITE_UINT32(&then, (yyvsp[(4) - (9)].code) - (yyvsp[(1) - (9)].code));
+ WRITE_UINT32(&else1, (yyvsp[(7) - (9)].code) - (yyvsp[(1) - (9)].code));
+ WRITE_UINT32(&end, (yyvsp[(9) - (9)].code) - (yyvsp[(1) - (9)].code));
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (9)].code) + 1] = then; /* thenpart */
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (9)].code) + 2] = else1; /* elsepart */
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (9)].code) + 3] = end; /* end, if cond fails */
- g_lingo->processIf(0, 0); }
-#line 2460 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->processIf(0, 0); ;}
break;
case 32:
-#line 281 "engines/director/lingo/lingo-gr.y"
+#line 280 "engines/director/lingo/lingo-gr.y"
{
inst then = 0, end = 0;
- WRITE_UINT32(&then, (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.code) - (((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.code));
- WRITE_UINT32(&end, (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.code) - (((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.code));
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.code) + 1] = then; /* thenpart */
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.code) + 3] = end; /* end, if cond fails */
+ WRITE_UINT32(&then, (yyvsp[(4) - (6)].code) - (yyvsp[(1) - (6)].code));
+ WRITE_UINT32(&end, (yyvsp[(5) - (6)].code) - (yyvsp[(1) - (6)].code));
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (6)].code) + 1] = then; /* thenpart */
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (6)].code) + 3] = end; /* end, if cond fails */
- checkEnd((((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s), "if", true);
+ checkEnd((yyvsp[(6) - (6)].s), "if", true);
- g_lingo->processIf(0, 0); }
-#line 2475 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->processIf(0, 0); ;}
break;
case 35:
-#line 297 "engines/director/lingo/lingo-gr.y"
+#line 296 "engines/director/lingo/lingo-gr.y"
{
inst then = 0;
- WRITE_UINT32(&then, (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.code) - (((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.code));
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.code) + 1] = then; /* thenpart */
+ WRITE_UINT32(&then, (yyvsp[(4) - (6)].code) - (yyvsp[(1) - (6)].code));
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (6)].code) + 1] = then; /* thenpart */
- g_lingo->codeLabel((((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.code)); }
-#line 2486 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->codeLabel((yyvsp[(1) - (6)].code)); ;}
break;
case 36:
-#line 303 "engines/director/lingo/lingo-gr.y"
+#line 302 "engines/director/lingo/lingo-gr.y"
{
inst then = 0;
- WRITE_UINT32(&then, (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.code) - (((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.code));
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.code) + 1] = then; /* thenpart */
+ WRITE_UINT32(&then, (yyvsp[(5) - (6)].code) - (yyvsp[(1) - (6)].code));
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (6)].code) + 1] = then; /* thenpart */
- g_lingo->codeLabel((((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.code)); }
-#line 2497 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->codeLabel((yyvsp[(1) - (6)].code)); ;}
break;
case 38:
-#line 312 "engines/director/lingo/lingo-gr.y"
+#line 311 "engines/director/lingo/lingo-gr.y"
{
inst then = 0;
- WRITE_UINT32(&then, (((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.code) - (((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval.code));
- (*g_lingo->_currentScript)[(((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval.code) + 1] = then; /* thenpart */
+ WRITE_UINT32(&then, (yyvsp[(4) - (9)].code) - (yyvsp[(1) - (9)].code));
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (9)].code) + 1] = then; /* thenpart */
- g_lingo->codeLabel((((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval.code)); }
-#line 2508 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->codeLabel((yyvsp[(1) - (9)].code)); ;}
break;
case 39:
-#line 318 "engines/director/lingo/lingo-gr.y"
+#line 317 "engines/director/lingo/lingo-gr.y"
{
- g_lingo->codeLabel((((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.code));
+ g_lingo->codeLabel((yyvsp[(2) - (5)].code));
- checkEnd((((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s), "if", true); }
-#line 2517 "engines/director/lingo/lingo-gr.cpp"
+ checkEnd((yyvsp[(5) - (5)].s), "if", true); ;}
break;
case 40:
-#line 322 "engines/director/lingo/lingo-gr.y"
+#line 321 "engines/director/lingo/lingo-gr.y"
{
- g_lingo->codeLabel((((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.code)); }
-#line 2524 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->codeLabel((yyvsp[(2) - (4)].code)); ;}
break;
case 41:
-#line 325 "engines/director/lingo/lingo-gr.y"
+#line 324 "engines/director/lingo/lingo-gr.y"
{
- g_lingo->codeLabel((((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.code));
+ g_lingo->codeLabel((yyvsp[(2) - (5)].code));
- checkEnd((((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s), "if", true); }
-#line 2533 "engines/director/lingo/lingo-gr.cpp"
+ checkEnd((yyvsp[(5) - (5)].s), "if", true); ;}
break;
case 42:
-#line 329 "engines/director/lingo/lingo-gr.y"
+#line 328 "engines/director/lingo/lingo-gr.y"
{
- g_lingo->codeLabel((((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.code)); }
-#line 2540 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->codeLabel((yyvsp[(2) - (4)].code)); ;}
break;
case 43:
-#line 333 "engines/director/lingo/lingo-gr.y"
- { ((*yyvalp).code) = g_lingo->code3(g_lingo->c_repeatwhilecode, STOP, STOP); }
-#line 2546 "engines/director/lingo/lingo-gr.cpp"
+#line 332 "engines/director/lingo/lingo-gr.y"
+ { (yyval.code) = g_lingo->code3(g_lingo->c_repeatwhilecode, STOP, STOP); ;}
break;
case 44:
-#line 336 "engines/director/lingo/lingo-gr.y"
+#line 335 "engines/director/lingo/lingo-gr.y"
{
- ((*yyvalp).code) = g_lingo->code3(g_lingo->c_repeatwithcode, STOP, STOP);
+ (yyval.code) = g_lingo->code3(g_lingo->c_repeatwithcode, STOP, STOP);
g_lingo->code3(STOP, STOP, STOP);
- g_lingo->codeString((((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s)->c_str());
- delete (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s); }
-#line 2556 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->codeString((yyvsp[(3) - (3)].s)->c_str());
+ delete (yyvsp[(3) - (3)].s); ;}
break;
case 45:
-#line 343 "engines/director/lingo/lingo-gr.y"
+#line 342 "engines/director/lingo/lingo-gr.y"
{
- ((*yyvalp).code) = g_lingo->code1(g_lingo->c_ifcode);
+ (yyval.code) = g_lingo->code1(g_lingo->c_ifcode);
g_lingo->code3(STOP, STOP, STOP);
g_lingo->code1(0); // Do not skip end
- g_lingo->codeLabel(0); }
-#line 2566 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->codeLabel(0); ;}
break;
case 46:
-#line 350 "engines/director/lingo/lingo-gr.y"
+#line 349 "engines/director/lingo/lingo-gr.y"
{
inst skipEnd;
WRITE_UINT32(&skipEnd, 1); // We have to skip end to avoid multiple executions
- ((*yyvalp).code) = g_lingo->code1(g_lingo->c_ifcode);
+ (yyval.code) = g_lingo->code1(g_lingo->c_ifcode);
g_lingo->code3(STOP, STOP, STOP);
- g_lingo->code1(skipEnd); }
-#line 2577 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->code1(skipEnd); ;}
break;
case 47:
-#line 358 "engines/director/lingo/lingo-gr.y"
- { ((*yyvalp).code) = g_lingo->_currentScript->size(); }
-#line 2583 "engines/director/lingo/lingo-gr.cpp"
+#line 357 "engines/director/lingo/lingo-gr.y"
+ { (yyval.code) = g_lingo->_currentScript->size(); ;}
break;
case 48:
-#line 361 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(STOP); ((*yyvalp).code) = g_lingo->_currentScript->size(); }
-#line 2589 "engines/director/lingo/lingo-gr.cpp"
+#line 360 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(STOP); (yyval.code) = g_lingo->_currentScript->size(); ;}
break;
case 49:
-#line 364 "engines/director/lingo/lingo-gr.y"
- { ((*yyvalp).code) = g_lingo->_currentScript->size(); }
-#line 2595 "engines/director/lingo/lingo-gr.cpp"
+#line 363 "engines/director/lingo/lingo-gr.y"
+ { (yyval.code) = g_lingo->_currentScript->size(); ;}
break;
case 52:
-#line 369 "engines/director/lingo/lingo-gr.y"
+#line 368 "engines/director/lingo/lingo-gr.y"
{
- ((*yyvalp).code) = g_lingo->code1(g_lingo->c_whencode);
+ (yyval.code) = g_lingo->code1(g_lingo->c_whencode);
g_lingo->code1(STOP);
- g_lingo->codeString((((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.s)->c_str());
- delete (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.s); }
-#line 2605 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->codeString((yyvsp[(2) - (3)].s)->c_str());
+ delete (yyvsp[(2) - (3)].s); ;}
break;
case 53:
-#line 375 "engines/director/lingo/lingo-gr.y"
+#line 374 "engines/director/lingo/lingo-gr.y"
{
- ((*yyvalp).code) = g_lingo->code1(g_lingo->c_tellcode);
- g_lingo->code1(STOP); }
-#line 2613 "engines/director/lingo/lingo-gr.cpp"
+ (yyval.code) = g_lingo->code1(g_lingo->c_tellcode);
+ g_lingo->code1(STOP); ;}
break;
case 54:
-#line 379 "engines/director/lingo/lingo-gr.y"
+#line 378 "engines/director/lingo/lingo-gr.y"
{
- ((*yyvalp).code) = g_lingo->code1(g_lingo->c_intpush);
- g_lingo->codeInt((((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.i)); }
-#line 2621 "engines/director/lingo/lingo-gr.cpp"
+ (yyval.code) = g_lingo->code1(g_lingo->c_intpush);
+ g_lingo->codeInt((yyvsp[(1) - (1)].i)); ;}
break;
case 55:
-#line 382 "engines/director/lingo/lingo-gr.y"
+#line 381 "engines/director/lingo/lingo-gr.y"
{
- ((*yyvalp).code) = g_lingo->code1(g_lingo->c_floatpush);
- g_lingo->codeFloat((((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.f)); }
-#line 2629 "engines/director/lingo/lingo-gr.cpp"
+ (yyval.code) = g_lingo->code1(g_lingo->c_floatpush);
+ g_lingo->codeFloat((yyvsp[(1) - (1)].f)); ;}
break;
case 56:
-#line 385 "engines/director/lingo/lingo-gr.y"
+#line 384 "engines/director/lingo/lingo-gr.y"
{ // D3
- ((*yyvalp).code) = g_lingo->code1(g_lingo->c_symbolpush);
- g_lingo->codeString((((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s)->c_str()); }
-#line 2637 "engines/director/lingo/lingo-gr.cpp"
+ (yyval.code) = g_lingo->code1(g_lingo->c_symbolpush);
+ g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); ;}
break;
case 57:
-#line 388 "engines/director/lingo/lingo-gr.y"
+#line 387 "engines/director/lingo/lingo-gr.y"
{
- ((*yyvalp).code) = g_lingo->code1(g_lingo->c_stringpush);
- g_lingo->codeString((((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s)->c_str()); }
-#line 2645 "engines/director/lingo/lingo-gr.cpp"
+ (yyval.code) = g_lingo->code1(g_lingo->c_stringpush);
+ g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); ;}
break;
case 58:
-#line 391 "engines/director/lingo/lingo-gr.y"
+#line 390 "engines/director/lingo/lingo-gr.y"
{
- ((*yyvalp).code) = g_lingo->code1(g_lingo->c_eval);
- g_lingo->codeString((((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s)->c_str());
- delete (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s); }
-#line 2654 "engines/director/lingo/lingo-gr.cpp"
+ (yyval.code) = g_lingo->code1(g_lingo->c_eval);
+ g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str());
+ delete (yyvsp[(1) - (1)].s); ;}
break;
case 59:
-#line 397 "engines/director/lingo/lingo-gr.y"
- { ((*yyvalp).code) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.code); }
-#line 2660 "engines/director/lingo/lingo-gr.cpp"
+#line 396 "engines/director/lingo/lingo-gr.y"
+ { (yyval.code) = (yyvsp[(1) - (1)].code); ;}
break;
case 61:
-#line 399 "engines/director/lingo/lingo-gr.y"
+#line 398 "engines/director/lingo/lingo-gr.y"
{
- g_lingo->codeFunc((((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s), 0);
- delete (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s); }
-#line 2668 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->codeFunc((yyvsp[(1) - (1)].s), 0);
+ delete (yyvsp[(1) - (1)].s); ;}
break;
case 62:
-#line 402 "engines/director/lingo/lingo-gr.y"
+#line 401 "engines/director/lingo/lingo-gr.y"
{
- g_lingo->codeFunc((((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.s), 1);
- delete (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.s); }
-#line 2676 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1);
+ delete (yyvsp[(1) - (2)].s); ;}
break;
case 63:
-#line 405 "engines/director/lingo/lingo-gr.y"
- { g_lingo->codeFunc((((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.s), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.narg)); }
-#line 2682 "engines/director/lingo/lingo-gr.cpp"
+#line 404 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->codeFunc((yyvsp[(1) - (2)].s), (yyvsp[(2) - (2)].narg)); ;}
break;
case 64:
-#line 406 "engines/director/lingo/lingo-gr.y"
+#line 405 "engines/director/lingo/lingo-gr.y"
{
- ((*yyvalp).code) = g_lingo->codeFunc((((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.s), (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.narg));
- delete (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.s); }
-#line 2690 "engines/director/lingo/lingo-gr.cpp"
+ (yyval.code) = g_lingo->codeFunc((yyvsp[(1) - (4)].s), (yyvsp[(3) - (4)].narg));
+ delete (yyvsp[(1) - (4)].s); ;}
break;
case 65:
-#line 409 "engines/director/lingo/lingo-gr.y"
+#line 408 "engines/director/lingo/lingo-gr.y"
{
- ((*yyvalp).code) = g_lingo->code1(g_lingo->c_intpush);
+ (yyval.code) = g_lingo->code1(g_lingo->c_intpush);
g_lingo->codeInt(0); // Put dummy id
g_lingo->code1(g_lingo->c_theentitypush);
inst e = 0, f = 0;
- WRITE_UINT32(&e, (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.e)[0]);
- WRITE_UINT32(&f, (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.e)[1]);
- g_lingo->code2(e, f); }
-#line 2703 "engines/director/lingo/lingo-gr.cpp"
+ WRITE_UINT32(&e, (yyvsp[(1) - (1)].e)[0]);
+ WRITE_UINT32(&f, (yyvsp[(1) - (1)].e)[1]);
+ g_lingo->code2(e, f); ;}
break;
case 66:
-#line 417 "engines/director/lingo/lingo-gr.y"
+#line 416 "engines/director/lingo/lingo-gr.y"
{
- ((*yyvalp).code) = g_lingo->code1(g_lingo->c_theentitypush);
+ (yyval.code) = g_lingo->code1(g_lingo->c_theentitypush);
inst e = 0, f = 0;
- WRITE_UINT32(&e, (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.e)[0]);
- WRITE_UINT32(&f, (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.e)[1]);
- g_lingo->code2(e, f); }
-#line 2714 "engines/director/lingo/lingo-gr.cpp"
+ WRITE_UINT32(&e, (yyvsp[(1) - (2)].e)[0]);
+ WRITE_UINT32(&f, (yyvsp[(1) - (2)].e)[1]);
+ g_lingo->code2(e, f); ;}
break;
case 68:
-#line 424 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_add); }
-#line 2720 "engines/director/lingo/lingo-gr.cpp"
+#line 423 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_add); ;}
break;
case 69:
-#line 425 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_sub); }
-#line 2726 "engines/director/lingo/lingo-gr.cpp"
+#line 424 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_sub); ;}
break;
case 70:
-#line 426 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_mul); }
-#line 2732 "engines/director/lingo/lingo-gr.cpp"
+#line 425 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_mul); ;}
break;
case 71:
-#line 427 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_div); }
-#line 2738 "engines/director/lingo/lingo-gr.cpp"
+#line 426 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_div); ;}
break;
case 72:
-#line 428 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_mod); }
-#line 2744 "engines/director/lingo/lingo-gr.cpp"
+#line 427 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_mod); ;}
break;
case 73:
-#line 429 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_gt); }
-#line 2750 "engines/director/lingo/lingo-gr.cpp"
+#line 428 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_gt); ;}
break;
case 74:
-#line 430 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_lt); }
-#line 2756 "engines/director/lingo/lingo-gr.cpp"
+#line 429 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_lt); ;}
break;
case 75:
-#line 431 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_eq); }
-#line 2762 "engines/director/lingo/lingo-gr.cpp"
+#line 430 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_eq); ;}
break;
case 76:
-#line 432 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_neq); }
-#line 2768 "engines/director/lingo/lingo-gr.cpp"
+#line 431 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_neq); ;}
break;
case 77:
-#line 433 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_ge); }
-#line 2774 "engines/director/lingo/lingo-gr.cpp"
+#line 432 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_ge); ;}
break;
case 78:
-#line 434 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_le); }
-#line 2780 "engines/director/lingo/lingo-gr.cpp"
+#line 433 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_le); ;}
break;
case 79:
-#line 435 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_and); }
-#line 2786 "engines/director/lingo/lingo-gr.cpp"
+#line 434 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_and); ;}
break;
case 80:
-#line 436 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_or); }
-#line 2792 "engines/director/lingo/lingo-gr.cpp"
+#line 435 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_or); ;}
break;
case 81:
-#line 437 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_not); }
-#line 2798 "engines/director/lingo/lingo-gr.cpp"
+#line 436 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_not); ;}
break;
case 82:
-#line 438 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_ampersand); }
-#line 2804 "engines/director/lingo/lingo-gr.cpp"
+#line 437 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_ampersand); ;}
break;
case 83:
-#line 439 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_concat); }
-#line 2810 "engines/director/lingo/lingo-gr.cpp"
+#line 438 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_concat); ;}
break;
case 84:
-#line 440 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_contains); }
-#line 2816 "engines/director/lingo/lingo-gr.cpp"
+#line 439 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_contains); ;}
break;
case 85:
-#line 441 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_starts); }
-#line 2822 "engines/director/lingo/lingo-gr.cpp"
+#line 440 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_starts); ;}
break;
case 86:
-#line 442 "engines/director/lingo/lingo-gr.y"
- { ((*yyvalp).code) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.code); }
-#line 2828 "engines/director/lingo/lingo-gr.cpp"
+#line 441 "engines/director/lingo/lingo-gr.y"
+ { (yyval.code) = (yyvsp[(2) - (2)].code); ;}
break;
case 87:
-#line 443 "engines/director/lingo/lingo-gr.y"
- { ((*yyvalp).code) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.code); g_lingo->code1(g_lingo->c_negate); }
-#line 2834 "engines/director/lingo/lingo-gr.cpp"
+#line 442 "engines/director/lingo/lingo-gr.y"
+ { (yyval.code) = (yyvsp[(2) - (2)].code); g_lingo->code1(g_lingo->c_negate); ;}
break;
case 88:
-#line 444 "engines/director/lingo/lingo-gr.y"
- { ((*yyvalp).code) = (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.code); }
-#line 2840 "engines/director/lingo/lingo-gr.cpp"
+#line 443 "engines/director/lingo/lingo-gr.y"
+ { (yyval.code) = (yyvsp[(2) - (3)].code); ;}
break;
case 89:
-#line 445 "engines/director/lingo/lingo-gr.y"
- { ((*yyvalp).code) = g_lingo->code1(g_lingo->c_arraypush); g_lingo->codeArray((((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.narg)); }
-#line 2846 "engines/director/lingo/lingo-gr.cpp"
+#line 444 "engines/director/lingo/lingo-gr.y"
+ { (yyval.code) = g_lingo->code1(g_lingo->c_arraypush); g_lingo->codeArray((yyvsp[(2) - (3)].narg)); ;}
break;
case 90:
-#line 446 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_intersects); }
-#line 2852 "engines/director/lingo/lingo-gr.cpp"
+#line 445 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_intersects); ;}
break;
case 91:
-#line 447 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_within); }
-#line 2858 "engines/director/lingo/lingo-gr.cpp"
+#line 446 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_within); ;}
break;
case 92:
-#line 448 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_charOf); }
-#line 2864 "engines/director/lingo/lingo-gr.cpp"
+#line 447 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_charOf); ;}
break;
case 93:
-#line 449 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_charToOf); }
-#line 2870 "engines/director/lingo/lingo-gr.cpp"
+#line 448 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_charToOf); ;}
break;
case 94:
-#line 450 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_itemOf); }
-#line 2876 "engines/director/lingo/lingo-gr.cpp"
+#line 449 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_itemOf); ;}
break;
case 95:
-#line 451 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_itemToOf); }
-#line 2882 "engines/director/lingo/lingo-gr.cpp"
+#line 450 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_itemToOf); ;}
break;
case 96:
-#line 452 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_lineOf); }
-#line 2888 "engines/director/lingo/lingo-gr.cpp"
+#line 451 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_lineOf); ;}
break;
case 97:
-#line 453 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_lineToOf); }
-#line 2894 "engines/director/lingo/lingo-gr.cpp"
+#line 452 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_lineToOf); ;}
break;
case 98:
-#line 454 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_wordOf); }
-#line 2900 "engines/director/lingo/lingo-gr.cpp"
+#line 453 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_wordOf); ;}
break;
case 99:
-#line 455 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_wordToOf); }
-#line 2906 "engines/director/lingo/lingo-gr.cpp"
+#line 454 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_wordToOf); ;}
break;
case 100:
-#line 456 "engines/director/lingo/lingo-gr.y"
- { g_lingo->codeMe(nullptr, 0); }
-#line 2912 "engines/director/lingo/lingo-gr.cpp"
+#line 455 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->codeMe(nullptr, 0); ;}
break;
case 101:
-#line 459 "engines/director/lingo/lingo-gr.y"
+#line 458 "engines/director/lingo/lingo-gr.y"
{
- g_lingo->codeFunc((((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.s), 1);
- delete (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.s); }
-#line 2920 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1);
+ delete (yyvsp[(1) - (2)].s); ;}
break;
case 102:
-#line 464 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_printtop); }
-#line 2926 "engines/director/lingo/lingo-gr.cpp"
+#line 463 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_printtop); ;}
break;
case 105:
-#line 467 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_exitRepeat); }
-#line 2932 "engines/director/lingo/lingo-gr.cpp"
+#line 466 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_exitRepeat); ;}
break;
case 106:
-#line 468 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_procret); }
-#line 2938 "engines/director/lingo/lingo-gr.cpp"
+#line 467 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_procret); ;}
break;
case 110:
-#line 472 "engines/director/lingo/lingo-gr.y"
+#line 471 "engines/director/lingo/lingo-gr.y"
{
- g_lingo->codeFunc((((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s), 0);
- delete (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s); }
-#line 2946 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->codeFunc((yyvsp[(1) - (1)].s), 0);
+ delete (yyvsp[(1) - (1)].s); ;}
break;
case 111:
-#line 475 "engines/director/lingo/lingo-gr.y"
+#line 474 "engines/director/lingo/lingo-gr.y"
{
- g_lingo->codeFunc((((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.s), 1);
- delete (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.s); }
-#line 2954 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1);
+ delete (yyvsp[(1) - (2)].s); ;}
break;
case 112:
-#line 478 "engines/director/lingo/lingo-gr.y"
+#line 477 "engines/director/lingo/lingo-gr.y"
{
- g_lingo->codeFunc((((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.s), 1);
- delete (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.s); }
-#line 2962 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1);
+ delete (yyvsp[(1) - (2)].s); ;}
break;
case 113:
-#line 481 "engines/director/lingo/lingo-gr.y"
+#line 480 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_voidpush);
- g_lingo->codeFunc((((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s), 1);
- delete (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s); }
-#line 2971 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->codeFunc((yyvsp[(1) - (1)].s), 1);
+ delete (yyvsp[(1) - (1)].s); ;}
break;
case 114:
-#line 485 "engines/director/lingo/lingo-gr.y"
- { g_lingo->codeFunc((((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.s), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.narg)); }
-#line 2977 "engines/director/lingo/lingo-gr.cpp"
+#line 484 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->codeFunc((yyvsp[(1) - (2)].s), (yyvsp[(2) - (2)].narg)); ;}
break;
case 115:
-#line 486 "engines/director/lingo/lingo-gr.y"
- { g_lingo->codeMe((((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.s), 0); }
-#line 2983 "engines/director/lingo/lingo-gr.cpp"
+#line 485 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->codeMe((yyvsp[(3) - (4)].s), 0); ;}
break;
case 116:
-#line 487 "engines/director/lingo/lingo-gr.y"
- { g_lingo->codeMe((((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.s), (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.narg)); }
-#line 2989 "engines/director/lingo/lingo-gr.cpp"
+#line 486 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->codeMe((yyvsp[(3) - (6)].s), (yyvsp[(5) - (6)].narg)); ;}
break;
case 117:
-#line 488 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_open); }
-#line 2995 "engines/director/lingo/lingo-gr.cpp"
+#line 487 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_open); ;}
break;
case 118:
-#line 489 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code2(g_lingo->c_voidpush, g_lingo->c_open); }
-#line 3001 "engines/director/lingo/lingo-gr.cpp"
+#line 488 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code2(g_lingo->c_voidpush, g_lingo->c_open); ;}
break;
case 119:
-#line 490 "engines/director/lingo/lingo-gr.y"
- { Common::String s(*(((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.s)); s += '-'; s += *(((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.s); g_lingo->codeFunc(&s, (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.narg)); }
-#line 3007 "engines/director/lingo/lingo-gr.cpp"
+#line 489 "engines/director/lingo/lingo-gr.y"
+ { Common::String s(*(yyvsp[(1) - (3)].s)); s += '-'; s += *(yyvsp[(2) - (3)].s); g_lingo->codeFunc(&s, (yyvsp[(3) - (3)].narg)); ;}
break;
case 120:
-#line 493 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_global); g_lingo->codeString((((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s)->c_str()); delete (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s); }
-#line 3013 "engines/director/lingo/lingo-gr.cpp"
+#line 492 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_global); g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); delete (yyvsp[(1) - (1)].s); ;}
break;
case 121:
-#line 494 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_global); g_lingo->codeString((((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s)->c_str()); delete (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s); }
-#line 3019 "engines/director/lingo/lingo-gr.cpp"
+#line 493 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_global); g_lingo->codeString((yyvsp[(3) - (3)].s)->c_str()); delete (yyvsp[(3) - (3)].s); ;}
break;
case 122:
-#line 497 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_property); g_lingo->codeString((((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s)->c_str()); delete (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s); }
-#line 3025 "engines/director/lingo/lingo-gr.cpp"
+#line 496 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_property); g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); delete (yyvsp[(1) - (1)].s); ;}
break;
case 123:
-#line 498 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_property); g_lingo->codeString((((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s)->c_str()); delete (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s); }
-#line 3031 "engines/director/lingo/lingo-gr.cpp"
+#line 497 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_property); g_lingo->codeString((yyvsp[(3) - (3)].s)->c_str()); delete (yyvsp[(3) - (3)].s); ;}
break;
case 124:
-#line 501 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_instance); g_lingo->codeString((((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s)->c_str()); delete (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s); }
-#line 3037 "engines/director/lingo/lingo-gr.cpp"
+#line 500 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_instance); g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); delete (yyvsp[(1) - (1)].s); ;}
break;
case 125:
-#line 502 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_instance); g_lingo->codeString((((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s)->c_str()); delete (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s); }
-#line 3043 "engines/director/lingo/lingo-gr.cpp"
+#line 501 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_instance); g_lingo->codeString((yyvsp[(3) - (3)].s)->c_str()); delete (yyvsp[(3) - (3)].s); ;}
break;
case 126:
-#line 513 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_gotoloop); }
-#line 3049 "engines/director/lingo/lingo-gr.cpp"
+#line 512 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_gotoloop); ;}
break;
case 127:
-#line 514 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_gotonext); }
-#line 3055 "engines/director/lingo/lingo-gr.cpp"
+#line 513 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_gotonext); ;}
break;
case 128:
-#line 515 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_gotoprevious); }
-#line 3061 "engines/director/lingo/lingo-gr.cpp"
+#line 514 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_gotoprevious); ;}
break;
case 129:
-#line 516 "engines/director/lingo/lingo-gr.y"
+#line 515 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_intpush);
g_lingo->codeInt(1);
- g_lingo->code1(g_lingo->c_goto); }
-#line 3070 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->code1(g_lingo->c_goto); ;}
break;
case 130:
-#line 520 "engines/director/lingo/lingo-gr.y"
+#line 519 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_intpush);
g_lingo->codeInt(3);
- g_lingo->code1(g_lingo->c_goto); }
-#line 3079 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->code1(g_lingo->c_goto); ;}
break;
case 131:
-#line 524 "engines/director/lingo/lingo-gr.y"
+#line 523 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_intpush);
g_lingo->codeInt(2);
- g_lingo->code1(g_lingo->c_goto); }
-#line 3088 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->code1(g_lingo->c_goto); ;}
break;
case 136:
-#line 538 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(g_lingo->c_playdone); }
-#line 3094 "engines/director/lingo/lingo-gr.cpp"
+#line 537 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(g_lingo->c_playdone); ;}
break;
case 137:
-#line 539 "engines/director/lingo/lingo-gr.y"
+#line 538 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_intpush);
g_lingo->codeInt(1);
- g_lingo->code1(g_lingo->c_play); }
-#line 3103 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->code1(g_lingo->c_play); ;}
break;
case 138:
-#line 543 "engines/director/lingo/lingo-gr.y"
+#line 542 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_intpush);
g_lingo->codeInt(3);
- g_lingo->code1(g_lingo->c_play); }
-#line 3112 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->code1(g_lingo->c_play); ;}
break;
case 139:
-#line 547 "engines/director/lingo/lingo-gr.y"
+#line 546 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_intpush);
g_lingo->codeInt(2);
- g_lingo->code1(g_lingo->c_play); }
-#line 3121 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->code1(g_lingo->c_play); ;}
break;
case 140:
-#line 551 "engines/director/lingo/lingo-gr.y"
- { g_lingo->codeSetImmediate(true); }
-#line 3127 "engines/director/lingo/lingo-gr.cpp"
+#line 550 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->codeSetImmediate(true); ;}
break;
case 141:
-#line 551 "engines/director/lingo/lingo-gr.y"
+#line 550 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeSetImmediate(false);
- g_lingo->codeFunc((((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.s), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.narg)); }
-#line 3135 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->codeFunc((yyvsp[(1) - (3)].s), (yyvsp[(3) - (3)].narg)); ;}
break;
case 142:
-#line 581 "engines/director/lingo/lingo-gr.y"
- { g_lingo->_indef = true; g_lingo->_currentFactory.clear(); }
-#line 3141 "engines/director/lingo/lingo-gr.cpp"
+#line 580 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->_indef = true; g_lingo->_currentFactory.clear(); ;}
break;
case 143:
-#line 582 "engines/director/lingo/lingo-gr.y"
+#line 581 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_procret);
- g_lingo->define(*(((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval.s), (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.code), (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.narg));
- g_lingo->_indef = false; }
-#line 3150 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->define(*(yyvsp[(2) - (8)].s), (yyvsp[(4) - (8)].code), (yyvsp[(5) - (8)].narg));
+ g_lingo->_indef = false; ;}
break;
case 144:
-#line 586 "engines/director/lingo/lingo-gr.y"
- { g_lingo->codeFactory(*(((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s)); }
-#line 3156 "engines/director/lingo/lingo-gr.cpp"
+#line 585 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->codeFactory(*(yyvsp[(2) - (2)].s)); ;}
break;
case 145:
-#line 587 "engines/director/lingo/lingo-gr.y"
- { g_lingo->_indef = true; }
-#line 3162 "engines/director/lingo/lingo-gr.cpp"
+#line 586 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->_indef = true; ;}
break;
case 146:
-#line 588 "engines/director/lingo/lingo-gr.y"
+#line 587 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_procret);
- g_lingo->define(*(((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval.s), (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.code), (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.narg) + 1, &g_lingo->_currentFactory);
- g_lingo->_indef = false; }
-#line 3171 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->define(*(yyvsp[(2) - (8)].s), (yyvsp[(4) - (8)].code), (yyvsp[(5) - (8)].narg) + 1, &g_lingo->_currentFactory);
+ g_lingo->_indef = false; ;}
break;
case 147:
-#line 592 "engines/director/lingo/lingo-gr.y"
+#line 591 "engines/director/lingo/lingo-gr.y"
{ // D3
g_lingo->code1(g_lingo->c_procret);
- g_lingo->define(*(((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval.s), (((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval.code), (((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.narg));
+ g_lingo->define(*(yyvsp[(1) - (8)].s), (yyvsp[(2) - (8)].code), (yyvsp[(3) - (8)].narg));
g_lingo->_indef = false;
g_lingo->_ignoreMe = false;
- checkEnd((((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.s), (((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval.s)->c_str(), false); }
-#line 3183 "engines/director/lingo/lingo-gr.cpp"
+ checkEnd((yyvsp[(7) - (8)].s), (yyvsp[(1) - (8)].s)->c_str(), false); ;}
break;
case 148:
-#line 599 "engines/director/lingo/lingo-gr.y"
+#line 598 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
g_lingo->code1(g_lingo->c_procret);
- g_lingo->define(*(((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.s), (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.code), (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.narg));
+ g_lingo->define(*(yyvsp[(1) - (6)].s), (yyvsp[(2) - (6)].code), (yyvsp[(3) - (6)].narg));
g_lingo->_indef = false;
- g_lingo->_ignoreMe = false; }
-#line 3193 "engines/director/lingo/lingo-gr.cpp"
+ g_lingo->_ignoreMe = false; ;}
break;
case 149:
-#line 605 "engines/director/lingo/lingo-gr.y"
- { ((*yyvalp).s) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s); g_lingo->_indef = true; g_lingo->_currentFactory.clear(); g_lingo->_ignoreMe = true; }
-#line 3199 "engines/director/lingo/lingo-gr.cpp"
+#line 604 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = (yyvsp[(2) - (2)].s); g_lingo->_indef = true; g_lingo->_currentFactory.clear(); g_lingo->_ignoreMe = true; ;}
break;
case 150:
-#line 607 "engines/director/lingo/lingo-gr.y"
- { ((*yyvalp).narg) = 0; }
-#line 3205 "engines/director/lingo/lingo-gr.cpp"
+#line 606 "engines/director/lingo/lingo-gr.y"
+ { (yyval.narg) = 0; ;}
break;
case 151:
-#line 608 "engines/director/lingo/lingo-gr.y"
- { g_lingo->codeArg((((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s)); ((*yyvalp).narg) = 1; }
-#line 3211 "engines/director/lingo/lingo-gr.cpp"
+#line 607 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->codeArg((yyvsp[(1) - (1)].s)); (yyval.narg) = 1; ;}
break;
case 152:
-#line 609 "engines/director/lingo/lingo-gr.y"
- { g_lingo->codeArg((((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s)); ((*yyvalp).narg) = (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.narg) + 1; }
-#line 3217 "engines/director/lingo/lingo-gr.cpp"
+#line 608 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->codeArg((yyvsp[(3) - (3)].s)); (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}
break;
case 153:
-#line 610 "engines/director/lingo/lingo-gr.y"
- { g_lingo->codeArg((((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.s)); ((*yyvalp).narg) = (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.narg) + 1; }
-#line 3223 "engines/director/lingo/lingo-gr.cpp"
+#line 609 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->codeArg((yyvsp[(4) - (4)].s)); (yyval.narg) = (yyvsp[(1) - (4)].narg) + 1; ;}
break;
case 157:
-#line 618 "engines/director/lingo/lingo-gr.y"
- { g_lingo->codeArgStore(); }
-#line 3229 "engines/director/lingo/lingo-gr.cpp"
+#line 617 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->codeArgStore(); ;}
break;
case 158:
-#line 622 "engines/director/lingo/lingo-gr.y"
+#line 621 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_call);
- g_lingo->codeString((((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.s)->c_str());
+ g_lingo->codeString((yyvsp[(1) - (2)].s)->c_str());
inst numpar = 0;
- WRITE_UINT32(&numpar, (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.narg));
- g_lingo->code1(numpar); }
-#line 3240 "engines/director/lingo/lingo-gr.cpp"
+ WRITE_UINT32(&numpar, (yyvsp[(2) - (2)].narg));
+ g_lingo->code1(numpar); ;}
break;
case 159:
-#line 630 "engines/director/lingo/lingo-gr.y"
- { ((*yyvalp).narg) = 0; }
-#line 3246 "engines/director/lingo/lingo-gr.cpp"
+#line 629 "engines/director/lingo/lingo-gr.y"
+ { (yyval.narg) = 0; ;}
break;
case 160:
-#line 631 "engines/director/lingo/lingo-gr.y"
- { ((*yyvalp).narg) = 1; }
-#line 3252 "engines/director/lingo/lingo-gr.cpp"
+#line 630 "engines/director/lingo/lingo-gr.y"
+ { (yyval.narg) = 1; ;}
break;
case 161:
-#line 632 "engines/director/lingo/lingo-gr.y"
- { ((*yyvalp).narg) = (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.narg) + 1; }
-#line 3258 "engines/director/lingo/lingo-gr.cpp"
+#line 631 "engines/director/lingo/lingo-gr.y"
+ { (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}
break;
case 162:
-#line 635 "engines/director/lingo/lingo-gr.y"
- { ((*yyvalp).narg) = 1; }
-#line 3264 "engines/director/lingo/lingo-gr.cpp"
+#line 634 "engines/director/lingo/lingo-gr.y"
+ { (yyval.narg) = 1; ;}
break;
case 163:
-#line 636 "engines/director/lingo/lingo-gr.y"
- { ((*yyvalp).narg) = (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.narg) + 1; }
-#line 3270 "engines/director/lingo/lingo-gr.cpp"
+#line 635 "engines/director/lingo/lingo-gr.y"
+ { (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}
break;
-#line 3274 "engines/director/lingo/lingo-gr.cpp"
-
- default: break;
- }
-
- return yyok;
-# undef yyerrok
-# undef YYABORT
-# undef YYACCEPT
-# undef YYERROR
-# undef YYBACKUP
-# undef yyclearin
-# undef YYRECOVERING
-}
-
-
-static void
-yyuserMerge (int yyn, YYSTYPE* yy0, YYSTYPE* yy1)
-{
- YYUSE (yy0);
- YYUSE (yy1);
-
- switch (yyn)
- {
-
+/* Line 1267 of yacc.c. */
+#line 3007 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
-}
-
- /* Bison grammar-table manipulation. */
-
-/*-----------------------------------------------.
-| Release the memory associated to this symbol. |
-`-----------------------------------------------*/
-
-static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
-{
- YYUSE (yyvaluep);
- if (!yymsg)
- yymsg = "Deleting";
- YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
- YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
- YYUSE (yytype);
- YY_IGNORE_MAYBE_UNINITIALIZED_END
-}
-
-/** Number of symbols composing the right hand side of rule #RULE. */
-static inline int
-yyrhsLength (yyRuleNum yyrule)
-{
- return yyr2[yyrule];
-}
-
-static void
-yydestroyGLRState (char const *yymsg, yyGLRState *yys)
-{
- if (yys->yyresolved)
- yydestruct (yymsg, yystos[yys->yylrState],
- &yys->yysemantics.yysval);
- else
- {
-#if YYDEBUG
- if (yydebug)
- {
- if (yys->yysemantics.yyfirstVal)
- YYFPRINTF (stderr, "%s unresolved", yymsg);
- else
- YYFPRINTF (stderr, "%s incomplete", yymsg);
- YY_SYMBOL_PRINT ("", yystos[yys->yylrState], YY_NULLPTR, &yys->yyloc);
- }
-#endif
-
- if (yys->yysemantics.yyfirstVal)
- {
- yySemanticOption *yyoption = yys->yysemantics.yyfirstVal;
- yyGLRState *yyrh;
- int yyn;
- for (yyrh = yyoption->yystate, yyn = yyrhsLength (yyoption->yyrule);
- yyn > 0;
- yyrh = yyrh->yypred, yyn -= 1)
- yydestroyGLRState (yymsg, yyrh);
- }
- }
-}
+ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
-/** Left-hand-side symbol for rule #YYRULE. */
-static inline yySymbol
-yylhsNonterm (yyRuleNum yyrule)
-{
- return yyr1[yyrule];
-}
+ YYPOPSTACK (yylen);
+ yylen = 0;
+ YY_STACK_PRINT (yyss, yyssp);
-#define yypact_value_is_default(Yystate) \
- (!!((Yystate) == (-290)))
+ *++yyvsp = yyval;
-/** True iff LR state YYSTATE has only a default reduction (regardless
- * of token). */
-static inline yybool
-yyisDefaultedState (yyStateNum yystate)
-{
- return (yybool) yypact_value_is_default (yypact[yystate]);
-}
-/** The default reduction for YYSTATE, assuming it has one. */
-static inline yyRuleNum
-yydefaultAction (yyStateNum yystate)
-{
- return yydefact[yystate];
-}
+ /* Now `shift' the result of the reduction. Determine what state
+ that goes to, based on the state we popped back to and the rule
+ number reduced by. */
-#define yytable_value_is_error(Yytable_value) \
- 0
-
-/** The action to take in YYSTATE on seeing YYTOKEN.
- * Result R means
- * R < 0: Reduce on rule -R.
- * R = 0: Error.
- * R > 0: Shift to state R.
- * Set *YYCONFLICTS to a pointer into yyconfl to a 0-terminated list
- * of conflicting reductions.
- */
-static inline int
-yygetLRActions (yyStateNum yystate, yySymbol yytoken, const short** yyconflicts)
-{
- int yyindex = yypact[yystate] + yytoken;
- if (yyisDefaultedState (yystate)
- || yyindex < 0 || YYLAST < yyindex || yycheck[yyindex] != yytoken)
- {
- *yyconflicts = yyconfl;
- return -yydefact[yystate];
- }
- else if (! yytable_value_is_error (yytable[yyindex]))
- {
- *yyconflicts = yyconfl + yyconflp[yyindex];
- return yytable[yyindex];
- }
- else
- {
- *yyconflicts = yyconfl + yyconflp[yyindex];
- return 0;
- }
-}
+ yyn = yyr1[yyn];
-/** Compute post-reduction state.
- * \param yystate the current state
- * \param yysym the nonterminal to push on the stack
- */
-static inline yyStateNum
-yyLRgotoState (yyStateNum yystate, yySymbol yysym)
-{
- int yyr = yypgoto[yysym - YYNTOKENS] + yystate;
- if (0 <= yyr && yyr <= YYLAST && yycheck[yyr] == yystate)
- return yytable[yyr];
+ yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+ if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+ yystate = yytable[yystate];
else
- return yydefgoto[yysym - YYNTOKENS];
-}
-
-static inline yybool
-yyisShiftAction (int yyaction)
-{
- return (yybool) (0 < yyaction);
-}
-
-static inline yybool
-yyisErrorAction (int yyaction)
-{
- return (yybool) (yyaction == 0);
-}
-
- /* GLRStates */
-
-/** Return a fresh GLRStackItem in YYSTACKP. The item is an LR state
- * if YYISSTATE, and otherwise a semantic option. Callers should call
- * YY_RESERVE_GLRSTACK afterwards to make sure there is sufficient
- * headroom. */
-
-static inline yyGLRStackItem*
-yynewGLRStackItem (yyGLRStack* yystackp, yybool yyisState)
-{
- yyGLRStackItem* yynewItem = yystackp->yynextFree;
- yystackp->yyspaceLeft -= 1;
- yystackp->yynextFree += 1;
- yynewItem->yystate.yyisState = yyisState;
- return yynewItem;
-}
-
-/** Add a new semantic action that will execute the action for rule
- * YYRULE on the semantic values in YYRHS to the list of
- * alternative actions for YYSTATE. Assumes that YYRHS comes from
- * stack #YYK of *YYSTACKP. */
-static void
-yyaddDeferredAction (yyGLRStack* yystackp, size_t yyk, yyGLRState* yystate,
- yyGLRState* yyrhs, yyRuleNum yyrule)
-{
- yySemanticOption* yynewOption =
- &yynewGLRStackItem (yystackp, yyfalse)->yyoption;
- YYASSERT (!yynewOption->yyisState);
- yynewOption->yystate = yyrhs;
- yynewOption->yyrule = yyrule;
- if (yystackp->yytops.yylookaheadNeeds[yyk])
- {
- yynewOption->yyrawchar = yychar;
- yynewOption->yyval = yylval;
- }
- else
- yynewOption->yyrawchar = YYEMPTY;
- yynewOption->yynext = yystate->yysemantics.yyfirstVal;
- yystate->yysemantics.yyfirstVal = yynewOption;
-
- YY_RESERVE_GLRSTACK (yystackp);
-}
-
- /* GLRStacks */
-
-/** Initialize YYSET to a singleton set containing an empty stack. */
-static yybool
-yyinitStateSet (yyGLRStateSet* yyset)
-{
- yyset->yysize = 1;
- yyset->yycapacity = 16;
- yyset->yystates
- = (yyGLRState**) YYMALLOC (yyset->yycapacity * sizeof yyset->yystates[0]);
- if (! yyset->yystates)
- return yyfalse;
- yyset->yystates[0] = YY_NULLPTR;
- yyset->yylookaheadNeeds
- = (yybool*) YYMALLOC (yyset->yycapacity * sizeof yyset->yylookaheadNeeds[0]);
- if (! yyset->yylookaheadNeeds)
- {
- YYFREE (yyset->yystates);
- return yyfalse;
- }
- memset (yyset->yylookaheadNeeds,
- 0, yyset->yycapacity * sizeof yyset->yylookaheadNeeds[0]);
- return yytrue;
-}
-
-static void yyfreeStateSet (yyGLRStateSet* yyset)
-{
- YYFREE (yyset->yystates);
- YYFREE (yyset->yylookaheadNeeds);
-}
-
-/** Initialize *YYSTACKP to a single empty stack, with total maximum
- * capacity for all stacks of YYSIZE. */
-static yybool
-yyinitGLRStack (yyGLRStack* yystackp, size_t yysize)
-{
- yystackp->yyerrState = 0;
- yynerrs = 0;
- yystackp->yyspaceLeft = yysize;
- yystackp->yyitems =
- (yyGLRStackItem*) YYMALLOC (yysize * sizeof yystackp->yynextFree[0]);
- if (!yystackp->yyitems)
- return yyfalse;
- yystackp->yynextFree = yystackp->yyitems;
- yystackp->yysplitPoint = YY_NULLPTR;
- yystackp->yylastDeleted = YY_NULLPTR;
- return yyinitStateSet (&yystackp->yytops);
-}
-
-
-#if YYSTACKEXPANDABLE
-# define YYRELOC(YYFROMITEMS,YYTOITEMS,YYX,YYTYPE) \
- &((YYTOITEMS) - ((YYFROMITEMS) - (yyGLRStackItem*) (YYX)))->YYTYPE
-
-/** If *YYSTACKP is expandable, extend it. WARNING: Pointers into the
- stack from outside should be considered invalid after this call.
- We always expand when there are 1 or fewer items left AFTER an
- allocation, so that we can avoid having external pointers exist
- across an allocation. */
-static void
-yyexpandGLRStack (yyGLRStack* yystackp)
-{
- yyGLRStackItem* yynewItems;
- yyGLRStackItem* yyp0, *yyp1;
- size_t yynewSize;
- size_t yyn;
- size_t yysize = (size_t) (yystackp->yynextFree - yystackp->yyitems);
- if (YYMAXDEPTH - YYHEADROOM < yysize)
- yyMemoryExhausted (yystackp);
- yynewSize = 2*yysize;
- if (YYMAXDEPTH < yynewSize)
- yynewSize = YYMAXDEPTH;
- yynewItems = (yyGLRStackItem*) YYMALLOC (yynewSize * sizeof yynewItems[0]);
- if (! yynewItems)
- yyMemoryExhausted (yystackp);
- for (yyp0 = yystackp->yyitems, yyp1 = yynewItems, yyn = yysize;
- 0 < yyn;
- yyn -= 1, yyp0 += 1, yyp1 += 1)
- {
- *yyp1 = *yyp0;
- if (*(yybool *) yyp0)
- {
- yyGLRState* yys0 = &yyp0->yystate;
- yyGLRState* yys1 = &yyp1->yystate;
- if (yys0->yypred != YY_NULLPTR)
- yys1->yypred =
- YYRELOC (yyp0, yyp1, yys0->yypred, yystate);
- if (! yys0->yyresolved && yys0->yysemantics.yyfirstVal != YY_NULLPTR)
- yys1->yysemantics.yyfirstVal =
- YYRELOC (yyp0, yyp1, yys0->yysemantics.yyfirstVal, yyoption);
- }
- else
- {
- yySemanticOption* yyv0 = &yyp0->yyoption;
- yySemanticOption* yyv1 = &yyp1->yyoption;
- if (yyv0->yystate != YY_NULLPTR)
- yyv1->yystate = YYRELOC (yyp0, yyp1, yyv0->yystate, yystate);
- if (yyv0->yynext != YY_NULLPTR)
- yyv1->yynext = YYRELOC (yyp0, yyp1, yyv0->yynext, yyoption);
- }
- }
- if (yystackp->yysplitPoint != YY_NULLPTR)
- yystackp->yysplitPoint = YYRELOC (yystackp->yyitems, yynewItems,
- yystackp->yysplitPoint, yystate);
-
- for (yyn = 0; yyn < yystackp->yytops.yysize; yyn += 1)
- if (yystackp->yytops.yystates[yyn] != YY_NULLPTR)
- yystackp->yytops.yystates[yyn] =
- YYRELOC (yystackp->yyitems, yynewItems,
- yystackp->yytops.yystates[yyn], yystate);
- YYFREE (yystackp->yyitems);
- yystackp->yyitems = yynewItems;
- yystackp->yynextFree = yynewItems + yysize;
- yystackp->yyspaceLeft = yynewSize - yysize;
-}
-#endif
-
-static void
-yyfreeGLRStack (yyGLRStack* yystackp)
-{
- YYFREE (yystackp->yyitems);
- yyfreeStateSet (&yystackp->yytops);
-}
-
-/** Assuming that YYS is a GLRState somewhere on *YYSTACKP, update the
- * splitpoint of *YYSTACKP, if needed, so that it is at least as deep as
- * YYS. */
-static inline void
-yyupdateSplit (yyGLRStack* yystackp, yyGLRState* yys)
-{
- if (yystackp->yysplitPoint != YY_NULLPTR && yystackp->yysplitPoint > yys)
- yystackp->yysplitPoint = yys;
-}
+ yystate = yydefgoto[yyn - YYNTOKENS];
-/** Invalidate stack #YYK in *YYSTACKP. */
-static inline void
-yymarkStackDeleted (yyGLRStack* yystackp, size_t yyk)
-{
- if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
- yystackp->yylastDeleted = yystackp->yytops.yystates[yyk];
- yystackp->yytops.yystates[yyk] = YY_NULLPTR;
-}
+ goto yynewstate;
-/** Undelete the last stack in *YYSTACKP that was marked as deleted. Can
- only be done once after a deletion, and only when all other stacks have
- been deleted. */
-static void
-yyundeleteLastStack (yyGLRStack* yystackp)
-{
- if (yystackp->yylastDeleted == YY_NULLPTR || yystackp->yytops.yysize != 0)
- return;
- yystackp->yytops.yystates[0] = yystackp->yylastDeleted;
- yystackp->yytops.yysize = 1;
- YYDPRINTF ((stderr, "Restoring last deleted stack as stack #0.\n"));
- yystackp->yylastDeleted = YY_NULLPTR;
-}
-static inline void
-yyremoveDeletes (yyGLRStack* yystackp)
-{
- size_t yyi, yyj;
- yyi = yyj = 0;
- while (yyj < yystackp->yytops.yysize)
+/*------------------------------------.
+| yyerrlab -- here on detecting error |
+`------------------------------------*/
+yyerrlab:
+ /* If not already recovering from an error, report this error. */
+ if (!yyerrstatus)
{
- if (yystackp->yytops.yystates[yyi] == YY_NULLPTR)
- {
- if (yyi == yyj)
- {
- YYDPRINTF ((stderr, "Removing dead stacks.\n"));
- }
- yystackp->yytops.yysize -= 1;
- }
- else
- {
- yystackp->yytops.yystates[yyj] = yystackp->yytops.yystates[yyi];
- /* In the current implementation, it's unnecessary to copy
- yystackp->yytops.yylookaheadNeeds[yyi] since, after
- yyremoveDeletes returns, the parser immediately either enters
- deterministic operation or shifts a token. However, it doesn't
- hurt, and the code might evolve to need it. */
- yystackp->yytops.yylookaheadNeeds[yyj] =
- yystackp->yytops.yylookaheadNeeds[yyi];
- if (yyj != yyi)
- {
- YYDPRINTF ((stderr, "Rename stack %lu -> %lu.\n",
- (unsigned long) yyi, (unsigned long) yyj));
- }
- yyj += 1;
- }
- yyi += 1;
- }
-}
-
-/** Shift to a new state on stack #YYK of *YYSTACKP, corresponding to LR
- * state YYLRSTATE, at input position YYPOSN, with (resolved) semantic
- * value *YYVALP and source location *YYLOCP. */
-static inline void
-yyglrShift (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
- size_t yyposn,
- YYSTYPE* yyvalp)
-{
- yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
-
- yynewState->yylrState = yylrState;
- yynewState->yyposn = yyposn;
- yynewState->yyresolved = yytrue;
- yynewState->yypred = yystackp->yytops.yystates[yyk];
- yynewState->yysemantics.yysval = *yyvalp;
- yystackp->yytops.yystates[yyk] = yynewState;
-
- YY_RESERVE_GLRSTACK (yystackp);
-}
-
-/** Shift stack #YYK of *YYSTACKP, to a new state corresponding to LR
- * state YYLRSTATE, at input position YYPOSN, with the (unresolved)
- * semantic value of YYRHS under the action for YYRULE. */
-static inline void
-yyglrShiftDefer (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
- size_t yyposn, yyGLRState* yyrhs, yyRuleNum yyrule)
-{
- yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
- YYASSERT (yynewState->yyisState);
-
- yynewState->yylrState = yylrState;
- yynewState->yyposn = yyposn;
- yynewState->yyresolved = yyfalse;
- yynewState->yypred = yystackp->yytops.yystates[yyk];
- yynewState->yysemantics.yyfirstVal = YY_NULLPTR;
- yystackp->yytops.yystates[yyk] = yynewState;
-
- /* Invokes YY_RESERVE_GLRSTACK. */
- yyaddDeferredAction (yystackp, yyk, yynewState, yyrhs, yyrule);
-}
-
-#if !YYDEBUG
-# define YY_REDUCE_PRINT(Args)
+ ++yynerrs;
+#if ! YYERROR_VERBOSE
+ yyerror (YY_("syntax error"));
#else
-# define YY_REDUCE_PRINT(Args) \
- do { \
- if (yydebug) \
- yy_reduce_print Args; \
- } while (0)
-
-/*----------------------------------------------------------------------.
-| Report that stack #YYK of *YYSTACKP is going to be reduced by YYRULE. |
-`----------------------------------------------------------------------*/
-
-static inline void
-yy_reduce_print (yybool yynormal, yyGLRStackItem* yyvsp, size_t yyk,
- yyRuleNum yyrule)
-{
- int yynrhs = yyrhsLength (yyrule);
- int yyi;
- YYFPRINTF (stderr, "Reducing stack %lu by rule %d (line %lu):\n",
- (unsigned long) yyk, yyrule - 1,
- (unsigned long) yyrline[yyrule]);
- if (! yynormal)
- yyfillin (yyvsp, 1, -yynrhs);
- /* The symbols being reduced. */
- for (yyi = 0; yyi < yynrhs; yyi++)
- {
- YYFPRINTF (stderr, " $%d = ", yyi + 1);
- yy_symbol_print (stderr,
- yystos[yyvsp[yyi - yynrhs + 1].yystate.yylrState],
- &yyvsp[yyi - yynrhs + 1].yystate.yysemantics.yysval );
- if (!yyvsp[yyi - yynrhs + 1].yystate.yyresolved)
- YYFPRINTF (stderr, " (unresolved)");
- YYFPRINTF (stderr, "\n");
- }
-}
-#endif
-
-/** Pop the symbols consumed by reduction #YYRULE from the top of stack
- * #YYK of *YYSTACKP, and perform the appropriate semantic action on their
- * semantic values. Assumes that all ambiguities in semantic values
- * have been previously resolved. Set *YYVALP to the resulting value,
- * and *YYLOCP to the computed location (if any). Return value is as
- * for userAction. */
-static inline YYRESULTTAG
-yydoAction (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
- YYSTYPE* yyvalp)
-{
- int yynrhs = yyrhsLength (yyrule);
-
- if (yystackp->yysplitPoint == YY_NULLPTR)
- {
- /* Standard special case: single stack. */
- yyGLRStackItem* yyrhs = (yyGLRStackItem*) yystackp->yytops.yystates[yyk];
- YYASSERT (yyk == 0);
- yystackp->yynextFree -= yynrhs;
- yystackp->yyspaceLeft += (size_t) yynrhs;
- yystackp->yytops.yystates[0] = & yystackp->yynextFree[-1].yystate;
- YY_REDUCE_PRINT ((yytrue, yyrhs, yyk, yyrule));
- return yyuserAction (yyrule, yynrhs, yyrhs, yystackp,
- yyvalp);
- }
- else
- {
- int yyi;
- yyGLRState* yys;
- yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
- yys = yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred
- = yystackp->yytops.yystates[yyk];
- for (yyi = 0; yyi < yynrhs; yyi += 1)
- {
- yys = yys->yypred;
- YYASSERT (yys);
- }
- yyupdateSplit (yystackp, yys);
- yystackp->yytops.yystates[yyk] = yys;
- YY_REDUCE_PRINT ((yyfalse, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1, yyk, yyrule));
- return yyuserAction (yyrule, yynrhs, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
- yystackp, yyvalp);
- }
-}
-
-/** Pop items off stack #YYK of *YYSTACKP according to grammar rule YYRULE,
- * and push back on the resulting nonterminal symbol. Perform the
- * semantic action associated with YYRULE and store its value with the
- * newly pushed state, if YYFORCEEVAL or if *YYSTACKP is currently
- * unambiguous. Otherwise, store the deferred semantic action with
- * the new state. If the new state would have an identical input
- * position, LR state, and predecessor to an existing state on the stack,
- * it is identified with that existing state, eliminating stack #YYK from
- * *YYSTACKP. In this case, the semantic value is
- * added to the options for the existing state's semantic value.
- */
-static inline YYRESULTTAG
-yyglrReduce (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
- yybool yyforceEval)
-{
- size_t yyposn = yystackp->yytops.yystates[yyk]->yyposn;
-
- if (yyforceEval || yystackp->yysplitPoint == YY_NULLPTR)
- {
- YYSTYPE yysval;
-
- YYRESULTTAG yyflag = yydoAction (yystackp, yyk, yyrule, &yysval);
- if (yyflag == yyerr && yystackp->yysplitPoint != YY_NULLPTR)
- {
- YYDPRINTF ((stderr, "Parse on stack %lu rejected by rule #%d.\n",
- (unsigned long) yyk, yyrule - 1));
- }
- if (yyflag != yyok)
- return yyflag;
- YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyrule], &yysval, &yyloc);
- yyglrShift (yystackp, yyk,
- yyLRgotoState (yystackp->yytops.yystates[yyk]->yylrState,
- yylhsNonterm (yyrule)),
- yyposn, &yysval);
- }
- else
- {
- size_t yyi;
- int yyn;
- yyGLRState* yys, *yys0 = yystackp->yytops.yystates[yyk];
- yyStateNum yynewLRState;
-
- for (yys = yystackp->yytops.yystates[yyk], yyn = yyrhsLength (yyrule);
- 0 < yyn; yyn -= 1)
- {
- yys = yys->yypred;
- YYASSERT (yys);
- }
- yyupdateSplit (yystackp, yys);
- yynewLRState = yyLRgotoState (yys->yylrState, yylhsNonterm (yyrule));
- YYDPRINTF ((stderr,
- "Reduced stack %lu by rule #%d; action deferred. "
- "Now in state %d.\n",
- (unsigned long) yyk, yyrule - 1, yynewLRState));
- for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
- if (yyi != yyk && yystackp->yytops.yystates[yyi] != YY_NULLPTR)
- {
- yyGLRState *yysplit = yystackp->yysplitPoint;
- yyGLRState *yyp = yystackp->yytops.yystates[yyi];
- while (yyp != yys && yyp != yysplit && yyp->yyposn >= yyposn)
- {
- if (yyp->yylrState == yynewLRState && yyp->yypred == yys)
- {
- yyaddDeferredAction (yystackp, yyk, yyp, yys0, yyrule);
- yymarkStackDeleted (yystackp, yyk);
- YYDPRINTF ((stderr, "Merging stack %lu into stack %lu.\n",
- (unsigned long) yyk,
- (unsigned long) yyi));
- return yyok;
- }
- yyp = yyp->yypred;
- }
- }
- yystackp->yytops.yystates[yyk] = yys;
- yyglrShiftDefer (yystackp, yyk, yynewLRState, yyposn, yys0, yyrule);
- }
- return yyok;
-}
-
-static size_t
-yysplitStack (yyGLRStack* yystackp, size_t yyk)
-{
- if (yystackp->yysplitPoint == YY_NULLPTR)
- {
- YYASSERT (yyk == 0);
- yystackp->yysplitPoint = yystackp->yytops.yystates[yyk];
- }
- if (yystackp->yytops.yysize >= yystackp->yytops.yycapacity)
- {
- yyGLRState** yynewStates = YY_NULLPTR;
- yybool* yynewLookaheadNeeds;
-
- if (yystackp->yytops.yycapacity
- > (YYSIZEMAX / (2 * sizeof yynewStates[0])))
- yyMemoryExhausted (yystackp);
- yystackp->yytops.yycapacity *= 2;
-
- yynewStates =
- (yyGLRState**) YYREALLOC (yystackp->yytops.yystates,
- (yystackp->yytops.yycapacity
- * sizeof yynewStates[0]));
- if (yynewStates == YY_NULLPTR)
- yyMemoryExhausted (yystackp);
- yystackp->yytops.yystates = yynewStates;
-
- yynewLookaheadNeeds =
- (yybool*) YYREALLOC (yystackp->yytops.yylookaheadNeeds,
- (yystackp->yytops.yycapacity
- * sizeof yynewLookaheadNeeds[0]));
- if (yynewLookaheadNeeds == YY_NULLPTR)
- yyMemoryExhausted (yystackp);
- yystackp->yytops.yylookaheadNeeds = yynewLookaheadNeeds;
- }
- yystackp->yytops.yystates[yystackp->yytops.yysize]
- = yystackp->yytops.yystates[yyk];
- yystackp->yytops.yylookaheadNeeds[yystackp->yytops.yysize]
- = yystackp->yytops.yylookaheadNeeds[yyk];
- yystackp->yytops.yysize += 1;
- return yystackp->yytops.yysize-1;
-}
-
-/** True iff YYY0 and YYY1 represent identical options at the top level.
- * That is, they represent the same rule applied to RHS symbols
- * that produce the same terminal symbols. */
-static yybool
-yyidenticalOptions (yySemanticOption* yyy0, yySemanticOption* yyy1)
-{
- if (yyy0->yyrule == yyy1->yyrule)
- {
- yyGLRState *yys0, *yys1;
- int yyn;
- for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
- yyn = yyrhsLength (yyy0->yyrule);
- yyn > 0;
- yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
- if (yys0->yyposn != yys1->yyposn)
- return yyfalse;
- return yytrue;
- }
- else
- return yyfalse;
-}
-
-/** Assuming identicalOptions (YYY0,YYY1), destructively merge the
- * alternative semantic values for the RHS-symbols of YYY1 and YYY0. */
-static void
-yymergeOptionSets (yySemanticOption* yyy0, yySemanticOption* yyy1)
-{
- yyGLRState *yys0, *yys1;
- int yyn;
- for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
- yyn = yyrhsLength (yyy0->yyrule);
- yyn > 0;
- yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
- {
- if (yys0 == yys1)
- break;
- else if (yys0->yyresolved)
- {
- yys1->yyresolved = yytrue;
- yys1->yysemantics.yysval = yys0->yysemantics.yysval;
- }
- else if (yys1->yyresolved)
- {
- yys0->yyresolved = yytrue;
- yys0->yysemantics.yysval = yys1->yysemantics.yysval;
- }
- else
- {
- yySemanticOption** yyz0p = &yys0->yysemantics.yyfirstVal;
- yySemanticOption* yyz1 = yys1->yysemantics.yyfirstVal;
- while (yytrue)
- {
- if (yyz1 == *yyz0p || yyz1 == YY_NULLPTR)
- break;
- else if (*yyz0p == YY_NULLPTR)
- {
- *yyz0p = yyz1;
- break;
- }
- else if (*yyz0p < yyz1)
- {
- yySemanticOption* yyz = *yyz0p;
- *yyz0p = yyz1;
- yyz1 = yyz1->yynext;
- (*yyz0p)->yynext = yyz;
- }
- yyz0p = &(*yyz0p)->yynext;
- }
- yys1->yysemantics.yyfirstVal = yys0->yysemantics.yyfirstVal;
- }
- }
-}
-
-/** Y0 and Y1 represent two possible actions to take in a given
- * parsing state; return 0 if no combination is possible,
- * 1 if user-mergeable, 2 if Y0 is preferred, 3 if Y1 is preferred. */
-static int
-yypreference (yySemanticOption* y0, yySemanticOption* y1)
-{
- yyRuleNum r0 = y0->yyrule, r1 = y1->yyrule;
- int p0 = yydprec[r0], p1 = yydprec[r1];
-
- if (p0 == p1)
- {
- if (yymerger[r0] == 0 || yymerger[r0] != yymerger[r1])
- return 0;
- else
- return 1;
- }
- if (p0 == 0 || p1 == 0)
- return 0;
- if (p0 < p1)
- return 3;
- if (p1 < p0)
- return 2;
- return 0;
-}
-
-static YYRESULTTAG yyresolveValue (yyGLRState* yys,
- yyGLRStack* yystackp);
-
-
-/** Resolve the previous YYN states starting at and including state YYS
- * on *YYSTACKP. If result != yyok, some states may have been left
- * unresolved possibly with empty semantic option chains. Regardless
- * of whether result = yyok, each state has been left with consistent
- * data so that yydestroyGLRState can be invoked if necessary. */
-static YYRESULTTAG
-yyresolveStates (yyGLRState* yys, int yyn,
- yyGLRStack* yystackp)
-{
- if (0 < yyn)
- {
- YYASSERT (yys->yypred);
- YYCHK (yyresolveStates (yys->yypred, yyn-1, yystackp));
- if (! yys->yyresolved)
- YYCHK (yyresolveValue (yys, yystackp));
- }
- return yyok;
-}
-
-/** Resolve the states for the RHS of YYOPT on *YYSTACKP, perform its
- * user action, and return the semantic value and location in *YYVALP
- * and *YYLOCP. Regardless of whether result = yyok, all RHS states
- * have been destroyed (assuming the user action destroys all RHS
- * semantic values if invoked). */
-static YYRESULTTAG
-yyresolveAction (yySemanticOption* yyopt, yyGLRStack* yystackp,
- YYSTYPE* yyvalp)
-{
- yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
- int yynrhs = yyrhsLength (yyopt->yyrule);
- YYRESULTTAG yyflag =
- yyresolveStates (yyopt->yystate, yynrhs, yystackp);
- if (yyflag != yyok)
- {
- yyGLRState *yys;
- for (yys = yyopt->yystate; yynrhs > 0; yys = yys->yypred, yynrhs -= 1)
- yydestroyGLRState ("Cleanup: popping", yys);
- return yyflag;
- }
-
- yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred = yyopt->yystate;
- {
- int yychar_current = yychar;
- YYSTYPE yylval_current = yylval;
- yychar = yyopt->yyrawchar;
- yylval = yyopt->yyval;
- yyflag = yyuserAction (yyopt->yyrule, yynrhs,
- yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
- yystackp, yyvalp);
- yychar = yychar_current;
- yylval = yylval_current;
- }
- return yyflag;
-}
-
-#if YYDEBUG
-static void
-yyreportTree (yySemanticOption* yyx, int yyindent)
-{
- int yynrhs = yyrhsLength (yyx->yyrule);
- int yyi;
- yyGLRState* yys;
- yyGLRState* yystates[1 + YYMAXRHS];
- yyGLRState yyleftmost_state;
-
- for (yyi = yynrhs, yys = yyx->yystate; 0 < yyi; yyi -= 1, yys = yys->yypred)
- yystates[yyi] = yys;
- if (yys == YY_NULLPTR)
- {
- yyleftmost_state.yyposn = 0;
- yystates[0] = &yyleftmost_state;
- }
- else
- yystates[0] = yys;
-
- if (yyx->yystate->yyposn < yys->yyposn + 1)
- YYFPRINTF (stderr, "%*s%s -> <Rule %d, empty>\n",
- yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
- yyx->yyrule - 1);
- else
- YYFPRINTF (stderr, "%*s%s -> <Rule %d, tokens %lu .. %lu>\n",
- yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
- yyx->yyrule - 1, (unsigned long) (yys->yyposn + 1),
- (unsigned long) yyx->yystate->yyposn);
- for (yyi = 1; yyi <= yynrhs; yyi += 1)
- {
- if (yystates[yyi]->yyresolved)
- {
- if (yystates[yyi-1]->yyposn+1 > yystates[yyi]->yyposn)
- YYFPRINTF (stderr, "%*s%s <empty>\n", yyindent+2, "",
- yytokenName (yystos[yystates[yyi]->yylrState]));
- else
- YYFPRINTF (stderr, "%*s%s <tokens %lu .. %lu>\n", yyindent+2, "",
- yytokenName (yystos[yystates[yyi]->yylrState]),
- (unsigned long) (yystates[yyi-1]->yyposn + 1),
- (unsigned long) yystates[yyi]->yyposn);
- }
- else
- yyreportTree (yystates[yyi]->yysemantics.yyfirstVal, yyindent+2);
- }
-}
-#endif
-
-static YYRESULTTAG
-yyreportAmbiguity (yySemanticOption* yyx0,
- yySemanticOption* yyx1)
-{
- YYUSE (yyx0);
- YYUSE (yyx1);
-
-#if YYDEBUG
- YYFPRINTF (stderr, "Ambiguity detected.\n");
- YYFPRINTF (stderr, "Option 1,\n");
- yyreportTree (yyx0, 2);
- YYFPRINTF (stderr, "\nOption 2,\n");
- yyreportTree (yyx1, 2);
- YYFPRINTF (stderr, "\n");
+ {
+ 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;
+ }
+ }
#endif
-
- yyerror (YY_("syntax is ambiguous"));
- return yyabort;
-}
-
-/** Resolve the ambiguity represented in state YYS in *YYSTACKP,
- * perform the indicated actions, and set the semantic value of YYS.
- * If result != yyok, the chain of semantic options in YYS has been
- * cleared instead or it has been left unmodified except that
- * redundant options may have been removed. Regardless of whether
- * result = yyok, YYS has been left with consistent data so that
- * yydestroyGLRState can be invoked if necessary. */
-static YYRESULTTAG
-yyresolveValue (yyGLRState* yys, yyGLRStack* yystackp)
-{
- yySemanticOption* yyoptionList = yys->yysemantics.yyfirstVal;
- yySemanticOption* yybest = yyoptionList;
- yySemanticOption** yypp;
- yybool yymerge = yyfalse;
- YYSTYPE yysval;
- YYRESULTTAG yyflag;
-
- for (yypp = &yyoptionList->yynext; *yypp != YY_NULLPTR; )
- {
- yySemanticOption* yyp = *yypp;
-
- if (yyidenticalOptions (yybest, yyp))
- {
- yymergeOptionSets (yybest, yyp);
- *yypp = yyp->yynext;
- }
- else
- {
- switch (yypreference (yybest, yyp))
- {
- case 0:
- return yyreportAmbiguity (yybest, yyp);
- break;
- case 1:
- yymerge = yytrue;
- break;
- case 2:
- break;
- case 3:
- yybest = yyp;
- yymerge = yyfalse;
- break;
- default:
- /* This cannot happen so it is not worth a YYASSERT (yyfalse),
- but some compilers complain if the default case is
- omitted. */
- break;
- }
- yypp = &yyp->yynext;
- }
}
- if (yymerge)
- {
- yySemanticOption* yyp;
- int yyprec = yydprec[yybest->yyrule];
- yyflag = yyresolveAction (yybest, yystackp, &yysval);
- if (yyflag == yyok)
- for (yyp = yybest->yynext; yyp != YY_NULLPTR; yyp = yyp->yynext)
- {
- if (yyprec == yydprec[yyp->yyrule])
- {
- YYSTYPE yysval_other;
- yyflag = yyresolveAction (yyp, yystackp, &yysval_other);
- if (yyflag != yyok)
- {
- yydestruct ("Cleanup: discarding incompletely merged value for",
- yystos[yys->yylrState],
- &yysval);
- break;
- }
- yyuserMerge (yymerger[yyp->yyrule], &yysval, &yysval_other);
- }
- }
- }
- else
- yyflag = yyresolveAction (yybest, yystackp, &yysval);
- if (yyflag == yyok)
- {
- yys->yyresolved = yytrue;
- yys->yysemantics.yysval = yysval;
- }
- else
- yys->yysemantics.yyfirstVal = YY_NULLPTR;
- return yyflag;
-}
-static YYRESULTTAG
-yyresolveStack (yyGLRStack* yystackp)
-{
- if (yystackp->yysplitPoint != YY_NULLPTR)
+ if (yyerrstatus == 3)
{
- yyGLRState* yys;
- int yyn;
-
- for (yyn = 0, yys = yystackp->yytops.yystates[0];
- yys != yystackp->yysplitPoint;
- yys = yys->yypred, yyn += 1)
- continue;
- YYCHK (yyresolveStates (yystackp->yytops.yystates[0], yyn, yystackp
- ));
- }
- return yyok;
-}
-
-static void
-yycompressStack (yyGLRStack* yystackp)
-{
- yyGLRState* yyp, *yyq, *yyr;
+ /* If just tried and failed to reuse look-ahead token after an
+ error, discard it. */
- if (yystackp->yytops.yysize != 1 || yystackp->yysplitPoint == YY_NULLPTR)
- return;
-
- for (yyp = yystackp->yytops.yystates[0], yyq = yyp->yypred, yyr = YY_NULLPTR;
- yyp != yystackp->yysplitPoint;
- yyr = yyp, yyp = yyq, yyq = yyp->yypred)
- yyp->yypred = yyr;
-
- yystackp->yyspaceLeft += (size_t) (yystackp->yynextFree - yystackp->yyitems);
- yystackp->yynextFree = ((yyGLRStackItem*) yystackp->yysplitPoint) + 1;
- yystackp->yyspaceLeft -= (size_t) (yystackp->yynextFree - yystackp->yyitems);
- yystackp->yysplitPoint = YY_NULLPTR;
- yystackp->yylastDeleted = YY_NULLPTR;
-
- while (yyr != YY_NULLPTR)
- {
- yystackp->yynextFree->yystate = *yyr;
- yyr = yyr->yypred;
- yystackp->yynextFree->yystate.yypred = &yystackp->yynextFree[-1].yystate;
- yystackp->yytops.yystates[0] = &yystackp->yynextFree->yystate;
- yystackp->yynextFree += 1;
- yystackp->yyspaceLeft -= 1;
- }
-}
-
-static YYRESULTTAG
-yyprocessOneStack (yyGLRStack* yystackp, size_t yyk,
- size_t yyposn)
-{
- while (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
- {
- yyStateNum yystate = yystackp->yytops.yystates[yyk]->yylrState;
- YYDPRINTF ((stderr, "Stack %lu Entering state %d\n",
- (unsigned long) yyk, yystate));
-
- YYASSERT (yystate != YYFINAL);
-
- if (yyisDefaultedState (yystate))
- {
- YYRESULTTAG yyflag;
- yyRuleNum yyrule = yydefaultAction (yystate);
- if (yyrule == 0)
- {
- YYDPRINTF ((stderr, "Stack %lu dies.\n",
- (unsigned long) yyk));
- yymarkStackDeleted (yystackp, yyk);
- return yyok;
- }
- yyflag = yyglrReduce (yystackp, yyk, yyrule, yyimmediate[yyrule]);
- if (yyflag == yyerr)
- {
- YYDPRINTF ((stderr,
- "Stack %lu dies "
- "(predicate failure or explicit user error).\n",
- (unsigned long) yyk));
- yymarkStackDeleted (yystackp, yyk);
- return yyok;
- }
- if (yyflag != yyok)
- return yyflag;
- }
+ if (yychar <= YYEOF)
+ {
+ /* Return failure if at end of input. */
+ if (yychar == YYEOF)
+ YYABORT;
+ }
else
- {
- yySymbol yytoken;
- int yyaction;
- const short* yyconflicts;
-
- yystackp->yytops.yylookaheadNeeds[yyk] = yytrue;
- yytoken = yygetToken (&yychar);
- yyaction = yygetLRActions (yystate, yytoken, &yyconflicts);
-
- while (*yyconflicts != 0)
- {
- YYRESULTTAG yyflag;
- size_t yynewStack = yysplitStack (yystackp, yyk);
- YYDPRINTF ((stderr, "Splitting off stack %lu from %lu.\n",
- (unsigned long) yynewStack,
- (unsigned long) yyk));
- yyflag = yyglrReduce (yystackp, yynewStack,
- *yyconflicts,
- yyimmediate[*yyconflicts]);
- if (yyflag == yyok)
- YYCHK (yyprocessOneStack (yystackp, yynewStack,
- yyposn));
- else if (yyflag == yyerr)
- {
- YYDPRINTF ((stderr, "Stack %lu dies.\n",
- (unsigned long) yynewStack));
- yymarkStackDeleted (yystackp, yynewStack);
- }
- else
- return yyflag;
- yyconflicts += 1;
- }
-
- if (yyisShiftAction (yyaction))
- break;
- else if (yyisErrorAction (yyaction))
- {
- YYDPRINTF ((stderr, "Stack %lu dies.\n",
- (unsigned long) yyk));
- yymarkStackDeleted (yystackp, yyk);
- break;
- }
- else
- {
- YYRESULTTAG yyflag = yyglrReduce (yystackp, yyk, -yyaction,
- yyimmediate[-yyaction]);
- if (yyflag == yyerr)
- {
- YYDPRINTF ((stderr,
- "Stack %lu dies "
- "(predicate failure or explicit user error).\n",
- (unsigned long) yyk));
- yymarkStackDeleted (yystackp, yyk);
- break;
- }
- else if (yyflag != yyok)
- return yyflag;
- }
- }
- }
- return yyok;
-}
-
-static void
-yyreportSyntaxError (yyGLRStack* yystackp)
-{
- if (yystackp->yyerrState != 0)
- return;
-#if ! YYERROR_VERBOSE
- yyerror (YY_("syntax error"));
-#else
- {
- yySymbol yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
- size_t yysize0 = yytnamerr (YY_NULLPTR, yytokenName (yytoken));
- size_t yysize = yysize0;
- yybool yysize_overflow = yyfalse;
- char* yymsg = YY_NULLPTR;
- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
- /* Internationalized format string. */
- const char *yyformat = YY_NULLPTR;
- /* 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:
- - 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[yystackp->yytops.yystates[0]->yylrState];
- yyarg[yycount++] = yytokenName (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++] = yytokenName (yyx);
- {
- size_t yysz = yysize + yytnamerr (YY_NULLPTR, yytokenName (yyx));
- if (yysz < yysize)
- yysize_overflow = yytrue;
- yysize = yysz;
- }
- }
- }
+ {
+ yydestruct ("Error: discarding",
+ yytoken, &yylval);
+ yychar = YYEMPTY;
+ }
}
- switch (yycount)
- {
-#define YYCASE_(N, S) \
- case N: \
- yyformat = S; \
- break
- default: /* Avoid compiler warnings. */
- 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_
- }
+ /* Else will try to reuse look-ahead token after shifting the error
+ token. */
+ goto yyerrlab1;
+
+
+/*---------------------------------------------------.
+| yyerrorlab -- error raised explicitly by YYERROR. |
+`---------------------------------------------------*/
+yyerrorlab:
+
+ /* Pacify compilers like GCC when the user code never invokes
+ YYERROR and the label yyerrorlab therefore never appears in user
+ code. */
+ if (/*CONSTCOND*/ 0)
+ goto yyerrorlab;
+
+ /* Do not reclaim the symbols of the rule which action triggered
+ this YYERROR. */
+ YYPOPSTACK (yylen);
+ yylen = 0;
+ YY_STACK_PRINT (yyss, yyssp);
+ yystate = *yyssp;
+ goto yyerrlab1;
+
+
+/*-------------------------------------------------------------.
+| yyerrlab1 -- common code for both syntax error and YYERROR. |
+`-------------------------------------------------------------*/
+yyerrlab1:
+ yyerrstatus = 3; /* Each real token shifted decrements this. */
+
+ for (;;)
+ {
+ yyn = yypact[yystate];
+ if (yyn != YYPACT_NINF)
+ {
+ yyn += YYTERROR;
+ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+ {
+ yyn = yytable[yyn];
+ if (0 < yyn)
+ break;
+ }
+ }
- {
- size_t yysz = yysize + strlen (yyformat);
- if (yysz < yysize)
- yysize_overflow = yytrue;
- yysize = yysz;
- }
+ /* Pop the current state because it cannot handle the error token. */
+ if (yyssp == yyss)
+ YYABORT;
- if (!yysize_overflow)
- yymsg = (char *) YYMALLOC (yysize);
- if (yymsg)
- {
- char *yyp = yymsg;
- int yyi = 0;
- while ((*yyp = *yyformat))
- {
- if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
- {
- yyp += yytnamerr (yyp, yyarg[yyi++]);
- yyformat += 2;
- }
- else
- {
- yyp++;
- yyformat++;
- }
- }
- yyerror (yymsg);
- YYFREE (yymsg);
- }
- else
- {
- yyerror (YY_("syntax error"));
- yyMemoryExhausted (yystackp);
+ yydestruct ("Error: popping",
+ yystos[yystate], yyvsp);
+ YYPOPSTACK (1);
+ yystate = *yyssp;
+ YY_STACK_PRINT (yyss, yyssp);
}
- }
-#endif /* YYERROR_VERBOSE */
- yynerrs += 1;
-}
-/* Recover from a syntax error on *YYSTACKP, assuming that *YYSTACKP->YYTOKENP,
- yylval, and yylloc are the syntactic category, semantic value, and location
- of the lookahead. */
-static void
-yyrecoverSyntaxError (yyGLRStack* yystackp)
-{
- if (yystackp->yyerrState == 3)
- /* We just shifted the error token and (perhaps) took some
- reductions. Skip tokens until we can proceed. */
- while (yytrue)
- {
- yySymbol yytoken;
- int yyj;
- if (yychar == YYEOF)
- yyFail (yystackp, YY_NULLPTR);
- if (yychar != YYEMPTY)
- {
- yytoken = YYTRANSLATE (yychar);
- yydestruct ("Error: discarding",
- yytoken, &yylval);
- yychar = YYEMPTY;
- }
- yytoken = yygetToken (&yychar);
- yyj = yypact[yystackp->yytops.yystates[0]->yylrState];
- if (yypact_value_is_default (yyj))
- return;
- yyj += yytoken;
- if (yyj < 0 || YYLAST < yyj || yycheck[yyj] != yytoken)
- {
- if (yydefact[yystackp->yytops.yystates[0]->yylrState] != 0)
- return;
- }
- else if (! yytable_value_is_error (yytable[yyj]))
- return;
- }
+ if (yyn == YYFINAL)
+ YYACCEPT;
- /* Reduce to one stack. */
- {
- size_t yyk;
- for (yyk = 0; yyk < yystackp->yytops.yysize; yyk += 1)
- if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
- break;
- if (yyk >= yystackp->yytops.yysize)
- yyFail (yystackp, YY_NULLPTR);
- for (yyk += 1; yyk < yystackp->yytops.yysize; yyk += 1)
- yymarkStackDeleted (yystackp, yyk);
- yyremoveDeletes (yystackp);
- yycompressStack (yystackp);
- }
-
- /* Now pop stack until we find a state that shifts the error token. */
- yystackp->yyerrState = 3;
- while (yystackp->yytops.yystates[0] != YY_NULLPTR)
- {
- yyGLRState *yys = yystackp->yytops.yystates[0];
- int yyj = yypact[yys->yylrState];
- if (! yypact_value_is_default (yyj))
- {
- yyj += YYTERROR;
- if (0 <= yyj && yyj <= YYLAST && yycheck[yyj] == YYTERROR
- && yyisShiftAction (yytable[yyj]))
- {
- /* Shift the error token. */
- YY_SYMBOL_PRINT ("Shifting", yystos[yytable[yyj]],
- &yylval, &yyerrloc);
- yyglrShift (yystackp, 0, yytable[yyj],
- yys->yyposn, &yylval);
- yys = yystackp->yytops.yystates[0];
- break;
- }
- }
- if (yys->yypred != YY_NULLPTR)
- yydestroyGLRState ("Error: popping", yys);
- yystackp->yytops.yystates[0] = yys->yypred;
- yystackp->yynextFree -= 1;
- yystackp->yyspaceLeft += 1;
- }
- if (yystackp->yytops.yystates[0] == YY_NULLPTR)
- yyFail (yystackp, YY_NULLPTR);
-}
+ *++yyvsp = yylval;
-#define YYCHK1(YYE) \
- do { \
- switch (YYE) { \
- case yyok: \
- break; \
- case yyabort: \
- goto yyabortlab; \
- case yyaccept: \
- goto yyacceptlab; \
- case yyerr: \
- goto yyuser_error; \
- default: \
- goto yybuglab; \
- } \
- } while (0)
-/*----------.
-| yyparse. |
-`----------*/
+ /* Shift the error token. */
+ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-int
-yyparse (void)
-{
- int yyresult;
- yyGLRStack yystack;
- yyGLRStack* const yystackp = &yystack;
- size_t yyposn;
-
- YYDPRINTF ((stderr, "Starting parse\n"));
+ yystate = yyn;
+ goto yynewstate;
- yychar = YYEMPTY;
- yylval = yyval_default;
-
- if (! yyinitGLRStack (yystackp, YYINITDEPTH))
- goto yyexhaustedlab;
- switch (YYSETJMP (yystack.yyexception_buffer))
- {
- case 0: break;
- case 1: goto yyabortlab;
- case 2: goto yyexhaustedlab;
- default: goto yybuglab;
- }
- yyglrShift (&yystack, 0, 0, 0, &yylval);
- yyposn = 0;
-
- while (yytrue)
- {
- /* For efficiency, we have two loops, the first of which is
- specialized to deterministic operation (single stack, no
- potential ambiguity). */
- /* Standard mode */
- while (yytrue)
- {
- yyStateNum yystate = yystack.yytops.yystates[0]->yylrState;
- YYDPRINTF ((stderr, "Entering state %d\n", yystate));
- if (yystate == YYFINAL)
- goto yyacceptlab;
- if (yyisDefaultedState (yystate))
- {
- yyRuleNum yyrule = yydefaultAction (yystate);
- if (yyrule == 0)
- {
- yyreportSyntaxError (&yystack);
- goto yyuser_error;
- }
- YYCHK1 (yyglrReduce (&yystack, 0, yyrule, yytrue));
- }
- else
- {
- yySymbol yytoken = yygetToken (&yychar);
- const short* yyconflicts;
- int yyaction = yygetLRActions (yystate, yytoken, &yyconflicts);
- if (*yyconflicts != 0)
- break;
- if (yyisShiftAction (yyaction))
- {
- YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
- yychar = YYEMPTY;
- yyposn += 1;
- yyglrShift (&yystack, 0, yyaction, yyposn, &yylval);
- if (0 < yystack.yyerrState)
- yystack.yyerrState -= 1;
- }
- else if (yyisErrorAction (yyaction))
- { yyreportSyntaxError (&yystack);
- goto yyuser_error;
- }
- else
- YYCHK1 (yyglrReduce (&yystack, 0, -yyaction, yytrue));
- }
- }
-
- while (yytrue)
- {
- yySymbol yytoken_to_shift;
- size_t yys;
-
- for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
- yystackp->yytops.yylookaheadNeeds[yys] = (yybool) (yychar != YYEMPTY);
-
- /* yyprocessOneStack returns one of three things:
-
- - An error flag. If the caller is yyprocessOneStack, it
- immediately returns as well. When the caller is finally
- yyparse, it jumps to an error label via YYCHK1.
-
- - yyok, but yyprocessOneStack has invoked yymarkStackDeleted
- (&yystack, yys), which sets the top state of yys to NULL. Thus,
- yyparse's following invocation of yyremoveDeletes will remove
- the stack.
-
- - yyok, when ready to shift a token.
-
- Except in the first case, yyparse will invoke yyremoveDeletes and
- then shift the next token onto all remaining stacks. This
- synchronization of the shift (that is, after all preceding
- reductions on all stacks) helps prevent double destructor calls
- on yylval in the event of memory exhaustion. */
-
- for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
- YYCHK1 (yyprocessOneStack (&yystack, yys, yyposn));
- yyremoveDeletes (&yystack);
- if (yystack.yytops.yysize == 0)
- {
- yyundeleteLastStack (&yystack);
- if (yystack.yytops.yysize == 0)
- yyFail (&yystack, YY_("syntax error"));
- YYCHK1 (yyresolveStack (&yystack));
- YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
- yyreportSyntaxError (&yystack);
- goto yyuser_error;
- }
-
- /* If any yyglrShift call fails, it will fail after shifting. Thus,
- a copy of yylval will already be on stack 0 in the event of a
- failure in the following loop. Thus, yychar is set to YYEMPTY
- before the loop to make sure the user destructor for yylval isn't
- called twice. */
- yytoken_to_shift = YYTRANSLATE (yychar);
- yychar = YYEMPTY;
- yyposn += 1;
- for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
- {
- yyStateNum yystate = yystack.yytops.yystates[yys]->yylrState;
- const short* yyconflicts;
- int yyaction = yygetLRActions (yystate, yytoken_to_shift,
- &yyconflicts);
- /* Note that yyconflicts were handled by yyprocessOneStack. */
- YYDPRINTF ((stderr, "On stack %lu, ", (unsigned long) yys));
- YY_SYMBOL_PRINT ("shifting", yytoken_to_shift, &yylval, &yylloc);
- yyglrShift (&yystack, yys, yyaction, yyposn,
- &yylval);
- YYDPRINTF ((stderr, "Stack %lu now in state #%d\n",
- (unsigned long) yys,
- yystack.yytops.yystates[yys]->yylrState));
- }
-
- if (yystack.yytops.yysize == 1)
- {
- YYCHK1 (yyresolveStack (&yystack));
- YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
- yycompressStack (&yystack);
- break;
- }
- }
- continue;
- yyuser_error:
- yyrecoverSyntaxError (&yystack);
- yyposn = yystack.yytops.yystates[0]->yyposn;
- }
- yyacceptlab:
+/*-------------------------------------.
+| yyacceptlab -- YYACCEPT comes here. |
+`-------------------------------------*/
+yyacceptlab:
yyresult = 0;
goto yyreturn;
- yybuglab:
- YYASSERT (yyfalse);
- goto yyabortlab;
-
- yyabortlab:
+/*-----------------------------------.
+| yyabortlab -- YYABORT comes here. |
+`-----------------------------------*/
+yyabortlab:
yyresult = 1;
goto yyreturn;
- yyexhaustedlab:
+#ifndef yyoverflow
+/*-------------------------------------------------.
+| yyexhaustedlab -- memory exhaustion comes here. |
+`-------------------------------------------------*/
+yyexhaustedlab:
yyerror (YY_("memory exhausted"));
yyresult = 2;
- goto yyreturn;
-
- yyreturn:
- if (yychar != YYEMPTY)
- yydestruct ("Cleanup: discarding lookahead",
- YYTRANSLATE (yychar), &yylval);
-
- /* If the stack is well-formed, pop the stack until it is empty,
- destroying its entries as we go. But free the stack regardless
- of whether it is well-formed. */
- if (yystack.yyitems)
- {
- yyGLRState** yystates = yystack.yytops.yystates;
- if (yystates)
- {
- size_t yysize = yystack.yytops.yysize;
- size_t yyk;
- for (yyk = 0; yyk < yysize; yyk += 1)
- if (yystates[yyk])
- {
- while (yystates[yyk])
- {
- yyGLRState *yys = yystates[yyk];
- if (yys->yypred != YY_NULLPTR)
- yydestroyGLRState ("Cleanup: popping", yys);
- yystates[yyk] = yys->yypred;
- yystack.yynextFree -= 1;
- yystack.yyspaceLeft += 1;
- }
- break;
- }
- }
- yyfreeGLRStack (&yystack);
- }
-
- return yyresult;
-}
-
-/* DEBUGGING ONLY */
-#if YYDEBUG
-static void
-yy_yypstack (yyGLRState* yys)
-{
- if (yys->yypred)
- {
- yy_yypstack (yys->yypred);
- YYFPRINTF (stderr, " -> ");
- }
- YYFPRINTF (stderr, "%d@%lu", yys->yylrState,
- (unsigned long) yys->yyposn);
-}
-
-static void
-yypstates (yyGLRState* yyst)
-{
- if (yyst == YY_NULLPTR)
- YYFPRINTF (stderr, "<null>");
- else
- yy_yypstack (yyst);
- YYFPRINTF (stderr, "\n");
-}
-
-static void
-yypstack (yyGLRStack* yystackp, size_t yyk)
-{
- yypstates (yystackp->yytops.yystates[yyk]);
-}
-
-#define YYINDEX(YYX) \
- ((YYX) == YY_NULLPTR ? -1 : (yyGLRStackItem*) (YYX) - yystackp->yyitems)
-
+ /* Fall through. */
+#endif
-static void
-yypdumpstack (yyGLRStack* yystackp)
-{
- yyGLRStackItem* yyp;
- size_t yyi;
- for (yyp = yystackp->yyitems; yyp < yystackp->yynextFree; yyp += 1)
- {
- YYFPRINTF (stderr, "%3lu. ",
- (unsigned long) (yyp - yystackp->yyitems));
- if (*(yybool *) yyp)
- {
- YYASSERT (yyp->yystate.yyisState);
- YYASSERT (yyp->yyoption.yyisState);
- YYFPRINTF (stderr, "Res: %d, LR State: %d, posn: %lu, pred: %ld",
- yyp->yystate.yyresolved, yyp->yystate.yylrState,
- (unsigned long) yyp->yystate.yyposn,
- (long) YYINDEX (yyp->yystate.yypred));
- if (! yyp->yystate.yyresolved)
- YYFPRINTF (stderr, ", firstVal: %ld",
- (long) YYINDEX (yyp->yystate
- .yysemantics.yyfirstVal));
- }
- else
- {
- YYASSERT (!yyp->yystate.yyisState);
- YYASSERT (!yyp->yyoption.yyisState);
- YYFPRINTF (stderr, "Option. rule: %d, state: %ld, next: %ld",
- yyp->yyoption.yyrule - 1,
- (long) YYINDEX (yyp->yyoption.yystate),
- (long) YYINDEX (yyp->yyoption.yynext));
- }
- YYFPRINTF (stderr, "\n");
+yyreturn:
+ if (yychar != YYEOF && yychar != YYEMPTY)
+ yydestruct ("Cleanup: discarding lookahead",
+ yytoken, &yylval);
+ /* Do not reclaim the symbols of the rule which action triggered
+ this YYABORT or YYACCEPT. */
+ YYPOPSTACK (yylen);
+ YY_STACK_PRINT (yyss, yyssp);
+ while (yyssp != yyss)
+ {
+ yydestruct ("Cleanup: popping",
+ yystos[*yyssp], yyvsp);
+ YYPOPSTACK (1);
}
- YYFPRINTF (stderr, "Tops:");
- for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
- YYFPRINTF (stderr, "%lu: %ld; ", (unsigned long) yyi,
- (long) YYINDEX (yystackp->yytops.yystates[yyi]));
- YYFPRINTF (stderr, "\n");
-}
+#ifndef yyoverflow
+ if (yyss != yyssa)
+ YYSTACK_FREE (yyss);
+#endif
+#if YYERROR_VERBOSE
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
#endif
+ /* Make sure YYID is used. */
+ return YYID (yyresult);
+}
-#undef yylval
-#undef yychar
-#undef yynerrs
+#line 638 "engines/director/lingo/lingo-gr.y"
-#line 639 "engines/director/lingo/lingo-gr.y"
diff --git a/engines/director/lingo/lingo-gr.h b/engines/director/lingo/lingo-gr.h
index b337474b19..9930ecdbad 100644
--- a/engines/director/lingo/lingo-gr.h
+++ b/engines/director/lingo/lingo-gr.h
@@ -1,13 +1,14 @@
-/* A Bison parser, made by GNU Bison 3.4.2. */
+/* A Bison parser, made by GNU Bison 2.3. */
-/* Skeleton interface for Bison GLR parsers in C
+/* Skeleton interface for Bison's Yacc-like parsers in C
- Copyright (C) 2002-2015, 2018-2019 Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+ Free Software Foundation, Inc.
- This program is free software: you can redistribute it and/or modify
+ 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
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -15,7 +16,9 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
@@ -30,120 +33,203 @@
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
-#ifndef YY_YY_ENGINES_DIRECTOR_LINGO_LINGO_GR_HPP_INCLUDED
-# define YY_YY_ENGINES_DIRECTOR_LINGO_LINGO_GR_HPP_INCLUDED
-/* Debug traces. */
-#ifndef YYDEBUG
-# define YYDEBUG 1
-#endif
-#if YYDEBUG
-extern int yydebug;
-#endif
-
-/* Token type. */
+/* Tokens. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
- enum yytokentype
- {
- UNARY = 258,
- CASTREF = 259,
- VOID = 260,
- VAR = 261,
- POINT = 262,
- RECT = 263,
- ARRAY = 264,
- OBJECT = 265,
- REFERENCE = 266,
- INT = 267,
- ARGC = 268,
- ARGCNORET = 269,
- THEENTITY = 270,
- THEENTITYWITHID = 271,
- FLOAT = 272,
- BLTIN = 273,
- BLTINNOARGS = 274,
- BLTINNOARGSORONE = 275,
- BLTINONEARG = 276,
- BLTINARGLIST = 277,
- TWOWORDBUILTIN = 278,
- FBLTIN = 279,
- FBLTINNOARGS = 280,
- FBLTINONEARG = 281,
- FBLTINARGLIST = 282,
- RBLTIN = 283,
- RBLTINONEARG = 284,
- ID = 285,
- STRING = 286,
- HANDLER = 287,
- SYMBOL = 288,
- ENDCLAUSE = 289,
- tPLAYACCEL = 290,
- tDOWN = 291,
- tELSE = 292,
- tNLELSIF = 293,
- tEXIT = 294,
- tFRAME = 295,
- tGLOBAL = 296,
- tGO = 297,
- tIF = 298,
- tINTO = 299,
- tLOOP = 300,
- tMACRO = 301,
- tMOVIE = 302,
- tNEXT = 303,
- tOF = 304,
- tPREVIOUS = 305,
- tPUT = 306,
- tREPEAT = 307,
- tSET = 308,
- tTHEN = 309,
- tTHENNL = 310,
- tTO = 311,
- tWHEN = 312,
- tWITH = 313,
- tWHILE = 314,
- tNLELSE = 315,
- tFACTORY = 316,
- tMETHOD = 317,
- tOPEN = 318,
- tPLAY = 319,
- tDONE = 320,
- tINSTANCE = 321,
- tGE = 322,
- tLE = 323,
- tGT = 324,
- tLT = 325,
- tEQ = 326,
- tNEQ = 327,
- tAND = 328,
- tOR = 329,
- tNOT = 330,
- tMOD = 331,
- tAFTER = 332,
- tBEFORE = 333,
- tCONCAT = 334,
- tCONTAINS = 335,
- tSTARTS = 336,
- tCHAR = 337,
- tITEM = 338,
- tLINE = 339,
- tWORD = 340,
- tSPRITE = 341,
- tINTERSECTS = 342,
- tWITHIN = 343,
- tTELL = 344,
- tPROPERTY = 345,
- tON = 346,
- tME = 347
- };
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
+ know about them. */
+ enum yytokentype {
+ UNARY = 258,
+ CASTREF = 259,
+ VOID = 260,
+ VAR = 261,
+ POINT = 262,
+ RECT = 263,
+ ARRAY = 264,
+ OBJECT = 265,
+ REFERENCE = 266,
+ INT = 267,
+ ARGC = 268,
+ ARGCNORET = 269,
+ THEENTITY = 270,
+ THEENTITYWITHID = 271,
+ FLOAT = 272,
+ BLTIN = 273,
+ BLTINNOARGS = 274,
+ BLTINNOARGSORONE = 275,
+ BLTINONEARG = 276,
+ BLTINARGLIST = 277,
+ TWOWORDBUILTIN = 278,
+ FBLTIN = 279,
+ FBLTINNOARGS = 280,
+ FBLTINONEARG = 281,
+ FBLTINARGLIST = 282,
+ RBLTIN = 283,
+ RBLTINONEARG = 284,
+ ID = 285,
+ STRING = 286,
+ HANDLER = 287,
+ SYMBOL = 288,
+ ENDCLAUSE = 289,
+ tPLAYACCEL = 290,
+ tDOWN = 291,
+ tELSE = 292,
+ tNLELSIF = 293,
+ tEXIT = 294,
+ tFRAME = 295,
+ tGLOBAL = 296,
+ tGO = 297,
+ tIF = 298,
+ tINTO = 299,
+ tLOOP = 300,
+ tMACRO = 301,
+ tMOVIE = 302,
+ tNEXT = 303,
+ tOF = 304,
+ tPREVIOUS = 305,
+ tPUT = 306,
+ tREPEAT = 307,
+ tSET = 308,
+ tTHEN = 309,
+ tTHENNL = 310,
+ tTO = 311,
+ tWHEN = 312,
+ tWITH = 313,
+ tWHILE = 314,
+ tNLELSE = 315,
+ tFACTORY = 316,
+ tMETHOD = 317,
+ tOPEN = 318,
+ tPLAY = 319,
+ tDONE = 320,
+ tINSTANCE = 321,
+ tGE = 322,
+ tLE = 323,
+ tGT = 324,
+ tLT = 325,
+ tEQ = 326,
+ tNEQ = 327,
+ tAND = 328,
+ tOR = 329,
+ tNOT = 330,
+ tMOD = 331,
+ tAFTER = 332,
+ tBEFORE = 333,
+ tCONCAT = 334,
+ tCONTAINS = 335,
+ tSTARTS = 336,
+ tCHAR = 337,
+ tITEM = 338,
+ tLINE = 339,
+ tWORD = 340,
+ tSPRITE = 341,
+ tINTERSECTS = 342,
+ tWITHIN = 343,
+ tTELL = 344,
+ tPROPERTY = 345,
+ tON = 346,
+ tME = 347
+ };
#endif
+/* Tokens. */
+#define UNARY 258
+#define CASTREF 259
+#define VOID 260
+#define VAR 261
+#define POINT 262
+#define RECT 263
+#define ARRAY 264
+#define OBJECT 265
+#define REFERENCE 266
+#define INT 267
+#define ARGC 268
+#define ARGCNORET 269
+#define THEENTITY 270
+#define THEENTITYWITHID 271
+#define FLOAT 272
+#define BLTIN 273
+#define BLTINNOARGS 274
+#define BLTINNOARGSORONE 275
+#define BLTINONEARG 276
+#define BLTINARGLIST 277
+#define TWOWORDBUILTIN 278
+#define FBLTIN 279
+#define FBLTINNOARGS 280
+#define FBLTINONEARG 281
+#define FBLTINARGLIST 282
+#define RBLTIN 283
+#define RBLTINONEARG 284
+#define ID 285
+#define STRING 286
+#define HANDLER 287
+#define SYMBOL 288
+#define ENDCLAUSE 289
+#define tPLAYACCEL 290
+#define tDOWN 291
+#define tELSE 292
+#define tNLELSIF 293
+#define tEXIT 294
+#define tFRAME 295
+#define tGLOBAL 296
+#define tGO 297
+#define tIF 298
+#define tINTO 299
+#define tLOOP 300
+#define tMACRO 301
+#define tMOVIE 302
+#define tNEXT 303
+#define tOF 304
+#define tPREVIOUS 305
+#define tPUT 306
+#define tREPEAT 307
+#define tSET 308
+#define tTHEN 309
+#define tTHENNL 310
+#define tTO 311
+#define tWHEN 312
+#define tWITH 313
+#define tWHILE 314
+#define tNLELSE 315
+#define tFACTORY 316
+#define tMETHOD 317
+#define tOPEN 318
+#define tPLAY 319
+#define tDONE 320
+#define tINSTANCE 321
+#define tGE 322
+#define tLE 323
+#define tGT 324
+#define tLT 325
+#define tEQ 326
+#define tNEQ 327
+#define tAND 328
+#define tOR 329
+#define tNOT 330
+#define tMOD 331
+#define tAFTER 332
+#define tBEFORE 333
+#define tCONCAT 334
+#define tCONTAINS 335
+#define tSTARTS 336
+#define tCHAR 337
+#define tITEM 338
+#define tLINE 339
+#define tWORD 340
+#define tSPRITE 341
+#define tINTERSECTS 342
+#define tWITHIN 343
+#define tTELL 344
+#define tPROPERTY 345
+#define tON 346
+#define tME 347
+
+
+
-/* Value type. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-union YYSTYPE
+typedef union YYSTYPE
+#line 79 "engines/director/lingo/lingo-gr.y"
{
-#line 80 "engines/director/lingo/lingo-gr.y"
-
Common::String *s;
int i;
double f;
@@ -151,18 +237,14 @@ union YYSTYPE
int code;
int narg; /* number of arguments */
Common::Array<double> *arr;
-
-#line 156 "engines/director/lingo/lingo-gr.hpp"
-
-};
-typedef union YYSTYPE YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
+}
+/* Line 1529 of yacc.c. */
+#line 243 "engines/director/lingo/lingo-gr.hpp"
+ YYSTYPE;
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
#endif
-
extern YYSTYPE yylval;
-int yyparse (void);
-
-#endif /* !YY_YY_ENGINES_DIRECTOR_LINGO_LINGO_GR_HPP_INCLUDED */
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index f5b52688be..d05d37bcb3 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -45,7 +45,6 @@
%debug
-%glr-parser
%{
#define FORBIDDEN_SYMBOL_ALLOW_ALL