pp/src/flex-bison/y.tab.c
/* A Bison parser, made by GNU Bison 2.0. */
/* Skeleton parser for Yacc-like parsing with Bison,
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* As a special exception, when this file is copied by Bison into a
Bison output file, you may use that output file without restriction.
This special exception was added by the Free Software Foundation
in version 1.24 of Bison. */
/* Written by Richard Stallman by simplifying the original so called
``semantic'' parser. */
/* All symbols defined below should begin with yy or YY, to avoid
infringing on user name space. This should be done even for local
variables, as they might otherwise be expanded by user macros.
There are some unavoidable exceptions within include files to
define necessary library symbols; they are noted "INFRINGES ON
USER NAME SPACE" below. */
#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
#define YYSIZE_T size_t
/* Identify Bison output. */
#define YYBISON 1
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
/* Pure parsers. */
#define YYPURE 0
/* Using locations. */
#define YYLSP_NEEDED 0
/* Tokens. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
/* Put the tokens into the symbol table, so that GDB and other debuggers
know about them. */
enum yytokentype {
ENDOFFILE = 0,
AMPERSAND = 258,
ASSIGN = 259,
ASTERISK = 260,
BAR = 261,
COLON = 262,
COMMA = 263,
DOT = 264,
DOTDOT = 265,
EQUAL = 266,
GREATER = 267,
GREQUAL = 268,
LESS = 269,
LSEQUAL = 270,
MINUS = 271,
SHARP = 272,
PLUS = 273,
RARROW = 274,
RPRAGMA = 275,
RBRACE = 276,
RBRACKET = 277,
RPAREN = 278,
SEMICOLON = 279,
SLASH = 280,
SUBTYPE = 281,
UPARROW = 282,
LPAREN = 283,
LBRACKET = 284,
LBRACE = 285,
IDENT = 286,
CARD_CONST = 287,
REAL_CONST = 288,
CHAR_CONST = 289,
STR_CONST = 290,
PR_EXTERNAL = 291,
PR_INLINE = 292,
PR_OBSOLETE = 293,
PR_UNUSED = 294,
PR_FATAL = 295,
PR_NOWARN = 296,
PR_ASSERT = 297,
PR_TRACE = 298,
PR_LINE = 299,
PR_PRAGMA = 300,
PR_CALLBACK = 301,
PR_LL = 302,
PR_LLsup = 303,
PR_EXPORTED = 304,
PR_SPEC = 305,
PR_LOOPINV = 306,
IDENTPRIME = 307,
UPARROWPRIME = 308,
ALL = 309,
AXIOM = 310,
DEPEND = 311,
ENSURES = 312,
EXISTS = 313,
FUNC = 314,
IFF = 315,
IMPLIES = 316,
INVARIANT = 317,
IS = 318,
LET = 319,
MAP = 320,
MODIFIES = 321,
ON = 322,
PRED = 323,
PROTECT = 324,
ABSTRACT = 325,
REQUIRES = 326,
AND = 327,
ANY = 328,
ARRAY = 329,
AS = 330,
BGN = 331,
BITS = 332,
BRANDED = 333,
BY = 334,
CASE = 335,
CONST = 336,
DIV = 337,
DO = 338,
ELSE = 339,
ELSIF = 340,
END = 341,
EVAL = 342,
EXCEPT = 343,
EXCEPTION = 344,
EXIT = 345,
EXPORTS = 346,
FINALLY = 347,
FOR = 348,
FROM = 349,
GENERIC = 350,
IF = 351,
IMPORT = 352,
IN = 353,
INTERFACE = 354,
LOCK = 355,
LOOP = 356,
METHODS = 357,
MOD = 358,
MODULE = 359,
NOT = 360,
OBJECT = 361,
OF = 362,
OR = 363,
OVERRIDES = 364,
PROCEDURE = 365,
RAISE = 366,
RAISES = 367,
READONLY = 368,
RECORD = 369,
REF = 370,
REPEAT = 371,
RETURN = 372,
REVEAL = 373,
ROOT = 374,
SET = 375,
THEN = 376,
TO = 377,
TRY = 378,
TYPE = 379,
TYPECASE = 380,
UNSAFE = 381,
UNTIL = 382,
UNTRACED = 383,
VALUE = 384,
VAR = 385,
WHILE = 386,
WITH = 387,
BAD = 388,
WHITESPACE = 389,
MODUNIT = 390,
DEFUNIT = 391
};
#endif
#define ENDOFFILE 0
#define AMPERSAND 258
#define ASSIGN 259
#define ASTERISK 260
#define BAR 261
#define COLON 262
#define COMMA 263
#define DOT 264
#define DOTDOT 265
#define EQUAL 266
#define GREATER 267
#define GREQUAL 268
#define LESS 269
#define LSEQUAL 270
#define MINUS 271
#define SHARP 272
#define PLUS 273
#define RARROW 274
#define RPRAGMA 275
#define RBRACE 276
#define RBRACKET 277
#define RPAREN 278
#define SEMICOLON 279
#define SLASH 280
#define SUBTYPE 281
#define UPARROW 282
#define LPAREN 283
#define LBRACKET 284
#define LBRACE 285
#define IDENT 286
#define CARD_CONST 287
#define REAL_CONST 288
#define CHAR_CONST 289
#define STR_CONST 290
#define PR_EXTERNAL 291
#define PR_INLINE 292
#define PR_OBSOLETE 293
#define PR_UNUSED 294
#define PR_FATAL 295
#define PR_NOWARN 296
#define PR_ASSERT 297
#define PR_TRACE 298
#define PR_LINE 299
#define PR_PRAGMA 300
#define PR_CALLBACK 301
#define PR_LL 302
#define PR_LLsup 303
#define PR_EXPORTED 304
#define PR_SPEC 305
#define PR_LOOPINV 306
#define IDENTPRIME 307
#define UPARROWPRIME 308
#define ALL 309
#define AXIOM 310
#define DEPEND 311
#define ENSURES 312
#define EXISTS 313
#define FUNC 314
#define IFF 315
#define IMPLIES 316
#define INVARIANT 317
#define IS 318
#define LET 319
#define MAP 320
#define MODIFIES 321
#define ON 322
#define PRED 323
#define PROTECT 324
#define ABSTRACT 325
#define REQUIRES 326
#define AND 327
#define ANY 328
#define ARRAY 329
#define AS 330
#define BGN 331
#define BITS 332
#define BRANDED 333
#define BY 334
#define CASE 335
#define CONST 336
#define DIV 337
#define DO 338
#define ELSE 339
#define ELSIF 340
#define END 341
#define EVAL 342
#define EXCEPT 343
#define EXCEPTION 344
#define EXIT 345
#define EXPORTS 346
#define FINALLY 347
#define FOR 348
#define FROM 349
#define GENERIC 350
#define IF 351
#define IMPORT 352
#define IN 353
#define INTERFACE 354
#define LOCK 355
#define LOOP 356
#define METHODS 357
#define MOD 358
#define MODULE 359
#define NOT 360
#define OBJECT 361
#define OF 362
#define OR 363
#define OVERRIDES 364
#define PROCEDURE 365
#define RAISE 366
#define RAISES 367
#define READONLY 368
#define RECORD 369
#define REF 370
#define REPEAT 371
#define RETURN 372
#define REVEAL 373
#define ROOT 374
#define SET 375
#define THEN 376
#define TO 377
#define TRY 378
#define TYPE 379
#define TYPECASE 380
#define UNSAFE 381
#define UNTIL 382
#define UNTRACED 383
#define VALUE 384
#define VAR 385
#define WHILE 386
#define WITH 387
#define BAD 388
#define WHITESPACE 389
#define MODUNIT 390
#define DEFUNIT 391
/* Copy the first part of user declarations. */
#line 92 "../Parse.yacc"
#define lexbufsize 500
char lexbuf[2 * lexbufsize];
int lexptr = 0;
int lexposition = 0;
/* See BufferLexeme and AddLexLength in Parse.lex */
char *infileName = NULL;
/* initialized by initParser, needed for error message */
int comdepth = 0;
/* depth of comments, used only by lexer. */
int pragdepth = 0;
/* depth of pragmas, used only by lexer. */
int depth = 0;
/* depth of nesting in blocks, used by NPS for formatting comments */
int blanklinep;
/* Set by NPS if the non-program-sequence that it parses ends
with a blank line. */
int calledFromEmacs;
/* set to one by main if called from Emacs, to zero otherwise */
int capSwitch;
/* 1 if -cap switch was set, 0 otherwise. */
int callspace;
/* 1 if -callspace switch was set, 0 otherwise */
char *formatter;
/* the opaque Formatter.T object */
double offset = 2.0;
/* indentation */
int alignDecls = 1;
/* True if we should use alignment code for declarations. */
int breakType;
/* Style of optimal breaks to use. */
double commentCol;
/* Where comments go. */
int comBreakNLs;
/* how many NLs before HandleComments bails out the first time */
typedef struct {
char *body;
char *keyword;
char *builtinID;
char *procName;
char *comment;
char *fixedComment;
char *fixed;
} FontInfo;
FontInfo *fonts; /* various opaque fonts */
double fixedCommentSpaceWidth;
#define MAXWIDTH (1.0E20)
/* Width of a space in various fonts. */
double bodySpaceWidth;
double commentLeaderWidth;
typedef long STYLE;
#define SRC_STYLE 0
#define EM_STYLE 1
STYLE style = SRC_STYLE;
typedef enum {NonOptimal, OptimalBreak, OptimalNoBreak} Formatter_BreakType;
/* Enabling traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
/* Enabling verbose error messages. */
#ifdef YYERROR_VERBOSE
# undef YYERROR_VERBOSE
# define YYERROR_VERBOSE 1
#else
# define YYERROR_VERBOSE 0
#endif
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
typedef int YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
#endif
/* Copy the second part of user declarations. */
/* Line 213 of yacc.c. */
#line 441 "y.tab.c"
#if ! defined (yyoverflow) || YYERROR_VERBOSE
# ifndef YYFREE
# define YYFREE free
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
# endif
/* The parser invokes alloca or malloc; define the necessary symbols. */
# ifdef YYSTACK_USE_ALLOCA
# if YYSTACK_USE_ALLOCA
# ifdef __GNUC__
# define YYSTACK_ALLOC __builtin_alloca
# else
# define YYSTACK_ALLOC alloca
# endif
# endif
# endif
# ifdef YYSTACK_ALLOC
/* Pacify GCC's `empty if-body' warning. */
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
# else
# define YYSTACK_ALLOC YYMALLOC
# define YYSTACK_FREE YYFREE
# endif
#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
#if (! defined (yyoverflow) \
&& (! defined (__cplusplus) \
|| (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
/* A type that is properly aligned for any stack member. */
union yyalloc
{
short int yyss;
YYSTYPE yyvs;
};
/* The size of the maximum gap between one aligned stack and the next. */
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
/* The size of an array large to enough to hold all stacks, each with
N elements. */
# define YYSTACK_BYTES(N) \
((N) * (sizeof (short int) + sizeof (YYSTYPE)) \
+ YYSTACK_GAP_MAXIMUM)
/* Copy COUNT objects from FROM to TO. The source and destination do
not overlap. */
# ifndef YYCOPY
# if defined (__GNUC__) && 1 < __GNUC__
# define YYCOPY(To, From, Count) \
__builtin_memcpy (To, From, (Count) * sizeof (*(From)))
# else
# define YYCOPY(To, From, Count) \
do \
{ \
register size_t yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(To)[yyi] = (From)[yyi]; \
} \
while (0)
# endif
# endif
/* Relocate STACK from its old location to the new one. The
local variables YYSIZE and YYSTACKSIZE give the old and new number of
elements in the stack, and YYPTR gives the new location of the
stack. Advance YYPTR to a properly aligned location for the next
stack. */
# define YYSTACK_RELOCATE(Stack) \
do \
{ \
size_t yynewbytes; \
YYCOPY (&yyptr->Stack, Stack, yysize); \
Stack = &yyptr->Stack; \
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
yyptr += yynewbytes / sizeof (*yyptr); \
} \
while (0)
#endif
#if defined (__STDC__) || defined (__cplusplus)
typedef signed char yysigned_char;
#else
typedef short int yysigned_char;
#endif
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 5
/* YYLAST -- Last index in YYTABLE. */
#define YYLAST 6206
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 137
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 540
/* YYNRULES -- Number of rules. */
#define YYNRULES 841
/* YYNRULES -- Number of states. */
#define YYNSTATES 2126
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
#define YYMAXUTOK 391
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
static const unsigned char yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
135, 136
};
#if YYDEBUG
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
YYRHS. */
static const unsigned short int yyprhs[] =
{
0, 0, 3, 4, 9, 10, 15, 16, 21, 22,
25, 27, 30, 32, 34, 37, 49, 51, 54, 56,
58, 61, 63, 67, 69, 73, 75, 77, 91, 109,
122, 141, 156, 169, 170, 179, 180, 187, 188, 191,
203, 215, 217, 225, 230, 241, 253, 266, 267, 270,
284, 291, 297, 307, 313, 323, 329, 339, 345, 355,
361, 369, 370, 374, 378, 382, 386, 390, 394, 398,
401, 405, 426, 444, 447, 451, 462, 473, 476, 480,
499, 521, 540, 542, 546, 552, 563, 569, 575, 576,
580, 581, 589, 593, 594, 600, 606, 613, 616, 620,
634, 648, 649, 653, 654, 657, 660, 663, 674, 689,
701, 707, 719, 728, 729, 733, 734, 739, 742, 746,
747, 753, 757, 759, 761, 765, 767, 769, 773, 775,
777, 779, 781, 783, 785, 787, 789, 791, 793, 795,
797, 799, 801, 803, 805, 807, 815, 817, 829, 839,
840, 846, 853, 855, 861, 865, 873, 875, 881, 902,
904, 910, 921, 922, 926, 927, 930, 938, 947, 953,
957, 965, 975, 977, 981, 989, 1000, 1009, 1010, 1016,
1031, 1040, 1054, 1066, 1067, 1073, 1080, 1092, 1102, 1115,
1117, 1124, 1135, 1136, 1138, 1140, 1145, 1147, 1151, 1153,
1159, 1163, 1169, 1175, 1179, 1186, 1188, 1190, 1192, 1200,
1204, 1209, 1213, 1215, 1222, 1227, 1236, 1245, 1247, 1251,
1253, 1261, 1267, 1272, 1278, 1280, 1284, 1292, 1293, 1297,
1298, 1302, 1303, 1306, 1311, 1312, 1319, 1326, 1334, 1337,
1341, 1348, 1355, 1356, 1363, 1370, 1378, 1381, 1385, 1396,
1413, 1429, 1439, 1455, 1470, 1471, 1478, 1485, 1493, 1496,
1500, 1513, 1525, 1529, 1535, 1542, 1550, 1556, 1563, 1564,
1567, 1569, 1573, 1581, 1593, 1594, 1597, 1603, 1611, 1613,
1615, 1619, 1623, 1627, 1631, 1635, 1638, 1641, 1644, 1647,
1650, 1656, 1660, 1668, 1676, 1678, 1681, 1685, 1691, 1699,
1707, 1709, 1711, 1713, 1715, 1717, 1719, 1721, 1723, 1725,
1727, 1733, 1734, 1737, 1738, 1741, 1742, 1745, 1747, 1752,
1756, 1763, 1769, 1779, 1787, 1795, 1804, 1805, 1809, 1820,
1828, 1839, 1843, 1851, 1855, 1863, 1865, 1867, 1871, 1873,
1881, 1889, 1893, 1895, 1901, 1903, 1905, 1909, 1911, 1917,
1921, 1923, 1929, 1933, 1935, 1939, 1947, 1951, 1955, 1957,
1963, 1965, 1967, 1971, 1973, 1979, 1981, 1983, 1985, 1987,
1992, 1998, 2004, 2008, 2012, 2014, 2019, 2022, 2028, 2030,
2032, 2035, 2041, 2046, 2048, 2053, 2061, 2063, 2065, 2067,
2069, 2071, 2073, 2077, 2080, 2086, 2089, 2090, 2095, 2099,
2105, 2115, 2121, 2130, 2132, 2138, 2140, 2144, 2147, 2153,
2155, 2160, 2163, 2164, 2168, 2170, 2172, 2176, 2178, 2184,
2188, 2190, 2196, 2200, 2202, 2206, 2208, 2214, 2216, 2218,
2220, 2222, 2224, 2226, 2228, 2232, 2234, 2240, 2242, 2244,
2246, 2250, 2252, 2258, 2260, 2262, 2264, 2266, 2268, 2272,
2276, 2279, 2281, 2283, 2285, 2287, 2289, 2294, 2296, 2297,
2301, 2304, 2306, 2315, 2324, 2329, 2339, 2344, 2348, 2350,
2356, 2360, 2362, 2368, 2372, 2374, 2378, 2380, 2386, 2390,
2392, 2398, 2402, 2404, 2410, 2412, 2416, 2420, 2422, 2425,
2429, 2433, 2435, 2437, 2441, 2447, 2449, 2451, 2453, 2455,
2457, 2459, 2463, 2466, 2468, 2477, 2486, 2491, 2501, 2506,
2516, 2521, 2525, 2529, 2531, 2537, 2542, 2544, 2546, 2551,
2554, 2557, 2563, 2566, 2572, 2576, 2594, 2597, 2603, 2605,
2611, 2617, 2618, 2623, 2624, 2626, 2628, 2633, 2634, 2638,
2639, 2643, 2644, 2648, 2649, 2653, 2654, 2658, 2659, 2663,
2664, 2668, 2669, 2673, 2674, 2678, 2679, 2683, 2684, 2688,
2689, 2693, 2694, 2698, 2699, 2703, 2704, 2708, 2709, 2713,
2714, 2718, 2719, 2723, 2724, 2728, 2729, 2733, 2734, 2738,
2740, 2741, 2745, 2747, 2748, 2752, 2753, 2757, 2758, 2762,
2763, 2767, 2768, 2772, 2773, 2777, 2778, 2782, 2783, 2787,
2788, 2792, 2793, 2797, 2798, 2802, 2803, 2807, 2808, 2812,
2813, 2817, 2818, 2822, 2823, 2827, 2828, 2832, 2833, 2837,
2838, 2842, 2843, 2847, 2848, 2852, 2853, 2857, 2858, 2862,
2863, 2867, 2868, 2872, 2873, 2877, 2878, 2882, 2883, 2887,
2888, 2892, 2893, 2897, 2898, 2902, 2903, 2907, 2908, 2912,
2913, 2917, 2918, 2922, 2923, 2927, 2928, 2932, 2933, 2937,
2938, 2942, 2943, 2947, 2948, 2952, 2953, 2957, 2958, 2962,
2963, 2967, 2968, 2972, 2973, 2977, 2978, 2982, 2983, 2987,
2988, 2992, 2993, 2997, 2998, 3002, 3003, 3007, 3008, 3012,
3013, 3017, 3018, 3022, 3023, 3027, 3028, 3032, 3033, 3037,
3038, 3042, 3043, 3047, 3048, 3052, 3053, 3057, 3058, 3062,
3063, 3067, 3068, 3072, 3073, 3077, 3078, 3082, 3083, 3087,
3088, 3092, 3093, 3097, 3098, 3102, 3103, 3107, 3108, 3112,
3113, 3117, 3118, 3122, 3123, 3127, 3128, 3132, 3133, 3137,
3138, 3142, 3143, 3147, 3148, 3152, 3153, 3157, 3158, 3162,
3163, 3167, 3168, 3172, 3173, 3177, 3178, 3182, 3183, 3187,
3188, 3192, 3193, 3197, 3198, 3202, 3203, 3207, 3208, 3212,
3213, 3217, 3218, 3222, 3223, 3227, 3228, 3232, 3233, 3237,
3238, 3242, 3243, 3247, 3248, 3252, 3253, 3257, 3258, 3262,
3263, 3267, 3268, 3272, 3273, 3277, 3278, 3282, 3283, 3287,
3288, 3292, 3294, 3295, 3299, 3300, 3302, 3304, 3306, 3309,
3311, 3314, 3316, 3319, 3321, 3323, 3326, 3327, 3328, 3329,
3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339,
3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349,
3350, 3351
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const short int yyrhs[] =
{
138, 0, -1, -1, 139, 142, 147, 674, -1, -1,
140, 135, 142, 143, -1, -1, 141, 136, 142, 145,
-1, -1, 643, 674, -1, 144, -1, 143, 144, -1,
161, -1, 155, -1, 147, 674, -1, 653, 675, 254,
183, 661, 676, 515, 664, 473, 655, 674, -1, 146,
-1, 145, 146, -1, 161, -1, 155, -1, 147, 674,
-1, 148, -1, 595, 664, 148, -1, 149, -1, 595,
664, 149, -1, 150, -1, 151, -1, 541, 664, 653,
475, 422, 655, 674, 154, 160, 515, 664, 473, 391,
-1, 541, 664, 653, 475, 664, 395, 658, 653, 473,
152, 655, 655, 674, 515, 664, 473, 391, -1, 551,
664, 653, 475, 153, 422, 655, 674, 154, 159, 663,
391, -1, 551, 664, 653, 475, 153, 664, 395, 658,
653, 473, 152, 655, 655, 674, 515, 664, 473, 391,
-1, 533, 664, 541, 664, 475, 152, 422, 674, 154,
160, 515, 664, 473, 391, -1, 533, 664, 551, 664,
475, 152, 422, 674, 154, 159, 663, 391, -1, -1,
663, 673, 433, 652, 377, 655, 663, 417, -1, -1,
658, 525, 664, 652, 378, 655, -1, -1, 154, 155,
-1, 531, 664, 473, 664, 537, 664, 652, 378, 655,
422, 674, -1, 653, 537, 657, 669, 156, 422, 655,
655, 670, 655, 674, -1, 157, -1, 156, 389, 665,
655, 655, 671, 157, -1, 675, 651, 651, 473, -1,
675, 651, 651, 473, 656, 651, 664, 493, 664, 227,
-1, 160, 653, 162, 675, 254, 183, 674, 676, 515,
663, 655, -1, 160, 653, 162, 675, 254, 183, 674,
676, 515, 664, 473, 655, -1, -1, 160, 161, -1,
653, 162, 171, 664, 395, 666, 652, 159, 663, 422,
655, 655, 666, -1, 653, 162, 171, 422, 655, 666,
-1, 653, 162, 505, 655, 666, -1, 653, 162, 505,
660, 668, 163, 670, 655, 666, -1, 653, 162, 591,
655, 666, -1, 653, 162, 591, 660, 667, 165, 670,
655, 666, -1, 653, 162, 579, 655, 666, -1, 653,
162, 579, 660, 667, 165, 670, 655, 666, -1, 653,
162, 603, 655, 666, -1, 653, 162, 603, 660, 668,
167, 670, 655, 666, -1, 653, 162, 521, 655, 666,
-1, 653, 162, 521, 660, 169, 655, 666, -1, -1,
162, 250, 674, -1, 162, 260, 674, -1, 162, 263,
674, -1, 162, 262, 674, -1, 162, 261, 674, -1,
162, 258, 674, -1, 162, 264, 674, -1, 164, 671,
-1, 163, 164, 671, -1, 675, 651, 651, 473, 656,
651, 387, 664, 227, 664, 656, 651, 395, 664, 330,
663, 676, 422, 655, 655, -1, 675, 651, 651, 473,
656, 651, 664, 656, 651, 395, 664, 330, 663, 676,
422, 655, 655, -1, 166, 671, -1, 165, 166, 671,
-1, 651, 653, 228, 664, 395, 657, 227, 422, 655,
655, -1, 651, 653, 228, 664, 427, 657, 227, 422,
655, 655, -1, 168, 671, -1, 167, 168, 671, -1,
675, 651, 651, 378, 656, 651, 387, 664, 227, 663,
253, 676, 424, 655, 651, 645, 655, 655, -1, 675,
651, 651, 378, 656, 651, 387, 664, 227, 664, 656,
651, 381, 664, 330, 663, 253, 676, 422, 655, 655,
-1, 675, 651, 651, 378, 656, 651, 664, 656, 651,
381, 664, 330, 663, 253, 676, 422, 655, 655, -1,
170, -1, 169, 666, 170, -1, 675, 473, 663, 676,
422, -1, 675, 473, 433, 659, 227, 663, 417, 663,
676, 422, -1, 563, 664, 475, 657, 172, -1, 435,
175, 417, 173, 174, -1, -1, 387, 657, 227, -1,
-1, 567, 664, 439, 652, 223, 655, 413, -1, 567,
664, 489, -1, -1, 653, 669, 178, 670, 655, -1,
653, 669, 176, 670, 655, -1, 653, 669, 176, 178,
670, 655, -1, 177, 671, -1, 176, 177, 671, -1,
651, 653, 179, 656, 653, 180, 656, 653, 378, 656,
181, 253, 655, -1, 651, 653, 179, 656, 653, 180,
656, 653, 378, 656, 182, 253, 655, -1, -1, 179,
261, 657, -1, -1, 601, 664, -1, 603, 664, -1,
569, 664, -1, 653, 387, 664, 227, 424, 665, 655,
651, 645, 655, -1, 653, 387, 664, 227, 656, 653,
664, 381, 664, 330, 663, 422, 665, 655, -1, 651,
655, 653, 664, 381, 664, 330, 663, 422, 665, 655,
-1, 653, 387, 664, 227, 655, -1, 653, 387, 664,
227, 656, 653, 664, 381, 664, 330, 655, -1, 651,
655, 653, 664, 381, 664, 330, 655, -1, -1, 660,
186, 655, -1, -1, 660, 651, 185, 655, -1, 186,
655, -1, 187, 653, 189, -1, -1, 187, 653, 188,
655, 660, -1, 190, 663, 422, -1, 191, -1, 190,
-1, 190, 663, 422, -1, 191, -1, 192, -1, 652,
158, 655, -1, 193, -1, 194, -1, 199, -1, 200,
-1, 201, -1, 203, -1, 207, -1, 208, -1, 209,
-1, 210, -1, 211, -1, 212, -1, 213, -1, 216,
-1, 219, -1, 220, -1, 255, -1, 330, 664, 381,
658, 653, 330, 655, -1, 330, -1, 503, 664, 330,
664, 557, 662, 196, 195, 204, 672, 515, -1, 503,
664, 330, 664, 557, 195, 204, 672, 515, -1, -1,
195, 661, 385, 664, 196, -1, 653, 197, 664, 411,
184, 655, -1, 198, -1, 197, 663, 389, 657, 198,
-1, 653, 330, 655, -1, 653, 330, 664, 393, 660,
330, 655, -1, 523, -1, 517, 658, 653, 330, 655,
-1, 654, 529, 664, 473, 253, 657, 381, 664, 330,
657, 587, 664, 330, 202, 509, 655, 256, 183, 672,
515, -1, 664, -1, 657, 501, 664, 330, 664, -1,
535, 664, 330, 664, 585, 183, 205, 204, 672, 515,
-1, -1, 661, 511, 183, -1, -1, 205, 206, -1,
661, 513, 664, 330, 664, 585, 183, -1, 543, 664,
330, 664, 509, 183, 672, 515, -1, 545, 256, 183,
672, 515, -1, 565, 658, 325, -1, 565, 658, 325,
433, 330, 663, 417, -1, 575, 256, 183, 661, 653,
597, 657, 330, 655, -1, 577, -1, 577, 658, 330,
-1, 589, 183, 661, 527, 183, 672, 515, -1, 589,
183, 661, 519, 662, 215, 214, 204, 672, 515, -1,
589, 183, 661, 519, 214, 204, 672, 515, -1, -1,
214, 661, 385, 664, 215, -1, 653, 654, 224, 657,
433, 473, 253, 663, 417, 664, 411, 655, 184, 655,
-1, 653, 654, 224, 664, 411, 655, 184, 655, -1,
654, 593, 657, 330, 657, 557, 655, 662, 218, 217,
204, 672, 515, -1, 654, 593, 657, 330, 657, 557,
655, 217, 204, 672, 515, -1, -1, 217, 661, 385,
664, 218, -1, 653, 226, 664, 411, 184, 655, -1,
653, 226, 664, 433, 473, 253, 417, 664, 411, 184,
655, -1, 605, 664, 330, 664, 509, 256, 183, 672,
515, -1, 607, 664, 667, 221, 655, 655, 670, 664,
509, 183, 672, 515, -1, 222, -1, 221, 389, 655,
655, 671, 222, -1, 651, 651, 473, 253, 664, 655,
651, 395, 664, 330, -1, -1, 224, -1, 225, -1,
224, 389, 657, 225, -1, 473, -1, 473, 391, 473,
-1, 227, -1, 226, 663, 389, 657, 227, -1, 653,
228, 655, -1, 653, 228, 664, 233, 655, -1, 653,
231, 664, 233, 655, -1, 653, 229, 655, -1, 653,
433, 227, 663, 417, 655, -1, 225, -1, 230, -1,
232, -1, 497, 657, 330, 657, 529, 660, 227, -1,
563, 658, 172, -1, 263, 563, 658, 172, -1, 599,
664, 233, -1, 233, -1, 599, 664, 237, 573, 657,
227, -1, 237, 573, 657, 227, -1, 652, 439, 652,
377, 655, 663, 413, 655, -1, 437, 330, 664, 393,
660, 330, 663, 415, -1, 231, -1, 599, 664, 581,
-1, 581, -1, 491, 657, 226, 664, 557, 660, 227,
-1, 491, 664, 557, 660, 227, -1, 571, 238, 672,
515, -1, 583, 664, 557, 660, 227, -1, 234, -1,
233, 660, 234, -1, 237, 555, 238, 235, 236, 672,
515, -1, -1, 661, 547, 242, -1, -1, 661, 561,
246, -1, -1, 499, 664, -1, 499, 664, 366, 664,
-1, -1, 660, 651, 668, 241, 670, 655, -1, 660,
651, 668, 239, 670, 655, -1, 660, 651, 668, 239,
241, 670, 655, -1, 240, 671, -1, 239, 240, 671,
-1, 651, 653, 378, 655, 181, 655, -1, 651, 653,
378, 655, 182, 655, -1, -1, 660, 651, 668, 245,
670, 655, -1, 660, 651, 668, 243, 670, 655, -1,
660, 651, 668, 243, 245, 670, 655, -1, 244, 671,
-1, 243, 244, 671, -1, 651, 653, 473, 656, 653,
664, 172, 422, 655, 655, -1, 651, 653, 473, 656,
653, 664, 172, 656, 653, 664, 381, 664, 225, 422,
655, 655, -1, 651, 653, 473, 656, 653, 664, 656,
653, 664, 381, 664, 225, 422, 655, 655, -1, 651,
653, 473, 656, 653, 664, 172, 655, 655, -1, 651,
653, 473, 656, 653, 664, 172, 656, 653, 664, 381,
664, 225, 655, 655, -1, 651, 653, 473, 656, 653,
664, 656, 653, 664, 381, 664, 225, 655, 655, -1,
-1, 660, 651, 667, 249, 670, 655, -1, 660, 651,
667, 247, 670, 655, -1, 660, 651, 667, 247, 249,
670, 655, -1, 248, 671, -1, 247, 248, 671, -1,
651, 653, 473, 656, 653, 664, 381, 664, 225, 422,
655, 655, -1, 651, 653, 473, 656, 653, 664, 381,
664, 225, 655, 655, -1, 441, 664, 419, -1, 441,
664, 366, 664, 419, -1, 441, 664, 387, 473, 664,
419, -1, 441, 664, 366, 387, 473, 664, 419, -1,
447, 664, 330, 664, 419, -1, 653, 447, 183, 655,
664, 419, -1, -1, 664, 251, -1, 495, -1, 495,
660, 252, -1, 445, 664, 653, 330, 655, 664, 419,
-1, 445, 664, 653, 330, 663, 389, 657, 366, 655,
664, 419, -1, -1, 660, 257, -1, 471, 664, 290,
664, 419, -1, 449, 664, 652, 259, 664, 419, 655,
-1, 224, -1, 489, -1, 443, 664, 419, -1, 451,
664, 419, -1, 453, 664, 419, -1, 455, 664, 419,
-1, 457, 664, 419, -1, 661, 266, -1, 657, 267,
-1, 657, 270, -1, 661, 268, -1, 661, 271, -1,
459, 664, 378, 664, 421, -1, 461, 664, 421, -1,
465, 664, 337, 664, 269, 664, 421, -1, 467, 664,
337, 664, 269, 664, 421, -1, 330, -1, 439, 413,
-1, 439, 371, 413, -1, 463, 664, 479, 664, 421,
-1, 463, 664, 479, 664, 485, 664, 421, -1, 469,
664, 653, 272, 655, 657, 421, -1, 273, -1, 278,
-1, 280, -1, 279, -1, 283, -1, 284, -1, 285,
-1, 286, -1, 287, -1, 288, -1, 277, 674, 274,
275, 276, -1, -1, 317, 674, -1, -1, 321, 674,
-1, -1, 322, 674, -1, 325, -1, 325, 433, 378,
417, -1, 325, 387, 315, -1, 325, 433, 378, 417,
387, 315, -1, 603, 664, 653, 313, 655, -1, 615,
664, 325, 282, 387, 657, 653, 311, 655, -1, 609,
664, 281, 657, 623, 664, 290, -1, 609, 664, 281,
657, 395, 664, 330, -1, 325, 282, 387, 657, 325,
437, 325, 415, -1, -1, 437, 314, 415, -1, 637,
664, 473, 433, 313, 417, 657, 629, 664, 290, -1,
621, 664, 473, 663, 387, 657, 315, -1, 621, 664,
473, 433, 313, 417, 663, 387, 657, 315, -1, 613,
664, 290, -1, 639, 664, 326, 657, 501, 664, 311,
-1, 627, 664, 290, -1, 631, 664, 473, 657, 381,
664, 289, -1, 290, -1, 291, -1, 653, 292, 655,
-1, 293, -1, 611, 664, 437, 313, 415, 657, 293,
-1, 619, 664, 437, 313, 415, 657, 293, -1, 653,
294, 655, -1, 296, -1, 296, 664, 295, 657, 293,
-1, 625, -1, 623, -1, 653, 297, 655, -1, 298,
-1, 297, 657, 559, 664, 298, -1, 653, 299, 655,
-1, 300, -1, 299, 657, 487, 664, 300, -1, 653,
301, 655, -1, 302, -1, 553, 664, 301, -1, 653,
303, 657, 316, 664, 303, 655, -1, 653, 303, 655,
-1, 653, 304, 655, -1, 306, -1, 304, 657, 305,
664, 306, -1, 409, -1, 405, -1, 653, 307, 655,
-1, 309, -1, 307, 657, 308, 664, 309, -1, 383,
-1, 507, -1, 549, -1, 310, -1, 325, 663, 433,
417, -1, 325, 663, 433, 311, 417, -1, 309, 663,
437, 311, 415, -1, 309, 663, 429, -1, 309, 663,
431, -1, 312, -1, 433, 289, 663, 417, -1, 663,
289, -1, 311, 663, 389, 657, 289, -1, 479, -1,
327, -1, 663, 314, -1, 313, 663, 389, 657, 314,
-1, 378, 387, 664, 315, -1, 325, -1, 325, 437,
315, 415, -1, 633, 664, 315, 664, 587, 664, 315,
-1, 401, -1, 397, -1, 403, -1, 399, -1, 395,
-1, 407, -1, 635, 664, 318, -1, 663, 319, -1,
318, 663, 389, 657, 319, -1, 325, 320, -1, -1,
320, 437, 289, 415, -1, 641, 664, 290, -1, 617,
664, 653, 290, 655, -1, 617, 664, 653, 290, 664,
519, 664, 324, 655, -1, 325, 664, 411, 664, 290,
-1, 325, 433, 473, 417, 664, 411, 664, 290, -1,
323, -1, 324, 664, 385, 664, 323, -1, 473, -1,
325, 391, 473, -1, 663, 325, -1, 326, 663, 389,
657, 325, -1, 325, -1, 325, 391, 477, 328, -1,
477, 328, -1, -1, 328, 391, 329, -1, 473, -1,
477, -1, 653, 331, 655, -1, 332, -1, 331, 657,
559, 664, 332, -1, 653, 333, 655, -1, 334, -1,
333, 657, 487, 664, 334, -1, 553, 664, 334, -1,
335, -1, 653, 336, 655, -1, 338, -1, 336, 657,
337, 664, 338, -1, 395, -1, 407, -1, 401, -1,
403, -1, 397, -1, 399, -1, 539, -1, 653, 339,
655, -1, 341, -1, 339, 657, 340, 664, 341, -1,
409, -1, 405, -1, 379, -1, 653, 342, 655, -1,
344, -1, 342, 657, 343, 664, 344, -1, 383, -1,
425, -1, 507, -1, 549, -1, 345, -1, 409, 663,
344, -1, 405, 663, 344, -1, 346, 347, -1, 473,
-1, 479, -1, 481, -1, 483, -1, 485, -1, 433,
330, 663, 417, -1, 232, -1, -1, 347, 663, 348,
-1, 391, 473, -1, 429, -1, 673, 437, 659, 652,
371, 655, 663, 415, -1, 673, 433, 659, 652, 372,
655, 663, 417, -1, 673, 433, 663, 417, -1, 673,
439, 659, 652, 374, 376, 655, 663, 413, -1, 673,
439, 663, 413, -1, 653, 350, 655, -1, 351, -1,
350, 657, 559, 664, 332, -1, 653, 352, 655, -1,
353, -1, 352, 657, 487, 664, 334, -1, 553, 664,
334, -1, 354, -1, 653, 355, 655, -1, 356, -1,
355, 657, 337, 664, 338, -1, 653, 357, 655, -1,
358, -1, 357, 657, 340, 664, 341, -1, 653, 359,
655, -1, 360, -1, 359, 657, 343, 664, 344, -1,
361, -1, 409, 663, 344, -1, 405, 663, 344, -1,
228, -1, 228, 363, -1, 228, 664, 233, -1, 231,
664, 233, -1, 230, -1, 232, -1, 232, 365, 347,
-1, 433, 349, 663, 417, 347, -1, 362, -1, 479,
-1, 481, -1, 483, -1, 485, -1, 364, -1, 363,
663, 348, -1, 391, 473, -1, 429, -1, 673, 437,
659, 652, 371, 655, 663, 415, -1, 673, 433, 659,
652, 372, 655, 663, 417, -1, 673, 433, 663, 417,
-1, 673, 439, 659, 652, 374, 376, 655, 663, 413,
-1, 673, 439, 663, 413, -1, 673, 439, 659, 652,
374, 376, 655, 663, 413, -1, 673, 439, 663, 413,
-1, 653, 367, 655, -1, 653, 368, 655, -1, 369,
-1, 368, 657, 379, 664, 369, -1, 653, 370, 347,
655, -1, 473, -1, 485, -1, 433, 366, 663, 417,
-1, 232, 365, -1, 663, 330, -1, 371, 663, 389,
657, 330, -1, 663, 373, -1, 372, 663, 389, 657,
373, -1, 651, 349, 655, -1, 651, 653, 653, 653,
653, 653, 473, 664, 381, 657, 330, 655, 655, 655,
655, 655, 655, -1, 663, 375, -1, 374, 663, 389,
657, 375, -1, 330, -1, 330, 664, 393, 657, 330,
-1, 330, 664, 381, 657, 330, -1, -1, 663, 389,
664, 393, -1, -1, 378, -1, 473, -1, 378, 389,
657, 473, -1, -1, 3, 380, 645, -1, -1, 4,
382, 645, -1, -1, 5, 384, 645, -1, -1, 6,
386, 645, -1, -1, 7, 388, 645, -1, -1, 8,
390, 645, -1, -1, 9, 392, 645, -1, -1, 10,
394, 645, -1, -1, 11, 396, 645, -1, -1, 12,
398, 645, -1, -1, 13, 400, 645, -1, -1, 14,
402, 645, -1, -1, 15, 404, 645, -1, -1, 16,
406, 645, -1, -1, 17, 408, 645, -1, -1, 18,
410, 645, -1, -1, 19, 412, 645, -1, -1, 21,
414, 645, -1, -1, 22, 416, 645, -1, -1, 23,
418, 645, -1, -1, 20, 420, 645, -1, 20, -1,
-1, 24, 423, 645, -1, 24, -1, -1, 25, 426,
645, -1, -1, 26, 428, 645, -1, -1, 27, 430,
645, -1, -1, 53, 432, 645, -1, -1, 28, 434,
645, -1, -1, 28, 436, 645, -1, -1, 29, 438,
645, -1, -1, 30, 440, 645, -1, -1, 36, 442,
645, -1, -1, 37, 444, 645, -1, -1, 42, 446,
645, -1, -1, 43, 448, 645, -1, -1, 40, 450,
645, -1, -1, 39, 452, 645, -1, -1, 38, 454,
645, -1, -1, 46, 456, 645, -1, -1, 49, 458,
645, -1, -1, 45, 460, 645, -1, -1, 41, 462,
645, -1, -1, 44, 464, 645, -1, -1, 47, 466,
645, -1, -1, 48, 468, 645, -1, -1, 50, 470,
645, -1, -1, 51, 472, 645, -1, -1, 31, 474,
645, -1, -1, 31, 476, 645, -1, -1, 52, 478,
645, -1, -1, 32, 480, 645, -1, -1, 33, 482,
645, -1, -1, 34, 484, 645, -1, -1, 35, 486,
645, -1, -1, 72, 488, 645, -1, -1, 73, 490,
645, -1, -1, 74, 492, 645, -1, -1, 75, 494,
645, -1, -1, 76, 496, 645, -1, -1, 77, 498,
645, -1, -1, 78, 500, 645, -1, -1, 79, 502,
645, -1, -1, 80, 504, 645, -1, -1, 81, 506,
645, -1, -1, 82, 508, 645, -1, -1, 83, 510,
645, -1, -1, 84, 512, 645, -1, -1, 85, 514,
645, -1, -1, 86, 516, 645, -1, -1, 87, 518,
645, -1, -1, 88, 520, 645, -1, -1, 89, 522,
645, -1, -1, 90, 524, 645, -1, -1, 91, 526,
645, -1, -1, 92, 528, 645, -1, -1, 93, 530,
645, -1, -1, 94, 532, 645, -1, -1, 95, 534,
645, -1, -1, 96, 536, 645, -1, -1, 97, 538,
645, -1, -1, 98, 540, 645, -1, -1, 99, 542,
645, -1, -1, 100, 544, 645, -1, -1, 101, 546,
645, -1, -1, 102, 548, 645, -1, -1, 103, 550,
645, -1, -1, 104, 552, 645, -1, -1, 105, 554,
645, -1, -1, 106, 556, 645, -1, -1, 107, 558,
645, -1, -1, 108, 560, 645, -1, -1, 109, 562,
645, -1, -1, 110, 564, 645, -1, -1, 111, 566,
645, -1, -1, 112, 568, 645, -1, -1, 113, 570,
645, -1, -1, 114, 572, 645, -1, -1, 115, 574,
645, -1, -1, 116, 576, 645, -1, -1, 117, 578,
645, -1, -1, 118, 580, 645, -1, -1, 119, 582,
645, -1, -1, 120, 584, 645, -1, -1, 121, 586,
645, -1, -1, 122, 588, 645, -1, -1, 123, 590,
645, -1, -1, 124, 592, 645, -1, -1, 125, 594,
645, -1, -1, 126, 596, 645, -1, -1, 127, 598,
645, -1, -1, 128, 600, 645, -1, -1, 129, 602,
645, -1, -1, 130, 604, 645, -1, -1, 131, 606,
645, -1, -1, 132, 608, 645, -1, -1, 70, 610,
645, -1, -1, 54, 612, 645, -1, -1, 55, 614,
645, -1, -1, 56, 616, 645, -1, -1, 57, 618,
645, -1, -1, 58, 620, 645, -1, -1, 59, 622,
645, -1, -1, 60, 624, 645, -1, -1, 61, 626,
645, -1, -1, 62, 628, 645, -1, -1, 63, 630,
645, -1, -1, 64, 632, 645, -1, -1, 65, 634,
645, -1, -1, 66, 636, 645, -1, -1, 68, 638,
645, -1, -1, 69, 640, 645, -1, -1, 71, 642,
645, -1, 650, -1, -1, 650, 644, 647, -1, -1,
646, -1, 647, -1, 649, -1, 649, 647, -1, 648,
-1, 648, 646, -1, 265, -1, 648, 265, -1, 650,
-1, 134, -1, 650, 134, -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
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const unsigned short int yyrline[] =
{
0, 230, 230, 230, 231, 231, 232, 232, 235, 237,
241, 242, 246, 247, 248, 249, 253, 254, 258, 259,
260, 264, 265, 270, 271, 272, 273, 277, 281, 286,
289, 294, 301, 307, 309, 312, 314, 317, 319, 323,
324, 328, 329, 333, 334, 338, 342, 345, 347, 353,
354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
364, 367, 369, 370, 371, 372, 373, 374, 375, 379,
380, 385, 386, 390, 391, 395, 396, 400, 401, 405,
408, 411, 418, 419, 424, 425, 429, 433, 436, 438,
441, 443, 444, 447, 449, 450, 451, 455, 456, 460,
464, 467, 469, 472, 474, 475, 476, 480, 481, 482,
486, 487, 488, 493, 495, 499, 501, 506, 510, 513,
515, 519, 520, 524, 525, 526, 530, 531, 532, 533,
534, 535, 536, 537, 538, 539, 540, 541, 542, 543,
544, 545, 546, 547, 551, 556, 560, 564, 565, 568,
570, 574, 578, 579, 583, 584, 588, 593, 599, 604,
605, 609, 612, 614, 617, 619, 623, 627, 631, 635,
636, 640, 644, 645, 649, 653, 654, 657, 659, 663,
664, 668, 669, 672, 674, 678, 679, 683, 687, 691,
692, 696, 699, 701, 705, 706, 710, 711, 717, 718,
722, 723, 724, 725, 726, 730, 734, 735, 739, 740,
741, 742, 743, 744, 745, 746, 747, 748, 752, 753,
758, 759, 760, 761, 765, 766, 770, 773, 775, 778,
780, 783, 785, 786, 789, 791, 792, 793, 797, 798,
802, 805, 808, 810, 811, 812, 816, 817, 821, 822,
823, 827, 828, 829, 832, 834, 835, 836, 840, 841,
845, 849, 855, 856, 857, 858, 861, 862, 864, 866,
870, 871, 875, 876, 879, 881, 884, 888, 891, 892,
895, 896, 897, 898, 899, 905, 906, 907, 908, 909,
916, 917, 919, 920, 924, 925, 926, 930, 931, 934,
940, 941, 942, 943, 944, 945, 946, 947, 948, 949,
953, 959, 961, 964, 966, 969, 971, 975, 976, 977,
978, 981, 984, 987, 988, 991, 993, 995, 998, 1001,
1002, 1005, 1007, 1009, 1011, 1016, 1018, 1020, 1022, 1023,
1024, 1027, 1029, 1030, 1033, 1033, 1035, 1037, 1038, 1041,
1043, 1044, 1047, 1049, 1050, 1054, 1055, 1058, 1060, 1061,
1063, 1063, 1065, 1067, 1068, 1070, 1070, 1070, 1073, 1074,
1075, 1076, 1077, 1078, 1082, 1083, 1087, 1088, 1092, 1093,
1099, 1100, 1103, 1106, 1107, 1108, 1111, 1111, 1111, 1111,
1111, 1111, 1113, 1116, 1117, 1120, 1122, 1124, 1126, 1129,
1130, 1134, 1135, 1139, 1140, 1144, 1145, 1149, 1150, 1154,
1155, 1156, 1159, 1161, 1174, 1174, 1179, 1180, 1180, 1182,
1183, 1183, 1185, 1185, 1187, 1188, 1188, 1189, 1189, 1189,
1189, 1189, 1189, 1189, 1191, 1192, 1192, 1193, 1193, 1193,
1195, 1196, 1196, 1197, 1197, 1197, 1197, 1199, 1199, 1199,
1202, 1204, 1204, 1204, 1204, 1204, 1205, 1205, 1207, 1209,
1213, 1214, 1217, 1218, 1219, 1220, 1221, 1227, 1228, 1228,
1230, 1231, 1231, 1233, 1233, 1235, 1236, 1236, 1238, 1239,
1239, 1241, 1242, 1242, 1244, 1244, 1244, 1246, 1247, 1248,
1249, 1250, 1251, 1252, 1253, 1254, 1257, 1257, 1257, 1257,
1260, 1261, 1265, 1266, 1269, 1270, 1271, 1272, 1273, 1277,
1278, 1285, 1287, 1288, 1288, 1290, 1292, 1293, 1294, 1295,
1301, 1302, 1306, 1307, 1311, 1312, 1316, 1317, 1321, 1322,
1323, 1326, 1328, 1331, 1333, 1337, 1338, 1344, 1344, 1345,
1345, 1346, 1346, 1347, 1347, 1348, 1348, 1349, 1349, 1350,
1350, 1351, 1351, 1352, 1352, 1353, 1353, 1354, 1354, 1355,
1355, 1356, 1356, 1357, 1357, 1358, 1358, 1359, 1359, 1360,
1360, 1361, 1361, 1362, 1362, 1363, 1363, 1364, 1364, 1365,
1366, 1366, 1367, 1368, 1368, 1369, 1369, 1370, 1370, 1371,
1371, 1374, 1374, 1375, 1375, 1376, 1376, 1377, 1377, 1383,
1383, 1384, 1384, 1385, 1385, 1386, 1386, 1387, 1387, 1388,
1388, 1389, 1389, 1390, 1390, 1391, 1391, 1393, 1393, 1394,
1394, 1395, 1395, 1396, 1396, 1397, 1397, 1398, 1398, 1399,
1399, 1401, 1401, 1402, 1402, 1403, 1403, 1404, 1404, 1405,
1405, 1406, 1406, 1407, 1407, 1409, 1409, 1410, 1410, 1411,
1411, 1412, 1412, 1413, 1413, 1414, 1414, 1415, 1415, 1416,
1416, 1417, 1417, 1418, 1418, 1419, 1419, 1420, 1420, 1421,
1421, 1422, 1422, 1423, 1423, 1424, 1424, 1425, 1425, 1426,
1426, 1427, 1427, 1428, 1428, 1429, 1429, 1430, 1430, 1431,
1431, 1432, 1432, 1433, 1433, 1434, 1434, 1435, 1435, 1436,
1436, 1437, 1437, 1438, 1438, 1439, 1439, 1440, 1440, 1441,
1441, 1442, 1442, 1443, 1443, 1444, 1444, 1445, 1445, 1446,
1446, 1447, 1447, 1448, 1448, 1451, 1451, 1452, 1452, 1453,
1453, 1454, 1454, 1455, 1455, 1456, 1456, 1457, 1457, 1458,
1458, 1459, 1459, 1460, 1460, 1461, 1461, 1462, 1462, 1463,
1463, 1464, 1464, 1465, 1465, 1466, 1466, 1467, 1467, 1468,
1468, 1469, 1469, 1470, 1470, 1471, 1471, 1474, 1474, 1475,
1475, 1476, 1476, 1477, 1477, 1478, 1478, 1479, 1479, 1480,
1480, 1481, 1481, 1482, 1482, 1483, 1483, 1484, 1484, 1485,
1485, 1486, 1486, 1487, 1487, 1488, 1488, 1489, 1489, 1490,
1490, 1508, 1509, 1509, 1513, 1514, 1515, 1522, 1523, 1527,
1528, 1532, 1533, 1537, 1542, 1543, 1548, 1549, 1550, 1551,
1552, 1553, 1555, 1556, 1557, 1559, 1560, 1561, 1563, 1564,
1565, 1567, 1569, 1570, 1571, 1572, 1574, 1576, 1577, 1578,
1580, 1581
};
#endif
#if YYDEBUG || YYERROR_VERBOSE
/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] =
{
"ENDOFFILE", "error", "$undefined", "AMPERSAND", "ASSIGN", "ASTERISK",
"BAR", "COLON", "COMMA", "DOT", "DOTDOT", "EQUAL", "GREATER", "GREQUAL",
"LESS", "LSEQUAL", "MINUS", "SHARP", "PLUS", "RARROW", "RPRAGMA",
"RBRACE", "RBRACKET", "RPAREN", "SEMICOLON", "SLASH", "SUBTYPE",
"UPARROW", "LPAREN", "LBRACKET", "LBRACE", "IDENT", "CARD_CONST",
"REAL_CONST", "CHAR_CONST", "STR_CONST", "PR_EXTERNAL", "PR_INLINE",
"PR_OBSOLETE", "PR_UNUSED", "PR_FATAL", "PR_NOWARN", "PR_ASSERT",
"PR_TRACE", "PR_LINE", "PR_PRAGMA", "PR_CALLBACK", "PR_LL", "PR_LLsup",
"PR_EXPORTED", "PR_SPEC", "PR_LOOPINV", "IDENTPRIME", "UPARROWPRIME",
"ALL", "AXIOM", "DEPEND", "ENSURES", "EXISTS", "FUNC", "IFF", "IMPLIES",
"INVARIANT", "IS", "LET", "MAP", "MODIFIES", "ON", "PRED", "PROTECT",
"ABSTRACT", "REQUIRES", "AND", "ANY", "ARRAY", "AS", "BGN", "BITS",
"BRANDED", "BY", "CASE", "CONST", "DIV", "DO", "ELSE", "ELSIF", "END",
"EVAL", "EXCEPT", "EXCEPTION", "EXIT", "EXPORTS", "FINALLY", "FOR",
"FROM", "GENERIC", "IF", "IMPORT", "IN", "INTERFACE", "LOCK", "LOOP",
"METHODS", "MOD", "MODULE", "NOT", "OBJECT", "OF", "OR", "OVERRIDES",
"PROCEDURE", "RAISE", "RAISES", "READONLY", "RECORD", "REF", "REPEAT",
"RETURN", "REVEAL", "ROOT", "SET", "THEN", "TO", "TRY", "TYPE",
"TYPECASE", "UNSAFE", "UNTIL", "UNTRACED", "VALUE", "VAR", "WHILE",
"WITH", "BAD", "WHITESPACE", "MODUNIT", "DEFUNIT", "$accept",
"FormattingUnit", "@1", "@2", "@3", "InitialBlankLines", "ModUnit_list",
"ModUnit", "DefUnit_list", "DefUnit", "CompilationUnit", "interface",
"module", "generic_interface", "generic_module", "generic_params",
"exports", "import_nl_list", "import_nl", "import_module_list",
"import_module", "block", "named_block", "declaration_nl_list",
"declaration_nl", "decl_pragma", "const_decl_list", "const_decl",
"type_decl_list", "type_decl", "var_decl_list", "var_decl",
"exception_decl_list", "exception_decl", "procedure_head", "signature",
"return_type", "raises", "formals", "formal_semi_list", "formal_semi",
"formal", "formal_pragma", "mode", "type_and_or_val_semi",
"type_and_or_val", "stmts", "stmts_group", "stmts1", "stmt_list",
"stmt_inner_list", "stmt_inner", "stmt_end", "stmt", "stmt_pragma",
"assignment_stmt", "call_stmt", "case_stmt", "case_list", "case",
"labels_list", "labels", "exit_stmt", "eval_stmt", "for_stmt", "by",
"if_stmt", "else", "elsif_list", "elsif", "lock_stmt", "loop_stmt",
"raise_stmt", "repeat_stmt", "return_stmt", "try_finally_stmt",
"try_stmt", "handler_list", "handler", "typecase_stmt", "tcase_list",
"tcase", "while_stmt", "with_stmt", "binding_list", "binding",
"opt_qid_list", "qid_list", "qid", "type_list", "type", "type_name",
"type_constructor", "type_constructor1", "root_type",
"type_constructor2", "simple_object_type_list", "simple_object_type",
"methods_part", "overrides_part", "brand", "fields", "field_semi_list",
"field_semi", "field", "methods", "method_semi_list", "method_semi",
"method", "overrides", "override_semi_list", "override_semi", "override",
"external_pragma", "vtrace_pragma", "strace_pragma", "var_trace",
"begin_trace", "assert_pragma", "loopinv", "loopinv_pragma",
"fatal_pragma", "fatal_exc_list", "inline_pragma", "unused_pragma",
"obsolete_pragma", "callback_pragma", "exported_pragma", "anypragma",
"pragma_pragma", "nowarn_pragma", "ll_pragma", "ll_set", "line_pragma",
"spec_pragma", "esc_spec", "spec_proc", "spec_proc_opt_modifies",
"spec_proc_opt_requires", "spec_proc_opt_ensures", "spec_proc_signature",
"spec_var", "spec_depend", "spec_abstract", "spec_abstract_lhs",
"spec_opt_typed_id", "spec_pred_def", "spec_func_def", "spec_axiom",
"spec_protect", "spec_inv", "spec_let", "spec_term", "spec_pred",
"spec_quant", "spec_zquant", "spec_concl", "spec_zconcl",
"spec_weak_pred_op", "spec_disj", "spec_zdisj", "spec_conj",
"spec_zconj", "spec_literal", "spec_zliteral", "spec_atom",
"spec_term_sum", "spec_zterm_sum", "spec_addop", "spec_term_prod",
"spec_zterm_prod", "spec_mulop", "spec_term_selector", "spec_term_paren",
"spec_term_list", "spec_prim_term", "spec_typed_id_list",
"spec_typed_id", "spec_type", "spec_bin_rel", "spec_proc_modifies",
"spec_sub_id_list", "spec_sub_id", "spec_term_bracket_list",
"spec_proc_requires", "spec_proc_ensures", "spec_except_spec",
"spec_except_spec_list", "qqid", "qqid_list", "qqidp", "mixed_qqidp",
"idp", "expr", "zexpr", "e1", "ze1", "e2", "e3", "ze3", "relop", "e4",
"ze4", "addop", "e5", "ze5", "mulop", "e6", "e7", "e8", "selector_list",
"selector", "expr_t", "zexpr_t", "e1_t", "ze1_t", "e2_t", "e3_t",
"ze3_t", "e4_t", "ze4_t", "e5_t", "ze5_t", "e6_t", "e7_t", "e8_t",
"selector_list_t", "selector_t", "cons_value", "Str_expr", "e4_s",
"ze4_s", "e7_s", "e8_s", "expr_list", "actual_list", "actual",
"elem_list", "elem", "elem_tail", "opt_id_list", "id_list", "Ampersand",
"@4", "Assign", "@5", "Asterisk", "@6", "Bar", "@7", "Colon", "@8",
"Comma", "@9", "Dot", "@10", "Dotdot", "@11", "Equal", "@12", "Greater",
"@13", "Grequal", "@14", "Less", "@15", "Lsequal", "@16", "Minus", "@17",
"Notequal", "@18", "Plus", "@19", "Rarrow", "@20", "Rbrace", "@21",
"Rbracket", "@22", "Rparen", "@23", "Rpragma", "@24", "Rpragma1", "Semi",
"@25", "Semi1", "Slash", "@26", "Subtype", "@27", "Uparrow", "@28",
"UparrowPrime", "@29", "Lparen", "@30", "Lparen2", "@31", "Lbracket",
"@32", "Lbrace", "@33", "Pr_External", "@34", "Pr_Inline", "@35",
"Pr_Assert", "@36", "Pr_Trace", "@37", "Pr_Fatal", "@38", "Pr_Unused",
"@39", "Pr_Obsolete", "@40", "Pr_Callback", "@41", "Pr_Exported", "@42",
"Pr_Pragma", "@43", "Pr_Nowarn", "@44", "Pr_Line", "@45", "Pr_LL", "@46",
"Pr_LLsup", "@47", "Pr_Spec", "@48", "Pr_LoopInv", "@49", "Ident", "@50",
"IdentP", "@51", "IdentPrime", "@52", "Card_const", "@53", "Real_const",
"@54", "Char_const", "@55", "Str_const", "@56", "And", "@57", "Any",
"@58", "Array", "@59", "As", "@60", "Begin", "@61", "Bits", "@62",
"Branded", "@63", "By", "@64", "Case", "@65", "Const", "@66", "Div",
"@67", "Do", "@68", "Else", "@69", "Elsif", "@70", "End", "@71", "Eval",
"@72", "Except", "@73", "Exception", "@74", "Exit", "@75", "Exports",
"@76", "Finally", "@77", "For", "@78", "From", "@79", "Generic", "@80",
"If", "@81", "Import", "@82", "In", "@83", "Interface", "@84", "Lock",
"@85", "Loop", "@86", "Methods", "@87", "Mod", "@88", "Module", "@89",
"Not", "@90", "Object", "@91", "Of", "@92", "Or", "@93", "Overrides",
"@94", "Procedure", "@95", "Raise", "@96", "Raises", "@97", "Readonly",
"@98", "Record", "@99", "Ref", "@100", "Repeat", "@101", "Return",
"@102", "Reveal", "@103", "Root", "@104", "Set", "@105", "Then", "@106",
"To", "@107", "Try", "@108", "Type", "@109", "Typecase", "@110",
"Unsafe", "@111", "Until", "@112", "Untraced", "@113", "Value", "@114",
"Var", "@115", "While", "@116", "With", "@117", "Abstract", "@118",
"All", "@119", "Axiom", "@120", "Depend", "@121", "Ensures", "@122",
"Exists", "@123", "Func", "@124", "Iff", "@125", "Implies", "@126",
"Invariant", "@127", "Is", "@128", "Let", "@129", "Map", "@130",
"Modifies", "@131", "Pred", "@132", "Protect", "@133", "Requires",
"@134", "InitialNPS", "@135", "NPS", "space_anypragma_list",
"anypragma_space_list", "anypragma_list", "space_list_emit",
"space_list", "G", "B0", "B", "B2", "E", "EF", "A", "AO", "AX", "V",
"VZ", "VC", "Z", "SP", "XSP", "BL", "AL2", "AL3", "ALZ5", "EA", "ALNL",
"SPNL", "QSP", "NL", "Inc", "Dec", 0
};
#endif
# ifdef YYPRINT
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
token YYLEX-NUM. */
static const unsigned short int yytoknum[] =
{
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
385, 386, 387, 388, 389, 390, 391
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const unsigned short int yyr1[] =
{
0, 137, 139, 138, 140, 138, 141, 138, 142, 142,
143, 143, 144, 144, 144, 144, 145, 145, 146, 146,
146, 147, 147, 147, 147, 147, 147, 148, 148, 149,
149, 150, 151, 152, 152, 153, 153, 154, 154, 155,
155, 156, 156, 157, 157, 158, 159, 160, 160, 161,
161, 161, 161, 161, 161, 161, 161, 161, 161, 161,
161, 162, 162, 162, 162, 162, 162, 162, 162, 163,
163, 164, 164, 165, 165, 166, 166, 167, 167, 168,
168, 168, 169, 169, 170, 170, 171, 172, 173, 173,
174, 174, 174, 175, 175, 175, 175, 176, 176, 177,
178, 179, 179, 180, 180, 180, 180, 181, 181, 181,
182, 182, 182, 183, 183, 184, 184, 185, 186, 187,
187, 188, 188, 189, 189, 189, 190, 190, 190, 190,
190, 190, 190, 190, 190, 190, 190, 190, 190, 190,
190, 190, 190, 190, 191, 192, 193, 194, 194, 195,
195, 196, 197, 197, 198, 198, 199, 200, 201, 202,
202, 203, 204, 204, 205, 205, 206, 207, 208, 209,
209, 210, 211, 211, 212, 213, 213, 214, 214, 215,
215, 216, 216, 217, 217, 218, 218, 219, 220, 221,
221, 222, 223, 223, 224, 224, 225, 225, 226, 226,
227, 227, 227, 227, 227, 228, 229, 229, 230, 230,
230, 230, 230, 230, 230, 230, 230, 230, 231, 231,
232, 232, 232, 232, 233, 233, 234, 235, 235, 236,
236, 237, 237, 237, 238, 238, 238, 238, 239, 239,
240, 241, 242, 242, 242, 242, 243, 243, 244, 244,
244, 245, 245, 245, 246, 246, 246, 246, 247, 247,
248, 249, 250, 250, 250, 250, 251, 252, 253, 253,
254, 254, 255, 255, 256, 256, 257, 258, 259, 259,
260, 261, 262, 263, 264, 265, 265, 265, 265, 265,
266, 267, 268, 268, 269, 269, 269, 270, 270, 271,
272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
273, 274, 274, 275, 275, 276, 276, 277, 277, 277,
277, 278, 279, 280, 280, 281, 282, 282, 283, 284,
284, 285, 286, 287, 288, 289, 290, 291, 292, 292,
292, 293, 294, 294, 295, 295, 296, 297, 297, 298,
299, 299, 300, 301, 301, 302, 302, 303, 304, 304,
305, 305, 306, 307, 307, 308, 308, 308, 309, 309,
309, 309, 309, 309, 310, 310, 311, 311, 312, 312,
313, 313, 314, 315, 315, 315, 316, 316, 316, 316,
316, 316, 317, 318, 318, 319, 320, 320, 321, 322,
322, 323, 323, 324, 324, 325, 325, 326, 326, 327,
327, 327, 328, 328, 329, 329, 330, 331, 331, 332,
333, 333, 334, 334, 335, 336, 336, 337, 337, 337,
337, 337, 337, 337, 338, 339, 339, 340, 340, 340,
341, 342, 342, 343, 343, 343, 343, 344, 344, 344,
345, 346, 346, 346, 346, 346, 346, 346, 347, 347,
348, 348, 348, 348, 348, 348, 348, 349, 350, 350,
351, 352, 352, 353, 353, 354, 355, 355, 356, 357,
357, 358, 359, 359, 360, 360, 360, 361, 361, 361,
361, 361, 361, 361, 361, 361, 362, 362, 362, 362,
363, 363, 364, 364, 364, 364, 364, 364, 364, 365,
365, 366, 367, 368, 368, 369, 370, 370, 370, 370,
371, 371, 372, 372, 373, 373, 374, 374, 375, 375,
375, 376, 376, 377, 377, 378, 378, 380, 379, 382,
381, 384, 383, 386, 385, 388, 387, 390, 389, 392,
391, 394, 393, 396, 395, 398, 397, 400, 399, 402,
401, 404, 403, 406, 405, 408, 407, 410, 409, 412,
411, 414, 413, 416, 415, 418, 417, 420, 419, 421,
423, 422, 424, 426, 425, 428, 427, 430, 429, 432,
431, 434, 433, 436, 435, 438, 437, 440, 439, 442,
441, 444, 443, 446, 445, 448, 447, 450, 449, 452,
451, 454, 453, 456, 455, 458, 457, 460, 459, 462,
461, 464, 463, 466, 465, 468, 467, 470, 469, 472,
471, 474, 473, 476, 475, 478, 477, 480, 479, 482,
481, 484, 483, 486, 485, 488, 487, 490, 489, 492,
491, 494, 493, 496, 495, 498, 497, 500, 499, 502,
501, 504, 503, 506, 505, 508, 507, 510, 509, 512,
511, 514, 513, 516, 515, 518, 517, 520, 519, 522,
521, 524, 523, 526, 525, 528, 527, 530, 529, 532,
531, 534, 533, 536, 535, 538, 537, 540, 539, 542,
541, 544, 543, 546, 545, 548, 547, 550, 549, 552,
551, 554, 553, 556, 555, 558, 557, 560, 559, 562,
561, 564, 563, 566, 565, 568, 567, 570, 569, 572,
571, 574, 573, 576, 575, 578, 577, 580, 579, 582,
581, 584, 583, 586, 585, 588, 587, 590, 589, 592,
591, 594, 593, 596, 595, 598, 597, 600, 599, 602,
601, 604, 603, 606, 605, 608, 607, 610, 609, 612,
611, 614, 613, 616, 615, 618, 617, 620, 619, 622,
621, 624, 623, 626, 625, 628, 627, 630, 629, 632,
631, 634, 633, 636, 635, 638, 637, 640, 639, 642,
641, 643, 644, 643, 645, 645, 645, 646, 646, 647,
647, 648, 648, 649, 650, 650, 651, 652, 653, 654,
655, 656, 657, 658, 659, 660, 661, 662, 663, 664,
665, 666, 667, 668, 669, 670, 671, 672, 673, 674,
675, 676
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const unsigned char yyr2[] =
{
0, 2, 0, 4, 0, 4, 0, 4, 0, 2,
1, 2, 1, 1, 2, 11, 1, 2, 1, 1,
2, 1, 3, 1, 3, 1, 1, 13, 17, 12,
18, 14, 12, 0, 8, 0, 6, 0, 2, 11,
11, 1, 7, 4, 10, 11, 12, 0, 2, 13,
6, 5, 9, 5, 9, 5, 9, 5, 9, 5,
7, 0, 3, 3, 3, 3, 3, 3, 3, 2,
3, 20, 17, 2, 3, 10, 10, 2, 3, 18,
21, 18, 1, 3, 5, 10, 5, 5, 0, 3,
0, 7, 3, 0, 5, 5, 6, 2, 3, 13,
13, 0, 3, 0, 2, 2, 2, 10, 14, 11,
5, 11, 8, 0, 3, 0, 4, 2, 3, 0,
5, 3, 1, 1, 3, 1, 1, 3, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 7, 1, 11, 9, 0,
5, 6, 1, 5, 3, 7, 1, 5, 20, 1,
5, 10, 0, 3, 0, 2, 7, 8, 5, 3,
7, 9, 1, 3, 7, 10, 8, 0, 5, 14,
8, 13, 11, 0, 5, 6, 11, 9, 12, 1,
6, 10, 0, 1, 1, 4, 1, 3, 1, 5,
3, 5, 5, 3, 6, 1, 1, 1, 7, 3,
4, 3, 1, 6, 4, 8, 8, 1, 3, 1,
7, 5, 4, 5, 1, 3, 7, 0, 3, 0,
3, 0, 2, 4, 0, 6, 6, 7, 2, 3,
6, 6, 0, 6, 6, 7, 2, 3, 10, 16,
15, 9, 15, 14, 0, 6, 6, 7, 2, 3,
12, 11, 3, 5, 6, 7, 5, 6, 0, 2,
1, 3, 7, 11, 0, 2, 5, 7, 1, 1,
3, 3, 3, 3, 3, 2, 2, 2, 2, 2,
5, 3, 7, 7, 1, 2, 3, 5, 7, 7,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5, 0, 2, 0, 2, 0, 2, 1, 4, 3,
6, 5, 9, 7, 7, 8, 0, 3, 10, 7,
10, 3, 7, 3, 7, 1, 1, 3, 1, 7,
7, 3, 1, 5, 1, 1, 3, 1, 5, 3,
1, 5, 3, 1, 3, 7, 3, 3, 1, 5,
1, 1, 3, 1, 5, 1, 1, 1, 1, 4,
5, 5, 3, 3, 1, 4, 2, 5, 1, 1,
2, 5, 4, 1, 4, 7, 1, 1, 1, 1,
1, 1, 3, 2, 5, 2, 0, 4, 3, 5,
9, 5, 8, 1, 5, 1, 3, 2, 5, 1,
4, 2, 0, 3, 1, 1, 3, 1, 5, 3,
1, 5, 3, 1, 3, 1, 5, 1, 1, 1,
1, 1, 1, 1, 3, 1, 5, 1, 1, 1,
3, 1, 5, 1, 1, 1, 1, 1, 3, 3,
2, 1, 1, 1, 1, 1, 4, 1, 0, 3,
2, 1, 8, 8, 4, 9, 4, 3, 1, 5,
3, 1, 5, 3, 1, 3, 1, 5, 3, 1,
5, 3, 1, 5, 1, 3, 3, 1, 2, 3,
3, 1, 1, 3, 5, 1, 1, 1, 1, 1,
1, 3, 2, 1, 8, 8, 4, 9, 4, 9,
4, 3, 3, 1, 5, 4, 1, 1, 4, 2,
2, 5, 2, 5, 3, 17, 2, 5, 1, 5,
5, 0, 4, 0, 1, 1, 4, 0, 3, 0,
3, 0, 3, 0, 3, 0, 3, 0, 3, 0,
3, 0, 3, 0, 3, 0, 3, 0, 3, 0,
3, 0, 3, 0, 3, 0, 3, 0, 3, 0,
3, 0, 3, 0, 3, 0, 3, 0, 3, 1,
0, 3, 1, 0, 3, 0, 3, 0, 3, 0,
3, 0, 3, 0, 3, 0, 3, 0, 3, 0,
3, 0, 3, 0, 3, 0, 3, 0, 3, 0,
3, 0, 3, 0, 3, 0, 3, 0, 3, 0,
3, 0, 3, 0, 3, 0, 3, 0, 3, 0,
3, 0, 3, 0, 3, 0, 3, 0, 3, 0,
3, 0, 3, 0, 3, 0, 3, 0, 3, 0,
3, 0, 3, 0, 3, 0, 3, 0, 3, 0,
3, 0, 3, 0, 3, 0, 3, 0, 3, 0,
3, 0, 3, 0, 3, 0, 3, 0, 3, 0,
3, 0, 3, 0, 3, 0, 3, 0, 3, 0,
3, 0, 3, 0, 3, 0, 3, 0, 3, 0,
3, 0, 3, 0, 3, 0, 3, 0, 3, 0,
3, 0, 3, 0, 3, 0, 3, 0, 3, 0,
3, 0, 3, 0, 3, 0, 3, 0, 3, 0,
3, 0, 3, 0, 3, 0, 3, 0, 3, 0,
3, 0, 3, 0, 3, 0, 3, 0, 3, 0,
3, 0, 3, 0, 3, 0, 3, 0, 3, 0,
3, 0, 3, 0, 3, 0, 3, 0, 3, 0,
3, 0, 3, 0, 3, 0, 3, 0, 3, 0,
3, 0, 3, 0, 3, 0, 3, 0, 3, 0,
3, 0, 3, 0, 3, 0, 3, 0, 3, 0,
3, 1, 0, 3, 0, 1, 1, 1, 2, 1,
2, 1, 2, 1, 1, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
STATE-NUM when YYTABLE doesn't specify something else to do. Zero
means the default is an error. */
static const unsigned short int yydefact[] =
{
2, 0, 8, 0, 0, 1, 814, 0, 839, 801,
8, 8, 691, 699, 709, 753, 839, 21, 23, 25,
26, 829, 829, 829, 829, 9, 815, 826, 818, 818,
826, 826, 826, 826, 3, 0, 818, 818, 0, 811,
803, 809, 0, 0, 689, 818, 10, 839, 13, 12,
829, 61, 818, 16, 839, 19, 18, 61, 692, 805,
806, 807, 813, 700, 710, 754, 829, 829, 0, 0,
22, 24, 812, 810, 619, 621, 286, 287, 829, 829,
617, 623, 625, 627, 285, 288, 289, 829, 829, 829,
829, 826, 11, 14, 0, 695, 0, 822, 0, 17,
20, 808, 0, 0, 633, 829, 35, 826, 826, 0,
0, 826, 804, 804, 804, 0, 0, 0, 818, 690,
631, 829, 826, 599, 601, 611, 609, 607, 613, 615,
663, 679, 721, 737, 749, 761, 829, 839, 839, 839,
839, 839, 839, 839, 829, 829, 829, 829, 829, 829,
829, 820, 820, 829, 820, 820, 820, 834, 653, 825,
270, 33, 33, 804, 580, 820, 0, 829, 0, 620,
622, 579, 291, 637, 829, 618, 624, 626, 628, 829,
535, 553, 555, 557, 559, 561, 565, 697, 829, 427,
431, 432, 429, 430, 428, 433, 829, 0, 804, 0,
696, 804, 826, 826, 826, 826, 826, 826, 804, 804,
826, 804, 804, 804, 820, 0, 62, 67, 63, 66,
65, 64, 68, 818, 0, 817, 0, 0, 0, 0,
831, 833, 831, 840, 0, 831, 832, 831, 832, 831,
833, 840, 804, 826, 119, 818, 0, 838, 0, 634,
804, 839, 823, 820, 0, 683, 829, 804, 0, 547,
822, 0, 804, 804, 804, 804, 804, 804, 804, 818,
818, 771, 773, 779, 785, 789, 795, 797, 767, 820,
300, 839, 301, 303, 302, 304, 305, 306, 307, 308,
309, 317, 405, 829, 829, 829, 829, 829, 829, 829,
829, 829, 632, 829, 600, 602, 612, 610, 608, 614,
616, 664, 680, 722, 738, 750, 762, 831, 831, 545,
577, 829, 0, 262, 818, 280, 0, 281, 282, 283,
284, 51, 840, 59, 820, 82, 0, 822, 55, 816,
53, 816, 57, 840, 0, 41, 816, 654, 841, 820,
818, 271, 0, 839, 0, 839, 581, 37, 818, 839,
823, 826, 817, 638, 643, 297, 829, 804, 0, 290,
554, 556, 558, 560, 562, 566, 698, 597, 829, 294,
828, 818, 829, 804, 826, 826, 804, 826, 826, 826,
826, 822, 311, 549, 591, 0, 0, 0, 818, 0,
818, 0, 0, 818, 0, 0, 828, 817, 50, 817,
804, 804, 0, 0, 829, 820, 818, 647, 278, 194,
829, 196, 279, 835, 836, 816, 831, 840, 828, 0,
835, 836, 818, 835, 835, 836, 816, 830, 820, 816,
0, 114, 817, 605, 825, 37, 817, 37, 47, 0,
37, 818, 684, 0, 804, 0, 548, 536, 804, 0,
571, 828, 295, 818, 820, 417, 818, 0, 772, 774,
780, 786, 790, 796, 798, 768, 0, 793, 313, 839,
829, 804, 804, 791, 319, 383, 829, 406, 0, 828,
822, 326, 331, 336, 818, 326, 828, 333, 822, 0,
822, 0, 0, 47, 546, 578, 829, 263, 0, 511,
820, 513, 0, 804, 822, 0, 0, 836, 820, 69,
816, 60, 83, 824, 841, 593, 86, 818, 836, 820,
73, 0, 820, 836, 820, 77, 816, 820, 820, 0,
673, 829, 603, 661, 675, 681, 693, 701, 703, 723,
733, 735, 747, 763, 765, 820, 118, 123, 122, 126,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
138, 139, 140, 141, 142, 143, 144, 146, 829, 829,
823, 156, 829, 829, 274, 823, 274, 823, 825, 829,
829, 47, 0, 804, 820, 47, 533, 47, 38, 818,
0, 33, 47, 0, 820, 644, 298, 598, 292, 804,
296, 0, 520, 416, 0, 711, 820, 420, 423, 829,
818, 293, 299, 826, 799, 315, 839, 829, 312, 828,
550, 592, 826, 595, 0, 0, 575, 318, 820, 0,
0, 0, 0, 769, 777, 820, 338, 829, 829, 818,
0, 828, 0, 0, 828, 0, 0, 407, 820, 828,
818, 0, 264, 512, 0, 649, 729, 741, 838, 458,
818, 516, 517, 822, 234, 829, 648, 0, 820, 197,
70, 831, 0, 818, 0, 804, 0, 834, 74, 831,
205, 829, 831, 78, 831, 0, 820, 835, 43, 804,
0, 804, 804, 804, 804, 804, 804, 804, 826, 804,
804, 804, 804, 826, 825, 0, 0, 818, 818, 818,
818, 818, 825, 0, 0, 825, 818, 826, 818, 832,
820, 818, 687, 751, 829, 822, 606, 829, 818, 820,
534, 828, 48, 829, 61, 820, 828, 33, 36, 572,
822, 717, 829, 804, 419, 0, 818, 820, 425, 818,
794, 804, 775, 310, 839, 829, 314, 818, 392, 0,
792, 804, 0, 829, 804, 0, 321, 0, 380, 0,
781, 829, 829, 822, 0, 826, 826, 337, 0, 0,
820, 342, 818, 822, 828, 822, 539, 829, 828, 659,
829, 822, 0, 0, 61, 265, 537, 829, 804, 826,
826, 519, 0, 820, 828, 818, 0, 837, 816, 0,
195, 277, 52, 821, 828, 231, 84, 594, 88, 816,
56, 0, 54, 58, 821, 836, 820, 816, 674, 820,
604, 662, 676, 682, 694, 702, 704, 724, 734, 736,
748, 764, 766, 120, 121, 823, 818, 829, 818, 829,
829, 837, 629, 275, 829, 169, 826, 173, 0, 829,
816, 127, 61, 804, 804, 0, 818, 0, 829, 828,
0, 0, 820, 0, 820, 818, 804, 818, 712, 645,
829, 422, 424, 0, 820, 435, 0, 800, 804, 316,
818, 398, 0, 393, 396, 596, 573, 384, 0, 576,
320, 822, 829, 804, 818, 818, 0, 327, 770, 778,
828, 828, 341, 0, 820, 347, 818, 818, 828, 0,
804, 818, 822, 804, 828, 0, 839, 820, 840, 804,
818, 650, 730, 742, 824, 515, 838, 0, 828, 198,
715, 825, 0, 833, 825, 816, 0, 655, 657, 739,
757, 820, 820, 206, 217, 207, 212, 224, 0, 0,
818, 818, 822, 829, 823, 219, 829, 0, 90, 822,
816, 836, 835, 818, 585, 822, 822, 816, 840, 839,
829, 839, 818, 820, 0, 820, 0, 0, 0, 804,
818, 818, 818, 677, 685, 177, 825, 0, 820, 189,
816, 840, 688, 752, 268, 822, 267, 0, 0, 32,
0, 839, 29, 820, 521, 718, 418, 804, 818, 829,
434, 0, 563, 567, 639, 641, 457, 820, 441, 447,
458, 828, 828, 818, 451, 452, 453, 454, 455, 776,
818, 822, 395, 804, 745, 829, 0, 0, 782, 324,
323, 0, 828, 828, 783, 822, 345, 344, 346, 0,
820, 350, 818, 828, 0, 329, 540, 334, 335, 0,
660, 332, 818, 408, 39, 820, 0, 538, 514, 817,
0, 587, 459, 0, 461, 0, 518, 0, 0, 804,
818, 222, 816, 818, 829, 828, 804, 804, 804, 804,
200, 231, 203, 231, 231, 713, 731, 234, 822, 823,
828, 829, 818, 818, 0, 231, 817, 725, 87, 829,
818, 836, 835, 820, 97, 820, 101, 804, 818, 818,
829, 42, 40, 0, 15, 818, 829, 0, 827, 157,
743, 825, 667, 825, 168, 630, 829, 828, 0, 804,
804, 826, 818, 837, 274, 820, 820, 0, 0, 822,
0, 0, 0, 34, 27, 0, 839, 646, 421, 818,
829, 439, 438, 437, 804, 804, 804, 804, 440, 0,
450, 0, 0, 828, 820, 0, 818, 574, 804, 0,
381, 382, 0, 822, 822, 804, 818, 829, 349, 0,
820, 353, 829, 818, 820, 822, 787, 829, 0, 376,
831, 825, 828, 510, 804, 460, 824, 824, 824, 822,
825, 716, 221, 835, 836, 835, 818, 223, 829, 821,
841, 656, 658, 740, 758, 820, 0, 820, 225, 804,
804, 227, 818, 0, 0, 0, 822, 829, 209, 211,
0, 218, 533, 826, 0, 89, 98, 820, 95, 94,
821, 586, 0, 0, 829, 821, 651, 829, 820, 0,
822, 826, 818, 804, 164, 804, 837, 0, 0, 755,
822, 678, 686, 837, 0, 177, 819, 0, 825, 820,
835, 268, 825, 0, 269, 829, 820, 31, 829, 0,
426, 818, 564, 568, 640, 642, 541, 583, 665, 707,
829, 443, 444, 445, 446, 449, 448, 0, 399, 0,
394, 0, 746, 385, 0, 818, 818, 784, 343, 818,
829, 352, 818, 820, 818, 322, 0, 804, 818, 822,
49, 839, 531, 818, 588, 817, 0, 817, 817, 0,
818, 818, 836, 835, 820, 238, 820, 0, 818, 816,
0, 201, 202, 714, 732, 229, 0, 214, 210, 820,
551, 825, 0, 233, 822, 820, 726, 817, 92, 96,
822, 818, 820, 820, 818, 816, 804, 818, 145, 272,
818, 837, 0, 149, 818, 744, 826, 668, 0, 276,
170, 804, 818, 0, 543, 669, 829, 825, 826, 0,
174, 837, 836, 829, 829, 839, 829, 818, 827, 0,
829, 436, 804, 804, 804, 804, 0, 456, 829, 397,
325, 339, 340, 348, 818, 354, 356, 0, 820, 358,
0, 330, 788, 328, 818, 841, 820, 0, 528, 526,
828, 464, 828, 828, 466, 199, 220, 239, 820, 236,
235, 820, 829, 0, 85, 837, 0, 705, 242, 204,
804, 818, 825, 818, 828, 192, 102, 103, 820, 820,
828, 0, 652, 44, 820, 0, 829, 826, 828, 152,
818, 837, 165, 0, 167, 756, 820, 176, 804, 804,
818, 163, 837, 822, 0, 816, 0, 820, 841, 818,
829, 826, 818, 0, 0, 542, 584, 666, 708, 442,
0, 351, 829, 390, 387, 389, 386, 388, 391, 357,
0, 635, 820, 363, 368, 374, 409, 379, 818, 412,
378, 377, 0, 828, 822, 0, 820, 816, 820, 531,
237, 816, 821, 829, 0, 719, 254, 826, 228, 816,
552, 828, 818, 213, 0, 820, 193, 727, 759, 821,
829, 829, 829, 75, 76, 268, 821, 829, 829, 148,
818, 837, 0, 0, 820, 0, 671, 829, 171, 544,
670, 178, 0, 0, 0, 187, 190, 825, 816, 0,
822, 0, 837, 0, 183, 818, 28, 0, 403, 820,
829, 818, 829, 361, 360, 804, 362, 0, 0, 0,
0, 828, 411, 829, 0, 818, 0, 822, 822, 828,
0, 522, 818, 828, 820, 820, 820, 820, 0, 816,
818, 226, 826, 230, 816, 706, 833, 0, 208, 820,
0, 826, 826, 818, 106, 104, 105, 841, 816, 818,
0, 150, 0, 822, 569, 825, 154, 0, 161, 804,
818, 175, 0, 820, 837, 0, 828, 0, 266, 0,
829, 826, 829, 30, 400, 0, 0, 0, 820, 818,
636, 829, 365, 366, 367, 589, 372, 373, 828, 412,
828, 0, 0, 0, 509, 527, 532, 818, 818, 0,
822, 820, 818, 0, 828, 240, 241, 818, 829, 0,
828, 720, 832, 816, 216, 215, 91, 728, 760, 0,
0, 0, 828, 273, 147, 818, 804, 820, 816, 825,
672, 829, 268, 825, 0, 829, 820, 829, 182, 818,
837, 0, 829, 0, 829, 355, 359, 0, 804, 828,
410, 828, 369, 375, 413, 414, 415, 820, 530, 529,
463, 816, 524, 820, 468, 818, 462, 0, 829, 818,
829, 841, 816, 835, 836, 835, 818, 821, 582, 820,
829, 268, 153, 570, 151, 119, 818, 0, 828, 820,
188, 818, 45, 818, 184, 0, 825, 0, 0, 829,
818, 364, 590, 371, 370, 46, 523, 467, 0, 820,
471, 474, 829, 818, 465, 0, 820, 818, 0, 816,
836, 835, 818, 836, 835, 820, 246, 820, 0, 816,
816, 818, 841, 820, 820, 820, 825, 0, 180, 191,
822, 181, 820, 268, 404, 0, 401, 829, 470, 0,
818, 822, 476, 818, 829, 830, 110, 818, 828, 820,
836, 835, 820, 258, 820, 0, 247, 820, 244, 243,
821, 268, 268, 804, 828, 0, 116, 117, 155, 166,
829, 0, 0, 159, 185, 0, 829, 818, 829, 473,
475, 0, 820, 479, 231, 818, 820, 829, 841, 820,
259, 820, 256, 255, 821, 245, 818, 820, 820, 820,
268, 820, 0, 820, 829, 829, 818, 469, 818, 829,
478, 0, 487, 491, 217, 492, 820, 482, 484, 495,
828, 828, 818, 196, 496, 497, 498, 499, 820, 816,
0, 0, 72, 257, 818, 829, 99, 100, 820, 841,
820, 820, 274, 818, 0, 402, 472, 818, 829, 488,
500, 0, 503, 231, 0, 231, 458, 481, 0, 0,
0, 828, 818, 0, 112, 0, 804, 829, 820, 829,
821, 79, 0, 81, 825, 825, 829, 825, 477, 818,
838, 502, 489, 824, 824, 824, 490, 493, 829, 486,
485, 0, 818, 822, 830, 820, 818, 820, 0, 820,
818, 820, 820, 837, 160, 820, 480, 501, 817, 0,
817, 817, 0, 0, 458, 818, 818, 820, 107, 820,
71, 829, 820, 820, 818, 829, 820, 179, 0, 186,
828, 506, 828, 828, 508, 483, 494, 818, 820, 109,
111, 0, 0, 820, 251, 829, 0, 80, 158, 820,
820, 531, 231, 820, 830, 820, 248, 0, 829, 828,
828, 820, 820, 820, 820, 820, 829, 0, 0, 0,
828, 820, 108, 820, 261, 0, 820, 505, 504, 0,
820, 260, 820, 820, 820, 507, 820, 820, 820, 820,
253, 525, 820, 252, 250, 249
};
/* YYDEFGOTO[NTERM-NUM]. */
static const short int yydefgoto[] =
{
-1, 1, 2, 3, 4, 7, 45, 46, 52, 53,
47, 17, 18, 19, 20, 246, 167, 448, 598, 344,
345, 730, 659, 660, 742, 96, 423, 424, 430, 431,
434, 435, 334, 335, 136, 526, 978, 1128, 686, 980,
981, 982, 1270, 1579, 1645, 1646, 243, 1747, 1853, 349,
350, 555, 556, 557, 558, 559, 560, 561, 1281, 1403,
1498, 1499, 562, 563, 564, 1901, 565, 1293, 1406, 1502,
566, 567, 568, 569, 570, 571, 572, 1161, 1295, 573,
1521, 1614, 574, 575, 1008, 1009, 1575, 418, 690, 948,
949, 1942, 962, 1943, 1944, 1036, 966, 967, 1375, 1475,
1246, 817, 1233, 1234, 1235, 1568, 1793, 1794, 1795, 1653,
1839, 1840, 1841, 137, 1304, 351, 1169, 159, 576, 722,
863, 138, 420, 139, 140, 141, 142, 143, 39, 84,
76, 85, 378, 77, 86, 279, 280, 478, 625, 763,
281, 282, 283, 284, 490, 641, 285, 286, 287, 288,
289, 290, 1077, 1078, 493, 645, 646, 790, 1065, 791,
924, 925, 1070, 1071, 1210, 1211, 1343, 1448, 1622, 1449,
1542, 1701, 1543, 1544, 1081, 1545, 638, 778, 484, 1532,
479, 768, 903, 1052, 626, 764, 1618, 1619, 485, 500,
1547, 1632, 1774, 379, 464, 465, 616, 617, 618, 757,
188, 758, 894, 1180, 895, 1037, 1320, 1038, 1039, 1040,
813, 1092, 1721, 1783, 1784, 1829, 1830, 1831, 1871, 1872,
1912, 1913, 1946, 1947, 1948, 1949, 1979, 1980, 811, 321,
415, 510, 511, 669, 461, 1556, 1641, 1352, 1459, 1456,
739, 779, 1181, 939, 797, 930, 1321, 1432, 1416, 1508,
322, 410, 260, 367, 396, 481, 1381, 1480, 189, 262,
190, 263, 191, 264, 192, 265, 193, 266, 1041, 1184,
194, 267, 1042, 1185, 1675, 1746, 462, 609, 907, 1053,
637, 774, 323, 411, 172, 165, 250, 1799, 1322, 1433,
986, 1137, 1094, 1224, 1707, 1768, 1043, 482, 527, 685,
971, 771, 380, 458, 144, 201, 145, 202, 578, 701,
444, 593, 146, 205, 147, 204, 148, 203, 149, 206,
150, 207, 87, 111, 78, 107, 79, 108, 88, 112,
89, 113, 90, 114, 864, 999, 292, 198, 105, 163,
1549, 1625, 1045, 257, 1046, 1186, 1047, 1187, 1048, 454,
890, 1027, 422, 513, 673, 808, 1277, 1396, 160, 242,
972, 1106, 973, 1107, 800, 933, 579, 702, 151, 208,
1323, 1434, 1153, 1285, 1417, 1509, 1597, 1679, 541, 699,
580, 703, 1005, 1159, 152, 209, 581, 704, 256, 361,
1006, 1160, 734, 873, 50, 91, 21, 30, 582, 705,
97, 122, 195, 268, 22, 31, 583, 706, 584, 707,
1478, 1567, 1324, 1435, 23, 32, 619, 753, 1117, 1249,
951, 1099, 752, 886, 1566, 1652, 153, 210, 585, 708,
1129, 1263, 1580, 1661, 674, 809, 1118, 1250, 586, 709,
587, 710, 154, 211, 975, 1108, 675, 810, 1151, 1283,
1055, 1198, 588, 711, 155, 212, 735, 874, 24, 33,
1290, 1411, 976, 1109, 1581, 1662, 156, 213, 589, 712,
590, 713, 294, 390, 647, 785, 295, 383, 296, 384,
765, 898, 648, 786, 297, 385, 782, 913, 1067, 1205,
298, 386, 1217, 1347, 299, 387, 486, 632, 480, 623,
300, 388, 301, 389, 627, 761, 8, 27, 58, 59,
60, 41, 61, 62, 432, 977, 381, 592, 230, 837,
42, 168, 683, 244, 43, 1162, 639, 1170, 537, 331,
339, 332, 241, 518, 519, 952, 812, 25, 336, 440
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
#define YYPACT_NINF -1822
static const short int yypact[] =
{
346, 148, 74, 132, 123, -1822, -1822, 440, -1822, 443,
74, 74, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, 121, 514, 514,
308, 224, 224, 308, -1822, 515, -1822, -1822, 515, -1822,
-1822, 633, 679, 708, -1822, 120, -1822, -1822, -1822, -1822,
-1822, 105, 189, -1822, -1822, -1822, -1822, 210, -1822, -1822,
-1822, 900, 198, -1822, -1822, -1822, -1822, -1822, 372, 372,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, 224, -1822, -1822, 407, -1822, 418, -1822, 337, -1822,
-1822, -1822, 372, 372, -1822, 424, 383, 92, 222, 472,
478, 224, 633, 633, 633, 407, 406, 406, -1822, -1822,
-1822, -1822, 224, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, 424, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, 496, 496, -1822, 496, 496, 496, -1822, -1822, 473,
528, 537, 537, 633, -1822, -1822, 571, 424, 520, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, 636,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, 737, 633, 210,
-1822, 633, 92, 92, 92, 156, 92, 92, 633, 633,
103, 633, 633, 633, -1822, 571, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, 526, 637, -1822, 637, 637, 637, 637,
-1822, -1822, -1822, -1822, 372, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, 633, -1822, -1822, -1822, 424, -1822, 424, -1822,
633, -1822, -1822, -1822, 571, -1822, -1822, 633, 427, -1822,
-1822, 472, 633, 633, 633, 633, 633, 633, 633, 645,
645, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, 382, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, 687, 407, -1822, -1822, -1822, 118, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, 684, -1822, 407, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, 436, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, 678, -1822, 711, -1822, -1822, -1822, -1822, -1822,
-1822, 224, -1822, -1822, -1822, -1822, -1822, 633, 407, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
720, -1822, -1822, 633, 224, 224, 633, 224, 224, 224,
224, -1822, 682, -1822, -1822, 268, 407, 407, -1822, 407,
-1822, 407, 407, -1822, 407, 407, -1822, -1822, -1822, -1822,
633, 633, 407, 637, -1822, -1822, -1822, -1822, 636, -1822,
-1822, 736, -1822, 723, -1822, -1822, -1822, -1822, 711, 729,
734, -1822, -1822, 734, 723, -1822, -1822, -1822, -1822, -1822,
680, -1822, 2489, -1822, 751, -1822, -1822, -1822, 643, 407,
-1822, -1822, -1822, 407, 633, 472, -1822, -1822, 633, 472,
-1822, 720, -1822, -1822, 664, -1822, 686, 472, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, 472, -1822, 712, -1822,
-1822, 633, 633, -1822, -1822, 280, -1822, -1822, 455, -1822,
-1822, 280, -1822, -1822, 202, 280, 711, -1822, -1822, 711,
776, 407, 407, -1822, -1822, -1822, -1822, -1822, 637, -1822,
784, -1822, 568, 633, -1822, 637, 407, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, 772, -1822, -1822,
-1822, 407, -1822, -1822, -1822, -1822, -1822, -1822, -1822, 407,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, 779, 433, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, 800, -1822, -1822,
-1822, -1822, -1822, -1822, 749, -1822, 749, 384, 553, -1822,
-1822, -1822, 124, 633, -1822, 643, 407, 643, -1822, 680,
210, 537, 643, 407, 636, -1822, -1822, -1822, -1822, 633,
-1822, 636, -1822, -1822, 700, -1822, 738, -1822, -1822, -1822,
-1822, -1822, -1822, 224, -1822, 762, -1822, -1822, -1822, -1822,
-1822, -1822, 151, -1822, 268, 268, -1822, 687, 776, 407,
130, 687, 407, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
687, -1822, 687, 816, -1822, 743, 636, 736, 636, -1822,
-1822, 637, -1822, -1822, 826, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, 728, 496, -1822, -1822, 407, -1822, -1822,
-1822, -1822, 407, -1822, 424, 633, 807, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, 407, -1822, -1822, 780, 633,
407, 633, 633, 633, 633, 633, 633, 633, 224, 633,
633, 633, 633, 224, -1822, 424, 816, -1822, -1822, -1822,
-1822, -1822, 473, 786, 407, 732, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, 680, -1822,
636, -1822, -1822, -1822, -1822, -1822, -1822, 537, -1822, -1822,
-1822, -1822, -1822, 633, -1822, 788, 686, 690, -1822, -1822,
-1822, 633, -1822, -1822, -1822, -1822, -1822, -1822, 776, 407,
-1822, 633, 840, -1822, 633, 268, -1822, 636, -1822, 597,
-1822, -1822, -1822, -1822, 840, 128, 128, -1822, 832, 832,
-1822, 638, -1822, -1822, 807, -1822, -1822, -1822, 807, -1822,
-1822, -1822, 424, 424, -1822, -1822, -1822, -1822, 633, 250,
73, -1822, 645, 601, -1822, -1822, 758, -1822, -1822, 758,
-1822, -1822, -1822, -1822, -1822, 1598, -1822, -1822, 687, -1822,
-1822, 489, -1822, -1822, 636, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, 488, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, 353, -1822, -1822, 605, -1822,
-1822, -1822, -1822, 633, 633, 407, -1822, 637, -1822, -1822,
736, 407, -1822, 736, -1822, -1822, 633, -1822, -1822, -1822,
-1822, -1822, -1822, 406, 498, -1822, 701, -1822, 633, -1822,
-1822, -1822, 636, -1822, 736, -1822, -1822, -1822, 744, -1822,
-1822, -1822, -1822, 633, -1822, -1822, 407, -1822, -1822, -1822,
-1822, -1822, -1822, 650, 664, -1822, -1822, -1822, -1822, 268,
633, -1822, -1822, 633, -1822, 407, -1822, -1822, 418, 633,
-1822, -1822, -1822, -1822, 847, -1822, 146, 807, 728, -1822,
-1822, -1822, 680, -1822, -1822, -1822, 807, -1822, -1822, -1822,
-1822, 65, -1822, -1822, 65, -1822, 273, -1822, 449, 760,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, 645, 764, -1822,
851, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, 776, 758, -1822, 763, 794, 680, 633,
-1822, -1822, -1822, -1822, -1822, 848, 473, 794, 636, -1822,
-1822, 418, -1822, -1822, 844, -1822, -1822, 407, 807, -1822,
736, -1822, -1822, -1822, -1822, -1822, -1822, 633, 686, -1822,
-1822, 647, -1822, -1822, -1822, -1822, -1822, 363, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, 832, 633, -1822, -1822, 407, 268, -1822, -1822,
-1822, 280, 840, 840, -1822, -1822, -1822, -1822, -1822, 700,
738, -1822, 686, -1822, 687, -1822, -1822, -1822, -1822, 820,
-1822, 776, -1822, 736, -1822, -1822, 337, -1822, -1822, -1822,
720, -1822, -1822, 407, -1822, 796, -1822, 636, 758, 633,
-1822, -1822, -1822, -1822, 687, -1822, 633, 633, 633, 633,
-1822, 811, -1822, 811, 811, -1822, -1822, 496, -1822, -1822,
-1822, -1822, -1822, 479, 729, 86, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, 633, -1822, -1822,
687, -1822, -1822, 818, -1822, -1822, -1822, 636, 136, -1822,
-1822, 756, -1822, 473, -1822, -1822, -1822, -1822, 769, 633,
633, 812, -1822, -1822, 749, -1822, -1822, 407, 337, -1822,
678, 758, 736, -1822, -1822, 680, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, 633, 633, 633, 633, -1822, 370,
601, 701, 701, -1822, 809, 407, -1822, -1822, 633, 268,
-1822, -1822, 407, -1822, -1822, 633, -1822, -1822, -1822, 788,
-1822, -1822, -1822, -1822, 776, -1822, -1822, -1822, 636, -1822,
-1822, 473, -1822, -1822, 633, -1822, 877, -1822, 847, -1822,
-1822, -1822, -1822, 734, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, 273, 795, 273, -1822, 633,
633, 802, -1822, 729, 807, 895, -1822, -1822, -1822, 273,
449, -1822, 407, 78, 115, -1822, -1822, -1822, -1822, -1822,
867, -1822, 424, 424, -1822, -1822, -1822, -1822, -1822, 637,
-1822, 812, -1822, 633, -1822, 633, -1822, 637, 807, -1822,
-1822, -1822, -1822, -1822, 164, -1822, -1822, 680, 473, -1822,
-1822, 844, 473, 816, -1822, -1822, -1822, -1822, -1822, 680,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, 807, -1822, 821,
-1822, 840, -1822, -1822, 529, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, 686, 839, -1822, -1822, 268, 633, -1822, -1822,
-1822, -1822, 776, -1822, -1822, -1822, 807, -1822, -1822, 720,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, 407, -1822, -1822,
424, -1822, -1822, -1822, -1822, 805, 813, -1822, -1822, -1822,
-1822, -1822, 823, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, 633, -1822, -1822, -1822,
-1822, -1822, 164, -1822, -1822, -1822, 812, -1822, 680, -1822,
-1822, 633, -1822, 680, -1822, -1822, -1822, 473, 812, 407,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, 217, 407,
-1822, -1822, 633, 633, 633, 633, 701, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, 1011, 607, -1822,
397, -1822, -1822, -1822, -1822, -1822, -1822, 636, 321, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, 636, -1822, 571, -1822, -1822, 808, -1822, 496, -1822,
633, -1822, -1822, -1822, -1822, 407, -1822, 376, -1822, -1822,
800, 816, -1822, -1822, -1822, 680, -1822, 812, 903, -1822,
-1822, -1822, -1822, 550, -1822, -1822, -1822, -1822, 633, 633,
-1822, -1822, -1822, 190, 680, -1822, 794, -1822, -1822, -1822,
-1822, 812, -1822, 736, 407, -1822, -1822, -1822, -1822, -1822,
407, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
669, -1822, 205, 345, -1822, -1822, 388, -1822, -1822, -1822,
-1822, -1822, 680, -1822, 916, 522, 776, -1822, 776, 776,
-1822, 926, -1822, -1822, 680, -1822, 496, 296, -1822, -1822,
-1822, -1822, -1822, -1822, 720, -1822, 636, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, 844, -1822, -1822, -1822, -1822,
-1822, -1822, 636, 917, 916, 680, -1822, -1822, -1822, -1822,
-1822, -1822, 680, 711, 917, -1822, -1822, 473, -1822, 680,
-1822, 637, -1822, 164, -1822, -1822, -1822, 736, -1822, 931,
353, -1822, -1822, -1822, -1822, 633, -1822, 240, 593, 375,
711, -1822, 736, -1822, 720, -1822, 895, -1822, -1822, -1822,
636, -1822, -1822, -1822, -1822, -1822, -1822, -1822, 687, -1822,
-1822, -1822, 250, -1822, -1822, -1822, -1822, 840, -1822, -1822,
720, 224, 224, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
637, -1822, 680, -1822, -1822, 310, -1822, 895, -1822, 633,
-1822, -1822, 407, -1822, -1822, 571, -1822, 744, -1822, 680,
-1822, 812, 776, -1822, -1822, 933, 407, 917, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
807, 807, 375, 407, -1822, -1822, -1822, -1822, -1822, 807,
-1822, -1822, -1822, 840, -1822, -1822, -1822, -1822, -1822, 571,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, 407,
918, 816, -1822, -1822, -1822, -1822, 633, -1822, -1822, -1822,
-1822, -1822, 844, 310, 680, -1822, -1822, -1822, -1822, -1822,
-1822, 569, -1822, 807, -1822, -1822, -1822, 397, 633, 840,
736, 807, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, 664, -1822, 686, -1822, 720, -1822, -1822,
-1822, -1822, -1822, 734, -1822, -1822, -1822, 636, -1822, -1822,
-1822, 844, -1822, -1822, -1822, -1822, -1822, 763, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, 680, 310, 407, 407, -1822,
-1822, 345, -1822, -1822, -1822, -1822, -1822, -1822, 700, 738,
-1822, -1822, -1822, -1822, -1822, 816, 302, -1822, 424, 863,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, 407, 926,
-1822, -1822, -1822, -1822, -1822, -1822, 756, 807, -1822, -1822,
870, -1822, -1822, 844, -1822, 917, -1822, -1822, -1822, 788,
686, 342, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, 407, -1822, -1822, -1822, -1822,
-1822, 844, 844, 633, -1822, 424, -1822, -1822, -1822, -1822,
-1822, 794, 743, -1822, -1822, 807, -1822, -1822, -1822, -1822,
-1822, 406, 498, -1822, 2121, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
844, -1822, 917, -1822, -1822, -1822, -1822, -1822, 686, -1822,
-1822, 647, 804, -1822, 65, 924, 363, -1822, -1822, -1822,
-1822, -1822, -1822, 574, -1822, -1822, -1822, -1822, 779, -1822,
816, 424, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, 749, -1822, 917, -1822, -1822, -1822, -1822, 601,
-1822, 407, -1822, 811, 796, 811, -1822, -1822, 370, 701,
701, -1822, -1822, 816, -1822, 424, 633, -1822, -1822, -1822,
729, -1822, 424, -1822, 310, 473, -1822, 310, -1822, -1822,
146, -1822, 273, 877, -1822, 847, 273, 601, -1822, -1822,
-1822, 807, 686, -1822, -1822, -1822, -1822, -1822, 816, 437,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, 807,
-1822, -1822, 720, 701, -1822, -1822, -1822, -1822, -1822, 779,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, 680, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, 601, -1822, -1822, -1822,
-1822, 424, 407, -1822, -1822, -1822, 816, -1822, -1822, 776,
776, 776, 2121, -1822, -1822, 424, -1822, 816, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, 407, 807, 840,
-1822, -1822, -1822, -1822, -1822, 407, 424, -1822, -1822, 720,
-1822, -1822, 424, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822
};
/* YYPGOTO[NTERM-NUM]. */
static const short int yypgoto[] =
{
-1822, -1822, -1822, -1822, -1822, 752, -1822, 911, -1822, 907,
340, 922, 923, -1822, -1822, -99, -1822, 364, 639, -1822,
-26, -1822, 67, -338, 644, -686, -1822, 540, 625, 297,
-1822, 533, -1822, 541, -1822, -1087, -1822, -1822, -1822, -1822,
-10, -9, -1822, -1822, -877, -874, -427, -1640, -1822, -828,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -422, -608,
-1822, -762, -1822, -1822, -1822, -1822, -1822, -1193, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -310, -524, -1822,
-625, -772, -1822, -1822, -1822, -522, -1822, -1284, -317, -624,
824, -448, -1822, 169, 170, -502, -1051, -118, -1822, -1822,
-805, -119, -1822, -234, -231, -1822, -1822, -788, -787, -1822,
-1822, -829, -825, -1822, -1822, -1822, -1145, -965, -1822, -575,
-1822, -1822, -1822, -1822, -259, -1822, -801, -1822, 975, -1822,
-1822, -1822, 747, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, 523, -1822, -1822, -1822, -1822,
-1822, -1822, -1011, -384, -1822, -1822, -1095, -1822, -1822, -1822,
-1822, -308, -1822, -415, -307, -1822, -589, -1822, -1822, -663,
-1822, -1822, -728, -1822, -1018, -1822, -550, -577, -528, -1822,
-1822, -1822, -155, -1822, -1822, -1822, -777, -1822, -157, -1822,
-1822, -666, -1822, 2900, -1822, -859, -1822, -726, -1822, -1822,
-112, -1130, -1822, -897, -1258, -1822, -942, -1144, -1822, -1822,
-1007, -961, -905, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -895, -620,
-1822, -1822, 111, -1822, -1403, -1008, -724, -1402, -582, -1495,
-207, -100, 392, -1822, -627, -1822, -568, -1822, -1317, -1822,
-128, -1822, 398, -1822, -403, -1822, -1425, -1822, -145, -1822,
-387, -1822, -386, -1822, -385, -1822, -382, -1822, -1006, -1822,
-381, -1822, -990, -1822, -1523, -1822, -447, -1822, -750, -1822,
-323, -1822, -149, -1822, -121, -94, -1822, -773, -1822, -1822,
-1822, -1822, -1556, -1822, -1822, -1822, -278, -1822, -1822, -1822,
-459, -1822, -781, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-103, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, 476, -1822, 36, -1822,
-1513, -1822, -102, -1822, -1821, -1822, -1811, -1822, -254, -1822,
-1155, -1822, -196, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -833, -1822, -1822, -1822, -1822, -1822,
-557, -1822, -963, -1822, -1822, -1822, -1822, -1822, -175, -1822,
-1822, -1822, -258, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -305, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
875, -1822, -1822, -1822, 1040, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -549, -1822, 1046, -1822, -1021, -1822, -1822, -1822,
-725, -1822, -1031, -1822, -1822, -1822, -786, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -178, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -41, -1822, -1822, -1822, -722, -1822,
-601, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -174, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, 165, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822,
-1822, -1822, -1822, -1822, -1822, -1822, -1822, -1822, 3561, 1049,
278, -1822, -1822, 590, 1545, -203, 866, -209, 1609, -412,
4183, -200, -909, 76, -187, -1052, 3409, -21, -1773, -140,
-232, -228, 404, -343, -349, -763, -240, 294, -8, -497
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule which
number is the opposite. If zero, do what YYDEFACT says.
If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -841
static const short int yytable[] =
{
35, 36, 37, 38, 366, 196, 341, 354, 174, 419,
668, 725, 343, 397, 610, 179, 492, 594, 516, 497,
968, 252, 326, 293, 969, 1182, 634, 684, 1026, 94,
891, 944, 642, 1190, 917, 1089, 642, 1258, 1207, 974,
291, 1183, 214, 98, 1164, 102, 103, 1325, 1326, 1310,
814, 1212, 358, 1431, 1340, 1214, 348, 109, 110, 1558,
1245, 1559, 1247, 248, 1644, 784, 115, 116, 117, 118,
318, 1219, 1706, 253, 1259, 325, 446, 327, 328, 329,
330, 1683, 530, 691, 166, 1496, 535, 529, 1401, 855,
532, 534, 333, 1955, 954, 338, 1282, 340, 998, 342,
199, 794, 1916, 1956, 798, 106, 772, 773, -804, 360,
599, 1338, -804, 1809, -822, 215, 1709, -822, 938, -822,
-5, 1221, -822, 223, 224, 225, 226, 227, 228, 229,
1638, -804, 234, -822, -804, 1513, -822, 365, 161, 162,
369, 181, -149, -829, -822, 377, 254, -822, 5, 120,
523, -804, 353, 258, 355, 393, 1424, -804, 261, 453,
451, 727, -822, 395, 958, -822, 1378, 269, 680, -822,
1414, -829, -822, 1091, 1764, 270, 1862, 408, 409, 688,
-804, -840, -804, 1119, 693, 1331, 1011, -804, 417, -7,
780, 417, -822, 412, 427, -822, 1126, -822, 259, 1776,
-822, 1576, 95, 1302, 502, 959, 503, 6, 6, -829,
-822, 1716, 6, 1501, 44, 12, -804, 732, 651, 13,
-149, 654, -149, -183, 14, 1512, 6, 231, 233, -804,
236, 238, 240, 346, 670, 362, 245, 6, 1816, 591,
1441, 1442, 491, 596, 495, 1316, 15, 910, 1415, 733,
438, 2047, 1749, 731, -804, -804, 643, 738, 672, 11,
644, 1955, 6, -822, 507, -822, -822, 10, -822, 1148,
337, 1956, 398, 399, 400, 401, 402, 403, 404, 405,
406, -804, 407, 44, 12, 6, 521, -822, 13, 393,
6, -822, 1529, 14, -822, 861, 1690, 488, 866, 120,
413, -183, 1178, -183, 1591, 40, -821, 95, -822, 633,
34, 2093, 1203, 1204, 1228, 15, -115, 1355, 1357, 1358,
1260, 1212, 1318, 965, 425, -829, 1798, -804, 1612, 920,
921, -829, 26, 483, 606, 436, -804, -822, 608, 101,
-822, 93, 1906, 1319, 657, 455, 621, 16, 100, -822,
-820, -825, -822, 604, 836, 622, 6, 459, 6, 662,
820, 467, 393, 828, 2032, -820, 678, 2035, -822, 54,
1062, 1063, -828, 1230, -828, 1316, 1522, 961, 1762, -825,
719, 394, -804, 901, 6, 724, 1982, 726, -822, 319,
-172, 393, 54, 508, -115, 1317, -115, 393, -828, 515,
1297, 1075, 658, 104, -172, -804, 120, -804, -172, 1971,
394, 955, -804, 158, -820, 425, -828, 181, 182, 183,
184, 185, 987, 186, 743, 394, 436, 1541, 120, 173,
6, 216, 217, 218, 219, 220, 221, 222, 120, -125,
1667, -821, 6, 1551, 259, -822, 1306, 171, 164, 1541,
-820, 2007, 1318, -125, 123, 124, 125, 126, 127, 629,
164, 164, 364, 259, 128, 635, -822, 129, -172, -172,
-172, 928, -172, 1319, -823, 932, -172, 1019, 636, 1200,
1022, -4, -6, 1387, -802, 661, 988, -802, -802, 1577,
-802, -802, 171, -802, -124, 781, 740, 870, 1760, 130,
181, -822, 745, 1257, 187, 1578, 135, 131, -124, 775,
173, -172, 805, 783, -822, 984, -822, -125, -125, -125,
700, -125, 793, 1408, 795, -125, 796, -825, 132, 1201,
1413, 1060, 1380, 319, 1623, 12, 133, 1631, 393, 13,
868, 822, 134, 1093, 14, 357, 320, 970, 135, 830,
1624, 906, 832, 1607, 833, 1115, 716, 717, 718, -113,
-125, 720, 721, 878, 1116, -828, 15, 865, 728, 729,
121, -825, -124, -124, -124, 392, -124, 26, -829, 1163,
-124, 1439, 181, 393, 1440, -232, 2091, 1001, 1674, 1298,
826, 180, 9, 1196, -232, 834, 394, 394, 756, 120,
9, 9, 1202, 364, 319, 259, 767, 1808, 44, 12,
-828, 255, 904, 13, 13, -124, 1156, 1174, 14, 14,
1091, 854, 633, -822, 1096, -822, 788, 789, -828, -828,
-828, -828, 1134, 1105, 1415, 1596, 1227, 1133, 1495, 1135,
15, -113, 665, 1223, 259, -113, 1705, 445, 884, 447,
806, 912, 816, 450, 819, 992, 1852, 320, 1514, 2080,
723, 2081, 723, 1032, 741, 1033, 1194, 48, 55, 746,
831, 1333, 49, 56, -822, 377, 1426, -822, -826, 1002,
-826, -826, 666, -826, 48, 1032, 985, 1033, 667, 49,
1769, 55, 1771, 1003, 319, 1173, 56, 1004, -829, -829,
979, -822, -822, -822, -822, -822, 1095, -822, 936, 937,
780, 1064, 1564, 875, 1908, -831, 877, 1032, 1905, 1033,
74, 443, 881, 75, 1284, 1102, 1286, 528, 1016, 394,
528, 887, 120, 173, 1034, 1035, 364, 44, 1595, 394,
-818, 460, 437, 1370, 900, 393, 1927, 1928, 477, 1602,
818, 2036, 908, 80, -840, 81, 82, 525, 83, 1061,
914, 915, 28, 29, 1832, -816, 540, 6, 120, 1307,
923, -113, -822, 628, 1124, 665, 931, 1101, 1083, 934,
1494, 1029, 1266, 624, -828, 1969, 940, -822, -822, 1267,
853, 615, 271, 272, 1351, -93, 273, 1867, 414, 274,
-825, 275, 421, -828, -829, 276, 277, 278, 751, 595,
-822, 597, 428, 393, 602, 666, 514, 1226, 1451, 762,
796, 667, 799, 1154, 394, 633, 377, 1369, 1672, 806,
636, 1091, -838, -838, -838, -829, 994, 862, 996, 997,
-113, -113, -113, 1000, 457, 2019, 2020, 2008, 1007, 1689,
-822, -822, -822, -822, -822, -821, -822, 1017, 1391, -113,
889, 633, 906, 1395, 1587, 950, 1054, 135, -828, 1028,
132, 1421, 487, 180, -835, 1425, 1127, 1152, 496, -827,
498, 499, -829, 1216, 1150, 1365, 1222, -829, 506, 958,
1364, 1057, 1366, 1276, 51, 57, 1289, -829, -162, 2065,
-828, 1115, 68, 69, -826, 1380, 126, 1734, 1950, 1003,
-829, 51, 1464, 2029, -826, 1477, 732, 1565, 57, 1253,
766, 1754, -829, 1262, 1951, 601, -829, 1098, 1637, 180,
1086, 1379, 2012, -818, 2016, 1182, 1674, -829, 1933, 1414,
1111, -822, 1798, 1113, -822, -826, 1215, -826, -826, -835,
-826, 1183, 1123, -829, -838, 1125, 92, 1423, 1552, 99,
70, 71, 1141, 517, 1453, 1410, 433, 533, 522, 1143,
1131, 1132, 1891, 1786, 1294, 1892, 1238, 1854, 180, 2017,
346, 1497, 1671, 1802, 197, 1418, 1601, 1814, 671, 1691,
1511, 1692, 679, 1606, 963, 964, 1248, 1815, 1251, 1362,
1308, 1832, 1363, 1168, 1437, 1843, 1844, 421, 1179, 750,
1880, 1390, 1274, 1467, 1881, 698, 72, 382, 650, 1823,
1468, 1609, 181, 182, 183, 184, 185, 1100, 186, 1531,
1103, 1443, 1698, 1461, 1199, 1445, 1766, 2066, 904, 1821,
1330, 1864, 1114, 1770, 1978, 1334, 2018, 1991, 1937, 2037,
1986, 1088, 2079, 1715, 801, 1385, 807, 1826, 899, 1702,
1534, 1535, 1536, 1875, 1376, 1537, 1538, 1305, 1388, 1934,
1703, 1438, 180, 1515, 303, 66, 1950, 1482, 1704, 747,
1350, 67, 1384, 1239, 1261, 1856, 1757, 1419, 1066, 324,
73, 829, 1951, 0, 1402, 0, 0, 0, 0, 0,
1255, 0, 419, 0, 2038, 2040, 2041, 0, 1264, 968,
0, 352, 0, 969, 1800, 180, 0, 0, 180, 1275,
1616, 0, 1420, 0, 0, 1279, 0, 1659, 974, 0,
1399, 0, 0, 0, 1430, 1287, 0, 0, 1409, 0,
0, 0, 0, 1629, 1909, 0, 0, 0, 0, 0,
1649, 0, 1460, 421, 1462, 1463, 0, 0, 823, 1311,
0, 0, 740, 0, 0, 0, 0, 1663, 419, 1708,
1740, 180, 1548, 1329, 1668, 911, 839, 0, 1392, 1393,
1684, 0, 0, 0, 1485, 0, 1339, 1714, 1476, 0,
416, 1342, 0, 818, 0, 0, 1348, 0, 0, 0,
0, 0, 0, 2015, 0, 0, 0, 0, 1874, 0,
0, 0, 1976, 1736, 1693, 0, 442, 1368, 0, 1503,
0, 0, 0, 0, 449, 0, 0, 0, 0, 1712,
1084, 1294, 0, 1504, 0, 0, 1383, 0, 1507, 0,
723, 0, 0, 0, 0, 0, 0, 466, 0, 0,
0, 0, 0, 1394, 0, 0, 1397, 0, 0, 0,
0, 0, 0, 0, 489, 0, 494, 1471, 0, 494,
2058, 0, 0, 0, 0, 0, 1474, 968, 0, 0,
0, 969, 512, 1142, 1427, 1144, 0, 1429, 0, 0,
0, 0, 0, 1546, 1838, 0, 974, 0, 531, 1436,
1051, 421, 1533, 0, 0, 0, 1361, 0, 0, 0,
1402, 0, 0, 1582, 600, 1175, 0, 603, 0, 1444,
1589, 1114, 0, 1114, 0, 1682, 0, 0, 1563, 0,
0, 0, 620, 1997, 1613, 1114, 0, 0, 0, 1605,
1834, 0, 1696, 0, 0, 0, 0, 0, 1550, 2108,
0, 1014, 1710, 0, 0, 1895, 0, 1020, 0, 0,
649, 0, 0, 0, 0, 0, 2023, 1712, 0, 0,
0, 0, 1044, 1620, 0, 0, 0, 1633, 0, 0,
0, 0, 0, 0, 0, 1849, 0, 1772, 1773, 1651,
0, 0, 0, 687, 0, 1510, 1780, 2005, 0, 0,
0, 2051, 1516, 1517, 0, 1519, 1165, 0, 0, 1524,
0, 0, 1945, 0, 0, 0, 0, 1530, 0, 0,
1678, 1961, 0, 0, 1877, 0, 0, 1681, 1733, 1899,
0, 0, 0, 0, 1686, 0, 1866, 1555, 0, 0,
1819, 0, 0, 0, 0, 1846, 0, 0, 1824, 2088,
1845, 1562, 1847, 0, 0, 0, 0, 1481, 0, 0,
2096, 600, 1688, 600, 0, 744, 0, 0, 600, 1586,
1309, 0, 2002, 0, 0, 1590, 0, 1593, 1926, 0,
0, 0, 0, 1817, 0, 0, 759, 0, 0, 1548,
0, 1883, 1604, 1172, 1886, 1229, 1882, 1744, 1884, 1611,
1792, 1887, 0, 0, 1613, 0, 0, 824, 0, 0,
0, 1621, 1964, 0, 1758, 792, 0, 0, 0, 0,
1728, 1743, 0, 0, 0, 2014, 804, 0, 0, 0,
0, 1920, 180, 1636, 1900, 0, 324, 0, 1921, 1981,
1755, 0, 1650, 0, 0, 1280, 0, 0, 0, 825,
516, 0, 1975, 0, 1569, 0, 0, 0, 1572, 1664,
1665, 1666, 0, 0, 0, 0, 1669, 1670, 0, 1225,
0, 0, 0, 1677, 0, 0, 1680, 0, 2033, 1810,
1945, 0, 1935, 856, 1790, 858, 0, 0, 2030, 0,
0, 0, 0, 0, 0, 2064, 0, 872, 1695, 1697,
0, 1699, 0, 0, 744, 0, 0, 1093, 0, 0,
1546, 0, 1713, 0, 0, 0, 1349, 2054, 0, 0,
0, 0, 620, 0, 0, 896, 394, 633, -817, 120,
0, 0, 0, 494, 0, 0, 1952, 0, 0, 1797,
1861, 0, 1654, 1301, 128, 1455, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 926, 0,
1957, 1620, 2115, 0, 0, 1550, 0, 1044, 1044, 1759,
0, 1761, 665, 0, 0, 957, 958, 0, 0, 0,
1767, 825, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 2044, 0,
0, 0, 1984, 0, 0, 0, 2013, 1789, 132, 0,
0, 0, 666, 0, 0, 0, 2061, 959, 667, 1518,
0, 0, 0, 0, 0, 0, 960, 0, 0, 0,
1807, 0, 0, 0, 1811, 0, 1813, 0, 180, 0,
0, 1818, 0, 1820, 1879, 0, 0, 0, 0, 0,
0, 1748, 0, 466, 0, 2085, 0, 0, 0, 0,
0, 232, 0, 235, 237, 239, 1050, 1835, 0, 1837,
1095, 0, 0, 0, 251, 2107, 0, 0, 0, 1851,
2106, 494, 0, 0, 0, 0, 0, 0, 2112, 0,
0, 0, 1072, 1073, 1120, 0, 0, 494, 1865, 1939,
0, 1931, 0, 0, 1952, 0, 512, 0, 0, 0,
0, 1870, 1954, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 317, 0, 1806, 0, 0, 1957, 1748,
0, 0, 0, 0, 0, 2060, 825, 2062, 2063, 1903,
0, 0, 0, 180, 0, 0, 1907, 0, 0, 1136,
0, 0, 0, 1915, 0, 1554, 0, 0, 1145, 0,
0, 0, 359, 0, 0, 0, 494, 1998, 1158, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1932,
0, 0, 0, 2078, 0, 1936, 0, 1938, 391, 0,
0, 439, 1748, 0, 620, 421, 1960, 0, 0, 0,
0, 2024, 0, 0, 0, 1523, 0, 0, 2031, 0,
0, 514, 1044, 1973, 1974, 0, 494, 0, 1977, 0,
0, 1983, 0, 1985, 1232, 0, 0, 1237, 0, 0,
0, 0, 1993, 0, 0, 2052, 0, 0, 1213, 0,
0, 0, 0, 426, 2000, 0, 0, 0, 494, 0,
0, 0, 0, 0, 1265, 0, 0, 2009, 441, 0,
0, 421, 1272, 1273, 0, 0, 825, 0, 0, 825,
520, 0, 0, 0, 514, 0, 2026, 2084, 2028, 0,
1954, 536, 0, 0, 539, 2034, 0, 0, 0, 324,
1673, 2094, 0, 0, 0, 0, 825, 2043, 0, 0,
1617, 0, 0, 0, 825, 825, 0, 0, 0, 0,
0, 0, 2113, 0, 0, 0, 0, 0, 2117, 0,
0, 0, 0, 0, 509, 0, 0, 0, 1296, 0,
2072, 0, 0, 0, 2076, 0, 0, 0, 1720, 0,
0, 0, 0, 0, 0, 759, 0, 538, 723, 0,
0, 0, 0, 0, 2087, 0, 0, 0, 0, 0,
0, 0, 494, 0, 0, 682, 0, 2097, 0, 0,
0, 0, 649, 613, 0, 2105, 1377, 0, 0, 1344,
1748, 695, 0, 1748, 0, 0, 0, 0, 1114, 0,
0, 0, 1114, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1367, 0, 0, 487, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 825, 663,
0, 0, 0, 0, 0, 0, 0, 681, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1032, 689, 1033,
0, 692, 0, 694, 0, 0, 696, 697, 1404, 394,
633, -817, 120, 173, 1034, 1035, 364, 0, 1752, 0,
0, 0, 0, 0, 714, 0, 0, 128, 0, 0,
0, 0, 1763, 0, 0, 0, 0, 896, 0, 0,
0, 0, 0, 0, 1465, 1466, 0, 0, 1775, 1777,
0, 0, 1472, 0, 0, 665, 0, 0, 957, 958,
0, 649, 649, 737, 0, 926, 0, 0, 1213, 0,
1450, 0, 0, 748, 494, 180, 0, 0, 1490, 0,
0, 1493, 0, 0, 0, 754, 825, 825, 0, 0,
0, 132, 0, 0, 825, 666, 0, 0, 0, 0,
959, 667, 0, 0, 0, 0, 0, 776, 0, 960,
0, 0, 0, 0, 787, 0, 0, 1487, 0, 0,
825, 0, 0, 825, 0, 0, 324, 802, 0, 0,
1500, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 821, 0, 0,
0, 0, 0, 1863, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 835, 0, 1573, 0, 0,
1072, 0, 0, 0, 0, 0, 0, 0, 0, 0,
494, 0, 0, 0, 1890, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 871,
0, 0, 0, 0, 0, 0, 0, 0, 879, 825,
0, 0, 0, 0, 882, 0, 0, 0, 0, 0,
0, 1924, 0, 953, 0, 0, 892, 0, 0, 0,
0, 0, 0, 0, 983, 0, 1296, 0, 0, 0,
0, 0, 990, 0, 0, 0, 0, 0, 1615, 0,
1953, 0, 0, 0, 0, 0, 1658, 0, 0, 922,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 494, 1010, 0, 0, 0, 0,
0, 0, 945, 0, 0, 0, 0, 1648, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 825, 0,
0, 0, 0, 0, 0, 989, 0, 0, 991, 0,
0, 0, 0, 0, 0, 0, 1404, 2011, 0, 0,
0, 0, 0, 0, 0, 1044, 1044, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 825, 0, 0, 0, 0, 0, 1344, 0, 0,
0, 1021, 0, 1023, 0, 0, 0, 0, 0, 0,
1104, 0, 0, 1030, 0, -818, 0, -818, 1722, 0,
0, 0, 0, 0, 0, 0, 0, -818, 0, 1044,
-818, -818, -818, -818, -818, 983, 0, 0, 0, 1739,
0, 542, 1140, 1068, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1085, 0, 421, 0,
0, 0, 0, 0, 0, 1167, 0, 0, 421, 0,
0, 0, 0, -818, 0, 1450, 0, 0, 0, 543,
1110, 1112, 0, 421, 0, 0, 544, 0, 0, 545,
0, 421, -819, 0, 0, 546, 0, 0, 1785, 547,
548, 0, 0, 1788, -818, 0, 0, 0, 0, 0,
549, 0, 1146, -818, 1149, 550, 551, 0, 0, -818,
0, 1500, 552, 1836, -819, 0, 0, 1166, 0, 0,
553, 554, 0, 0, 0, 1615, 0, 0, 0, 0,
0, 0, 1176, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1188, 1236, 0, 0,
0, 1833, 0, 0, 0, 825, 0, 0, 0, 0,
0, 0, 1848, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1208,
0, 0, 0, 0, 0, 0, 494, 0, 0, 0,
0, 0, 0, 0, 1220, 0, 0, 0, 0, 1873,
0, 0, 0, 0, 0, 0, 0, 0, 1885, 0,
0, 0, 0, 0, 0, 1648, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 620, 0, 0, 1914,
0, 0, 1268, 1917, 1269, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 466, 1299, 1300, 0, 0, 1236, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1965, 0, 0, 0, 0, 0, 0, 0,
0, 0, 494, 1328, 620, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1992, 1341,
0, 0, 0, 1345, 0, 0, 0, 0, 0, 0,
1999, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 759, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1371, 0, 1372, 0, 2022, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 896, 1389, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1398, 2045, 0,
0, 0, 0, 0, 0, 0, 2055, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1422, 0,
0, 2067, 0, 0, 1473, 1428, 0, 0, 0, 0,
2075, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 2082, 0, 0, 0, 0, 0, 0,
1491, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1446, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1469, 0, 1470, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1479, 0,
0, 0, 0, 0, 1484, 0, 0, 0, 0, 0,
0, 1488, 1489, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1539, 0, 0,
1010, 0, 0, 0, 0, 1553, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1560, 0, 0,
1561, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1583, 1584, 0,
0, 0, 1642, 1588, 0, 0, 1647, 0, 0, 0,
0, 0, 0, 0, 1656, 1598, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1608, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1626, 0, 1685, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1639, 0, 1643, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1660, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1729, 0, 0, 0, 0, 1732,
0, 0, 0, 1676, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1741, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1694, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1724, 1725, 1726, 1727, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1735, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1796, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1753, 1805, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1765, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1642, 0, 0, 0,
1782, 0, 0, 0, 0, 0, 0, 1842, 1796, 0,
0, 0, 577, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1804, 0, 0, 0,
0, 0, 0, 612, 0, 1812, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1842, 0, 1825, 0, 0, 0,
0, 0, 1827, 0, 1647, 1893, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1850, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1858, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1868, 0,
0, 0, 0, 0, 0, 1876, 0, 0, 0, 0,
0, 0, 0, 0, 1888, 0, 1889, 0, 0, 0,
0, 0, 1896, 1897, 1898, 0, 0, 0, 0, 0,
0, 1904, 0, 0, 0, 0, 0, 0, 0, 0,
1910, 0, 0, 0, 0, 0, 0, 0, 1919, 0,
0, 1922, 0, 1923, 0, 0, 1925, 0, 0, 0,
0, 0, 0, 0, 1996, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1940, 0, 0, 0, 1959, 0, 0, 1962, 0,
1963, 0, 0, 0, 0, 0, 1966, 1967, 1968, 0,
1970, 0, 1972, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1987, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1994, 0, 0,
247, 247, 0, 0, 0, 0, 0, 2001, 0, 2003,
2004, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 63, 64, 65, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 2027, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 857, 0,
859, 860, 0, 0, 0, 0, 867, 0, 869, 0,
0, 0, 0, 0, 2048, 0, 2050, 0, 2053, 0,
2056, 2057, 0, 0, 2059, 0, 0, 0, 0, 0,
0, 0, 119, 0, 0, 0, 2069, 0, 2070, 0,
0, 2073, 2074, 0, 0, 2077, 0, 0, 169, 170,
0, 0, 175, 176, 177, 178, 0, 2083, 0, 0,
0, 0, 2086, 200, 0, 0, 0, 0, 2089, 2090,
0, 0, 2092, 0, 2095, 0, 0, 0, 0, 0,
2100, 2101, 2102, 2103, 2104, 0, 0, 0, 0, 0,
2110, 0, 2111, 0, 0, 2114, 0, 0, 0, 2116,
0, 2118, 2119, 2120, 249, 2121, 2122, 2123, 2124, 0,
0, 2125, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 993, 0, 995, 302,
0, 0, 304, 305, 306, 307, 308, 309, 310, 311,
312, 313, 314, 315, 316, 0, 1015, 0, 0, 0,
0, 0, 0, 0, 0, 1024, 0, 0, 0, 463,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 347, 0, 0, 0, 0, 0, 0,
0, 356, 0, 0, 1059, 501, 0, 0, 363, 0,
0, 0, 0, 370, 371, 372, 373, 374, 375, 376,
0, 0, 0, 0, 0, 0, 0, 524, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
611, 1121, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1157, 0, 0, 0, 652, 0, 0, 0, 656,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 452, 0, 0, 0, 0, 0, 456, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1193, 468, 469, 470, 471, 472, 473,
474, 475, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 715, 0, 0, 0,
0, 504, 505, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
247, 0, 0, 0, 0, 605, 0, 0, 0, 607,
0, 0, 1256, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 769, 0,
0, 0, 630, 631, 0, 1278, 0, 777, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 803, 0,
0, 0, 0, 0, 676, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
880, 0, 0, 0, 736, 883, 247, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
749, 0, 0, 0, 0, 0, 0, 902, 0, 0,
0, 0, 0, 0, 760, 0, 0, 0, 0, 0,
0, 0, 0, 770, 0, 0, 0, 0, 0, 0,
0, 0, 0, 777, 0, 0, 0, 777, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 946, 947, 0, 0, 0, 0, 0, 0,
0, 0, 0, 956, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 827, 0, 0, 0,
0, 0, 0, 1458, 0, 0, 0, 0, 0, 0,
838, 0, 840, 841, 842, 843, 844, 845, 846, 847,
848, 849, 850, 851, 852, 0, 0, 0, 0, 0,
157, 0, 0, 0, 0, 0, 0, 0, 1018, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1506, 0, 888, 0, 0, 0, 0, 0,
0, 0, 897, 0, 0, 0, 0, 1520, 0, 0,
0, 0, 905, 0, 0, 909, 0, 1074, 0, 0,
0, 0, 0, 1082, 0, 0, 918, 919, 0, 0,
0, 0, 0, 1090, 0, 0, 0, 1097, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 941,
942, 943, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1571, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1594, 0, 1147, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1610,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1012, 1013, 0, 0, 0, 0,
0, 0, 0, 368, 0, 0, 0, 1025, 0, 0,
1191, 1192, 0, 0, 0, 0, 0, 0, 0, 1049,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 777, 777, 0, 1058, 0, 0, 0, 0, 0,
0, 0, 1082, 0, 0, 0, 0, 0, 0, 0,
1218, 1076, 0, 0, 1080, 0, 0, 0, 0, 0,
1087, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1240, 0, 0, 0, 0, 0,
429, 0, 0, 0, 0, 0, 0, 0, 0, 1254,
0, 0, 0, 0, 0, 1458, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1730, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1155, 0, 0, 0, 0, 0, 1288, 0, 0, 1742,
0, 0, 0, 0, 476, 0, 0, 0, 0, 0,
1751, 0, 0, 0, 0, 0, 0, 0, 1177, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 946,
0, 0, 1327, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1197, 0, 0, 1778, 1779, 0,
0, 0, 0, 1218, 0, 0, 0, 0, 0, 0,
0, 1353, 0, 0, 0, 1356, 0, 1359, 0, 0,
0, 0, 0, 0, 0, 0, 0, 614, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1231, 0, 0, 0, 0, 0, 0, 1241, 1242, 1243,
1244, 0, 0, 640, 0, 0, 0, 0, 0, 0,
0, 653, 0, 655, 0, 0, 0, 0, 0, 0,
0, 0, 0, 664, 0, 0, 0, 677, 1271, 0,
0, 0, 0, 0, 0, 0, 1855, 0, 0, 0,
0, 1859, 0, 1860, 0, 0, 0, 0, 0, 0,
1291, 1292, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1878, 0, 0,
0, 0, 0, 0, 0, 1312, 1313, 1314, 1315, 0,
0, 1894, 0, 0, 0, 0, 0, 0, 0, 1332,
0, 1457, 0, 0, 0, 0, 1337, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1354, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 755,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1373, 1374, 0, 0, 0, 1958, 0, 0, 0, 0,
0, 0, 0, 0, 1386, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1405, 0, 1407, 0, 0, 0,
0, 0, 0, 0, 0, 0, 815, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1557,
0, 463, 1353, 2006, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1574, 0, 0, 0, 0, 0, 1585,
0, 0, 0, 0, 0, 0, 0, 1592, 1452, 0,
0, 0, 0, 0, 0, 0, 0, 0, 876, 0,
0, 0, 0, 0, 0, 0, 2049, 0, 0, 0,
0, 0, 0, 885, 0, 0, 0, 0, 0, 0,
893, 0, 0, 0, 0, 0, 2068, 0, 0, 0,
0, 0, 1628, 0, 0, 1630, 0, 1492, 0, 0,
0, 0, 1634, 0, 0, 1640, 916, 611, 1457, 0,
0, 0, 1505, 0, 0, 0, 927, 0, 929, 0,
1657, 0, 0, 0, 935, 0, 0, 0, 0, 0,
0, 0, 0, 1525, 1526, 1527, 1528, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1711, 1570, 0, 0, 0, 0, 0, 0, 1719, 0,
0, 0, 1723, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1599,
1600, 0, 0, 0, 0, 0, 0, 1031, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1056, 1756, 0, 0, 0, 0,
0, 1097, 0, 0, 0, 0, 0, 1069, 0, 0,
0, 0, 0, 0, 0, 1079, 0, 1082, 0, 1082,
0, 0, 0, 0, 0, 0, 0, 0, 1655, 0,
0, 0, 0, 1787, 0, 0, 0, 0, 0, 1791,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1801, 0, 0, 0, 1122, 0, 0, 0, 0,
0, 0, 1130, 0, 0, 0, 0, 0, 1138, 1139,
0, 0, 0, 0, 0, 0, 0, 0, 1218, 0,
1218, 0, 0, 0, 0, 0, 1700, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1171, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1731, 0, 0, 0, 1857, 0, 0,
1189, 0, 1737, 1738, 0, 0, 0, 0, 0, 0,
1628, 0, 0, 0, 1195, 0, 0, 0, 0, 0,
1750, 0, 0, 0, 0, 0, 0, 0, 1206, 0,
0, 0, 0, 1209, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1918, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1252, 0, 1930, 0, 0, 0, 1803, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1822,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1303, 0, 0, 0, 0, 0, 0, 1989,
1990, 0, 0, 0, 0, 0, 0, 1995, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1335, 1336, 2010, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1346, 0,
2021, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1360, 0, 0, 0, 0, 0, 0, 0,
0, 0, 2039, 0, 2042, 0, 946, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1382,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1929, 0, 0, 0, 2071, 0,
0, 0, 0, 1400, 0, 0, 0, 0, 0, 1557,
0, 463, 1353, 1412, 0, 946, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1640, 611,
1457, 0, 0, 0, 0, 0, 0, 0, 2098, 2099,
0, 0, 0, 0, 0, 0, 0, 0, 0, 2109,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1447, 0, 0, 0,
0, 0, 1454, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 2025, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1483, 0, 0,
0, 0, 0, 1486, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1540, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1603, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1627, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1635, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1687, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1717, 1718, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1745, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1781, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1828, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1869, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1902, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1911, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1941, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1988,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 2046
};
static const short int yycheck[] =
{
21, 22, 23, 24, 258, 117, 238, 247, 110, 326,
512, 586, 240, 291, 461, 115, 400, 444, 421, 403,
825, 166, 225, 197, 825, 1031, 485, 524, 887, 50,
756, 812, 491, 1040, 784, 944, 495, 1124, 1069, 825,
197, 1031, 136, 51, 1007, 66, 67, 1191, 1192, 1179,
670, 1072, 252, 1311, 1209, 1073, 243, 78, 79, 1462,
1111, 1463, 1113, 162, 1559, 642, 87, 88, 89, 90,
215, 1082, 1628, 167, 1125, 224, 354, 226, 227, 228,
229, 1604, 431, 531, 105, 1402, 435, 430, 1281, 716,
433, 434, 232, 1914, 819, 235, 1148, 237, 861, 239,
121, 651, 1875, 1914, 654, 69, 634, 635, 30, 254,
448, 1206, 20, 1753, 41, 136, 1629, 44, 804, 41,
0, 1086, 44, 144, 145, 146, 147, 148, 149, 150,
1555, 28, 153, 41, 31, 1419, 44, 258, 102, 103,
261, 11, 6, 78, 41, 30, 167, 44, 0, 31,
428, 73, 246, 174, 248, 9, 1301, 29, 179, 362,
360, 588, 41, 291, 78, 44, 1253, 188, 517, 41,
6, 106, 44, 27, 1697, 196, 1816, 317, 318, 528,
107, 76, 31, 969, 533, 1196, 872, 31, 73, 0,
60, 73, 41, 321, 334, 44, 977, 41, 8, 1712,
44, 1485, 97, 1168, 407, 119, 409, 134, 134, 19,
5, 1636, 134, 1406, 94, 95, 65, 93, 496, 99,
84, 499, 86, 6, 104, 1418, 134, 151, 152, 73,
154, 155, 156, 241, 512, 256, 160, 134, 1761, 442,
1335, 1336, 399, 446, 401, 5, 126, 775, 84, 125,
344, 2024, 1677, 591, 32, 31, 54, 595, 512, 136,
58, 2082, 134, 41, 413, 41, 44, 135, 44, 994,
234, 2082, 293, 294, 295, 296, 297, 298, 299, 300,
301, 31, 303, 94, 95, 134, 426, 82, 99, 9,
134, 41, 1436, 104, 44, 722, 1613, 397, 725, 31,
321, 84, 1028, 86, 1497, 27, 4, 97, 103, 29,
16, 2084, 1062, 1063, 1095, 126, 6, 1226, 1227, 1228,
1125, 1342, 82, 825, 332, 4, 24, 31, 1521, 788,
789, 10, 134, 65, 455, 343, 86, 41, 459, 61,
44, 47, 1865, 103, 501, 366, 467, 7, 54, 41,
8, 78, 44, 453, 697, 476, 134, 378, 134, 508,
677, 382, 9, 686, 2004, 23, 515, 2007, 5, 29,
920, 921, 27, 1098, 29, 5, 1428, 825, 1695, 106,
580, 28, 86, 767, 134, 585, 1942, 587, 25, 7,
6, 9, 52, 414, 84, 25, 86, 9, 53, 420,
1163, 929, 502, 31, 20, 109, 31, 99, 24, 1932,
28, 823, 104, 76, 72, 423, 28, 11, 12, 13,
14, 15, 834, 17, 599, 28, 434, 52, 31, 32,
134, 137, 138, 139, 140, 141, 142, 143, 31, 6,
1585, 4, 134, 1454, 8, 82, 1171, 20, 24, 52,
108, 1974, 82, 20, 36, 37, 38, 39, 40, 480,
24, 24, 35, 8, 46, 486, 103, 49, 84, 85,
86, 794, 88, 103, 91, 798, 92, 880, 23, 1056,
883, 135, 136, 1264, 41, 506, 835, 44, 45, 113,
47, 48, 20, 50, 6, 640, 596, 729, 1691, 81,
11, 3, 601, 1123, 98, 129, 130, 89, 20, 637,
32, 127, 661, 641, 16, 26, 18, 84, 85, 86,
541, 88, 650, 1286, 652, 92, 4, 31, 110, 1057,
1293, 915, 10, 7, 1540, 95, 118, 1548, 9, 99,
727, 681, 124, 946, 104, 251, 20, 825, 130, 689,
1540, 22, 692, 1516, 694, 106, 577, 578, 579, 86,
127, 582, 583, 738, 115, 28, 126, 724, 589, 590,
94, 43, 84, 85, 86, 281, 88, 134, 4, 1006,
92, 1331, 11, 9, 1334, 106, 2081, 865, 19, 1164,
684, 115, 2, 1052, 115, 695, 28, 28, 619, 31,
10, 11, 1061, 35, 7, 8, 627, 1752, 94, 95,
9, 91, 769, 99, 99, 127, 1000, 1020, 104, 104,
27, 715, 29, 16, 947, 18, 647, 648, 27, 28,
29, 30, 981, 956, 84, 85, 1095, 980, 1401, 982,
126, 88, 74, 1090, 8, 92, 53, 353, 747, 355,
3, 779, 673, 359, 675, 855, 1801, 20, 1421, 2062,
584, 2063, 586, 16, 597, 18, 1050, 28, 29, 602,
691, 1199, 28, 29, 41, 30, 1303, 44, 45, 866,
47, 48, 114, 50, 45, 16, 831, 18, 120, 45,
1708, 52, 1710, 88, 7, 1018, 52, 92, 60, 61,
828, 11, 12, 13, 14, 15, 946, 17, 802, 803,
60, 61, 1475, 734, 1869, 31, 737, 16, 1863, 18,
41, 43, 743, 44, 1151, 953, 1153, 430, 877, 28,
433, 752, 31, 32, 33, 34, 35, 94, 1501, 28,
97, 21, 344, 1240, 765, 9, 1891, 1892, 66, 1512,
674, 2009, 773, 45, 31, 47, 48, 28, 50, 916,
781, 782, 10, 11, 1785, 31, 86, 134, 31, 1172,
791, 20, 108, 479, 974, 74, 797, 952, 935, 800,
1400, 893, 1131, 71, 8, 1930, 807, 3, 98, 1132,
714, 105, 55, 56, 1221, 23, 59, 1828, 322, 62,
51, 64, 326, 24, 4, 68, 69, 70, 108, 445,
72, 447, 336, 9, 450, 114, 418, 1095, 1346, 57,
4, 120, 79, 998, 28, 29, 30, 1239, 1591, 3,
23, 27, 28, 29, 30, 107, 857, 51, 859, 860,
84, 85, 86, 864, 368, 1989, 1990, 1977, 869, 1612,
11, 12, 13, 14, 15, 75, 17, 878, 1270, 127,
72, 29, 22, 1275, 1491, 107, 122, 130, 21, 890,
110, 1298, 396, 397, 23, 1302, 112, 83, 402, 31,
404, 405, 78, 63, 121, 1234, 1089, 43, 412, 78,
1233, 912, 1235, 75, 28, 29, 127, 88, 86, 2043,
23, 106, 36, 37, 102, 10, 39, 1657, 1914, 88,
106, 45, 1359, 2000, 109, 102, 93, 109, 52, 1119,
626, 1684, 19, 1126, 1914, 449, 10, 948, 1555, 453,
938, 1254, 1983, 7, 1985, 1941, 19, 6, 1901, 6,
961, 41, 24, 964, 44, 45, 1074, 47, 48, 86,
50, 1941, 973, 83, 30, 976, 45, 1300, 1455, 52,
38, 38, 988, 423, 1348, 1288, 341, 434, 427, 990,
980, 980, 1849, 1723, 1161, 1849, 1104, 1805, 502, 1986,
988, 1403, 1590, 1745, 118, 1295, 1510, 1759, 512, 1614,
1417, 1615, 516, 1515, 825, 825, 1114, 1760, 1117, 1233,
1175, 2022, 1233, 1011, 1327, 1793, 1793, 531, 1029, 611,
1839, 1270, 1140, 1362, 1839, 539, 41, 270, 495, 1769,
1363, 1518, 11, 12, 13, 14, 15, 951, 17, 1444,
954, 1339, 1621, 1356, 1055, 1342, 1699, 2044, 1195, 1767,
1195, 1818, 966, 1709, 1941, 1202, 1988, 1952, 1907, 2010,
1945, 940, 2060, 1635, 656, 1262, 664, 1781, 764, 1627,
1447, 1447, 1447, 1836, 1251, 1447, 1447, 1170, 1264, 1902,
1627, 1329, 596, 1422, 199, 35, 2082, 1382, 1627, 603,
1220, 35, 1260, 1104, 1125, 1807, 1687, 1296, 923, 223,
41, 687, 2082, -1, 1281, -1, -1, -1, -1, -1,
1121, -1, 1419, -1, 2013, 2014, 2015, -1, 1129, 1914,
-1, 245, -1, 1914, 1741, 639, -1, -1, 642, 1140,
1523, -1, 1297, -1, -1, 1146, -1, 1574, 1914, -1,
1279, -1, -1, -1, 1309, 1156, -1, -1, 1287, -1,
-1, -1, -1, 1546, 1870, -1, -1, -1, -1, -1,
1562, -1, 1355, 677, 1357, 1358, -1, -1, 682, 1180,
-1, -1, 1262, -1, -1, -1, -1, 1579, 1485, 1628,
1667, 695, 1450, 1194, 1586, 777, 700, -1, 1272, 1273,
1607, -1, -1, -1, 1387, -1, 1207, 1634, 1375, -1,
324, 1212, -1, 1117, -1, -1, 1217, -1, -1, -1,
-1, -1, -1, 1984, -1, -1, -1, -1, 1835, -1,
-1, -1, 1938, 1660, 1617, -1, 350, 1238, -1, 1406,
-1, -1, -1, -1, 358, -1, -1, -1, -1, 1632,
936, 1418, -1, 1408, -1, -1, 1257, -1, 1413, -1,
1164, -1, -1, -1, -1, -1, -1, 381, -1, -1,
-1, -1, -1, 1274, -1, -1, 1277, -1, -1, -1,
-1, -1, -1, -1, 398, -1, 400, 1367, -1, 403,
2033, -1, -1, -1, -1, -1, 1370, 2082, -1, -1,
-1, 2082, 416, 989, 1305, 991, -1, 1308, -1, -1,
-1, -1, -1, 1450, 1791, -1, 2082, -1, 432, 1320,
902, 825, 1447, -1, -1, -1, 1230, -1, -1, -1,
1497, -1, -1, 1487, 448, 1021, -1, 451, -1, 1340,
1495, 1245, -1, 1247, -1, 1603, -1, -1, 1473, -1,
-1, -1, 466, 1960, 1521, 1259, -1, -1, -1, 1514,
1787, -1, 1620, -1, -1, -1, -1, -1, 1450, 2099,
-1, 875, 1630, -1, -1, 1852, -1, 881, -1, -1,
494, -1, -1, -1, -1, -1, 1993, 1770, -1, -1,
-1, -1, 896, 1530, -1, -1, -1, 1552, -1, -1,
-1, -1, -1, -1, -1, 1797, -1, 1710, 1711, 1564,
-1, -1, -1, 527, -1, 1416, 1719, 1972, -1, -1,
-1, 2028, 1423, 1424, -1, 1426, 1008, -1, -1, 1430,
-1, -1, 1914, -1, -1, -1, -1, 1438, -1, -1,
1595, 1918, -1, -1, 1836, -1, -1, 1602, 1656, 1856,
-1, -1, -1, -1, 1609, -1, 1820, 1458, -1, -1,
1763, -1, -1, -1, -1, 1794, -1, -1, 1771, 2076,
1793, 1472, 1795, -1, -1, -1, -1, 1381, -1, -1,
2087, 595, 1611, 597, -1, 599, -1, -1, 602, 1490,
1176, -1, 1969, -1, -1, 1496, -1, 1498, 1890, -1,
-1, -1, -1, 1761, -1, -1, 620, -1, -1, 1767,
-1, 1840, 1513, 1017, 1843, 1097, 1839, 1672, 1841, 1520,
1732, 1844, -1, -1, 1691, -1, -1, 683, -1, -1,
-1, 1532, 1924, -1, 1689, 649, -1, -1, -1, -1,
1648, 1670, -1, -1, -1, 1984, 660, -1, -1, -1,
-1, 1880, 1056, 1554, 1857, -1, 670, -1, 1881, 1942,
1685, -1, 1563, -1, -1, 1147, -1, -1, -1, 683,
1953, -1, 1936, -1, 1478, -1, -1, -1, 1482, 1580,
1581, 1582, -1, -1, -1, -1, 1587, 1588, -1, 1093,
-1, -1, -1, 1594, -1, -1, 1597, -1, 2005, 1754,
2082, -1, 1905, 717, 1729, 719, -1, -1, 2000, -1,
-1, -1, -1, -1, -1, 2042, -1, 731, 1619, 1620,
-1, 1622, -1, -1, 738, -1, -1, 2010, -1, -1,
1767, -1, 1633, -1, -1, -1, 1218, 2029, -1, -1,
-1, -1, 756, -1, -1, 759, 28, 29, 30, 31,
-1, -1, -1, 767, -1, -1, 1914, -1, -1, 1739,
1815, -1, 1566, 1167, 46, 1351, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 792, -1,
1914, 1818, 2109, -1, -1, 1767, -1, 1191, 1192, 1690,
-1, 1692, 74, -1, -1, 77, 78, -1, -1, -1,
1701, 815, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 2021, -1,
-1, -1, 1942, -1, -1, -1, 1984, 1728, 110, -1,
-1, -1, 114, -1, -1, -1, 2039, 119, 120, 1425,
-1, -1, -1, -1, -1, -1, 128, -1, -1, -1,
1751, -1, -1, -1, 1755, -1, 1757, -1, 1262, -1,
-1, 1762, -1, 1764, 1838, -1, -1, -1, -1, -1,
-1, 1675, -1, 887, -1, 2072, -1, -1, -1, -1,
-1, 152, -1, 154, 155, 156, 900, 1788, -1, 1790,
2010, -1, -1, -1, 165, 2098, -1, -1, -1, 1800,
2097, 915, -1, -1, -1, -1, -1, -1, 2105, -1,
-1, -1, 926, 927, 970, -1, -1, 931, 1819, 1911,
-1, 1895, -1, -1, 2082, -1, 940, -1, -1, -1,
-1, 1832, 1914, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 214, -1, 1749, -1, -1, 2082, 1753,
-1, -1, -1, -1, -1, 2038, 970, 2040, 2041, 1860,
-1, -1, -1, 1367, -1, -1, 1867, -1, -1, 983,
-1, -1, -1, 1874, -1, 1457, -1, -1, 992, -1,
-1, -1, 253, -1, -1, -1, 1000, 1961, 1002, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 1900,
-1, -1, -1, 2058, -1, 1906, -1, 1908, 279, -1,
-1, 346, 1816, -1, 1028, 1419, 1917, -1, -1, -1,
-1, 1995, -1, -1, -1, 1429, -1, -1, 2002, -1,
-1, 1513, 1436, 1934, 1935, -1, 1050, -1, 1939, -1,
-1, 1942, -1, 1944, 1100, -1, -1, 1103, -1, -1,
-1, -1, 1953, -1, -1, 2029, -1, -1, 1072, -1,
-1, -1, -1, 334, 1965, -1, -1, -1, 1082, -1,
-1, -1, -1, -1, 1130, -1, -1, 1978, 349, -1,
-1, 1485, 1138, 1139, -1, -1, 1100, -1, -1, 1103,
425, -1, -1, -1, 1576, -1, 1997, 2071, 1999, -1,
2082, 436, -1, -1, 439, 2006, -1, -1, -1, 1123,
1592, 2085, -1, -1, -1, -1, 1130, 2018, -1, -1,
1524, -1, -1, -1, 1138, 1139, -1, -1, -1, -1,
-1, -1, 2106, -1, -1, -1, -1, -1, 2112, -1,
-1, -1, -1, -1, 415, -1, -1, -1, 1162, -1,
2051, -1, -1, -1, 2055, -1, -1, -1, 1640, -1,
-1, -1, -1, -1, -1, 1179, -1, 438, 1972, -1,
-1, -1, -1, -1, 2075, -1, -1, -1, -1, -1,
-1, -1, 1196, -1, -1, 520, -1, 2088, -1, -1,
-1, -1, 1206, 464, -1, 2096, 1252, -1, -1, 1213,
2004, 536, -1, 2007, -1, -1, -1, -1, 2012, -1,
-1, -1, 2016, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 1236, -1, -1, 1629, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 1252, 510,
-1, -1, -1, -1, -1, -1, -1, 518, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 16, 529, 18,
-1, 532, -1, 534, -1, -1, 537, 538, 1282, 28,
29, 30, 31, 32, 33, 34, 35, -1, 1682, -1,
-1, -1, -1, -1, 555, -1, -1, 46, -1, -1,
-1, -1, 1696, -1, -1, -1, -1, 1311, -1, -1,
-1, -1, -1, -1, 1360, 1361, -1, -1, 1712, 1713,
-1, -1, 1368, -1, -1, 74, -1, -1, 77, 78,
-1, 1335, 1336, 594, -1, 1339, -1, -1, 1342, -1,
1344, -1, -1, 604, 1348, 1739, -1, -1, 1394, -1,
-1, 1397, -1, -1, -1, 616, 1360, 1361, -1, -1,
-1, 110, -1, -1, 1368, 114, -1, -1, -1, -1,
119, 120, -1, -1, -1, -1, -1, 638, -1, 128,
-1, -1, -1, -1, 645, -1, -1, 1391, -1, -1,
1394, -1, -1, 1397, -1, -1, 1400, 658, -1, -1,
1404, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 678, -1, -1,
-1, -1, -1, 1817, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 696, -1, 1483, -1, -1,
1444, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1454, -1, -1, -1, 1848, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 730,
-1, -1, -1, -1, -1, -1, -1, -1, 739, 1483,
-1, -1, -1, -1, 745, -1, -1, -1, -1, -1,
-1, 1885, -1, 818, -1, -1, 757, -1, -1, -1,
-1, -1, -1, -1, 829, -1, 1510, -1, -1, -1,
-1, -1, 837, -1, -1, -1, -1, -1, 1522, -1,
1914, -1, -1, -1, -1, -1, 1572, -1, -1, 790,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 1548, 870, -1, -1, -1, -1,
-1, -1, 813, -1, -1, -1, -1, 1561, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 1572, -1,
-1, -1, -1, -1, -1, 836, -1, -1, 839, -1,
-1, -1, -1, -1, -1, -1, 1590, 1981, -1, -1,
-1, -1, -1, -1, -1, 1989, 1990, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 1615, -1, -1, -1, -1, -1, 1621, -1, -1,
-1, 882, -1, 884, -1, -1, -1, -1, -1, -1,
955, -1, -1, 894, -1, 16, -1, 18, 1642, -1,
-1, -1, -1, -1, -1, -1, -1, 28, -1, 2043,
31, 32, 33, 34, 35, 980, -1, -1, -1, 1663,
-1, 42, 987, 924, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 937, -1, 2072, -1,
-1, -1, -1, -1, -1, 1010, -1, -1, 2082, -1,
-1, -1, -1, 74, -1, 1699, -1, -1, -1, 80,
961, 962, -1, 2097, -1, -1, 87, -1, -1, 90,
-1, 2105, 93, -1, -1, 96, -1, -1, 1722, 100,
101, -1, -1, 1727, 105, -1, -1, -1, -1, -1,
111, -1, 993, 114, 995, 116, 117, -1, -1, 120,
-1, 1745, 123, 1789, 125, -1, -1, 1008, -1, -1,
131, 132, -1, -1, -1, 1759, -1, -1, -1, -1,
-1, -1, 1023, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 1037, 1102, -1, -1,
-1, 1785, -1, -1, -1, 1789, -1, -1, -1, -1,
-1, -1, 1796, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 1070,
-1, -1, -1, -1, -1, -1, 1820, -1, -1, -1,
-1, -1, -1, -1, 1085, -1, -1, -1, -1, 1833,
-1, -1, -1, -1, -1, -1, -1, -1, 1842, -1,
-1, -1, -1, -1, -1, 1849, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 1870, -1, -1, 1873,
-1, -1, 1133, 1877, 1135, -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, 1907, 1165, 1166, -1, -1, 1233, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 1926, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 1936, 1194, 1938, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 1952, 1210,
-1, -1, -1, 1214, -1, -1, -1, -1, -1, -1,
1964, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 1977, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 1245, -1, 1247, -1, 1992, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 2009, 1267, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 1278, 2022, -1,
-1, -1, -1, -1, -1, -1, 2030, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 1299, -1,
-1, 2045, -1, -1, 1369, 1306, -1, -1, -1, -1,
2054, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 2067, -1, -1, -1, -1, -1, -1,
1395, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 1343, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 1364, -1, 1366, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 1379, -1,
-1, -1, -1, -1, 1385, -1, -1, -1, -1, -1,
-1, 1392, 1393, -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, 1448, -1, -1,
1515, -1, -1, -1, -1, 1456, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 1468, -1, -1,
1471, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 1488, 1489, -1,
-1, -1, 1557, 1494, -1, -1, 1561, -1, -1, -1,
-1, -1, -1, -1, 1569, 1506, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 1517, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 1542, -1, 1608, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 1556, -1, 1558, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 1575, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 1649, -1, -1, -1, -1, 1654,
-1, -1, -1, 1594, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 1668, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 1619, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 1644, 1645, 1646, 1647, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 1659, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 1733, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 1683, 1748, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 1698, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 1781, -1, -1, -1,
1721, -1, -1, -1, -1, -1, -1, 1792, 1793, -1,
-1, -1, 442, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 1747, -1, -1, -1,
-1, -1, -1, 463, -1, 1756, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 1839, -1, 1777, -1, -1, -1,
-1, -1, 1783, -1, 1849, 1850, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 1799, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 1809, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 1829, -1,
-1, -1, -1, -1, -1, 1836, -1, -1, -1, -1,
-1, -1, -1, -1, 1845, -1, 1847, -1, -1, -1,
-1, -1, 1853, 1854, 1855, -1, -1, -1, -1, -1,
-1, 1862, -1, -1, -1, -1, -1, -1, -1, -1,
1871, -1, -1, -1, -1, -1, -1, -1, 1879, -1,
-1, 1882, -1, 1884, -1, -1, 1887, -1, -1, -1,
-1, -1, -1, -1, 1959, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 1912, -1, -1, -1, 1916, -1, -1, 1919, -1,
1921, -1, -1, -1, -1, -1, 1927, 1928, 1929, -1,
1931, -1, 1933, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 1946, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 1958, -1, -1,
161, 162, -1, -1, -1, -1, -1, 1968, -1, 1970,
1971, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 31, 32, 33, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 1998, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 718, -1,
720, 721, -1, -1, -1, -1, 726, -1, 728, -1,
-1, -1, -1, -1, 2025, -1, 2027, -1, 2029, -1,
2031, 2032, -1, -1, 2035, -1, -1, -1, -1, -1,
-1, -1, 91, -1, -1, -1, 2047, -1, 2049, -1,
-1, 2052, 2053, -1, -1, 2056, -1, -1, 107, 108,
-1, -1, 111, 112, 113, 114, -1, 2068, -1, -1,
-1, -1, 2073, 122, -1, -1, -1, -1, 2079, 2080,
-1, -1, 2083, -1, 2085, -1, -1, -1, -1, -1,
2091, 2092, 2093, 2094, 2095, -1, -1, -1, -1, -1,
2101, -1, 2103, -1, -1, 2106, -1, -1, -1, 2110,
-1, 2112, 2113, 2114, 163, 2116, 2117, 2118, 2119, -1,
-1, 2122, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 856, -1, 858, 198,
-1, -1, 201, 202, 203, 204, 205, 206, 207, 208,
209, 210, 211, 212, 213, -1, 876, -1, -1, -1,
-1, -1, -1, -1, -1, 885, -1, -1, -1, 380,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 242, -1, -1, -1, -1, -1, -1,
-1, 250, -1, -1, 914, 406, -1, -1, 257, -1,
-1, -1, -1, 262, 263, 264, 265, 266, 267, 268,
-1, -1, -1, -1, -1, -1, -1, 428, -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,
461, 971, -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, 1001, -1, -1, -1, 496, -1, -1, -1, 500,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 361, -1, -1, -1, -1, -1, 367, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 1043, 383, 384, 385, 386, 387, 388,
389, 390, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 557, -1, -1, -1,
-1, 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, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
601, -1, -1, -1, -1, 454, -1, -1, -1, 458,
-1, -1, 1122, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 629, -1,
-1, -1, 481, 482, -1, 1145, -1, 638, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 659, -1,
-1, -1, -1, -1, 513, -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, -1, -1, -1, -1, -1, -1, -1, -1,
741, -1, -1, -1, 593, 746, 747, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
609, -1, -1, -1, -1, -1, -1, 768, -1, -1,
-1, -1, -1, -1, 623, -1, -1, -1, -1, -1,
-1, -1, -1, 632, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 794, -1, -1, -1, 798, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 813, 814, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 824, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 685, -1, -1, -1,
-1, -1, -1, 1353, -1, -1, -1, -1, -1, -1,
699, -1, 701, 702, 703, 704, 705, 706, 707, 708,
709, 710, 711, 712, 713, -1, -1, -1, -1, -1,
97, -1, -1, -1, -1, -1, -1, -1, 879, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 1412, -1, 753, -1, -1, -1, -1, -1,
-1, -1, 761, -1, -1, -1, -1, 1427, -1, -1,
-1, -1, 771, -1, -1, 774, -1, 928, -1, -1,
-1, -1, -1, 934, -1, -1, 785, 786, -1, -1,
-1, -1, -1, 944, -1, -1, -1, 948, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 808,
809, 810, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 1481, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1500, -1, 993, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 1519,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 873, 874, -1, -1, -1, -1,
-1, -1, -1, 260, -1, -1, -1, 886, -1, -1,
1041, 1042, -1, -1, -1, -1, -1, -1, -1, 898,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 1062, 1063, -1, 913, -1, -1, -1, -1, -1,
-1, -1, 1073, -1, -1, -1, -1, -1, -1, -1,
1081, 930, -1, -1, 933, -1, -1, -1, -1, -1,
939, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 1105, -1, -1, -1, -1, -1,
337, -1, -1, -1, -1, -1, -1, -1, -1, 1120,
-1, -1, -1, -1, -1, 1635, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1650, -1, -1, -1, -1, -1, -1, -1, -1, -1,
999, -1, -1, -1, -1, -1, 1157, -1, -1, 1669,
-1, -1, -1, -1, 391, -1, -1, -1, -1, -1,
1680, -1, -1, -1, -1, -1, -1, -1, 1027, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 1190,
-1, -1, 1193, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 1053, -1, -1, 1717, 1718, -1,
-1, -1, -1, 1214, -1, -1, -1, -1, -1, -1,
-1, 1222, -1, -1, -1, 1226, -1, 1228, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 464, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1099, -1, -1, -1, -1, -1, -1, 1106, 1107, 1108,
1109, -1, -1, 490, -1, -1, -1, -1, -1, -1,
-1, 498, -1, 500, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 510, -1, -1, -1, 514, 1137, -1,
-1, -1, -1, -1, -1, -1, 1806, -1, -1, -1,
-1, 1811, -1, 1813, -1, -1, -1, -1, -1, -1,
1159, 1160, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 1837, -1, -1,
-1, -1, -1, -1, -1, 1184, 1185, 1186, 1187, -1,
-1, 1851, -1, -1, -1, -1, -1, -1, -1, 1198,
-1, 1352, -1, -1, -1, -1, 1205, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 1224, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 616,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1249, 1250, -1, -1, -1, 1915, -1, -1, -1, -1,
-1, -1, -1, -1, 1263, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 1283, -1, 1285, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 673, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 1460,
-1, 1462, 1463, 1973, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 1484, -1, -1, -1, -1, -1, 1490,
-1, -1, -1, -1, -1, -1, -1, 1498, 1347, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 735, -1,
-1, -1, -1, -1, -1, -1, 2026, -1, -1, -1,
-1, -1, -1, 750, -1, -1, -1, -1, -1, -1,
757, -1, -1, -1, -1, -1, 2046, -1, -1, -1,
-1, -1, 1543, -1, -1, 1546, -1, 1396, -1, -1,
-1, -1, 1553, -1, -1, 1556, 783, 1558, 1559, -1,
-1, -1, 1411, -1, -1, -1, 793, -1, 795, -1,
1571, -1, -1, -1, 801, -1, -1, -1, -1, -1,
-1, -1, -1, 1432, 1433, 1434, 1435, -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,
1631, 1480, -1, -1, -1, -1, -1, -1, 1639, -1,
-1, -1, 1643, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 1508,
1509, -1, -1, -1, -1, -1, -1, 894, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 911, 1686, -1, -1, -1, -1,
-1, 1692, -1, -1, -1, -1, -1, 924, -1, -1,
-1, -1, -1, -1, -1, 932, -1, 1708, -1, 1710,
-1, -1, -1, -1, -1, -1, -1, -1, 1567, -1,
-1, -1, -1, 1724, -1, -1, -1, -1, -1, 1730,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 1742, -1, -1, -1, 972, -1, -1, -1, -1,
-1, -1, 979, -1, -1, -1, -1, -1, 985, 986,
-1, -1, -1, -1, -1, -1, -1, -1, 1769, -1,
1771, -1, -1, -1, -1, -1, 1625, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 1015, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 1652, -1, -1, -1, 1808, -1, -1,
1037, -1, 1661, 1662, -1, -1, -1, -1, -1, -1,
1821, -1, -1, -1, 1051, -1, -1, -1, -1, -1,
1679, -1, -1, -1, -1, -1, -1, -1, 1065, -1,
-1, -1, -1, 1070, -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, 1878, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 1118, -1, 1894, -1, -1, -1, 1746, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 1768,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 1169, -1, -1, -1, -1, -1, -1, 1950,
1951, -1, -1, -1, -1, -1, -1, 1958, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 1203, 1204, 1979, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 1215, -1,
1991, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 1229, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 2013, -1, 2015, -1, 2017, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 1256,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 1893, -1, -1, -1, 2049, -1,
-1, -1, -1, 1280, -1, -1, -1, -1, -1, 2060,
-1, 2062, 2063, 1290, -1, 2066, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 2079, 2080,
2081, -1, -1, -1, -1, -1, -1, -1, 2089, 2090,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 2100,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 1343, -1, -1, -1,
-1, -1, 1349, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 1996, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 1384, -1, -1,
-1, -1, -1, 1390, -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, 1448, -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, 1513, -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, 1542, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 1554, -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, 1610, -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,
1637, 1638, -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, 1673, -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, 1720, -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, 1783, -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, 1829, -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, 1860, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 1871, -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, 1912, -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, 1946,
-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, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 2023
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const unsigned short int yystos[] =
{
0, 138, 139, 140, 141, 0, 134, 142, 643, 650,
135, 136, 95, 99, 104, 126, 147, 148, 149, 150,
151, 533, 541, 551, 595, 674, 134, 644, 142, 142,
534, 542, 552, 596, 674, 664, 664, 664, 664, 265,
647, 648, 657, 661, 94, 143, 144, 147, 155, 161,
531, 653, 145, 146, 147, 155, 161, 653, 645, 646,
647, 649, 650, 645, 645, 645, 541, 551, 653, 653,
148, 149, 265, 646, 41, 44, 267, 270, 461, 463,
45, 47, 48, 50, 266, 268, 271, 459, 465, 467,
469, 532, 144, 674, 664, 97, 162, 537, 675, 146,
674, 647, 664, 664, 31, 475, 475, 462, 464, 664,
664, 460, 466, 468, 470, 664, 664, 664, 664, 645,
31, 473, 538, 36, 37, 38, 39, 40, 46, 49,
81, 89, 110, 118, 124, 130, 171, 250, 258, 260,
261, 262, 263, 264, 441, 443, 449, 451, 453, 455,
457, 505, 521, 563, 579, 591, 603, 657, 76, 254,
495, 475, 475, 476, 24, 422, 664, 153, 658, 645,
645, 20, 421, 32, 479, 645, 645, 645, 645, 378,
473, 11, 12, 13, 14, 15, 17, 98, 337, 395,
397, 399, 401, 403, 407, 539, 337, 653, 474, 664,
645, 442, 444, 454, 452, 450, 456, 458, 506, 522,
564, 580, 592, 604, 422, 664, 674, 674, 674, 674,
674, 674, 674, 664, 664, 664, 664, 664, 664, 664,
655, 660, 655, 660, 664, 655, 660, 655, 660, 655,
660, 669, 496, 183, 660, 660, 152, 663, 152, 645,
423, 655, 395, 422, 664, 91, 525, 480, 664, 8,
389, 664, 396, 398, 400, 402, 404, 408, 540, 664,
664, 55, 56, 59, 62, 64, 68, 69, 70, 272,
273, 277, 278, 279, 280, 283, 284, 285, 286, 287,
288, 325, 473, 603, 609, 613, 615, 621, 627, 631,
637, 639, 645, 537, 645, 645, 645, 645, 645, 645,
645, 645, 645, 645, 645, 645, 645, 655, 395, 7,
20, 366, 387, 419, 653, 419, 652, 419, 419, 419,
419, 666, 668, 666, 169, 170, 675, 475, 666, 667,
666, 667, 666, 668, 156, 157, 675, 645, 661, 186,
187, 252, 653, 422, 673, 422, 645, 674, 658, 655,
395, 526, 664, 645, 35, 421, 485, 390, 657, 421,
645, 645, 645, 645, 645, 645, 645, 30, 269, 330,
439, 653, 269, 614, 616, 622, 628, 632, 638, 640,
610, 655, 674, 9, 28, 387, 391, 433, 664, 664,
664, 664, 664, 664, 664, 664, 664, 664, 666, 666,
388, 420, 387, 664, 473, 367, 653, 73, 224, 225,
259, 473, 489, 163, 164, 675, 655, 666, 473, 657,
165, 166, 651, 165, 167, 168, 675, 389, 422, 651,
676, 655, 653, 43, 447, 674, 433, 674, 154, 653,
674, 658, 645, 652, 486, 664, 645, 473, 440, 664,
21, 371, 413, 663, 331, 332, 653, 664, 645, 645,
645, 645, 645, 645, 645, 645, 657, 66, 274, 317,
635, 392, 434, 65, 315, 325, 633, 473, 378, 653,
281, 325, 290, 291, 653, 325, 473, 290, 473, 473,
326, 663, 652, 652, 645, 645, 473, 419, 664, 655,
368, 369, 653, 490, 389, 664, 391, 164, 670, 671,
651, 666, 170, 433, 663, 28, 172, 435, 166, 670,
671, 653, 670, 168, 670, 671, 651, 665, 655, 651,
86, 515, 42, 80, 87, 90, 96, 100, 101, 111,
116, 117, 123, 131, 132, 188, 189, 190, 191, 192,
193, 194, 199, 200, 201, 203, 207, 208, 209, 210,
211, 212, 213, 216, 219, 220, 255, 330, 445, 503,
517, 523, 535, 543, 545, 565, 575, 577, 589, 605,
607, 652, 654, 448, 183, 154, 652, 154, 155, 160,
653, 473, 154, 653, 378, 645, 421, 645, 421, 414,
413, 663, 330, 655, 657, 105, 333, 334, 335, 553,
653, 421, 421, 636, 71, 275, 321, 641, 674, 664,
645, 645, 634, 29, 437, 664, 23, 417, 313, 663,
657, 282, 437, 54, 58, 292, 293, 611, 619, 653,
282, 433, 663, 657, 433, 657, 663, 325, 378, 159,
160, 664, 419, 655, 657, 74, 114, 120, 232, 370,
433, 473, 485, 491, 571, 583, 645, 657, 419, 473,
671, 655, 651, 659, 676, 436, 175, 653, 671, 655,
225, 228, 655, 671, 655, 651, 655, 655, 473, 516,
664, 446, 504, 518, 524, 536, 544, 546, 566, 576,
578, 590, 606, 608, 655, 663, 664, 664, 664, 658,
664, 664, 256, 660, 658, 256, 658, 183, 664, 664,
158, 160, 93, 125, 529, 593, 645, 655, 160, 377,
378, 159, 161, 515, 653, 152, 159, 473, 655, 645,
389, 108, 559, 554, 655, 657, 664, 336, 338, 653,
645, 642, 57, 276, 322, 617, 674, 664, 318, 663,
645, 438, 315, 315, 418, 387, 655, 663, 314, 378,
60, 395, 623, 387, 314, 612, 620, 655, 664, 664,
294, 296, 653, 387, 313, 387, 4, 381, 313, 79,
501, 389, 655, 663, 653, 419, 3, 379, 492, 572,
584, 365, 673, 347, 366, 657, 664, 238, 660, 664,
225, 655, 666, 473, 227, 653, 422, 645, 417, 669,
666, 664, 666, 666, 378, 655, 670, 656, 645, 473,
645, 645, 645, 645, 645, 645, 645, 645, 645, 645,
645, 645, 645, 660, 422, 381, 653, 330, 653, 330,
330, 183, 51, 257, 471, 325, 183, 330, 661, 330,
667, 655, 653, 530, 594, 664, 657, 664, 515, 655,
663, 664, 655, 663, 152, 657, 560, 664, 645, 72,
487, 334, 655, 657, 339, 341, 653, 645, 618, 674,
664, 290, 663, 319, 325, 645, 22, 415, 664, 645,
315, 389, 387, 624, 664, 664, 657, 415, 645, 645,
437, 437, 655, 664, 297, 298, 653, 657, 417, 657,
382, 664, 417, 502, 664, 657, 422, 422, 162, 380,
664, 645, 645, 645, 439, 655, 663, 663, 226, 227,
107, 557, 672, 651, 557, 656, 663, 77, 78, 119,
128, 228, 229, 230, 231, 232, 233, 234, 237, 263,
433, 437, 497, 499, 563, 581, 599, 652, 173, 387,
176, 177, 178, 651, 26, 395, 427, 656, 671, 655,
651, 655, 658, 330, 664, 330, 664, 664, 672, 472,
664, 433, 661, 88, 92, 519, 527, 664, 221, 222,
651, 162, 645, 645, 473, 330, 419, 664, 663, 391,
473, 655, 391, 655, 330, 645, 332, 488, 664, 337,
655, 657, 16, 18, 33, 34, 232, 342, 344, 345,
346, 405, 409, 433, 473, 479, 481, 483, 485, 645,
653, 389, 320, 416, 122, 587, 657, 664, 645, 330,
290, 325, 313, 313, 61, 295, 623, 625, 655, 657,
299, 300, 653, 653, 663, 315, 645, 289, 290, 657,
645, 311, 663, 325, 674, 655, 675, 645, 369, 659,
663, 27, 348, 391, 429, 673, 417, 663, 664, 558,
660, 515, 668, 660, 651, 417, 498, 500, 582, 600,
655, 664, 655, 664, 660, 106, 115, 555, 573, 563,
227, 330, 657, 664, 658, 664, 439, 112, 174, 567,
657, 177, 178, 670, 671, 670, 653, 428, 657, 657,
651, 157, 674, 664, 674, 653, 655, 663, 557, 655,
121, 585, 83, 509, 515, 645, 290, 330, 653, 520,
528, 214, 662, 183, 509, 389, 655, 651, 675, 253,
664, 657, 473, 417, 391, 674, 655, 645, 334, 664,
340, 379, 405, 409, 406, 410, 482, 484, 655, 657,
347, 663, 663, 330, 290, 657, 437, 645, 588, 664,
314, 315, 437, 415, 415, 626, 657, 559, 655, 657,
301, 302, 553, 653, 311, 387, 63, 629, 663, 289,
655, 254, 652, 413, 430, 473, 433, 437, 439, 389,
557, 645, 227, 239, 240, 241, 651, 227, 387, 664,
663, 645, 645, 645, 645, 233, 237, 233, 234, 556,
574, 238, 657, 658, 663, 664, 330, 366, 172, 233,
237, 581, 652, 568, 664, 227, 671, 670, 655, 655,
179, 645, 227, 227, 387, 664, 75, 493, 330, 664,
389, 195, 662, 586, 183, 510, 183, 664, 663, 127,
597, 645, 645, 204, 661, 215, 653, 672, 256, 655,
655, 473, 254, 657, 251, 447, 557, 391, 515, 674,
338, 664, 645, 645, 645, 645, 5, 25, 82, 103,
343, 383, 425, 507, 549, 344, 344, 663, 655, 664,
319, 289, 645, 315, 325, 657, 657, 645, 293, 664,
487, 655, 664, 303, 653, 655, 657, 630, 664, 389,
666, 183, 374, 663, 645, 659, 663, 659, 659, 663,
657, 660, 240, 241, 670, 671, 670, 653, 664, 656,
676, 655, 655, 645, 645, 235, 661, 227, 172, 417,
10, 393, 657, 664, 573, 377, 645, 439, 489, 655,
261, 656, 422, 422, 664, 656, 494, 664, 655, 419,
657, 204, 661, 196, 653, 645, 205, 645, 672, 419,
417, 598, 657, 672, 6, 84, 385, 511, 214, 654,
515, 183, 655, 670, 253, 183, 381, 664, 655, 664,
515, 341, 384, 426, 508, 550, 664, 417, 519, 415,
415, 293, 293, 298, 664, 301, 655, 657, 304, 306,
653, 315, 645, 290, 657, 674, 376, 663, 330, 375,
652, 417, 652, 652, 413, 227, 227, 671, 670, 655,
655, 378, 227, 651, 422, 236, 661, 102, 547, 655,
394, 660, 529, 657, 655, 652, 657, 653, 655, 655,
227, 651, 645, 227, 366, 672, 385, 195, 197, 198,
653, 204, 206, 661, 515, 645, 330, 515, 386, 512,
664, 183, 204, 224, 672, 671, 664, 664, 674, 664,
330, 217, 662, 473, 664, 645, 645, 645, 645, 344,
664, 300, 316, 395, 397, 399, 401, 403, 407, 655,
657, 52, 307, 309, 310, 312, 325, 327, 433, 477,
479, 289, 676, 655, 389, 664, 372, 663, 371, 374,
655, 655, 664, 395, 672, 109, 561, 548, 242, 660,
645, 330, 660, 227, 663, 223, 224, 113, 129, 180,
569, 601, 603, 655, 655, 663, 664, 381, 655, 515,
664, 204, 663, 664, 330, 672, 85, 513, 655, 645,
645, 215, 672, 657, 664, 515, 222, 509, 655, 676,
330, 664, 204, 661, 218, 653, 391, 473, 323, 324,
325, 664, 305, 405, 409, 478, 655, 657, 663, 391,
663, 289, 328, 515, 663, 657, 664, 381, 393, 655,
663, 373, 651, 655, 376, 181, 182, 651, 653, 656,
664, 515, 562, 246, 660, 645, 651, 663, 227, 413,
655, 570, 602, 656, 664, 664, 664, 253, 656, 664,
664, 196, 672, 389, 19, 411, 655, 664, 515, 514,
664, 515, 433, 411, 183, 651, 515, 657, 419, 672,
385, 217, 226, 391, 655, 664, 433, 664, 303, 664,
645, 308, 383, 507, 549, 53, 429, 431, 437, 477,
433, 663, 391, 664, 413, 375, 393, 657, 657, 663,
389, 349, 653, 663, 655, 655, 655, 655, 387, 651,
330, 645, 651, 668, 415, 655, 413, 645, 645, 653,
676, 651, 330, 419, 515, 657, 412, 184, 660, 393,
645, 330, 473, 655, 672, 395, 663, 587, 515, 664,
204, 664, 385, 473, 411, 655, 306, 664, 432, 311,
328, 311, 417, 417, 329, 473, 477, 473, 330, 330,
417, 657, 655, 350, 351, 653, 415, 663, 653, 664,
395, 663, 667, 243, 244, 245, 651, 378, 24, 424,
381, 663, 198, 645, 655, 651, 660, 664, 253, 184,
515, 664, 655, 664, 218, 672, 411, 433, 664, 417,
664, 309, 645, 415, 417, 655, 373, 655, 657, 352,
353, 354, 553, 653, 413, 664, 227, 664, 676, 247,
248, 249, 651, 244, 245, 670, 671, 670, 653, 656,
655, 664, 253, 185, 186, 330, 585, 663, 655, 330,
330, 515, 184, 473, 323, 664, 290, 559, 655, 657,
664, 355, 356, 653, 381, 424, 655, 656, 330, 422,
248, 249, 670, 671, 670, 653, 671, 670, 655, 655,
473, 181, 182, 651, 330, 676, 655, 655, 655, 183,
417, 202, 657, 664, 655, 253, 411, 664, 487, 334,
655, 657, 357, 358, 653, 664, 665, 653, 663, 655,
671, 670, 655, 655, 473, 655, 656, 253, 253, 645,
663, 422, 664, 509, 501, 417, 664, 332, 664, 337,
655, 657, 228, 230, 231, 232, 359, 360, 361, 362,
405, 409, 433, 473, 479, 481, 483, 485, 330, 655,
664, 676, 655, 655, 656, 653, 655, 655, 655, 253,
655, 411, 655, 664, 664, 290, 334, 664, 340, 363,
364, 391, 429, 664, 673, 664, 365, 655, 657, 663,
663, 349, 653, 664, 655, 663, 651, 381, 422, 653,
664, 655, 676, 655, 655, 256, 330, 411, 338, 664,
663, 473, 233, 433, 437, 439, 233, 347, 343, 344,
344, 663, 653, 381, 422, 645, 664, 655, 664, 172,
656, 422, 184, 183, 664, 184, 341, 348, 659, 663,
659, 659, 663, 664, 417, 653, 657, 665, 655, 330,
655, 381, 422, 655, 656, 653, 655, 655, 672, 655,
652, 417, 652, 652, 413, 344, 347, 653, 330, 655,
655, 663, 664, 655, 655, 653, 664, 655, 515, 372,
371, 374, 653, 655, 422, 225, 655, 664, 381, 655,
655, 376, 655, 665, 422, 655, 381, 664, 663, 663,
655, 655, 655, 655, 655, 664, 225, 417, 415, 663,
655, 655, 225, 422, 655, 413, 655, 422, 655, 655,
655, 655, 655, 655, 655, 655
};
#define yyerrok (yyerrstatus = 0)
#define yyclearin (yychar = YYEMPTY)
#define YYEMPTY (-2)
#define YYEOF 0
#define YYACCEPT goto yyacceptlab
#define YYABORT goto yyabortlab
#define YYERROR goto yyerrorlab
/* Like YYERROR except do call yyerror. This remains here temporarily
to ease the transition to the new meaning of YYERROR, for GCC.
Once GCC version 2 has supplanted version 1, this can go. */
#define YYFAIL goto yyerrlab
#define YYRECOVERING() (!!yyerrstatus)
#define YYBACKUP(Token, Value) \
do \
if (yychar == YYEMPTY && yylen == 1) \
{ \
yychar = (Token); \
yylval = (Value); \
yytoken = YYTRANSLATE (yychar); \
YYPOPSTACK; \
goto yybackup; \
} \
else \
{ \
yyerror ("syntax error: cannot back up");\
YYERROR; \
} \
while (0)
#define YYTERROR 1
#define YYERRCODE 256
/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
If N is 0, then set CURRENT to the empty location which ends
the previous symbol: RHS[0] (always defined). */
#define YYRHSLOC(Rhs, K) ((Rhs)[K])
#ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N) \
do \
if (N) \
{ \
(Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
(Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
(Current).last_line = YYRHSLOC (Rhs, N).last_line; \
(Current).last_column = YYRHSLOC (Rhs, N).last_column; \
} \
else \
{ \
(Current).first_line = (Current).last_line = \
YYRHSLOC (Rhs, 0).last_line; \
(Current).first_column = (Current).last_column = \
YYRHSLOC (Rhs, 0).last_column; \
} \
while (0)
#endif
/* YY_LOCATION_PRINT -- Print the location on the stream.
This macro was not mandated originally: define only if we know
we won't break user code: when these are the locations we know. */
#ifndef YY_LOCATION_PRINT
# if YYLTYPE_IS_TRIVIAL
# define YY_LOCATION_PRINT(File, Loc) \
fprintf (File, "%d.%d-%d.%d", \
(Loc).first_line, (Loc).first_column, \
(Loc).last_line, (Loc).last_column)
# else
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
# endif
#endif
/* YYLEX -- calling `yylex' with the right arguments. */
#ifdef YYLEX_PARAM
# define YYLEX yylex (YYLEX_PARAM)
#else
# define YYLEX yylex ()
#endif
/* Enable debugging if requested. */
#if YYDEBUG
# ifndef YYFPRINTF
# define YYFPRINTF fprintf
# endif
# define YYDPRINTF(Args) \
do { \
if (yydebug) \
YYFPRINTF Args; \
} while (0)
# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
do { \
if (yydebug) \
{ \
YYFPRINTF (stderr, "%s ", Title); \
yysymprint (stderr, \
Type, Value); \
YYFPRINTF (stderr, "\n"); \
} \
} while (0)
/*------------------------------------------------------------------.
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
| TOP (included). |
`------------------------------------------------------------------*/
#if defined (__STDC__) || defined (__cplusplus)
static void
yy_stack_print (short int *bottom, short int *top)
#else
static void
yy_stack_print (bottom, top)
short int *bottom;
short int *top;
#endif
{
YYFPRINTF (stderr, "Stack now");
for (/* Nothing. */; bottom <= top; ++bottom)
YYFPRINTF (stderr, " %d", *bottom);
YYFPRINTF (stderr, "\n");
}
# define YY_STACK_PRINT(Bottom, Top) \
do { \
if (yydebug) \
yy_stack_print ((Bottom), (Top)); \
} while (0)
/*------------------------------------------------.
| Report that the YYRULE is going to be reduced. |
`------------------------------------------------*/
#if defined (__STDC__) || defined (__cplusplus)
static void
yy_reduce_print (int yyrule)
#else
static void
yy_reduce_print (yyrule)
int yyrule;
#endif
{
int yyi;
unsigned int yylno = yyrline[yyrule];
YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
yyrule - 1, yylno);
/* Print the symbols being reduced, and their result. */
for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
}
# define YY_REDUCE_PRINT(Rule) \
do { \
if (yydebug) \
yy_reduce_print (Rule); \
} while (0)
/* Nonzero means print parse trace. It is left uninitialized so that
multiple parsers can coexist. */
int yydebug;
#else /* !YYDEBUG */
# define YYDPRINTF(Args)
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
# define YY_STACK_PRINT(Bottom, Top)
# define YY_REDUCE_PRINT(Rule)
#endif /* !YYDEBUG */
/* YYINITDEPTH -- initial size of the parser's stacks. */
#ifndef YYINITDEPTH
# define YYINITDEPTH 200
#endif
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
if the built-in stack extension method is used).
Do not make this value too large; the results are undefined if
SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
evaluated with infinite-precision integer arithmetic. */
#ifndef YYMAXDEPTH
# define YYMAXDEPTH 10000
#endif
#if YYERROR_VERBOSE
# ifndef yystrlen
# if defined (__GLIBC__) && defined (_STRING_H)
# define yystrlen strlen
# else
/* Return the length of YYSTR. */
static size_t
# if defined (__STDC__) || defined (__cplusplus)
yystrlen (const char *yystr)
# else
yystrlen (yystr)
const char *yystr;
# endif
{
register const char *yys = yystr;
while (*yys++ != '\0')
continue;
return yys - yystr - 1;
}
# endif
# endif
# ifndef yystpcpy
# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
# define yystpcpy stpcpy
# else
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
YYDEST. */
static char *
# if defined (__STDC__) || defined (__cplusplus)
yystpcpy (char *yydest, const char *yysrc)
# else
yystpcpy (yydest, yysrc)
char *yydest;
const char *yysrc;
# endif
{
register char *yyd = yydest;
register const char *yys = yysrc;
while ((*yyd++ = *yys++) != '\0')
continue;
return yyd - 1;
}
# endif
# endif
#endif /* !YYERROR_VERBOSE */
#if YYDEBUG
/*--------------------------------.
| Print this symbol on YYOUTPUT. |
`--------------------------------*/
#if defined (__STDC__) || defined (__cplusplus)
static void
yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
#else
static void
yysymprint (yyoutput, yytype, yyvaluep)
FILE *yyoutput;
int yytype;
YYSTYPE *yyvaluep;
#endif
{
/* Pacify ``unused variable'' warnings. */
(void) yyvaluep;
if (yytype < YYNTOKENS)
YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
else
YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
# ifdef YYPRINT
if (yytype < YYNTOKENS)
YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
# endif
switch (yytype)
{
default:
break;
}
YYFPRINTF (yyoutput, ")");
}
#endif /* ! YYDEBUG */
/*-----------------------------------------------.
| Release the memory associated to this symbol. |
`-----------------------------------------------*/
#if defined (__STDC__) || defined (__cplusplus)
static void
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
#else
static void
yydestruct (yymsg, yytype, yyvaluep)
const char *yymsg;
int yytype;
YYSTYPE *yyvaluep;
#endif
{
/* Pacify ``unused variable'' warnings. */
(void) yyvaluep;
if (!yymsg)
yymsg = "Deleting";
YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
switch (yytype)
{
default:
break;
}
}
/* Prevent warnings from -Wmissing-prototypes. */
#ifdef YYPARSE_PARAM
# if defined (__STDC__) || defined (__cplusplus)
int yyparse (void *YYPARSE_PARAM);
# else
int yyparse ();
# endif
#else /* ! YYPARSE_PARAM */
#if defined (__STDC__) || defined (__cplusplus)
int yyparse (void);
#else
int yyparse ();
#endif
#endif /* ! YYPARSE_PARAM */
/* The look-ahead symbol. */
int yychar;
/* The semantic value of the look-ahead symbol. */
YYSTYPE yylval;
/* Number of syntax errors so far. */
int yynerrs;
/*----------.
| yyparse. |
`----------*/
#ifdef YYPARSE_PARAM
# if defined (__STDC__) || defined (__cplusplus)
int yyparse (void *YYPARSE_PARAM)
# else
int yyparse (YYPARSE_PARAM)
void *YYPARSE_PARAM;
# endif
#else /* ! YYPARSE_PARAM */
#if defined (__STDC__) || defined (__cplusplus)
int
yyparse (void)
#else
int
yyparse ()
#endif
#endif
{
register int yystate;
register int yyn;
int yyresult;
/* Number of tokens to shift before error messages enabled. */
int yyerrstatus;
/* Look-ahead token as an internal (translated) token number. */
int yytoken = 0;
/* Three stacks and their tools:
`yyss': related to states,
`yyvs': related to semantic values,
`yyls': related to locations.
Refer to the stacks thru separate pointers, to allow yyoverflow
to reallocate them elsewhere. */
/* The state stack. */
short int yyssa[YYINITDEPTH];
short int *yyss = yyssa;
register short int *yyssp;
/* The semantic value stack. */
YYSTYPE yyvsa[YYINITDEPTH];
YYSTYPE *yyvs = yyvsa;
register YYSTYPE *yyvsp;
#define YYPOPSTACK (yyvsp--, yyssp--)
size_t yystacksize = YYINITDEPTH;
/* The variables used to return semantic value and location from the
action routines. */
YYSTYPE yyval;
/* When reducing, the number of symbols on the RHS of the reduced
rule. */
int yylen;
YYDPRINTF ((stderr, "Starting parse\n"));
yystate = 0;
yyerrstatus = 0;
yynerrs = 0;
yychar = YYEMPTY; /* Cause a token to be read. */
/* Initialize stack pointers.
Waste one element of value and location stack
so that they stay on the same level as the state stack.
The wasted elements are never initialized. */
yyssp = yyss;
yyvsp = yyvs;
yyvsp[0] = yylval;
goto yysetstate;
/*------------------------------------------------------------.
| yynewstate -- Push a new state, which is found in yystate. |
`------------------------------------------------------------*/
yynewstate:
/* In all cases, when you get here, the value and location stacks
have just been pushed. so pushing a state here evens the stacks.
*/
yyssp++;
yysetstate:
*yyssp = yystate;
if (yyss + yystacksize - 1 <= yyssp)
{
/* Get the current used size of the three stacks, in elements. */
size_t yysize = yyssp - yyss + 1;
#ifdef yyoverflow
{
/* Give user a chance to reallocate the stack. Use copies of
these so that the &'s don't force the real ones into
memory. */
YYSTYPE *yyvs1 = yyvs;
short int *yyss1 = yyss;
/* Each stack pointer address is followed by the size of the
data in use in that stack, in bytes. This used to be a
conditional around just the two extra args, but that might
be undefined if yyoverflow is a macro. */
yyoverflow ("parser stack overflow",
&yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp),
&yystacksize);
yyss = yyss1;
yyvs = yyvs1;
}
#else /* no yyoverflow */
# ifndef YYSTACK_RELOCATE
goto yyoverflowlab;
# else
/* Extend the stack our own way. */
if (YYMAXDEPTH <= yystacksize)
goto yyoverflowlab;
yystacksize *= 2;
if (YYMAXDEPTH < yystacksize)
yystacksize = YYMAXDEPTH;
{
short int *yyss1 = yyss;
union yyalloc *yyptr =
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
if (! yyptr)
goto yyoverflowlab;
YYSTACK_RELOCATE (yyss);
YYSTACK_RELOCATE (yyvs);
# undef YYSTACK_RELOCATE
if (yyss1 != yyssa)
YYSTACK_FREE (yyss1);
}
# endif
#endif /* no yyoverflow */
yyssp = yyss + yysize - 1;
yyvsp = yyvs + yysize - 1;
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
(unsigned long int) yystacksize));
if (yyss + yystacksize - 1 <= yyssp)
YYABORT;
}
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
goto yybackup;
/*-----------.
| yybackup. |
`-----------*/
yybackup:
/* Do appropriate processing given the current state. */
/* Read a look-ahead token if we need one and don't already have one. */
/* yyresume: */
/* First try to decide what to do without reference to look-ahead token. */
yyn = yypact[yystate];
if (yyn == YYPACT_NINF)
goto yydefault;
/* Not known => get a look-ahead token if don't already have one. */
/* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
if (yychar == YYEMPTY)
{
YYDPRINTF ((stderr, "Reading a token: "));
yychar = YYLEX;
}
if (yychar <= YYEOF)
{
yychar = yytoken = YYEOF;
YYDPRINTF ((stderr, "Now at end of input.\n"));
}
else
{
yytoken = YYTRANSLATE (yychar);
YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
}
/* If the proper action on seeing token YYTOKEN is to reduce or to
detect an error, take that action. */
yyn += yytoken;
if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
goto yydefault;
yyn = yytable[yyn];
if (yyn <= 0)
{
if (yyn == 0 || yyn == YYTABLE_NINF)
goto yyerrlab;
yyn = -yyn;
goto yyreduce;
}
if (yyn == YYFINAL)
YYACCEPT;
/* Shift the look-ahead token. */
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
/* Discard the token being shifted unless it is eof. */
if (yychar != YYEOF)
yychar = YYEMPTY;
*++yyvsp = yylval;
/* Count tokens shifted since error; after three, turn off error
status. */
if (yyerrstatus)
yyerrstatus--;
yystate = yyn;
goto yynewstate;
/*-----------------------------------------------------------.
| yydefault -- do the default action for the current state. |
`-----------------------------------------------------------*/
yydefault:
yyn = yydefact[yystate];
if (yyn == 0)
goto yyerrlab;
goto yyreduce;
/*-----------------------------.
| yyreduce -- Do a reduction. |
`-----------------------------*/
yyreduce:
/* yyn is the number of a rule to reduce with. */
yylen = yyr2[yyn];
/* If YYLEN is nonzero, implement the default value of the action:
`$$ = $1'.
Otherwise, the following line sets YYVAL to garbage.
This behavior is undocumented and Bison
users should not rely upon it. Assigning to YYVAL
unconditionally makes the parser a bit smaller, and it avoids a
GCC warning that YYVAL may be used uninitialized. */
yyval = yyvsp[1-yylen];
YY_REDUCE_PRINT (yyn);
switch (yyn)
{
case 2:
#line 230 "../Parse.yacc"
{ depth=0; }
break;
case 4:
#line 231 "../Parse.yacc"
{ depth=0; }
break;
case 5:
#line 231 "../Parse.yacc"
{ Flush(); }
break;
case 6:
#line 232 "../Parse.yacc"
{ depth=0; }
break;
case 7:
#line 232 "../Parse.yacc"
{ Flush(); }
break;
case 537:
#line 1344 "../Parse.yacc"
{ PR ("&");}
break;
case 539:
#line 1345 "../Parse.yacc"
{ PR (":=");}
break;
case 541:
#line 1346 "../Parse.yacc"
{ PR ("*");}
break;
case 543:
#line 1347 "../Parse.yacc"
{ PR ("|");}
break;
case 545:
#line 1348 "../Parse.yacc"
{ PR (":");}
break;
case 547:
#line 1349 "../Parse.yacc"
{ PR (",");}
break;
case 549:
#line 1350 "../Parse.yacc"
{ PR (".");}
break;
case 551:
#line 1351 "../Parse.yacc"
{ PR ("..");}
break;
case 553:
#line 1352 "../Parse.yacc"
{ PR ("=");}
break;
case 555:
#line 1353 "../Parse.yacc"
{ PR (">");}
break;
case 557:
#line 1354 "../Parse.yacc"
{ PR (">=");}
break;
case 559:
#line 1355 "../Parse.yacc"
{ PR ("<");}
break;
case 561:
#line 1356 "../Parse.yacc"
{ PR ("<=");}
break;
case 563:
#line 1357 "../Parse.yacc"
{ PR ("-");}
break;
case 565:
#line 1358 "../Parse.yacc"
{ PR ("\043");}
break;
case 567:
#line 1359 "../Parse.yacc"
{ PR ("+");}
break;
case 569:
#line 1360 "../Parse.yacc"
{ PR ("=>");}
break;
case 571:
#line 1361 "../Parse.yacc"
{ PR ("}");}
break;
case 573:
#line 1362 "../Parse.yacc"
{ PR ("]");}
break;
case 575:
#line 1363 "../Parse.yacc"
{ PR (")");}
break;
case 577:
#line 1364 "../Parse.yacc"
{ PR ("*>");}
break;
case 579:
#line 1365 "../Parse.yacc"
{ PR ("*>");}
break;
case 580:
#line 1366 "../Parse.yacc"
{ PR (";");}
break;
case 582:
#line 1367 "../Parse.yacc"
{ PR (";");}
break;
case 583:
#line 1368 "../Parse.yacc"
{ PR ("/");}
break;
case 585:
#line 1369 "../Parse.yacc"
{ PR ("<:");}
break;
case 587:
#line 1370 "../Parse.yacc"
{ PR ("^");}
break;
case 589:
#line 1371 "../Parse.yacc"
{ PR ("^'");}
break;
case 591:
#line 1374 "../Parse.yacc"
{ PR ("("); }
break;
case 593:
#line 1375 "../Parse.yacc"
{ PR ("("); }
break;
case 595:
#line 1376 "../Parse.yacc"
{ PR ("["); }
break;
case 597:
#line 1377 "../Parse.yacc"
{ PR ("{"); }
break;
case 599:
#line 1383 "../Parse.yacc"
{ PF ("<* EXTERNAL", fonts->fixedComment);}
break;
case 601:
#line 1384 "../Parse.yacc"
{ PF ("<* INLINE", fonts->fixedComment);}
break;
case 603:
#line 1385 "../Parse.yacc"
{ PF ("<* ASSERT", fonts->fixedComment);}
break;
case 605:
#line 1386 "../Parse.yacc"
{ PF ("<* TRACE", fonts->fixedComment);}
break;
case 607:
#line 1387 "../Parse.yacc"
{ PF ("<* FATAL", fonts->fixedComment);}
break;
case 609:
#line 1388 "../Parse.yacc"
{ PF ("<* UNUSED", fonts->fixedComment);}
break;
case 611:
#line 1389 "../Parse.yacc"
{ PF ("<* OBSOLETE", fonts->fixedComment);}
break;
case 613:
#line 1390 "../Parse.yacc"
{ PF ("<* CALLBACK", fonts->fixedComment);}
break;
case 615:
#line 1391 "../Parse.yacc"
{ PF ("<* EXPORTED", fonts->fixedComment);}
break;
case 617:
#line 1393 "../Parse.yacc"
{ PF ("<* PRAGMA", fonts->fixedComment);}
break;
case 619:
#line 1394 "../Parse.yacc"
{ PF ("<* NOWARN", fonts->fixedComment);}
break;
case 621:
#line 1395 "../Parse.yacc"
{ PF ("<* LINE", fonts->fixedComment);}
break;
case 623:
#line 1396 "../Parse.yacc"
{ PF ("<* LL", fonts->fixedComment);}
break;
case 625:
#line 1397 "../Parse.yacc"
{ PF ("<* LL.sup", fonts->fixedComment);}
break;
case 627:
#line 1398 "../Parse.yacc"
{ PF ("<* SPEC", fonts->fixedComment);}
break;
case 629:
#line 1399 "../Parse.yacc"
{ PF ("<* LOOPINV", fonts->fixedComment);}
break;
case 631:
#line 1401 "../Parse.yacc"
{ PRID (&lexbuf[(yyvsp[0])]);}
break;
case 633:
#line 1402 "../Parse.yacc"
{ PF (&lexbuf[(yyvsp[0])], fonts->procName);}
break;
case 635:
#line 1403 "../Parse.yacc"
{ PRID (&lexbuf[(yyvsp[0])]);}
break;
case 637:
#line 1404 "../Parse.yacc"
{ PR (&lexbuf[(yyvsp[0])]);}
break;
case 639:
#line 1405 "../Parse.yacc"
{ PR (&lexbuf[(yyvsp[0])]);}
break;
case 641:
#line 1406 "../Parse.yacc"
{ PF (&lexbuf[(yyvsp[0])], fonts->fixed);}
break;
case 643:
#line 1407 "../Parse.yacc"
{ PF (&lexbuf[(yyvsp[0])], fonts->fixed);}
break;
case 645:
#line 1409 "../Parse.yacc"
{ PK ("AND");}
break;
case 647:
#line 1410 "../Parse.yacc"
{ PK ("ANY");}
break;
case 649:
#line 1411 "../Parse.yacc"
{ PK ("ARRAY");}
break;
case 651:
#line 1412 "../Parse.yacc"
{ PK ("AS");}
break;
case 653:
#line 1413 "../Parse.yacc"
{ PK ("BEGIN");}
break;
case 655:
#line 1414 "../Parse.yacc"
{ PK ("BITS");}
break;
case 657:
#line 1415 "../Parse.yacc"
{ PK ("BRANDED");}
break;
case 659:
#line 1416 "../Parse.yacc"
{ PK ("BY");}
break;
case 661:
#line 1417 "../Parse.yacc"
{ PK ("CASE");}
break;
case 663:
#line 1418 "../Parse.yacc"
{ PK ("CONST");}
break;
case 665:
#line 1419 "../Parse.yacc"
{ PR ("DIV");}
break;
case 667:
#line 1420 "../Parse.yacc"
{ PK ("DO");}
break;
case 669:
#line 1421 "../Parse.yacc"
{ PK ("ELSE");}
break;
case 671:
#line 1422 "../Parse.yacc"
{ PK ("ELSIF");}
break;
case 673:
#line 1423 "../Parse.yacc"
{ PK ("END");}
break;
case 675:
#line 1424 "../Parse.yacc"
{ PK ("EVAL");}
break;
case 677:
#line 1425 "../Parse.yacc"
{ PK ("EXCEPT");}
break;
case 679:
#line 1426 "../Parse.yacc"
{ PK ("EXCEPTION");}
break;
case 681:
#line 1427 "../Parse.yacc"
{ PK ("EXIT");}
break;
case 683:
#line 1428 "../Parse.yacc"
{ PK ("EXPORTS");}
break;
case 685:
#line 1429 "../Parse.yacc"
{ PK ("FINALLY");}
break;
case 687:
#line 1430 "../Parse.yacc"
{ PK ("FOR");}
break;
case 689:
#line 1431 "../Parse.yacc"
{ PK ("FROM");}
break;
case 691:
#line 1432 "../Parse.yacc"
{ PK ("GENERIC");}
break;
case 693:
#line 1433 "../Parse.yacc"
{ PK ("IF");}
break;
case 695:
#line 1434 "../Parse.yacc"
{ PK ("IMPORT");}
break;
case 697:
#line 1435 "../Parse.yacc"
{ PK ("IN");}
break;
case 699:
#line 1436 "../Parse.yacc"
{ PK ("INTERFACE");}
break;
case 701:
#line 1437 "../Parse.yacc"
{ PK ("LOCK");}
break;
case 703:
#line 1438 "../Parse.yacc"
{ PK ("LOOP");}
break;
case 705:
#line 1439 "../Parse.yacc"
{ PK ("METHODS");}
break;
case 707:
#line 1440 "../Parse.yacc"
{ PK ("MOD");}
break;
case 709:
#line 1441 "../Parse.yacc"
{ PK ("MODULE");}
break;
case 711:
#line 1442 "../Parse.yacc"
{ PK ("NOT");}
break;
case 713:
#line 1443 "../Parse.yacc"
{ PK ("OBJECT");}
break;
case 715:
#line 1444 "../Parse.yacc"
{ PK ("OF");}
break;
case 717:
#line 1445 "../Parse.yacc"
{ PK ("OR");}
break;
case 719:
#line 1446 "../Parse.yacc"
{ PK ("OVERRIDES");}
break;
case 721:
#line 1447 "../Parse.yacc"
{ PK ("PROCEDURE");}
break;
case 723:
#line 1448 "../Parse.yacc"
{ PK ("RAISE");}
break;
case 725:
#line 1451 "../Parse.yacc"
{ DoBreak(1, 2, 0.0); PK ("RAISES");}
break;
case 727:
#line 1452 "../Parse.yacc"
{ PK ("READONLY");}
break;
case 729:
#line 1453 "../Parse.yacc"
{ PK ("RECORD");}
break;
case 731:
#line 1454 "../Parse.yacc"
{ PK ("REF");}
break;
case 733:
#line 1455 "../Parse.yacc"
{ PK ("REPEAT");}
break;
case 735:
#line 1456 "../Parse.yacc"
{ PK ("RETURN");}
break;
case 737:
#line 1457 "../Parse.yacc"
{ PK ("REVEAL");}
break;
case 739:
#line 1458 "../Parse.yacc"
{ PK ("ROOT");}
break;
case 741:
#line 1459 "../Parse.yacc"
{ PK ("SET");}
break;
case 743:
#line 1460 "../Parse.yacc"
{ PK ("THEN");}
break;
case 745:
#line 1461 "../Parse.yacc"
{ PK ("TO");}
break;
case 747:
#line 1462 "../Parse.yacc"
{ PK ("TRY");}
break;
case 749:
#line 1463 "../Parse.yacc"
{ PK ("TYPE");}
break;
case 751:
#line 1464 "../Parse.yacc"
{ PK ("TYPECASE");}
break;
case 753:
#line 1465 "../Parse.yacc"
{ PK ("UNSAFE");}
break;
case 755:
#line 1466 "../Parse.yacc"
{ PK ("UNTIL");}
break;
case 757:
#line 1467 "../Parse.yacc"
{ PK ("UNTRACED");}
break;
case 759:
#line 1468 "../Parse.yacc"
{ PK ("VALUE");}
break;
case 761:
#line 1469 "../Parse.yacc"
{ PK ("VAR");}
break;
case 763:
#line 1470 "../Parse.yacc"
{ PK ("WHILE");}
break;
case 765:
#line 1471 "../Parse.yacc"
{ PK ("WITH");}
break;
case 767:
#line 1474 "../Parse.yacc"
{ PK ("ABSTRACT");}
break;
case 769:
#line 1475 "../Parse.yacc"
{ PK ("ALL");}
break;
case 771:
#line 1476 "../Parse.yacc"
{ PK ("AXIOM");}
break;
case 773:
#line 1477 "../Parse.yacc"
{ PK ("DEPEND");}
break;
case 775:
#line 1478 "../Parse.yacc"
{ PK ("ENSURES");}
break;
case 777:
#line 1479 "../Parse.yacc"
{ PK ("EXISTS");}
break;
case 779:
#line 1480 "../Parse.yacc"
{ PK ("FUNC");}
break;
case 781:
#line 1481 "../Parse.yacc"
{ PK ("IFF");}
break;
case 783:
#line 1482 "../Parse.yacc"
{ PK ("IMPLIES");}
break;
case 785:
#line 1483 "../Parse.yacc"
{ PK ("INVARIANT");}
break;
case 787:
#line 1484 "../Parse.yacc"
{ PK ("IS");}
break;
case 789:
#line 1485 "../Parse.yacc"
{ PK ("LET");}
break;
case 791:
#line 1486 "../Parse.yacc"
{ PK ("MAP");}
break;
case 793:
#line 1487 "../Parse.yacc"
{ PK ("MODIFIES");}
break;
case 795:
#line 1488 "../Parse.yacc"
{ PK ("PRED");}
break;
case 797:
#line 1489 "../Parse.yacc"
{ PK ("PROTECT");}
break;
case 799:
#line 1490 "../Parse.yacc"
{ PK ("REQUIRES");}
break;
case 801:
#line 1508 "../Parse.yacc"
{ blanklinep = 0; PrintNPS(1); }
break;
case 802:
#line 1509 "../Parse.yacc"
{ blanklinep = 0; PrintNPS(1); }
break;
case 804:
#line 1513 "../Parse.yacc"
{ blanklinep = 0; }
break;
case 813:
#line 1537 "../Parse.yacc"
{ blanklinep = 0; PrintNPS(0); }
break;
case 816:
#line 1548 "../Parse.yacc"
{ GR (); }
break;
case 817:
#line 1549 "../Parse.yacc"
{ BE (0.0); }
break;
case 818:
#line 1550 "../Parse.yacc"
{ BE (offset); }
break;
case 819:
#line 1551 "../Parse.yacc"
{ BE (offset*2); }
break;
case 820:
#line 1552 "../Parse.yacc"
{ EN (); }
break;
case 821:
#line 1553 "../Parse.yacc"
{ ENF (); }
break;
case 822:
#line 1555 "../Parse.yacc"
{ DoBreak (1, 2, 0.0); }
break;
case 823:
#line 1556 "../Parse.yacc"
{ DoBreak (1, 3, 0.0); }
break;
case 824:
#line 1557 "../Parse.yacc"
{ DoBreak (0, 3, 0.0); }
break;
case 825:
#line 1559 "../Parse.yacc"
{ DoBreak (1, 1, 0.0); }
break;
case 826:
#line 1560 "../Parse.yacc"
{ DoBreak (1, 1, -offset); }
break;
case 827:
#line 1561 "../Parse.yacc"
{ DoBreak (1, 1, -offset + 2.0 * bodySpaceWidth); }
break;
case 828:
#line 1563 "../Parse.yacc"
{ DoBreak (0, 0, 0.0); }
break;
case 829:
#line 1564 "../Parse.yacc"
{ DoBreak (1, 0, 0.0); }
break;
case 830:
#line 1565 "../Parse.yacc"
{ P2 (' '); }
break;
case 831:
#line 1567 "../Parse.yacc"
{ BL (); }
break;
case 832:
#line 1569 "../Parse.yacc"
{ DoAlign (2, 0); }
break;
case 833:
#line 1570 "../Parse.yacc"
{ DoAlign (3, 0); }
break;
case 834:
#line 1571 "../Parse.yacc"
{ DoAlign (5, 1); }
break;
case 835:
#line 1572 "../Parse.yacc"
{ EndAlign (); }
break;
case 836:
#line 1574 "../Parse.yacc"
{ ALNL(); }
break;
case 837:
#line 1576 "../Parse.yacc"
{ DoSPNL (); }
break;
case 838:
#line 1577 "../Parse.yacc"
{ DoQSP (); }
break;
case 839:
#line 1578 "../Parse.yacc"
{ NL (); }
break;
case 840:
#line 1580 "../Parse.yacc"
{ depth++; }
break;
case 841:
#line 1581 "../Parse.yacc"
{ depth--; }
break;
}
/* Line 1037 of yacc.c. */
#line 4961 "y.tab.c"
yyvsp -= yylen;
yyssp -= yylen;
YY_STACK_PRINT (yyss, yyssp);
*++yyvsp = yyval;
/* Now `shift' the result of the reduction. Determine what state
that goes to, based on the state we popped back to and the rule
number reduced by. */
yyn = yyr1[yyn];
yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
yystate = yytable[yystate];
else
yystate = yydefgoto[yyn - YYNTOKENS];
goto yynewstate;
/*------------------------------------.
| yyerrlab -- here on detecting error |
`------------------------------------*/
yyerrlab:
/* If not already recovering from an error, report this error. */
if (!yyerrstatus)
{
++yynerrs;
#if YYERROR_VERBOSE
yyn = yypact[yystate];
if (YYPACT_NINF < yyn && yyn < YYLAST)
{
size_t yysize = 0;
int yytype = YYTRANSLATE (yychar);
const char* yyprefix;
char *yymsg;
int yyx;
/* Start YYX at -YYN if negative to avoid negative indexes in
YYCHECK. */
int yyxbegin = yyn < 0 ? -yyn : 0;
/* Stay within bounds of both yycheck and yytname. */
int yychecklim = YYLAST - yyn;
int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
int yycount = 0;
yyprefix = ", expecting ";
for (yyx = yyxbegin; yyx < yyxend; ++yyx)
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
{
yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
yycount += 1;
if (yycount == 5)
{
yysize = 0;
break;
}
}
yysize += (sizeof ("syntax error, unexpected ")
+ yystrlen (yytname[yytype]));
yymsg = (char *) YYSTACK_ALLOC (yysize);
if (yymsg != 0)
{
char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
yyp = yystpcpy (yyp, yytname[yytype]);
if (yycount < 5)
{
yyprefix = ", expecting ";
for (yyx = yyxbegin; yyx < yyxend; ++yyx)
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
{
yyp = yystpcpy (yyp, yyprefix);
yyp = yystpcpy (yyp, yytname[yyx]);
yyprefix = " or ";
}
}
yyerror (yymsg);
YYSTACK_FREE (yymsg);
}
else
yyerror ("syntax error; also virtual memory exhausted");
}
else
#endif /* YYERROR_VERBOSE */
yyerror ("syntax error");
}
if (yyerrstatus == 3)
{
/* If just tried and failed to reuse look-ahead token after an
error, discard it. */
if (yychar <= YYEOF)
{
/* If at end of input, pop the error token,
then the rest of the stack, then return failure. */
if (yychar == YYEOF)
for (;;)
{
YYPOPSTACK;
if (yyssp == yyss)
YYABORT;
yydestruct ("Error: popping",
yystos[*yyssp], yyvsp);
}
}
else
{
yydestruct ("Error: discarding", yytoken, &yylval);
yychar = YYEMPTY;
}
}
/* Else will try to reuse look-ahead token after shifting the error
token. */
goto yyerrlab1;
/*---------------------------------------------------.
| yyerrorlab -- error raised explicitly by YYERROR. |
`---------------------------------------------------*/
yyerrorlab:
#ifdef __GNUC__
/* Pacify GCC when the user code never invokes YYERROR and the label
yyerrorlab therefore never appears in user code. */
if (0)
goto yyerrorlab;
#endif
yyvsp -= yylen;
yyssp -= yylen;
yystate = *yyssp;
goto yyerrlab1;
/*-------------------------------------------------------------.
| yyerrlab1 -- common code for both syntax error and YYERROR. |
`-------------------------------------------------------------*/
yyerrlab1:
yyerrstatus = 3; /* Each real token shifted decrements this. */
for (;;)
{
yyn = yypact[yystate];
if (yyn != YYPACT_NINF)
{
yyn += YYTERROR;
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
{
yyn = yytable[yyn];
if (0 < yyn)
break;
}
}
/* Pop the current state because it cannot handle the error token. */
if (yyssp == yyss)
YYABORT;
yydestruct ("Error: popping", yystos[yystate], yyvsp);
YYPOPSTACK;
yystate = *yyssp;
YY_STACK_PRINT (yyss, yyssp);
}
if (yyn == YYFINAL)
YYACCEPT;
*++yyvsp = yylval;
/* Shift the error token. */
YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
yystate = yyn;
goto yynewstate;
/*-------------------------------------.
| yyacceptlab -- YYACCEPT comes here. |
`-------------------------------------*/
yyacceptlab:
yyresult = 0;
goto yyreturn;
/*-----------------------------------.
| yyabortlab -- YYABORT comes here. |
`-----------------------------------*/
yyabortlab:
yydestruct ("Error: discarding lookahead",
yytoken, &yylval);
yychar = YYEMPTY;
yyresult = 1;
goto yyreturn;
#ifndef yyoverflow
/*----------------------------------------------.
| yyoverflowlab -- parser overflow comes here. |
`----------------------------------------------*/
yyoverflowlab:
yyerror ("parser stack overflow");
yyresult = 2;
/* Fall through. */
#endif
yyreturn:
#ifndef yyoverflow
if (yyss != yyssa)
YYSTACK_FREE (yyss);
#endif
return yyresult;
}
#line 1583 "../Parse.yacc"
/*-------- additional C code to implement the semantic routines -----------*/
/* The moreComments variable and CheckComm() macro are a way to move some
of the comment stuff around in the parse tree. What we'd like to do is
move all the comments and newlines starting at the first newline outside
of any enclosing Formatter.End's. We do this by having PrintNPS format
the leading comment in a sequence, set moreComments and return. All the
routines that generate output use the CheckComm macro to make sure the
leftover comments get printed first. EN() doesn't check so that
comments move outside of Formatter.End's. P2() doesn't check, which
allows comments to move past extra spacing characters.
To move the comments past sequences like 'G stmts E' where stmts may be
empty, the grammar has been modified so that the G and E are not
generated for the empty case. This is the reason for the stmts_group
production, and for removing empty productions from type_decl_list, etc.
Blanklinep is used to coordinate PrintNPS's generation of newlines with
the grammar's. If HandleComments is being called from something that
can emit a newline and the whitespace sequence ends with a newline, then
HandleComments will not emit that final newline, but will set blanklinep
instead. This allows the caller to output the newline, perhaps with
different parameters than HandleComments would have used.
The trickiest part is coping with Formatter.Align. alignDepth is > 0
whenever we are formatting an align. Each row consists of a group with
some nested subgroups for each column. Comments in all but the last
column are kept inside the subgroup by using EF instead of E to end
them. Comments in the last column are allowed to escape the row and are
formatted as a special NoAlign row. The alignRow variable tells
PrintNPS which case we have. */
static int moreComments = 0; /* PrintNPS has leftover work to do. */
#define CheckComm(br) { if (moreComments) HandleComments(0, 0, br); }
static int alignRow = 0; /* we are at the end of an Align row. */
static int alignDepth = 0; /* how many Formatter.Aligns are active? */
/*---- interface to the Modula-3 formatter package ---*/
typedef void (*PROC)();
typedef double (*FPROC)();
static PROC Formatter__Flush;
static PROC Formatter__SetFont;
static PROC Formatter__PutChar;
static PROC Formatter__Break;
static PROC Formatter__NewLine;
static PROC Formatter__UnitedBreak;
static PROC Formatter__Group;
static PROC Formatter__Begin;
static PROC Formatter__Align;
static PROC Formatter__NoAlign;
static PROC Formatter__Col;
static PROC Formatter__End;
PR (s)
char *s;
{
while (*s != 0) {
P (*s);
s++; }
}
/* Print a keyword. */
PK (s)
char *s;
{
PF(s, fonts->keyword);
}
/* Print in arbitrary font. */
PF(s, f)
char *s;
char *f;
{
Formatter__SetFont(formatter, f);
PR(s);
Formatter__SetFont(formatter, fonts->body);
}
static char *builtins[] = {
"ABS",
"ADDRESS",
"ADR",
"ADRSIZE",
"BITSIZE",
"BOOLEAN",
"BYTESIZE",
"CARDINAL",
"CEILING",
"CHAR",
"DEC",
"DISPOSE",
"EXTENDED",
"FALSE",
"FIRST",
"FLOAT",
"FLOOR",
"INC",
"INTEGER",
"ISTYPE",
"LAST",
"LONGREAL",
"LOOPHOLE",
"MAX",
"MIN",
"MUTEX",
"NARROW",
"NEW",
"NIL",
"NULL",
"NUMBER",
"ORD",
"REAL",
"REFANY",
"ROUND",
"SUBARRAY",
"TEXT",
"TRUE",
"TRUNC",
"TYPECODE",
"VAL",
NULL
};
PRID(s)
register char *s;
{
register int i;
register char *b;
for (i = 0; (b = builtins[i]) != NULL; ++i) {
if (*b == *s && strcmp(b, s) == 0) {
PF(s, fonts->builtinID);
return;
}
}
PR(s);
}
PRNONL (s) /* strip newline */
char *s;
{
while (*s != 0 && *s != '\n') {
P (*s);
s++; }
}
BE (n) double n; { CheckComm(0); Formatter__Begin (formatter, n, MAXWIDTH); }
EN () { Formatter__End (formatter); }
ENF () { CheckComm(0); Formatter__End (formatter); }
GR () { CheckComm(0); Formatter__Group (formatter); }
Flush () { CheckComm(0); Formatter__Flush (formatter); }
Reset () { }
P(n) int n; { CheckComm(0); Formatter__PutChar (formatter, n); }
P2(n) int n; { Formatter__PutChar (formatter, n); }
/* Emit a newline one level out. */
NL ()
{
CheckComm(1);
Formatter__NewLine (formatter, -offset, 0);
blanklinep = 0;
}
/* Emit a newline at current level. */
BL ()
{
CheckComm(1);
Formatter__NewLine (formatter, 0.0, 0);
blanklinep = 0;
}
DoSPNL ()
{
if (style == EM_STYLE) {
DoBreak (1, 0, 0.0);
} else {
DoBreak (1, 1, -offset);
};
}
DoQSP ()
{
if (callspace) DoBreak (1, 0, 0);
}
DoAlign (cols, oneline)
int cols, oneline;
{
CheckComm(0);
++alignDepth;
/* Oneline is only true for formals to procedures. alignDecls does not
affect them. */
Formatter__Align(formatter, cols, oneline, (oneline || alignDecls));
}
/* Tell comment code that align is going to insert a newline here. */
ALNL()
{
/* Only do it if there is comment work left to do. */
if (moreComments)
alignRow = 1;
}
EndAlign()
{
--alignDepth;
alignRow = 0;
Formatter__End(formatter);
}
DoBreak (blank, breakpt, offs)
int blank, breakpt;
double offs;
{
CheckComm(1);
/* Turn breaks into newlines if there is one left to do from comment
handling. */
if (blanklinep) {
Formatter__NewLine(formatter, offs, 0);
blanklinep = 0;
return;
}
if (blank==1) Formatter__PutChar (formatter, ' ');
/* United Break */
if (breakpt==1) Formatter__UnitedBreak (formatter, offs, 0);
/* Optimal, OptimalBreak */
if (breakpt==2) Formatter__Break (formatter, offs, OptimalBreak, 1);
/* Optimal, OptimalNoBreak */
if (breakpt==3) Formatter__Break (formatter, offs, breakType, 1);
/* Not optimal (only used for comments). */
if (breakpt==4) Formatter__Break (formatter, offs, NonOptimal, 1);
}
#define PRODUCE(x) {fprintf (stderr, "%d ", x); return (x); }
#include <stdio.h>
#include <string.h>
#include "hash.h"
#include "lex.yy.c"
#include "lex_help.h"
initParser (infile, outfile, emacs, caps, fontInfo,
offs, ccol, sty, ad, breaktype, follow, callsp,
charWidth, flush, setFont, putChar, breakF, newLine,
unitedBreak, group, begin, align, noAlign, col, end)
char *infile;
char *outfile;
long emacs, caps;
FontInfo *fontInfo;
double offs, ccol;
STYLE sty;
long ad;
long breaktype, follow, callsp;
FPROC charWidth;
PROC flush, setFont, putChar, breakF, newLine;
PROC unitedBreak, group, begin, align, noAlign, col, end;
{
yyin = stdin;
if ((!emacs) && (infile != 0)) {
yyin = fopen(infile, "r");
if (yyin == NULL) {
fprintf(stderr, "m3pp: unable to open \"%s\".\n", infile);
exit(1);
};
/* make a copy of the file name for output in case of an error */
/* Where can I free the allocated memory ? */
infileName = (char *) malloc (strlen(infile)+1);
strcpy (infileName, infile);
};
Formatter__Flush = flush;
Formatter__SetFont = setFont;
Formatter__PutChar = putChar;
Formatter__Break = breakF;
Formatter__NewLine = newLine;
Formatter__UnitedBreak = unitedBreak;
Formatter__Group = group;
Formatter__Begin = begin;
Formatter__Align = align;
Formatter__NoAlign = noAlign;
Formatter__Col = col;
Formatter__End = end;
formatter = outfile;
calledFromEmacs = emacs;
capSwitch = caps;
fonts = fontInfo;
bodySpaceWidth = charWidth(formatter, fonts->body, ' ');
commentLeaderWidth = charWidth(formatter, fonts->comment, '(') +
charWidth(formatter, fonts->comment, '*') +
charWidth(formatter, fonts->comment, ' ');
fixedCommentSpaceWidth = charWidth(formatter, fonts->fixedComment, ' ');
commentCol = ccol;
offset = offs;
style = sty;
alignDecls = ad;
breakType = breaktype;
callspace = callsp;
comBreakNLs = follow;
insertKeywords();
}
yyerror(s) char *s; {
int temp, temp2; /* must be 'int' instead of 'char'
otherwise the test (temp>0)
will fail for characters above code 127
and we need negative numbers for detecting end of file */
Reset();
Flush();
if (calledFromEmacs == 0) {
/* XEmacs requires that character counting starts with 1
- very poor programming */
fprintf (stderr,
"%s:%d:%d: (byte %d) %s while pretty-printing\n",
(infileName != NULL) ? infileName : "",
currentRow+1, currentCol+1, lexposition, s);
fprintf(stderr, "Error flagged in output\n");
}
PR ("(* SYNTAX ERROR *) ");
if (!calledFromEmacs && (yychar == 0)) return; /* end-of-file */
if ((lexbuf[lexptr] == '\001') && calledFromEmacs) return;
/* i.e., return if formatting unit from Emacs was incomplete. */
PR (&lexbuf[lexptr]);
/* Now print the rest of the input, but if
the input is terminated by end-of-file (rather than the Emacs
sentinel '001'), and if the last thing before the end-of-file
is a newline, then don't print that final newline. This is
because Flush() will be called by main when yyerror returns. */
temp2 = input(); /* input comes from the lex library. */
if ((calledFromEmacs && (temp2 == '\001')) || (temp2 == 0)) return;
temp = input();
while ((temp > 0) && (!calledFromEmacs || (temp != '\001')))
{P (temp2); temp2 = temp; temp = input();}
if ((temp2 != '\n') || (temp > 0)) P(temp2);
}
/* Print out first comment. Hidden down here so it can see the comment
structure. */
PrintOnePragma()
{
PR(comments[0].text);
}
PrintNPS(initNPS)
int initNPS;
{
HandleComments(1, initNPS, 0);
}
/* Determine if a comment should be refilled or not. Returns TRUE if it is
"fixed" (should not be refilled). */
int FixedComment(s)
char *s;
{
char c;
/* True for pragmas, '(**', or '(*|' */
if (*s == '<' || s[2] == '*' || s[2] == '|')
return 1;
/* True for '(*' on a blank line. */
for (s += 2; (c = *s) != '\n' && c != 0; ++s)
if (!IsWhite(c))
return 0;
return 1;
}
static int iComment;
/* Comment and newline handling code. */
HandleComments(firstTime, initNPS, doBreak)
int firstTime; /* first time on this comment? */
int initNPS; /* is this an InitialNPS? */
int doBreak; /* is a Break about to happen? */
{
int i;
register char *s, c;
int startCol, ws;
int needEnd = 0;
moreComments = 0; /* avoid recursion in BL, etc. calls. */
blanklinep = 0;
if (firstTime) {
/* Special case: a single newline is discarded. The pretty-printer
will add newlines as necessary. */
if (nComments == 0 && comments[0].NLs <= 1)
return;
iComment = 0;
}
if (!firstTime && alignDepth != 0) {
/* Put extra Group/End around continuation in case we're in an Align
group. Also, be sure and substract a newline for the one Align
will insert automatically. I hate align. */
if (alignRow) {
/* If we're at the end of a formatter row, then the comment will
be a row of its own, so emit a NoAlign op. NoAlign rows must
emit their own leading newline, but not the trailing one. */
alignRow = 0;
if (iComment < nComments || comments[nComments].NLs > 1) {
Formatter__NoAlign(formatter);
GR();
needEnd = 1;
}
if (comments[nComments].NLs > 0)
--comments[nComments].NLs;
}
}
/* Either print a space or goto the comment column for a comment on the
same line as preceding code. */
if (firstTime && comments[0].NLs == 0 && !initNPS) {
if (nComments == 1 && comments[1].NLs == 0)
P(' ');
else
Formatter__Col(formatter, commentCol, 0, bodySpaceWidth);
}
/* If we're flushing comments in preperation to doing a break, remove one
last newline, and set blanklinep appropriately. I believe that this
code and the align code above should never both execute in the same
invocation of HandleComments. */
if (doBreak && comments[nComments].NLs > 0) {
--comments[nComments].NLs;
blanklinep = 1;
}
for (;; ++iComment) {
/* The first time, bail out at the first newline. */
if (firstTime &&
(iComment >= nComments || comments[iComment].NLs > comBreakNLs)) {
moreComments = 1;
break;
}
for (i = 0; i < comments[iComment].NLs; ++i) {
Formatter__NewLine(formatter, 0.0, 0);
}
/* break in middle since last comment struct has no comment text. */
if (iComment >= nComments)
break;
/* Handle the comment */
s = comments[iComment].text;
if (FixedComment(s)) {
/* Comment that should not be reformated. Each line should be
output unchanged except for indentation. */
startCol = comments[iComment].startCol;
BE(0.0);
Formatter__SetFont(formatter, fonts->fixedComment);
while (*s != 0) {
/* Emit the text of the line (we're already at the right
place for the first line). */
while (*s != 0 && *s != '\n')
P(*s++);
if (*s == 0)
break;
/* Skip the newline. */
++s;
/* Count white space at beginning of the next line. */
ws = 0;
while ((c = *s) == ' ' || c == '\t') {
if (c == ' ')
++ws;
else
ws = (ws + 8) & ~7;
++s;
}
/* And emit the right amount to indent this line properly. */
Formatter__NewLine(formatter,
fixedCommentSpaceWidth * (ws - startCol), 0);
}
Formatter__SetFont(formatter, fonts->body);
EN();
}
else {
/* Comment should be reformatted, so parse words and refill.
Lines that begin with a vertical bar ('|') are special and
should not be filled. */
int specialLine = FALSE; /* this "word" is a special line */
int prevSpecial = FALSE; /* last one was */
int nls;
int sentenceBreak = FALSE; /* last word ended sentence. */
startCol = comments[iComment].startCol;
BE(commentLeaderWidth);
Formatter__SetFont(formatter, fonts->comment);
P(*s++); /* '(' */
P(*s++); /* '*' */
while (*s != 0) {
/* Once around per word or special line. */
nls = 0;
prevSpecial = specialLine;
specialLine = FALSE;
while (IsWhite(*s)) {
if (*s == '\n') {
++nls;
/* Check for special line. */
if (s[1] == '|') {
++s;
specialLine = TRUE;
break;
}
}
++s;
}
/* Deal with special lines. */
if (specialLine) {
while (nls-- > 0)
Formatter__NewLine(formatter, -MAXWIDTH, 0);
Formatter__SetFont(formatter, fonts->fixedComment);
/* Count white space at beginning of this comment. */
ws = 1; /* count the | for now */
P(*s++); /* and print it */
while ((c = *s) == ' ' || c == '\t') {
if (c == ' ')
++ws;
else
ws = (ws + 8) & ~7;
++s;
}
/* Emit the right amount to move indent this line
properly. */
Formatter__Col(formatter,
fixedCommentSpaceWidth * (ws - startCol - 3),
1, 0.0);
while (*s != '\n' && *s != 0)
P(*s++);
Formatter__SetFont(formatter, fonts->comment);
}
else {
/* If more than one newline we have a paragraph break.
Emit the newlines. */
if (nls > 1 || prevSpecial) {
while (nls-- > 0)
Formatter__NewLine(formatter, 0.0, 0);
}
/* Word break. */
else {
/* Avoid space if there was no leading white space. */
if (s != comments[iComment].text + 2)
Formatter__PutChar(formatter, ' ');
/* Don't break before the end of the comment. This
should also check for first word, but doesn't yet. */
if (strcmp(s, "*)") != 0) {
if (sentenceBreak)
Formatter__PutChar(formatter, ' ');
Formatter__Break(formatter, 0.0, 0, 1);
}
}
/* Emit the word. */
while (!IsWhite(*s) && *s != 0)
P(*s++);
sentenceBreak = index(".!?", s[-1]) != 0;
}
}
Formatter__SetFont(formatter, fonts->body);
EN();
}
}
if (needEnd)
EN();
}