4930 lines
182 KiB
C
4930 lines
182 KiB
C
#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: 1455747019 2016/02/17 22:10:19 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.22 $ */
|
|
/* Copyright (c) 1989 by Jean-Christophe Collet */
|
|
/* NetHack may be freely redistributed. See license for details. */
|
|
|
|
/*
|
|
* This file contains the Level Compiler code
|
|
* It may handle special mazes & special room-levels
|
|
*/
|
|
|
|
/* In case we're using bison in AIX. This definition must be
|
|
* placed before any other C-language construct in the file
|
|
* excluding comments and preprocessor directives (thanks IBM
|
|
* for this wonderful feature...).
|
|
*
|
|
* Note: some cpps barf on this 'undefined control' (#pragma).
|
|
* Addition of the leading space seems to prevent barfage for now,
|
|
* and AIX will still see the directive.
|
|
*/
|
|
#ifdef _AIX
|
|
#pragma alloca /* keep leading space! */
|
|
#endif
|
|
|
|
#define SPEC_LEV /* for USE_OLDARGS (sp_lev.h) */
|
|
#include "hack.h"
|
|
#include "sp_lev.h"
|
|
|
|
#define ERR (-1)
|
|
/* many types of things are put in chars for transference to NetHack.
|
|
* since some systems will use signed chars, limit everybody to the
|
|
* same number for portability.
|
|
*/
|
|
#define MAX_OF_TYPE 128
|
|
|
|
#define MAX_NESTED_IFS 20
|
|
#define MAX_SWITCH_CASES 20
|
|
|
|
#define New(type) \
|
|
(type *) memset((genericptr_t) alloc(sizeof (type)), 0, sizeof (type))
|
|
#define NewTab(type, size) (type **) alloc(sizeof (type *) * size)
|
|
#define Free(ptr) free((genericptr_t) ptr)
|
|
|
|
extern void VDECL(lc_error, (const char *, ...));
|
|
extern void VDECL(lc_warning, (const char *, ...));
|
|
extern void FDECL(yyerror, (const char *));
|
|
extern void FDECL(yywarning, (const char *));
|
|
extern int NDECL(yylex);
|
|
int NDECL(yyparse);
|
|
|
|
extern int FDECL(get_floor_type, (CHAR_P));
|
|
extern int FDECL(get_room_type, (char *));
|
|
extern int FDECL(get_trap_type, (char *));
|
|
extern int FDECL(get_monster_id, (char *,CHAR_P));
|
|
extern int FDECL(get_object_id, (char *,CHAR_P));
|
|
extern boolean FDECL(check_monster_char, (CHAR_P));
|
|
extern boolean FDECL(check_object_char, (CHAR_P));
|
|
extern char FDECL(what_map_char, (CHAR_P));
|
|
extern void FDECL(scan_map, (char *, sp_lev *));
|
|
extern void FDECL(add_opcode, (sp_lev *, int, genericptr_t));
|
|
extern genericptr_t FDECL(get_last_opcode_data1, (sp_lev *, int));
|
|
extern genericptr_t FDECL(get_last_opcode_data2, (sp_lev *, int, int));
|
|
extern boolean FDECL(check_subrooms, (sp_lev *));
|
|
extern boolean FDECL(write_level_file, (char *,sp_lev *));
|
|
extern struct opvar *FDECL(set_opvar_int, (struct opvar *, long));
|
|
extern void VDECL(add_opvars, (sp_lev *, const char *, ...));
|
|
extern void FDECL(start_level_def, (sp_lev * *, char *));
|
|
|
|
extern struct lc_funcdefs *FDECL(funcdef_new, (long,char *));
|
|
extern void FDECL(funcdef_free_all, (struct lc_funcdefs *));
|
|
extern struct lc_funcdefs *FDECL(funcdef_defined, (struct lc_funcdefs *,
|
|
char *, int));
|
|
extern char *FDECL(funcdef_paramtypes, (struct lc_funcdefs *));
|
|
extern char *FDECL(decode_parm_str, (char *));
|
|
|
|
extern struct lc_vardefs *FDECL(vardef_new, (long,char *));
|
|
extern void FDECL(vardef_free_all, (struct lc_vardefs *));
|
|
extern struct lc_vardefs *FDECL(vardef_defined, (struct lc_vardefs *,
|
|
char *, int));
|
|
|
|
extern void NDECL(break_stmt_start);
|
|
extern void FDECL(break_stmt_end, (sp_lev *));
|
|
extern void FDECL(break_stmt_new, (sp_lev *, long));
|
|
|
|
extern void FDECL(splev_add_from, (sp_lev *, sp_lev *));
|
|
|
|
extern void FDECL(check_vardef_type, (struct lc_vardefs *, char *, long));
|
|
extern void FDECL(vardef_used, (struct lc_vardefs *, char *));
|
|
extern struct lc_vardefs *FDECL(add_vardef_type, (struct lc_vardefs *,
|
|
char *, long));
|
|
|
|
extern int FDECL(reverse_jmp_opcode, (int));
|
|
|
|
struct coord {
|
|
long x;
|
|
long y;
|
|
};
|
|
|
|
struct forloopdef {
|
|
char *varname;
|
|
long jmp_point;
|
|
};
|
|
static struct forloopdef forloop_list[MAX_NESTED_IFS];
|
|
static short n_forloops = 0;
|
|
|
|
|
|
sp_lev *splev = NULL;
|
|
|
|
static struct opvar *if_list[MAX_NESTED_IFS];
|
|
|
|
static short n_if_list = 0;
|
|
|
|
unsigned int max_x_map, max_y_map;
|
|
int obj_containment = 0;
|
|
|
|
int in_container_obj = 0;
|
|
|
|
/* integer value is possibly an inconstant value (eg. dice notation or a variable) */
|
|
int is_inconstant_number = 0;
|
|
|
|
int in_switch_statement = 0;
|
|
static struct opvar *switch_check_jump = NULL;
|
|
static struct opvar *switch_default_case = NULL;
|
|
static struct opvar *switch_case_list[MAX_SWITCH_CASES];
|
|
static long switch_case_value[MAX_SWITCH_CASES];
|
|
int n_switch_case_list = 0;
|
|
|
|
int allow_break_statements = 0;
|
|
struct lc_breakdef *break_list = NULL;
|
|
|
|
extern struct lc_vardefs *variable_definitions;
|
|
|
|
|
|
struct lc_vardefs *function_tmp_var_defs = NULL;
|
|
extern struct lc_funcdefs *function_definitions;
|
|
struct lc_funcdefs *curr_function = NULL;
|
|
struct lc_funcdefs_parm * curr_function_param = NULL;
|
|
int in_function_definition = 0;
|
|
sp_lev *function_splev_backup = NULL;
|
|
|
|
extern int fatal_error;
|
|
extern int got_errors;
|
|
extern int line_number;
|
|
extern const char *fname;
|
|
|
|
extern char curr_token[512];
|
|
|
|
typedef union
|
|
{
|
|
long i;
|
|
char* map;
|
|
struct {
|
|
long room;
|
|
long wall;
|
|
long door;
|
|
} corpos;
|
|
struct {
|
|
long area;
|
|
long x1;
|
|
long y1;
|
|
long x2;
|
|
long y2;
|
|
} lregn;
|
|
struct {
|
|
long x;
|
|
long y;
|
|
} crd;
|
|
struct {
|
|
long ter;
|
|
long lit;
|
|
} terr;
|
|
struct {
|
|
long height;
|
|
long width;
|
|
} sze;
|
|
struct {
|
|
long die;
|
|
long num;
|
|
} dice;
|
|
struct {
|
|
long cfunc;
|
|
char *varstr;
|
|
} meth;
|
|
} 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,
|
|
};
|
|
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,
|
|
};
|
|
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,
|
|
};
|
|
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,
|
|
};
|
|
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,
|
|
};
|
|
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,
|
|
};
|
|
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,
|
|
};
|
|
#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,
|
|
};
|
|
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,
|
|
};
|
|
#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",
|
|
};
|
|
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 ')'",
|
|
};
|
|
#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
|
|
|
|
/*lev_comp.y*/
|
|
#define YYABORT goto yyabort
|
|
#define YYREJECT goto yyabort
|
|
#define YYACCEPT goto yyaccept
|
|
#define YYERROR goto yyerrlab
|
|
int
|
|
yyparse()
|
|
{
|
|
register int yym, yyn, yystate;
|
|
#if YYDEBUG
|
|
register char *yys;
|
|
extern char *getenv();
|
|
|
|
if ((yys = getenv("YYDEBUG")) != 0)
|
|
{
|
|
yyn = *yys;
|
|
if (yyn >= '0' && yyn <= '9')
|
|
yydebug = yyn - '0';
|
|
}
|
|
#endif
|
|
|
|
yynerrs = 0;
|
|
yyerrflag = 0;
|
|
yychar = (-1);
|
|
|
|
yyssp = yyss;
|
|
yyvsp = yyvs;
|
|
*yyssp = yystate = 0;
|
|
|
|
yyloop:
|
|
if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
|
|
if (yychar < 0)
|
|
{
|
|
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 ((yyn = yysindex[yystate]) != 0 && (yyn += yychar) >= 0 &&
|
|
yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
|
|
{
|
|
#if YYDEBUG
|
|
if (yydebug)
|
|
printf("%sdebug: state %d, shifting to state %d\n",
|
|
YYPREFIX, yystate, yytable[yyn]);
|
|
#endif
|
|
if (yyssp >= yyss + yystacksize - 1)
|
|
{
|
|
goto yyoverflow;
|
|
}
|
|
*++yyssp = yystate = yytable[yyn];
|
|
*++yyvsp = yylval;
|
|
yychar = (-1);
|
|
if (yyerrflag > 0) --yyerrflag;
|
|
goto yyloop;
|
|
}
|
|
if ((yyn = yyrindex[yystate]) != 0 && (yyn += yychar) >= 0 &&
|
|
yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
|
|
{
|
|
yyn = yytable[yyn];
|
|
goto yyreduce;
|
|
}
|
|
if (yyerrflag) goto yyinrecovery;
|
|
goto yynewerror;
|
|
yynewerror:
|
|
yyerror("syntax error");
|
|
goto yyerrlab;
|
|
yyerrlab:
|
|
++yynerrs;
|
|
yyinrecovery:
|
|
if (yyerrflag < 3)
|
|
{
|
|
yyerrflag = 3;
|
|
for (;;)
|
|
{
|
|
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
|
|
{
|
|
if (yychar == 0) goto yyabort;
|
|
#if YYDEBUG
|
|
if (yydebug)
|
|
{
|
|
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);
|
|
}
|
|
#endif
|
|
yychar = (-1);
|
|
goto yyloop;
|
|
}
|
|
yyreduce:
|
|
#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);
|
|
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);
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
}
|
|
Free(yyvsp[-2].map);
|
|
Free(splev);
|
|
splev = NULL;
|
|
vardef_free_all(variable_definitions);
|
|
variable_definitions = NULL;
|
|
}
|
|
break;
|
|
case 6:
|
|
{
|
|
start_level_def(&splev, yyvsp[0].map);
|
|
yyval.map = yyvsp[0].map;
|
|
}
|
|
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);
|
|
add_opvars(splev, "iiiiiiiio",
|
|
VA_PASS9(LVLINIT_SOLIDFILL, bg, 0,0,
|
|
0,0,0,0, SPO_INITLEVEL));
|
|
}
|
|
add_opvars(splev, "io",
|
|
VA_PASS2(MAZELEVEL, SPO_LEVEL_FLAGS));
|
|
max_x_map = COLNO-1;
|
|
max_y_map = ROWNO;
|
|
yyval.map = yyvsp[-2].map;
|
|
}
|
|
break;
|
|
case 8:
|
|
{
|
|
yyval.i = -1;
|
|
}
|
|
break;
|
|
case 9:
|
|
{
|
|
yyval.i = what_map_char((char) yyvsp[0].i);
|
|
}
|
|
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);
|
|
max_x_map = COLNO-1;
|
|
max_y_map = ROWNO;
|
|
}
|
|
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",
|
|
VA_PASS9(LVLINIT_MAZEGRID,filling,0,0,
|
|
0,0,0,0, SPO_INITLEVEL));
|
|
max_x_map = COLNO-1;
|
|
max_y_map = ROWNO;
|
|
}
|
|
break;
|
|
case 12:
|
|
{
|
|
add_opvars(splev, "iiiiiiiio",
|
|
VA_PASS9(LVLINIT_ROGUE,0,0,0,
|
|
0,0,0,0, SPO_INITLEVEL));
|
|
}
|
|
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)
|
|
lc_error("INIT_MAP: Invalid background type.");
|
|
if (joined && fg != CORR && fg != ROOM)
|
|
lc_error("INIT_MAP: Invalid foreground type for joined map.");
|
|
|
|
if (filling == INVALID_TYPE)
|
|
lc_error("INIT_MAP: Invalid fill char type.");
|
|
|
|
add_opvars(splev, "iiiiiiiio",
|
|
VA_PASS9(LVLINIT_MINES,filling,walled,lit,
|
|
joined,smoothed,bg,fg,
|
|
SPO_INITLEVEL));
|
|
max_x_map = COLNO-1;
|
|
max_y_map = ROWNO;
|
|
}
|
|
break;
|
|
case 14:
|
|
{
|
|
yyval.i = 0;
|
|
}
|
|
break;
|
|
case 15:
|
|
{
|
|
yyval.i = yyvsp[0].i;
|
|
}
|
|
break;
|
|
case 16:
|
|
{
|
|
add_opvars(splev, "o", VA_PASS1(SPO_COPY));
|
|
yyval.i = 0;
|
|
}
|
|
break;
|
|
case 17:
|
|
{
|
|
yyval.i = 1;
|
|
}
|
|
break;
|
|
case 18:
|
|
{
|
|
yyval.i = -1;
|
|
}
|
|
break;
|
|
case 19:
|
|
{
|
|
yyval.i = what_map_char((char) yyvsp[0].i);
|
|
}
|
|
break;
|
|
case 22:
|
|
{
|
|
add_opvars(splev, "io", VA_PASS2(0, SPO_LEVEL_FLAGS));
|
|
}
|
|
break;
|
|
case 23:
|
|
{
|
|
add_opvars(splev, "io", VA_PASS2(yyvsp[0].i, SPO_LEVEL_FLAGS));
|
|
}
|
|
break;
|
|
case 24:
|
|
{
|
|
yyval.i = (yyvsp[-2].i | yyvsp[0].i);
|
|
}
|
|
break;
|
|
case 25:
|
|
{
|
|
yyval.i = yyvsp[0].i;
|
|
}
|
|
break;
|
|
case 26:
|
|
{
|
|
yyval.i = 0;
|
|
}
|
|
break;
|
|
case 27:
|
|
{
|
|
yyval.i = 1 + yyvsp[0].i;
|
|
}
|
|
break;
|
|
case 28:
|
|
{
|
|
yyval.i = yyvsp[-1].i;
|
|
}
|
|
break;
|
|
case 96:
|
|
{
|
|
struct lc_vardefs *vd;
|
|
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);
|
|
}
|
|
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);
|
|
}
|
|
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);
|
|
}
|
|
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);
|
|
}
|
|
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);
|
|
}
|
|
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);
|
|
}
|
|
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);
|
|
}
|
|
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);
|
|
}
|
|
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);
|
|
}
|
|
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);
|
|
}
|
|
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);
|
|
}
|
|
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);
|
|
}
|
|
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);
|
|
}
|
|
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);
|
|
}
|
|
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);
|
|
}
|
|
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);
|
|
}
|
|
break;
|
|
case 112:
|
|
{
|
|
add_opvars(splev, "O", VA_PASS1(yyvsp[0].i));
|
|
yyval.i = 1;
|
|
}
|
|
break;
|
|
case 113:
|
|
{
|
|
add_opvars(splev, "O", VA_PASS1(yyvsp[0].i));
|
|
yyval.i = 1 + yyvsp[-2].i;
|
|
}
|
|
break;
|
|
case 114:
|
|
{
|
|
add_opvars(splev, "M", VA_PASS1(yyvsp[0].i));
|
|
yyval.i = 1;
|
|
}
|
|
break;
|
|
case 115:
|
|
{
|
|
add_opvars(splev, "M", VA_PASS1(yyvsp[0].i));
|
|
yyval.i = 1 + yyvsp[-2].i;
|
|
}
|
|
break;
|
|
case 116:
|
|
{
|
|
add_opvars(splev, "m", VA_PASS1(yyvsp[0].i));
|
|
yyval.i = 1;
|
|
}
|
|
break;
|
|
case 117:
|
|
{
|
|
add_opvars(splev, "m", VA_PASS1(yyvsp[0].i));
|
|
yyval.i = 1 + yyvsp[-2].i;
|
|
}
|
|
break;
|
|
case 118:
|
|
{
|
|
yyval.i = 1;
|
|
}
|
|
break;
|
|
case 119:
|
|
{
|
|
yyval.i = 1 + yyvsp[-2].i;
|
|
}
|
|
break;
|
|
case 120:
|
|
{
|
|
add_opvars(splev, "c", VA_PASS1(yyvsp[0].i));
|
|
yyval.i = 1;
|
|
}
|
|
break;
|
|
case 121:
|
|
{
|
|
add_opvars(splev, "c", VA_PASS1(yyvsp[0].i));
|
|
yyval.i = 1 + yyvsp[-2].i;
|
|
}
|
|
break;
|
|
case 122:
|
|
{
|
|
yyval.i = 1;
|
|
}
|
|
break;
|
|
case 123:
|
|
{
|
|
yyval.i = 1 + yyvsp[-2].i;
|
|
}
|
|
break;
|
|
case 124:
|
|
{
|
|
yyval.i = 1;
|
|
}
|
|
break;
|
|
case 125:
|
|
{
|
|
yyval.i = 1 + yyvsp[-2].i;
|
|
}
|
|
break;
|
|
case 126:
|
|
{
|
|
struct lc_funcdefs *funcdef;
|
|
|
|
if (in_function_definition)
|
|
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);
|
|
|
|
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);
|
|
curr_function = funcdef;
|
|
function_tmp_var_defs = variable_definitions;
|
|
variable_definitions = NULL;
|
|
}
|
|
break;
|
|
case 127:
|
|
{
|
|
/* nothing */
|
|
}
|
|
break;
|
|
case 128:
|
|
{
|
|
add_opvars(splev, "io", VA_PASS2(0, SPO_RETURN));
|
|
splev = function_splev_backup;
|
|
in_function_definition--;
|
|
curr_function = NULL;
|
|
vardef_free_all(variable_definitions);
|
|
variable_definitions = function_tmp_var_defs;
|
|
}
|
|
break;
|
|
case 129:
|
|
{
|
|
struct lc_funcdefs *tmpfunc;
|
|
tmpfunc = funcdef_defined(function_definitions, yyvsp[-3].map, 1);
|
|
if (tmpfunc) {
|
|
long l;
|
|
long nparams = strlen( yyvsp[-1].map );
|
|
char *fparamstr = funcdef_paramtypes(tmpfunc);
|
|
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));
|
|
Free(tmps);
|
|
}
|
|
Free(fparamstr);
|
|
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);
|
|
set_opvar_int(jmp, splev->n_opcodes+1);
|
|
add_opcode(splev, SPO_PUSH, jmp);
|
|
add_opcode(splev, SPO_JMP, NULL); /* we must jump past it first, then CALL it, due to RETURN. */
|
|
|
|
tmpfunc->addr = splev->n_opcodes;
|
|
|
|
{ /* init function parameter variables */
|
|
struct lc_funcdefs_parm *tfp = tmpfunc->params;
|
|
while (tfp) {
|
|
add_opvars(splev, "iso",
|
|
VA_PASS3(0, tfp->name,
|
|
SPO_VAR_INIT));
|
|
tfp = tfp->next;
|
|
}
|
|
}
|
|
|
|
splev_add_from(splev, &(tmpfunc->code));
|
|
set_opvar_int(jmp, splev->n_opcodes - jmp->vardata.l);
|
|
}
|
|
l = tmpfunc->addr - splev->n_opcodes - 2;
|
|
add_opvars(splev, "iio",
|
|
VA_PASS3(nparams, l, SPO_CALL));
|
|
tmpfunc->n_called++;
|
|
} else {
|
|
lc_error("Function '%s' not defined.", yyvsp[-3].map);
|
|
}
|
|
Free(yyvsp[-3].map);
|
|
}
|
|
break;
|
|
case 130:
|
|
{
|
|
add_opcode(splev, SPO_EXIT, NULL);
|
|
}
|
|
break;
|
|
case 131:
|
|
{
|
|
yyval.i = 100;
|
|
}
|
|
break;
|
|
case 132:
|
|
{
|
|
yyval.i = yyvsp[0].i;
|
|
}
|
|
break;
|
|
case 133:
|
|
{
|
|
/* val > rn2(100) */
|
|
add_opvars(splev, "iio",
|
|
VA_PASS3((long)yyvsp[0].i, 100, SPO_RN2));
|
|
yyval.i = SPO_JG;
|
|
}
|
|
break;
|
|
case 134:
|
|
{
|
|
yyval.i = yyvsp[-2].i;
|
|
}
|
|
break;
|
|
case 135:
|
|
{
|
|
/* boolean, explicit foo != 0 */
|
|
add_opvars(splev, "i", VA_PASS1(0));
|
|
yyval.i = SPO_JNE;
|
|
}
|
|
break;
|
|
case 136:
|
|
{
|
|
is_inconstant_number = 0;
|
|
}
|
|
break;
|
|
case 137:
|
|
{
|
|
struct opvar *chkjmp;
|
|
if (in_switch_statement > 0)
|
|
lc_error("Cannot nest switch-statements.");
|
|
|
|
in_switch_statement++;
|
|
|
|
n_switch_case_list = 0;
|
|
switch_default_case = NULL;
|
|
|
|
if (!is_inconstant_number)
|
|
add_opvars(splev, "o", VA_PASS1(SPO_RN2));
|
|
is_inconstant_number = 0;
|
|
|
|
chkjmp = New(struct opvar);
|
|
set_opvar_int(chkjmp, splev->n_opcodes+1);
|
|
switch_check_jump = chkjmp;
|
|
add_opcode(splev, SPO_PUSH, chkjmp);
|
|
add_opcode(splev, SPO_JMP, NULL);
|
|
break_stmt_start();
|
|
}
|
|
break;
|
|
case 138:
|
|
{
|
|
struct opvar *endjump = New(struct opvar);
|
|
int i;
|
|
|
|
set_opvar_int(endjump, splev->n_opcodes+1);
|
|
|
|
add_opcode(splev, SPO_PUSH, endjump);
|
|
add_opcode(splev, SPO_JMP, NULL);
|
|
|
|
set_opvar_int(switch_check_jump,
|
|
splev->n_opcodes - switch_check_jump->vardata.l);
|
|
|
|
for (i = 0; i < n_switch_case_list; i++) {
|
|
add_opvars(splev, "oio",
|
|
VA_PASS3(SPO_COPY,
|
|
switch_case_value[i], SPO_CMP));
|
|
set_opvar_int(switch_case_list[i],
|
|
switch_case_list[i]->vardata.l - splev->n_opcodes-1);
|
|
add_opcode(splev, SPO_PUSH, switch_case_list[i]);
|
|
add_opcode(splev, SPO_JE, NULL);
|
|
}
|
|
|
|
if (switch_default_case) {
|
|
set_opvar_int(switch_default_case,
|
|
switch_default_case->vardata.l - splev->n_opcodes-1);
|
|
add_opcode(splev, SPO_PUSH, switch_default_case);
|
|
add_opcode(splev, SPO_JMP, NULL);
|
|
}
|
|
|
|
set_opvar_int(endjump, splev->n_opcodes - endjump->vardata.l);
|
|
|
|
break_stmt_end(splev);
|
|
|
|
add_opcode(splev, SPO_POP, NULL); /* get rid of the value in stack */
|
|
in_switch_statement--;
|
|
|
|
|
|
}
|
|
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_list[n_switch_case_list++] = tmppush;
|
|
} else lc_error("Too many cases in a switch.");
|
|
}
|
|
break;
|
|
case 142:
|
|
{
|
|
}
|
|
break;
|
|
case 143:
|
|
{
|
|
struct opvar *tmppush = New(struct opvar);
|
|
|
|
if (switch_default_case)
|
|
lc_error("Switch default case already used.");
|
|
|
|
set_opvar_int(tmppush, splev->n_opcodes);
|
|
switch_default_case = tmppush;
|
|
}
|
|
break;
|
|
case 144:
|
|
{
|
|
}
|
|
break;
|
|
case 145:
|
|
{
|
|
if (!allow_break_statements)
|
|
lc_error("Cannot use BREAK outside a statement block.");
|
|
else {
|
|
break_stmt_new(splev, splev->n_opcodes);
|
|
}
|
|
}
|
|
break;
|
|
case 148:
|
|
{
|
|
char buf[256], buf2[256];
|
|
|
|
if (n_forloops >= MAX_NESTED_IFS) {
|
|
lc_error("FOR: Too deeply nested loops.");
|
|
n_forloops = MAX_NESTED_IFS - 1;
|
|
}
|
|
|
|
/* first, define a variable for the for-loop end value */
|
|
Sprintf(buf, "%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);
|
|
/* 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));
|
|
|
|
/* calculate value for the loop "step" variable */
|
|
Sprintf(buf2, "%s step", yyvsp[-4].map);
|
|
/* end - start */
|
|
add_opvars(splev, "vvo",
|
|
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].jmp_point = splev->n_opcodes;
|
|
|
|
n_forloops++;
|
|
Free(yyvsp[-4].map);
|
|
}
|
|
break;
|
|
case 149:
|
|
{
|
|
/* nothing */
|
|
break_stmt_start();
|
|
}
|
|
break;
|
|
case 150:
|
|
{
|
|
char buf[256], buf2[256];
|
|
|
|
n_forloops--;
|
|
Sprintf(buf, "%s step", forloop_list[n_forloops].varname);
|
|
Sprintf(buf2, "%s end", forloop_list[n_forloops].varname);
|
|
/* compare for-loop var to end value */
|
|
add_opvars(splev, "vvo",
|
|
VA_PASS3(forloop_list[n_forloops].varname,
|
|
buf2, SPO_CMP));
|
|
/* var + step */
|
|
add_opvars(splev, "vvo",
|
|
VA_PASS3(buf, forloop_list[n_forloops].varname,
|
|
SPO_MATH_ADD));
|
|
/* for-loop var = (for-loop var + step) */
|
|
add_opvars(splev, "iso",
|
|
VA_PASS3(0, forloop_list[n_forloops].varname,
|
|
SPO_VAR_INIT));
|
|
/* jump back if compared values were not equal */
|
|
add_opvars(splev, "io",
|
|
VA_PASS2(
|
|
forloop_list[n_forloops].jmp_point - splev->n_opcodes - 1,
|
|
SPO_JNE));
|
|
Free(forloop_list[n_forloops].varname);
|
|
break_stmt_end(splev);
|
|
}
|
|
break;
|
|
case 151:
|
|
{
|
|
struct opvar *tmppush = New(struct opvar);
|
|
|
|
if (n_if_list >= MAX_NESTED_IFS) {
|
|
lc_error("LOOP: Too deeply nested conditionals.");
|
|
n_if_list = MAX_NESTED_IFS - 1;
|
|
}
|
|
set_opvar_int(tmppush, splev->n_opcodes);
|
|
if_list[n_if_list++] = tmppush;
|
|
|
|
add_opvars(splev, "o", VA_PASS1(SPO_DEC));
|
|
break_stmt_start();
|
|
}
|
|
break;
|
|
case 152:
|
|
{
|
|
struct opvar *tmppush;
|
|
|
|
add_opvars(splev, "oio", VA_PASS3(SPO_COPY, 0, SPO_CMP));
|
|
|
|
tmppush = (struct opvar *) if_list[--n_if_list];
|
|
set_opvar_int(tmppush, tmppush->vardata.l - splev->n_opcodes-1);
|
|
add_opcode(splev, SPO_PUSH, tmppush);
|
|
add_opcode(splev, SPO_JG, NULL);
|
|
add_opcode(splev, SPO_POP, NULL); /* get rid of the count value in stack */
|
|
break_stmt_end(splev);
|
|
}
|
|
break;
|
|
case 153:
|
|
{
|
|
struct opvar *tmppush2 = New(struct opvar);
|
|
|
|
if (n_if_list >= MAX_NESTED_IFS) {
|
|
lc_error("IF: Too deeply nested conditionals.");
|
|
n_if_list = MAX_NESTED_IFS - 1;
|
|
}
|
|
|
|
add_opcode(splev, SPO_CMP, NULL);
|
|
|
|
set_opvar_int(tmppush2, splev->n_opcodes+1);
|
|
|
|
if_list[n_if_list++] = tmppush2;
|
|
|
|
add_opcode(splev, SPO_PUSH, tmppush2);
|
|
|
|
add_opcode(splev, reverse_jmp_opcode( yyvsp[-1].i ), NULL);
|
|
|
|
}
|
|
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?");
|
|
}
|
|
break;
|
|
case 155:
|
|
{
|
|
struct opvar *tmppush2 = New(struct opvar);
|
|
|
|
if (n_if_list >= MAX_NESTED_IFS) {
|
|
lc_error("IF: Too deeply nested conditionals.");
|
|
n_if_list = MAX_NESTED_IFS - 1;
|
|
}
|
|
|
|
add_opcode(splev, SPO_CMP, NULL);
|
|
|
|
set_opvar_int(tmppush2, splev->n_opcodes+1);
|
|
|
|
if_list[n_if_list++] = tmppush2;
|
|
|
|
add_opcode(splev, SPO_PUSH, tmppush2);
|
|
|
|
add_opcode(splev, reverse_jmp_opcode( yyvsp[0].i ), NULL);
|
|
|
|
}
|
|
break;
|
|
case 156:
|
|
{
|
|
/* do nothing */
|
|
}
|
|
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?");
|
|
}
|
|
break;
|
|
case 158:
|
|
{
|
|
if (n_if_list > 0) {
|
|
struct opvar *tmppush = New(struct opvar);
|
|
struct opvar *tmppush2;
|
|
|
|
set_opvar_int(tmppush, splev->n_opcodes+1);
|
|
add_opcode(splev, SPO_PUSH, tmppush);
|
|
|
|
add_opcode(splev, SPO_JMP, NULL);
|
|
|
|
tmppush2 = (struct opvar *) if_list[--n_if_list];
|
|
|
|
set_opvar_int(tmppush2, splev->n_opcodes - tmppush2->vardata.l);
|
|
if_list[n_if_list++] = tmppush;
|
|
} else lc_error("IF: Huh?! No else-part address?");
|
|
}
|
|
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?");
|
|
}
|
|
break;
|
|
case 160:
|
|
{
|
|
add_opvars(splev, "o", VA_PASS1(SPO_MESSAGE));
|
|
}
|
|
break;
|
|
case 161:
|
|
{
|
|
add_opvars(splev, "iiiiiio",
|
|
VA_PASS7(-1, 0, -1, -1, -1, -1, SPO_CORRIDOR));
|
|
}
|
|
break;
|
|
case 162:
|
|
{
|
|
add_opvars(splev, "iiiiiio",
|
|
VA_PASS7(-1, yyvsp[0].i, -1, -1, -1, -1, SPO_CORRIDOR));
|
|
}
|
|
break;
|
|
case 163:
|
|
{
|
|
add_opvars(splev, "iiiiiio",
|
|
VA_PASS7(-1, -1, -1, -1, -1, -1, SPO_CORRIDOR));
|
|
}
|
|
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,
|
|
SPO_CORRIDOR));
|
|
}
|
|
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,
|
|
SPO_CORRIDOR));
|
|
}
|
|
break;
|
|
case 166:
|
|
{
|
|
yyval.corpos.room = yyvsp[-5].i;
|
|
yyval.corpos.wall = yyvsp[-3].i;
|
|
yyval.corpos.door = yyvsp[-1].i;
|
|
}
|
|
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));
|
|
}
|
|
}
|
|
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,
|
|
SPO_SUBROOM));
|
|
break_stmt_start();
|
|
}
|
|
break;
|
|
case 169:
|
|
{
|
|
break_stmt_end(splev);
|
|
add_opcode(splev, SPO_ENDROOM, NULL);
|
|
}
|
|
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));
|
|
break_stmt_start();
|
|
}
|
|
break;
|
|
case 171:
|
|
{
|
|
break_stmt_end(splev);
|
|
add_opcode(splev, SPO_ENDROOM, NULL);
|
|
}
|
|
break;
|
|
case 172:
|
|
{
|
|
yyval.i = 1;
|
|
}
|
|
break;
|
|
case 173:
|
|
{
|
|
yyval.i = yyvsp[0].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;
|
|
}
|
|
}
|
|
break;
|
|
case 175:
|
|
{
|
|
yyval.crd.x = yyval.crd.y = ERR;
|
|
}
|
|
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;
|
|
}
|
|
}
|
|
break;
|
|
case 177:
|
|
{
|
|
yyval.crd.x = yyval.crd.y = ERR;
|
|
}
|
|
break;
|
|
case 178:
|
|
{
|
|
yyval.crd.x = yyvsp[-3].i;
|
|
yyval.crd.y = yyvsp[-1].i;
|
|
}
|
|
break;
|
|
case 179:
|
|
{
|
|
yyval.crd.x = yyval.crd.y = ERR;
|
|
}
|
|
break;
|
|
case 180:
|
|
{
|
|
yyval.sze.width = yyvsp[-3].i;
|
|
yyval.sze.height = yyvsp[-1].i;
|
|
}
|
|
break;
|
|
case 181:
|
|
{
|
|
yyval.sze.height = yyval.sze.width = ERR;
|
|
}
|
|
break;
|
|
case 182:
|
|
{
|
|
/* ERR means random here */
|
|
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));
|
|
}
|
|
}
|
|
break;
|
|
case 183:
|
|
{
|
|
add_opvars(splev, "io", VA_PASS2((long)yyvsp[-2].i, SPO_DOOR));
|
|
}
|
|
break;
|
|
case 188:
|
|
{
|
|
yyval.i = yyvsp[0].i;
|
|
}
|
|
break;
|
|
case 189:
|
|
{
|
|
yyval.i = (yyvsp[-2].i | yyvsp[0].i);
|
|
}
|
|
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;
|
|
}
|
|
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);
|
|
}
|
|
break;
|
|
case 194:
|
|
{
|
|
add_opvars(splev, "ii", VA_PASS2(2, (long)yyvsp[-1].i));
|
|
scan_map(yyvsp[0].map, splev);
|
|
Free(yyvsp[0].map);
|
|
}
|
|
break;
|
|
case 199:
|
|
{
|
|
add_opvars(splev, "io", VA_PASS2(0, SPO_MONSTER));
|
|
}
|
|
break;
|
|
case 200:
|
|
{
|
|
add_opvars(splev, "io", VA_PASS2(1, SPO_MONSTER));
|
|
in_container_obj++;
|
|
break_stmt_start();
|
|
}
|
|
break;
|
|
case 201:
|
|
{
|
|
break_stmt_end(splev);
|
|
in_container_obj--;
|
|
add_opvars(splev, "o", VA_PASS1(SPO_END_MONINVENT));
|
|
}
|
|
break;
|
|
case 202:
|
|
{
|
|
/* nothing */
|
|
}
|
|
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;
|
|
}
|
|
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 );
|
|
}
|
|
break;
|
|
case 205:
|
|
{
|
|
add_opvars(splev, "i", VA_PASS1(SP_M_V_NAME));
|
|
yyval.i = 0x0001;
|
|
}
|
|
break;
|
|
case 206:
|
|
{
|
|
add_opvars(splev, "ii",
|
|
VA_PASS2((long)yyvsp[0].i, SP_M_V_PEACEFUL));
|
|
yyval.i = 0x0002;
|
|
}
|
|
break;
|
|
case 207:
|
|
{
|
|
add_opvars(splev, "ii",
|
|
VA_PASS2((long)yyvsp[0].i, SP_M_V_ASLEEP));
|
|
yyval.i = 0x0004;
|
|
}
|
|
break;
|
|
case 208:
|
|
{
|
|
add_opvars(splev, "ii",
|
|
VA_PASS2((long)yyvsp[0].i, SP_M_V_ALIGN));
|
|
yyval.i = 0x0008;
|
|
}
|
|
break;
|
|
case 209:
|
|
{
|
|
add_opvars(splev, "ii",
|
|
VA_PASS2((long)yyvsp[-1].i, SP_M_V_APPEAR));
|
|
yyval.i = 0x0010;
|
|
}
|
|
break;
|
|
case 210:
|
|
{
|
|
add_opvars(splev, "ii", VA_PASS2(1, SP_M_V_FEMALE));
|
|
yyval.i = 0x0020;
|
|
}
|
|
break;
|
|
case 211:
|
|
{
|
|
add_opvars(splev, "ii", VA_PASS2(1, SP_M_V_INVIS));
|
|
yyval.i = 0x0040;
|
|
}
|
|
break;
|
|
case 212:
|
|
{
|
|
add_opvars(splev, "ii", VA_PASS2(1, SP_M_V_CANCELLED));
|
|
yyval.i = 0x0080;
|
|
}
|
|
break;
|
|
case 213:
|
|
{
|
|
add_opvars(splev, "ii", VA_PASS2(1, SP_M_V_REVIVED));
|
|
yyval.i = 0x0100;
|
|
}
|
|
break;
|
|
case 214:
|
|
{
|
|
add_opvars(splev, "ii", VA_PASS2(1, SP_M_V_AVENGE));
|
|
yyval.i = 0x0200;
|
|
}
|
|
break;
|
|
case 215:
|
|
{
|
|
add_opvars(splev, "i", VA_PASS1(SP_M_V_FLEEING));
|
|
yyval.i = 0x0400;
|
|
}
|
|
break;
|
|
case 216:
|
|
{
|
|
add_opvars(splev, "i", VA_PASS1(SP_M_V_BLINDED));
|
|
yyval.i = 0x0800;
|
|
}
|
|
break;
|
|
case 217:
|
|
{
|
|
add_opvars(splev, "i", VA_PASS1(SP_M_V_PARALYZED));
|
|
yyval.i = 0x1000;
|
|
}
|
|
break;
|
|
case 218:
|
|
{
|
|
add_opvars(splev, "ii", VA_PASS2(1, SP_M_V_STUNNED));
|
|
yyval.i = 0x2000;
|
|
}
|
|
break;
|
|
case 219:
|
|
{
|
|
add_opvars(splev, "ii", VA_PASS2(1, SP_M_V_CONFUSED));
|
|
yyval.i = 0x4000;
|
|
}
|
|
break;
|
|
case 220:
|
|
{
|
|
add_opvars(splev, "ii",
|
|
VA_PASS2((long)yyvsp[0].i, SP_M_V_SEENTRAPS));
|
|
yyval.i = 0x8000;
|
|
}
|
|
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));
|
|
}
|
|
break;
|
|
case 222:
|
|
{
|
|
yyval.i = (long) ~0;
|
|
}
|
|
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);
|
|
|
|
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);
|
|
}
|
|
break;
|
|
case 224:
|
|
{
|
|
long cnt = 0;
|
|
if (in_container_obj) cnt |= SP_OBJ_CONTENT;
|
|
add_opvars(splev, "io", VA_PASS2(cnt, SPO_OBJECT));
|
|
}
|
|
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();
|
|
}
|
|
break;
|
|
case 226:
|
|
{
|
|
break_stmt_end(splev);
|
|
in_container_obj--;
|
|
add_opcode(splev, SPO_POP_CONTAINER, NULL);
|
|
}
|
|
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)
|
|
lc_error("Object needs a coord when not contained.");
|
|
}
|
|
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;
|
|
}
|
|
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 );
|
|
}
|
|
break;
|
|
case 230:
|
|
{
|
|
add_opvars(splev, "ii",
|
|
VA_PASS2((long)yyvsp[0].i, SP_O_V_CURSE));
|
|
yyval.i = 0x0001;
|
|
}
|
|
break;
|
|
case 231:
|
|
{
|
|
add_opvars(splev, "i", VA_PASS1(SP_O_V_CORPSENM));
|
|
yyval.i = 0x0002;
|
|
}
|
|
break;
|
|
case 232:
|
|
{
|
|
add_opvars(splev, "i", VA_PASS1(SP_O_V_SPE));
|
|
yyval.i = 0x0004;
|
|
}
|
|
break;
|
|
case 233:
|
|
{
|
|
add_opvars(splev, "i", VA_PASS1(SP_O_V_NAME));
|
|
yyval.i = 0x0008;
|
|
}
|
|
break;
|
|
case 234:
|
|
{
|
|
add_opvars(splev, "i", VA_PASS1(SP_O_V_QUAN));
|
|
yyval.i = 0x0010;
|
|
}
|
|
break;
|
|
case 235:
|
|
{
|
|
add_opvars(splev, "ii", VA_PASS2(1, SP_O_V_BURIED));
|
|
yyval.i = 0x0020;
|
|
}
|
|
break;
|
|
case 236:
|
|
{
|
|
add_opvars(splev, "ii", VA_PASS2((long)yyvsp[0].i, SP_O_V_LIT));
|
|
yyval.i = 0x0040;
|
|
}
|
|
break;
|
|
case 237:
|
|
{
|
|
add_opvars(splev, "i", VA_PASS1(SP_O_V_ERODED));
|
|
yyval.i = 0x0080;
|
|
}
|
|
break;
|
|
case 238:
|
|
{
|
|
add_opvars(splev, "ii", VA_PASS2(-1, SP_O_V_ERODED));
|
|
yyval.i = 0x0080;
|
|
}
|
|
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) {
|
|
add_opvars(splev, "ii", VA_PASS2(1, SP_O_V_BROKEN));
|
|
yyval.i = 0x0200;
|
|
} else
|
|
lc_error("DOOR state can only be locked or broken.");
|
|
}
|
|
break;
|
|
case 240:
|
|
{
|
|
add_opvars(splev, "ii", VA_PASS2(yyvsp[0].i, SP_O_V_TRAPPED));
|
|
yyval.i = 0x0400;
|
|
}
|
|
break;
|
|
case 241:
|
|
{
|
|
add_opvars(splev, "i", VA_PASS1(SP_O_V_RECHARGED));
|
|
yyval.i = 0x0800;
|
|
}
|
|
break;
|
|
case 242:
|
|
{
|
|
add_opvars(splev, "ii", VA_PASS2(1, SP_O_V_INVIS));
|
|
yyval.i = 0x1000;
|
|
}
|
|
break;
|
|
case 243:
|
|
{
|
|
add_opvars(splev, "ii", VA_PASS2(1, SP_O_V_GREASED));
|
|
yyval.i = 0x2000;
|
|
}
|
|
break;
|
|
case 244:
|
|
{
|
|
add_opvars(splev, "i", VA_PASS1(SP_O_V_COORD));
|
|
yyval.i = 0x4000;
|
|
}
|
|
break;
|
|
case 245:
|
|
{
|
|
add_opvars(splev, "io", VA_PASS2((long)yyvsp[-2].i, SPO_TRAP));
|
|
}
|
|
break;
|
|
case 246:
|
|
{
|
|
long dir, state = 0;
|
|
|
|
/* convert dir from a DIRECTION to a DB_DIR */
|
|
dir = yyvsp[-2].i;
|
|
switch (dir) {
|
|
case W_NORTH: dir = DB_NORTH; break;
|
|
case W_SOUTH: dir = DB_SOUTH; break;
|
|
case W_EAST: dir = DB_EAST; break;
|
|
case W_WEST: dir = DB_WEST; break;
|
|
default:
|
|
lc_error("Invalid drawbridge direction.");
|
|
break;
|
|
}
|
|
|
|
if ( yyvsp[0].i == D_ISOPEN )
|
|
state = 1;
|
|
else if ( yyvsp[0].i == D_CLOSED )
|
|
state = 0;
|
|
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));
|
|
}
|
|
break;
|
|
case 247:
|
|
{
|
|
add_opvars(splev, "iiio",
|
|
VA_PASS4((long)yyvsp[0].i, 1, 0, SPO_MAZEWALK));
|
|
}
|
|
break;
|
|
case 248:
|
|
{
|
|
add_opvars(splev, "iiio",
|
|
VA_PASS4((long)yyvsp[-3].i, (long)yyvsp[-1].i,
|
|
(long)yyvsp[0].i, SPO_MAZEWALK));
|
|
}
|
|
break;
|
|
case 249:
|
|
{
|
|
add_opvars(splev, "rio",
|
|
VA_PASS3(SP_REGION_PACK(-1,-1,-1,-1),
|
|
0, SPO_WALLIFY));
|
|
}
|
|
break;
|
|
case 250:
|
|
{
|
|
add_opvars(splev, "io", VA_PASS2(1, SPO_WALLIFY));
|
|
}
|
|
break;
|
|
case 251:
|
|
{
|
|
add_opvars(splev, "io",
|
|
VA_PASS2((long)yyvsp[0].i, SPO_LADDER));
|
|
}
|
|
break;
|
|
case 252:
|
|
{
|
|
add_opvars(splev, "io",
|
|
VA_PASS2((long)yyvsp[0].i, SPO_STAIR));
|
|
}
|
|
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),
|
|
0, (char *) 0, SPO_LEVREGION));
|
|
}
|
|
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);
|
|
}
|
|
break;
|
|
case 255:
|
|
{
|
|
long rtyp = 0;
|
|
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,
|
|
rtyp, 0, (char *)0, SPO_LEVREGION));
|
|
}
|
|
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,
|
|
(long) LR_BRANCH, 0,
|
|
(char *) 0, SPO_LEVREGION));
|
|
}
|
|
break;
|
|
case 257:
|
|
{
|
|
yyval.i = -1;
|
|
}
|
|
break;
|
|
case 258:
|
|
{
|
|
yyval.i = yyvsp[0].i;
|
|
}
|
|
break;
|
|
case 259:
|
|
{
|
|
add_opvars(splev, "o", VA_PASS1(SPO_FOUNTAIN));
|
|
}
|
|
break;
|
|
case 260:
|
|
{
|
|
add_opvars(splev, "o", VA_PASS1(SPO_SINK));
|
|
}
|
|
break;
|
|
case 261:
|
|
{
|
|
add_opvars(splev, "o", VA_PASS1(SPO_POOL));
|
|
}
|
|
break;
|
|
case 262:
|
|
{
|
|
yyval.terr.lit = -2;
|
|
yyval.terr.ter = what_map_char((char) yyvsp[0].i);
|
|
}
|
|
break;
|
|
case 263:
|
|
{
|
|
yyval.terr.lit = yyvsp[-1].i;
|
|
yyval.terr.ter = what_map_char((char) yyvsp[-3].i);
|
|
}
|
|
break;
|
|
case 264:
|
|
{
|
|
add_opvars(splev, "io",
|
|
VA_PASS2(yyvsp[0].i, SPO_REPLACETERRAIN));
|
|
}
|
|
break;
|
|
case 265:
|
|
{
|
|
add_opvars(splev, "o", VA_PASS1(SPO_TERRAIN));
|
|
}
|
|
break;
|
|
case 266:
|
|
{
|
|
add_opvars(splev, "o", VA_PASS1(SPO_NON_DIGGABLE));
|
|
}
|
|
break;
|
|
case 267:
|
|
{
|
|
add_opvars(splev, "o", VA_PASS1(SPO_NON_PASSWALL));
|
|
}
|
|
break;
|
|
case 268:
|
|
{
|
|
long irr;
|
|
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);
|
|
break_stmt_start();
|
|
}
|
|
break;
|
|
case 269:
|
|
{
|
|
break_stmt_end(splev);
|
|
if ( yyvsp[-1].i ) {
|
|
add_opcode(splev, SPO_ENDROOM, NULL);
|
|
} else if ( yyvsp[0].i )
|
|
lc_error("Cannot use lev statements in non-permanent REGION");
|
|
}
|
|
break;
|
|
case 270:
|
|
{
|
|
yyval.i = 0;
|
|
}
|
|
break;
|
|
case 271:
|
|
{
|
|
yyval.i = yyvsp[0].i;
|
|
}
|
|
break;
|
|
case 272:
|
|
{
|
|
add_opvars(splev, "iio",
|
|
VA_PASS3((long)yyvsp[0].i, (long)yyvsp[-2].i, SPO_ALTAR));
|
|
}
|
|
break;
|
|
case 273:
|
|
{
|
|
add_opvars(splev, "io", VA_PASS2(2, SPO_GRAVE));
|
|
}
|
|
break;
|
|
case 274:
|
|
{
|
|
add_opvars(splev, "sio",
|
|
VA_PASS3((char *)0, 1, SPO_GRAVE));
|
|
}
|
|
break;
|
|
case 275:
|
|
{
|
|
add_opvars(splev, "sio",
|
|
VA_PASS3((char *)0, 0, SPO_GRAVE));
|
|
}
|
|
break;
|
|
case 276:
|
|
{
|
|
add_opvars(splev, "o", VA_PASS1(SPO_GOLD));
|
|
}
|
|
break;
|
|
case 277:
|
|
{
|
|
add_opvars(splev, "io",
|
|
VA_PASS2((long)yyvsp[-2].i, SPO_ENGRAVING));
|
|
}
|
|
break;
|
|
case 278:
|
|
{
|
|
add_opvars(splev, "o", VA_PASS1(SPO_MINERALIZE));
|
|
}
|
|
break;
|
|
case 279:
|
|
{
|
|
add_opvars(splev, "iiiio",
|
|
VA_PASS5(-1L, -1L, -1L, -1L, SPO_MINERALIZE));
|
|
}
|
|
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);
|
|
}
|
|
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;
|
|
} else
|
|
yyval.i = token;
|
|
Free(yyvsp[0].map);
|
|
}
|
|
break;
|
|
case 284:
|
|
{
|
|
yyval.i = -1;
|
|
}
|
|
break;
|
|
case 285:
|
|
{
|
|
yyval.i = yyvsp[0].i;
|
|
}
|
|
break;
|
|
case 286:
|
|
{
|
|
yyval.i = yyvsp[0].i;
|
|
}
|
|
break;
|
|
case 287:
|
|
{
|
|
yyval.i = yyvsp[-2].i | yyvsp[0].i;
|
|
}
|
|
break;
|
|
case 288:
|
|
{
|
|
yyval.i = (yyvsp[0].i << 0);
|
|
}
|
|
break;
|
|
case 289:
|
|
{
|
|
yyval.i = (yyvsp[0].i << 1);
|
|
}
|
|
break;
|
|
case 290:
|
|
{
|
|
yyval.i = (yyvsp[0].i << 2);
|
|
}
|
|
break;
|
|
case 297:
|
|
{
|
|
yyval.i = - MAX_REGISTERS - 1;
|
|
}
|
|
break;
|
|
case 300:
|
|
{
|
|
yyval.i = - MAX_REGISTERS - 1;
|
|
}
|
|
break;
|
|
case 303:
|
|
{
|
|
if ( yyvsp[-1].i >= 3 )
|
|
lc_error("Register Index overflow!");
|
|
else
|
|
yyval.i = - yyvsp[-1].i - 1;
|
|
}
|
|
break;
|
|
case 304:
|
|
{
|
|
add_opvars(splev, "s", 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);
|
|
}
|
|
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);
|
|
}
|
|
break;
|
|
case 307:
|
|
{
|
|
/* nothing */
|
|
}
|
|
break;
|
|
case 308:
|
|
{
|
|
add_opvars(splev, "c", VA_PASS1(yyvsp[0].i));
|
|
}
|
|
break;
|
|
case 309:
|
|
{
|
|
add_opvars(splev, "o", VA_PASS1(SPO_SEL_RNDCOORD));
|
|
}
|
|
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);
|
|
}
|
|
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);
|
|
}
|
|
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);
|
|
}
|
|
break;
|
|
case 313:
|
|
{
|
|
yyval.i = SP_COORD_PACK_RANDOM(0);
|
|
}
|
|
break;
|
|
case 314:
|
|
{
|
|
yyval.i = SP_COORD_PACK_RANDOM( yyvsp[-1].i );
|
|
}
|
|
break;
|
|
case 315:
|
|
{
|
|
yyval.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);
|
|
}
|
|
break;
|
|
case 317:
|
|
{
|
|
/* nothing */
|
|
}
|
|
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);
|
|
}
|
|
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);
|
|
}
|
|
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;
|
|
}
|
|
break;
|
|
case 321:
|
|
{
|
|
add_opvars(splev, "m", VA_PASS1(yyvsp[0].i));
|
|
}
|
|
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);
|
|
}
|
|
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);
|
|
}
|
|
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);
|
|
}
|
|
}
|
|
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);
|
|
}
|
|
}
|
|
break;
|
|
case 326:
|
|
{
|
|
add_opvars(splev, "M", VA_PASS1(yyvsp[0].i));
|
|
}
|
|
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);
|
|
}
|
|
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);
|
|
}
|
|
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;
|
|
} else
|
|
yyval.i = SP_MONST_PACK(m,
|
|
def_monsyms[(int) mons[m].mlet].sym);
|
|
Free(yyvsp[0].map);
|
|
}
|
|
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;
|
|
}
|
|
}
|
|
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;
|
|
} else
|
|
yyval.i = SP_MONST_PACK(m, yyvsp[-3].i);
|
|
Free(yyvsp[-1].map);
|
|
}
|
|
break;
|
|
case 332:
|
|
{
|
|
yyval.i = -1;
|
|
}
|
|
break;
|
|
case 333:
|
|
{
|
|
add_opvars(splev, "O", VA_PASS1(yyvsp[0].i));
|
|
}
|
|
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);
|
|
}
|
|
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);
|
|
}
|
|
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;
|
|
} else
|
|
yyval.i = SP_OBJ_PACK(m, 1); /* obj class != 0 to force generation of a specific item */
|
|
Free(yyvsp[0].map);
|
|
}
|
|
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;
|
|
}
|
|
}
|
|
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;
|
|
} else
|
|
yyval.i = SP_OBJ_PACK(m, yyvsp[-3].i);
|
|
Free(yyvsp[-1].map);
|
|
}
|
|
break;
|
|
case 339:
|
|
{
|
|
yyval.i = -1;
|
|
}
|
|
break;
|
|
case 340:
|
|
{ }
|
|
break;
|
|
case 341:
|
|
{
|
|
add_opvars(splev, "o", VA_PASS1(SPO_MATH_ADD));
|
|
}
|
|
break;
|
|
case 342:
|
|
{
|
|
add_opvars(splev, "i", VA_PASS1(yyvsp[0].i));
|
|
}
|
|
break;
|
|
case 343:
|
|
{
|
|
is_inconstant_number = 1;
|
|
}
|
|
break;
|
|
case 344:
|
|
{
|
|
add_opvars(splev, "i", VA_PASS1(yyvsp[-1].i));
|
|
}
|
|
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;
|
|
}
|
|
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);
|
|
is_inconstant_number = 1;
|
|
}
|
|
break;
|
|
case 347:
|
|
{
|
|
add_opvars(splev, "o", VA_PASS1(SPO_MATH_ADD));
|
|
}
|
|
break;
|
|
case 348:
|
|
{
|
|
add_opvars(splev, "o", VA_PASS1(SPO_MATH_SUB));
|
|
}
|
|
break;
|
|
case 349:
|
|
{
|
|
add_opvars(splev, "o", VA_PASS1(SPO_MATH_MUL));
|
|
}
|
|
break;
|
|
case 350:
|
|
{
|
|
add_opvars(splev, "o", VA_PASS1(SPO_MATH_DIV));
|
|
}
|
|
break;
|
|
case 351:
|
|
{
|
|
add_opvars(splev, "o", VA_PASS1(SPO_MATH_MOD));
|
|
}
|
|
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);
|
|
}
|
|
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);
|
|
}
|
|
break;
|
|
case 355:
|
|
{
|
|
struct lc_funcdefs_parm *tmp = New(struct lc_funcdefs_parm);
|
|
|
|
if (!curr_function) {
|
|
lc_error("Function parameters outside function definition.");
|
|
} else if (!tmp) {
|
|
lc_error("Could not alloc function params.");
|
|
} else {
|
|
long vt = SPOVAR_NULL;
|
|
|
|
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++;
|
|
switch (tmp->parmtype) {
|
|
case 'i':
|
|
vt = SPOVAR_INT;
|
|
break;
|
|
case 's':
|
|
vt = SPOVAR_STRING;
|
|
break;
|
|
default:
|
|
lc_error("Unknown func param conversion.");
|
|
break;
|
|
}
|
|
variable_definitions = add_vardef_type(
|
|
variable_definitions,
|
|
yyvsp[-2].map, vt);
|
|
}
|
|
Free(yyvsp[-2].map);
|
|
}
|
|
break;
|
|
case 360:
|
|
{
|
|
yyval.i = (int)'i';
|
|
}
|
|
break;
|
|
case 361:
|
|
{
|
|
yyval.i = (int)'s';
|
|
}
|
|
break;
|
|
case 362:
|
|
{
|
|
char tmpbuf[2];
|
|
tmpbuf[0] = (char) yyvsp[0].i;
|
|
tmpbuf[1] = '\0';
|
|
yyval.map = strdup(tmpbuf);
|
|
}
|
|
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;
|
|
}
|
|
break;
|
|
case 364:
|
|
{
|
|
yyval.map = strdup("");
|
|
}
|
|
break;
|
|
case 365:
|
|
{
|
|
char *tmp = strdup( yyvsp[0].map );
|
|
Free( yyvsp[0].map );
|
|
yyval.map = tmp;
|
|
}
|
|
break;
|
|
case 366:
|
|
{
|
|
add_opvars(splev, "o", VA_PASS1(SPO_SEL_POINT));
|
|
}
|
|
break;
|
|
case 367:
|
|
{
|
|
add_opvars(splev, "o", VA_PASS1(SPO_SEL_RECT));
|
|
}
|
|
break;
|
|
case 368:
|
|
{
|
|
add_opvars(splev, "o", VA_PASS1(SPO_SEL_FILLRECT));
|
|
}
|
|
break;
|
|
case 369:
|
|
{
|
|
add_opvars(splev, "o", VA_PASS1(SPO_SEL_LINE));
|
|
}
|
|
break;
|
|
case 370:
|
|
{
|
|
/* randline (x1,y1),(x2,y2), roughness */
|
|
add_opvars(splev, "o", VA_PASS1(SPO_SEL_RNDLINE));
|
|
}
|
|
break;
|
|
case 371:
|
|
{
|
|
add_opvars(splev, "io", VA_PASS2(W_ANY, SPO_SEL_GROW));
|
|
}
|
|
break;
|
|
case 372:
|
|
{
|
|
add_opvars(splev, "io", VA_PASS2(yyvsp[-3].i, SPO_SEL_GROW));
|
|
}
|
|
break;
|
|
case 373:
|
|
{
|
|
add_opvars(splev, "iio",
|
|
VA_PASS3(yyvsp[-3].i, SPOFILTER_PERCENT, SPO_SEL_FILTER));
|
|
}
|
|
break;
|
|
case 374:
|
|
{
|
|
add_opvars(splev, "io",
|
|
VA_PASS2(SPOFILTER_SELECTION, SPO_SEL_FILTER));
|
|
}
|
|
break;
|
|
case 375:
|
|
{
|
|
add_opvars(splev, "io",
|
|
VA_PASS2(SPOFILTER_MAPCHAR, SPO_SEL_FILTER));
|
|
}
|
|
break;
|
|
case 376:
|
|
{
|
|
add_opvars(splev, "o", VA_PASS1(SPO_SEL_FLOOD));
|
|
}
|
|
break;
|
|
case 377:
|
|
{
|
|
add_opvars(splev, "oio",
|
|
VA_PASS3(SPO_COPY, 1, SPO_SEL_ELLIPSE));
|
|
}
|
|
break;
|
|
case 378:
|
|
{
|
|
add_opvars(splev, "oio",
|
|
VA_PASS3(SPO_COPY, yyvsp[-1].i, SPO_SEL_ELLIPSE));
|
|
}
|
|
break;
|
|
case 379:
|
|
{
|
|
add_opvars(splev, "io", VA_PASS2(1, SPO_SEL_ELLIPSE));
|
|
}
|
|
break;
|
|
case 380:
|
|
{
|
|
add_opvars(splev, "io", VA_PASS2(yyvsp[-1].i, SPO_SEL_ELLIPSE));
|
|
}
|
|
break;
|
|
case 381:
|
|
{
|
|
add_opvars(splev, "iio",
|
|
VA_PASS3(yyvsp[-5].i, yyvsp[-11].i, SPO_SEL_GRADIENT));
|
|
}
|
|
break;
|
|
case 382:
|
|
{
|
|
add_opvars(splev, "o", VA_PASS1(SPO_SEL_COMPLEMENT));
|
|
}
|
|
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);
|
|
}
|
|
break;
|
|
case 384:
|
|
{
|
|
/* nothing */
|
|
}
|
|
break;
|
|
case 385:
|
|
{
|
|
/* nothing */
|
|
}
|
|
break;
|
|
case 386:
|
|
{
|
|
add_opvars(splev, "o", VA_PASS1(SPO_SEL_ADD));
|
|
}
|
|
break;
|
|
case 387:
|
|
{
|
|
add_opvars(splev, "iio",
|
|
VA_PASS3(yyvsp[0].dice.num, yyvsp[0].dice.die, SPO_DICE));
|
|
}
|
|
break;
|
|
case 391:
|
|
{
|
|
add_opvars(splev, "i", VA_PASS1(yyvsp[0].i));
|
|
}
|
|
break;
|
|
case 392:
|
|
{
|
|
add_opvars(splev, "i", VA_PASS1(yyvsp[0].i));
|
|
}
|
|
break;
|
|
case 393:
|
|
{
|
|
add_opvars(splev, "i", VA_PASS1(yyvsp[0].i));
|
|
}
|
|
break;
|
|
case 394:
|
|
{
|
|
/* nothing */
|
|
}
|
|
break;
|
|
case 403:
|
|
{
|
|
yyval.lregn = yyvsp[0].lregn;
|
|
}
|
|
break;
|
|
case 404:
|
|
{
|
|
if (yyvsp[-7].i <= 0 || yyvsp[-7].i >= COLNO)
|
|
lc_error(
|
|
"Region (%ld,%ld,%ld,%ld) 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 (%ld,%ld,%ld,%ld) 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 (%ld,%ld,%ld,%ld) 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 (%ld,%ld,%ld,%ld) 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 (%ld,%ld,%ld,%ld) 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 (%ld,%ld,%ld,%ld) 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 (%ld,%ld,%ld,%ld) 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 (%ld,%ld,%ld,%ld) 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;
|
|
}
|
|
yyssp -= yym;
|
|
yystate = *yyssp;
|
|
yyvsp -= yym;
|
|
yym = yylhs[yyn];
|
|
if (yystate == 0 && yym == 0)
|
|
{
|
|
#if YYDEBUG
|
|
if (yydebug)
|
|
printf("%sdebug: after reduction, shifting from state 0 to\
|
|
state %d\n", YYPREFIX, YYFINAL);
|
|
#endif
|
|
yystate = YYFINAL;
|
|
*++yyssp = YYFINAL;
|
|
*++yyvsp = yyval;
|
|
if (yychar < 0)
|
|
{
|
|
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, YYFINAL, yychar, yys);
|
|
}
|
|
#endif
|
|
}
|
|
if (yychar == 0) goto yyaccept;
|
|
goto yyloop;
|
|
}
|
|
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
|
|
if (yyssp >= yyss + yystacksize - 1)
|
|
{
|
|
goto yyoverflow;
|
|
}
|
|
*++yyssp = yystate;
|
|
*++yyvsp = yyval;
|
|
goto yyloop;
|
|
yyoverflow:
|
|
yyerror("yacc stack overflow");
|
|
yyabort:
|
|
return (1);
|
|
yyaccept:
|
|
return (0);
|
|
}
|