From 6cfa4bbbe517828cd32c1eacd728837f2a3ecf70 Mon Sep 17 00:00:00 2001 From: nhmall Date: Fri, 4 Dec 2015 07:57:35 -0500 Subject: [PATCH] lev_yacc and lev_lex from master --- sys/share/lev_lex.c | 2 +- sys/share/lev_yacc.c | 8472 +++++++++++++++++++----------------------- 2 files changed, 3791 insertions(+), 4683 deletions(-) diff --git a/sys/share/lev_lex.c b/sys/share/lev_lex.c index a3177f0b7..dd76b8484 100644 --- a/sys/share/lev_lex.c +++ b/sys/share/lev_lex.c @@ -1089,7 +1089,7 @@ int yy_flex_debug = 0; #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; -/* NetHack 3.6 lev_comp.l $NHDT-Date: 1449233107 2015/12/04 12:45:07 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.22 $ */ +/* NetHack 3.6 lev_comp.l $NHDT-Date: 1449188840 2015/12/04 00:27:20 $ $NHDT-Branch: master $:$NHDT-Revision: 1.22 $ */ /* Copyright (c) 1989 by Jean-Christophe Collet */ /* NetHack may be freely redistributed. See license for details. */ diff --git a/sys/share/lev_yacc.c b/sys/share/lev_yacc.c index 2beac8408..62e1f2042 100644 --- a/sys/share/lev_yacc.c +++ b/sys/share/lev_yacc.c @@ -1,70 +1,17 @@ -/* A Bison parser, made by GNU Bison 3.0.2. */ - -/* Bison implementation for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, 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 - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - 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 . */ - -/* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work - under terms of your choice, so long as that work isn't itself a - parser generator using the skeleton or a modified version thereof - as a parser skeleton. Alternatively, if you modify or redistribute - the parser skeleton itself, you may (at your option) remove this - special exception, which will cause the skeleton and the resulting - Bison output files to be licensed under the GNU General Public - License without this special exception. - - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - -/* C LALR(1) parser skeleton written by Richard Stallman, by - simplifying the original so-called "semantic" parser. */ - -/* 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.0.2" - -/* Skeleton name. */ -#define YYSKELETON_NAME "yacc.c" - -/* Pure parsers. */ -#define YYPURE 0 - -/* Push parsers. */ -#define YYPUSH 0 - -/* Pull parsers. */ -#define YYPULL 1 - - - - -/* Copy the first part of user declarations. */ -#line 1 "lev_comp.y" /* yacc.c:339 */ - -/* NetHack 3.6 lev_comp.y $NHDT-Date: 1448074095 2015/11/21 02:48:15 $ $NHDT-Branch: master $:$NHDT-Revision: 1.18 $ */ +#ifndef lint +/* static char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93"; */ +/* static char nhsccsid[] = "@(#)yaccpar 1.9.0-nh (NetHack) 12/03/2015"; */ +#endif +#define YYBYACC 1 +#define YYMAJOR 1 +#define YYMINOR 9 +#define YYSUBMINOR "0-nh" + +#define yyclearin (yychar=(-1)) +#define yyerrok (yyerrflag=0) +#define YYRECOVERING (yyerrflag!=0) +#define YYPREFIX "yy" +/* NetHack 3.6 lev_comp.y $NHDT-Date: 1449233826 2015/12/04 12:57:06 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.19 $ */ /* Copyright (c) 1989 by Jean-Christophe Collet */ /* NetHack may be freely redistributed. See license for details. */ @@ -206,401 +153,8 @@ extern const char *fname; extern char curr_token[512]; - -#line 211 "y.tab.c" /* yacc.c:339 */ - -# ifndef YY_NULLPTR -# if defined __cplusplus && 201103L <= __cplusplus -# define YY_NULLPTR nullptr -# else -# define YY_NULLPTR 0 -# endif -# endif - -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 -#endif - -/* In a future release of Bison, this section will be replaced - by #include "y.tab.h". */ -#ifndef YY_YY_Y_TAB_H_INCLUDED -# define YY_YY_Y_TAB_H_INCLUDED -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int yydebug; -#endif - -/* Token type. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - enum yytokentype - { - CHAR = 258, - INTEGER = 259, - BOOLEAN = 260, - PERCENT = 261, - SPERCENT = 262, - MINUS_INTEGER = 263, - PLUS_INTEGER = 264, - MAZE_GRID_ID = 265, - SOLID_FILL_ID = 266, - MINES_ID = 267, - ROGUELEV_ID = 268, - MESSAGE_ID = 269, - MAZE_ID = 270, - LEVEL_ID = 271, - LEV_INIT_ID = 272, - GEOMETRY_ID = 273, - NOMAP_ID = 274, - OBJECT_ID = 275, - COBJECT_ID = 276, - MONSTER_ID = 277, - TRAP_ID = 278, - DOOR_ID = 279, - DRAWBRIDGE_ID = 280, - object_ID = 281, - monster_ID = 282, - terrain_ID = 283, - MAZEWALK_ID = 284, - WALLIFY_ID = 285, - REGION_ID = 286, - FILLING = 287, - IRREGULAR = 288, - JOINED = 289, - ALTAR_ID = 290, - LADDER_ID = 291, - STAIR_ID = 292, - NON_DIGGABLE_ID = 293, - NON_PASSWALL_ID = 294, - ROOM_ID = 295, - PORTAL_ID = 296, - TELEPRT_ID = 297, - BRANCH_ID = 298, - LEV = 299, - MINERALIZE_ID = 300, - CORRIDOR_ID = 301, - GOLD_ID = 302, - ENGRAVING_ID = 303, - FOUNTAIN_ID = 304, - POOL_ID = 305, - SINK_ID = 306, - NONE = 307, - RAND_CORRIDOR_ID = 308, - DOOR_STATE = 309, - LIGHT_STATE = 310, - CURSE_TYPE = 311, - ENGRAVING_TYPE = 312, - DIRECTION = 313, - RANDOM_TYPE = 314, - RANDOM_TYPE_BRACKET = 315, - A_REGISTER = 316, - ALIGNMENT = 317, - LEFT_OR_RIGHT = 318, - CENTER = 319, - TOP_OR_BOT = 320, - ALTAR_TYPE = 321, - UP_OR_DOWN = 322, - SUBROOM_ID = 323, - NAME_ID = 324, - FLAGS_ID = 325, - FLAG_TYPE = 326, - MON_ATTITUDE = 327, - MON_ALERTNESS = 328, - MON_APPEARANCE = 329, - ROOMDOOR_ID = 330, - IF_ID = 331, - ELSE_ID = 332, - TERRAIN_ID = 333, - HORIZ_OR_VERT = 334, - REPLACE_TERRAIN_ID = 335, - EXIT_ID = 336, - SHUFFLE_ID = 337, - QUANTITY_ID = 338, - BURIED_ID = 339, - LOOP_ID = 340, - FOR_ID = 341, - TO_ID = 342, - SWITCH_ID = 343, - CASE_ID = 344, - BREAK_ID = 345, - DEFAULT_ID = 346, - ERODED_ID = 347, - TRAPPED_STATE = 348, - RECHARGED_ID = 349, - INVIS_ID = 350, - GREASED_ID = 351, - FEMALE_ID = 352, - CANCELLED_ID = 353, - REVIVED_ID = 354, - AVENGE_ID = 355, - FLEEING_ID = 356, - BLINDED_ID = 357, - PARALYZED_ID = 358, - STUNNED_ID = 359, - CONFUSED_ID = 360, - SEENTRAPS_ID = 361, - ALL_ID = 362, - MONTYPE_ID = 363, - GRAVE_ID = 364, - ERODEPROOF_ID = 365, - FUNCTION_ID = 366, - MSG_OUTPUT_TYPE = 367, - COMPARE_TYPE = 368, - UNKNOWN_TYPE = 369, - rect_ID = 370, - fillrect_ID = 371, - line_ID = 372, - randline_ID = 373, - grow_ID = 374, - selection_ID = 375, - flood_ID = 376, - rndcoord_ID = 377, - circle_ID = 378, - ellipse_ID = 379, - filter_ID = 380, - complement_ID = 381, - gradient_ID = 382, - GRADIENT_TYPE = 383, - LIMITED = 384, - HUMIDITY_TYPE = 385, - STRING = 386, - MAP_ID = 387, - NQSTRING = 388, - VARSTRING = 389, - CFUNC = 390, - CFUNC_INT = 391, - CFUNC_STR = 392, - CFUNC_COORD = 393, - CFUNC_REGION = 394, - VARSTRING_INT = 395, - VARSTRING_INT_ARRAY = 396, - VARSTRING_STRING = 397, - VARSTRING_STRING_ARRAY = 398, - VARSTRING_VAR = 399, - VARSTRING_VAR_ARRAY = 400, - VARSTRING_COORD = 401, - VARSTRING_COORD_ARRAY = 402, - VARSTRING_REGION = 403, - VARSTRING_REGION_ARRAY = 404, - VARSTRING_MAPCHAR = 405, - VARSTRING_MAPCHAR_ARRAY = 406, - VARSTRING_MONST = 407, - VARSTRING_MONST_ARRAY = 408, - VARSTRING_OBJ = 409, - VARSTRING_OBJ_ARRAY = 410, - VARSTRING_SEL = 411, - VARSTRING_SEL_ARRAY = 412, - METHOD_INT = 413, - METHOD_INT_ARRAY = 414, - METHOD_STRING = 415, - METHOD_STRING_ARRAY = 416, - METHOD_VAR = 417, - METHOD_VAR_ARRAY = 418, - METHOD_COORD = 419, - METHOD_COORD_ARRAY = 420, - METHOD_REGION = 421, - METHOD_REGION_ARRAY = 422, - METHOD_MAPCHAR = 423, - METHOD_MAPCHAR_ARRAY = 424, - METHOD_MONST = 425, - METHOD_MONST_ARRAY = 426, - METHOD_OBJ = 427, - METHOD_OBJ_ARRAY = 428, - METHOD_SEL = 429, - METHOD_SEL_ARRAY = 430, - DICE = 431 - }; -#endif -/* Tokens. */ -#define CHAR 258 -#define INTEGER 259 -#define BOOLEAN 260 -#define PERCENT 261 -#define SPERCENT 262 -#define MINUS_INTEGER 263 -#define PLUS_INTEGER 264 -#define MAZE_GRID_ID 265 -#define SOLID_FILL_ID 266 -#define MINES_ID 267 -#define ROGUELEV_ID 268 -#define MESSAGE_ID 269 -#define MAZE_ID 270 -#define LEVEL_ID 271 -#define LEV_INIT_ID 272 -#define GEOMETRY_ID 273 -#define NOMAP_ID 274 -#define OBJECT_ID 275 -#define COBJECT_ID 276 -#define MONSTER_ID 277 -#define TRAP_ID 278 -#define DOOR_ID 279 -#define DRAWBRIDGE_ID 280 -#define object_ID 281 -#define monster_ID 282 -#define terrain_ID 283 -#define MAZEWALK_ID 284 -#define WALLIFY_ID 285 -#define REGION_ID 286 -#define FILLING 287 -#define IRREGULAR 288 -#define JOINED 289 -#define ALTAR_ID 290 -#define LADDER_ID 291 -#define STAIR_ID 292 -#define NON_DIGGABLE_ID 293 -#define NON_PASSWALL_ID 294 -#define ROOM_ID 295 -#define PORTAL_ID 296 -#define TELEPRT_ID 297 -#define BRANCH_ID 298 -#define LEV 299 -#define MINERALIZE_ID 300 -#define CORRIDOR_ID 301 -#define GOLD_ID 302 -#define ENGRAVING_ID 303 -#define FOUNTAIN_ID 304 -#define POOL_ID 305 -#define SINK_ID 306 -#define NONE 307 -#define RAND_CORRIDOR_ID 308 -#define DOOR_STATE 309 -#define LIGHT_STATE 310 -#define CURSE_TYPE 311 -#define ENGRAVING_TYPE 312 -#define DIRECTION 313 -#define RANDOM_TYPE 314 -#define RANDOM_TYPE_BRACKET 315 -#define A_REGISTER 316 -#define ALIGNMENT 317 -#define LEFT_OR_RIGHT 318 -#define CENTER 319 -#define TOP_OR_BOT 320 -#define ALTAR_TYPE 321 -#define UP_OR_DOWN 322 -#define SUBROOM_ID 323 -#define NAME_ID 324 -#define FLAGS_ID 325 -#define FLAG_TYPE 326 -#define MON_ATTITUDE 327 -#define MON_ALERTNESS 328 -#define MON_APPEARANCE 329 -#define ROOMDOOR_ID 330 -#define IF_ID 331 -#define ELSE_ID 332 -#define TERRAIN_ID 333 -#define HORIZ_OR_VERT 334 -#define REPLACE_TERRAIN_ID 335 -#define EXIT_ID 336 -#define SHUFFLE_ID 337 -#define QUANTITY_ID 338 -#define BURIED_ID 339 -#define LOOP_ID 340 -#define FOR_ID 341 -#define TO_ID 342 -#define SWITCH_ID 343 -#define CASE_ID 344 -#define BREAK_ID 345 -#define DEFAULT_ID 346 -#define ERODED_ID 347 -#define TRAPPED_STATE 348 -#define RECHARGED_ID 349 -#define INVIS_ID 350 -#define GREASED_ID 351 -#define FEMALE_ID 352 -#define CANCELLED_ID 353 -#define REVIVED_ID 354 -#define AVENGE_ID 355 -#define FLEEING_ID 356 -#define BLINDED_ID 357 -#define PARALYZED_ID 358 -#define STUNNED_ID 359 -#define CONFUSED_ID 360 -#define SEENTRAPS_ID 361 -#define ALL_ID 362 -#define MONTYPE_ID 363 -#define GRAVE_ID 364 -#define ERODEPROOF_ID 365 -#define FUNCTION_ID 366 -#define MSG_OUTPUT_TYPE 367 -#define COMPARE_TYPE 368 -#define UNKNOWN_TYPE 369 -#define rect_ID 370 -#define fillrect_ID 371 -#define line_ID 372 -#define randline_ID 373 -#define grow_ID 374 -#define selection_ID 375 -#define flood_ID 376 -#define rndcoord_ID 377 -#define circle_ID 378 -#define ellipse_ID 379 -#define filter_ID 380 -#define complement_ID 381 -#define gradient_ID 382 -#define GRADIENT_TYPE 383 -#define LIMITED 384 -#define HUMIDITY_TYPE 385 -#define STRING 386 -#define MAP_ID 387 -#define NQSTRING 388 -#define VARSTRING 389 -#define CFUNC 390 -#define CFUNC_INT 391 -#define CFUNC_STR 392 -#define CFUNC_COORD 393 -#define CFUNC_REGION 394 -#define VARSTRING_INT 395 -#define VARSTRING_INT_ARRAY 396 -#define VARSTRING_STRING 397 -#define VARSTRING_STRING_ARRAY 398 -#define VARSTRING_VAR 399 -#define VARSTRING_VAR_ARRAY 400 -#define VARSTRING_COORD 401 -#define VARSTRING_COORD_ARRAY 402 -#define VARSTRING_REGION 403 -#define VARSTRING_REGION_ARRAY 404 -#define VARSTRING_MAPCHAR 405 -#define VARSTRING_MAPCHAR_ARRAY 406 -#define VARSTRING_MONST 407 -#define VARSTRING_MONST_ARRAY 408 -#define VARSTRING_OBJ 409 -#define VARSTRING_OBJ_ARRAY 410 -#define VARSTRING_SEL 411 -#define VARSTRING_SEL_ARRAY 412 -#define METHOD_INT 413 -#define METHOD_INT_ARRAY 414 -#define METHOD_STRING 415 -#define METHOD_STRING_ARRAY 416 -#define METHOD_VAR 417 -#define METHOD_VAR_ARRAY 418 -#define METHOD_COORD 419 -#define METHOD_COORD_ARRAY 420 -#define METHOD_REGION 421 -#define METHOD_REGION_ARRAY 422 -#define METHOD_MAPCHAR 423 -#define METHOD_MAPCHAR_ARRAY 424 -#define METHOD_MONST 425 -#define METHOD_MONST_ARRAY 426 -#define METHOD_OBJ 427 -#define METHOD_OBJ_ARRAY 428 -#define METHOD_SEL 429 -#define METHOD_SEL_ARRAY 430 -#define DICE 431 - -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE YYSTYPE; -union YYSTYPE +typedef union { -#line 147 "lev_comp.y" /* yacc.c:355 */ - long i; char* map; struct { @@ -635,1854 +189,2451 @@ union YYSTYPE long cfunc; char *varstr; } meth; - -#line 640 "y.tab.c" /* yacc.c:355 */ -}; -# define YYSTYPE_IS_TRIVIAL 1 -# define YYSTYPE_IS_DECLARED 1 -#endif - - -extern YYSTYPE yylval; - -int yyparse (void); - -#endif /* !YY_YY_Y_TAB_H_INCLUDED */ - -/* Copy the second part of user declarations. */ - -#line 655 "y.tab.c" /* yacc.c:358 */ - -#ifdef short -# undef short -#endif - -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; -#endif - -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; -#else -typedef signed char yytype_int8; -#endif - -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; -#else -typedef unsigned short int yytype_uint16; -#endif - -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; -#else -typedef short int yytype_int16; -#endif - -#ifndef YYSIZE_T -# ifdef __SIZE_TYPE__ -# define YYSIZE_T __SIZE_TYPE__ -# elif defined size_t -# define YYSIZE_T size_t -# elif ! defined YYSIZE_T -# include /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# else -# define YYSIZE_T unsigned int -# endif -#endif - -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) - -#ifndef YY_ -# if defined YYENABLE_NLS && YYENABLE_NLS -# if ENABLE_NLS -# include /* INFRINGES ON USER NAME SPACE */ -# define YY_(Msgid) dgettext ("bison-runtime", Msgid) -# endif -# endif -# ifndef YY_ -# define YY_(Msgid) Msgid -# endif -#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) -# else -# define YY_ATTRIBUTE(Spec) /* empty */ -# 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 - -#if !defined _Noreturn \ - && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) -# if defined _MSC_VER && 1200 <= _MSC_VER -# define _Noreturn __declspec (noreturn) -# else -# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) -# endif -#endif - -/* Suppress unused-variable warnings by "using" E. */ -#if ! defined lint || defined __GNUC__ -# define YYUSE(E) ((void) (E)) -#else -# define YYUSE(E) /* empty */ -#endif - -#if defined __GNUC__ && 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") -#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 -#endif -#ifndef YY_INITIAL_VALUE -# define YY_INITIAL_VALUE(Value) /* Nothing. */ -#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 /* INFRINGES ON USER NAME SPACE */ -# elif defined _AIX -# define YYSTACK_ALLOC __alloca -# elif defined _MSC_VER -# include /* INFRINGES ON USER NAME SPACE */ -# define alloca _alloca -# else -# define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS -# include /* INFRINGES ON USER NAME SPACE */ - /* Use EXIT_SUCCESS as a witness for stdlib.h. */ -# ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 -# endif -# endif -# endif -# endif -# endif - -# ifdef YYSTACK_ALLOC - /* Pacify GCC's 'empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (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 EXIT_SUCCESS \ - && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) -# include /* INFRINGES ON USER NAME SPACE */ -# ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 -# endif -# endif -# ifndef YYMALLOC -# define YYMALLOC malloc -# if ! defined malloc && ! defined EXIT_SUCCESS -void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ -# endif -# endif -# ifndef YYFREE -# define YYFREE free -# if ! defined free && ! defined EXIT_SUCCESS -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_alloc; - YYSTYPE yyvs_alloc; -}; - -/* 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) - -# define YYCOPY_NEEDED 1 - -/* Relocate STACK from its old location to the new one. The - local variables YYSIZE and YYSTACKSIZE give the old and new number of - 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_alloc, Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ - Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (0) - -#endif - -#if defined YYCOPY_NEEDED && YYCOPY_NEEDED -/* Copy COUNT objects from SRC to DST. The source and destination do - not overlap. */ -# ifndef YYCOPY -# if defined __GNUC__ && 1 < __GNUC__ -# define YYCOPY(Dst, Src, Count) \ - __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) -# else -# define YYCOPY(Dst, Src, Count) \ - do \ - { \ - YYSIZE_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (Dst)[yyi] = (Src)[yyi]; \ - } \ - while (0) -# endif -# endif -#endif /* !YYCOPY_NEEDED */ - -/* YYFINAL -- State number of the termination state. */ -#define YYFINAL 9 -/* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1033 - -/* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 194 -/* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 160 -/* YYNRULES -- Number of rules. */ -#define YYNRULES 406 -/* YYNSTATES -- Number of states. */ -#define YYNSTATES 866 - -/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned - by yylex, with out-of-bounds checking. */ -#define YYUNDEFTOK 2 -#define YYMAXUTOK 431 - -#define YYTRANSLATE(YYX) \ - ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) - -/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM - as returned by yylex, without out-of-bounds checking. */ -static const yytype_uint8 yytranslate[] = -{ - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 189, 193, 2, - 133, 134, 187, 185, 131, 186, 191, 188, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 132, 2, - 2, 190, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 135, 2, 136, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 137, 192, 138, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184 -}; - -#if YYDEBUG - /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ -static const yytype_uint16 yyrline[] = -{ - 0, 274, 274, 275, 278, 279, 282, 304, 309, 330, - 334, 340, 350, 361, 367, 396, 399, 406, 410, 417, - 420, 427, 428, 432, 435, 441, 445, 452, 455, 461, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 524, 525, 526, 527, 528, 529, 530, - 531, 532, 535, 536, 537, 540, 541, 544, 556, 562, - 568, 574, 580, 586, 592, 598, 604, 612, 620, 628, - 636, 644, 652, 662, 667, 674, 679, 686, 691, 698, - 702, 708, 713, 720, 724, 730, 734, 741, 763, 740, - 777, 825, 832, 835, 841, 848, 852, 861, 865, 860, - 927, 928, 932, 931, 944, 943, 958, 968, 969, 972, - 1011, 1010, 1044, 1043, 1073, 1072, 1103, 1102, 1128, 1137, - 1136, 1163, 1169, 1174, 1179, 1186, 1193, 1202, 1210, 1222, - 1221, 1240, 1239, 1258, 1261, 1267, 1277, 1283, 1292, 1298, - 1303, 1309, 1314, 1320, 1331, 1337, 1338, 1341, 1342, 1345, - 1349, 1355, 1356, 1359, 1366, 1374, 1382, 1383, 1386, 1387, - 1390, 1395, 1394, 1408, 1415, 1421, 1429, 1434, 1440, 1446, - 1452, 1458, 1463, 1468, 1473, 1478, 1483, 1488, 1493, 1498, - 1503, 1508, 1516, 1524, 1528, 1541, 1548, 1547, 1563, 1573, - 1579, 1587, 1593, 1598, 1603, 1608, 1613, 1618, 1623, 1628, - 1633, 1644, 1649, 1654, 1659, 1664, 1671, 1677, 1706, 1711, - 1719, 1725, 1731, 1738, 1745, 1755, 1765, 1780, 1791, 1794, - 1800, 1806, 1812, 1818, 1823, 1830, 1837, 1843, 1849, 1856, - 1855, 1880, 1883, 1889, 1896, 1900, 1905, 1912, 1918, 1925, - 1929, 1936, 1944, 1947, 1957, 1961, 1964, 1970, 1974, 1981, - 1985, 1989, 1995, 1996, 1999, 2000, 2003, 2004, 2005, 2011, - 2012, 2013, 2019, 2020, 2023, 2032, 2037, 2044, 2054, 2060, - 2064, 2068, 2075, 2084, 2090, 2094, 2100, 2104, 2112, 2116, - 2123, 2132, 2143, 2147, 2154, 2163, 2172, 2183, 2187, 2194, - 2203, 2213, 2222, 2232, 2238, 2242, 2249, 2258, 2268, 2277, - 2287, 2294, 2295, 2301, 2305, 2309, 2313, 2321, 2330, 2334, - 2338, 2342, 2346, 2350, 2353, 2360, 2369, 2397, 2398, 2401, - 2402, 2405, 2409, 2416, 2423, 2434, 2437, 2445, 2449, 2453, - 2457, 2461, 2466, 2470, 2474, 2479, 2484, 2489, 2493, 2498, - 2503, 2507, 2511, 2516, 2520, 2527, 2533, 2537, 2543, 2550, - 2551, 2552, 2555, 2559, 2563, 2567, 2573, 2574, 2577, 2578, - 2581, 2582, 2585, 2586, 2589, 2593, 2611 +} YYSTYPE; +#define CHAR 257 +#define INTEGER 258 +#define BOOLEAN 259 +#define PERCENT 260 +#define SPERCENT 261 +#define MINUS_INTEGER 262 +#define PLUS_INTEGER 263 +#define MAZE_GRID_ID 264 +#define SOLID_FILL_ID 265 +#define MINES_ID 266 +#define ROGUELEV_ID 267 +#define MESSAGE_ID 268 +#define MAZE_ID 269 +#define LEVEL_ID 270 +#define LEV_INIT_ID 271 +#define GEOMETRY_ID 272 +#define NOMAP_ID 273 +#define OBJECT_ID 274 +#define COBJECT_ID 275 +#define MONSTER_ID 276 +#define TRAP_ID 277 +#define DOOR_ID 278 +#define DRAWBRIDGE_ID 279 +#define object_ID 280 +#define monster_ID 281 +#define terrain_ID 282 +#define MAZEWALK_ID 283 +#define WALLIFY_ID 284 +#define REGION_ID 285 +#define FILLING 286 +#define IRREGULAR 287 +#define JOINED 288 +#define ALTAR_ID 289 +#define LADDER_ID 290 +#define STAIR_ID 291 +#define NON_DIGGABLE_ID 292 +#define NON_PASSWALL_ID 293 +#define ROOM_ID 294 +#define PORTAL_ID 295 +#define TELEPRT_ID 296 +#define BRANCH_ID 297 +#define LEV 298 +#define MINERALIZE_ID 299 +#define CORRIDOR_ID 300 +#define GOLD_ID 301 +#define ENGRAVING_ID 302 +#define FOUNTAIN_ID 303 +#define POOL_ID 304 +#define SINK_ID 305 +#define NONE 306 +#define RAND_CORRIDOR_ID 307 +#define DOOR_STATE 308 +#define LIGHT_STATE 309 +#define CURSE_TYPE 310 +#define ENGRAVING_TYPE 311 +#define DIRECTION 312 +#define RANDOM_TYPE 313 +#define RANDOM_TYPE_BRACKET 314 +#define A_REGISTER 315 +#define ALIGNMENT 316 +#define LEFT_OR_RIGHT 317 +#define CENTER 318 +#define TOP_OR_BOT 319 +#define ALTAR_TYPE 320 +#define UP_OR_DOWN 321 +#define SUBROOM_ID 322 +#define NAME_ID 323 +#define FLAGS_ID 324 +#define FLAG_TYPE 325 +#define MON_ATTITUDE 326 +#define MON_ALERTNESS 327 +#define MON_APPEARANCE 328 +#define ROOMDOOR_ID 329 +#define IF_ID 330 +#define ELSE_ID 331 +#define TERRAIN_ID 332 +#define HORIZ_OR_VERT 333 +#define REPLACE_TERRAIN_ID 334 +#define EXIT_ID 335 +#define SHUFFLE_ID 336 +#define QUANTITY_ID 337 +#define BURIED_ID 338 +#define LOOP_ID 339 +#define FOR_ID 340 +#define TO_ID 341 +#define SWITCH_ID 342 +#define CASE_ID 343 +#define BREAK_ID 344 +#define DEFAULT_ID 345 +#define ERODED_ID 346 +#define TRAPPED_STATE 347 +#define RECHARGED_ID 348 +#define INVIS_ID 349 +#define GREASED_ID 350 +#define FEMALE_ID 351 +#define CANCELLED_ID 352 +#define REVIVED_ID 353 +#define AVENGE_ID 354 +#define FLEEING_ID 355 +#define BLINDED_ID 356 +#define PARALYZED_ID 357 +#define STUNNED_ID 358 +#define CONFUSED_ID 359 +#define SEENTRAPS_ID 360 +#define ALL_ID 361 +#define MONTYPE_ID 362 +#define GRAVE_ID 363 +#define ERODEPROOF_ID 364 +#define FUNCTION_ID 365 +#define MSG_OUTPUT_TYPE 366 +#define COMPARE_TYPE 367 +#define UNKNOWN_TYPE 368 +#define rect_ID 369 +#define fillrect_ID 370 +#define line_ID 371 +#define randline_ID 372 +#define grow_ID 373 +#define selection_ID 374 +#define flood_ID 375 +#define rndcoord_ID 376 +#define circle_ID 377 +#define ellipse_ID 378 +#define filter_ID 379 +#define complement_ID 380 +#define gradient_ID 381 +#define GRADIENT_TYPE 382 +#define LIMITED 383 +#define HUMIDITY_TYPE 384 +#define STRING 385 +#define MAP_ID 386 +#define NQSTRING 387 +#define VARSTRING 388 +#define CFUNC 389 +#define CFUNC_INT 390 +#define CFUNC_STR 391 +#define CFUNC_COORD 392 +#define CFUNC_REGION 393 +#define VARSTRING_INT 394 +#define VARSTRING_INT_ARRAY 395 +#define VARSTRING_STRING 396 +#define VARSTRING_STRING_ARRAY 397 +#define VARSTRING_VAR 398 +#define VARSTRING_VAR_ARRAY 399 +#define VARSTRING_COORD 400 +#define VARSTRING_COORD_ARRAY 401 +#define VARSTRING_REGION 402 +#define VARSTRING_REGION_ARRAY 403 +#define VARSTRING_MAPCHAR 404 +#define VARSTRING_MAPCHAR_ARRAY 405 +#define VARSTRING_MONST 406 +#define VARSTRING_MONST_ARRAY 407 +#define VARSTRING_OBJ 408 +#define VARSTRING_OBJ_ARRAY 409 +#define VARSTRING_SEL 410 +#define VARSTRING_SEL_ARRAY 411 +#define METHOD_INT 412 +#define METHOD_INT_ARRAY 413 +#define METHOD_STRING 414 +#define METHOD_STRING_ARRAY 415 +#define METHOD_VAR 416 +#define METHOD_VAR_ARRAY 417 +#define METHOD_COORD 418 +#define METHOD_COORD_ARRAY 419 +#define METHOD_REGION 420 +#define METHOD_REGION_ARRAY 421 +#define METHOD_MAPCHAR 422 +#define METHOD_MAPCHAR_ARRAY 423 +#define METHOD_MONST 424 +#define METHOD_MONST_ARRAY 425 +#define METHOD_OBJ 426 +#define METHOD_OBJ_ARRAY 427 +#define METHOD_SEL 428 +#define METHOD_SEL_ARRAY 429 +#define DICE 430 +#define YYERRCODE 256 +short yylhs[] = { -1, + 0, 0, 73, 73, 74, 57, 57, 56, 56, 76, + 76, 76, 76, 55, 55, 54, 54, 46, 46, 14, + 14, 75, 75, 26, 26, 22, 22, 23, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 58, 58, 58, 58, 58, 58, 58, 58, 58, + 60, 60, 60, 61, 61, 85, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 38, 38, 44, 44, 43, 43, 42, 42, 41, + 41, 39, 39, 40, 40, 129, 130, 100, 101, 98, + 45, 45, 31, 31, 31, 131, 133, 93, 134, 134, + 136, 135, 137, 135, 99, 138, 138, 139, 140, 94, + 141, 95, 142, 97, 144, 96, 143, 145, 143, 79, + 110, 110, 110, 83, 83, 65, 146, 147, 113, 148, + 112, 10, 10, 68, 68, 69, 69, 70, 70, 71, + 71, 87, 87, 15, 15, 13, 13, 16, 16, 11, + 11, 103, 103, 103, 1, 1, 2, 2, 105, 150, + 105, 149, 20, 20, 21, 21, 21, 21, 21, 21, + 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, + 35, 35, 35, 106, 152, 106, 151, 18, 18, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 120, 88, 104, 104, 121, 121, + 102, 117, 118, 109, 119, 82, 17, 17, 91, 114, + 108, 72, 72, 116, 115, 86, 107, 154, 111, 24, + 24, 80, 81, 81, 81, 92, 89, 90, 90, 3, + 3, 4, 4, 29, 29, 28, 28, 27, 27, 27, + 5, 5, 6, 6, 7, 7, 7, 12, 12, 12, + 8, 8, 9, 155, 155, 155, 132, 77, 77, 77, + 77, 32, 32, 32, 30, 30, 127, 127, 127, 33, + 124, 124, 124, 34, 34, 125, 125, 125, 36, 36, + 36, 36, 126, 126, 126, 37, 37, 37, 37, 123, + 123, 122, 122, 122, 122, 122, 122, 122, 122, 122, + 122, 122, 50, 50, 157, 158, 158, 128, 128, 64, + 64, 63, 63, 62, 62, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 48, 48, 156, 47, 47, 47, + 153, 153, 153, 153, 51, 51, 52, 52, 53, 53, + 25, 25, 67, 67, 66, }; -#endif - -#if YYDEBUG || YYERROR_VERBOSE || 0 -/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. - First, the terminals, then, starting at YYNTOKENS, nonterminals. */ -static const char *const yytname[] = -{ - "$end", "error", "$undefined", "CHAR", "INTEGER", "BOOLEAN", "PERCENT", - "SPERCENT", "MINUS_INTEGER", "PLUS_INTEGER", "MAZE_GRID_ID", - "SOLID_FILL_ID", "MINES_ID", "ROGUELEV_ID", "MESSAGE_ID", "MAZE_ID", - "LEVEL_ID", "LEV_INIT_ID", "GEOMETRY_ID", "NOMAP_ID", "OBJECT_ID", - "COBJECT_ID", "MONSTER_ID", "TRAP_ID", "DOOR_ID", "DRAWBRIDGE_ID", - "object_ID", "monster_ID", "terrain_ID", "MAZEWALK_ID", "WALLIFY_ID", - "REGION_ID", "FILLING", "IRREGULAR", "JOINED", "ALTAR_ID", "LADDER_ID", - "STAIR_ID", "NON_DIGGABLE_ID", "NON_PASSWALL_ID", "ROOM_ID", "PORTAL_ID", - "TELEPRT_ID", "BRANCH_ID", "LEV", "MINERALIZE_ID", "CORRIDOR_ID", - "GOLD_ID", "ENGRAVING_ID", "FOUNTAIN_ID", "POOL_ID", "SINK_ID", "NONE", - "RAND_CORRIDOR_ID", "DOOR_STATE", "LIGHT_STATE", "CURSE_TYPE", - "ENGRAVING_TYPE", "DIRECTION", "RANDOM_TYPE", "RANDOM_TYPE_BRACKET", - "A_REGISTER", "ALIGNMENT", "LEFT_OR_RIGHT", "CENTER", "TOP_OR_BOT", - "ALTAR_TYPE", "UP_OR_DOWN", "SUBROOM_ID", "NAME_ID", "FLAGS_ID", - "FLAG_TYPE", "MON_ATTITUDE", "MON_ALERTNESS", "MON_APPEARANCE", - "ROOMDOOR_ID", "IF_ID", "ELSE_ID", "TERRAIN_ID", "HORIZ_OR_VERT", - "REPLACE_TERRAIN_ID", "EXIT_ID", "SHUFFLE_ID", "QUANTITY_ID", - "BURIED_ID", "LOOP_ID", "FOR_ID", "TO_ID", "SWITCH_ID", "CASE_ID", - "BREAK_ID", "DEFAULT_ID", "ERODED_ID", "TRAPPED_STATE", "RECHARGED_ID", - "INVIS_ID", "GREASED_ID", "FEMALE_ID", "CANCELLED_ID", "REVIVED_ID", - "AVENGE_ID", "FLEEING_ID", "BLINDED_ID", "PARALYZED_ID", "STUNNED_ID", - "CONFUSED_ID", "SEENTRAPS_ID", "ALL_ID", "MONTYPE_ID", "GRAVE_ID", - "ERODEPROOF_ID", "FUNCTION_ID", "MSG_OUTPUT_TYPE", "COMPARE_TYPE", - "UNKNOWN_TYPE", "rect_ID", "fillrect_ID", "line_ID", "randline_ID", - "grow_ID", "selection_ID", "flood_ID", "rndcoord_ID", "circle_ID", - "ellipse_ID", "filter_ID", "complement_ID", "gradient_ID", - "GRADIENT_TYPE", "LIMITED", "HUMIDITY_TYPE", "','", "':'", "'('", "')'", - "'['", "']'", "'{'", "'}'", "STRING", "MAP_ID", "NQSTRING", "VARSTRING", - "CFUNC", "CFUNC_INT", "CFUNC_STR", "CFUNC_COORD", "CFUNC_REGION", - "VARSTRING_INT", "VARSTRING_INT_ARRAY", "VARSTRING_STRING", - "VARSTRING_STRING_ARRAY", "VARSTRING_VAR", "VARSTRING_VAR_ARRAY", - "VARSTRING_COORD", "VARSTRING_COORD_ARRAY", "VARSTRING_REGION", - "VARSTRING_REGION_ARRAY", "VARSTRING_MAPCHAR", "VARSTRING_MAPCHAR_ARRAY", - "VARSTRING_MONST", "VARSTRING_MONST_ARRAY", "VARSTRING_OBJ", - "VARSTRING_OBJ_ARRAY", "VARSTRING_SEL", "VARSTRING_SEL_ARRAY", - "METHOD_INT", "METHOD_INT_ARRAY", "METHOD_STRING", "METHOD_STRING_ARRAY", - "METHOD_VAR", "METHOD_VAR_ARRAY", "METHOD_COORD", "METHOD_COORD_ARRAY", - "METHOD_REGION", "METHOD_REGION_ARRAY", "METHOD_MAPCHAR", - "METHOD_MAPCHAR_ARRAY", "METHOD_MONST", "METHOD_MONST_ARRAY", - "METHOD_OBJ", "METHOD_OBJ_ARRAY", "METHOD_SEL", "METHOD_SEL_ARRAY", - "DICE", "'+'", "'-'", "'*'", "'/'", "'%'", "'='", "'.'", "'|'", "'&'", - "$accept", "file", "levels", "level", "level_def", "mazefiller", - "lev_init", "opt_limited", "opt_coord_or_var", "opt_fillchar", "walled", - "flags", "flag_list", "levstatements", "stmt_block", "levstatement", - "any_var_array", "any_var", "any_var_or_arr", "any_var_or_unk", - "shuffle_detail", "variable_define", "encodeobj_list", - "encodemonster_list", "mapchar_list", "encoderegion_list", - "encodecoord_list", "integer_list", "string_list", "function_define", - "$@1", "$@2", "function_call", "exitstatement", "opt_percent", - "comparestmt", "switchstatement", "$@3", "$@4", "switchcases", - "switchcase", "$@5", "$@6", "breakstatement", "for_to_span", - "forstmt_start", "forstatement", "$@7", "loopstatement", "$@8", - "chancestatement", "$@9", "ifstatement", "$@10", "if_ending", "$@11", - "message", "random_corridors", "corridor", "corr_spec", "room_begin", - "subroom_def", "$@12", "room_def", "$@13", "roomfill", "room_pos", - "subroom_pos", "room_align", "room_size", "door_detail", "secret", - "door_wall", "dir_list", "door_pos", "map_definition", "h_justif", - "v_justif", "monster_detail", "$@14", "monster_desc", "monster_infos", - "monster_info", "seen_trap_mask", "object_detail", "$@15", "object_desc", - "object_infos", "object_info", "trap_detail", "drawbridge_detail", - "mazewalk_detail", "wallify_detail", "ladder_detail", "stair_detail", - "stair_region", "portal_region", "teleprt_region", "branch_region", - "teleprt_detail", "fountain_detail", "sink_detail", "pool_detail", - "terrain_type", "replace_terrain_detail", "terrain_detail", - "diggable_detail", "passwall_detail", "region_detail", "@16", - "region_detail_end", "altar_detail", "grave_detail", "gold_detail", - "engraving_detail", "mineralize", "trap_name", "room_type", - "optroomregionflags", "roomregionflags", "roomregionflag", "door_state", - "light_state", "alignment", "alignment_prfx", "altar_type", "a_register", - "string_or_var", "integer_or_var", "coord_or_var", "encodecoord", - "humidity_flags", "region_or_var", "encoderegion", "mapchar_or_var", - "mapchar", "monster_or_var", "encodemonster", "object_or_var", - "encodeobj", "string_expr", "math_expr_var", "func_param_type", - "func_param_part", "func_param_list", "func_params_list", - "func_call_param_part", "func_call_param_list", "func_call_params_list", - "ter_selection_x", "ter_selection", "dice", "all_integers", - "all_ints_push", "objectid", "monsterid", "terrainid", "engraving_type", - "lev_region", "region", YY_NULLPTR -}; -#endif - -# ifdef YYPRINT -/* YYTOKNUM[NUM] -- (External) token number corresponding to the - (internal) symbol number NUM (which must be that of a token). */ -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, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 44, 58, 40, 41, 91, 93, 123, 125, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 43, 45, 42, 47, 37, - 61, 46, 124, 38 +short yylen[] = { 2, + 0, 1, 1, 2, 3, 3, 5, 1, 1, 5, + 5, 3, 16, 0, 2, 0, 2, 0, 2, 1, + 1, 0, 3, 3, 1, 0, 2, 3, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 3, 5, 3, 5, + 5, 5, 3, 3, 5, 5, 5, 7, 7, 7, + 5, 1, 3, 1, 3, 1, 3, 1, 3, 1, + 3, 1, 3, 1, 3, 0, 0, 8, 4, 1, + 0, 1, 1, 5, 3, 0, 0, 9, 0, 2, + 0, 5, 0, 4, 1, 2, 1, 6, 0, 3, + 0, 6, 0, 4, 0, 4, 1, 0, 4, 3, + 1, 3, 3, 5, 5, 7, 4, 0, 10, 0, + 12, 0, 2, 5, 1, 5, 1, 5, 1, 5, + 1, 9, 5, 1, 1, 1, 1, 1, 3, 1, + 1, 1, 7, 5, 1, 1, 1, 1, 3, 0, + 5, 4, 0, 3, 1, 1, 1, 1, 2, 1, + 1, 1, 1, 1, 3, 3, 3, 1, 1, 3, + 1, 1, 3, 3, 0, 5, 2, 0, 3, 1, + 3, 1, 3, 3, 1, 1, 3, 1, 1, 1, + 3, 1, 1, 1, 5, 7, 5, 8, 1, 3, + 5, 5, 7, 7, 6, 5, 0, 2, 3, 3, + 3, 1, 5, 9, 5, 3, 3, 0, 10, 0, + 1, 7, 5, 5, 3, 5, 7, 9, 1, 1, + 1, 1, 1, 0, 2, 1, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, + 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, + 4, 5, 1, 3, 1, 3, 1, 1, 4, 9, + 1, 1, 4, 1, 5, 1, 1, 4, 1, 1, + 5, 1, 1, 1, 4, 1, 1, 5, 1, 1, + 3, 1, 1, 3, 1, 4, 3, 3, 3, 3, + 3, 3, 1, 1, 3, 1, 3, 0, 1, 1, + 1, 1, 3, 0, 1, 1, 2, 2, 4, 6, + 4, 6, 6, 6, 6, 2, 6, 8, 8, 10, + 14, 2, 1, 3, 1, 3, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 10, 9, }; -# endif - -#define YYPACT_NINF -654 - -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-654))) - -#define YYTABLE_NINF -202 - -#define yytable_value_is_error(Yytable_value) \ - 0 - - /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -static const yytype_int16 yypact[] = -{ - 137, 7, 27, 83, -654, 137, 24, -15, 37, -654, - -654, 91, 733, -10, -654, 113, -654, 99, 131, 133, - -654, 161, 164, 166, 174, 183, 199, 214, 231, 233, - 239, 241, 243, 245, 247, 250, 268, 269, 275, 276, - 281, 295, 305, 317, 322, 323, 325, 326, 327, 28, - 340, 343, -654, 345, 205, 757, -654, -654, 346, 49, - 66, 265, -654, -654, -654, -654, -654, -654, -654, -654, - -654, -654, -654, -654, -654, -654, -654, -654, -654, -654, - -654, -654, -654, 733, -654, -654, 190, -654, -654, -654, - -654, -654, 353, -654, -654, -654, -654, -654, -654, -654, - -654, -654, -654, -654, -654, -654, -654, -654, -654, -654, - -654, -654, -654, -654, -654, -654, -654, -654, -654, -654, - -654, -654, -654, -654, -654, -654, -654, -654, -654, -654, - -654, -654, 59, 308, -654, -31, 406, 351, 58, 58, - 144, -11, 57, -18, -18, 672, -57, -18, -18, 248, - -57, -57, -6, -1, -1, -1, 66, 303, 66, -18, - 672, 672, 672, 319, -6, 51, -654, 672, -57, 751, - 66, -654, -654, 279, 339, -18, 355, -654, 29, -654, - 344, -654, 198, -654, 56, -654, 18, -654, 359, -654, - -654, -654, 113, -654, -654, 360, -654, 309, 368, 371, - 372, -654, -654, 374, -654, -654, 375, 503, -654, 378, - 379, 383, -654, -654, -654, 506, -654, -654, 402, -654, - -654, -654, -654, -654, -654, 537, -654, -654, 413, 404, - 418, -654, -654, -654, 420, -654, -654, 427, 439, 446, - -57, -57, -18, -18, 417, -18, 436, 445, 449, 672, - 450, 508, -654, -654, 391, -654, 582, -654, 453, 458, - -654, 459, 460, 466, 599, 473, 474, -654, -654, -654, - -654, -654, 475, 601, 608, 482, 483, 489, 490, 387, - 618, 526, 208, 529, -654, -654, -654, -654, -654, -654, - -654, -654, 530, -654, -654, 534, 359, 538, 539, -654, - 523, 66, 66, 540, -654, 548, 342, 66, 66, -654, - 66, 66, 66, 66, 66, 309, 387, -654, 542, 549, - -654, -654, -654, -654, -654, -654, 554, 60, 32, -654, - -654, 309, 387, 555, 556, 558, 733, 733, -654, -654, - 66, -31, 671, 46, 698, 571, 567, 672, 573, 66, - 215, 700, 566, 581, 66, 587, 359, 589, 66, 359, - -18, -18, 672, 663, 664, -654, -654, 592, 593, 521, - -654, -18, -18, 307, -654, 598, 596, 672, 597, 66, - 67, 186, 660, 730, 604, 669, -1, 8, -654, 606, - 607, -1, -1, -1, 66, 609, 89, -18, 141, 12, - 57, 665, -654, 52, 52, -654, 156, 605, -38, 697, - -654, -654, 331, 347, 168, 168, -654, -654, -654, 56, - -654, 672, 612, -52, -50, 4, 140, -654, -654, 309, - 387, 55, 127, 158, -654, 611, 358, -654, -654, -654, - 743, -654, 628, 374, -654, 626, 761, 430, -654, -654, - 383, -654, -654, 627, 464, 266, -654, 638, 492, -654, - -654, -654, -654, 636, 654, -18, -18, 600, 673, 666, - 675, 676, -654, 679, 438, -654, 667, 681, -654, 685, - 686, -654, -654, 799, 522, -654, -654, 689, -654, 687, - -654, 693, -654, -654, 694, 824, -654, 699, -654, 825, - 701, 67, 827, 702, 703, -654, 704, 779, -654, -654, - -654, -654, -654, 707, -654, 836, 710, 712, 786, 861, - -654, 734, 359, -654, 678, 66, -654, -654, 309, 735, - -654, 739, 732, -654, -654, -654, -654, 867, 740, -654, - -8, -654, 66, -654, -31, -654, 21, -654, 25, -654, - 54, -654, -654, -654, 741, 873, -654, -654, 744, -654, - 737, 745, -654, -654, -654, -654, -654, -654, -654, 748, - 769, -654, 771, -654, 788, -654, -654, 790, -654, -654, - -654, -654, -654, 784, -654, 792, 57, 919, -654, 794, - 868, 672, -654, 66, 66, 672, 796, 66, 672, 672, - 795, 798, -654, -6, 926, 90, 927, -49, 865, 802, - 13, -654, 803, 797, 870, -654, 66, 804, -31, 807, - 15, 254, 359, 52, -654, -654, 387, 805, 224, 697, - -654, -29, -654, -654, 387, 309, 151, -654, 159, -654, - 171, -654, 67, 808, -654, -654, -654, -31, 66, 66, - 66, 144, -654, 594, -654, 809, 66, -654, 810, 258, - 337, 811, 67, 528, 812, 813, 66, 937, 817, 814, - -654, -654, -654, 818, 939, -654, 947, -654, 289, 821, - -654, -654, 822, 85, 309, 950, -654, 951, 817, -654, - 826, -654, -654, 828, 160, -654, -654, -654, -654, 359, - 21, -654, 25, -654, 54, -654, 829, 953, 309, -654, - -654, -654, -654, 149, -654, -654, -654, -31, -654, -654, - -654, -654, -654, 830, 832, 833, -654, -654, 834, -654, - -654, -654, 309, 957, -654, 387, -654, 924, -654, 66, - -654, 835, -654, -654, -654, 409, 837, 419, -654, -654, - 963, 839, 838, 840, 15, 66, -654, -654, 841, 842, - 843, -654, 85, 954, 329, 845, 844, 160, -654, -654, - -654, -654, -654, 847, 914, 309, 66, 66, 66, -44, - -654, 846, 304, -654, 66, 975, -654, -654, -654, -654, - 850, 359, 852, 980, -654, 215, 817, -654, -654, -654, - 981, 359, -654, -654, 854, -654, -654, -654, 982, -654, - -654, -654, -654, -654, 800, -654, -654, 956, -654, 217, - 855, 419, -654, -654, 986, 857, 859, -654, 860, -654, - -654, 733, 864, -44, 862, 869, 863, -654, -654, 866, - -654, -654, 359, -654, 733, -654, 67, -654, -654, -654, - 871, -654, -654, -654, 872, -18, 68, 874, -654, -654, - 809, -18, 875, -654, -654, -654 +short yydefred[] = { 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, + 4, 0, 6, 0, 133, 0, 0, 0, 192, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 130, 0, 0, 0, 136, 145, 0, 0, 0, 0, + 93, 82, 73, 83, 74, 84, 75, 85, 76, 86, + 77, 87, 78, 88, 79, 89, 80, 90, 81, 5, + 0, 92, 91, 0, 30, 0, 29, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 149, + 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 155, 0, 0, 0, 0, 94, + 95, 0, 0, 0, 0, 342, 0, 345, 0, 387, + 0, 343, 0, 153, 0, 27, 0, 9, 8, 7, + 0, 304, 305, 0, 0, 340, 0, 0, 0, 12, + 313, 0, 195, 196, 0, 0, 310, 0, 0, 308, + 0, 337, 339, 0, 336, 334, 0, 333, 228, 224, + 225, 330, 332, 0, 329, 327, 0, 326, 0, 0, + 281, 280, 0, 291, 292, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 383, 250, 0, 366, 0, 318, 0, 317, 0, 0, + 0, 0, 0, 403, 0, 0, 266, 267, 283, 282, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 259, 261, 260, 390, 388, 389, 163, 162, + 0, 184, 185, 0, 0, 0, 0, 96, 0, 0, + 0, 0, 126, 0, 0, 0, 0, 135, 0, 0, + 0, 0, 0, 0, 0, 362, 0, 0, 0, 396, + 398, 395, 397, 399, 400, 0, 0, 0, 0, 0, + 0, 103, 0, 0, 104, 0, 150, 24, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 367, 368, 0, 0, 0, 376, 0, + 0, 0, 382, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 132, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 156, 0, 0, 151, 0, 0, 0, 0, 344, 352, + 0, 0, 0, 0, 349, 350, 351, 129, 0, 154, + 0, 0, 120, 118, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 341, 11, 262, 0, 10, + 0, 0, 314, 0, 0, 0, 198, 197, 0, 173, + 194, 0, 0, 0, 226, 0, 0, 203, 201, 245, + 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 324, 0, 0, 322, 0, 321, 0, 0, 0, 384, + 386, 0, 0, 293, 294, 0, 297, 0, 295, 0, + 296, 251, 0, 0, 0, 252, 0, 175, 0, 0, + 0, 0, 0, 256, 0, 0, 165, 164, 276, 401, + 402, 0, 177, 0, 0, 0, 0, 0, 265, 0, + 0, 147, 0, 0, 137, 274, 0, 0, 0, 356, + 0, 346, 134, 363, 98, 0, 0, 105, 0, 111, + 0, 106, 0, 107, 0, 102, 0, 101, 0, 100, + 28, 306, 0, 0, 316, 309, 0, 311, 0, 0, + 335, 393, 391, 392, 239, 236, 230, 0, 0, 235, + 0, 240, 0, 242, 243, 0, 238, 229, 244, 232, + 394, 0, 328, 0, 0, 0, 369, 0, 0, 0, + 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 319, 0, 0, 0, 0, 0, 0, 167, 0, 0, + 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, + 0, 0, 152, 146, 0, 0, 0, 127, 0, 0, + 0, 0, 121, 119, 112, 0, 114, 0, 116, 0, + 0, 0, 312, 193, 338, 0, 0, 0, 0, 0, + 331, 0, 246, 0, 0, 189, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 302, 301, + 272, 0, 0, 253, 0, 179, 0, 0, 254, 258, + 0, 0, 0, 0, 181, 0, 0, 187, 0, 186, + 159, 0, 0, 353, 354, 355, 0, 357, 0, 110, + 0, 109, 0, 108, 0, 0, 0, 234, 237, 241, + 231, 0, 298, 206, 207, 0, 211, 210, 212, 213, + 214, 0, 0, 0, 218, 219, 0, 299, 208, 204, + 0, 0, 248, 0, 372, 0, 377, 0, 373, 0, + 323, 374, 375, 0, 0, 0, 268, 303, 0, 0, + 0, 0, 0, 0, 190, 191, 0, 0, 0, 168, + 0, 0, 0, 0, 0, 0, 128, 113, 115, 117, + 263, 0, 0, 0, 0, 0, 0, 0, 19, 0, + 0, 325, 0, 0, 288, 289, 290, 0, 285, 0, + 0, 0, 174, 0, 0, 278, 166, 176, 0, 0, + 182, 264, 0, 143, 138, 140, 0, 300, 215, 216, + 217, 222, 0, 220, 378, 0, 379, 0, 0, 0, + 271, 269, 0, 0, 0, 170, 0, 169, 141, 0, + 0, 0, 0, 0, 0, 320, 287, 0, 405, 178, + 0, 180, 0, 144, 0, 223, 380, 15, 0, 404, + 171, 142, 0, 0, 0, 0, 20, 21, 0, 0, + 0, 13, 17, 381, }; - - /* 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 yytype_uint16 yydefact[] = -{ - 2, 0, 0, 0, 3, 4, 23, 0, 0, 1, - 5, 0, 27, 0, 7, 0, 134, 0, 0, 0, - 193, 0, 0, 0, 0, 0, 0, 0, 250, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, - 0, 0, 0, 0, 0, 0, 162, 0, 0, 0, - 0, 0, 131, 0, 0, 0, 137, 146, 0, 0, - 0, 0, 94, 83, 74, 84, 75, 85, 76, 86, - 77, 87, 78, 88, 79, 89, 80, 90, 81, 91, - 82, 31, 6, 27, 92, 93, 0, 37, 36, 52, - 53, 50, 0, 45, 51, 150, 46, 47, 49, 48, - 30, 62, 35, 65, 64, 39, 55, 57, 58, 72, - 40, 56, 73, 54, 69, 70, 61, 71, 34, 43, - 66, 60, 68, 67, 38, 59, 63, 32, 33, 44, - 41, 42, 0, 26, 24, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, - 0, 95, 96, 0, 0, 0, 0, 343, 0, 346, - 0, 388, 0, 344, 365, 28, 0, 154, 0, 10, - 9, 8, 0, 305, 306, 0, 341, 161, 0, 0, - 0, 13, 314, 0, 196, 197, 0, 0, 311, 0, - 0, 173, 309, 338, 340, 0, 337, 335, 0, 225, - 229, 334, 226, 331, 333, 0, 330, 328, 0, 200, - 0, 327, 282, 281, 0, 292, 293, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 384, 367, 386, 251, 0, 319, 0, 0, - 318, 0, 0, 0, 0, 0, 0, 404, 267, 268, - 284, 283, 0, 132, 0, 0, 0, 0, 0, 308, - 0, 0, 0, 0, 260, 262, 261, 391, 389, 390, - 164, 163, 0, 185, 186, 0, 0, 0, 0, 97, - 0, 0, 0, 276, 127, 0, 0, 0, 0, 136, - 0, 0, 0, 0, 0, 362, 361, 363, 366, 0, - 397, 399, 396, 398, 400, 401, 0, 0, 0, 104, - 105, 100, 98, 0, 0, 0, 0, 27, 151, 25, - 0, 0, 0, 0, 0, 316, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 368, 369, 0, 0, 0, - 377, 0, 0, 0, 383, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 133, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 158, 157, 0, 0, 152, 0, 0, 0, 359, - 345, 353, 0, 0, 348, 349, 350, 351, 352, 0, - 130, 0, 343, 0, 0, 0, 0, 121, 119, 125, - 123, 0, 0, 0, 155, 0, 0, 342, 12, 263, - 0, 11, 0, 0, 315, 0, 0, 0, 199, 198, - 173, 174, 195, 0, 0, 0, 227, 0, 0, 202, - 204, 246, 184, 0, 248, 0, 0, 189, 0, 0, - 0, 0, 325, 0, 0, 323, 0, 0, 322, 0, - 0, 385, 387, 0, 0, 294, 295, 0, 298, 0, - 296, 0, 297, 252, 0, 0, 253, 0, 176, 0, - 0, 0, 0, 0, 258, 257, 0, 0, 165, 166, - 277, 402, 403, 0, 178, 0, 0, 0, 0, 0, - 266, 0, 0, 148, 0, 0, 138, 275, 274, 0, - 357, 360, 0, 347, 135, 364, 99, 0, 0, 108, - 0, 107, 0, 106, 0, 112, 0, 103, 0, 102, - 0, 101, 29, 307, 0, 0, 317, 310, 0, 312, - 0, 0, 336, 394, 392, 393, 240, 237, 231, 0, - 0, 236, 0, 241, 0, 243, 244, 0, 239, 230, - 245, 395, 233, 0, 329, 203, 0, 0, 370, 0, - 0, 0, 372, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 320, 0, 0, 0, 0, 0, 0, 0, - 0, 168, 0, 0, 0, 256, 0, 0, 0, 0, - 0, 0, 0, 0, 153, 147, 149, 0, 0, 0, - 128, 0, 120, 122, 124, 126, 0, 113, 0, 115, - 0, 117, 0, 0, 313, 194, 339, 0, 0, 0, - 0, 0, 332, 0, 247, 19, 0, 190, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 285, 0, - 303, 302, 273, 0, 0, 254, 0, 180, 0, 0, - 255, 259, 0, 0, 278, 0, 182, 0, 285, 188, - 0, 187, 160, 0, 140, 354, 355, 356, 358, 0, - 0, 111, 0, 110, 0, 109, 0, 0, 234, 235, - 238, 242, 232, 0, 299, 207, 208, 0, 212, 211, - 213, 214, 215, 0, 0, 0, 219, 220, 0, 205, - 209, 300, 206, 0, 249, 371, 373, 0, 378, 0, - 374, 0, 324, 376, 375, 0, 0, 0, 269, 304, - 0, 0, 0, 0, 0, 0, 191, 192, 0, 0, - 0, 169, 0, 0, 0, 0, 0, 140, 129, 114, - 116, 118, 264, 0, 0, 210, 0, 0, 0, 0, - 20, 0, 0, 326, 0, 0, 289, 290, 291, 286, - 287, 271, 0, 0, 175, 0, 285, 279, 167, 177, - 0, 0, 183, 265, 0, 144, 139, 141, 0, 301, - 216, 217, 218, 223, 222, 221, 379, 0, 380, 349, - 0, 0, 272, 270, 0, 0, 0, 171, 0, 170, - 142, 27, 0, 0, 0, 0, 0, 321, 288, 0, - 406, 179, 0, 181, 27, 145, 0, 224, 381, 16, - 0, 405, 172, 143, 0, 0, 0, 17, 21, 22, - 19, 0, 0, 14, 18, 382 +short yydgoto[] = { 3, + 209, 449, 233, 271, 236, 486, 490, 671, 491, 351, + 757, 729, 689, 859, 294, 467, 614, 354, 578, 584, + 730, 80, 337, 822, 512, 133, 788, 789, 747, 345, + 81, 210, 258, 476, 814, 228, 218, 636, 425, 426, + 427, 428, 640, 638, 387, 733, 290, 375, 253, 696, + 329, 330, 331, 861, 835, 190, 4, 82, 83, 84, + 172, 314, 315, 316, 280, 264, 265, 500, 515, 678, + 687, 440, 5, 6, 10, 85, 254, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 277, 318, 478, 229, 219, 259, 529, 408, 697, + 173, 278, 626, 765, 766, 843, 830, 524, 130, 187, + 521, 319, 401, 295, 517, 272, 800, 841, 230, 359, + 220, 355, 580, 790, 196, 182, 530, 531, }; - - /* YYPGOTO[NTERM-NUM]. */ -static const yytype_int16 yypgoto[] = -{ - -654, -654, 994, -654, -654, -654, -654, -654, -654, 146, - -654, -654, 815, -83, -290, 668, 848, 946, -390, -654, - -654, -654, -654, -654, -654, -654, -654, -654, -654, -654, - -654, -654, -654, -654, -654, 959, -654, -654, -654, 244, - -654, -654, -654, -654, -654, -654, -654, -654, -654, -654, - -654, -654, -654, -654, -654, -654, -654, -654, -654, 614, - 849, -654, -654, -654, -654, 562, -654, -654, -654, 260, - -654, -654, -654, -531, 253, -654, 338, 223, -654, -654, - -654, -654, -654, 187, -654, -654, 880, -654, -654, -654, - -654, -654, -654, -654, -654, -654, -654, -654, -654, -654, - -654, -654, -654, -654, -654, -654, -654, -654, -654, -654, - -654, -654, -654, -654, -654, -654, -654, 421, -653, 200, - -654, -385, -492, -654, -654, -654, 369, 682, -168, -136, - -312, 583, 150, -308, -386, -485, -418, -473, 602, -459, - -132, -55, -654, 396, -654, -654, 610, -654, -654, 778, - -135, 575, -392, -654, -654, -654, -654, -654, -124, -654 +short yysindex[] = { 68, + 17, 31, 0, -217, 0, 68, -257, -226, 112, 5680, + 0, 136, 0, -136, 0, 170, 185, 201, 0, 225, + 229, 238, 244, 248, 251, 255, 266, 272, 275, 283, + 304, 309, 346, 366, 378, 380, 382, 383, 396, 397, + 398, 400, 401, 404, 405, 413, 415, -46, 417, 420, + 0, 426, 108, 489, 0, 0, 428, 101, -35, 449, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 432, 0, 0, 430, 0, 5680, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -190, 450, 0, -234, 62, -13, 41, 41, 40, -252, + -121, 109, 109, 1644, -34, 109, 109, 92, -34, -34, + -249, -20, -20, -20, -35, 458, -35, 109, 1644, 1644, + 1644, -160, -249, -174, 0, 1644, -34, 288, -35, 0, + 0, 439, 414, 109, 467, 0, -22, 0, 421, 0, + -9, 0, -14, 0, 163, 0, 385, 0, 0, 0, + -136, 0, 0, 423, 465, 0, 471, 473, 475, 0, + 0, 137, 0, 0, 490, 271, 0, 441, 496, 0, + 503, 0, 0, 276, 0, 0, 452, 0, 0, 0, + 0, 0, 0, 292, 0, 0, 470, 0, 512, 0, + 0, 0, 518, 0, 0, 523, 524, 526, -34, -34, + 109, 109, 540, 109, 542, 544, 545, 1644, 548, 5537, + 0, 0, 533, 0, 331, 0, 500, 0, 555, 558, + 559, 564, 347, 0, 571, 582, 0, 0, 0, 0, + 367, 584, 379, 592, 594, 595, 141, 596, 402, 597, + 588, 611, 0, 0, 0, 0, 0, 0, 0, 0, + 617, 0, 0, 628, 385, 638, 640, 0, 593, -35, + -35, 644, 0, 649, 159, -35, -35, 0, -35, -35, + -35, -35, -35, 651, 650, 0, 141, 465, 5680, 0, + 0, 0, 0, 0, 0, 642, -1, 4, 643, 647, + 653, 0, 141, 465, 0, 5680, 0, 0, -35, -234, + 445, 14, 455, 654, 614, 1644, 678, -35, 38, 476, + 338, 682, -35, 688, 385, 690, -35, 109, 385, 109, + 1644, 424, 431, 0, 0, 694, 696, 1298, 0, 109, + 109, 5435, 0, 360, 704, 1644, 702, -35, -165, -83, + 429, 491, 703, -20, 433, 0, 707, -24, 708, -20, + -20, -20, -35, 709, 10, 109, -91, -19, -121, 0, + 0, 9, 9, 0, 45, 655, -254, 560, 0, 0, + 75, 148, 79, 79, 0, 0, 0, 0, -14, 0, + 1644, 711, 0, 0, 16, 25, 27, 29, 141, 465, + 22, -10, -28, 631, 427, 0, 0, 0, 501, 0, + 715, 137, 0, 719, 505, 459, 0, 0, 503, 0, + 0, 381, 499, 2, 0, 403, 508, 0, 0, 0, + 0, 721, 723, 109, 109, 662, 743, 748, 746, 749, + 0, 750, 5448, 0, 701, 0, 751, 752, 753, 0, + 0, 554, 536, 0, 0, 754, 0, 726, 0, 774, + 0, 0, 775, 579, 785, 0, -165, 0, 581, 796, + 583, 798, 800, 0, 802, 535, 0, 0, 0, 0, + 0, 804, 0, 591, 806, 807, 521, 598, 0, 810, + 385, 0, 811, -35, 0, 0, 465, 801, 815, 0, + 814, 0, 0, 0, 0, 604, -35, 0, -234, 0, + -21, 0, 824, 0, 57, 0, 98, 0, 23, 0, + 0, 0, 825, 621, 0, 0, 827, 0, 493, 839, + 0, 0, 0, 0, 0, 0, 0, 823, 826, 0, + 828, 0, 830, 0, 0, 832, 0, 0, 0, 0, + 0, 841, 0, 848, -121, 641, 0, 857, 590, 1644, + 0, -35, -35, 1644, 859, -35, 1644, 1644, 864, 861, + 0, -249, 648, -148, 652, 135, 586, 0, 867, -5, + 868, 528, 587, 0, -35, 870, -234, 871, 6, 72, + 385, 9, 0, 0, 141, 793, 1, 0, 560, 166, + 141, 465, 0, 0, 0, 32, 0, 33, 0, 35, + -165, 873, 0, 0, 0, -234, -35, -35, -35, 40, + 0, 5526, 0, 876, -35, 0, 880, 174, 686, 881, + -165, 569, 882, 883, -35, 685, 900, 852, 0, 0, + 0, 902, 691, 0, 693, 0, 110, 908, 0, 0, + 928, -184, 465, 716, 0, 717, 900, 0, 929, 0, + 0, 932, 90, 0, 0, 0, 385, 0, 57, 0, + 98, 0, 23, 0, 936, 722, 465, 0, 0, 0, + 0, 56, 0, 0, 0, -234, 0, 0, 0, 0, + 0, 920, 921, 924, 0, 0, 925, 0, 0, 0, + 465, 727, 0, 141, 0, 699, 0, -35, 0, 945, + 0, 0, 0, 481, 943, 59, 0, 0, 744, 957, + 965, 963, 6, -35, 0, 0, 967, 977, 982, 0, + -184, 767, -50, 971, 905, 90, 0, 0, 0, 0, + 0, 987, 724, 465, -35, -35, -35, -261, 0, 991, + 576, 0, -35, 777, 0, 0, 0, 989, 0, 385, + 992, 780, 0, 38, 900, 0, 0, 0, 781, 385, + 0, 0, 983, 0, 0, 0, 784, 0, 0, 0, + 0, 0, 916, 0, 0, 758, 0, 93, 1004, 59, + 0, 0, 788, 1006, 1007, 0, 1010, 0, 0, 5680, + 1009, -261, 1016, 675, 1020, 0, 0, 1025, 0, 0, + 385, 0, 5680, 0, -165, 0, 0, 0, 1023, 0, + 0, 0, 1024, 109, -149, 1026, 0, 0, 876, 109, + 1028, 0, 0, 0, }; - - /* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int16 yydefgoto[] = -{ - -1, 3, 4, 5, 6, 191, 81, 836, 862, 734, - 860, 12, 134, 82, 338, 83, 84, 85, 86, 173, - 87, 88, 636, 638, 640, 423, 424, 425, 426, 89, - 409, 699, 90, 91, 389, 92, 93, 174, 627, 766, - 767, 844, 831, 94, 525, 95, 96, 188, 97, 522, - 98, 336, 99, 296, 402, 518, 100, 101, 102, 281, - 272, 103, 801, 104, 842, 352, 500, 516, 679, 688, - 105, 295, 690, 468, 758, 106, 210, 450, 107, 359, - 229, 585, 729, 815, 108, 356, 219, 355, 579, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 615, - 119, 120, 121, 441, 122, 123, 124, 125, 126, 791, - 823, 127, 128, 129, 130, 131, 234, 273, 748, 789, - 790, 237, 487, 491, 730, 672, 492, 196, 278, 253, - 212, 346, 259, 260, 477, 478, 230, 231, 220, 221, - 315, 279, 697, 530, 531, 532, 317, 318, 319, 254, - 376, 183, 291, 582, 333, 334, 335, 513, 266, 267 +short yyrindex[] = { 1071, + 0, 0, 0, 5225, 0, 1072, 0, 0, 0, 53, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2985, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3174, 0, 0, + 0, 0, 0, 0, 3331, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5382, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1032, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3520, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 689, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1947, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1098, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 136, 0, 0, 0, 0, 0, 720, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3677, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1033, 0, 241, 247, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3866, 4023, 0, 951, 0, 0, 0, 0, + 0, 0, 0, 984, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2136, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2293, + 0, 0, 0, 0, 0, 0, 0, 1037, 0, 0, + 0, 0, 374, 531, 0, 0, 0, 0, 0, 0, + 0, 553, 0, 0, 0, 0, 0, 0, 42, 49, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 689, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4212, 0, 0, 1035, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4369, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4558, 0, 0, 0, + 1039, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2482, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 958, 0, 0, 0, 0, 0, + 50, 52, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4715, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2639, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4904, 0, 0, 0, 959, 0, 0, 0, + 0, 0, 961, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1255, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1444, 0, 0, 909, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 961, 0, 0, 0, 0, + 0, 0, 0, 1601, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2828, 0, 5061, + 0, 0, 0, 0, 959, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1790, 0, 0, 0, 0, 128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -69, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -69, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1043, 0, 0, 4715, 0, + 0, 0, 0, 0, }; - - /* 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 yytype_int16 yytable[] = -{ - 185, 211, 300, 197, 509, 182, 401, 238, 239, 611, - 255, 261, 262, 265, 549, 517, 427, 520, 521, 529, - 428, 527, 177, 283, 213, 284, 285, 286, 223, 275, - 276, 277, 297, 177, 16, 761, 177, 305, 320, 303, - 321, 202, 203, 263, 322, 323, 324, 551, 232, 439, - 329, 202, 203, 270, 331, 472, 293, 472, 213, 657, - 177, 213, 189, 813, 422, 641, 456, 498, 305, 459, - 177, 514, 677, 858, 686, 639, 256, 202, 203, 538, - 214, 540, 674, 9, 224, 644, 539, 637, 541, 756, - 691, 202, 203, 287, 11, 814, 325, 288, 289, 257, - 258, 193, 667, 282, 206, 644, 367, 368, 193, 370, - 294, 235, 194, 195, 214, 207, 236, 214, 190, 194, - 195, 132, 485, 306, 13, 207, 486, 859, 233, 316, - 223, 332, 274, 271, 407, 542, 208, 209, 326, 7, - 206, 499, 543, 827, 757, 515, 678, 223, 687, 670, - 706, 327, 1, 2, 215, 328, 671, 193, 225, 8, - 216, 472, 178, 60, 226, 327, 179, 180, 194, 195, - 741, 193, 208, 209, 257, 258, 14, 179, 180, 440, - 179, 180, 194, 195, 133, 519, 224, 519, 215, 178, - 176, 215, 546, 178, 216, 193, 429, 216, 511, 178, - 512, 654, 181, 224, 179, 180, 194, 195, 179, 180, - 475, 476, 445, 181, 179, 180, 181, 217, 218, 771, - 217, 218, 280, 15, 460, 461, 506, 462, 633, 770, - 632, 135, 624, 712, 469, 470, 471, 693, 479, 529, - 181, 769, 482, 523, 181, 488, 406, 489, 490, 764, - 181, 765, 412, 413, 435, 414, 415, 416, 417, 418, - 225, 510, 497, 136, 548, 137, 226, 503, 504, 505, - 563, 544, 306, 430, 564, 565, 528, 225, 545, 448, - 449, 774, 700, 226, 604, 436, 536, 227, 228, 701, - 702, 519, 263, 138, 447, 550, 139, 703, 140, 454, - 268, 269, 704, 458, 227, 228, 141, 202, 203, 705, - 472, 308, 467, 689, 473, 142, 475, 476, 298, 580, - 566, 567, 568, 287, 484, 202, 203, 288, 289, 588, - 589, 143, 692, 287, 309, 569, 330, 288, 289, 397, - 170, 310, 311, 312, 313, 314, 144, 524, 835, 570, - 571, -15, 204, 205, 854, 312, 313, 314, 572, 573, - 574, 575, 576, 145, 316, 146, 202, 203, 695, 696, - 206, 147, 804, 148, 577, 149, 578, 150, 290, 151, - 186, 264, 152, 310, 311, 312, 313, 314, 206, 737, - 365, 366, 738, 310, 311, 312, 313, 314, 184, 207, - 153, 154, 208, 209, 312, 313, 314, 155, 156, 768, - 202, 203, 635, 157, 204, 205, 198, 199, 200, 201, - 208, 209, 240, 241, 242, 243, 244, 158, 245, 206, - 246, 247, 248, 249, 250, 817, 280, 159, 818, 192, - 474, 596, 348, 310, 311, 312, 313, 314, 682, 160, - 181, 786, 787, 788, 161, 162, 658, 163, 164, 165, - 661, 208, 209, 664, 665, 475, 476, 533, 739, 301, - 626, 252, 167, 206, 302, 168, 411, 169, 175, 307, - 709, 710, 711, 534, 207, 187, 684, 634, 304, 310, - 311, 312, 313, 314, 553, 340, 337, 202, 203, 342, - 341, 822, 343, 344, 345, 208, 209, 348, 347, 353, - 350, 829, 348, 349, 351, 708, 310, 311, 312, 313, - 314, 732, 310, 311, 312, 313, 314, 310, 311, 312, - 313, 314, 310, 311, 312, 313, 314, 354, 659, 660, - 357, -201, 663, 310, 311, 312, 313, 314, 358, 360, - 369, 361, 852, 240, 241, 242, 243, 244, 362, 245, - 206, 246, 247, 248, 249, 250, 559, 202, 203, 371, - 363, 251, 310, 311, 312, 313, 314, 364, 372, 467, - 202, 203, 373, 375, 377, 775, 378, 797, 379, 380, - 381, 382, 208, 209, 310, 784, 312, 313, 314, 383, - 562, 735, 252, 384, 385, 386, 387, 388, 810, 811, - 812, 745, 390, 391, 392, 310, 311, 312, 313, 314, - 393, 394, 395, 240, 241, 242, 243, 244, 584, 245, - 206, 246, 247, 248, 249, 250, 240, 241, 242, 243, - 244, 251, 245, 206, 246, 247, 248, 249, 250, 310, - 311, 312, 313, 314, 251, 713, 714, 396, 602, 405, - 398, 399, 208, 209, 742, 400, 715, 716, 717, 403, - 404, 408, 252, 419, 438, 208, 209, 310, 311, 312, - 313, 314, 410, 420, 782, 252, 421, 431, 432, 718, - 433, 719, 720, 721, 722, 723, 724, 725, 726, 727, - 728, 442, 443, 444, 446, 451, 452, 310, 311, 312, - 313, 314, 453, 310, 311, 312, 313, 314, 455, 857, - 457, 463, 464, 465, 466, 864, 480, 493, 483, 819, - 481, 202, 203, 193, 494, 495, 496, 501, 502, 16, - 507, 526, -159, 537, 194, 195, 554, 17, 845, 552, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 555, - 557, 853, 27, 28, 29, 558, 561, 586, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 583, 39, 40, - 41, 42, 43, 44, 45, 587, 46, 240, 241, 242, - 243, 244, 590, 245, 206, 246, 247, 248, 249, 250, - 592, 47, 597, 601, 591, 251, 593, 594, 48, 49, - 595, 50, 598, 51, 52, 53, 599, 600, 54, 55, - 603, 56, 604, 57, 605, 606, 208, 209, 607, 609, - 608, 612, 610, 613, 614, 616, 252, 617, 618, 62, - 619, 620, 58, 621, 59, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 622, 596, 623, 630, 628, 60, 625, - 629, 631, 642, 256, 61, 62, 643, 645, 644, 646, - 647, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 171, - 64, 648, 66, 649, 68, 63, 70, 65, 72, 67, - 74, 69, 76, 71, 78, 73, 80, 75, 652, 77, - 650, 79, 651, 653, 655, 656, 467, 662, 666, 667, - 669, 673, 675, 676, 674, 683, 680, 681, 685, 707, - 733, 746, 694, 751, 736, 740, 743, 744, 747, 750, - 749, 752, 754, 755, 759, 760, 781, 762, 773, 763, - 780, 803, 776, 772, 777, 778, 779, 792, 785, 783, - 793, 795, 794, 809, 800, 798, 799, 805, 808, 820, - 816, 821, 806, 824, 825, 828, 830, 832, 834, 837, - 839, 840, 833, 841, 843, 846, 848, 850, 849, 10, - 851, 172, 855, 856, 434, 861, 863, 339, 166, 865, - 508, 807, 560, 292, 796, 802, 753, 299, 826, 222, - 847, 838, 731, 437, 668, 698, 556, 374, 0, 535, - 581, 0, 0, 547 +short yygindex[] = { 0, + 410, 294, 0, 487, -329, -480, 0, 0, 438, 645, + 330, 0, 0, 0, 0, -474, 0, 0, 0, 0, + 0, -86, -287, 0, 0, 901, 0, 273, -629, 657, + 1047, -296, -297, -509, 264, -504, -494, 0, 0, 0, + 0, 0, 0, 0, 0, 242, -384, -137, 849, 0, + 0, 0, 0, 0, 0, 0, 0, 1046, 934, -371, + 0, 0, 0, 684, 710, 0, -48, 0, 0, 0, + 351, 0, 1100, 0, 0, 0, -133, 790, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -58, -130, -355, -375, 679, -84, 0, 0, 0, + 0, -167, 0, 345, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 949, 0, 0, 0, 0, + 975, 0, 0, 0, 792, 680, 504, 0, }; - -static const yytype_int16 yycheck[] = -{ - 83, 137, 170, 135, 396, 60, 296, 143, 144, 501, - 145, 147, 148, 149, 432, 400, 328, 403, 404, 409, - 328, 59, 4, 159, 3, 160, 161, 162, 3, 153, - 154, 155, 167, 4, 6, 688, 4, 8, 20, 175, - 22, 59, 60, 44, 26, 27, 28, 433, 59, 3, - 186, 59, 60, 59, 186, 3, 5, 3, 3, 590, - 4, 3, 3, 107, 4, 550, 356, 59, 8, 359, - 4, 59, 59, 5, 59, 548, 133, 59, 60, 131, - 59, 131, 131, 0, 59, 134, 138, 546, 138, 4, - 621, 59, 60, 4, 70, 139, 78, 8, 9, 156, - 157, 139, 131, 158, 122, 134, 242, 243, 139, 245, - 59, 54, 150, 151, 59, 133, 59, 59, 59, 150, - 151, 131, 55, 178, 139, 133, 59, 59, 139, 184, - 3, 186, 133, 139, 302, 131, 154, 155, 120, 132, - 122, 133, 138, 796, 59, 133, 133, 3, 133, 59, - 642, 133, 15, 16, 133, 137, 66, 139, 133, 132, - 139, 3, 133, 135, 139, 133, 148, 149, 150, 151, - 662, 139, 154, 155, 156, 157, 139, 148, 149, 133, - 148, 149, 150, 151, 71, 133, 59, 133, 133, 133, - 141, 133, 137, 133, 139, 139, 328, 139, 57, 133, - 59, 586, 184, 59, 148, 149, 150, 151, 148, 149, - 158, 159, 347, 184, 148, 149, 184, 162, 163, 704, - 162, 163, 133, 132, 360, 361, 394, 362, 540, 702, - 538, 132, 522, 651, 369, 371, 372, 623, 373, 629, - 184, 700, 377, 87, 184, 59, 301, 61, 62, 89, - 184, 91, 307, 308, 337, 310, 311, 312, 313, 314, - 133, 397, 386, 132, 137, 132, 139, 391, 392, 393, - 4, 131, 327, 328, 8, 9, 408, 133, 138, 64, - 65, 132, 131, 139, 135, 340, 421, 160, 161, 138, - 131, 133, 44, 132, 349, 137, 132, 138, 132, 354, - 150, 151, 131, 358, 160, 161, 132, 59, 60, 138, - 3, 113, 58, 59, 7, 132, 158, 159, 168, 455, - 54, 55, 56, 4, 379, 59, 60, 8, 9, 465, - 466, 132, 622, 4, 136, 69, 186, 8, 9, 131, - 135, 185, 186, 187, 188, 189, 132, 191, 131, 83, - 84, 134, 63, 64, 846, 187, 188, 189, 92, 93, - 94, 95, 96, 132, 419, 132, 59, 60, 144, 145, - 122, 132, 764, 132, 108, 132, 110, 132, 59, 132, - 190, 133, 132, 185, 186, 187, 188, 189, 122, 131, - 240, 241, 134, 185, 186, 187, 188, 189, 133, 133, - 132, 132, 154, 155, 187, 188, 189, 132, 132, 699, - 59, 60, 544, 132, 63, 64, 10, 11, 12, 13, - 154, 155, 115, 116, 117, 118, 119, 132, 121, 122, - 123, 124, 125, 126, 127, 131, 133, 132, 134, 131, - 133, 3, 4, 185, 186, 187, 188, 189, 616, 132, - 184, 32, 33, 34, 132, 132, 591, 132, 132, 132, - 595, 154, 155, 598, 599, 158, 159, 136, 131, 190, - 525, 164, 132, 122, 135, 132, 134, 132, 132, 135, - 648, 649, 650, 136, 133, 132, 618, 542, 133, 185, - 186, 187, 188, 189, 136, 135, 137, 59, 60, 131, - 191, 791, 131, 131, 130, 154, 155, 4, 133, 3, - 131, 801, 4, 135, 131, 647, 185, 186, 187, 188, - 189, 653, 185, 186, 187, 188, 189, 185, 186, 187, - 188, 189, 185, 186, 187, 188, 189, 135, 593, 594, - 3, 137, 597, 185, 186, 187, 188, 189, 135, 131, - 133, 131, 842, 115, 116, 117, 118, 119, 131, 121, - 122, 123, 124, 125, 126, 127, 136, 59, 60, 133, - 131, 133, 185, 186, 187, 188, 189, 131, 133, 58, - 59, 60, 133, 133, 193, 717, 4, 755, 135, 131, - 131, 131, 154, 155, 185, 186, 187, 188, 189, 133, - 136, 656, 164, 4, 131, 131, 131, 6, 776, 777, - 778, 666, 4, 131, 131, 185, 186, 187, 188, 189, - 131, 131, 4, 115, 116, 117, 118, 119, 136, 121, - 122, 123, 124, 125, 126, 127, 115, 116, 117, 118, - 119, 133, 121, 122, 123, 124, 125, 126, 127, 185, - 186, 187, 188, 189, 133, 61, 62, 131, 136, 136, - 131, 131, 154, 155, 136, 131, 72, 73, 74, 131, - 131, 131, 164, 131, 3, 154, 155, 185, 186, 187, - 188, 189, 134, 134, 739, 164, 132, 132, 132, 95, - 132, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 3, 131, 136, 131, 5, 140, 185, 186, 187, - 188, 189, 131, 185, 186, 187, 188, 189, 131, 855, - 131, 58, 58, 131, 131, 861, 128, 67, 131, 784, - 134, 59, 60, 139, 4, 131, 67, 131, 131, 6, - 131, 136, 77, 131, 150, 151, 3, 14, 831, 138, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 131, - 134, 844, 29, 30, 31, 4, 139, 131, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 139, 45, 46, - 47, 48, 49, 50, 51, 131, 53, 115, 116, 117, - 118, 119, 192, 121, 122, 123, 124, 125, 126, 127, - 134, 68, 135, 4, 131, 133, 131, 131, 75, 76, - 131, 78, 131, 80, 81, 82, 131, 131, 85, 86, - 131, 88, 135, 90, 131, 131, 154, 155, 4, 4, - 131, 4, 131, 131, 131, 131, 164, 58, 131, 142, - 4, 131, 109, 131, 111, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 77, 3, 131, 134, 132, 135, 191, - 131, 4, 131, 133, 141, 142, 3, 140, 134, 134, - 132, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 142, - 149, 132, 151, 132, 153, 148, 155, 150, 157, 152, - 159, 154, 161, 156, 163, 158, 165, 160, 134, 162, - 132, 164, 132, 131, 5, 131, 58, 131, 133, 131, - 4, 4, 67, 131, 131, 131, 139, 67, 131, 131, - 131, 4, 137, 4, 134, 134, 134, 134, 131, 131, - 136, 4, 131, 131, 4, 4, 32, 131, 5, 131, - 3, 7, 132, 134, 132, 132, 132, 4, 131, 134, - 131, 131, 134, 59, 131, 134, 134, 132, 131, 4, - 134, 131, 138, 131, 4, 4, 132, 5, 32, 134, - 4, 134, 192, 134, 134, 131, 134, 134, 129, 5, - 134, 55, 131, 131, 336, 131, 860, 192, 49, 134, - 396, 767, 450, 164, 754, 762, 678, 169, 795, 139, - 833, 821, 653, 341, 603, 629, 443, 249, -1, 419, - 455, -1, -1, 431 +#define YYTABLESIZE 6091 +short yytable[] = { 186, + 181, 299, 211, 195, 177, 255, 252, 400, 237, 238, + 507, 518, 260, 261, 266, 499, 608, 177, 206, 273, + 514, 283, 284, 285, 282, 177, 206, 313, 296, 224, + 424, 423, 311, 309, 677, 310, 528, 312, 177, 639, + 302, 206, 637, 327, 59, 686, 519, 520, 518, 279, + 635, 332, 26, 439, 334, 26, 548, 760, 526, 537, + 231, 214, 518, 269, 267, 268, 188, 455, 539, 516, + 541, 459, 543, 755, 7, 699, 701, 550, 703, 224, + 214, 313, 297, 308, 292, 122, 311, 309, 8, 310, + 523, 312, 124, 123, 549, 125, 214, 286, 281, 812, + 335, 287, 288, 274, 275, 276, 9, 366, 367, 857, + 369, 313, 547, 773, 656, 313, 311, 309, 305, 310, + 311, 312, 189, 813, 317, 312, 333, 12, 756, 313, + 192, 263, 232, 406, 311, 270, 834, 224, 293, 312, + 538, 193, 194, 484, 545, 690, 603, 485, 206, 540, + 192, 542, 289, 544, 364, 365, 700, 702, 13, 704, + 705, 193, 194, 858, 669, 826, 122, 532, 14, 14, + 348, 670, 348, 124, 123, 643, 125, 313, 673, 131, + 740, 26, 311, 309, 313, 310, 234, 312, 132, 311, + 309, 235, 310, 770, 312, 313, 769, 430, 169, 410, + 311, 309, 327, 310, 768, 312, 643, 286, 444, 666, + 313, 287, 288, 15, 737, 311, 309, 736, 310, 510, + 312, 511, 176, 461, 458, 505, 460, 134, 471, 487, + 468, 488, 489, 623, 477, 176, 469, 470, 481, 304, + 533, 405, 135, 176, 633, 634, 222, 411, 412, 434, + 413, 414, 415, 416, 417, 653, 422, 528, 136, 562, + 304, 176, 509, 563, 564, 471, 692, 286, 305, 429, + 438, 287, 288, 26, 711, 26, 527, 262, 212, 471, + 435, 360, 137, 535, 360, 328, 138, 361, 498, 446, + 361, 201, 202, 513, 453, 139, 222, 212, 457, 201, + 202, 140, 223, 203, 204, 141, 26, 676, 142, 565, + 566, 567, 143, 212, 201, 202, 201, 202, 685, 483, + 579, 26, 26, 144, 568, 197, 198, 199, 200, 145, + 587, 588, 146, 691, 213, 495, 1, 2, 569, 570, + 147, 502, 503, 504, 785, 786, 787, 571, 572, 573, + 574, 575, 223, 213, 222, 447, 448, 307, 178, 179, + 317, 148, 205, 576, 853, 577, 149, 256, 257, 213, + 192, 178, 179, 347, 225, 474, 475, 205, 803, 178, + 179, 193, 194, 466, 688, 522, 207, 208, 192, 262, + 694, 695, 178, 179, 180, 226, 227, 178, 179, 193, + 194, 207, 208, 150, 201, 202, 215, 180, 632, 767, + 223, 347, 474, 475, 347, 180, 347, 347, 347, 347, + 176, 201, 202, 151, 225, 215, 203, 204, 180, 216, + 217, 180, 763, 180, 764, 152, 320, 153, 321, 154, + 155, 215, 322, 323, 324, 226, 227, 681, 216, 217, + 26, 26, 657, 156, 157, 158, 660, 159, 160, 663, + 664, 161, 162, 313, 347, 625, 347, 205, 311, 309, + 163, 310, 164, 312, 166, 201, 202, 167, 631, 708, + 709, 710, 225, 168, 205, 174, 683, 175, 183, 184, + 185, 207, 208, 191, 325, 313, 347, 279, 347, 300, + 311, 309, 821, 310, 301, 312, 303, 336, 207, 208, + 340, 306, 828, 339, 341, 707, 342, 313, 343, 552, + 344, 731, 311, 309, 26, 783, 26, 312, 347, 346, + 348, 348, 352, 658, 659, 313, 326, 662, 205, 349, + 311, 309, 353, 310, 313, 312, 350, 192, 356, 311, + 309, 558, 310, 851, 312, 358, 178, 179, 193, 194, + 357, 360, 207, 208, 256, 257, 361, 362, 348, 363, + 376, 348, 313, 348, 348, 348, 348, 311, 309, 368, + 310, 370, 312, 371, 372, 774, 796, 374, 377, 342, + 378, 561, 180, 342, 342, 342, 734, 342, 379, 342, + 583, 380, 381, 382, 383, 313, 744, 809, 810, 811, + 311, 309, 313, 310, 384, 312, 817, 311, 309, 816, + 310, 348, 312, 348, 313, 385, 386, 388, 601, 311, + 309, 396, 310, 347, 312, 390, 389, 391, 392, 393, + 395, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 348, 397, 348, 347, 347, 347, 394, + 398, 741, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 399, 347, 347, 347, 347, 347, 347, 347, 781, + 347, 402, 63, 403, 65, 404, 67, 407, 69, 409, + 71, 418, 73, 419, 75, 347, 77, 442, 79, 421, + 431, 437, 347, 347, 432, 347, 443, 347, 347, 347, + 433, 441, 347, 347, 347, 347, 347, 347, 347, 307, + 856, 445, 313, 451, 818, 452, 863, 311, 309, 738, + 310, 454, 312, 456, 450, 462, 347, 464, 347, 465, + 347, 479, 463, 844, 480, 482, 494, 525, 493, 492, + 497, 501, 506, 496, 536, 551, 852, 553, 554, 556, + 347, 347, 557, 307, 585, 560, 586, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 589, 590, 582, 591, 592, + 348, 596, 593, 594, 597, 598, 599, 602, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 307, 600, 307, 348, 348, 348, 603, 604, 605, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 607, 348, + 348, 348, 348, 348, 348, 348, 606, 348, 609, 610, + 611, 612, 307, 613, 307, 615, 616, 617, 618, 619, + 620, 621, 348, 622, 595, 628, 624, 629, 627, 348, + 348, 630, 348, 255, 348, 348, 348, 643, 641, 348, + 348, 348, 348, 348, 348, 348, 170, 642, 644, 645, + 646, 651, 62, 647, 64, 648, 66, 649, 68, 650, + 70, 652, 72, 348, 74, 348, 76, 348, 78, 654, + 655, 466, 661, 665, 666, 668, 674, 680, 370, 672, + 675, 673, 679, 682, 684, 693, 706, 348, 348, 732, + 735, 739, 742, 743, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 745, 746, 748, 749, 370, 61, 750, 370, + 751, 753, 370, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 754, 761, 758, 759, 762, 771, 775, 776, 307, + 772, 777, 778, 779, 780, 782, 784, 307, 307, 307, + 307, 307, 307, 307, 307, 307, 307, 307, 307, 370, + 792, 791, 307, 307, 307, 793, 794, 797, 307, 307, + 307, 307, 307, 307, 307, 307, 307, 798, 307, 307, + 307, 307, 307, 307, 307, 799, 307, 802, 804, 805, + 807, 815, 820, 370, 819, 823, 808, 824, 827, 832, + 829, 307, 831, 833, 836, 838, 839, 840, 307, 307, + 842, 307, 845, 307, 307, 307, 847, 848, 307, 307, + 849, 307, 307, 307, 307, 850, 854, 855, 864, 860, + 1, 3, 364, 365, 172, 26, 315, 358, 188, 359, + 148, 284, 307, 16, 307, 139, 752, 825, 667, 728, + 801, 338, 837, 559, 165, 846, 373, 385, 555, 171, + 862, 298, 534, 795, 508, 11, 307, 307, 420, 546, + 806, 291, 221, 307, 307, 307, 307, 307, 307, 307, + 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, + 307, 436, 698, 581, 0, 0, 0, 0, 385, 0, + 0, 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, 370, 0, + 0, 0, 0, 0, 0, 0, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 385, 0, + 0, 370, 370, 370, 0, 0, 0, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 0, 370, 370, 370, + 370, 370, 370, 370, 0, 370, 0, 0, 0, 0, + 0, 0, 385, 0, 0, 0, 0, 0, 0, 0, + 370, 0, 0, 0, 0, 0, 0, 370, 370, 0, + 370, 0, 370, 370, 370, 0, 0, 370, 370, 0, + 370, 370, 370, 370, 233, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 370, 0, 370, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 370, 370, 0, 233, 0, + 0, 0, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, + 0, 0, 0, 0, 0, 233, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 385, 0, 0, + 0, 0, 0, 0, 0, 385, 385, 385, 385, 385, + 385, 385, 385, 385, 385, 385, 385, 233, 0, 233, + 385, 385, 385, 0, 0, 0, 385, 385, 385, 385, + 385, 385, 385, 385, 385, 0, 385, 385, 385, 385, + 385, 385, 385, 0, 385, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 385, + 0, 0, 0, 0, 0, 0, 385, 385, 0, 385, + 0, 385, 385, 385, 0, 0, 385, 385, 0, 385, + 385, 385, 385, 205, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 385, 0, 385, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 385, 385, 0, 205, 0, 0, + 0, 385, 385, 385, 385, 385, 385, 385, 385, 385, + 385, 385, 385, 385, 385, 385, 385, 385, 385, 0, + 0, 0, 0, 0, 233, 0, 0, 0, 0, 0, + 0, 0, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 205, 0, 0, 233, 233, 233, + 0, 0, 0, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 0, 233, 233, 233, 233, 233, 233, 233, + 0, 233, 0, 0, 0, 0, 205, 0, 205, 0, + 0, 0, 0, 0, 0, 0, 233, 0, 0, 0, + 0, 0, 0, 233, 233, 0, 233, 0, 233, 233, + 233, 0, 0, 233, 233, 0, 233, 233, 233, 233, + 209, 0, 0, 0, 0, 0, 0, 0, 0, 466, + 201, 202, 0, 0, 0, 0, 0, 233, 0, 233, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 233, 233, 0, 209, 0, 0, 0, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 239, 240, 241, 242, + 243, 0, 244, 205, 245, 246, 247, 248, 249, 0, + 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, + 0, 209, 0, 0, 0, 0, 0, 207, 208, 0, + 0, 0, 0, 205, 0, 0, 0, 251, 0, 0, + 0, 205, 205, 205, 205, 205, 205, 205, 205, 205, + 205, 205, 205, 209, 0, 209, 205, 205, 205, 0, + 0, 0, 205, 205, 205, 205, 205, 205, 205, 205, + 205, 0, 205, 205, 205, 205, 205, 205, 205, 0, + 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 205, 0, 0, 0, 0, + 0, 0, 205, 205, 0, 205, 0, 205, 205, 205, + 0, 0, 205, 205, 0, 205, 205, 205, 205, 221, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 205, 0, 205, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 205, 205, 0, 221, 0, 0, 0, 205, 205, 205, + 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, + 205, 205, 205, 205, 205, 0, 0, 0, 0, 0, + 209, 0, 0, 0, 0, 0, 0, 0, 209, 209, + 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, + 221, 0, 0, 209, 209, 209, 0, 0, 0, 209, + 209, 209, 209, 209, 209, 209, 209, 209, 0, 209, + 209, 209, 209, 209, 209, 209, 0, 209, 0, 0, + 0, 0, 221, 0, 221, 0, 0, 0, 0, 0, + 0, 0, 209, 0, 0, 0, 0, 0, 0, 209, + 209, 0, 209, 0, 209, 209, 209, 0, 0, 209, + 209, 0, 209, 209, 209, 209, 199, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 201, 202, 0, 0, + 0, 0, 0, 209, 0, 209, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 209, 209, 0, + 0, 0, 0, 0, 209, 209, 209, 209, 209, 209, + 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, + 209, 209, 239, 240, 241, 242, 243, 0, 244, 205, + 245, 246, 247, 248, 249, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, + 0, 0, 0, 207, 208, 0, 0, 0, 0, 221, + 0, 0, 0, 251, 0, 0, 0, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 200, + 0, 199, 221, 221, 221, 0, 0, 0, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 0, 221, 221, + 221, 221, 221, 221, 221, 0, 221, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 221, 0, 0, 0, 0, 0, 0, 221, 221, + 0, 221, 0, 221, 221, 221, 0, 0, 221, 221, + 0, 221, 221, 221, 221, 227, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 221, 0, 221, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 221, 221, 0, 0, + 0, 0, 0, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 0, 0, 0, 0, 0, 199, 0, 0, 0, + 0, 0, 0, 0, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 227, 0, 0, 199, + 199, 199, 0, 0, 0, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 0, 199, 199, 199, 199, 199, + 199, 199, 0, 199, 0, 0, 0, 0, 227, 0, + 227, 0, 0, 0, 0, 0, 0, 0, 199, 0, + 0, 0, 0, 0, 0, 199, 199, 0, 199, 0, + 199, 199, 199, 0, 0, 199, 199, 0, 199, 199, + 199, 199, 157, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, + 0, 199, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 199, 199, 0, 0, 0, 0, 0, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 227, 0, 0, 0, 0, + 0, 0, 0, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 0, 0, 157, 227, 227, + 227, 0, 0, 0, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 0, 227, 227, 227, 227, 227, 227, + 227, 0, 227, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 227, 0, 0, + 0, 0, 0, 0, 227, 227, 0, 227, 0, 227, + 227, 227, 0, 0, 227, 227, 0, 227, 227, 227, + 227, 202, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 227, 0, + 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 227, 227, 0, 0, 0, 0, 0, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 0, 0, 0, + 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, + 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, + 157, 157, 202, 0, 0, 157, 157, 157, 0, 0, + 0, 157, 157, 157, 157, 157, 157, 157, 157, 157, + 0, 157, 157, 157, 157, 157, 157, 157, 0, 157, + 0, 0, 0, 0, 202, 0, 202, 0, 0, 0, + 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, + 0, 157, 157, 158, 157, 0, 157, 157, 157, 0, + 0, 157, 157, 0, 157, 157, 157, 157, 284, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 157, 0, 157, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, + 157, 0, 0, 0, 0, 0, 157, 157, 157, 157, + 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, + 157, 157, 157, 157, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 284, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 202, 0, 0, 0, 0, 0, 0, 0, 202, + 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, + 202, 284, 0, 284, 202, 202, 202, 0, 0, 0, + 202, 202, 202, 202, 202, 202, 202, 202, 202, 0, + 202, 202, 202, 202, 202, 202, 202, 0, 202, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 202, 0, 0, 0, 0, 0, 0, + 202, 202, 0, 202, 0, 202, 202, 202, 0, 0, + 202, 202, 0, 202, 202, 202, 202, 286, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 202, 0, 202, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 202, 202, + 0, 0, 0, 0, 0, 202, 202, 202, 202, 202, + 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, + 202, 202, 202, 0, 0, 0, 0, 0, 284, 0, + 0, 0, 0, 0, 0, 0, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 286, 0, + 0, 284, 284, 284, 0, 0, 0, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 0, 284, 284, 284, + 284, 284, 284, 284, 0, 284, 0, 0, 0, 0, + 286, 0, 286, 0, 0, 0, 0, 0, 0, 0, + 284, 0, 0, 0, 0, 0, 0, 284, 284, 0, + 284, 0, 284, 284, 284, 0, 0, 284, 284, 0, + 284, 284, 284, 284, 249, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 284, 0, 284, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 284, 284, 0, 0, 0, + 0, 0, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 286, 0, 0, + 0, 0, 0, 0, 0, 286, 286, 286, 286, 286, + 286, 286, 286, 286, 286, 286, 286, 0, 0, 249, + 286, 286, 286, 0, 0, 0, 286, 286, 286, 286, + 286, 286, 286, 286, 286, 0, 286, 286, 286, 286, + 286, 286, 286, 0, 286, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 286, + 0, 0, 0, 0, 0, 0, 286, 286, 0, 286, + 0, 286, 286, 286, 0, 0, 286, 286, 0, 286, + 286, 286, 286, 279, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 286, 0, 286, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 286, 286, 0, 0, 0, 0, + 0, 286, 286, 286, 286, 286, 286, 286, 286, 286, + 286, 286, 286, 286, 286, 286, 286, 286, 286, 0, + 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, + 0, 0, 249, 249, 249, 249, 249, 249, 249, 249, + 249, 249, 249, 249, 279, 0, 0, 249, 249, 249, + 0, 0, 0, 249, 249, 249, 249, 249, 249, 249, + 249, 249, 0, 249, 249, 249, 249, 249, 249, 249, + 0, 249, 0, 0, 0, 0, 0, 0, 279, 0, + 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, + 0, 0, 0, 249, 249, 0, 249, 0, 249, 249, + 249, 0, 0, 249, 249, 0, 249, 249, 249, 249, + 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 249, 0, 249, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 249, 249, 0, 0, 0, 0, 0, 249, 249, + 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, + 249, 249, 249, 249, 249, 249, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 279, 0, 0, 0, 0, 0, 0, + 0, 279, 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 0, 0, 161, 279, 279, 279, 0, + 0, 0, 279, 279, 279, 279, 279, 279, 279, 279, + 279, 0, 279, 279, 279, 279, 279, 279, 279, 0, + 279, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 279, 0, 0, 0, 0, + 0, 0, 279, 279, 0, 279, 0, 279, 279, 279, + 0, 0, 279, 279, 0, 279, 279, 279, 279, 160, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 279, 0, 279, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 279, 279, 0, 0, 0, 0, 0, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 0, 0, 0, 0, 0, + 161, 0, 0, 0, 0, 0, 0, 0, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 160, 0, 0, 161, 161, 161, 0, 0, 0, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 0, 161, + 161, 161, 161, 161, 161, 161, 0, 161, 0, 0, + 0, 0, 0, 0, 160, 0, 0, 0, 0, 0, + 0, 0, 161, 0, 0, 0, 0, 0, 0, 161, + 161, 0, 161, 0, 161, 161, 161, 0, 0, 161, + 161, 0, 161, 161, 161, 161, 275, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 161, 0, 161, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 161, 161, 0, + 0, 0, 0, 0, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 275, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, + 0, 0, 0, 0, 0, 0, 0, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 0, + 0, 275, 160, 160, 160, 0, 0, 0, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 0, 160, 160, + 160, 160, 160, 160, 160, 0, 160, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 160, 0, 0, 0, 0, 0, 0, 160, 160, + 0, 160, 0, 160, 160, 160, 0, 0, 160, 160, + 0, 160, 160, 160, 160, 97, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 160, 0, 160, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 160, 160, 0, 0, + 0, 0, 0, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 0, 0, 0, 0, 0, 275, 0, 0, 0, + 0, 0, 0, 0, 275, 275, 275, 275, 275, 275, + 275, 275, 275, 275, 275, 275, 97, 0, 0, 275, + 275, 275, 0, 0, 0, 275, 275, 275, 275, 275, + 275, 275, 275, 275, 0, 275, 275, 275, 275, 275, + 275, 275, 0, 275, 0, 0, 0, 0, 0, 0, + 97, 0, 0, 0, 0, 0, 0, 0, 275, 0, + 0, 0, 0, 0, 0, 275, 275, 0, 275, 0, + 275, 275, 275, 0, 0, 275, 275, 0, 275, 275, + 275, 275, 99, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 275, + 0, 275, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 275, 275, 0, 0, 0, 0, 0, + 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, + 275, 275, 275, 275, 275, 275, 275, 275, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, + 0, 0, 0, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 0, 0, 99, 97, 97, + 97, 0, 0, 0, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, + 97, 0, 97, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, + 0, 0, 0, 0, 97, 97, 0, 97, 0, 97, + 97, 97, 0, 0, 97, 97, 0, 97, 97, 97, + 97, 247, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, + 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 97, 97, 0, 0, 0, 0, 0, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 0, 0, 0, + 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 247, 0, 0, 99, 99, 99, 0, 0, + 0, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 0, 99, 99, 99, 99, 99, 99, 99, 0, 99, + 0, 0, 0, 0, 0, 0, 247, 0, 0, 0, + 0, 0, 0, 0, 99, 0, 0, 0, 0, 0, + 0, 99, 99, 0, 99, 0, 99, 99, 99, 0, + 0, 99, 99, 0, 99, 99, 99, 99, 257, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 99, 0, 99, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, + 99, 0, 0, 0, 0, 0, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 257, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 247, 0, 0, 0, 0, 0, 0, 0, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 0, 0, 257, 247, 247, 247, 0, 0, 0, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 0, + 247, 247, 247, 247, 247, 247, 247, 0, 247, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 247, 0, 0, 0, 0, 0, 0, + 247, 247, 0, 247, 0, 247, 247, 247, 0, 0, + 247, 247, 0, 247, 247, 247, 247, 273, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 247, 0, 247, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 247, 247, + 0, 0, 0, 0, 0, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 0, 0, 0, 0, 0, 257, 0, + 0, 0, 0, 0, 0, 0, 257, 257, 257, 257, + 257, 257, 257, 257, 257, 257, 257, 257, 273, 0, + 0, 257, 257, 257, 0, 0, 0, 257, 257, 257, + 257, 257, 257, 257, 257, 257, 0, 257, 257, 257, + 257, 257, 257, 257, 0, 257, 0, 0, 0, 0, + 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, + 257, 0, 0, 0, 0, 0, 0, 257, 257, 0, + 257, 0, 257, 257, 257, 0, 0, 257, 257, 0, + 257, 257, 257, 257, 18, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 257, 0, 257, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 257, 257, 0, 0, 0, + 0, 0, 257, 257, 257, 257, 257, 257, 257, 257, + 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, + 0, 0, 0, 0, 0, 273, 273, 273, 273, 273, + 273, 273, 273, 273, 273, 273, 273, 0, 0, 18, + 273, 273, 273, 0, 0, 0, 273, 273, 273, 273, + 273, 273, 273, 273, 273, 0, 273, 273, 273, 273, + 273, 273, 273, 0, 273, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, + 0, 0, 0, 0, 0, 0, 273, 273, 0, 273, + 0, 273, 273, 273, 0, 0, 273, 273, 0, 273, + 273, 273, 273, 277, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 273, 0, 273, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 273, 273, 0, 0, 0, 0, + 0, 273, 273, 273, 273, 273, 273, 273, 273, 273, + 273, 273, 273, 273, 273, 273, 273, 273, 273, 0, + 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, + 0, 0, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 277, 0, 0, 18, 18, 18, + 0, 0, 0, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 0, 18, 18, 18, 18, 18, 18, 18, + 0, 18, 0, 0, 0, 0, 0, 0, 277, 0, + 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, + 0, 0, 0, 18, 18, 0, 18, 0, 18, 18, + 18, 0, 0, 18, 18, 0, 18, 18, 18, 18, + 270, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 18, 0, 18, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 18, 18, 0, 0, 0, 0, 0, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 270, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 277, 0, 0, 0, 0, 0, 0, + 0, 277, 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 0, 0, 270, 277, 277, 277, 0, + 0, 0, 277, 277, 277, 277, 277, 277, 277, 277, + 277, 0, 277, 277, 277, 277, 277, 277, 277, 0, + 277, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 22, 277, 0, 0, 0, 0, + 0, 0, 277, 277, 0, 277, 0, 277, 277, 277, + 0, 0, 277, 277, 0, 277, 277, 277, 277, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 277, 0, 277, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 277, 277, 0, 0, 0, 0, 0, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 22, 0, 0, 0, 0, + 270, 0, 0, 0, 0, 0, 0, 0, 270, 270, + 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, + 0, 0, 0, 270, 270, 270, 0, 0, 0, 270, + 270, 270, 270, 270, 270, 270, 270, 270, 0, 270, + 270, 270, 270, 270, 270, 270, 0, 270, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 25, 270, 0, 0, 0, 0, 0, 0, 270, + 270, 0, 270, 0, 270, 270, 270, 0, 0, 270, + 270, 0, 270, 270, 270, 270, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 270, 0, 270, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 270, 270, 0, + 0, 0, 0, 0, 270, 270, 270, 270, 270, 270, + 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, + 270, 270, 25, 0, 473, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 22, 0, 0, 250, 0, 0, + 0, 0, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 0, 0, 0, 22, 22, 22, + 0, 0, 0, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 0, 22, 22, 22, 22, 22, 22, 22, + 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, + 0, 0, 0, 22, 22, 0, 22, 0, 22, 22, + 22, 0, 0, 22, 22, 0, 22, 0, 22, 0, + 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 22, 0, 22, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 22, 22, 0, 0, 0, 0, 0, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 0, 0, 0, 0, + 0, 25, 0, 0, 0, 0, 0, 0, 0, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 0, 0, 0, 25, 25, 25, 0, 0, 0, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, + 25, 25, 25, 25, 25, 25, 25, 0, 25, 0, + 0, 471, 0, 0, 0, 472, 0, 0, 0, 0, + 0, 0, 0, 25, 595, 347, 0, 0, 0, 0, + 25, 25, 0, 25, 0, 25, 25, 25, 0, 0, + 25, 25, 0, 25, 0, 25, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 25, 0, 25, 201, 202, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 201, 202, 0, 0, 0, 0, 0, 0, 25, 25, + 59, 0, 0, 0, 0, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 0, 347, 0, 0, 0, 0, 0, + 0, 0, 0, 239, 240, 241, 242, 243, 0, 244, + 205, 245, 246, 247, 248, 249, 239, 240, 241, 242, + 243, 0, 244, 205, 245, 246, 247, 248, 249, 0, + 0, 0, 0, 0, 207, 208, 0, 0, 474, 475, + 712, 713, 0, 0, 251, 0, 0, 207, 208, 201, + 202, 714, 715, 716, 0, 0, 0, 251, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 717, 0, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 239, 240, 241, 242, 243, + 192, 244, 205, 245, 246, 247, 248, 249, 0, 0, + 0, 193, 194, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 207, 208, 0, 15, + 0, 0, 0, 0, 0, 0, 251, 16, 0, 0, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, + 0, 0, 26, 27, 28, 0, 0, 0, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 0, 38, 39, + 40, 41, 42, 43, 44, 0, 45, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 46, 0, 0, 0, 0, 0, 0, 47, 48, + 0, 49, 0, 50, 51, 52, 0, 0, 53, 54, + 0, 55, 0, 56, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 57, 0, 58, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 60, 61, 0, 0, + 0, 0, 0, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, }; - - /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ -static const yytype_uint16 yystos[] = -{ - 0, 15, 16, 195, 196, 197, 198, 132, 132, 0, - 196, 70, 205, 139, 139, 132, 6, 14, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 29, 30, 31, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, - 46, 47, 48, 49, 50, 51, 53, 68, 75, 76, - 78, 80, 81, 82, 85, 86, 88, 90, 109, 111, - 135, 141, 142, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 200, 207, 209, 210, 211, 212, 214, 215, 223, - 226, 227, 229, 230, 237, 239, 240, 242, 244, 246, - 250, 251, 252, 255, 257, 264, 269, 272, 278, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 294, - 295, 296, 298, 299, 300, 301, 302, 305, 306, 307, - 308, 309, 131, 71, 206, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 229, 132, 132, 132, - 135, 142, 211, 213, 231, 132, 141, 4, 133, 148, - 149, 184, 335, 345, 133, 207, 190, 132, 241, 3, - 59, 199, 131, 139, 150, 151, 321, 334, 10, 11, - 12, 13, 59, 60, 63, 64, 122, 133, 154, 155, - 270, 323, 324, 3, 59, 133, 139, 162, 163, 280, - 332, 333, 280, 3, 59, 133, 139, 160, 161, 274, - 330, 331, 59, 139, 310, 54, 59, 315, 323, 323, - 115, 116, 117, 118, 119, 121, 123, 124, 125, 126, - 127, 133, 164, 323, 343, 344, 133, 156, 157, 326, - 327, 323, 323, 44, 133, 323, 352, 353, 326, 326, - 59, 139, 254, 311, 133, 352, 352, 352, 322, 335, - 133, 253, 335, 323, 344, 344, 344, 4, 8, 9, - 59, 346, 254, 5, 59, 265, 247, 344, 326, 210, - 322, 190, 135, 323, 133, 8, 335, 135, 113, 136, - 185, 186, 187, 188, 189, 334, 335, 340, 341, 342, - 20, 22, 26, 27, 28, 78, 120, 133, 137, 323, - 326, 334, 335, 348, 349, 350, 245, 137, 208, 206, - 135, 191, 131, 131, 131, 130, 325, 133, 4, 135, - 131, 131, 259, 3, 135, 281, 279, 3, 135, 273, - 131, 131, 131, 131, 131, 326, 326, 323, 323, 133, - 323, 133, 133, 133, 343, 133, 344, 193, 4, 135, - 131, 131, 131, 133, 4, 131, 131, 131, 6, 228, - 4, 131, 131, 131, 131, 4, 131, 131, 131, 131, - 131, 208, 248, 131, 131, 136, 335, 322, 131, 224, - 134, 134, 335, 335, 335, 335, 335, 335, 335, 131, - 134, 132, 4, 219, 220, 221, 222, 324, 327, 334, - 335, 132, 132, 132, 209, 207, 335, 321, 3, 3, - 133, 297, 3, 131, 136, 344, 131, 335, 64, 65, - 271, 5, 140, 131, 335, 131, 208, 131, 335, 208, - 323, 323, 344, 58, 58, 131, 131, 58, 267, 344, - 323, 323, 3, 7, 133, 158, 159, 328, 329, 344, - 128, 134, 344, 131, 335, 55, 59, 316, 59, 61, - 62, 317, 320, 67, 4, 131, 67, 352, 59, 133, - 260, 131, 131, 352, 352, 352, 322, 131, 253, 346, - 323, 57, 59, 351, 59, 133, 261, 315, 249, 133, - 328, 328, 243, 87, 191, 238, 136, 59, 334, 212, - 337, 338, 339, 136, 136, 340, 344, 131, 131, 138, - 131, 138, 131, 138, 131, 138, 137, 332, 137, 330, - 137, 328, 138, 136, 3, 131, 325, 134, 4, 136, - 259, 139, 136, 4, 8, 9, 54, 55, 56, 69, - 83, 84, 92, 93, 94, 95, 96, 108, 110, 282, - 323, 345, 347, 139, 136, 275, 131, 131, 323, 323, - 192, 131, 134, 131, 131, 131, 3, 135, 131, 131, - 131, 4, 136, 131, 135, 131, 131, 4, 131, 4, - 131, 316, 4, 131, 131, 293, 131, 58, 131, 4, - 131, 131, 77, 131, 208, 191, 335, 232, 132, 131, - 134, 4, 327, 324, 335, 334, 216, 333, 217, 331, - 218, 329, 131, 3, 134, 140, 134, 132, 132, 132, - 132, 132, 134, 131, 315, 5, 131, 267, 344, 335, - 335, 344, 131, 335, 344, 344, 133, 131, 311, 4, - 59, 66, 319, 4, 131, 67, 131, 59, 133, 262, - 139, 67, 322, 131, 334, 131, 59, 133, 263, 59, - 266, 267, 208, 328, 137, 144, 145, 336, 337, 225, - 131, 138, 131, 138, 131, 138, 316, 131, 334, 322, - 322, 322, 330, 61, 62, 72, 73, 74, 95, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 276, - 318, 320, 334, 131, 203, 335, 134, 131, 134, 131, - 134, 316, 136, 134, 134, 335, 4, 131, 312, 136, - 131, 4, 4, 270, 131, 131, 4, 59, 268, 4, - 4, 312, 131, 131, 89, 91, 233, 234, 208, 333, - 331, 329, 134, 5, 132, 334, 132, 132, 132, 132, - 3, 32, 335, 134, 186, 131, 32, 33, 34, 313, - 314, 303, 4, 131, 134, 131, 263, 322, 134, 134, - 131, 256, 268, 7, 346, 132, 138, 233, 131, 59, - 322, 322, 322, 107, 139, 277, 134, 131, 134, 335, - 4, 131, 208, 304, 131, 4, 271, 312, 4, 208, - 132, 236, 5, 192, 32, 131, 201, 134, 313, 4, - 134, 134, 258, 134, 235, 207, 131, 277, 134, 129, - 134, 134, 208, 207, 316, 131, 131, 323, 5, 59, - 204, 131, 202, 203, 323, 134 +short yycheck[] = { 86, + 59, 169, 136, 134, 40, 40, 144, 295, 142, 143, + 395, 40, 146, 147, 148, 40, 497, 40, 40, 40, + 40, 159, 160, 161, 158, 40, 40, 37, 166, 40, + 328, 328, 42, 43, 40, 45, 408, 47, 40, 549, + 174, 40, 547, 40, 91, 40, 402, 403, 40, 40, + 545, 185, 0, 40, 185, 125, 432, 687, 313, 44, + 313, 40, 40, 313, 149, 150, 257, 355, 44, 399, + 44, 359, 44, 258, 58, 44, 44, 433, 44, 40, + 40, 37, 167, 93, 259, 44, 42, 43, 58, 45, + 46, 47, 44, 44, 123, 44, 40, 258, 157, 361, + 185, 262, 263, 152, 153, 154, 324, 241, 242, 259, + 244, 37, 123, 58, 589, 37, 42, 43, 177, 45, + 42, 47, 313, 385, 183, 47, 185, 385, 313, 37, + 385, 40, 385, 301, 42, 385, 44, 40, 313, 47, + 125, 396, 397, 309, 123, 620, 91, 313, 40, 125, + 385, 125, 313, 125, 239, 240, 125, 125, 385, 125, + 641, 396, 397, 313, 313, 795, 125, 93, 41, 58, + 43, 320, 45, 125, 125, 41, 125, 37, 44, 44, + 661, 0, 42, 43, 37, 45, 308, 47, 325, 42, + 43, 313, 45, 703, 47, 37, 701, 328, 91, 41, + 42, 43, 40, 45, 699, 47, 41, 258, 346, 44, + 37, 262, 263, 260, 41, 42, 43, 44, 45, 311, + 47, 313, 258, 361, 358, 393, 360, 58, 257, 313, + 368, 315, 316, 521, 372, 258, 370, 371, 376, 262, + 93, 300, 58, 258, 541, 543, 257, 306, 307, 336, + 309, 310, 311, 312, 313, 585, 258, 629, 58, 258, + 262, 258, 396, 262, 263, 257, 622, 258, 327, 328, + 257, 262, 263, 343, 650, 345, 407, 298, 257, 257, + 339, 41, 58, 421, 44, 123, 58, 41, 313, 348, + 44, 313, 314, 313, 353, 58, 257, 257, 357, 313, + 314, 58, 313, 317, 318, 58, 125, 313, 58, 308, + 309, 310, 58, 257, 313, 314, 313, 314, 313, 378, + 454, 269, 270, 58, 323, 264, 265, 266, 267, 58, + 464, 465, 58, 621, 313, 384, 269, 270, 337, 338, + 58, 390, 391, 392, 286, 287, 288, 346, 347, 348, + 349, 350, 313, 313, 257, 318, 319, 367, 394, 395, + 419, 58, 376, 362, 845, 364, 58, 402, 403, 313, + 385, 394, 395, 0, 385, 404, 405, 376, 763, 394, + 395, 396, 397, 312, 313, 341, 400, 401, 385, 298, + 390, 391, 394, 395, 430, 406, 407, 394, 395, 396, + 397, 400, 401, 58, 313, 314, 385, 430, 539, 697, + 313, 38, 404, 405, 41, 430, 43, 44, 45, 46, + 258, 313, 314, 58, 385, 385, 317, 318, 430, 408, + 409, 430, 343, 430, 345, 58, 274, 58, 276, 58, + 58, 385, 280, 281, 282, 406, 407, 615, 408, 409, + 269, 270, 590, 58, 58, 58, 594, 58, 58, 597, + 598, 58, 58, 37, 91, 524, 93, 376, 42, 43, + 58, 45, 58, 47, 58, 313, 314, 58, 537, 647, + 648, 649, 385, 58, 376, 58, 617, 387, 40, 58, + 61, 400, 401, 44, 332, 37, 123, 40, 125, 61, + 42, 43, 790, 45, 91, 47, 40, 123, 400, 401, + 46, 91, 800, 91, 44, 646, 44, 37, 44, 93, + 384, 652, 42, 43, 343, 45, 345, 47, 258, 40, + 0, 91, 257, 592, 593, 37, 374, 596, 376, 44, + 42, 43, 91, 45, 37, 47, 44, 385, 257, 42, + 43, 93, 45, 841, 47, 44, 394, 395, 396, 397, + 91, 44, 400, 401, 402, 403, 44, 44, 38, 44, + 38, 41, 37, 43, 44, 45, 46, 42, 43, 40, + 45, 40, 47, 40, 40, 716, 754, 40, 258, 37, + 91, 93, 430, 41, 42, 43, 655, 45, 44, 47, + 93, 44, 44, 40, 258, 37, 665, 775, 776, 777, + 42, 43, 37, 45, 44, 47, 41, 42, 43, 44, + 45, 91, 47, 93, 37, 44, 260, 44, 93, 42, + 43, 44, 45, 260, 47, 44, 258, 44, 44, 44, + 44, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 123, 44, 125, 283, 284, 285, 258, + 44, 93, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 44, 299, 300, 301, 302, 303, 304, 305, 738, + 307, 44, 395, 44, 397, 93, 399, 44, 401, 41, + 403, 41, 405, 44, 407, 322, 409, 44, 411, 58, + 58, 257, 329, 330, 58, 332, 93, 334, 335, 336, + 58, 257, 339, 340, 341, 342, 343, 344, 345, 0, + 854, 44, 37, 386, 783, 44, 860, 42, 43, 44, + 45, 44, 47, 44, 259, 312, 363, 44, 365, 44, + 367, 382, 312, 830, 41, 44, 44, 93, 258, 321, + 44, 44, 44, 321, 44, 125, 843, 257, 44, 41, + 387, 388, 258, 44, 44, 385, 44, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 124, 44, 385, 41, 44, + 260, 91, 44, 44, 44, 44, 44, 44, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 91, 258, 93, 283, 284, 285, 91, 44, 44, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 44, 299, + 300, 301, 302, 303, 304, 305, 258, 307, 258, 44, + 258, 44, 123, 44, 125, 44, 312, 44, 258, 44, + 44, 331, 322, 44, 257, 41, 46, 44, 58, 329, + 330, 258, 332, 40, 334, 335, 336, 41, 44, 339, + 340, 341, 342, 343, 344, 345, 388, 257, 386, 41, + 58, 41, 394, 58, 396, 58, 398, 58, 400, 58, + 402, 44, 404, 363, 406, 365, 408, 367, 410, 259, + 44, 312, 44, 40, 44, 258, 321, 321, 0, 258, + 44, 44, 385, 44, 44, 123, 44, 387, 388, 44, + 41, 41, 41, 41, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 258, 44, 93, 44, 38, 388, 258, 41, + 258, 44, 44, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 44, 44, 258, 258, 44, 41, 58, 58, 260, + 259, 58, 58, 257, 286, 41, 44, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 91, + 44, 258, 283, 284, 285, 41, 44, 41, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 41, 299, 300, + 301, 302, 303, 304, 305, 44, 307, 261, 58, 125, + 44, 41, 44, 125, 258, 44, 313, 258, 258, 124, + 58, 322, 259, 286, 41, 258, 41, 41, 329, 330, + 41, 332, 44, 334, 335, 336, 41, 383, 339, 340, + 41, 342, 343, 344, 345, 41, 44, 44, 41, 44, + 0, 0, 41, 41, 386, 125, 93, 41, 44, 41, + 123, 123, 363, 41, 365, 125, 677, 794, 602, 652, + 761, 191, 820, 449, 48, 832, 248, 0, 442, 54, + 859, 168, 419, 753, 395, 6, 387, 388, 319, 431, + 766, 163, 138, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 340, 629, 454, -1, -1, -1, -1, 41, -1, + -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, + -1, -1, -1, -1, -1, -1, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 91, -1, + -1, 283, 284, 285, -1, -1, -1, 289, 290, 291, + 292, 293, 294, 295, 296, 297, -1, 299, 300, 301, + 302, 303, 304, 305, -1, 307, -1, -1, -1, -1, + -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, + 322, -1, -1, -1, -1, -1, -1, 329, 330, -1, + 332, -1, 334, 335, 336, -1, -1, 339, 340, -1, + 342, 343, 344, 345, 0, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 363, -1, 365, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 387, 388, -1, 44, -1, + -1, -1, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, + -1, -1, -1, -1, -1, 91, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, + -1, -1, -1, -1, -1, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 123, -1, 125, + 283, 284, 285, -1, -1, -1, 289, 290, 291, 292, + 293, 294, 295, 296, 297, -1, 299, 300, 301, 302, + 303, 304, 305, -1, 307, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, + -1, -1, -1, -1, -1, -1, 329, 330, -1, 332, + -1, 334, 335, 336, -1, -1, 339, 340, -1, 342, + 343, 344, 345, 0, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 363, -1, 365, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 387, 388, -1, 44, -1, -1, + -1, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, + -1, -1, -1, -1, 260, -1, -1, -1, -1, -1, + -1, -1, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 91, -1, -1, 283, 284, 285, + -1, -1, -1, 289, 290, 291, 292, 293, 294, 295, + 296, 297, -1, 299, 300, 301, 302, 303, 304, 305, + -1, 307, -1, -1, -1, -1, 123, -1, 125, -1, + -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, + -1, -1, -1, 329, 330, -1, 332, -1, 334, 335, + 336, -1, -1, 339, 340, -1, 342, 343, 344, 345, + 0, -1, -1, -1, -1, -1, -1, -1, -1, 312, + 313, 314, -1, -1, -1, -1, -1, 363, -1, 365, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 387, 388, -1, 44, -1, -1, -1, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 369, 370, 371, 372, + 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, + -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, + -1, 91, -1, -1, -1, -1, -1, 400, 401, -1, + -1, -1, -1, 260, -1, -1, -1, 410, -1, -1, + -1, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 123, -1, 125, 283, 284, 285, -1, + -1, -1, 289, 290, 291, 292, 293, 294, 295, 296, + 297, -1, 299, 300, 301, 302, 303, 304, 305, -1, + 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, + -1, -1, 329, 330, -1, 332, -1, 334, 335, 336, + -1, -1, 339, 340, -1, 342, 343, 344, 345, 0, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 363, -1, 365, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 387, 388, -1, 44, -1, -1, -1, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, -1, -1, -1, -1, -1, + 260, -1, -1, -1, -1, -1, -1, -1, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 91, -1, -1, 283, 284, 285, -1, -1, -1, 289, + 290, 291, 292, 293, 294, 295, 296, 297, -1, 299, + 300, 301, 302, 303, 304, 305, -1, 307, -1, -1, + -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, + -1, -1, 322, -1, -1, -1, -1, -1, -1, 329, + 330, -1, 332, -1, 334, 335, 336, -1, -1, 339, + 340, -1, 342, 343, 344, 345, 0, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 313, 314, -1, -1, + -1, -1, -1, 363, -1, 365, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 387, 388, -1, + -1, -1, -1, -1, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 369, 370, 371, 372, 373, -1, 375, 376, + 377, 378, 379, 380, 381, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, + -1, -1, -1, 400, 401, -1, -1, -1, -1, 260, + -1, -1, -1, 410, -1, -1, -1, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 123, + -1, 125, 283, 284, 285, -1, -1, -1, 289, 290, + 291, 292, 293, 294, 295, 296, 297, -1, 299, 300, + 301, 302, 303, 304, 305, -1, 307, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 322, -1, -1, -1, -1, -1, -1, 329, 330, + -1, 332, -1, 334, 335, 336, -1, -1, 339, 340, + -1, 342, 343, 344, 345, 0, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 363, -1, 365, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 387, 388, -1, -1, + -1, -1, -1, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, -1, -1, -1, -1, -1, 260, -1, -1, -1, + -1, -1, -1, -1, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 91, -1, -1, 283, + 284, 285, -1, -1, -1, 289, 290, 291, 292, 293, + 294, 295, 296, 297, -1, 299, 300, 301, 302, 303, + 304, 305, -1, 307, -1, -1, -1, -1, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, 322, -1, + -1, -1, -1, -1, -1, 329, 330, -1, 332, -1, + 334, 335, 336, -1, -1, 339, 340, -1, 342, 343, + 344, 345, 0, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 363, + -1, 365, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 387, 388, -1, -1, -1, -1, -1, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 260, -1, -1, -1, -1, + -1, -1, -1, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, -1, -1, 125, 283, 284, + 285, -1, -1, -1, 289, 290, 291, 292, 293, 294, + 295, 296, 297, -1, 299, 300, 301, 302, 303, 304, + 305, -1, 307, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, + -1, -1, -1, -1, 329, 330, -1, 332, -1, 334, + 335, 336, -1, -1, 339, 340, -1, 342, 343, 344, + 345, 0, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 363, -1, + 365, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 387, 388, -1, -1, -1, -1, -1, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, -1, -1, -1, + -1, -1, 260, -1, -1, -1, -1, -1, -1, -1, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 91, -1, -1, 283, 284, 285, -1, -1, + -1, 289, 290, 291, 292, 293, 294, 295, 296, 297, + -1, 299, 300, 301, 302, 303, 304, 305, -1, 307, + -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, + -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, + -1, 329, 330, 331, 332, -1, 334, 335, 336, -1, + -1, 339, 340, -1, 342, 343, 344, 345, 0, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 363, -1, 365, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 387, + 388, -1, -1, -1, -1, -1, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 260, -1, -1, -1, -1, -1, -1, -1, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 123, -1, 125, 283, 284, 285, -1, -1, -1, + 289, 290, 291, 292, 293, 294, 295, 296, 297, -1, + 299, 300, 301, 302, 303, 304, 305, -1, 307, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, + 329, 330, -1, 332, -1, 334, 335, 336, -1, -1, + 339, 340, -1, 342, 343, 344, 345, 0, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 363, -1, 365, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 387, 388, + -1, -1, -1, -1, -1, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, -1, -1, -1, -1, -1, 260, -1, + -1, -1, -1, -1, -1, -1, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 91, -1, + -1, 283, 284, 285, -1, -1, -1, 289, 290, 291, + 292, 293, 294, 295, 296, 297, -1, 299, 300, 301, + 302, 303, 304, 305, -1, 307, -1, -1, -1, -1, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, + 322, -1, -1, -1, -1, -1, -1, 329, 330, -1, + 332, -1, 334, 335, 336, -1, -1, 339, 340, -1, + 342, 343, 344, 345, 0, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 363, -1, 365, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 387, 388, -1, -1, -1, + -1, -1, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 91, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, + -1, -1, -1, -1, -1, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, -1, -1, 125, + 283, 284, 285, -1, -1, -1, 289, 290, 291, 292, + 293, 294, 295, 296, 297, -1, 299, 300, 301, 302, + 303, 304, 305, -1, 307, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, + -1, -1, -1, -1, -1, -1, 329, 330, -1, 332, + -1, 334, 335, 336, -1, -1, 339, 340, -1, 342, + 343, 344, 345, 0, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 363, -1, 365, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 387, 388, -1, -1, -1, -1, + -1, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, + -1, -1, -1, -1, 260, -1, -1, -1, -1, -1, + -1, -1, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 91, -1, -1, 283, 284, 285, + -1, -1, -1, 289, 290, 291, 292, 293, 294, 295, + 296, 297, -1, 299, 300, 301, 302, 303, 304, 305, + -1, 307, -1, -1, -1, -1, -1, -1, 125, -1, + -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, + -1, -1, -1, 329, 330, -1, 332, -1, 334, 335, + 336, -1, -1, 339, 340, -1, 342, 343, 344, 345, + 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 363, -1, 365, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 387, 388, -1, -1, -1, -1, -1, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 260, -1, -1, -1, -1, -1, -1, + -1, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, -1, -1, 125, 283, 284, 285, -1, + -1, -1, 289, 290, 291, 292, 293, 294, 295, 296, + 297, -1, 299, 300, 301, 302, 303, 304, 305, -1, + 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, + -1, -1, 329, 330, -1, 332, -1, 334, 335, 336, + -1, -1, 339, 340, -1, 342, 343, 344, 345, 0, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 363, -1, 365, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 387, 388, -1, -1, -1, -1, -1, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, -1, -1, -1, -1, -1, + 260, -1, -1, -1, -1, -1, -1, -1, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 91, -1, -1, 283, 284, 285, -1, -1, -1, 289, + 290, 291, 292, 293, 294, 295, 296, 297, -1, 299, + 300, 301, 302, 303, 304, 305, -1, 307, -1, -1, + -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, + -1, -1, 322, -1, -1, -1, -1, -1, -1, 329, + 330, -1, 332, -1, 334, 335, 336, -1, -1, 339, + 340, -1, 342, 343, 344, 345, 0, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 363, -1, 365, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 387, 388, -1, + -1, -1, -1, -1, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, + -1, -1, -1, -1, -1, -1, -1, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, -1, + -1, 125, 283, 284, 285, -1, -1, -1, 289, 290, + 291, 292, 293, 294, 295, 296, 297, -1, 299, 300, + 301, 302, 303, 304, 305, -1, 307, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 322, -1, -1, -1, -1, -1, -1, 329, 330, + -1, 332, -1, 334, 335, 336, -1, -1, 339, 340, + -1, 342, 343, 344, 345, 0, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 363, -1, 365, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 387, 388, -1, -1, + -1, -1, -1, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, -1, -1, -1, -1, -1, 260, -1, -1, -1, + -1, -1, -1, -1, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 91, -1, -1, 283, + 284, 285, -1, -1, -1, 289, 290, 291, 292, 293, + 294, 295, 296, 297, -1, 299, 300, 301, 302, 303, + 304, 305, -1, 307, -1, -1, -1, -1, -1, -1, + 125, -1, -1, -1, -1, -1, -1, -1, 322, -1, + -1, -1, -1, -1, -1, 329, 330, -1, 332, -1, + 334, 335, 336, -1, -1, 339, 340, -1, 342, 343, + 344, 345, 0, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 363, + -1, 365, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 387, 388, -1, -1, -1, -1, -1, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 260, -1, -1, -1, -1, + -1, -1, -1, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, -1, -1, 125, 283, 284, + 285, -1, -1, -1, 289, 290, 291, 292, 293, 294, + 295, 296, 297, -1, 299, 300, 301, 302, 303, 304, + 305, -1, 307, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, + -1, -1, -1, -1, 329, 330, -1, 332, -1, 334, + 335, 336, -1, -1, 339, 340, -1, 342, 343, 344, + 345, 0, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 363, -1, + 365, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 387, 388, -1, -1, -1, -1, -1, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, -1, -1, -1, + -1, -1, 260, -1, -1, -1, -1, -1, -1, -1, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 91, -1, -1, 283, 284, 285, -1, -1, + -1, 289, 290, 291, 292, 293, 294, 295, 296, 297, + -1, 299, 300, 301, 302, 303, 304, 305, -1, 307, + -1, -1, -1, -1, -1, -1, 125, -1, -1, -1, + -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, + -1, 329, 330, -1, 332, -1, 334, 335, 336, -1, + -1, 339, 340, -1, 342, 343, 344, 345, 0, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 363, -1, 365, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 387, + 388, -1, -1, -1, -1, -1, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 260, -1, -1, -1, -1, -1, -1, -1, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, -1, -1, 125, 283, 284, 285, -1, -1, -1, + 289, 290, 291, 292, 293, 294, 295, 296, 297, -1, + 299, 300, 301, 302, 303, 304, 305, -1, 307, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, + 329, 330, -1, 332, -1, 334, 335, 336, -1, -1, + 339, 340, -1, 342, 343, 344, 345, 0, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 363, -1, 365, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 387, 388, + -1, -1, -1, -1, -1, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, -1, -1, -1, -1, -1, 260, -1, + -1, -1, -1, -1, -1, -1, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 91, -1, + -1, 283, 284, 285, -1, -1, -1, 289, 290, 291, + 292, 293, 294, 295, 296, 297, -1, 299, 300, 301, + 302, 303, 304, 305, -1, 307, -1, -1, -1, -1, + -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, + 322, -1, -1, -1, -1, -1, -1, 329, 330, -1, + 332, -1, 334, 335, 336, -1, -1, 339, 340, -1, + 342, 343, 344, 345, 0, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 363, -1, 365, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 387, 388, -1, -1, -1, + -1, -1, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 91, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, + -1, -1, -1, -1, -1, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, -1, -1, 125, + 283, 284, 285, -1, -1, -1, 289, 290, 291, 292, + 293, 294, 295, 296, 297, -1, 299, 300, 301, 302, + 303, 304, 305, -1, 307, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, + -1, -1, -1, -1, -1, -1, 329, 330, -1, 332, + -1, 334, 335, 336, -1, -1, 339, 340, -1, 342, + 343, 344, 345, 0, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 363, -1, 365, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 387, 388, -1, -1, -1, -1, + -1, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, + -1, -1, -1, -1, 260, -1, -1, -1, -1, -1, + -1, -1, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 91, -1, -1, 283, 284, 285, + -1, -1, -1, 289, 290, 291, 292, 293, 294, 295, + 296, 297, -1, 299, 300, 301, 302, 303, 304, 305, + -1, 307, -1, -1, -1, -1, -1, -1, 125, -1, + -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, + -1, -1, -1, 329, 330, -1, 332, -1, 334, 335, + 336, -1, -1, 339, 340, -1, 342, 343, 344, 345, + 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 363, -1, 365, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 387, 388, -1, -1, -1, -1, -1, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 260, -1, -1, -1, -1, -1, -1, + -1, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, -1, -1, 125, 283, 284, 285, -1, + -1, -1, 289, 290, 291, 292, 293, 294, 295, 296, + 297, -1, 299, 300, 301, 302, 303, 304, 305, -1, + 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 0, 322, -1, -1, -1, -1, + -1, -1, 329, 330, -1, 332, -1, 334, 335, 336, + -1, -1, 339, 340, -1, 342, 343, 344, 345, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 363, -1, 365, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 387, 388, -1, -1, -1, -1, -1, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 91, -1, -1, -1, -1, + 260, -1, -1, -1, -1, -1, -1, -1, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + -1, -1, -1, 283, 284, 285, -1, -1, -1, 289, + 290, 291, 292, 293, 294, 295, 296, 297, -1, 299, + 300, 301, 302, 303, 304, 305, -1, 307, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 0, 322, -1, -1, -1, -1, -1, -1, 329, + 330, -1, 332, -1, 334, 335, 336, -1, -1, 339, + 340, -1, 342, 343, 344, 345, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 363, -1, 365, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 387, 388, -1, + -1, -1, -1, -1, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 91, -1, 40, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 260, -1, -1, 40, -1, -1, + -1, -1, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, -1, -1, -1, 283, 284, 285, + -1, -1, -1, 289, 290, 291, 292, 293, 294, 295, + 296, 297, -1, 299, 300, 301, 302, 303, 304, 305, + -1, 307, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, + -1, -1, -1, 329, 330, -1, 332, -1, 334, 335, + 336, -1, -1, 339, 340, -1, 342, -1, 344, -1, + -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 363, -1, 365, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 387, 388, -1, -1, -1, -1, -1, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, -1, -1, -1, -1, + -1, 260, -1, -1, -1, -1, -1, -1, -1, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, -1, -1, -1, 283, 284, 285, -1, -1, -1, + 289, 290, 291, 292, 293, 294, 295, 296, 297, -1, + 299, 300, 301, 302, 303, 304, 305, -1, 307, -1, + -1, 257, -1, -1, -1, 261, -1, -1, -1, -1, + -1, -1, -1, 322, 257, 258, -1, -1, -1, -1, + 329, 330, -1, 332, -1, 334, 335, 336, -1, -1, + 339, 340, -1, 342, -1, 344, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 363, -1, 365, 313, 314, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 313, 314, -1, -1, -1, -1, -1, -1, 387, 388, + 91, -1, -1, -1, -1, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, -1, 258, -1, -1, -1, -1, -1, + -1, -1, -1, 369, 370, 371, 372, 373, -1, 375, + 376, 377, 378, 379, 380, 381, 369, 370, 371, 372, + 373, -1, 375, 376, 377, 378, 379, 380, 381, -1, + -1, -1, -1, -1, 400, 401, -1, -1, 404, 405, + 315, 316, -1, -1, 410, -1, -1, 400, 401, 313, + 314, 326, 327, 328, -1, -1, -1, 410, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 349, -1, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 369, 370, 371, 372, 373, + 385, 375, 376, 377, 378, 379, 380, 381, -1, -1, + -1, 396, 397, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 400, 401, -1, 260, + -1, -1, -1, -1, -1, -1, 410, 268, -1, -1, + 271, 272, 273, 274, 275, 276, 277, 278, 279, -1, + -1, -1, 283, 284, 285, -1, -1, -1, 289, 290, + 291, 292, 293, 294, 295, 296, 297, -1, 299, 300, + 301, 302, 303, 304, 305, -1, 307, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 322, -1, -1, -1, -1, -1, -1, 329, 330, + -1, 332, -1, 334, 335, 336, -1, -1, 339, 340, + -1, 342, -1, 344, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 363, -1, 365, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 387, 388, -1, -1, + -1, -1, -1, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, }; - - /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint16 yyr1[] = -{ - 0, 194, 195, 195, 196, 196, 197, 198, 198, 199, - 199, 200, 200, 200, 200, 201, 201, 202, 202, 203, - 203, 204, 204, 205, 205, 206, 206, 207, 207, 208, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 210, 210, 210, 210, 210, 210, - 210, 210, 210, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 212, 212, 212, 213, 213, 214, 215, 215, - 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, - 215, 215, 215, 216, 216, 217, 217, 218, 218, 219, - 219, 220, 220, 221, 221, 222, 222, 224, 225, 223, - 226, 227, 228, 228, 229, 229, 229, 231, 232, 230, - 233, 233, 235, 234, 236, 234, 237, 238, 238, 239, - 241, 240, 243, 242, 245, 244, 247, 246, 248, 249, - 248, 250, 251, 251, 251, 252, 252, 253, 254, 256, - 255, 258, 257, 259, 259, 260, 260, 261, 261, 262, - 262, 263, 263, 264, 264, 265, 265, 266, 266, 267, - 267, 268, 268, 269, 269, 269, 270, 270, 271, 271, - 272, 273, 272, 274, 275, 275, 276, 276, 276, 276, - 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, - 276, 276, 277, 277, 277, 278, 279, 278, 280, 281, - 281, 282, 282, 282, 282, 282, 282, 282, 282, 282, - 282, 282, 282, 282, 282, 282, 283, 284, 285, 285, - 286, 286, 287, 288, 289, 290, 291, 292, 293, 293, - 294, 295, 296, 297, 297, 298, 299, 300, 301, 303, - 302, 304, 304, 305, 306, 306, 306, 307, 308, 309, - 309, 310, 310, 311, 311, 312, 312, 313, 313, 314, - 314, 314, 315, 315, 316, 316, 317, 317, 317, 318, - 318, 318, 319, 319, 320, 321, 321, 321, 322, 323, - 323, 323, 323, 324, 324, 324, 325, 325, 326, 326, - 326, 327, 328, 328, 328, 329, 329, 330, 330, 330, - 331, 331, 331, 331, 332, 332, 332, 333, 333, 333, - 333, 334, 334, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 336, 336, 337, 338, 338, 339, - 339, 340, 340, 341, 341, 342, 342, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 344, 344, 345, 346, - 346, 346, 347, 347, 347, 347, 348, 348, 349, 349, - 350, 350, 351, 351, 352, 352, 353 +#define YYFINAL 3 +#ifndef YYDEBUG +#define YYDEBUG 0 +#endif +#define YYMAXTOKEN 430 +#if YYDEBUG +char *yyname[] = { +"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,"'%'","'&'",0,"'('","')'","'*'","'+'","','","'-'","'.'","'/'",0,0,0,0,0,0, +0,0,0,0,"':'",0,0,"'='",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,"'['",0,"']'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'{'", +"'|'","'}'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"CHAR","INTEGER","BOOLEAN","PERCENT", +"SPERCENT","MINUS_INTEGER","PLUS_INTEGER","MAZE_GRID_ID","SOLID_FILL_ID", +"MINES_ID","ROGUELEV_ID","MESSAGE_ID","MAZE_ID","LEVEL_ID","LEV_INIT_ID", +"GEOMETRY_ID","NOMAP_ID","OBJECT_ID","COBJECT_ID","MONSTER_ID","TRAP_ID", +"DOOR_ID","DRAWBRIDGE_ID","object_ID","monster_ID","terrain_ID","MAZEWALK_ID", +"WALLIFY_ID","REGION_ID","FILLING","IRREGULAR","JOINED","ALTAR_ID","LADDER_ID", +"STAIR_ID","NON_DIGGABLE_ID","NON_PASSWALL_ID","ROOM_ID","PORTAL_ID", +"TELEPRT_ID","BRANCH_ID","LEV","MINERALIZE_ID","CORRIDOR_ID","GOLD_ID", +"ENGRAVING_ID","FOUNTAIN_ID","POOL_ID","SINK_ID","NONE","RAND_CORRIDOR_ID", +"DOOR_STATE","LIGHT_STATE","CURSE_TYPE","ENGRAVING_TYPE","DIRECTION", +"RANDOM_TYPE","RANDOM_TYPE_BRACKET","A_REGISTER","ALIGNMENT","LEFT_OR_RIGHT", +"CENTER","TOP_OR_BOT","ALTAR_TYPE","UP_OR_DOWN","SUBROOM_ID","NAME_ID", +"FLAGS_ID","FLAG_TYPE","MON_ATTITUDE","MON_ALERTNESS","MON_APPEARANCE", +"ROOMDOOR_ID","IF_ID","ELSE_ID","TERRAIN_ID","HORIZ_OR_VERT", +"REPLACE_TERRAIN_ID","EXIT_ID","SHUFFLE_ID","QUANTITY_ID","BURIED_ID","LOOP_ID", +"FOR_ID","TO_ID","SWITCH_ID","CASE_ID","BREAK_ID","DEFAULT_ID","ERODED_ID", +"TRAPPED_STATE","RECHARGED_ID","INVIS_ID","GREASED_ID","FEMALE_ID", +"CANCELLED_ID","REVIVED_ID","AVENGE_ID","FLEEING_ID","BLINDED_ID", +"PARALYZED_ID","STUNNED_ID","CONFUSED_ID","SEENTRAPS_ID","ALL_ID","MONTYPE_ID", +"GRAVE_ID","ERODEPROOF_ID","FUNCTION_ID","MSG_OUTPUT_TYPE","COMPARE_TYPE", +"UNKNOWN_TYPE","rect_ID","fillrect_ID","line_ID","randline_ID","grow_ID", +"selection_ID","flood_ID","rndcoord_ID","circle_ID","ellipse_ID","filter_ID", +"complement_ID","gradient_ID","GRADIENT_TYPE","LIMITED","HUMIDITY_TYPE", +"STRING","MAP_ID","NQSTRING","VARSTRING","CFUNC","CFUNC_INT","CFUNC_STR", +"CFUNC_COORD","CFUNC_REGION","VARSTRING_INT","VARSTRING_INT_ARRAY", +"VARSTRING_STRING","VARSTRING_STRING_ARRAY","VARSTRING_VAR", +"VARSTRING_VAR_ARRAY","VARSTRING_COORD","VARSTRING_COORD_ARRAY", +"VARSTRING_REGION","VARSTRING_REGION_ARRAY","VARSTRING_MAPCHAR", +"VARSTRING_MAPCHAR_ARRAY","VARSTRING_MONST","VARSTRING_MONST_ARRAY", +"VARSTRING_OBJ","VARSTRING_OBJ_ARRAY","VARSTRING_SEL","VARSTRING_SEL_ARRAY", +"METHOD_INT","METHOD_INT_ARRAY","METHOD_STRING","METHOD_STRING_ARRAY", +"METHOD_VAR","METHOD_VAR_ARRAY","METHOD_COORD","METHOD_COORD_ARRAY", +"METHOD_REGION","METHOD_REGION_ARRAY","METHOD_MAPCHAR","METHOD_MAPCHAR_ARRAY", +"METHOD_MONST","METHOD_MONST_ARRAY","METHOD_OBJ","METHOD_OBJ_ARRAY", +"METHOD_SEL","METHOD_SEL_ARRAY","DICE", }; - - /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = -{ - 0, 2, 0, 1, 1, 2, 3, 3, 5, 1, - 1, 5, 5, 3, 16, 0, 2, 0, 2, 0, - 2, 1, 1, 0, 3, 3, 1, 0, 2, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 3, 3, 5, - 3, 5, 5, 5, 3, 3, 5, 5, 5, 7, - 7, 7, 5, 1, 3, 1, 3, 1, 3, 1, - 3, 1, 3, 1, 3, 1, 3, 0, 0, 8, - 4, 1, 0, 1, 1, 5, 3, 0, 0, 9, - 0, 2, 0, 5, 0, 4, 1, 2, 1, 6, - 0, 3, 0, 6, 0, 4, 0, 4, 1, 0, - 4, 3, 1, 3, 3, 5, 5, 7, 4, 0, - 10, 0, 12, 0, 2, 5, 1, 5, 1, 5, - 1, 5, 1, 9, 5, 1, 1, 1, 1, 1, - 3, 1, 1, 1, 7, 5, 1, 1, 1, 1, - 3, 0, 5, 4, 0, 3, 1, 1, 1, 1, - 2, 1, 1, 1, 1, 1, 3, 3, 3, 1, - 1, 3, 1, 1, 3, 3, 0, 5, 2, 0, - 3, 1, 3, 1, 3, 3, 1, 1, 3, 1, - 1, 1, 3, 1, 1, 1, 5, 7, 5, 8, - 1, 3, 5, 5, 7, 7, 6, 5, 0, 2, - 3, 3, 3, 1, 5, 9, 5, 3, 3, 0, - 10, 0, 1, 7, 5, 5, 3, 5, 7, 9, - 1, 1, 1, 1, 1, 0, 2, 1, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 1, 1, 4, 1, 1, 4, 1, 1, - 4, 1, 4, 5, 1, 3, 1, 3, 1, 1, - 4, 9, 1, 1, 4, 1, 5, 1, 1, 4, - 1, 1, 5, 1, 1, 1, 4, 1, 1, 5, - 1, 1, 3, 1, 1, 3, 1, 4, 3, 3, - 3, 3, 3, 3, 1, 1, 3, 1, 3, 0, - 1, 1, 1, 1, 3, 0, 1, 1, 2, 2, - 4, 6, 4, 6, 6, 6, 6, 2, 6, 8, - 8, 10, 14, 2, 1, 3, 1, 3, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 10, 9 +char *yyrule[] = { +"$accept : file", +"file :", +"file : levels", +"levels : level", +"levels : level levels", +"level : level_def flags levstatements", +"level_def : LEVEL_ID ':' STRING", +"level_def : MAZE_ID ':' STRING ',' mazefiller", +"mazefiller : RANDOM_TYPE", +"mazefiller : CHAR", +"lev_init : LEV_INIT_ID ':' SOLID_FILL_ID ',' terrain_type", +"lev_init : LEV_INIT_ID ':' MAZE_GRID_ID ',' CHAR", +"lev_init : LEV_INIT_ID ':' ROGUELEV_ID", +"lev_init : LEV_INIT_ID ':' MINES_ID ',' CHAR ',' CHAR ',' BOOLEAN ',' BOOLEAN ',' light_state ',' walled opt_fillchar", +"opt_limited :", +"opt_limited : ',' LIMITED", +"opt_coord_or_var :", +"opt_coord_or_var : ',' coord_or_var", +"opt_fillchar :", +"opt_fillchar : ',' CHAR", +"walled : BOOLEAN", +"walled : RANDOM_TYPE", +"flags :", +"flags : FLAGS_ID ':' flag_list", +"flag_list : FLAG_TYPE ',' flag_list", +"flag_list : FLAG_TYPE", +"levstatements :", +"levstatements : levstatement levstatements", +"stmt_block : '{' levstatements '}'", +"levstatement : message", +"levstatement : lev_init", +"levstatement : altar_detail", +"levstatement : grave_detail", +"levstatement : branch_region", +"levstatement : corridor", +"levstatement : variable_define", +"levstatement : shuffle_detail", +"levstatement : diggable_detail", +"levstatement : door_detail", +"levstatement : drawbridge_detail", +"levstatement : engraving_detail", +"levstatement : mineralize", +"levstatement : fountain_detail", +"levstatement : gold_detail", +"levstatement : switchstatement", +"levstatement : forstatement", +"levstatement : loopstatement", +"levstatement : ifstatement", +"levstatement : chancestatement", +"levstatement : exitstatement", +"levstatement : breakstatement", +"levstatement : function_define", +"levstatement : function_call", +"levstatement : ladder_detail", +"levstatement : map_definition", +"levstatement : mazewalk_detail", +"levstatement : monster_detail", +"levstatement : object_detail", +"levstatement : passwall_detail", +"levstatement : pool_detail", +"levstatement : portal_region", +"levstatement : random_corridors", +"levstatement : region_detail", +"levstatement : room_def", +"levstatement : subroom_def", +"levstatement : sink_detail", +"levstatement : terrain_detail", +"levstatement : replace_terrain_detail", +"levstatement : stair_detail", +"levstatement : stair_region", +"levstatement : teleprt_region", +"levstatement : trap_detail", +"levstatement : wallify_detail", +"any_var_array : VARSTRING_INT_ARRAY", +"any_var_array : VARSTRING_STRING_ARRAY", +"any_var_array : VARSTRING_VAR_ARRAY", +"any_var_array : VARSTRING_COORD_ARRAY", +"any_var_array : VARSTRING_REGION_ARRAY", +"any_var_array : VARSTRING_MAPCHAR_ARRAY", +"any_var_array : VARSTRING_MONST_ARRAY", +"any_var_array : VARSTRING_OBJ_ARRAY", +"any_var_array : VARSTRING_SEL_ARRAY", +"any_var : VARSTRING_INT", +"any_var : VARSTRING_STRING", +"any_var : VARSTRING_VAR", +"any_var : VARSTRING_COORD", +"any_var : VARSTRING_REGION", +"any_var : VARSTRING_MAPCHAR", +"any_var : VARSTRING_MONST", +"any_var : VARSTRING_OBJ", +"any_var : VARSTRING_SEL", +"any_var_or_arr : any_var_array", +"any_var_or_arr : any_var", +"any_var_or_arr : VARSTRING", +"any_var_or_unk : VARSTRING", +"any_var_or_unk : any_var", +"shuffle_detail : SHUFFLE_ID ':' any_var_array", +"variable_define : any_var_or_arr '=' math_expr_var", +"variable_define : any_var_or_arr '=' selection_ID ':' ter_selection", +"variable_define : any_var_or_arr '=' string_expr", +"variable_define : any_var_or_arr '=' terrainid ':' mapchar_or_var", +"variable_define : any_var_or_arr '=' monsterid ':' monster_or_var", +"variable_define : any_var_or_arr '=' objectid ':' object_or_var", +"variable_define : any_var_or_arr '=' coord_or_var", +"variable_define : any_var_or_arr '=' region_or_var", +"variable_define : any_var_or_arr '=' '{' integer_list '}'", +"variable_define : any_var_or_arr '=' '{' encodecoord_list '}'", +"variable_define : any_var_or_arr '=' '{' encoderegion_list '}'", +"variable_define : any_var_or_arr '=' terrainid ':' '{' mapchar_list '}'", +"variable_define : any_var_or_arr '=' monsterid ':' '{' encodemonster_list '}'", +"variable_define : any_var_or_arr '=' objectid ':' '{' encodeobj_list '}'", +"variable_define : any_var_or_arr '=' '{' string_list '}'", +"encodeobj_list : encodeobj", +"encodeobj_list : encodeobj_list ',' encodeobj", +"encodemonster_list : encodemonster", +"encodemonster_list : encodemonster_list ',' encodemonster", +"mapchar_list : mapchar", +"mapchar_list : mapchar_list ',' mapchar", +"encoderegion_list : encoderegion", +"encoderegion_list : encoderegion_list ',' encoderegion", +"encodecoord_list : encodecoord", +"encodecoord_list : encodecoord_list ',' encodecoord", +"integer_list : math_expr_var", +"integer_list : integer_list ',' math_expr_var", +"string_list : string_expr", +"string_list : string_list ',' string_expr", +"$$1 :", +"$$2 :", +"function_define : FUNCTION_ID NQSTRING '(' $$1 func_params_list ')' $$2 stmt_block", +"function_call : NQSTRING '(' func_call_params_list ')'", +"exitstatement : EXIT_ID", +"opt_percent :", +"opt_percent : PERCENT", +"comparestmt : PERCENT", +"comparestmt : '[' math_expr_var COMPARE_TYPE math_expr_var ']'", +"comparestmt : '[' math_expr_var ']'", +"$$3 :", +"$$4 :", +"switchstatement : SWITCH_ID $$3 '[' integer_or_var ']' $$4 '{' switchcases '}'", +"switchcases :", +"switchcases : switchcase switchcases", +"$$5 :", +"switchcase : CASE_ID all_integers ':' $$5 levstatements", +"$$6 :", +"switchcase : DEFAULT_ID ':' $$6 levstatements", +"breakstatement : BREAK_ID", +"for_to_span : '.' '.'", +"for_to_span : TO_ID", +"forstmt_start : FOR_ID any_var_or_unk '=' math_expr_var for_to_span math_expr_var", +"$$7 :", +"forstatement : forstmt_start $$7 stmt_block", +"$$8 :", +"loopstatement : LOOP_ID '[' integer_or_var ']' $$8 stmt_block", +"$$9 :", +"chancestatement : comparestmt ':' $$9 levstatement", +"$$10 :", +"ifstatement : IF_ID comparestmt $$10 if_ending", +"if_ending : stmt_block", +"$$11 :", +"if_ending : stmt_block $$11 ELSE_ID stmt_block", +"message : MESSAGE_ID ':' string_expr", +"random_corridors : RAND_CORRIDOR_ID", +"random_corridors : RAND_CORRIDOR_ID ':' all_integers", +"random_corridors : RAND_CORRIDOR_ID ':' RANDOM_TYPE", +"corridor : CORRIDOR_ID ':' corr_spec ',' corr_spec", +"corridor : CORRIDOR_ID ':' corr_spec ',' all_integers", +"corr_spec : '(' INTEGER ',' DIRECTION ',' door_pos ')'", +"room_begin : room_type opt_percent ',' light_state", +"$$12 :", +"subroom_def : SUBROOM_ID ':' room_begin ',' subroom_pos ',' room_size optroomregionflags $$12 stmt_block", +"$$13 :", +"room_def : ROOM_ID ':' room_begin ',' room_pos ',' room_align ',' room_size optroomregionflags $$13 stmt_block", +"roomfill :", +"roomfill : ',' BOOLEAN", +"room_pos : '(' INTEGER ',' INTEGER ')'", +"room_pos : RANDOM_TYPE", +"subroom_pos : '(' INTEGER ',' INTEGER ')'", +"subroom_pos : RANDOM_TYPE", +"room_align : '(' h_justif ',' v_justif ')'", +"room_align : RANDOM_TYPE", +"room_size : '(' INTEGER ',' INTEGER ')'", +"room_size : RANDOM_TYPE", +"door_detail : ROOMDOOR_ID ':' secret ',' door_state ',' door_wall ',' door_pos", +"door_detail : DOOR_ID ':' door_state ',' ter_selection", +"secret : BOOLEAN", +"secret : RANDOM_TYPE", +"door_wall : dir_list", +"door_wall : RANDOM_TYPE", +"dir_list : DIRECTION", +"dir_list : DIRECTION '|' dir_list", +"door_pos : INTEGER", +"door_pos : RANDOM_TYPE", +"map_definition : NOMAP_ID", +"map_definition : GEOMETRY_ID ':' h_justif ',' v_justif roomfill MAP_ID", +"map_definition : GEOMETRY_ID ':' coord_or_var roomfill MAP_ID", +"h_justif : LEFT_OR_RIGHT", +"h_justif : CENTER", +"v_justif : TOP_OR_BOT", +"v_justif : CENTER", +"monster_detail : MONSTER_ID ':' monster_desc", +"$$14 :", +"monster_detail : MONSTER_ID ':' monster_desc $$14 stmt_block", +"monster_desc : monster_or_var ',' coord_or_var monster_infos", +"monster_infos :", +"monster_infos : monster_infos ',' monster_info", +"monster_info : string_expr", +"monster_info : MON_ATTITUDE", +"monster_info : MON_ALERTNESS", +"monster_info : alignment_prfx", +"monster_info : MON_APPEARANCE string_expr", +"monster_info : FEMALE_ID", +"monster_info : INVIS_ID", +"monster_info : CANCELLED_ID", +"monster_info : REVIVED_ID", +"monster_info : AVENGE_ID", +"monster_info : FLEEING_ID ':' integer_or_var", +"monster_info : BLINDED_ID ':' integer_or_var", +"monster_info : PARALYZED_ID ':' integer_or_var", +"monster_info : STUNNED_ID", +"monster_info : CONFUSED_ID", +"monster_info : SEENTRAPS_ID ':' seen_trap_mask", +"seen_trap_mask : STRING", +"seen_trap_mask : ALL_ID", +"seen_trap_mask : STRING '|' seen_trap_mask", +"object_detail : OBJECT_ID ':' object_desc", +"$$15 :", +"object_detail : COBJECT_ID ':' object_desc $$15 stmt_block", +"object_desc : object_or_var object_infos", +"object_infos :", +"object_infos : object_infos ',' object_info", +"object_info : CURSE_TYPE", +"object_info : MONTYPE_ID ':' monster_or_var", +"object_info : all_ints_push", +"object_info : NAME_ID ':' string_expr", +"object_info : QUANTITY_ID ':' integer_or_var", +"object_info : BURIED_ID", +"object_info : LIGHT_STATE", +"object_info : ERODED_ID ':' integer_or_var", +"object_info : ERODEPROOF_ID", +"object_info : DOOR_STATE", +"object_info : TRAPPED_STATE", +"object_info : RECHARGED_ID ':' integer_or_var", +"object_info : INVIS_ID", +"object_info : GREASED_ID", +"object_info : coord_or_var", +"trap_detail : TRAP_ID ':' trap_name ',' coord_or_var", +"drawbridge_detail : DRAWBRIDGE_ID ':' coord_or_var ',' DIRECTION ',' door_state", +"mazewalk_detail : MAZEWALK_ID ':' coord_or_var ',' DIRECTION", +"mazewalk_detail : MAZEWALK_ID ':' coord_or_var ',' DIRECTION ',' BOOLEAN opt_fillchar", +"wallify_detail : WALLIFY_ID", +"wallify_detail : WALLIFY_ID ':' ter_selection", +"ladder_detail : LADDER_ID ':' coord_or_var ',' UP_OR_DOWN", +"stair_detail : STAIR_ID ':' coord_or_var ',' UP_OR_DOWN", +"stair_region : STAIR_ID ':' lev_region ',' lev_region ',' UP_OR_DOWN", +"portal_region : PORTAL_ID ':' lev_region ',' lev_region ',' STRING", +"teleprt_region : TELEPRT_ID ':' lev_region ',' lev_region teleprt_detail", +"branch_region : BRANCH_ID ':' lev_region ',' lev_region", +"teleprt_detail :", +"teleprt_detail : ',' UP_OR_DOWN", +"fountain_detail : FOUNTAIN_ID ':' ter_selection", +"sink_detail : SINK_ID ':' ter_selection", +"pool_detail : POOL_ID ':' ter_selection", +"terrain_type : CHAR", +"terrain_type : '(' CHAR ',' light_state ')'", +"replace_terrain_detail : REPLACE_TERRAIN_ID ':' region_or_var ',' mapchar_or_var ',' mapchar_or_var ',' SPERCENT", +"terrain_detail : TERRAIN_ID ':' ter_selection ',' mapchar_or_var", +"diggable_detail : NON_DIGGABLE_ID ':' region_or_var", +"passwall_detail : NON_PASSWALL_ID ':' region_or_var", +"$$16 :", +"region_detail : REGION_ID ':' region_or_var ',' light_state ',' room_type optroomregionflags $$16 region_detail_end", +"region_detail_end :", +"region_detail_end : stmt_block", +"altar_detail : ALTAR_ID ':' coord_or_var ',' alignment ',' altar_type", +"grave_detail : GRAVE_ID ':' coord_or_var ',' string_expr", +"grave_detail : GRAVE_ID ':' coord_or_var ',' RANDOM_TYPE", +"grave_detail : GRAVE_ID ':' coord_or_var", +"gold_detail : GOLD_ID ':' math_expr_var ',' coord_or_var", +"engraving_detail : ENGRAVING_ID ':' coord_or_var ',' engraving_type ',' string_expr", +"mineralize : MINERALIZE_ID ':' integer_or_var ',' integer_or_var ',' integer_or_var ',' integer_or_var", +"mineralize : MINERALIZE_ID", +"trap_name : STRING", +"trap_name : RANDOM_TYPE", +"room_type : STRING", +"room_type : RANDOM_TYPE", +"optroomregionflags :", +"optroomregionflags : ',' roomregionflags", +"roomregionflags : roomregionflag", +"roomregionflags : roomregionflag ',' roomregionflags", +"roomregionflag : FILLING", +"roomregionflag : IRREGULAR", +"roomregionflag : JOINED", +"door_state : DOOR_STATE", +"door_state : RANDOM_TYPE", +"light_state : LIGHT_STATE", +"light_state : RANDOM_TYPE", +"alignment : ALIGNMENT", +"alignment : a_register", +"alignment : RANDOM_TYPE", +"alignment_prfx : ALIGNMENT", +"alignment_prfx : a_register", +"alignment_prfx : A_REGISTER ':' RANDOM_TYPE", +"altar_type : ALTAR_TYPE", +"altar_type : RANDOM_TYPE", +"a_register : A_REGISTER '[' INTEGER ']'", +"string_or_var : STRING", +"string_or_var : VARSTRING_STRING", +"string_or_var : VARSTRING_STRING_ARRAY '[' math_expr_var ']'", +"integer_or_var : math_expr_var", +"coord_or_var : encodecoord", +"coord_or_var : rndcoord_ID '(' ter_selection ')'", +"coord_or_var : VARSTRING_COORD", +"coord_or_var : VARSTRING_COORD_ARRAY '[' math_expr_var ']'", +"encodecoord : '(' INTEGER ',' INTEGER ')'", +"encodecoord : RANDOM_TYPE", +"encodecoord : RANDOM_TYPE_BRACKET humidity_flags ']'", +"humidity_flags : HUMIDITY_TYPE", +"humidity_flags : HUMIDITY_TYPE ',' humidity_flags", +"region_or_var : encoderegion", +"region_or_var : VARSTRING_REGION", +"region_or_var : VARSTRING_REGION_ARRAY '[' math_expr_var ']'", +"encoderegion : '(' INTEGER ',' INTEGER ',' INTEGER ',' INTEGER ')'", +"mapchar_or_var : mapchar", +"mapchar_or_var : VARSTRING_MAPCHAR", +"mapchar_or_var : VARSTRING_MAPCHAR_ARRAY '[' math_expr_var ']'", +"mapchar : CHAR", +"mapchar : '(' CHAR ',' light_state ')'", +"monster_or_var : encodemonster", +"monster_or_var : VARSTRING_MONST", +"monster_or_var : VARSTRING_MONST_ARRAY '[' math_expr_var ']'", +"encodemonster : STRING", +"encodemonster : CHAR", +"encodemonster : '(' CHAR ',' STRING ')'", +"encodemonster : RANDOM_TYPE", +"object_or_var : encodeobj", +"object_or_var : VARSTRING_OBJ", +"object_or_var : VARSTRING_OBJ_ARRAY '[' math_expr_var ']'", +"encodeobj : STRING", +"encodeobj : CHAR", +"encodeobj : '(' CHAR ',' STRING ')'", +"encodeobj : RANDOM_TYPE", +"string_expr : string_or_var", +"string_expr : string_expr '.' string_or_var", +"math_expr_var : INTEGER", +"math_expr_var : dice", +"math_expr_var : '(' MINUS_INTEGER ')'", +"math_expr_var : VARSTRING_INT", +"math_expr_var : VARSTRING_INT_ARRAY '[' math_expr_var ']'", +"math_expr_var : math_expr_var '+' math_expr_var", +"math_expr_var : math_expr_var '-' math_expr_var", +"math_expr_var : math_expr_var '*' math_expr_var", +"math_expr_var : math_expr_var '/' math_expr_var", +"math_expr_var : math_expr_var '%' math_expr_var", +"math_expr_var : '(' math_expr_var ')'", +"func_param_type : CFUNC_INT", +"func_param_type : CFUNC_STR", +"func_param_part : any_var_or_arr ':' func_param_type", +"func_param_list : func_param_part", +"func_param_list : func_param_list ',' func_param_part", +"func_params_list :", +"func_params_list : func_param_list", +"func_call_param_part : math_expr_var", +"func_call_param_part : string_expr", +"func_call_param_list : func_call_param_part", +"func_call_param_list : func_call_param_list ',' func_call_param_part", +"func_call_params_list :", +"func_call_params_list : func_call_param_list", +"ter_selection_x : coord_or_var", +"ter_selection_x : rect_ID region_or_var", +"ter_selection_x : fillrect_ID region_or_var", +"ter_selection_x : line_ID coord_or_var ',' coord_or_var", +"ter_selection_x : randline_ID coord_or_var ',' coord_or_var ',' math_expr_var", +"ter_selection_x : grow_ID '(' ter_selection ')'", +"ter_selection_x : grow_ID '(' dir_list ',' ter_selection ')'", +"ter_selection_x : filter_ID '(' SPERCENT ',' ter_selection ')'", +"ter_selection_x : filter_ID '(' ter_selection ',' ter_selection ')'", +"ter_selection_x : filter_ID '(' mapchar_or_var ',' ter_selection ')'", +"ter_selection_x : flood_ID coord_or_var", +"ter_selection_x : circle_ID '(' coord_or_var ',' math_expr_var ')'", +"ter_selection_x : circle_ID '(' coord_or_var ',' math_expr_var ',' FILLING ')'", +"ter_selection_x : ellipse_ID '(' coord_or_var ',' math_expr_var ',' math_expr_var ')'", +"ter_selection_x : ellipse_ID '(' coord_or_var ',' math_expr_var ',' math_expr_var ',' FILLING ')'", +"ter_selection_x : gradient_ID '(' GRADIENT_TYPE ',' '(' math_expr_var '-' math_expr_var opt_limited ')' ',' coord_or_var opt_coord_or_var ')'", +"ter_selection_x : complement_ID ter_selection_x", +"ter_selection_x : VARSTRING_SEL", +"ter_selection_x : '(' ter_selection ')'", +"ter_selection : ter_selection_x", +"ter_selection : ter_selection_x '&' ter_selection", +"dice : DICE", +"all_integers : MINUS_INTEGER", +"all_integers : PLUS_INTEGER", +"all_integers : INTEGER", +"all_ints_push : MINUS_INTEGER", +"all_ints_push : PLUS_INTEGER", +"all_ints_push : INTEGER", +"all_ints_push : dice", +"objectid : object_ID", +"objectid : OBJECT_ID", +"monsterid : monster_ID", +"monsterid : MONSTER_ID", +"terrainid : terrain_ID", +"terrainid : TERRAIN_ID", +"engraving_type : ENGRAVING_TYPE", +"engraving_type : RANDOM_TYPE", +"lev_region : region", +"lev_region : LEV '(' INTEGER ',' INTEGER ',' INTEGER ',' INTEGER ')'", +"region : '(' INTEGER ',' INTEGER ',' INTEGER ',' INTEGER ')'", }; - - -#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 - - -#define YYRECOVERING() (!!yyerrstatus) - -#define YYBACKUP(Token, Value) \ -do \ - if (yychar == YYEMPTY) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - YYPOPSTACK (yylen); \ - yystate = *yyssp; \ - goto yybackup; \ - } \ - else \ - { \ - yyerror (YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (0) - -/* Error token number */ -#define YYTERROR 1 -#define YYERRCODE 256 - - - -/* Enable debugging if requested. */ -#if YYDEBUG - -# ifndef YYFPRINTF -# include /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (0) - -/* This macro is provided for backward compatibility. */ -#ifndef YY_LOCATION_PRINT -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) #endif +#ifdef YYSTACKSIZE +#undef YYMAXDEPTH +#define YYMAXDEPTH YYSTACKSIZE +#else +#ifdef YYMAXDEPTH +#define YYSTACKSIZE YYMAXDEPTH +#else +#define YYSTACKSIZE 500 +#define YYMAXDEPTH 500 +#endif +#endif +int yydebug; +int yynerrs; +int yyerrflag; +int yychar; +short *yyssp; +YYSTYPE *yyvsp; +YYSTYPE yyval; +YYSTYPE yylval; +short yyss[YYSTACKSIZE]; +YYSTYPE yyvs[YYSTACKSIZE]; +#define yystacksize YYSTACKSIZE - -# 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) - - -/*----------------------------------------. -| Print this symbol's value on YYOUTPUT. | -`----------------------------------------*/ - -static void -yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -{ - FILE *yyo = yyoutput; - YYUSE (yyo); - if (!yyvaluep) - return; -# ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); -# endif - YYUSE (yytype); -} - - -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ - -static void -yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -{ - YYFPRINTF (yyoutput, "%s %s (", - yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); - - yy_symbol_value_print (yyoutput, yytype, yyvaluep); - YYFPRINTF (yyoutput, ")"); -} - -/*------------------------------------------------------------------. -| yy_stack_print -- Print the state stack from its BOTTOM up to its | -| TOP (included). | -`------------------------------------------------------------------*/ - -static void -yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +/*lev_comp.y*/ +#define YYABORT goto yyabort +#define YYREJECT goto yyabort +#define YYACCEPT goto yyaccept +#define YYERROR goto yyerrlab +int +yyparse() { - YYFPRINTF (stderr, "Stack now"); - for (; yybottom <= yytop; yybottom++) - { - int yybot = *yybottom; - YYFPRINTF (stderr, " %d", yybot); - } - YYFPRINTF (stderr, "\n"); -} - -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (0) - - -/*------------------------------------------------. -| Report that the YYRULE is going to be reduced. | -`------------------------------------------------*/ + register int yym, yyn, yystate; +#if YYDEBUG + register char *yys; + extern char *getenv(); -static void -yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) -{ - unsigned long int yylno = yyrline[yyrule]; - int yynrhs = yyr2[yyrule]; - int yyi; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", - yyrule - 1, yylno); - /* The symbols being reduced. */ - for (yyi = 0; yyi < yynrhs; yyi++) + if ((yys = getenv("YYDEBUG")) != 0) { - YYFPRINTF (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, - yystos[yyssp[yyi + 1 - yynrhs]], - &(yyvsp[(yyi + 1) - (yynrhs)]) - ); - YYFPRINTF (stderr, "\n"); + yyn = *yys; + if (yyn >= '0' && yyn <= '9') + yydebug = yyn - '0'; } -} - -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyssp, yyvsp, Rule); \ -} while (0) - -/* Nonzero means print parse trace. It is left uninitialized so that - multiple parsers can coexist. */ -int yydebug; -#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 -# define YYINITDEPTH 200 -#endif - -/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only - if the built-in stack extension method is used). - - Do not make this value too large; the results are undefined if - YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) - evaluated with infinite-precision integer arithmetic. */ - -#ifndef YYMAXDEPTH -# define YYMAXDEPTH 10000 #endif + yynerrs = 0; + yyerrflag = 0; + yychar = (-1); -#if YYERROR_VERBOSE - -# ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen strlen -# else -/* Return the length of YYSTR. */ -static YYSIZE_T -yystrlen (const char *yystr) -{ - 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 -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -static char * -yystpcpy (char *yydest, const char *yysrc) -{ - char *yyd = yydest; - const char *yys = yysrc; - - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; -} -# endif -# endif + yyssp = yyss; + yyvsp = yyvs; + *yyssp = yystate = 0; -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary - quotes and backslashes, so that it's suitable for yyerror. The - heuristic is that double-quoting is unnecessary unless the string - contains an apostrophe, a comma, or backslash (other than - 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 YYSIZE_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') +yyloop: + if ((yyn = yydefred[yystate]) != 0) goto yyreduce; + if (yychar < 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; - /* Fall through. */ - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; + if ((yychar = yylex()) < 0) yychar = 0; +#if YYDEBUG + if (yydebug) + { + yys = 0; + if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; + if (!yys) yys = "illegal-symbol"; + printf("%sdebug: state %d, reading %d (%s)\n", + YYPREFIX, yystate, yychar, yys); + } +#endif } - - if (! yyres) - return yystrlen (yystr); - - return yystpcpy (yyres, yystr) - yyres; -} -# endif - -/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message - about the unexpected token YYTOKEN for the state stack whose top is - YYSSP. - - Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is - not large enough to hold the message. In that case, also set - *YYMSG_ALLOC to the required number of bytes. Return 2 if the - required number of bytes is too large to store. */ -static int -yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, - yytype_int16 *yyssp, int yytoken) -{ - YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); - YYSIZE_T yysize = yysize0; - 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) + if ((yyn = yysindex[yystate]) != 0 && (yyn += yychar) >= 0 && + yyn <= YYTABLESIZE && yycheck[yyn] == yychar) { - int yyn = yypact[*yyssp]; - yyarg[yycount++] = yytname[yytoken]; - if (!yypact_value_is_default (yyn)) +#if YYDEBUG + if (yydebug) + printf("%sdebug: state %d, shifting to state %d\n", + YYPREFIX, yystate, yytable[yyn]); +#endif + if (yyssp >= yyss + yystacksize - 1) { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. In other words, skip the first -YYN actions for - this state because they are default actions. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yyx; - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR - && !yytable_value_is_error (yytable[yyx + yyn])) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - break; - } - yyarg[yycount++] = yytname[yyx]; - { - YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); - if (! (yysize <= yysize1 - && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) - return 2; - yysize = yysize1; - } - } + goto yyoverflow; } + *++yyssp = yystate = yytable[yyn]; + *++yyvsp = yylval; + yychar = (-1); + if (yyerrflag > 0) --yyerrflag; + goto yyloop; } - - switch (yycount) + if ((yyn = yyrindex[yystate]) != 0 && (yyn += yychar) >= 0 && + yyn <= YYTABLESIZE && yycheck[yyn] == yychar) { -# define YYCASE_(N, S) \ - case N: \ - yyformat = S; \ - break - YYCASE_(0, YY_("syntax error")); - YYCASE_(1, YY_("syntax error, unexpected %s")); - YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); - YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); - YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); - YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); -# undef YYCASE_ + yyn = yytable[yyn]; + goto yyreduce; } - - { - YYSIZE_T yysize1 = yysize + yystrlen (yyformat); - if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) - return 2; - yysize = yysize1; - } - - if (*yymsg_alloc < yysize) + if (yyerrflag) goto yyinrecovery; + goto yynewerror; +yynewerror: + yyerror("syntax error"); + goto yyerrlab; +yyerrlab: + ++yynerrs; +yyinrecovery: + if (yyerrflag < 3) { - *yymsg_alloc = 2 * yysize; - if (! (yysize <= *yymsg_alloc - && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) - *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; - return 1; - } - - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - { - char *yyp = *yymsg; - int yyi = 0; - while ((*yyp = *yyformat) != '\0') - if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) + yyerrflag = 3; + for (;;) { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyformat += 2; + if ((yyn = yysindex[*yyssp]) != 0 && (yyn += YYERRCODE) >= 0 && + yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) + { +#if YYDEBUG + if (yydebug) + printf("%sdebug: state %d, error recovery shifting\ + to state %d\n", YYPREFIX, *yyssp, yytable[yyn]); +#endif + if (yyssp >= yyss + yystacksize - 1) + { + goto yyoverflow; + } + *++yyssp = yystate = yytable[yyn]; + *++yyvsp = yylval; + goto yyloop; + } + else + { +#if YYDEBUG + if (yydebug) + printf("%sdebug: error recovery discarding state %d\n", + YYPREFIX, *yyssp); +#endif + if (yyssp <= yyss) goto yyabort; + --yyssp; + --yyvsp; + } } - else + } + else + { + if (yychar == 0) goto yyabort; +#if YYDEBUG + if (yydebug) { - yyp++; - yyformat++; + yys = 0; + if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; + if (!yys) yys = "illegal-symbol"; + printf("%sdebug: state %d, error recovery discards token %d (%s)\n", + YYPREFIX, yystate, yychar, yys); } - } - return 0; -} -#endif /* YYERROR_VERBOSE */ - -/*-----------------------------------------------. -| 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 -} - - - - -/* The lookahead symbol. */ -int yychar; - -/* The semantic value of the lookahead symbol. */ -YYSTYPE yylval; -/* Number of syntax errors so far. */ -int yynerrs; - - -/*----------. -| yyparse. | -`----------*/ - -int -yyparse (void) -{ - int yystate; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - - /* The stacks and their tools: - 'yyss': related to states. - 'yyvs': related to semantic values. - - Refer to the stacks through separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ - - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss; - yytype_int16 *yyssp; - - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; - - YYSIZE_T yystacksize; - - int yyn; - int yyresult; - /* Lookahead token as an internal (translated) token number. */ - int yytoken = 0; - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; - -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; #endif - -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) - - /* The number of symbols on the RHS of the reduced rule. - Keep to zero when no symbol should be popped. */ - int yylen = 0; - - yyssp = yyss = yyssa; - yyvsp = yyvs = yyvsa; - yystacksize = YYINITDEPTH; - - YYDPRINTF ((stderr, "Starting parse\n")); - - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ - 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_alloc, yyss); - YYSTACK_RELOCATE (yyvs_alloc, 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 (yystate == YYFINAL) - YYACCEPT; - - goto yybackup; - -/*-----------. -| yybackup. | -`-----------*/ -yybackup: - - /* Do appropriate processing given the current state. Read a - lookahead token if we need one and don't already have one. */ - - /* First try to decide what to do without reference to lookahead token. */ - yyn = yypact[yystate]; - if (yypact_value_is_default (yyn)) - goto yydefault; - - /* Not known => get a lookahead token if don't already have one. */ - - /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ - if (yychar == YYEMPTY) - { - YYDPRINTF ((stderr, "Reading a token: ")); - yychar = yylex (); - } - - if (yychar <= YYEOF) - { - yychar = yytoken = YYEOF; - YYDPRINTF ((stderr, "Now at end of input.\n")); + yychar = (-1); + goto yyloop; } - else - { - yytoken = YYTRANSLATE (yychar); - YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); - } - - /* 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 (yytable_value_is_error (yyn)) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - - /* Count tokens shifted since error; after three, turn off error - status. */ - if (yyerrstatus) - yyerrstatus--; - - /* Shift the lookahead token. */ - YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token. */ - yychar = YYEMPTY; - - yystate = yyn; - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - *++yyvsp = yylval; - YY_IGNORE_MAYBE_UNINITIALIZED_END - - 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 6: -#line 283 "lev_comp.y" /* yacc.c:1646 */ +#if YYDEBUG + if (yydebug) + printf("%sdebug: state %d, reducing by rule %d (%s)\n", + YYPREFIX, yystate, yyn, yyrule[yyn]); +#endif + yym = yylen[yyn]; + yyval = yyvsp[1-yym]; + switch (yyn) { +case 5: +{ if (fatal_error > 0) { (void) fprintf(stderr, "%s: %d errors detected for level \"%s\". No output created!\n", - fname, fatal_error, (yyvsp[-2].map)); + fname, fatal_error, yyvsp[-2].map); fatal_error = 0; got_errors++; } else if (!got_errors) { - if (!write_level_file((yyvsp[-2].map), splev)) { - lc_error("Can't write output file for '%s'!", (yyvsp[-2].map)); + if (!write_level_file(yyvsp[-2].map, splev)) { + lc_error("Can't write output file for '%s'!", yyvsp[-2].map); exit(EXIT_FAILURE); } } - Free((yyvsp[-2].map)); + Free(yyvsp[-2].map); Free(splev); splev = NULL; vardef_free_all(variable_definitions); variable_definitions = NULL; } -#line 2465 "y.tab.c" /* yacc.c:1646 */ - break; - - case 7: -#line 305 "lev_comp.y" /* yacc.c:1646 */ - { - start_level_def(&splev, (yyvsp[0].map)); - (yyval.map) = (yyvsp[0].map); +break; +case 6: +{ + start_level_def(&splev, yyvsp[0].map); + yyval.map = yyvsp[0].map; } -#line 2474 "y.tab.c" /* yacc.c:1646 */ - break; - - case 8: -#line 310 "lev_comp.y" /* yacc.c:1646 */ - { - start_level_def(&splev, (yyvsp[-2].map)); - if ((yyvsp[0].i) == -1) { +break; +case 7: +{ + start_level_def(&splev, yyvsp[-2].map); + if (yyvsp[0].i == -1) { add_opvars(splev, "iiiiiiiio", VA_PASS9(LVLINIT_MAZEGRID,HWALL,0,0, 0,0,0,0, SPO_INITLEVEL)); } else { - long bg = what_map_char((char) (yyvsp[0].i)); + long bg = what_map_char((char) yyvsp[0].i); add_opvars(splev, "iiiiiiiio", VA_PASS9(LVLINIT_SOLIDFILL, bg, 0,0, 0,0,0,0, SPO_INITLEVEL)); @@ -2491,45 +2642,33 @@ yyreduce: VA_PASS2(MAZELEVEL, SPO_LEVEL_FLAGS)); max_x_map = COLNO-1; max_y_map = ROWNO; - (yyval.map) = (yyvsp[-2].map); + yyval.map = yyvsp[-2].map; } -#line 2497 "y.tab.c" /* yacc.c:1646 */ - break; - - case 9: -#line 331 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = -1; +break; +case 8: +{ + yyval.i = -1; } -#line 2505 "y.tab.c" /* yacc.c:1646 */ - break; - - case 10: -#line 335 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = what_map_char((char) (yyvsp[0].i)); +break; +case 9: +{ + yyval.i = what_map_char((char) yyvsp[0].i); } -#line 2513 "y.tab.c" /* yacc.c:1646 */ - break; - - case 11: -#line 341 "lev_comp.y" /* yacc.c:1646 */ - { - long filling = (yyvsp[0].terr).ter; +break; +case 10: +{ + long filling = yyvsp[0].terr.ter; if (filling == INVALID_TYPE || filling >= MAX_TYPE) lc_error("INIT_MAP: Invalid fill char type."); add_opvars(splev, "iiiiiiiio", - LVLINIT_SOLIDFILL,filling,0,(long)(yyvsp[0].terr).lit, 0,0,0,0, SPO_INITLEVEL); + LVLINIT_SOLIDFILL,filling,0,(long)yyvsp[0].terr.lit, 0,0,0,0, SPO_INITLEVEL); max_x_map = COLNO-1; max_y_map = ROWNO; } -#line 2527 "y.tab.c" /* yacc.c:1646 */ - break; - - case 12: -#line 351 "lev_comp.y" /* yacc.c:1646 */ - { - long filling = what_map_char((char) (yyvsp[0].i)); +break; +case 11: +{ + long filling = what_map_char((char) yyvsp[0].i); if (filling == INVALID_TYPE || filling >= MAX_TYPE) lc_error("INIT_MAP: Invalid fill char type."); add_opvars(splev, "iiiiiiiio", @@ -2538,29 +2677,23 @@ yyreduce: max_x_map = COLNO-1; max_y_map = ROWNO; } -#line 2542 "y.tab.c" /* yacc.c:1646 */ - break; - - case 13: -#line 362 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 12: +{ add_opvars(splev, "iiiiiiiio", VA_PASS9(LVLINIT_ROGUE,0,0,0, 0,0,0,0, SPO_INITLEVEL)); } -#line 2552 "y.tab.c" /* yacc.c:1646 */ - break; - - case 14: -#line 368 "lev_comp.y" /* yacc.c:1646 */ - { - long fg = what_map_char((char) (yyvsp[-11].i)); - long bg = what_map_char((char) (yyvsp[-9].i)); - long smoothed = (yyvsp[-7].i); - long joined = (yyvsp[-5].i); - long lit = (yyvsp[-3].i); - long walled = (yyvsp[-1].i); - long filling = (yyvsp[0].i); +break; +case 13: +{ + long fg = what_map_char((char) yyvsp[-11].i); + long bg = what_map_char((char) yyvsp[-9].i); + long smoothed = yyvsp[-7].i; + long joined = yyvsp[-5].i; + long lit = yyvsp[-3].i; + long walled = yyvsp[-1].i; + long filling = yyvsp[0].i; if (fg == INVALID_TYPE || fg >= MAX_TYPE) lc_error("INIT_MAP: Invalid foreground type."); if (bg == INVALID_TYPE || bg >= MAX_TYPE) @@ -2578,449 +2711,311 @@ yyreduce: max_x_map = COLNO-1; max_y_map = ROWNO; } -#line 2582 "y.tab.c" /* yacc.c:1646 */ - break; - - case 15: -#line 396 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = 0; +break; +case 14: +{ + yyval.i = 0; } -#line 2590 "y.tab.c" /* yacc.c:1646 */ - break; - - case 16: -#line 400 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = (yyvsp[0].i); +break; +case 15: +{ + yyval.i = yyvsp[0].i; } -#line 2598 "y.tab.c" /* yacc.c:1646 */ - break; - - case 17: -#line 406 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 16: +{ add_opvars(splev, "o", VA_PASS1(SPO_COPY)); - (yyval.i) = 0; + yyval.i = 0; } -#line 2607 "y.tab.c" /* yacc.c:1646 */ - break; - - case 18: -#line 411 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = 1; +break; +case 17: +{ + yyval.i = 1; } -#line 2615 "y.tab.c" /* yacc.c:1646 */ - break; - - case 19: -#line 417 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = -1; +break; +case 18: +{ + yyval.i = -1; } -#line 2623 "y.tab.c" /* yacc.c:1646 */ - break; - - case 20: -#line 421 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = what_map_char((char) (yyvsp[0].i)); +break; +case 19: +{ + yyval.i = what_map_char((char) yyvsp[0].i); } -#line 2631 "y.tab.c" /* yacc.c:1646 */ - break; - - case 23: -#line 432 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 22: +{ add_opvars(splev, "io", VA_PASS2(0, SPO_LEVEL_FLAGS)); } -#line 2639 "y.tab.c" /* yacc.c:1646 */ - break; - - case 24: -#line 436 "lev_comp.y" /* yacc.c:1646 */ - { - add_opvars(splev, "io", VA_PASS2((yyvsp[0].i), SPO_LEVEL_FLAGS)); +break; +case 23: +{ + add_opvars(splev, "io", VA_PASS2(yyvsp[0].i, SPO_LEVEL_FLAGS)); } -#line 2647 "y.tab.c" /* yacc.c:1646 */ - break; - - case 25: -#line 442 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = ((yyvsp[-2].i) | (yyvsp[0].i)); +break; +case 24: +{ + yyval.i = (yyvsp[-2].i | yyvsp[0].i); } -#line 2655 "y.tab.c" /* yacc.c:1646 */ - break; - - case 26: -#line 446 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = (yyvsp[0].i); +break; +case 25: +{ + yyval.i = yyvsp[0].i; } -#line 2663 "y.tab.c" /* yacc.c:1646 */ - break; - - case 27: -#line 452 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = 0; +break; +case 26: +{ + yyval.i = 0; } -#line 2671 "y.tab.c" /* yacc.c:1646 */ - break; - - case 28: -#line 456 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = 1 + (yyvsp[0].i); +break; +case 27: +{ + yyval.i = 1 + yyvsp[0].i; } -#line 2679 "y.tab.c" /* yacc.c:1646 */ - break; - - case 29: -#line 462 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = (yyvsp[-1].i); +break; +case 28: +{ + yyval.i = yyvsp[-1].i; } -#line 2687 "y.tab.c" /* yacc.c:1646 */ - break; - - case 97: -#line 545 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 96: +{ struct lc_vardefs *vd; - if ((vd = vardef_defined(variable_definitions, (yyvsp[0].map), 1))) { + if ((vd = vardef_defined(variable_definitions, yyvsp[0].map, 1))) { if (!(vd->var_type & SPOVAR_ARRAY)) - lc_error("Trying to shuffle non-array variable '%s'", (yyvsp[0].map)); - } else lc_error("Trying to shuffle undefined variable '%s'", (yyvsp[0].map)); - add_opvars(splev, "so", VA_PASS2((yyvsp[0].map), SPO_SHUFFLE_ARRAY)); - Free((yyvsp[0].map)); + lc_error("Trying to shuffle non-array variable '%s'", yyvsp[0].map); + } else lc_error("Trying to shuffle undefined variable '%s'", yyvsp[0].map); + add_opvars(splev, "so", VA_PASS2(yyvsp[0].map, SPO_SHUFFLE_ARRAY)); + Free(yyvsp[0].map); } -#line 2701 "y.tab.c" /* yacc.c:1646 */ - break; - - case 98: -#line 557 "lev_comp.y" /* yacc.c:1646 */ - { - variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-2].map), SPOVAR_INT); - add_opvars(splev, "iso", VA_PASS3(0, (yyvsp[-2].map), SPO_VAR_INIT)); - Free((yyvsp[-2].map)); +break; +case 97: +{ + variable_definitions = add_vardef_type(variable_definitions, yyvsp[-2].map, SPOVAR_INT); + add_opvars(splev, "iso", VA_PASS3(0, yyvsp[-2].map, SPO_VAR_INIT)); + Free(yyvsp[-2].map); } -#line 2711 "y.tab.c" /* yacc.c:1646 */ - break; - - case 99: -#line 563 "lev_comp.y" /* yacc.c:1646 */ - { - variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-4].map), SPOVAR_SEL); - add_opvars(splev, "iso", VA_PASS3(0, (yyvsp[-4].map), SPO_VAR_INIT)); - Free((yyvsp[-4].map)); +break; +case 98: +{ + variable_definitions = add_vardef_type(variable_definitions, yyvsp[-4].map, SPOVAR_SEL); + add_opvars(splev, "iso", VA_PASS3(0, yyvsp[-4].map, SPO_VAR_INIT)); + Free(yyvsp[-4].map); } -#line 2721 "y.tab.c" /* yacc.c:1646 */ - break; - - case 100: -#line 569 "lev_comp.y" /* yacc.c:1646 */ - { - variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-2].map), SPOVAR_STRING); - add_opvars(splev, "iso", VA_PASS3(0, (yyvsp[-2].map), SPO_VAR_INIT)); - Free((yyvsp[-2].map)); +break; +case 99: +{ + variable_definitions = add_vardef_type(variable_definitions, yyvsp[-2].map, SPOVAR_STRING); + add_opvars(splev, "iso", VA_PASS3(0, yyvsp[-2].map, SPO_VAR_INIT)); + Free(yyvsp[-2].map); } -#line 2731 "y.tab.c" /* yacc.c:1646 */ - break; - - case 101: -#line 575 "lev_comp.y" /* yacc.c:1646 */ - { - variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-4].map), SPOVAR_MAPCHAR); - add_opvars(splev, "iso", VA_PASS3(0, (yyvsp[-4].map), SPO_VAR_INIT)); - Free((yyvsp[-4].map)); +break; +case 100: +{ + variable_definitions = add_vardef_type(variable_definitions, yyvsp[-4].map, SPOVAR_MAPCHAR); + add_opvars(splev, "iso", VA_PASS3(0, yyvsp[-4].map, SPO_VAR_INIT)); + Free(yyvsp[-4].map); } -#line 2741 "y.tab.c" /* yacc.c:1646 */ - break; - - case 102: -#line 581 "lev_comp.y" /* yacc.c:1646 */ - { - variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-4].map), SPOVAR_MONST); - add_opvars(splev, "iso", VA_PASS3(0, (yyvsp[-4].map), SPO_VAR_INIT)); - Free((yyvsp[-4].map)); +break; +case 101: +{ + variable_definitions = add_vardef_type(variable_definitions, yyvsp[-4].map, SPOVAR_MONST); + add_opvars(splev, "iso", VA_PASS3(0, yyvsp[-4].map, SPO_VAR_INIT)); + Free(yyvsp[-4].map); } -#line 2751 "y.tab.c" /* yacc.c:1646 */ - break; - - case 103: -#line 587 "lev_comp.y" /* yacc.c:1646 */ - { - variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-4].map), SPOVAR_OBJ); - add_opvars(splev, "iso", VA_PASS3(0, (yyvsp[-4].map), SPO_VAR_INIT)); - Free((yyvsp[-4].map)); +break; +case 102: +{ + variable_definitions = add_vardef_type(variable_definitions, yyvsp[-4].map, SPOVAR_OBJ); + add_opvars(splev, "iso", VA_PASS3(0, yyvsp[-4].map, SPO_VAR_INIT)); + Free(yyvsp[-4].map); } -#line 2761 "y.tab.c" /* yacc.c:1646 */ - break; - - case 104: -#line 593 "lev_comp.y" /* yacc.c:1646 */ - { - variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-2].map), SPOVAR_COORD); - add_opvars(splev, "iso", VA_PASS3(0, (yyvsp[-2].map), SPO_VAR_INIT)); - Free((yyvsp[-2].map)); +break; +case 103: +{ + variable_definitions = add_vardef_type(variable_definitions, yyvsp[-2].map, SPOVAR_COORD); + add_opvars(splev, "iso", VA_PASS3(0, yyvsp[-2].map, SPO_VAR_INIT)); + Free(yyvsp[-2].map); } -#line 2771 "y.tab.c" /* yacc.c:1646 */ - break; - - case 105: -#line 599 "lev_comp.y" /* yacc.c:1646 */ - { - variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-2].map), SPOVAR_REGION); - add_opvars(splev, "iso", VA_PASS3(0, (yyvsp[-2].map), SPO_VAR_INIT)); - Free((yyvsp[-2].map)); +break; +case 104: +{ + variable_definitions = add_vardef_type(variable_definitions, yyvsp[-2].map, SPOVAR_REGION); + add_opvars(splev, "iso", VA_PASS3(0, yyvsp[-2].map, SPO_VAR_INIT)); + Free(yyvsp[-2].map); } -#line 2781 "y.tab.c" /* yacc.c:1646 */ - break; - - case 106: -#line 605 "lev_comp.y" /* yacc.c:1646 */ - { - long n_items = (yyvsp[-1].i); - variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-4].map), SPOVAR_INT|SPOVAR_ARRAY); +break; +case 105: +{ + long n_items = yyvsp[-1].i; + variable_definitions = add_vardef_type(variable_definitions, yyvsp[-4].map, SPOVAR_INT|SPOVAR_ARRAY); add_opvars(splev, "iso", - VA_PASS3(n_items, (yyvsp[-4].map), SPO_VAR_INIT)); - Free((yyvsp[-4].map)); + VA_PASS3(n_items, yyvsp[-4].map, SPO_VAR_INIT)); + Free(yyvsp[-4].map); } -#line 2793 "y.tab.c" /* yacc.c:1646 */ - break; - - case 107: -#line 613 "lev_comp.y" /* yacc.c:1646 */ - { - long n_items = (yyvsp[-1].i); - variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-4].map), SPOVAR_COORD|SPOVAR_ARRAY); +break; +case 106: +{ + long n_items = yyvsp[-1].i; + variable_definitions = add_vardef_type(variable_definitions, yyvsp[-4].map, SPOVAR_COORD|SPOVAR_ARRAY); add_opvars(splev, "iso", - VA_PASS3(n_items, (yyvsp[-4].map), SPO_VAR_INIT)); - Free((yyvsp[-4].map)); + VA_PASS3(n_items, yyvsp[-4].map, SPO_VAR_INIT)); + Free(yyvsp[-4].map); } -#line 2805 "y.tab.c" /* yacc.c:1646 */ - break; - - case 108: -#line 621 "lev_comp.y" /* yacc.c:1646 */ - { - long n_items = (yyvsp[-1].i); - variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-4].map), SPOVAR_REGION|SPOVAR_ARRAY); +break; +case 107: +{ + long n_items = yyvsp[-1].i; + variable_definitions = add_vardef_type(variable_definitions, yyvsp[-4].map, SPOVAR_REGION|SPOVAR_ARRAY); add_opvars(splev, "iso", - VA_PASS3(n_items, (yyvsp[-4].map), SPO_VAR_INIT)); - Free((yyvsp[-4].map)); + VA_PASS3(n_items, yyvsp[-4].map, SPO_VAR_INIT)); + Free(yyvsp[-4].map); } -#line 2817 "y.tab.c" /* yacc.c:1646 */ - break; - - case 109: -#line 629 "lev_comp.y" /* yacc.c:1646 */ - { - long n_items = (yyvsp[-1].i); - variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-6].map), SPOVAR_MAPCHAR|SPOVAR_ARRAY); +break; +case 108: +{ + long n_items = yyvsp[-1].i; + variable_definitions = add_vardef_type(variable_definitions, yyvsp[-6].map, SPOVAR_MAPCHAR|SPOVAR_ARRAY); add_opvars(splev, "iso", - VA_PASS3(n_items, (yyvsp[-6].map), SPO_VAR_INIT)); - Free((yyvsp[-6].map)); + VA_PASS3(n_items, yyvsp[-6].map, SPO_VAR_INIT)); + Free(yyvsp[-6].map); } -#line 2829 "y.tab.c" /* yacc.c:1646 */ - break; - - case 110: -#line 637 "lev_comp.y" /* yacc.c:1646 */ - { - long n_items = (yyvsp[-1].i); - variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-6].map), SPOVAR_MONST|SPOVAR_ARRAY); +break; +case 109: +{ + long n_items = yyvsp[-1].i; + variable_definitions = add_vardef_type(variable_definitions, yyvsp[-6].map, SPOVAR_MONST|SPOVAR_ARRAY); add_opvars(splev, "iso", - VA_PASS3(n_items, (yyvsp[-6].map), SPO_VAR_INIT)); - Free((yyvsp[-6].map)); + VA_PASS3(n_items, yyvsp[-6].map, SPO_VAR_INIT)); + Free(yyvsp[-6].map); } -#line 2841 "y.tab.c" /* yacc.c:1646 */ - break; - - case 111: -#line 645 "lev_comp.y" /* yacc.c:1646 */ - { - long n_items = (yyvsp[-1].i); - variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-6].map), SPOVAR_OBJ|SPOVAR_ARRAY); +break; +case 110: +{ + long n_items = yyvsp[-1].i; + variable_definitions = add_vardef_type(variable_definitions, yyvsp[-6].map, SPOVAR_OBJ|SPOVAR_ARRAY); add_opvars(splev, "iso", - VA_PASS3(n_items, (yyvsp[-6].map), SPO_VAR_INIT)); - Free((yyvsp[-6].map)); + VA_PASS3(n_items, yyvsp[-6].map, SPO_VAR_INIT)); + Free(yyvsp[-6].map); } -#line 2853 "y.tab.c" /* yacc.c:1646 */ - break; - - case 112: -#line 653 "lev_comp.y" /* yacc.c:1646 */ - { - long n_items = (yyvsp[-1].i); - variable_definitions = add_vardef_type(variable_definitions, (yyvsp[-4].map), SPOVAR_STRING|SPOVAR_ARRAY); +break; +case 111: +{ + long n_items = yyvsp[-1].i; + variable_definitions = add_vardef_type(variable_definitions, yyvsp[-4].map, SPOVAR_STRING|SPOVAR_ARRAY); add_opvars(splev, "iso", - VA_PASS3(n_items, (yyvsp[-4].map), SPO_VAR_INIT)); - Free((yyvsp[-4].map)); + VA_PASS3(n_items, yyvsp[-4].map, SPO_VAR_INIT)); + Free(yyvsp[-4].map); } -#line 2865 "y.tab.c" /* yacc.c:1646 */ - break; - - case 113: -#line 663 "lev_comp.y" /* yacc.c:1646 */ - { - add_opvars(splev, "O", VA_PASS1((yyvsp[0].i))); - (yyval.i) = 1; +break; +case 112: +{ + add_opvars(splev, "O", VA_PASS1(yyvsp[0].i)); + yyval.i = 1; } -#line 2874 "y.tab.c" /* yacc.c:1646 */ - break; - - case 114: -#line 668 "lev_comp.y" /* yacc.c:1646 */ - { - add_opvars(splev, "O", VA_PASS1((yyvsp[0].i))); - (yyval.i) = 1 + (yyvsp[-2].i); +break; +case 113: +{ + add_opvars(splev, "O", VA_PASS1(yyvsp[0].i)); + yyval.i = 1 + yyvsp[-2].i; } -#line 2883 "y.tab.c" /* yacc.c:1646 */ - break; - - case 115: -#line 675 "lev_comp.y" /* yacc.c:1646 */ - { - add_opvars(splev, "M", VA_PASS1((yyvsp[0].i))); - (yyval.i) = 1; +break; +case 114: +{ + add_opvars(splev, "M", VA_PASS1(yyvsp[0].i)); + yyval.i = 1; } -#line 2892 "y.tab.c" /* yacc.c:1646 */ - break; - - case 116: -#line 680 "lev_comp.y" /* yacc.c:1646 */ - { - add_opvars(splev, "M", VA_PASS1((yyvsp[0].i))); - (yyval.i) = 1 + (yyvsp[-2].i); +break; +case 115: +{ + add_opvars(splev, "M", VA_PASS1(yyvsp[0].i)); + yyval.i = 1 + yyvsp[-2].i; } -#line 2901 "y.tab.c" /* yacc.c:1646 */ - break; - - case 117: -#line 687 "lev_comp.y" /* yacc.c:1646 */ - { - add_opvars(splev, "m", VA_PASS1((yyvsp[0].i))); - (yyval.i) = 1; +break; +case 116: +{ + add_opvars(splev, "m", VA_PASS1(yyvsp[0].i)); + yyval.i = 1; } -#line 2910 "y.tab.c" /* yacc.c:1646 */ - break; - - case 118: -#line 692 "lev_comp.y" /* yacc.c:1646 */ - { - add_opvars(splev, "m", VA_PASS1((yyvsp[0].i))); - (yyval.i) = 1 + (yyvsp[-2].i); +break; +case 117: +{ + add_opvars(splev, "m", VA_PASS1(yyvsp[0].i)); + yyval.i = 1 + yyvsp[-2].i; } -#line 2919 "y.tab.c" /* yacc.c:1646 */ - break; - - case 119: -#line 699 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = 1; +break; +case 118: +{ + yyval.i = 1; } -#line 2927 "y.tab.c" /* yacc.c:1646 */ - break; - - case 120: -#line 703 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = 1 + (yyvsp[-2].i); +break; +case 119: +{ + yyval.i = 1 + yyvsp[-2].i; } -#line 2935 "y.tab.c" /* yacc.c:1646 */ - break; - - case 121: -#line 709 "lev_comp.y" /* yacc.c:1646 */ - { - add_opvars(splev, "c", VA_PASS1((yyvsp[0].i))); - (yyval.i) = 1; +break; +case 120: +{ + add_opvars(splev, "c", VA_PASS1(yyvsp[0].i)); + yyval.i = 1; } -#line 2944 "y.tab.c" /* yacc.c:1646 */ - break; - - case 122: -#line 714 "lev_comp.y" /* yacc.c:1646 */ - { - add_opvars(splev, "c", VA_PASS1((yyvsp[0].i))); - (yyval.i) = 1 + (yyvsp[-2].i); +break; +case 121: +{ + add_opvars(splev, "c", VA_PASS1(yyvsp[0].i)); + yyval.i = 1 + yyvsp[-2].i; } -#line 2953 "y.tab.c" /* yacc.c:1646 */ - break; - - case 123: -#line 721 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = 1; +break; +case 122: +{ + yyval.i = 1; } -#line 2961 "y.tab.c" /* yacc.c:1646 */ - break; - - case 124: -#line 725 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = 1 + (yyvsp[-2].i); +break; +case 123: +{ + yyval.i = 1 + yyvsp[-2].i; } -#line 2969 "y.tab.c" /* yacc.c:1646 */ - break; - - case 125: -#line 731 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = 1; +break; +case 124: +{ + yyval.i = 1; } -#line 2977 "y.tab.c" /* yacc.c:1646 */ - break; - - case 126: -#line 735 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = 1 + (yyvsp[-2].i); +break; +case 125: +{ + yyval.i = 1 + yyvsp[-2].i; } -#line 2985 "y.tab.c" /* yacc.c:1646 */ - break; - - case 127: -#line 741 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 126: +{ struct lc_funcdefs *funcdef; if (in_function_definition) - lc_error("Recursively defined functions not allowed (function %s).", (yyvsp[-1].map)); + lc_error("Recursively defined functions not allowed (function %s).", yyvsp[-1].map); in_function_definition++; - if (funcdef_defined(function_definitions, (yyvsp[-1].map), 1)) - lc_error("Function '%s' already defined once.", (yyvsp[-1].map)); + if (funcdef_defined(function_definitions, yyvsp[-1].map, 1)) + lc_error("Function '%s' already defined once.", yyvsp[-1].map); - funcdef = funcdef_new(-1, (yyvsp[-1].map)); + funcdef = funcdef_new(-1, yyvsp[-1].map); funcdef->next = function_definitions; function_definitions = funcdef; function_splev_backup = splev; splev = &(funcdef->code); - Free((yyvsp[-1].map)); + Free(yyvsp[-1].map); curr_function = funcdef; function_tmp_var_defs = variable_definitions; variable_definitions = NULL; } -#line 3011 "y.tab.c" /* yacc.c:1646 */ - break; - - case 128: -#line 763 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 127: +{ /* nothing */ } -#line 3019 "y.tab.c" /* yacc.c:1646 */ - break; - - case 129: -#line 767 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 128: +{ add_opvars(splev, "io", VA_PASS2(0, SPO_RETURN)); splev = function_splev_backup; in_function_definition--; @@ -3028,25 +3023,22 @@ yyreduce: vardef_free_all(variable_definitions); variable_definitions = function_tmp_var_defs; } -#line 3032 "y.tab.c" /* yacc.c:1646 */ - break; - - case 130: -#line 778 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 129: +{ struct lc_funcdefs *tmpfunc; - tmpfunc = funcdef_defined(function_definitions, (yyvsp[-3].map), 1); + tmpfunc = funcdef_defined(function_definitions, yyvsp[-3].map, 1); if (tmpfunc) { long l; - long nparams = strlen( (yyvsp[-1].map) ); + long nparams = strlen( yyvsp[-1].map ); char *fparamstr = funcdef_paramtypes(tmpfunc); - if (strcmp((yyvsp[-1].map), fparamstr)) { + if (strcmp(yyvsp[-1].map, fparamstr)) { char *tmps = strdup(decode_parm_str(fparamstr)); - lc_error("Function '%s' requires params '%s', got '%s' instead.", (yyvsp[-3].map), tmps, decode_parm_str((yyvsp[-1].map))); + lc_error("Function '%s' requires params '%s', got '%s' instead.", yyvsp[-3].map, tmps, decode_parm_str(yyvsp[-1].map)); Free(tmps); } Free(fparamstr); - Free((yyvsp[-1].map)); + Free(yyvsp[-1].map); if (!(tmpfunc->n_called)) { /* we haven't called the function yet, so insert it in the code */ struct opvar *jmp = New(struct opvar); @@ -3074,77 +3066,53 @@ yyreduce: VA_PASS3(nparams, l, SPO_CALL)); tmpfunc->n_called++; } else { - lc_error("Function '%s' not defined.", (yyvsp[-3].map)); + lc_error("Function '%s' not defined.", yyvsp[-3].map); } - Free((yyvsp[-3].map)); + Free(yyvsp[-3].map); } -#line 3082 "y.tab.c" /* yacc.c:1646 */ - break; - - case 131: -#line 826 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 130: +{ add_opcode(splev, SPO_EXIT, NULL); } -#line 3090 "y.tab.c" /* yacc.c:1646 */ - break; - - case 132: -#line 832 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = 100; +break; +case 131: +{ + yyval.i = 100; } -#line 3098 "y.tab.c" /* yacc.c:1646 */ - break; - - case 133: -#line 836 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = (yyvsp[0].i); +break; +case 132: +{ + yyval.i = yyvsp[0].i; } -#line 3106 "y.tab.c" /* yacc.c:1646 */ - break; - - case 134: -#line 842 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 133: +{ /* val > rn2(100) */ add_opvars(splev, "iio", - VA_PASS3((long)(yyvsp[0].i), 100, SPO_RN2)); - (yyval.i) = SPO_JG; + VA_PASS3((long)yyvsp[0].i, 100, SPO_RN2)); + yyval.i = SPO_JG; } -#line 3117 "y.tab.c" /* yacc.c:1646 */ - break; - - case 135: -#line 849 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = (yyvsp[-2].i); +break; +case 134: +{ + yyval.i = yyvsp[-2].i; } -#line 3125 "y.tab.c" /* yacc.c:1646 */ - break; - - case 136: -#line 853 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 135: +{ /* boolean, explicit foo != 0 */ add_opvars(splev, "i", VA_PASS1(0)); - (yyval.i) = SPO_JNE; + yyval.i = SPO_JNE; } -#line 3135 "y.tab.c" /* yacc.c:1646 */ - break; - - case 137: -#line 861 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 136: +{ is_inconstant_number = 0; } -#line 3143 "y.tab.c" /* yacc.c:1646 */ - break; - - case 138: -#line 865 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 137: +{ struct opvar *chkjmp; if (in_switch_statement > 0) lc_error("Cannot nest switch-statements."); @@ -3165,12 +3133,9 @@ yyreduce: add_opcode(splev, SPO_JMP, NULL); break_stmt_start(); } -#line 3169 "y.tab.c" /* yacc.c:1646 */ - break; - - case 139: -#line 887 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 138: +{ struct opvar *endjump = New(struct opvar); int i; @@ -3208,32 +3173,23 @@ yyreduce: } -#line 3212 "y.tab.c" /* yacc.c:1646 */ - break; - - case 142: -#line 932 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 141: +{ if (n_switch_case_list < MAX_SWITCH_CASES) { struct opvar *tmppush = New(struct opvar); set_opvar_int(tmppush, splev->n_opcodes); - switch_case_value[n_switch_case_list] = (yyvsp[-1].i); + switch_case_value[n_switch_case_list] = yyvsp[-1].i; switch_case_list[n_switch_case_list++] = tmppush; } else lc_error("Too many cases in a switch."); } -#line 3225 "y.tab.c" /* yacc.c:1646 */ - break; - - case 143: -#line 941 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 142: +{ } -#line 3232 "y.tab.c" /* yacc.c:1646 */ - break; - - case 144: -#line 944 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 143: +{ struct opvar *tmppush = New(struct opvar); if (switch_default_case) @@ -3242,32 +3198,23 @@ yyreduce: set_opvar_int(tmppush, splev->n_opcodes); switch_default_case = tmppush; } -#line 3246 "y.tab.c" /* yacc.c:1646 */ - break; - - case 145: -#line 954 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 144: +{ } -#line 3253 "y.tab.c" /* yacc.c:1646 */ - break; - - case 146: -#line 959 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 145: +{ if (!allow_break_statements) lc_error("Cannot use BREAK outside a statement block."); else { break_stmt_new(splev, splev->n_opcodes); } } -#line 3265 "y.tab.c" /* yacc.c:1646 */ - break; - - case 149: -#line 973 "lev_comp.y" /* yacc.c:1646 */ - { - char buf[256], buf2[256]; +break; +case 148: +{ + char buf[256], buf2[256]; if (n_forloops >= MAX_NESTED_IFS) { lc_error("FOR: Too deeply nested loops."); @@ -3275,47 +3222,41 @@ yyreduce: } /* first, define a variable for the for-loop end value */ - snprintf(buf, 255, "%s end", (yyvsp[-4].map)); + snprintf(buf, 255, "%s end", yyvsp[-4].map); /* the value of which is already in stack (the 2nd math_expr) */ add_opvars(splev, "iso", VA_PASS3(0, buf, SPO_VAR_INIT)); variable_definitions = add_vardef_type(variable_definitions, - (yyvsp[-4].map), SPOVAR_INT); + yyvsp[-4].map, SPOVAR_INT); /* define the for-loop variable. value is in stack (1st math_expr) */ - add_opvars(splev, "iso", VA_PASS3(0, (yyvsp[-4].map), SPO_VAR_INIT)); + add_opvars(splev, "iso", VA_PASS3(0, yyvsp[-4].map, SPO_VAR_INIT)); /* calculate value for the loop "step" variable */ - snprintf(buf2, 255, "%s step", (yyvsp[-4].map)); + snprintf(buf2, 255, "%s step", yyvsp[-4].map); /* end - start */ add_opvars(splev, "vvo", - VA_PASS3(buf, (yyvsp[-4].map), SPO_MATH_SUB)); + VA_PASS3(buf, yyvsp[-4].map, SPO_MATH_SUB)); /* sign of that */ add_opvars(splev, "o", VA_PASS1(SPO_MATH_SIGN)); /* save the sign into the step var */ add_opvars(splev, "iso", VA_PASS3(0, buf2, SPO_VAR_INIT)); - forloop_list[n_forloops].varname = strdup((yyvsp[-4].map)); + forloop_list[n_forloops].varname = strdup(yyvsp[-4].map); forloop_list[n_forloops].jmp_point = splev->n_opcodes; n_forloops++; - Free((yyvsp[-4].map)); + Free(yyvsp[-4].map); } -#line 3305 "y.tab.c" /* yacc.c:1646 */ - break; - - case 150: -#line 1011 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 149: +{ /* nothing */ break_stmt_start(); } -#line 3314 "y.tab.c" /* yacc.c:1646 */ - break; - - case 151: -#line 1016 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 150: +{ char buf[256], buf2[256]; n_forloops--; snprintf(buf, 255, "%s step", forloop_list[n_forloops].varname); @@ -3340,12 +3281,9 @@ yyreduce: Free(forloop_list[n_forloops].varname); break_stmt_end(splev); } -#line 3344 "y.tab.c" /* yacc.c:1646 */ - break; - - case 152: -#line 1044 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 151: +{ struct opvar *tmppush = New(struct opvar); if (n_if_list >= MAX_NESTED_IFS) { @@ -3358,12 +3296,9 @@ yyreduce: add_opvars(splev, "o", VA_PASS1(SPO_DEC)); break_stmt_start(); } -#line 3362 "y.tab.c" /* yacc.c:1646 */ - break; - - case 153: -#line 1058 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 152: +{ struct opvar *tmppush; add_opvars(splev, "oio", VA_PASS3(SPO_COPY, 0, SPO_CMP)); @@ -3375,12 +3310,9 @@ yyreduce: add_opcode(splev, SPO_POP, NULL); /* get rid of the count value in stack */ break_stmt_end(splev); } -#line 3379 "y.tab.c" /* yacc.c:1646 */ - break; - - case 154: -#line 1073 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 153: +{ struct opvar *tmppush2 = New(struct opvar); if (n_if_list >= MAX_NESTED_IFS) { @@ -3396,27 +3328,21 @@ yyreduce: add_opcode(splev, SPO_PUSH, tmppush2); - add_opcode(splev, reverse_jmp_opcode( (yyvsp[-1].i) ), NULL); + add_opcode(splev, reverse_jmp_opcode( yyvsp[-1].i ), NULL); } -#line 3403 "y.tab.c" /* yacc.c:1646 */ - break; - - case 155: -#line 1093 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 154: +{ if (n_if_list > 0) { struct opvar *tmppush; tmppush = (struct opvar *) if_list[--n_if_list]; set_opvar_int(tmppush, splev->n_opcodes - tmppush->vardata.l); } else lc_error("IF: Huh?! No start address?"); } -#line 3415 "y.tab.c" /* yacc.c:1646 */ - break; - - case 156: -#line 1103 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 155: +{ struct opvar *tmppush2 = New(struct opvar); if (n_if_list >= MAX_NESTED_IFS) { @@ -3432,35 +3358,26 @@ yyreduce: add_opcode(splev, SPO_PUSH, tmppush2); - add_opcode(splev, reverse_jmp_opcode( (yyvsp[0].i) ), NULL); + add_opcode(splev, reverse_jmp_opcode( yyvsp[0].i ), NULL); } -#line 3439 "y.tab.c" /* yacc.c:1646 */ - break; - - case 157: -#line 1123 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 156: +{ /* do nothing */ } -#line 3447 "y.tab.c" /* yacc.c:1646 */ - break; - - case 158: -#line 1129 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 157: +{ if (n_if_list > 0) { struct opvar *tmppush; tmppush = (struct opvar *) if_list[--n_if_list]; set_opvar_int(tmppush, splev->n_opcodes - tmppush->vardata.l); } else lc_error("IF: Huh?! No start address?"); } -#line 3459 "y.tab.c" /* yacc.c:1646 */ - break; - - case 159: -#line 1137 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 158: +{ if (n_if_list > 0) { struct opvar *tmppush = New(struct opvar); struct opvar *tmppush2; @@ -3476,776 +3393,542 @@ yyreduce: if_list[n_if_list++] = tmppush; } else lc_error("IF: Huh?! No else-part address?"); } -#line 3480 "y.tab.c" /* yacc.c:1646 */ - break; - - case 160: -#line 1154 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 159: +{ if (n_if_list > 0) { struct opvar *tmppush; tmppush = (struct opvar *) if_list[--n_if_list]; set_opvar_int(tmppush, splev->n_opcodes - tmppush->vardata.l); } else lc_error("IF: Huh?! No end address?"); } -#line 3492 "y.tab.c" /* yacc.c:1646 */ - break; - - case 161: -#line 1164 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 160: +{ add_opvars(splev, "o", VA_PASS1(SPO_MESSAGE)); } -#line 3500 "y.tab.c" /* yacc.c:1646 */ - break; - - case 162: -#line 1170 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 161: +{ add_opvars(splev, "iiiiiio", VA_PASS7(-1, 0, -1, -1, -1, -1, SPO_CORRIDOR)); } -#line 3509 "y.tab.c" /* yacc.c:1646 */ - break; - - case 163: -#line 1175 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 162: +{ add_opvars(splev, "iiiiiio", - VA_PASS7(-1, (yyvsp[0].i), -1, -1, -1, -1, SPO_CORRIDOR)); + VA_PASS7(-1, yyvsp[0].i, -1, -1, -1, -1, SPO_CORRIDOR)); } -#line 3518 "y.tab.c" /* yacc.c:1646 */ - break; - - case 164: -#line 1180 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 163: +{ add_opvars(splev, "iiiiiio", VA_PASS7(-1, -1, -1, -1, -1, -1, SPO_CORRIDOR)); } -#line 3527 "y.tab.c" /* yacc.c:1646 */ - break; - - case 165: -#line 1187 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 164: +{ add_opvars(splev, "iiiiiio", - VA_PASS7((yyvsp[-2].corpos).room, (yyvsp[-2].corpos).door, (yyvsp[-2].corpos).wall, - (yyvsp[0].corpos).room, (yyvsp[0].corpos).door, (yyvsp[0].corpos).wall, + VA_PASS7(yyvsp[-2].corpos.room, yyvsp[-2].corpos.door, yyvsp[-2].corpos.wall, + yyvsp[0].corpos.room, yyvsp[0].corpos.door, yyvsp[0].corpos.wall, SPO_CORRIDOR)); } -#line 3538 "y.tab.c" /* yacc.c:1646 */ - break; - - case 166: -#line 1194 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 165: +{ add_opvars(splev, "iiiiiio", - VA_PASS7((yyvsp[-2].corpos).room, (yyvsp[-2].corpos).door, (yyvsp[-2].corpos).wall, - -1, -1, (long)(yyvsp[0].i), + VA_PASS7(yyvsp[-2].corpos.room, yyvsp[-2].corpos.door, yyvsp[-2].corpos.wall, + -1, -1, (long)yyvsp[0].i, SPO_CORRIDOR)); } -#line 3549 "y.tab.c" /* yacc.c:1646 */ - break; - - case 167: -#line 1203 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.corpos).room = (yyvsp[-5].i); - (yyval.corpos).wall = (yyvsp[-3].i); - (yyval.corpos).door = (yyvsp[-1].i); +break; +case 166: +{ + yyval.corpos.room = yyvsp[-5].i; + yyval.corpos.wall = yyvsp[-3].i; + yyval.corpos.door = yyvsp[-1].i; } -#line 3559 "y.tab.c" /* yacc.c:1646 */ - break; - - case 168: -#line 1211 "lev_comp.y" /* yacc.c:1646 */ - { - if (((yyvsp[-2].i) < 100) && ((yyvsp[-3].i) == OROOM)) +break; +case 167: +{ + if ((yyvsp[-2].i < 100) && (yyvsp[-3].i == OROOM)) lc_error("Only typed rooms can have a chance."); else { add_opvars(splev, "iii", - VA_PASS3((long)(yyvsp[-3].i), (long)(yyvsp[-2].i), (long)(yyvsp[0].i))); + VA_PASS3((long)yyvsp[-3].i, (long)yyvsp[-2].i, (long)yyvsp[0].i)); } } -#line 3572 "y.tab.c" /* yacc.c:1646 */ - break; - - case 169: -#line 1222 "lev_comp.y" /* yacc.c:1646 */ - { - long rflags = (yyvsp[0].i); +break; +case 168: +{ + long rflags = yyvsp[0].i; if (rflags == -1) rflags = (1 << 0); add_opvars(splev, "iiiiiiio", VA_PASS8(rflags, ERR, ERR, - (yyvsp[-3].crd).x, (yyvsp[-3].crd).y, (yyvsp[-1].sze).width, (yyvsp[-1].sze).height, + yyvsp[-3].crd.x, yyvsp[-3].crd.y, yyvsp[-1].sze.width, yyvsp[-1].sze.height, SPO_SUBROOM)); break_stmt_start(); } -#line 3587 "y.tab.c" /* yacc.c:1646 */ - break; - - case 170: -#line 1233 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 169: +{ break_stmt_end(splev); add_opcode(splev, SPO_ENDROOM, NULL); } -#line 3596 "y.tab.c" /* yacc.c:1646 */ - break; - - case 171: -#line 1240 "lev_comp.y" /* yacc.c:1646 */ - { - long rflags = (yyvsp[-2].i); +break; +case 170: +{ + long rflags = yyvsp[-2].i; if (rflags == -1) rflags = (1 << 0); add_opvars(splev, "iiiiiiio", VA_PASS8(rflags, - (yyvsp[-3].crd).x, (yyvsp[-3].crd).y, (yyvsp[-5].crd).x, (yyvsp[-5].crd).y, - (yyvsp[-1].sze).width, (yyvsp[-1].sze).height, SPO_ROOM)); + yyvsp[-3].crd.x, yyvsp[-3].crd.y, yyvsp[-5].crd.x, yyvsp[-5].crd.y, + yyvsp[-1].sze.width, yyvsp[-1].sze.height, SPO_ROOM)); break_stmt_start(); } -#line 3611 "y.tab.c" /* yacc.c:1646 */ - break; - - case 172: -#line 1251 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 171: +{ break_stmt_end(splev); add_opcode(splev, SPO_ENDROOM, NULL); } -#line 3620 "y.tab.c" /* yacc.c:1646 */ - break; - - case 173: -#line 1258 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = 1; +break; +case 172: +{ + yyval.i = 1; } -#line 3628 "y.tab.c" /* yacc.c:1646 */ - break; - - case 174: -#line 1262 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = (yyvsp[0].i); +break; +case 173: +{ + yyval.i = yyvsp[0].i; } -#line 3636 "y.tab.c" /* yacc.c:1646 */ - break; - - case 175: -#line 1268 "lev_comp.y" /* yacc.c:1646 */ - { - if ( (yyvsp[-3].i) < 1 || (yyvsp[-3].i) > 5 || - (yyvsp[-1].i) < 1 || (yyvsp[-1].i) > 5 ) { - lc_error("Room positions should be between 1-5: (%li,%li)!", (yyvsp[-3].i), (yyvsp[-1].i)); +break; +case 174: +{ + if ( yyvsp[-3].i < 1 || yyvsp[-3].i > 5 || + yyvsp[-1].i < 1 || yyvsp[-1].i > 5 ) { + lc_error("Room positions should be between 1-5: (%li,%li)!", yyvsp[-3].i, yyvsp[-1].i); } else { - (yyval.crd).x = (yyvsp[-3].i); - (yyval.crd).y = (yyvsp[-1].i); + yyval.crd.x = yyvsp[-3].i; + yyval.crd.y = yyvsp[-1].i; } } -#line 3650 "y.tab.c" /* yacc.c:1646 */ - break; - - case 176: -#line 1278 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.crd).x = (yyval.crd).y = ERR; +break; +case 175: +{ + yyval.crd.x = yyval.crd.y = ERR; } -#line 3658 "y.tab.c" /* yacc.c:1646 */ - break; - - case 177: -#line 1284 "lev_comp.y" /* yacc.c:1646 */ - { - if ( (yyvsp[-3].i) < 0 || (yyvsp[-1].i) < 0) { - lc_error("Invalid subroom position (%li,%li)!", (yyvsp[-3].i), (yyvsp[-1].i)); +break; +case 176: +{ + if ( yyvsp[-3].i < 0 || yyvsp[-1].i < 0) { + lc_error("Invalid subroom position (%li,%li)!", yyvsp[-3].i, yyvsp[-1].i); } else { - (yyval.crd).x = (yyvsp[-3].i); - (yyval.crd).y = (yyvsp[-1].i); + yyval.crd.x = yyvsp[-3].i; + yyval.crd.y = yyvsp[-1].i; } } -#line 3671 "y.tab.c" /* yacc.c:1646 */ - break; - - case 178: -#line 1293 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.crd).x = (yyval.crd).y = ERR; +break; +case 177: +{ + yyval.crd.x = yyval.crd.y = ERR; } -#line 3679 "y.tab.c" /* yacc.c:1646 */ - break; - - case 179: -#line 1299 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.crd).x = (yyvsp[-3].i); - (yyval.crd).y = (yyvsp[-1].i); +break; +case 178: +{ + yyval.crd.x = yyvsp[-3].i; + yyval.crd.y = yyvsp[-1].i; } -#line 3688 "y.tab.c" /* yacc.c:1646 */ - break; - - case 180: -#line 1304 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.crd).x = (yyval.crd).y = ERR; +break; +case 179: +{ + yyval.crd.x = yyval.crd.y = ERR; } -#line 3696 "y.tab.c" /* yacc.c:1646 */ - break; - - case 181: -#line 1310 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.sze).width = (yyvsp[-3].i); - (yyval.sze).height = (yyvsp[-1].i); +break; +case 180: +{ + yyval.sze.width = yyvsp[-3].i; + yyval.sze.height = yyvsp[-1].i; } -#line 3705 "y.tab.c" /* yacc.c:1646 */ - break; - - case 182: -#line 1315 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.sze).height = (yyval.sze).width = ERR; +break; +case 181: +{ + yyval.sze.height = yyval.sze.width = ERR; } -#line 3713 "y.tab.c" /* yacc.c:1646 */ - break; - - case 183: -#line 1321 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 182: +{ /* ERR means random here */ - if ((yyvsp[-2].i) == ERR && (yyvsp[0].i) != ERR) { + if (yyvsp[-2].i == ERR && yyvsp[0].i != ERR) { lc_error("If the door wall is random, so must be its pos!"); } else { add_opvars(splev, "iiiio", - VA_PASS5((long)(yyvsp[0].i), (long)(yyvsp[-4].i), (long)(yyvsp[-6].i), - (long)(yyvsp[-2].i), SPO_ROOM_DOOR)); + VA_PASS5((long)yyvsp[0].i, (long)yyvsp[-4].i, (long)yyvsp[-6].i, + (long)yyvsp[-2].i, SPO_ROOM_DOOR)); } } -#line 3728 "y.tab.c" /* yacc.c:1646 */ - break; - - case 184: -#line 1332 "lev_comp.y" /* yacc.c:1646 */ - { - add_opvars(splev, "io", VA_PASS2((long)(yyvsp[-2].i), SPO_DOOR)); +break; +case 183: +{ + add_opvars(splev, "io", VA_PASS2((long)yyvsp[-2].i, SPO_DOOR)); } -#line 3736 "y.tab.c" /* yacc.c:1646 */ - break; - - case 189: -#line 1346 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = (yyvsp[0].i); +break; +case 188: +{ + yyval.i = yyvsp[0].i; } -#line 3744 "y.tab.c" /* yacc.c:1646 */ - break; - - case 190: -#line 1350 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = ((yyvsp[-2].i) | (yyvsp[0].i)); +break; +case 189: +{ + yyval.i = (yyvsp[-2].i | yyvsp[0].i); } -#line 3752 "y.tab.c" /* yacc.c:1646 */ - break; - - case 193: -#line 1360 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 192: +{ add_opvars(splev, "ciisiio", VA_PASS7(0, 0, 1, (char *)0, 0, 0, SPO_MAP)); max_x_map = COLNO-1; max_y_map = ROWNO; } -#line 3763 "y.tab.c" /* yacc.c:1646 */ - break; - - case 194: -#line 1367 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 193: +{ add_opvars(splev, "cii", - VA_PASS3(SP_COORD_PACK(((yyvsp[-4].i)),((yyvsp[-2].i))), - 1, (long)(yyvsp[-1].i))); - scan_map((yyvsp[0].map), splev); - Free((yyvsp[0].map)); + VA_PASS3(SP_COORD_PACK((yyvsp[-4].i),(yyvsp[-2].i)), + 1, (long)yyvsp[-1].i)); + scan_map(yyvsp[0].map, splev); + Free(yyvsp[0].map); } -#line 3775 "y.tab.c" /* yacc.c:1646 */ - break; - - case 195: -#line 1375 "lev_comp.y" /* yacc.c:1646 */ - { - add_opvars(splev, "ii", VA_PASS2(2, (long)(yyvsp[-1].i))); - scan_map((yyvsp[0].map), splev); - Free((yyvsp[0].map)); +break; +case 194: +{ + add_opvars(splev, "ii", VA_PASS2(2, (long)yyvsp[-1].i)); + scan_map(yyvsp[0].map, splev); + Free(yyvsp[0].map); } -#line 3785 "y.tab.c" /* yacc.c:1646 */ - break; - - case 200: -#line 1391 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 199: +{ add_opvars(splev, "io", VA_PASS2(0, SPO_MONSTER)); } -#line 3793 "y.tab.c" /* yacc.c:1646 */ - break; - - case 201: -#line 1395 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 200: +{ add_opvars(splev, "io", VA_PASS2(1, SPO_MONSTER)); in_container_obj++; break_stmt_start(); } -#line 3803 "y.tab.c" /* yacc.c:1646 */ - break; - - case 202: -#line 1401 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 201: +{ break_stmt_end(splev); in_container_obj--; add_opvars(splev, "o", VA_PASS1(SPO_END_MONINVENT)); } -#line 3813 "y.tab.c" /* yacc.c:1646 */ - break; - - case 203: -#line 1409 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 202: +{ /* nothing */ } -#line 3821 "y.tab.c" /* yacc.c:1646 */ - break; - - case 204: -#line 1415 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 203: +{ struct opvar *stopit = New(struct opvar); set_opvar_int(stopit, SP_M_V_END); add_opcode(splev, SPO_PUSH, stopit); - (yyval.i) = 0x0000; + yyval.i = 0x0000; } -#line 3832 "y.tab.c" /* yacc.c:1646 */ - break; - - case 205: -#line 1422 "lev_comp.y" /* yacc.c:1646 */ - { - if (( (yyvsp[-2].i) & (yyvsp[0].i) )) +break; +case 204: +{ + if (( yyvsp[-2].i & yyvsp[0].i )) lc_error("MONSTER extra info defined twice."); - (yyval.i) = ( (yyvsp[-2].i) | (yyvsp[0].i) ); + yyval.i = ( yyvsp[-2].i | yyvsp[0].i ); } -#line 3842 "y.tab.c" /* yacc.c:1646 */ - break; - - case 206: -#line 1430 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 205: +{ add_opvars(splev, "i", VA_PASS1(SP_M_V_NAME)); - (yyval.i) = 0x0001; + yyval.i = 0x0001; } -#line 3851 "y.tab.c" /* yacc.c:1646 */ - break; - - case 207: -#line 1435 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 206: +{ add_opvars(splev, "ii", - VA_PASS2((long)(yyvsp[0].i), SP_M_V_PEACEFUL)); - (yyval.i) = 0x0002; + VA_PASS2((long)yyvsp[0].i, SP_M_V_PEACEFUL)); + yyval.i = 0x0002; } -#line 3861 "y.tab.c" /* yacc.c:1646 */ - break; - - case 208: -#line 1441 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 207: +{ add_opvars(splev, "ii", - VA_PASS2((long)(yyvsp[0].i), SP_M_V_ASLEEP)); - (yyval.i) = 0x0004; + VA_PASS2((long)yyvsp[0].i, SP_M_V_ASLEEP)); + yyval.i = 0x0004; } -#line 3871 "y.tab.c" /* yacc.c:1646 */ - break; - - case 209: -#line 1447 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 208: +{ add_opvars(splev, "ii", - VA_PASS2((long)(yyvsp[0].i), SP_M_V_ALIGN)); - (yyval.i) = 0x0008; + VA_PASS2((long)yyvsp[0].i, SP_M_V_ALIGN)); + yyval.i = 0x0008; } -#line 3881 "y.tab.c" /* yacc.c:1646 */ - break; - - case 210: -#line 1453 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 209: +{ add_opvars(splev, "ii", - VA_PASS2((long)(yyvsp[-1].i), SP_M_V_APPEAR)); - (yyval.i) = 0x0010; + VA_PASS2((long)yyvsp[-1].i, SP_M_V_APPEAR)); + yyval.i = 0x0010; } -#line 3891 "y.tab.c" /* yacc.c:1646 */ - break; - - case 211: -#line 1459 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 210: +{ add_opvars(splev, "ii", VA_PASS2(1, SP_M_V_FEMALE)); - (yyval.i) = 0x0020; + yyval.i = 0x0020; } -#line 3900 "y.tab.c" /* yacc.c:1646 */ - break; - - case 212: -#line 1464 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 211: +{ add_opvars(splev, "ii", VA_PASS2(1, SP_M_V_INVIS)); - (yyval.i) = 0x0040; + yyval.i = 0x0040; } -#line 3909 "y.tab.c" /* yacc.c:1646 */ - break; - - case 213: -#line 1469 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 212: +{ add_opvars(splev, "ii", VA_PASS2(1, SP_M_V_CANCELLED)); - (yyval.i) = 0x0080; + yyval.i = 0x0080; } -#line 3918 "y.tab.c" /* yacc.c:1646 */ - break; - - case 214: -#line 1474 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 213: +{ add_opvars(splev, "ii", VA_PASS2(1, SP_M_V_REVIVED)); - (yyval.i) = 0x0100; + yyval.i = 0x0100; } -#line 3927 "y.tab.c" /* yacc.c:1646 */ - break; - - case 215: -#line 1479 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 214: +{ add_opvars(splev, "ii", VA_PASS2(1, SP_M_V_AVENGE)); - (yyval.i) = 0x0200; + yyval.i = 0x0200; } -#line 3936 "y.tab.c" /* yacc.c:1646 */ - break; - - case 216: -#line 1484 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 215: +{ add_opvars(splev, "i", VA_PASS1(SP_M_V_FLEEING)); - (yyval.i) = 0x0400; + yyval.i = 0x0400; } -#line 3945 "y.tab.c" /* yacc.c:1646 */ - break; - - case 217: -#line 1489 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 216: +{ add_opvars(splev, "i", VA_PASS1(SP_M_V_BLINDED)); - (yyval.i) = 0x0800; + yyval.i = 0x0800; } -#line 3954 "y.tab.c" /* yacc.c:1646 */ - break; - - case 218: -#line 1494 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 217: +{ add_opvars(splev, "i", VA_PASS1(SP_M_V_PARALYZED)); - (yyval.i) = 0x1000; + yyval.i = 0x1000; } -#line 3963 "y.tab.c" /* yacc.c:1646 */ - break; - - case 219: -#line 1499 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 218: +{ add_opvars(splev, "ii", VA_PASS2(1, SP_M_V_STUNNED)); - (yyval.i) = 0x2000; + yyval.i = 0x2000; } -#line 3972 "y.tab.c" /* yacc.c:1646 */ - break; - - case 220: -#line 1504 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 219: +{ add_opvars(splev, "ii", VA_PASS2(1, SP_M_V_CONFUSED)); - (yyval.i) = 0x4000; + yyval.i = 0x4000; } -#line 3981 "y.tab.c" /* yacc.c:1646 */ - break; - - case 221: -#line 1509 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 220: +{ add_opvars(splev, "ii", - VA_PASS2((long)(yyvsp[0].i), SP_M_V_SEENTRAPS)); - (yyval.i) = 0x8000; + VA_PASS2((long)yyvsp[0].i, SP_M_V_SEENTRAPS)); + yyval.i = 0x8000; } -#line 3991 "y.tab.c" /* yacc.c:1646 */ - break; - - case 222: -#line 1517 "lev_comp.y" /* yacc.c:1646 */ - { - int token = get_trap_type((yyvsp[0].map)); +break; +case 221: +{ + int token = get_trap_type(yyvsp[0].map); if (token == ERR || token == 0) - lc_error("Unknown trap type '%s'!", (yyvsp[0].map)); - Free((yyvsp[0].map)); - (yyval.i) = (1L << (token - 1)); + lc_error("Unknown trap type '%s'!", yyvsp[0].map); + Free(yyvsp[0].map); + yyval.i = (1L << (token - 1)); } -#line 4003 "y.tab.c" /* yacc.c:1646 */ - break; - - case 223: -#line 1525 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = (long) ~0; +break; +case 222: +{ + yyval.i = (long) ~0; } -#line 4011 "y.tab.c" /* yacc.c:1646 */ - break; - - case 224: -#line 1529 "lev_comp.y" /* yacc.c:1646 */ - { - int token = get_trap_type((yyvsp[-2].map)); +break; +case 223: +{ + int token = get_trap_type(yyvsp[-2].map); if (token == ERR || token == 0) - lc_error("Unknown trap type '%s'!", (yyvsp[-2].map)); + lc_error("Unknown trap type '%s'!", yyvsp[-2].map); - if ((1L << (token - 1)) & (yyvsp[0].i)) - lc_error("Monster seen_traps, trap '%s' listed twice.", (yyvsp[-2].map)); - Free((yyvsp[-2].map)); - (yyval.i) = ((1L << (token - 1)) | (yyvsp[0].i)); + if ((1L << (token - 1)) & yyvsp[0].i) + lc_error("Monster seen_traps, trap '%s' listed twice.", yyvsp[-2].map); + Free(yyvsp[-2].map); + yyval.i = ((1L << (token - 1)) | yyvsp[0].i); } -#line 4026 "y.tab.c" /* yacc.c:1646 */ - break; - - case 225: -#line 1542 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 224: +{ long cnt = 0; if (in_container_obj) cnt |= SP_OBJ_CONTENT; add_opvars(splev, "io", VA_PASS2(cnt, SPO_OBJECT)); } -#line 4036 "y.tab.c" /* yacc.c:1646 */ - break; - - case 226: -#line 1548 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 225: +{ long cnt = SP_OBJ_CONTAINER; if (in_container_obj) cnt |= SP_OBJ_CONTENT; add_opvars(splev, "io", VA_PASS2(cnt, SPO_OBJECT)); in_container_obj++; break_stmt_start(); } -#line 4048 "y.tab.c" /* yacc.c:1646 */ - break; - - case 227: -#line 1556 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 226: +{ break_stmt_end(splev); in_container_obj--; add_opcode(splev, SPO_POP_CONTAINER, NULL); } -#line 4058 "y.tab.c" /* yacc.c:1646 */ - break; - - case 228: -#line 1564 "lev_comp.y" /* yacc.c:1646 */ - { - if (( (yyvsp[0].i) & 0x4000) && in_container_obj) +break; +case 227: +{ + if (( yyvsp[0].i & 0x4000) && in_container_obj) lc_error("Object cannot have a coord when contained."); - else if (!( (yyvsp[0].i) & 0x4000) && !in_container_obj) + else if (!( yyvsp[0].i & 0x4000) && !in_container_obj) lc_error("Object needs a coord when not contained."); } -#line 4069 "y.tab.c" /* yacc.c:1646 */ - break; - - case 229: -#line 1573 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 228: +{ struct opvar *stopit = New(struct opvar); set_opvar_int(stopit, SP_O_V_END); add_opcode(splev, SPO_PUSH, stopit); - (yyval.i) = 0x00; + yyval.i = 0x00; } -#line 4080 "y.tab.c" /* yacc.c:1646 */ - break; - - case 230: -#line 1580 "lev_comp.y" /* yacc.c:1646 */ - { - if (( (yyvsp[-2].i) & (yyvsp[0].i) )) +break; +case 229: +{ + if (( yyvsp[-2].i & yyvsp[0].i )) lc_error("OBJECT extra info '%s' defined twice.", curr_token); - (yyval.i) = ( (yyvsp[-2].i) | (yyvsp[0].i) ); + yyval.i = ( yyvsp[-2].i | yyvsp[0].i ); } -#line 4090 "y.tab.c" /* yacc.c:1646 */ - break; - - case 231: -#line 1588 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 230: +{ add_opvars(splev, "ii", - VA_PASS2((long)(yyvsp[0].i), SP_O_V_CURSE)); - (yyval.i) = 0x0001; + VA_PASS2((long)yyvsp[0].i, SP_O_V_CURSE)); + yyval.i = 0x0001; } -#line 4100 "y.tab.c" /* yacc.c:1646 */ - break; - - case 232: -#line 1594 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 231: +{ add_opvars(splev, "i", VA_PASS1(SP_O_V_CORPSENM)); - (yyval.i) = 0x0002; + yyval.i = 0x0002; } -#line 4109 "y.tab.c" /* yacc.c:1646 */ - break; - - case 233: -#line 1599 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 232: +{ add_opvars(splev, "i", VA_PASS1(SP_O_V_SPE)); - (yyval.i) = 0x0004; + yyval.i = 0x0004; } -#line 4118 "y.tab.c" /* yacc.c:1646 */ - break; - - case 234: -#line 1604 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 233: +{ add_opvars(splev, "i", VA_PASS1(SP_O_V_NAME)); - (yyval.i) = 0x0008; + yyval.i = 0x0008; } -#line 4127 "y.tab.c" /* yacc.c:1646 */ - break; - - case 235: -#line 1609 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 234: +{ add_opvars(splev, "i", VA_PASS1(SP_O_V_QUAN)); - (yyval.i) = 0x0010; + yyval.i = 0x0010; } -#line 4136 "y.tab.c" /* yacc.c:1646 */ - break; - - case 236: -#line 1614 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 235: +{ add_opvars(splev, "ii", VA_PASS2(1, SP_O_V_BURIED)); - (yyval.i) = 0x0020; + yyval.i = 0x0020; } -#line 4145 "y.tab.c" /* yacc.c:1646 */ - break; - - case 237: -#line 1619 "lev_comp.y" /* yacc.c:1646 */ - { - add_opvars(splev, "ii", VA_PASS2((long)(yyvsp[0].i), SP_O_V_LIT)); - (yyval.i) = 0x0040; +break; +case 236: +{ + add_opvars(splev, "ii", VA_PASS2((long)yyvsp[0].i, SP_O_V_LIT)); + yyval.i = 0x0040; } -#line 4154 "y.tab.c" /* yacc.c:1646 */ - break; - - case 238: -#line 1624 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 237: +{ add_opvars(splev, "i", VA_PASS1(SP_O_V_ERODED)); - (yyval.i) = 0x0080; + yyval.i = 0x0080; } -#line 4163 "y.tab.c" /* yacc.c:1646 */ - break; - - case 239: -#line 1629 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 238: +{ add_opvars(splev, "ii", VA_PASS2(-1, SP_O_V_ERODED)); - (yyval.i) = 0x0080; + yyval.i = 0x0080; } -#line 4172 "y.tab.c" /* yacc.c:1646 */ - break; - - case 240: -#line 1634 "lev_comp.y" /* yacc.c:1646 */ - { - if ((yyvsp[0].i) == D_LOCKED) { +break; +case 239: +{ + if (yyvsp[0].i == D_LOCKED) { add_opvars(splev, "ii", VA_PASS2(1, SP_O_V_LOCKED)); - (yyval.i) = 0x0100; - } else if ((yyvsp[0].i) == D_BROKEN) { + yyval.i = 0x0100; + } else if (yyvsp[0].i == D_BROKEN) { add_opvars(splev, "ii", VA_PASS2(1, SP_O_V_BROKEN)); - (yyval.i) = 0x0200; + yyval.i = 0x0200; } else lc_error("DOOR state can only be locked or broken."); } -#line 4187 "y.tab.c" /* yacc.c:1646 */ - break; - - case 241: -#line 1645 "lev_comp.y" /* yacc.c:1646 */ - { - add_opvars(splev, "ii", VA_PASS2((yyvsp[0].i), SP_O_V_TRAPPED)); - (yyval.i) = 0x0400; +break; +case 240: +{ + add_opvars(splev, "ii", VA_PASS2(yyvsp[0].i, SP_O_V_TRAPPED)); + yyval.i = 0x0400; } -#line 4196 "y.tab.c" /* yacc.c:1646 */ - break; - - case 242: -#line 1650 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 241: +{ add_opvars(splev, "i", VA_PASS1(SP_O_V_RECHARGED)); - (yyval.i) = 0x0800; + yyval.i = 0x0800; } -#line 4205 "y.tab.c" /* yacc.c:1646 */ - break; - - case 243: -#line 1655 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 242: +{ add_opvars(splev, "ii", VA_PASS2(1, SP_O_V_INVIS)); - (yyval.i) = 0x1000; + yyval.i = 0x1000; } -#line 4214 "y.tab.c" /* yacc.c:1646 */ - break; - - case 244: -#line 1660 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 243: +{ add_opvars(splev, "ii", VA_PASS2(1, SP_O_V_GREASED)); - (yyval.i) = 0x2000; + yyval.i = 0x2000; } -#line 4223 "y.tab.c" /* yacc.c:1646 */ - break; - - case 245: -#line 1665 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 244: +{ add_opvars(splev, "i", VA_PASS1(SP_O_V_COORD)); - (yyval.i) = 0x4000; + yyval.i = 0x4000; } -#line 4232 "y.tab.c" /* yacc.c:1646 */ - break; - - case 246: -#line 1672 "lev_comp.y" /* yacc.c:1646 */ - { - add_opvars(splev, "io", VA_PASS2((long)(yyvsp[-2].i), SPO_TRAP)); +break; +case 245: +{ + add_opvars(splev, "io", VA_PASS2((long)yyvsp[-2].i, SPO_TRAP)); } -#line 4240 "y.tab.c" /* yacc.c:1646 */ - break; - - case 247: -#line 1678 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 246: +{ long dir, state = 0; /* convert dir from a DIRECTION to a DB_DIR */ - dir = (yyvsp[-2].i); + dir = yyvsp[-2].i; switch (dir) { case W_NORTH: dir = DB_NORTH; break; case W_SOUTH: dir = DB_SOUTH; break; @@ -4256,955 +3939,664 @@ yyreduce: break; } - if ( (yyvsp[0].i) == D_ISOPEN ) + if ( yyvsp[0].i == D_ISOPEN ) state = 1; - else if ( (yyvsp[0].i) == D_CLOSED ) + else if ( yyvsp[0].i == D_CLOSED ) state = 0; - else if ( (yyvsp[0].i) == -1 ) + else if ( yyvsp[0].i == -1 ) state = -1; else lc_error("A drawbridge can only be open, closed or random!"); add_opvars(splev, "iio", VA_PASS3(state, dir, SPO_DRAWBRIDGE)); } -#line 4271 "y.tab.c" /* yacc.c:1646 */ - break; - - case 248: -#line 1707 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 247: +{ add_opvars(splev, "iiio", - VA_PASS4((long)(yyvsp[0].i), 1, 0, SPO_MAZEWALK)); + VA_PASS4((long)yyvsp[0].i, 1, 0, SPO_MAZEWALK)); } -#line 4280 "y.tab.c" /* yacc.c:1646 */ - break; - - case 249: -#line 1712 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 248: +{ add_opvars(splev, "iiio", - VA_PASS4((long)(yyvsp[-3].i), (long)(yyvsp[-1].i), - (long)(yyvsp[0].i), SPO_MAZEWALK)); + VA_PASS4((long)yyvsp[-3].i, (long)yyvsp[-1].i, + (long)yyvsp[0].i, SPO_MAZEWALK)); } -#line 4290 "y.tab.c" /* yacc.c:1646 */ - break; - - case 250: -#line 1720 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 249: +{ add_opvars(splev, "rio", VA_PASS3(SP_REGION_PACK(-1,-1,-1,-1), 0, SPO_WALLIFY)); } -#line 4300 "y.tab.c" /* yacc.c:1646 */ - break; - - case 251: -#line 1726 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 250: +{ add_opvars(splev, "io", VA_PASS2(1, SPO_WALLIFY)); } -#line 4308 "y.tab.c" /* yacc.c:1646 */ - break; - - case 252: -#line 1732 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 251: +{ add_opvars(splev, "io", - VA_PASS2((long)(yyvsp[0].i), SPO_LADDER)); + VA_PASS2((long)yyvsp[0].i, SPO_LADDER)); } -#line 4317 "y.tab.c" /* yacc.c:1646 */ - break; - - case 253: -#line 1739 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 252: +{ add_opvars(splev, "io", - VA_PASS2((long)(yyvsp[0].i), SPO_STAIR)); + VA_PASS2((long)yyvsp[0].i, SPO_STAIR)); } -#line 4326 "y.tab.c" /* yacc.c:1646 */ - break; - - case 254: -#line 1746 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 253: +{ add_opvars(splev, "iiiii iiiii iiso", - VA_PASS14((yyvsp[-4].lregn).x1, (yyvsp[-4].lregn).y1, (yyvsp[-4].lregn).x2, (yyvsp[-4].lregn).y2, (yyvsp[-4].lregn).area, - (yyvsp[-2].lregn).x1, (yyvsp[-2].lregn).y1, (yyvsp[-2].lregn).x2, (yyvsp[-2].lregn).y2, (yyvsp[-2].lregn).area, - (long)(((yyvsp[0].i)) ? LR_UPSTAIR : LR_DOWNSTAIR), + VA_PASS14(yyvsp[-4].lregn.x1, yyvsp[-4].lregn.y1, yyvsp[-4].lregn.x2, yyvsp[-4].lregn.y2, yyvsp[-4].lregn.area, + yyvsp[-2].lregn.x1, yyvsp[-2].lregn.y1, yyvsp[-2].lregn.x2, yyvsp[-2].lregn.y2, yyvsp[-2].lregn.area, + (long)((yyvsp[0].i) ? LR_UPSTAIR : LR_DOWNSTAIR), 0, (char *)0, SPO_LEVREGION)); } -#line 4338 "y.tab.c" /* yacc.c:1646 */ - break; - - case 255: -#line 1756 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 254: +{ add_opvars(splev, "iiiii iiiii iiso", - VA_PASS14((yyvsp[-4].lregn).x1, (yyvsp[-4].lregn).y1, (yyvsp[-4].lregn).x2, (yyvsp[-4].lregn).y2, (yyvsp[-4].lregn).area, - (yyvsp[-2].lregn).x1, (yyvsp[-2].lregn).y1, (yyvsp[-2].lregn).x2, (yyvsp[-2].lregn).y2, (yyvsp[-2].lregn).area, - LR_PORTAL, 0, (yyvsp[0].map), SPO_LEVREGION)); - Free((yyvsp[0].map)); + VA_PASS14(yyvsp[-4].lregn.x1, yyvsp[-4].lregn.y1, yyvsp[-4].lregn.x2, yyvsp[-4].lregn.y2, yyvsp[-4].lregn.area, + yyvsp[-2].lregn.x1, yyvsp[-2].lregn.y1, yyvsp[-2].lregn.x2, yyvsp[-2].lregn.y2, yyvsp[-2].lregn.area, + LR_PORTAL, 0, yyvsp[0].map, SPO_LEVREGION)); + Free(yyvsp[0].map); } -#line 4350 "y.tab.c" /* yacc.c:1646 */ - break; - - case 256: -#line 1766 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 255: +{ long rtyp = 0; - switch((yyvsp[0].i)) { + switch(yyvsp[0].i) { case -1: rtyp = LR_TELE; break; case 0: rtyp = LR_DOWNTELE; break; case 1: rtyp = LR_UPTELE; break; } add_opvars(splev, "iiiii iiiii iiso", - VA_PASS14((yyvsp[-3].lregn).x1, (yyvsp[-3].lregn).y1, (yyvsp[-3].lregn).x2, (yyvsp[-3].lregn).y2, (yyvsp[-3].lregn).area, - (yyvsp[-1].lregn).x1, (yyvsp[-1].lregn).y1, (yyvsp[-1].lregn).x2, (yyvsp[-1].lregn).y2, (yyvsp[-1].lregn).area, + VA_PASS14(yyvsp[-3].lregn.x1, yyvsp[-3].lregn.y1, yyvsp[-3].lregn.x2, yyvsp[-3].lregn.y2, yyvsp[-3].lregn.area, + yyvsp[-1].lregn.x1, yyvsp[-1].lregn.y1, yyvsp[-1].lregn.x2, yyvsp[-1].lregn.y2, yyvsp[-1].lregn.area, rtyp, 0, (char *)0, SPO_LEVREGION)); } -#line 4367 "y.tab.c" /* yacc.c:1646 */ - break; - - case 257: -#line 1781 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 256: +{ add_opvars(splev, "iiiii iiiii iiso", - VA_PASS14((yyvsp[-2].lregn).x1, (yyvsp[-2].lregn).y1, (yyvsp[-2].lregn).x2, (yyvsp[-2].lregn).y2, (yyvsp[-2].lregn).area, - (yyvsp[0].lregn).x1, (yyvsp[0].lregn).y1, (yyvsp[0].lregn).x2, (yyvsp[0].lregn).y2, (yyvsp[0].lregn).area, + VA_PASS14(yyvsp[-2].lregn.x1, yyvsp[-2].lregn.y1, yyvsp[-2].lregn.x2, yyvsp[-2].lregn.y2, yyvsp[-2].lregn.area, + yyvsp[0].lregn.x1, yyvsp[0].lregn.y1, yyvsp[0].lregn.x2, yyvsp[0].lregn.y2, yyvsp[0].lregn.area, (long)LR_BRANCH, 0, (char *)0, SPO_LEVREGION)); } -#line 4379 "y.tab.c" /* yacc.c:1646 */ - break; - - case 258: -#line 1791 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = -1; +break; +case 257: +{ + yyval.i = -1; } -#line 4387 "y.tab.c" /* yacc.c:1646 */ - break; - - case 259: -#line 1795 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = (yyvsp[0].i); +break; +case 258: +{ + yyval.i = yyvsp[0].i; } -#line 4395 "y.tab.c" /* yacc.c:1646 */ - break; - - case 260: -#line 1801 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 259: +{ add_opvars(splev, "o", VA_PASS1(SPO_FOUNTAIN)); } -#line 4403 "y.tab.c" /* yacc.c:1646 */ - break; - - case 261: -#line 1807 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 260: +{ add_opvars(splev, "o", VA_PASS1(SPO_SINK)); } -#line 4411 "y.tab.c" /* yacc.c:1646 */ - break; - - case 262: -#line 1813 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 261: +{ add_opvars(splev, "o", VA_PASS1(SPO_POOL)); } -#line 4419 "y.tab.c" /* yacc.c:1646 */ - break; - - case 263: -#line 1819 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.terr).lit = -2; - (yyval.terr).ter = what_map_char((char) (yyvsp[0].i)); +break; +case 262: +{ + yyval.terr.lit = -2; + yyval.terr.ter = what_map_char((char) yyvsp[0].i); } -#line 4428 "y.tab.c" /* yacc.c:1646 */ - break; - - case 264: -#line 1824 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.terr).lit = (yyvsp[-1].i); - (yyval.terr).ter = what_map_char((char) (yyvsp[-3].i)); +break; +case 263: +{ + yyval.terr.lit = yyvsp[-1].i; + yyval.terr.ter = what_map_char((char) yyvsp[-3].i); } -#line 4437 "y.tab.c" /* yacc.c:1646 */ - break; - - case 265: -#line 1831 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 264: +{ add_opvars(splev, "io", - VA_PASS2((yyvsp[0].i), SPO_REPLACETERRAIN)); + VA_PASS2(yyvsp[0].i, SPO_REPLACETERRAIN)); } -#line 4446 "y.tab.c" /* yacc.c:1646 */ - break; - - case 266: -#line 1838 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 265: +{ add_opvars(splev, "o", VA_PASS1(SPO_TERRAIN)); } -#line 4454 "y.tab.c" /* yacc.c:1646 */ - break; - - case 267: -#line 1844 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 266: +{ add_opvars(splev, "o", VA_PASS1(SPO_NON_DIGGABLE)); } -#line 4462 "y.tab.c" /* yacc.c:1646 */ - break; - - case 268: -#line 1850 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 267: +{ add_opvars(splev, "o", VA_PASS1(SPO_NON_PASSWALL)); } -#line 4470 "y.tab.c" /* yacc.c:1646 */ - break; - - case 269: -#line 1856 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 268: +{ long irr; - long rt = (yyvsp[-1].i); - long rflags = (yyvsp[0].i); + long rt = yyvsp[-1].i; + long rflags = yyvsp[0].i; if (rflags == -1) rflags = (1 << 0); if (!(rflags & 1)) rt += MAXRTYPE+1; irr = ((rflags & 2) != 0); add_opvars(splev, "iiio", - VA_PASS4((long)(yyvsp[-3].i), rt, rflags, SPO_REGION)); - (yyval.i) = (irr || (rflags & 1) || rt != OROOM); + VA_PASS4((long)yyvsp[-3].i, rt, rflags, SPO_REGION)); + yyval.i = (irr || (rflags & 1) || rt != OROOM); break_stmt_start(); } -#line 4488 "y.tab.c" /* yacc.c:1646 */ - break; - - case 270: -#line 1870 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 269: +{ break_stmt_end(splev); - if ( (yyvsp[-1].i) ) { + if ( yyvsp[-1].i ) { add_opcode(splev, SPO_ENDROOM, NULL); - } else if ( (yyvsp[0].i) ) + } else if ( yyvsp[0].i ) lc_error("Cannot use lev statements in non-permanent REGION"); } -#line 4500 "y.tab.c" /* yacc.c:1646 */ - break; - - case 271: -#line 1880 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = 0; +break; +case 270: +{ + yyval.i = 0; } -#line 4508 "y.tab.c" /* yacc.c:1646 */ - break; - - case 272: -#line 1884 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = (yyvsp[0].i); +break; +case 271: +{ + yyval.i = yyvsp[0].i; } -#line 4516 "y.tab.c" /* yacc.c:1646 */ - break; - - case 273: -#line 1890 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 272: +{ add_opvars(splev, "iio", - VA_PASS3((long)(yyvsp[0].i), (long)(yyvsp[-2].i), SPO_ALTAR)); + VA_PASS3((long)yyvsp[0].i, (long)yyvsp[-2].i, SPO_ALTAR)); } -#line 4525 "y.tab.c" /* yacc.c:1646 */ - break; - - case 274: -#line 1897 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 273: +{ add_opvars(splev, "io", VA_PASS2(2, SPO_GRAVE)); } -#line 4533 "y.tab.c" /* yacc.c:1646 */ - break; - - case 275: -#line 1901 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 274: +{ add_opvars(splev, "sio", VA_PASS3((char *)0, 1, SPO_GRAVE)); } -#line 4542 "y.tab.c" /* yacc.c:1646 */ - break; - - case 276: -#line 1906 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 275: +{ add_opvars(splev, "sio", VA_PASS3((char *)0, 0, SPO_GRAVE)); } -#line 4551 "y.tab.c" /* yacc.c:1646 */ - break; - - case 277: -#line 1913 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 276: +{ add_opvars(splev, "o", VA_PASS1(SPO_GOLD)); } -#line 4559 "y.tab.c" /* yacc.c:1646 */ - break; - - case 278: -#line 1919 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 277: +{ add_opvars(splev, "io", - VA_PASS2((long)(yyvsp[-2].i), SPO_ENGRAVING)); + VA_PASS2((long)yyvsp[-2].i, SPO_ENGRAVING)); } -#line 4568 "y.tab.c" /* yacc.c:1646 */ - break; - - case 279: -#line 1926 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 278: +{ add_opvars(splev, "o", VA_PASS1(SPO_MINERALIZE)); } -#line 4576 "y.tab.c" /* yacc.c:1646 */ - break; - - case 280: -#line 1930 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 279: +{ add_opvars(splev, "iiiio", VA_PASS5(-1L, -1L, -1L, -1L, SPO_MINERALIZE)); } -#line 4585 "y.tab.c" /* yacc.c:1646 */ - break; - - case 281: -#line 1937 "lev_comp.y" /* yacc.c:1646 */ - { - int token = get_trap_type((yyvsp[0].map)); +break; +case 280: +{ + int token = get_trap_type(yyvsp[0].map); if (token == ERR) - lc_error("Unknown trap type '%s'!", (yyvsp[0].map)); - (yyval.i) = token; - Free((yyvsp[0].map)); + lc_error("Unknown trap type '%s'!", yyvsp[0].map); + yyval.i = token; + Free(yyvsp[0].map); } -#line 4597 "y.tab.c" /* yacc.c:1646 */ - break; - - case 283: -#line 1948 "lev_comp.y" /* yacc.c:1646 */ - { - int token = get_room_type((yyvsp[0].map)); +break; +case 282: +{ + int token = get_room_type(yyvsp[0].map); if (token == ERR) { - lc_warning("Unknown room type \"%s\"! Making ordinary room...", (yyvsp[0].map)); - (yyval.i) = OROOM; + lc_warning("Unknown room type \"%s\"! Making ordinary room...", yyvsp[0].map); + yyval.i = OROOM; } else - (yyval.i) = token; - Free((yyvsp[0].map)); + yyval.i = token; + Free(yyvsp[0].map); } -#line 4611 "y.tab.c" /* yacc.c:1646 */ - break; - - case 285: -#line 1961 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = -1; +break; +case 284: +{ + yyval.i = -1; } -#line 4619 "y.tab.c" /* yacc.c:1646 */ - break; - - case 286: -#line 1965 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = (yyvsp[0].i); +break; +case 285: +{ + yyval.i = yyvsp[0].i; } -#line 4627 "y.tab.c" /* yacc.c:1646 */ - break; - - case 287: -#line 1971 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = (yyvsp[0].i); +break; +case 286: +{ + yyval.i = yyvsp[0].i; } -#line 4635 "y.tab.c" /* yacc.c:1646 */ - break; - - case 288: -#line 1975 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = (yyvsp[-2].i) | (yyvsp[0].i); +break; +case 287: +{ + yyval.i = yyvsp[-2].i | yyvsp[0].i; } -#line 4643 "y.tab.c" /* yacc.c:1646 */ - break; - - case 289: -#line 1982 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = ((yyvsp[0].i) << 0); +break; +case 288: +{ + yyval.i = (yyvsp[0].i << 0); } -#line 4651 "y.tab.c" /* yacc.c:1646 */ - break; - - case 290: -#line 1986 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = ((yyvsp[0].i) << 1); +break; +case 289: +{ + yyval.i = (yyvsp[0].i << 1); } -#line 4659 "y.tab.c" /* yacc.c:1646 */ - break; - - case 291: -#line 1990 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = ((yyvsp[0].i) << 2); +break; +case 290: +{ + yyval.i = (yyvsp[0].i << 2); } -#line 4667 "y.tab.c" /* yacc.c:1646 */ - break; - - case 298: -#line 2006 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = - MAX_REGISTERS - 1; +break; +case 297: +{ + yyval.i = - MAX_REGISTERS - 1; } -#line 4675 "y.tab.c" /* yacc.c:1646 */ - break; - - case 301: -#line 2014 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = - MAX_REGISTERS - 1; +break; +case 300: +{ + yyval.i = - MAX_REGISTERS - 1; } -#line 4683 "y.tab.c" /* yacc.c:1646 */ - break; - - case 304: -#line 2024 "lev_comp.y" /* yacc.c:1646 */ - { - if ( (yyvsp[-1].i) >= 3 ) +break; +case 303: +{ + if ( yyvsp[-1].i >= 3 ) lc_error("Register Index overflow!"); else - (yyval.i) = - (yyvsp[-1].i) - 1; + yyval.i = - yyvsp[-1].i - 1; } -#line 4694 "y.tab.c" /* yacc.c:1646 */ - break; - - case 305: -#line 2033 "lev_comp.y" /* yacc.c:1646 */ - { - add_opvars(splev, "s", VA_PASS1((yyvsp[0].map))); - Free((yyvsp[0].map)); +break; +case 304: +{ + add_opvars(splev, "s", VA_PASS1(yyvsp[0].map)); + Free(yyvsp[0].map); } -#line 4703 "y.tab.c" /* yacc.c:1646 */ - break; - - case 306: -#line 2038 "lev_comp.y" /* yacc.c:1646 */ - { - check_vardef_type(variable_definitions, (yyvsp[0].map), SPOVAR_STRING); - vardef_used(variable_definitions, (yyvsp[0].map)); - add_opvars(splev, "v", VA_PASS1((yyvsp[0].map))); - Free((yyvsp[0].map)); +break; +case 305: +{ + check_vardef_type(variable_definitions, yyvsp[0].map, SPOVAR_STRING); + vardef_used(variable_definitions, yyvsp[0].map); + add_opvars(splev, "v", VA_PASS1(yyvsp[0].map)); + Free(yyvsp[0].map); } -#line 4714 "y.tab.c" /* yacc.c:1646 */ - break; - - case 307: -#line 2045 "lev_comp.y" /* yacc.c:1646 */ - { - check_vardef_type(variable_definitions, (yyvsp[-3].map), SPOVAR_STRING|SPOVAR_ARRAY); - vardef_used(variable_definitions, (yyvsp[-3].map)); - add_opvars(splev, "v", VA_PASS1((yyvsp[-3].map))); - Free((yyvsp[-3].map)); +break; +case 306: +{ + check_vardef_type(variable_definitions, yyvsp[-3].map, SPOVAR_STRING|SPOVAR_ARRAY); + vardef_used(variable_definitions, yyvsp[-3].map); + add_opvars(splev, "v", VA_PASS1(yyvsp[-3].map)); + Free(yyvsp[-3].map); } -#line 4725 "y.tab.c" /* yacc.c:1646 */ - break; - - case 308: -#line 2055 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 307: +{ /* nothing */ } -#line 4733 "y.tab.c" /* yacc.c:1646 */ - break; - - case 309: -#line 2061 "lev_comp.y" /* yacc.c:1646 */ - { - add_opvars(splev, "c", VA_PASS1((yyvsp[0].i))); +break; +case 308: +{ + add_opvars(splev, "c", VA_PASS1(yyvsp[0].i)); } -#line 4741 "y.tab.c" /* yacc.c:1646 */ - break; - - case 310: -#line 2065 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 309: +{ add_opvars(splev, "o", VA_PASS1(SPO_SEL_RNDCOORD)); } -#line 4749 "y.tab.c" /* yacc.c:1646 */ - break; - - case 311: -#line 2069 "lev_comp.y" /* yacc.c:1646 */ - { - check_vardef_type(variable_definitions, (yyvsp[0].map), SPOVAR_COORD); - vardef_used(variable_definitions, (yyvsp[0].map)); - add_opvars(splev, "v", VA_PASS1((yyvsp[0].map))); - Free((yyvsp[0].map)); +break; +case 310: +{ + check_vardef_type(variable_definitions, yyvsp[0].map, SPOVAR_COORD); + vardef_used(variable_definitions, yyvsp[0].map); + add_opvars(splev, "v", VA_PASS1(yyvsp[0].map)); + Free(yyvsp[0].map); } -#line 4760 "y.tab.c" /* yacc.c:1646 */ - break; - - case 312: -#line 2076 "lev_comp.y" /* yacc.c:1646 */ - { - check_vardef_type(variable_definitions, (yyvsp[-3].map), SPOVAR_COORD|SPOVAR_ARRAY); - vardef_used(variable_definitions, (yyvsp[-3].map)); - add_opvars(splev, "v", VA_PASS1((yyvsp[-3].map))); - Free((yyvsp[-3].map)); +break; +case 311: +{ + check_vardef_type(variable_definitions, yyvsp[-3].map, SPOVAR_COORD|SPOVAR_ARRAY); + vardef_used(variable_definitions, yyvsp[-3].map); + add_opvars(splev, "v", VA_PASS1(yyvsp[-3].map)); + Free(yyvsp[-3].map); } -#line 4771 "y.tab.c" /* yacc.c:1646 */ - break; - - case 313: -#line 2085 "lev_comp.y" /* yacc.c:1646 */ - { - if ((yyvsp[-3].i) < 0 || (yyvsp[-1].i) < 0 || (yyvsp[-3].i) >= COLNO || (yyvsp[-1].i) >= ROWNO) - lc_error("Coordinates (%li,%li) out of map range!", (yyvsp[-3].i), (yyvsp[-1].i)); - (yyval.i) = SP_COORD_PACK((yyvsp[-3].i), (yyvsp[-1].i)); +break; +case 312: +{ + if (yyvsp[-3].i < 0 || yyvsp[-1].i < 0 || yyvsp[-3].i >= COLNO || yyvsp[-1].i >= ROWNO) + lc_error("Coordinates (%li,%li) out of map range!", yyvsp[-3].i, yyvsp[-1].i); + yyval.i = SP_COORD_PACK(yyvsp[-3].i, yyvsp[-1].i); } -#line 4781 "y.tab.c" /* yacc.c:1646 */ - break; - - case 314: -#line 2091 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = SP_COORD_PACK_RANDOM(0); +break; +case 313: +{ + yyval.i = SP_COORD_PACK_RANDOM(0); } -#line 4789 "y.tab.c" /* yacc.c:1646 */ - break; - - case 315: -#line 2095 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = SP_COORD_PACK_RANDOM( (yyvsp[-1].i) ); +break; +case 314: +{ + yyval.i = SP_COORD_PACK_RANDOM( yyvsp[-1].i ); } -#line 4797 "y.tab.c" /* yacc.c:1646 */ - break; - - case 316: -#line 2101 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = (yyvsp[0].i); +break; +case 315: +{ + yyval.i = yyvsp[0].i; } -#line 4805 "y.tab.c" /* yacc.c:1646 */ - break; - - case 317: -#line 2105 "lev_comp.y" /* yacc.c:1646 */ - { - if (((yyvsp[-2].i) & (yyvsp[0].i))) +break; +case 316: +{ + if ((yyvsp[-2].i & yyvsp[0].i)) lc_warning("Humidity flag used twice."); - (yyval.i) = ((yyvsp[-2].i) | (yyvsp[0].i)); + yyval.i = (yyvsp[-2].i | yyvsp[0].i); } -#line 4815 "y.tab.c" /* yacc.c:1646 */ - break; - - case 318: -#line 2113 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 317: +{ /* nothing */ } -#line 4823 "y.tab.c" /* yacc.c:1646 */ - break; - - case 319: -#line 2117 "lev_comp.y" /* yacc.c:1646 */ - { - check_vardef_type(variable_definitions, (yyvsp[0].map), SPOVAR_REGION); - vardef_used(variable_definitions, (yyvsp[0].map)); - add_opvars(splev, "v", VA_PASS1((yyvsp[0].map))); - Free((yyvsp[0].map)); +break; +case 318: +{ + check_vardef_type(variable_definitions, yyvsp[0].map, SPOVAR_REGION); + vardef_used(variable_definitions, yyvsp[0].map); + add_opvars(splev, "v", VA_PASS1(yyvsp[0].map)); + Free(yyvsp[0].map); } -#line 4834 "y.tab.c" /* yacc.c:1646 */ - break; - - case 320: -#line 2124 "lev_comp.y" /* yacc.c:1646 */ - { - check_vardef_type(variable_definitions, (yyvsp[-3].map), SPOVAR_REGION|SPOVAR_ARRAY); - vardef_used(variable_definitions, (yyvsp[-3].map)); - add_opvars(splev, "v", VA_PASS1((yyvsp[-3].map))); - Free((yyvsp[-3].map)); +break; +case 319: +{ + check_vardef_type(variable_definitions, yyvsp[-3].map, SPOVAR_REGION|SPOVAR_ARRAY); + vardef_used(variable_definitions, yyvsp[-3].map); + add_opvars(splev, "v", VA_PASS1(yyvsp[-3].map)); + Free(yyvsp[-3].map); } -#line 4845 "y.tab.c" /* yacc.c:1646 */ - break; - - case 321: -#line 2133 "lev_comp.y" /* yacc.c:1646 */ - { - long r = SP_REGION_PACK((yyvsp[-7].i), (yyvsp[-5].i), (yyvsp[-3].i), (yyvsp[-1].i)); - if ( (yyvsp[-7].i) > (yyvsp[-3].i) || (yyvsp[-5].i) > (yyvsp[-1].i) ) - lc_error("Region start > end: (%li,%li,%li,%li)!", (yyvsp[-7].i), (yyvsp[-5].i), (yyvsp[-3].i), (yyvsp[-1].i)); +break; +case 320: +{ + long r = SP_REGION_PACK(yyvsp[-7].i, yyvsp[-5].i, yyvsp[-3].i, yyvsp[-1].i); + if ( yyvsp[-7].i > yyvsp[-3].i || yyvsp[-5].i > yyvsp[-1].i ) + lc_error("Region start > end: (%li,%li,%li,%li)!", yyvsp[-7].i, yyvsp[-5].i, yyvsp[-3].i, yyvsp[-1].i); add_opvars(splev, "r", VA_PASS1(r)); - (yyval.i) = r; + yyval.i = r; } -#line 4858 "y.tab.c" /* yacc.c:1646 */ - break; - - case 322: -#line 2144 "lev_comp.y" /* yacc.c:1646 */ - { - add_opvars(splev, "m", VA_PASS1((yyvsp[0].i))); +break; +case 321: +{ + add_opvars(splev, "m", VA_PASS1(yyvsp[0].i)); } -#line 4866 "y.tab.c" /* yacc.c:1646 */ - break; - - case 323: -#line 2148 "lev_comp.y" /* yacc.c:1646 */ - { - check_vardef_type(variable_definitions, (yyvsp[0].map), SPOVAR_MAPCHAR); - vardef_used(variable_definitions, (yyvsp[0].map)); - add_opvars(splev, "v", VA_PASS1((yyvsp[0].map))); - Free((yyvsp[0].map)); +break; +case 322: +{ + check_vardef_type(variable_definitions, yyvsp[0].map, SPOVAR_MAPCHAR); + vardef_used(variable_definitions, yyvsp[0].map); + add_opvars(splev, "v", VA_PASS1(yyvsp[0].map)); + Free(yyvsp[0].map); } -#line 4877 "y.tab.c" /* yacc.c:1646 */ - break; - - case 324: -#line 2155 "lev_comp.y" /* yacc.c:1646 */ - { - check_vardef_type(variable_definitions, (yyvsp[-3].map), SPOVAR_MAPCHAR|SPOVAR_ARRAY); - vardef_used(variable_definitions, (yyvsp[-3].map)); - add_opvars(splev, "v", VA_PASS1((yyvsp[-3].map))); - Free((yyvsp[-3].map)); +break; +case 323: +{ + check_vardef_type(variable_definitions, yyvsp[-3].map, SPOVAR_MAPCHAR|SPOVAR_ARRAY); + vardef_used(variable_definitions, yyvsp[-3].map); + add_opvars(splev, "v", VA_PASS1(yyvsp[-3].map)); + Free(yyvsp[-3].map); } -#line 4888 "y.tab.c" /* yacc.c:1646 */ - break; - - case 325: -#line 2164 "lev_comp.y" /* yacc.c:1646 */ - { - if (what_map_char((char) (yyvsp[0].i)) != INVALID_TYPE) - (yyval.i) = SP_MAPCHAR_PACK(what_map_char((char) (yyvsp[0].i)), -2); +break; +case 324: +{ + if (what_map_char((char) yyvsp[0].i) != INVALID_TYPE) + yyval.i = SP_MAPCHAR_PACK(what_map_char((char) yyvsp[0].i), -2); else { - lc_error("Unknown map char type '%c'!", (yyvsp[0].i)); - (yyval.i) = SP_MAPCHAR_PACK(STONE, -2); + lc_error("Unknown map char type '%c'!", yyvsp[0].i); + yyval.i = SP_MAPCHAR_PACK(STONE, -2); } } -#line 4901 "y.tab.c" /* yacc.c:1646 */ - break; - - case 326: -#line 2173 "lev_comp.y" /* yacc.c:1646 */ - { - if (what_map_char((char) (yyvsp[-3].i)) != INVALID_TYPE) - (yyval.i) = SP_MAPCHAR_PACK(what_map_char((char) (yyvsp[-3].i)), (yyvsp[-1].i)); +break; +case 325: +{ + if (what_map_char((char) yyvsp[-3].i) != INVALID_TYPE) + yyval.i = SP_MAPCHAR_PACK(what_map_char((char) yyvsp[-3].i), yyvsp[-1].i); else { - lc_error("Unknown map char type '%c'!", (yyvsp[-3].i)); - (yyval.i) = SP_MAPCHAR_PACK(STONE, (yyvsp[-1].i)); + lc_error("Unknown map char type '%c'!", yyvsp[-3].i); + yyval.i = SP_MAPCHAR_PACK(STONE, yyvsp[-1].i); } } -#line 4914 "y.tab.c" /* yacc.c:1646 */ - break; - - case 327: -#line 2184 "lev_comp.y" /* yacc.c:1646 */ - { - add_opvars(splev, "M", VA_PASS1((yyvsp[0].i))); +break; +case 326: +{ + add_opvars(splev, "M", VA_PASS1(yyvsp[0].i)); } -#line 4922 "y.tab.c" /* yacc.c:1646 */ - break; - - case 328: -#line 2188 "lev_comp.y" /* yacc.c:1646 */ - { - check_vardef_type(variable_definitions, (yyvsp[0].map), SPOVAR_MONST); - vardef_used(variable_definitions, (yyvsp[0].map)); - add_opvars(splev, "v", VA_PASS1((yyvsp[0].map))); - Free((yyvsp[0].map)); +break; +case 327: +{ + check_vardef_type(variable_definitions, yyvsp[0].map, SPOVAR_MONST); + vardef_used(variable_definitions, yyvsp[0].map); + add_opvars(splev, "v", VA_PASS1(yyvsp[0].map)); + Free(yyvsp[0].map); } -#line 4933 "y.tab.c" /* yacc.c:1646 */ - break; - - case 329: -#line 2195 "lev_comp.y" /* yacc.c:1646 */ - { - check_vardef_type(variable_definitions, (yyvsp[-3].map), SPOVAR_MONST|SPOVAR_ARRAY); - vardef_used(variable_definitions, (yyvsp[-3].map)); - add_opvars(splev, "v", VA_PASS1((yyvsp[-3].map))); - Free((yyvsp[-3].map)); +break; +case 328: +{ + check_vardef_type(variable_definitions, yyvsp[-3].map, SPOVAR_MONST|SPOVAR_ARRAY); + vardef_used(variable_definitions, yyvsp[-3].map); + add_opvars(splev, "v", VA_PASS1(yyvsp[-3].map)); + Free(yyvsp[-3].map); } -#line 4944 "y.tab.c" /* yacc.c:1646 */ - break; - - case 330: -#line 2204 "lev_comp.y" /* yacc.c:1646 */ - { - long m = get_monster_id((yyvsp[0].map), (char)0); +break; +case 329: +{ + long m = get_monster_id(yyvsp[0].map, (char)0); if (m == ERR) { - lc_error("Unknown monster \"%s\"!", (yyvsp[0].map)); - (yyval.i) = -1; + lc_error("Unknown monster \"%s\"!", yyvsp[0].map); + yyval.i = -1; } else - (yyval.i) = SP_MONST_PACK(m, def_monsyms[(int)mons[m].mlet].sym); - Free((yyvsp[0].map)); + yyval.i = SP_MONST_PACK(m, def_monsyms[(int)mons[m].mlet].sym); + Free(yyvsp[0].map); } -#line 4958 "y.tab.c" /* yacc.c:1646 */ - break; - - case 331: -#line 2214 "lev_comp.y" /* yacc.c:1646 */ - { - if (check_monster_char((char) (yyvsp[0].i))) - (yyval.i) = SP_MONST_PACK(-1, (yyvsp[0].i)); +break; +case 330: +{ + if (check_monster_char((char) yyvsp[0].i)) + yyval.i = SP_MONST_PACK(-1, yyvsp[0].i); else { - lc_error("Unknown monster class '%c'!", (yyvsp[0].i)); - (yyval.i) = -1; + lc_error("Unknown monster class '%c'!", yyvsp[0].i); + yyval.i = -1; } } -#line 4971 "y.tab.c" /* yacc.c:1646 */ - break; - - case 332: -#line 2223 "lev_comp.y" /* yacc.c:1646 */ - { - long m = get_monster_id((yyvsp[-1].map), (char) (yyvsp[-3].i)); +break; +case 331: +{ + long m = get_monster_id(yyvsp[-1].map, (char) yyvsp[-3].i); if (m == ERR) { - lc_error("Unknown monster ('%c', \"%s\")!", (yyvsp[-3].i), (yyvsp[-1].map)); - (yyval.i) = -1; + lc_error("Unknown monster ('%c', \"%s\")!", yyvsp[-3].i, yyvsp[-1].map); + yyval.i = -1; } else - (yyval.i) = SP_MONST_PACK(m, (yyvsp[-3].i)); - Free((yyvsp[-1].map)); + yyval.i = SP_MONST_PACK(m, yyvsp[-3].i); + Free(yyvsp[-1].map); } -#line 4985 "y.tab.c" /* yacc.c:1646 */ - break; - - case 333: -#line 2233 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = -1; +break; +case 332: +{ + yyval.i = -1; } -#line 4993 "y.tab.c" /* yacc.c:1646 */ - break; - - case 334: -#line 2239 "lev_comp.y" /* yacc.c:1646 */ - { - add_opvars(splev, "O", VA_PASS1((yyvsp[0].i))); +break; +case 333: +{ + add_opvars(splev, "O", VA_PASS1(yyvsp[0].i)); } -#line 5001 "y.tab.c" /* yacc.c:1646 */ - break; - - case 335: -#line 2243 "lev_comp.y" /* yacc.c:1646 */ - { - check_vardef_type(variable_definitions, (yyvsp[0].map), SPOVAR_OBJ); - vardef_used(variable_definitions, (yyvsp[0].map)); - add_opvars(splev, "v", VA_PASS1((yyvsp[0].map))); - Free((yyvsp[0].map)); +break; +case 334: +{ + check_vardef_type(variable_definitions, yyvsp[0].map, SPOVAR_OBJ); + vardef_used(variable_definitions, yyvsp[0].map); + add_opvars(splev, "v", VA_PASS1(yyvsp[0].map)); + Free(yyvsp[0].map); } -#line 5012 "y.tab.c" /* yacc.c:1646 */ - break; - - case 336: -#line 2250 "lev_comp.y" /* yacc.c:1646 */ - { - check_vardef_type(variable_definitions, (yyvsp[-3].map), SPOVAR_OBJ|SPOVAR_ARRAY); - vardef_used(variable_definitions, (yyvsp[-3].map)); - add_opvars(splev, "v", VA_PASS1((yyvsp[-3].map))); - Free((yyvsp[-3].map)); +break; +case 335: +{ + check_vardef_type(variable_definitions, yyvsp[-3].map, SPOVAR_OBJ|SPOVAR_ARRAY); + vardef_used(variable_definitions, yyvsp[-3].map); + add_opvars(splev, "v", VA_PASS1(yyvsp[-3].map)); + Free(yyvsp[-3].map); } -#line 5023 "y.tab.c" /* yacc.c:1646 */ - break; - - case 337: -#line 2259 "lev_comp.y" /* yacc.c:1646 */ - { - long m = get_object_id((yyvsp[0].map), (char)0); +break; +case 336: +{ + long m = get_object_id(yyvsp[0].map, (char)0); if (m == ERR) { - lc_error("Unknown object \"%s\"!", (yyvsp[0].map)); - (yyval.i) = -1; + lc_error("Unknown object \"%s\"!", yyvsp[0].map); + yyval.i = -1; } else - (yyval.i) = SP_OBJ_PACK(m, 1); /* obj class != 0 to force generation of a specific item */ - Free((yyvsp[0].map)); + yyval.i = SP_OBJ_PACK(m, 1); /* obj class != 0 to force generation of a specific item */ + Free(yyvsp[0].map); } -#line 5037 "y.tab.c" /* yacc.c:1646 */ - break; - - case 338: -#line 2269 "lev_comp.y" /* yacc.c:1646 */ - { - if (check_object_char((char) (yyvsp[0].i))) - (yyval.i) = SP_OBJ_PACK(-1, (yyvsp[0].i)); +break; +case 337: +{ + if (check_object_char((char) yyvsp[0].i)) + yyval.i = SP_OBJ_PACK(-1, yyvsp[0].i); else { - lc_error("Unknown object class '%c'!", (yyvsp[0].i)); - (yyval.i) = -1; + lc_error("Unknown object class '%c'!", yyvsp[0].i); + yyval.i = -1; } } -#line 5050 "y.tab.c" /* yacc.c:1646 */ - break; - - case 339: -#line 2278 "lev_comp.y" /* yacc.c:1646 */ - { - long m = get_object_id((yyvsp[-1].map), (char) (yyvsp[-3].i)); +break; +case 338: +{ + long m = get_object_id(yyvsp[-1].map, (char) yyvsp[-3].i); if (m == ERR) { - lc_error("Unknown object ('%c', \"%s\")!", (yyvsp[-3].i), (yyvsp[-1].map)); - (yyval.i) = -1; + lc_error("Unknown object ('%c', \"%s\")!", yyvsp[-3].i, yyvsp[-1].map); + yyval.i = -1; } else - (yyval.i) = SP_OBJ_PACK(m, (yyvsp[-3].i)); - Free((yyvsp[-1].map)); + yyval.i = SP_OBJ_PACK(m, yyvsp[-3].i); + Free(yyvsp[-1].map); } -#line 5064 "y.tab.c" /* yacc.c:1646 */ - break; - - case 340: -#line 2288 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = -1; +break; +case 339: +{ + yyval.i = -1; } -#line 5072 "y.tab.c" /* yacc.c:1646 */ - break; - - case 341: -#line 2294 "lev_comp.y" /* yacc.c:1646 */ - { } -#line 5078 "y.tab.c" /* yacc.c:1646 */ - break; - - case 342: -#line 2296 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 340: +{ } +break; +case 341: +{ add_opvars(splev, "o", VA_PASS1(SPO_MATH_ADD)); } -#line 5086 "y.tab.c" /* yacc.c:1646 */ - break; - - case 343: -#line 2302 "lev_comp.y" /* yacc.c:1646 */ - { - add_opvars(splev, "i", VA_PASS1((yyvsp[0].i))); +break; +case 342: +{ + add_opvars(splev, "i", VA_PASS1(yyvsp[0].i)); } -#line 5094 "y.tab.c" /* yacc.c:1646 */ - break; - - case 344: -#line 2306 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 343: +{ is_inconstant_number = 1; } -#line 5102 "y.tab.c" /* yacc.c:1646 */ - break; - - case 345: -#line 2310 "lev_comp.y" /* yacc.c:1646 */ - { - add_opvars(splev, "i", VA_PASS1((yyvsp[-1].i))); +break; +case 344: +{ + add_opvars(splev, "i", VA_PASS1(yyvsp[-1].i)); } -#line 5110 "y.tab.c" /* yacc.c:1646 */ - break; - - case 346: -#line 2314 "lev_comp.y" /* yacc.c:1646 */ - { - check_vardef_type(variable_definitions, (yyvsp[0].map), SPOVAR_INT); - vardef_used(variable_definitions, (yyvsp[0].map)); - add_opvars(splev, "v", VA_PASS1((yyvsp[0].map))); - Free((yyvsp[0].map)); +break; +case 345: +{ + check_vardef_type(variable_definitions, yyvsp[0].map, SPOVAR_INT); + vardef_used(variable_definitions, yyvsp[0].map); + add_opvars(splev, "v", VA_PASS1(yyvsp[0].map)); + Free(yyvsp[0].map); is_inconstant_number = 1; } -#line 5122 "y.tab.c" /* yacc.c:1646 */ - break; - - case 347: -#line 2322 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 346: +{ check_vardef_type(variable_definitions, - (yyvsp[-3].map), SPOVAR_INT|SPOVAR_ARRAY); - vardef_used(variable_definitions, (yyvsp[-3].map)); - add_opvars(splev, "v", VA_PASS1((yyvsp[-3].map))); - Free((yyvsp[-3].map)); + yyvsp[-3].map, SPOVAR_INT|SPOVAR_ARRAY); + vardef_used(variable_definitions, yyvsp[-3].map); + add_opvars(splev, "v", VA_PASS1(yyvsp[-3].map)); + Free(yyvsp[-3].map); is_inconstant_number = 1; } -#line 5135 "y.tab.c" /* yacc.c:1646 */ - break; - - case 348: -#line 2331 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 347: +{ add_opvars(splev, "o", VA_PASS1(SPO_MATH_ADD)); } -#line 5143 "y.tab.c" /* yacc.c:1646 */ - break; - - case 349: -#line 2335 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 348: +{ add_opvars(splev, "o", VA_PASS1(SPO_MATH_SUB)); } -#line 5151 "y.tab.c" /* yacc.c:1646 */ - break; - - case 350: -#line 2339 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 349: +{ add_opvars(splev, "o", VA_PASS1(SPO_MATH_MUL)); } -#line 5159 "y.tab.c" /* yacc.c:1646 */ - break; - - case 351: -#line 2343 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 350: +{ add_opvars(splev, "o", VA_PASS1(SPO_MATH_DIV)); } -#line 5167 "y.tab.c" /* yacc.c:1646 */ - break; - - case 352: -#line 2347 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 351: +{ add_opvars(splev, "o", VA_PASS1(SPO_MATH_MOD)); } -#line 5175 "y.tab.c" /* yacc.c:1646 */ - break; - - case 353: -#line 2350 "lev_comp.y" /* yacc.c:1646 */ - { } -#line 5181 "y.tab.c" /* yacc.c:1646 */ - break; - - case 354: -#line 2354 "lev_comp.y" /* yacc.c:1646 */ - { - if (!strcmp("int", (yyvsp[0].map)) || !strcmp("integer", (yyvsp[0].map))) { - (yyval.i) = (int)'i'; +break; +case 352: +{ } +break; +case 353: +{ + if (!strcmp("int", yyvsp[0].map) || !strcmp("integer", yyvsp[0].map)) { + yyval.i = (int)'i'; } else - lc_error("Unknown function parameter type '%s'", (yyvsp[0].map)); + lc_error("Unknown function parameter type '%s'", yyvsp[0].map); } -#line 5192 "y.tab.c" /* yacc.c:1646 */ - break; - - case 355: -#line 2361 "lev_comp.y" /* yacc.c:1646 */ - { - if (!strcmp("str", (yyvsp[0].map)) || !strcmp("string", (yyvsp[0].map))) { - (yyval.i) = (int)'s'; +break; +case 354: +{ + if (!strcmp("str", yyvsp[0].map) || !strcmp("string", yyvsp[0].map)) { + yyval.i = (int)'s'; } else - lc_error("Unknown function parameter type '%s'", (yyvsp[0].map)); + lc_error("Unknown function parameter type '%s'", yyvsp[0].map); } -#line 5203 "y.tab.c" /* yacc.c:1646 */ - break; - - case 356: -#line 2370 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 355: +{ struct lc_funcdefs_parm *tmp = New(struct lc_funcdefs_parm); if (!curr_function) { @@ -5213,8 +4605,8 @@ yyreduce: lc_error("Could not alloc function params."); } else { long vt; - tmp->name = strdup((yyvsp[-2].map)); - tmp->parmtype = (char) (yyvsp[0].i); + tmp->name = strdup(yyvsp[-2].map); + tmp->parmtype = (char) yyvsp[0].i; tmp->next = curr_function->params; curr_function->params = tmp; curr_function->n_params++; @@ -5225,569 +4617,285 @@ yyreduce: } variable_definitions = add_vardef_type( variable_definitions, - (yyvsp[-2].map), vt); + yyvsp[-2].map, vt); } - Free((yyvsp[-2].map)); + Free(yyvsp[-2].map); } -#line 5233 "y.tab.c" /* yacc.c:1646 */ - break; - - case 361: -#line 2406 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = (int)'i'; +break; +case 360: +{ + yyval.i = (int)'i'; } -#line 5241 "y.tab.c" /* yacc.c:1646 */ - break; - - case 362: -#line 2410 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.i) = (int)'s'; +break; +case 361: +{ + yyval.i = (int)'s'; } -#line 5249 "y.tab.c" /* yacc.c:1646 */ - break; - - case 363: -#line 2417 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 362: +{ char tmpbuf[2]; - tmpbuf[0] = (char) (yyvsp[0].i); + tmpbuf[0] = (char) yyvsp[0].i; tmpbuf[1] = '\0'; - (yyval.map) = strdup(tmpbuf); + yyval.map = strdup(tmpbuf); } -#line 5260 "y.tab.c" /* yacc.c:1646 */ - break; - - case 364: -#line 2424 "lev_comp.y" /* yacc.c:1646 */ - { - long len = strlen( (yyvsp[-2].map) ); +break; +case 363: +{ + long len = strlen( yyvsp[-2].map ); char *tmp = (char *)alloc(len + 2); - sprintf(tmp, "%c%s", (char) (yyvsp[0].i), (yyvsp[-2].map) ); - Free( (yyvsp[-2].map) ); - (yyval.map) = tmp; + sprintf(tmp, "%c%s", (char) yyvsp[0].i, yyvsp[-2].map ); + Free( yyvsp[-2].map ); + yyval.map = tmp; } -#line 5272 "y.tab.c" /* yacc.c:1646 */ - break; - - case 365: -#line 2434 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.map) = strdup(""); +break; +case 364: +{ + yyval.map = strdup(""); } -#line 5280 "y.tab.c" /* yacc.c:1646 */ - break; - - case 366: -#line 2438 "lev_comp.y" /* yacc.c:1646 */ - { - char *tmp = strdup( (yyvsp[0].map) ); - Free( (yyvsp[0].map) ); - (yyval.map) = tmp; +break; +case 365: +{ + char *tmp = strdup( yyvsp[0].map ); + Free( yyvsp[0].map ); + yyval.map = tmp; } -#line 5290 "y.tab.c" /* yacc.c:1646 */ - break; - - case 367: -#line 2446 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 366: +{ add_opvars(splev, "o", VA_PASS1(SPO_SEL_POINT)); } -#line 5298 "y.tab.c" /* yacc.c:1646 */ - break; - - case 368: -#line 2450 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 367: +{ add_opvars(splev, "o", VA_PASS1(SPO_SEL_RECT)); } -#line 5306 "y.tab.c" /* yacc.c:1646 */ - break; - - case 369: -#line 2454 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 368: +{ add_opvars(splev, "o", VA_PASS1(SPO_SEL_FILLRECT)); } -#line 5314 "y.tab.c" /* yacc.c:1646 */ - break; - - case 370: -#line 2458 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 369: +{ add_opvars(splev, "o", VA_PASS1(SPO_SEL_LINE)); } -#line 5322 "y.tab.c" /* yacc.c:1646 */ - break; - - case 371: -#line 2462 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 370: +{ /* randline (x1,y1),(x2,y2), roughness */ add_opvars(splev, "o", VA_PASS1(SPO_SEL_RNDLINE)); } -#line 5331 "y.tab.c" /* yacc.c:1646 */ - break; - - case 372: -#line 2467 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 371: +{ add_opvars(splev, "io", VA_PASS2(W_ANY, SPO_SEL_GROW)); } -#line 5339 "y.tab.c" /* yacc.c:1646 */ - break; - - case 373: -#line 2471 "lev_comp.y" /* yacc.c:1646 */ - { - add_opvars(splev, "io", VA_PASS2((yyvsp[-3].i), SPO_SEL_GROW)); +break; +case 372: +{ + add_opvars(splev, "io", VA_PASS2(yyvsp[-3].i, SPO_SEL_GROW)); } -#line 5347 "y.tab.c" /* yacc.c:1646 */ - break; - - case 374: -#line 2475 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 373: +{ add_opvars(splev, "iio", - VA_PASS3((yyvsp[-3].i), SPOFILTER_PERCENT, SPO_SEL_FILTER)); + VA_PASS3(yyvsp[-3].i, SPOFILTER_PERCENT, SPO_SEL_FILTER)); } -#line 5356 "y.tab.c" /* yacc.c:1646 */ - break; - - case 375: -#line 2480 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 374: +{ add_opvars(splev, "io", VA_PASS2(SPOFILTER_SELECTION, SPO_SEL_FILTER)); } -#line 5365 "y.tab.c" /* yacc.c:1646 */ - break; - - case 376: -#line 2485 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 375: +{ add_opvars(splev, "io", VA_PASS2(SPOFILTER_MAPCHAR, SPO_SEL_FILTER)); } -#line 5374 "y.tab.c" /* yacc.c:1646 */ - break; - - case 377: -#line 2490 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 376: +{ add_opvars(splev, "o", VA_PASS1(SPO_SEL_FLOOD)); } -#line 5382 "y.tab.c" /* yacc.c:1646 */ - break; - - case 378: -#line 2494 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 377: +{ add_opvars(splev, "oio", VA_PASS3(SPO_COPY, 1, SPO_SEL_ELLIPSE)); } -#line 5391 "y.tab.c" /* yacc.c:1646 */ - break; - - case 379: -#line 2499 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 378: +{ add_opvars(splev, "oio", - VA_PASS3(SPO_COPY, (yyvsp[-1].i), SPO_SEL_ELLIPSE)); + VA_PASS3(SPO_COPY, yyvsp[-1].i, SPO_SEL_ELLIPSE)); } -#line 5400 "y.tab.c" /* yacc.c:1646 */ - break; - - case 380: -#line 2504 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 379: +{ add_opvars(splev, "io", VA_PASS2(1, SPO_SEL_ELLIPSE)); } -#line 5408 "y.tab.c" /* yacc.c:1646 */ - break; - - case 381: -#line 2508 "lev_comp.y" /* yacc.c:1646 */ - { - add_opvars(splev, "io", VA_PASS2((yyvsp[-1].i), SPO_SEL_ELLIPSE)); +break; +case 380: +{ + add_opvars(splev, "io", VA_PASS2(yyvsp[-1].i, SPO_SEL_ELLIPSE)); } -#line 5416 "y.tab.c" /* yacc.c:1646 */ - break; - - case 382: -#line 2512 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 381: +{ add_opvars(splev, "iio", - VA_PASS3((yyvsp[-5].i), (yyvsp[-11].i), SPO_SEL_GRADIENT)); + VA_PASS3(yyvsp[-5].i, yyvsp[-11].i, SPO_SEL_GRADIENT)); } -#line 5425 "y.tab.c" /* yacc.c:1646 */ - break; - - case 383: -#line 2517 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 382: +{ add_opvars(splev, "o", VA_PASS1(SPO_SEL_COMPLEMENT)); } -#line 5433 "y.tab.c" /* yacc.c:1646 */ - break; - - case 384: -#line 2521 "lev_comp.y" /* yacc.c:1646 */ - { - check_vardef_type(variable_definitions, (yyvsp[0].map), SPOVAR_SEL); - vardef_used(variable_definitions, (yyvsp[0].map)); - add_opvars(splev, "v", VA_PASS1((yyvsp[0].map))); - Free((yyvsp[0].map)); +break; +case 383: +{ + check_vardef_type(variable_definitions, yyvsp[0].map, SPOVAR_SEL); + vardef_used(variable_definitions, yyvsp[0].map); + add_opvars(splev, "v", VA_PASS1(yyvsp[0].map)); + Free(yyvsp[0].map); } -#line 5444 "y.tab.c" /* yacc.c:1646 */ - break; - - case 385: -#line 2528 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 384: +{ /* nothing */ } -#line 5452 "y.tab.c" /* yacc.c:1646 */ - break; - - case 386: -#line 2534 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 385: +{ /* nothing */ } -#line 5460 "y.tab.c" /* yacc.c:1646 */ - break; - - case 387: -#line 2538 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 386: +{ add_opvars(splev, "o", VA_PASS1(SPO_SEL_ADD)); } -#line 5468 "y.tab.c" /* yacc.c:1646 */ - break; - - case 388: -#line 2544 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 387: +{ add_opvars(splev, "iio", - VA_PASS3((yyvsp[0].dice).num, (yyvsp[0].dice).die, SPO_DICE)); + VA_PASS3(yyvsp[0].dice.num, yyvsp[0].dice.die, SPO_DICE)); } -#line 5477 "y.tab.c" /* yacc.c:1646 */ - break; - - case 392: -#line 2556 "lev_comp.y" /* yacc.c:1646 */ - { - add_opvars(splev, "i", VA_PASS1((yyvsp[0].i))); +break; +case 391: +{ + add_opvars(splev, "i", VA_PASS1(yyvsp[0].i)); } -#line 5485 "y.tab.c" /* yacc.c:1646 */ - break; - - case 393: -#line 2560 "lev_comp.y" /* yacc.c:1646 */ - { - add_opvars(splev, "i", VA_PASS1((yyvsp[0].i))); +break; +case 392: +{ + add_opvars(splev, "i", VA_PASS1(yyvsp[0].i)); } -#line 5493 "y.tab.c" /* yacc.c:1646 */ - break; - - case 394: -#line 2564 "lev_comp.y" /* yacc.c:1646 */ - { - add_opvars(splev, "i", VA_PASS1((yyvsp[0].i))); +break; +case 393: +{ + add_opvars(splev, "i", VA_PASS1(yyvsp[0].i)); } -#line 5501 "y.tab.c" /* yacc.c:1646 */ - break; - - case 395: -#line 2568 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 394: +{ /* nothing */ } -#line 5509 "y.tab.c" /* yacc.c:1646 */ - break; - - case 404: -#line 2590 "lev_comp.y" /* yacc.c:1646 */ - { - (yyval.lregn) = (yyvsp[0].lregn); +break; +case 403: +{ + yyval.lregn = yyvsp[0].lregn; } -#line 5517 "y.tab.c" /* yacc.c:1646 */ - break; - - case 405: -#line 2594 "lev_comp.y" /* yacc.c:1646 */ - { - if ((yyvsp[-7].i) <= 0 || (yyvsp[-7].i) >= COLNO) - lc_error("Region (%li,%li,%li,%li) out of level range (x1)!", (yyvsp[-7].i), (yyvsp[-5].i), (yyvsp[-3].i), (yyvsp[-1].i)); - else if ((yyvsp[-5].i) < 0 || (yyvsp[-5].i) >= ROWNO) - lc_error("Region (%li,%li,%li,%li) out of level range (y1)!", (yyvsp[-7].i), (yyvsp[-5].i), (yyvsp[-3].i), (yyvsp[-1].i)); - else if ((yyvsp[-3].i) <= 0 || (yyvsp[-3].i) >= COLNO) - lc_error("Region (%li,%li,%li,%li) out of level range (x2)!", (yyvsp[-7].i), (yyvsp[-5].i), (yyvsp[-3].i), (yyvsp[-1].i)); - else if ((yyvsp[-1].i) < 0 || (yyvsp[-1].i) >= ROWNO) - lc_error("Region (%li,%li,%li,%li) out of level range (y2)!", (yyvsp[-7].i), (yyvsp[-5].i), (yyvsp[-3].i), (yyvsp[-1].i)); - (yyval.lregn).x1 = (yyvsp[-7].i); - (yyval.lregn).y1 = (yyvsp[-5].i); - (yyval.lregn).x2 = (yyvsp[-3].i); - (yyval.lregn).y2 = (yyvsp[-1].i); - (yyval.lregn).area = 1; - } -#line 5537 "y.tab.c" /* yacc.c:1646 */ - break; - - case 406: -#line 2612 "lev_comp.y" /* yacc.c:1646 */ - { +break; +case 404: +{ + if (yyvsp[-7].i <= 0 || yyvsp[-7].i >= COLNO) + lc_error("Region (%li,%li,%li,%li) out of level range (x1)!", yyvsp[-7].i, yyvsp[-5].i, yyvsp[-3].i, yyvsp[-1].i); + else if (yyvsp[-5].i < 0 || yyvsp[-5].i >= ROWNO) + lc_error("Region (%li,%li,%li,%li) out of level range (y1)!", yyvsp[-7].i, yyvsp[-5].i, yyvsp[-3].i, yyvsp[-1].i); + else if (yyvsp[-3].i <= 0 || yyvsp[-3].i >= COLNO) + lc_error("Region (%li,%li,%li,%li) out of level range (x2)!", yyvsp[-7].i, yyvsp[-5].i, yyvsp[-3].i, yyvsp[-1].i); + else if (yyvsp[-1].i < 0 || yyvsp[-1].i >= ROWNO) + lc_error("Region (%li,%li,%li,%li) out of level range (y2)!", yyvsp[-7].i, yyvsp[-5].i, yyvsp[-3].i, yyvsp[-1].i); + yyval.lregn.x1 = yyvsp[-7].i; + yyval.lregn.y1 = yyvsp[-5].i; + yyval.lregn.x2 = yyvsp[-3].i; + yyval.lregn.y2 = yyvsp[-1].i; + yyval.lregn.area = 1; + } +break; +case 405: +{ /* This series of if statements is a hack for MSC 5.1. It seems that its tiny little brain cannot compile if these are all one big if statement. */ - if ((yyvsp[-7].i) < 0 || (yyvsp[-7].i) > (int)max_x_map) - lc_error("Region (%li,%li,%li,%li) out of map range (x1)!", (yyvsp[-7].i), (yyvsp[-5].i), (yyvsp[-3].i), (yyvsp[-1].i)); - else if ((yyvsp[-5].i) < 0 || (yyvsp[-5].i) > (int)max_y_map) - lc_error("Region (%li,%li,%li,%li) out of map range (y1)!", (yyvsp[-7].i), (yyvsp[-5].i), (yyvsp[-3].i), (yyvsp[-1].i)); - else if ((yyvsp[-3].i) < 0 || (yyvsp[-3].i) > (int)max_x_map) - lc_error("Region (%li,%li,%li,%li) out of map range (x2)!", (yyvsp[-7].i), (yyvsp[-5].i), (yyvsp[-3].i), (yyvsp[-1].i)); - else if ((yyvsp[-1].i) < 0 || (yyvsp[-1].i) > (int)max_y_map) - lc_error("Region (%li,%li,%li,%li) out of map range (y2)!", (yyvsp[-7].i), (yyvsp[-5].i), (yyvsp[-3].i), (yyvsp[-1].i)); - (yyval.lregn).area = 0; - (yyval.lregn).x1 = (yyvsp[-7].i); - (yyval.lregn).y1 = (yyvsp[-5].i); - (yyval.lregn).x2 = (yyvsp[-3].i); - (yyval.lregn).y2 = (yyvsp[-1].i); - } -#line 5559 "y.tab.c" /* yacc.c:1646 */ - break; - - -#line 5563 "y.tab.c" /* yacc.c:1646 */ - default: break; + if (yyvsp[-7].i < 0 || yyvsp[-7].i > (int)max_x_map) + lc_error("Region (%li,%li,%li,%li) out of map range (x1)!", yyvsp[-7].i, yyvsp[-5].i, yyvsp[-3].i, yyvsp[-1].i); + else if (yyvsp[-5].i < 0 || yyvsp[-5].i > (int)max_y_map) + lc_error("Region (%li,%li,%li,%li) out of map range (y1)!", yyvsp[-7].i, yyvsp[-5].i, yyvsp[-3].i, yyvsp[-1].i); + else if (yyvsp[-3].i < 0 || yyvsp[-3].i > (int)max_x_map) + lc_error("Region (%li,%li,%li,%li) out of map range (x2)!", yyvsp[-7].i, yyvsp[-5].i, yyvsp[-3].i, yyvsp[-1].i); + else if (yyvsp[-1].i < 0 || yyvsp[-1].i > (int)max_y_map) + lc_error("Region (%li,%li,%li,%li) out of map range (y2)!", yyvsp[-7].i, yyvsp[-5].i, yyvsp[-3].i, yyvsp[-1].i); + yyval.lregn.area = 0; + yyval.lregn.x1 = yyvsp[-7].i; + yyval.lregn.y1 = yyvsp[-5].i; + yyval.lregn.x2 = yyvsp[-3].i; + yyval.lregn.y2 = yyvsp[-1].i; + } +break; } - /* User semantic actions sometimes alter yychar, and that requires - that yytoken be updated with the new translation. We take the - approach of translating immediately before every use of yytoken. - One alternative is translating here after every semantic action, - but that translation would be missed if the semantic action invokes - YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or - if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an - incorrect destructor might then be invoked immediately. In the - case of YYERROR or YYBACKUP, subsequent parser actions might lead - to an incorrect destructor call or verbose syntax error message - before the lookahead is translated. */ - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); - - YYPOPSTACK (yylen); - yylen = 0; - YY_STACK_PRINT (yyss, yyssp); - - *++yyvsp = yyval; - - /* 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. */ - - yyn = yyr1[yyn]; - - yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; - if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTOKENS]; - - goto yynewstate; - - -/*--------------------------------------. -| yyerrlab -- here on detecting error. | -`--------------------------------------*/ -yyerrlab: - /* Make sure we have latest lookahead translation. See comments at - user semantic actions for why this is necessary. */ - yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); - - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus) + yyssp -= yym; + yystate = *yyssp; + yyvsp -= yym; + yym = yylhs[yyn]; + if (yystate == 0 && yym == 0) { - ++yynerrs; -#if ! YYERROR_VERBOSE - yyerror (YY_("syntax error")); -#else -# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ - yyssp, yytoken) - { - char const *yymsgp = YY_("syntax error"); - int yysyntax_error_status; - yysyntax_error_status = YYSYNTAX_ERROR; - if (yysyntax_error_status == 0) - yymsgp = yymsg; - else if (yysyntax_error_status == 1) - { - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); - if (!yymsg) - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - yysyntax_error_status = 2; - } - else - { - yysyntax_error_status = YYSYNTAX_ERROR; - yymsgp = yymsg; - } - } - yyerror (yymsgp); - if (yysyntax_error_status == 2) - goto yyexhaustedlab; - } -# undef YYSYNTAX_ERROR +#if YYDEBUG + if (yydebug) + printf("%sdebug: after reduction, shifting from state 0 to\ + state %d\n", YYPREFIX, YYFINAL); #endif - } - - - - if (yyerrstatus == 3) - { - /* If just tried and failed to reuse lookahead token after an - error, discard it. */ - - if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } - else + yystate = YYFINAL; + *++yyssp = YYFINAL; + *++yyvsp = yyval; + if (yychar < 0) { - yydestruct ("Error: discarding", - yytoken, &yylval); - yychar = YYEMPTY; - } - } - - /* Else will try to reuse lookahead 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 whose 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 (!yypact_value_is_default (yyn)) - { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + if ((yychar = yylex()) < 0) yychar = 0; +#if YYDEBUG + if (yydebug) { - yyn = yytable[yyn]; - if (0 < yyn) - break; + yys = 0; + if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; + if (!yys) yys = "illegal-symbol"; + printf("%sdebug: state %d, reading %d (%s)\n", + YYPREFIX, YYFINAL, yychar, yys); } +#endif } - - /* Pop the current state because it cannot handle the error token. */ - if (yyssp == yyss) - YYABORT; - - - yydestruct ("Error: popping", - yystos[yystate], yyvsp); - YYPOPSTACK (1); - yystate = *yyssp; - YY_STACK_PRINT (yyss, yyssp); + if (yychar == 0) goto yyaccept; + goto yyloop; } - - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - *++yyvsp = yylval; - YY_IGNORE_MAYBE_UNINITIALIZED_END - - - /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); - - yystate = yyn; - goto yynewstate; - - -/*-------------------------------------. -| yyacceptlab -- YYACCEPT comes here. | -`-------------------------------------*/ -yyacceptlab: - yyresult = 0; - goto yyreturn; - -/*-----------------------------------. -| yyabortlab -- YYABORT comes here. | -`-----------------------------------*/ -yyabortlab: - yyresult = 1; - goto yyreturn; - -#if !defined yyoverflow || YYERROR_VERBOSE -/*-------------------------------------------------. -| yyexhaustedlab -- memory exhaustion comes here. | -`-------------------------------------------------*/ -yyexhaustedlab: - yyerror (YY_("memory exhausted")); - yyresult = 2; - /* Fall through. */ + if ((yyn = yygindex[yym]) != 0 && (yyn += yystate) >= 0 && + yyn <= YYTABLESIZE && yycheck[yyn] == yystate) + yystate = yytable[yyn]; + else + yystate = yydgoto[yym]; +#if YYDEBUG + if (yydebug) + printf("%sdebug: after reduction, shifting from state %d \ +to state %d\n", YYPREFIX, *yyssp, yystate); #endif - -yyreturn: - if (yychar != YYEMPTY) + if (yyssp >= yyss + yystacksize - 1) { - /* Make sure we have latest lookahead translation. See comments at - user semantic actions for why this is necessary. */ - yytoken = YYTRANSLATE (yychar); - yydestruct ("Cleanup: discarding lookahead", - yytoken, &yylval); + goto yyoverflow; } - /* Do not reclaim the symbols of the rule whose action triggered - this YYABORT or YYACCEPT. */ - YYPOPSTACK (yylen); - YY_STACK_PRINT (yyss, yyssp); - while (yyssp != yyss) - { - yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp); - YYPOPSTACK (1); - } -#ifndef yyoverflow - if (yyss != yyssa) - YYSTACK_FREE (yyss); -#endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif - return yyresult; + *++yyssp = yystate; + *++yyvsp = yyval; + goto yyloop; +yyoverflow: + yyerror("yacc stack overflow"); +yyabort: + return (1); +yyaccept: + return (0); } -#line 2632 "lev_comp.y" /* yacc.c:1906 */ - - -/*lev_comp.y*/ -- 2.40.0