gitignore
[m6w6/ext-psi] / src / parser_proc.c
1 /* A Bison parser, made by GNU Bison 3.2. */
2
3 /* Skeleton implementation for Bison GLR parsers in C
4
5 Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc.
6
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
20 /* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
29
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
32
33 /* C GLR parser skeleton written by Paul Hilfinger. */
34
35 /* Undocumented macros, especially those whose name start with YY_,
36 are private implementation details. Do not rely on them. */
37
38 /* Identify Bison output. */
39 #define YYBISON 1
40
41 /* Bison version. */
42 #define YYBISON_VERSION "3.2"
43
44 /* Skeleton name. */
45 #define YYSKELETON_NAME "glr.c"
46
47 /* Pure parsers. */
48 #define YYPURE 1
49
50
51 /* "%code top" blocks. */
52 #line 1 "src/parser_proc_grammar.y" /* glr.c:221 */
53
54
55 #line 56 "src/parser_proc.c" /* glr.c:221 */
56
57
58 /* Substitute the variable and function names. */
59 #define yyparse psi_parser_proc_parse
60 #define yylex psi_parser_proc_lex
61 #define yyerror psi_parser_proc_error
62 #define yydebug psi_parser_proc_debug
63
64
65
66
67 # ifndef YY_NULLPTR
68 # if defined __cplusplus
69 # if 201103L <= __cplusplus
70 # define YY_NULLPTR nullptr
71 # else
72 # define YY_NULLPTR 0
73 # endif
74 # else
75 # define YY_NULLPTR ((void*)0)
76 # endif
77 # endif
78
79 #include "parser_proc.h"
80
81 /* Enabling verbose error messages. */
82 #ifdef YYERROR_VERBOSE
83 # undef YYERROR_VERBOSE
84 # define YYERROR_VERBOSE 1
85 #else
86 # define YYERROR_VERBOSE 1
87 #endif
88
89 /* Default (constant) value used for initialization for null
90 right-hand sides. Unlike the standard yacc.c template, here we set
91 the default value of $$ to a zeroed-out value. Since the default
92 value is undefined, this behavior is technically correct. */
93 static YYSTYPE yyval_default;
94
95
96 /* Unqualified %code blocks. */
97 #line 4 "src/parser_proc_grammar.y" /* glr.c:261 */
98
99 #include <assert.h>
100 #include <stdarg.h>
101
102 #include "plist.h"
103 #include "parser.h"
104
105 #define YYDEBUG 1
106 #define PSI_PARSER_PROC_DEBUG 1
107
108 static int psi_parser_proc_lex(YYSTYPE *u, struct psi_parser *P, struct psi_plist *tokens, size_t *index);
109 static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char *msg);
110
111 static inline void psi_parser_proc_add_struct(struct psi_parser *P, struct psi_decl_struct *strct)
112 {
113 assert(strct);
114 if (!P->structs) {
115 P->structs = psi_plist_init((psi_plist_dtor) psi_decl_struct_free);
116 }
117 P->structs = psi_plist_add(P->structs, &strct);
118 }
119 static inline void psi_parser_proc_add_union(struct psi_parser *P, struct psi_decl_union *u)
120 {
121 assert(u);
122 if (!P->unions) {
123 P->unions = psi_plist_init((psi_plist_dtor) psi_decl_union_free);
124 }
125 P->unions = psi_plist_add(P->unions, &u);
126 }
127 static inline void psi_parser_proc_add_enum(struct psi_parser *P, struct psi_decl_enum *e)
128 {
129 assert(e);
130 if (!P->enums) {
131 P->enums = psi_plist_init((psi_plist_dtor) psi_decl_enum_free);
132 }
133 P->enums = psi_plist_add(P->enums, &e);
134 }
135 static inline void psi_parser_proc_add_typedef(struct psi_parser *P, struct psi_decl_arg *def)
136 {
137 assert(def);
138 if (!P->types) {
139 P->types = psi_plist_init((psi_plist_dtor) psi_decl_arg_free);
140 }
141 P->types = psi_plist_add(P->types, &def);
142 }
143 static inline void psi_parser_proc_add_const(struct psi_parser *P, struct psi_const *cnst) {
144 assert(cnst);
145 if (!P->consts) {
146 P->consts = psi_plist_init((psi_plist_dtor) psi_const_free);
147 }
148 P->consts = psi_plist_add(P->consts, &cnst);
149
150 }
151 static inline void psi_parser_proc_add_decl(struct psi_parser *P, struct psi_decl *decl) {
152 assert(decl);
153
154 if (psi_decl_is_blacklisted(decl->func->var->name->val)) {
155 psi_decl_free(&decl);
156 return;
157 }
158
159 if (!P->decls) {
160 P->decls = psi_plist_init((psi_plist_dtor) psi_decl_free);
161 }
162 P->decls = psi_plist_add(P->decls, &decl);
163 }
164 static inline void psi_parser_proc_add_decl_extvars(struct psi_parser *P, struct psi_plist *list) {
165 assert(list);
166 if (!P->vars) {
167 P->vars = psi_plist_init((psi_plist_dtor) psi_decl_extvar_free);
168 }
169 P->vars = psi_plist_add_r(P->vars, psi_plist_count(list), psi_plist_eles(list));
170 free(list);
171 }
172 static inline void psi_parser_proc_add_impl(struct psi_parser *P, struct psi_impl *impl) {
173 assert(impl);
174 if (!P->impls) {
175 P->impls = psi_plist_init((psi_plist_dtor) psi_impl_free);
176 }
177 P->impls = psi_plist_add(P->impls, &impl);
178 }
179
180 /* end code */
181
182 #line 183 "src/parser_proc.c" /* glr.c:261 */
183
184 #include <stdio.h>
185 #include <stdlib.h>
186 #include <string.h>
187
188 #ifndef YY_
189 # if defined YYENABLE_NLS && YYENABLE_NLS
190 # if ENABLE_NLS
191 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
192 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
193 # endif
194 # endif
195 # ifndef YY_
196 # define YY_(Msgid) Msgid
197 # endif
198 #endif
199
200 #ifndef YYFREE
201 # define YYFREE free
202 #endif
203 #ifndef YYMALLOC
204 # define YYMALLOC malloc
205 #endif
206 #ifndef YYREALLOC
207 # define YYREALLOC realloc
208 #endif
209
210 #define YYSIZEMAX ((size_t) -1)
211
212 #ifdef __cplusplus
213 typedef bool yybool;
214 # define yytrue true
215 # define yyfalse false
216 #else
217 /* When we move to stdbool, get rid of the various casts to yybool. */
218 typedef unsigned char yybool;
219 # define yytrue 1
220 # define yyfalse 0
221 #endif
222
223 #ifndef YYSETJMP
224 # include <setjmp.h>
225 # define YYJMP_BUF jmp_buf
226 # define YYSETJMP(Env) setjmp (Env)
227 /* Pacify Clang and ICC. */
228 # define YYLONGJMP(Env, Val) \
229 do { \
230 longjmp (Env, Val); \
231 YYASSERT (0); \
232 } while (yyfalse)
233 #endif
234
235 #ifndef YY_ATTRIBUTE
236 # if (defined __GNUC__ \
237 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
238 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
239 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
240 # else
241 # define YY_ATTRIBUTE(Spec) /* empty */
242 # endif
243 #endif
244
245 #ifndef YY_ATTRIBUTE_PURE
246 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
247 #endif
248
249 #ifndef YY_ATTRIBUTE_UNUSED
250 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
251 #endif
252
253 #if !defined _Noreturn \
254 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
255 # if defined _MSC_VER && 1200 <= _MSC_VER
256 # define _Noreturn __declspec (noreturn)
257 # else
258 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
259 # endif
260 #endif
261
262 /* Suppress unused-variable warnings by "using" E. */
263 #if ! defined lint || defined __GNUC__
264 # define YYUSE(E) ((void) (E))
265 #else
266 # define YYUSE(E) /* empty */
267 #endif
268
269 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
270 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
271 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
272 _Pragma ("GCC diagnostic push") \
273 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
274 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
275 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
276 _Pragma ("GCC diagnostic pop")
277 #else
278 # define YY_INITIAL_VALUE(Value) Value
279 #endif
280 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
281 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
282 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
283 #endif
284 #ifndef YY_INITIAL_VALUE
285 # define YY_INITIAL_VALUE(Value) /* Nothing. */
286 #endif
287
288
289 #ifndef YYASSERT
290 # define YYASSERT(Condition) ((void) ((Condition) || (abort (), 0)))
291 #endif
292
293 /* YYFINAL -- State number of the termination state. */
294 #define YYFINAL 166
295 /* YYLAST -- Last index in YYTABLE. */
296 #define YYLAST 8213
297
298 /* YYNTOKENS -- Number of terminals. */
299 #define YYNTOKENS 140
300 /* YYNNTS -- Number of nonterminals. */
301 #define YYNNTS 142
302 /* YYNRULES -- Number of rules. */
303 #define YYNRULES 637
304 /* YYNRULES -- Number of states. */
305 #define YYNSTATES 950
306 /* YYMAXRHS -- Maximum number of symbols on right-hand side of rule. */
307 #define YYMAXRHS 16
308 /* YYMAXLEFT -- Maximum number of symbols to the left of a handle
309 accessed by $0, $-1, etc., in any rule. */
310 #define YYMAXLEFT 0
311
312 /* YYTRANSLATE(X) -- Bison symbol number corresponding to X. */
313 #define YYUNDEFTOK 2
314 #define YYMAXUTOK 394
315
316 #define YYTRANSLATE(YYX) \
317 ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
318
319 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
320 static const unsigned char yytranslate[] =
321 {
322 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
323 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
324 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
325 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
326 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
327 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
328 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
329 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
330 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
331 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
332 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
333 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
334 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
335 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
336 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
337 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
338 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
339 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
340 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
341 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
342 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
343 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
344 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
345 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
346 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
347 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
348 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
349 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
350 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
351 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
352 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
353 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
354 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
355 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
356 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
357 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
358 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
359 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
360 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
361 135, 136, 137, 138, 139
362 };
363
364 #if YYDEBUG
365 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
366 static const unsigned short yyrline[] =
367 {
368 0, 407, 407, 407, 407, 407, 407, 407, 407, 407,
369 407, 407, 407, 407, 407, 407, 407, 407, 407, 407,
370 408, 408, 408, 408, 409, 409, 409, 409, 409, 409,
371 409, 409, 409, 409, 409, 409, 409, 409, 409, 409,
372 409, 409, 409, 409, 409, 409, 410, 410, 410, 410,
373 410, 410, 410, 410, 410, 410, 410, 410, 410, 410,
374 410, 410, 410, 410, 410, 410, 410, 410, 410, 410,
375 410, 410, 410, 410, 410, 410, 410, 410, 410, 410,
376 410, 410, 410, 410, 410, 410, 410, 410, 410, 410,
377 410, 410, 410, 410, 410, 410, 410, 410, 410, 410,
378 410, 410, 410, 410, 410, 410, 410, 410, 410, 410,
379 410, 410, 410, 410, 410, 410, 410, 410, 410, 410,
380 410, 410, 410, 410, 410, 410, 410, 410, 410, 410,
381 410, 410, 410, 410, 410, 410, 410, 410, 410, 410,
382 410, 410, 410, 410, 410, 410, 410, 410, 410, 410,
383 410, 410, 410, 410, 410, 410, 410, 410, 410, 410,
384 410, 410, 410, 410, 411, 411, 411, 411, 411, 411,
385 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
386 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
387 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
388 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
389 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
390 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
391 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
392 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
393 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
394 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
395 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
396 415, 416, 419, 420, 423, 424, 425, 426, 432, 436,
397 439, 442, 445, 451, 454, 457, 460, 463, 469, 475,
398 478, 484, 507, 511, 515, 520, 524, 528, 532, 539,
399 540, 544, 545, 549, 550, 551, 555, 556, 560, 561,
400 565, 566, 567, 571, 572, 576, 581, 586, 591, 600,
401 603, 606, 607, 613, 618, 626, 629, 633, 637, 644,
402 648, 652, 656, 661, 672, 683, 688, 693, 697, 703,
403 714, 717, 721, 729, 733, 739, 743, 750, 754, 758,
404 765, 766, 767, 771, 785, 791, 794, 800, 803, 809,
405 810, 818, 829, 838, 850, 851, 855, 865, 874, 886,
406 887, 890, 896, 897, 901, 905, 909, 914, 919, 927,
407 928, 929, 932, 938, 941, 944, 950, 951, 955, 958,
408 961, 967, 970, 973, 981, 993, 996, 999, 1002, 1009,
409 1012, 1022, 1025, 1028, 1031, 1032, 1033, 1037, 1040, 1043,
410 1054, 1061, 1071, 1074, 1080, 1083, 1090, 1126, 1129, 1135,
411 1138, 1144, 1150, 1151, 1152, 1153, 1154, 1155, 1159, 1163,
412 1164, 1168, 1169, 1173, 1174, 1181, 1182, 1186, 1193, 1204,
413 1211, 1219, 1243, 1272, 1279, 1290, 1336, 1377, 1392, 1395,
414 1398, 1404, 1407, 1413, 1428, 1431, 1460, 1468, 1496, 1501,
415 1509, 1519, 1529, 1532, 1536, 1542, 1556, 1573, 1576, 1582,
416 1589, 1596, 1604, 1615, 1622, 1625, 1631, 1636, 1644, 1648,
417 1652, 1656, 1660, 1664, 1671, 1675, 1679, 1683, 1687, 1691,
418 1697, 1701, 1708, 1711, 1723, 1727, 1731, 1738, 1751, 1764,
419 1777, 1780, 1787, 1788, 1792, 1795, 1798, 1801, 1807, 1811,
420 1818, 1821, 1824, 1839, 1840, 1841, 1842, 1846, 1849, 1855,
421 1856, 1862, 1865, 1871, 1872, 1876, 1877, 1887, 1890, 1897,
422 1902, 1907, 1917, 1920, 1926, 1929, 1935, 1942, 1949, 1956,
423 1957, 1961, 1962, 1963, 1964, 1965, 1969, 1970, 1971, 1972,
424 1976, 1979, 1985, 1988, 1991, 1994, 1997, 2003, 2007, 2015,
425 2016, 2020, 2027, 2030, 2033, 2036, 2040, 2043, 2049, 2053,
426 2061, 2068, 2073, 2081, 2089, 2090, 2091, 2092, 2093, 2094,
427 2095, 2096, 2097, 2098, 2102, 2105, 2111, 2114, 2120, 2121,
428 2125, 2128, 2134, 2137, 2143, 2150, 2154, 2161, 2164, 2167,
429 2173, 2180, 2183, 2186, 2193, 2198, 2206, 2207, 2208, 2209,
430 2210, 2211, 2212, 2213, 2217, 2220, 2226, 2229, 2235, 2242,
431 2243, 2247, 2254, 2257, 2263, 2271, 2274, 2280
432 };
433 #endif
434
435 #if YYDEBUG || YYERROR_VERBOSE || 1
436 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
437 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
438 static const char *const yytname[] =
439 {
440 "\"end of file\"", "error", "$undefined", "BOOL", "CHAR", "SHORT",
441 "INT", "SIGNED", "UNSIGNED", "LONG", "FLOAT", "DOUBLE", "STRING",
442 "MIXED", "ARRAY", "OBJECT", "CALLABLE", "VOID", "ZVAL", "NULL", "TRUE",
443 "FALSE", "NAME", "NSNAME", "DOLLAR_NAME", "NUMBER", "QUOTED_STRING",
444 "QUOTED_CHAR", "SIZEOF", "VOLATILE", "\"end of line\"", "\";\"", "\"(\"",
445 "\")\"", "\",\"", "\":\"", "\"{\"", "\"}\"", "\"[\"", "\"]\"", "\"=\"",
446 "\"#\"", "\"|\"", "\"^\"", "\"&\"", "\"<<\"", "\">>\"", "\"+\"", "\"-\"",
447 "\"*\"", "\"/\"", "\"%\"", "\"<\"", "\">\"", "\">=\"", "\"<=\"",
448 "\"||\"", "\"&&\"", "\"==\"", "\"!=\"", "\"~\"", "\"!\"", "\".\"",
449 "\"\\\\\"", "\"...\"", "\"?\"", "PRAGMA", "PRAGMA_ONCE", "LINE", "ERROR",
450 "WARNING", "IF", "IFDEF", "IFNDEF", "ELSE", "ELIF", "ENDIF", "DEFINE",
451 "DEFINED", "UNDEF", "IMPORT", "INCLUDE", "INCLUDE_NEXT", "TYPEDEF",
452 "STRUCT", "UNION", "ENUM", "CONST", "LIB", "STATIC", "CALLBACK",
453 "FUNCTION", "LET", "SET", "TEMP", "FREE", "RETURN", "AS", "PRE_ASSERT",
454 "POST_ASSERT", "BOOLVAL", "INTVAL", "STRVAL", "PATHVAL", "STRLEN",
455 "FLOATVAL", "ARRVAL", "OBJVAL", "COUNT", "CALLOC", "TO_BOOL", "TO_INT",
456 "TO_STRING", "TO_FLOAT", "TO_ARRAY", "TO_OBJECT", "COMMENT",
457 "WHITESPACE", "NO_WHITESPACE", "CPP_HEADER", "CPP_ATTRIBUTE",
458 "CPP_EXTENSION", "CPP_PASTE", "CPP_INLINE", "CPP_RESTRICT", "CPP_ASM",
459 "BSLASH", "LONG_DOUBLE", "INT8", "UINT8", "INT16", "UINT16", "INT32",
460 "UINT32", "INT64", "UINT64", "INT128", "UINT128", "BINARY", "UNARY",
461 "$accept", "binary_op_token", "unary_op_token", "name_token",
462 "any_noeol_token", "any_nobrace_token", "file", "blocks", "block", "lib",
463 "cpp", "cpp_exp", "cpp_ignored_token", "cpp_message_token",
464 "cpp_include_token", "cpp_header_token", "cpp_no_arg_token",
465 "cpp_name_arg_token", "cpp_exp_arg_token", "cpp_macro_decl",
466 "cpp_macro_sig", "cpp_macro_sig_args", "cpp_macro_decl_tokens",
467 "cpp_macro_decl_token_list", "cpp_macro_exp", "cpp_macro_call_args",
468 "cpp_macro_call_arg_list", "constant", "impl_def_val",
469 "impl_def_val_token", "decl_typedef", "typedef", "typedef_anon",
470 "typedef_decl", "typedef_anon_decl", "qualified_decl_type",
471 "decl_type_qualifier_token", "decl_type", "decl_type_complex",
472 "decl_type_simple", "decl_real_type", "int_signed", "int_width",
473 "decl_int_type", "int_signed_types", "signed_short_types",
474 "signed_long_types", "int_width_types", "decl_stmt", "decl_asm",
475 "quoted_strings", "decl_extvar_stmt", "decl_extvar_list", "decl_vars",
476 "ignored_decl", "ignored_decl_qualifiers", "ignored_decl_body",
477 "ignored_decl_body_stmts", "ignored_decl_body_stmt", "decl", "decl_body",
478 "decl_func_body", "decl_functor_body", "decl_anon_functor_body",
479 "decl_functor", "decl_anon_functor", "decl_func", "decl_args",
480 "decl_arg_list", "decl_anon_arg", "decl_arg", "decl_var", "decl_union",
481 "decl_struct", "decl_struct_args", "struct_args_block", "struct_args",
482 "struct_arg_var_list", "decl_vars_with_layout", "decl_enum",
483 "decl_enum_items", "decl_enum_item", "num_exp", "number", "sizeof",
484 "sizeof_body", "sizeof_body_notypes", "enum_name", "union_name",
485 "struct_name", "optional_name", "optional_comma", "decl_layout",
486 "align_and_size", "array_size", "array_qualifier_token", "indirection",
487 "pointers", "asterisks", "asterisk", "pointer_qualifier_token", "impl",
488 "impl_func", "impl_args", "impl_arg", "impl_var", "impl_type",
489 "impl_type_restricted", "impl_type_token", "impl_type_restricted_token",
490 "impl_type_extended_token", "impl_stmts", "impl_stmt", "let_stmt",
491 "let_exp", "let_exp_byref", "let_exp_assign", "let_calloc",
492 "let_callback", "let_func", "let_func_token", "let_func_exps",
493 "let_exps", "callback_rval", "callback_arg_list", "callback_args",
494 "return_stmt", "return_exp", "call_decl_vars", "set_stmt", "set_exp",
495 "set_func", "set_func_token", "set_func_exps", "set_exps", "assert_stmt",
496 "assert_stmt_token", "free_stmt", "free_exps", "free_exp", "reference",
497 "byref", YY_NULLPTR
498 };
499 #endif
500
501 #define YYPACT_NINF -731
502 #define YYTABLE_NINF -636
503
504 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
505 STATE-NUM. */
506 static const short yypact[] =
507 {
508 529, -731, -731, -731, -731, -731, 128, -731, -731, -731,
509 582, -731, -731, -731, 555, 722, 7975, 7975, 7975, 348,
510 77, -23, 80, -731, 281, -731, 132, 529, -731, -731,
511 -731, -731, -731, 7120, 109, -731, -731, -731, -731, 409,
512 161, -731, -731, -731, -731, 493, 26, -731, -731, 30,
513 96, 126, -731, -731, -731, -731, 125, -731, 142, -731,
514 -731, -731, 7975, 7975, 7975, -731, -731, -731, 145, -731,
515 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
516 -731, 861, -731, -731, -731, -731, 151, 987, 987, 33,
517 -731, 987, 6894, 7975, 7975, 1728, 154, -731, -731, -731,
518 165, 7975, 164, 164, -731, -731, -731, -731, -731, -731,
519 1353, -731, -731, -731, -731, -731, -731, -731, -731, -731,
520 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
521 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
522 -731, 114, -731, -731, 114, 181, -731, -731, -731, -731,
523 -731, -731, 201, 192, -731, 214, -731, 218, -731, 234,
524 -731, 1841, 722, 138, -731, 26, -731, -731, 46, 224,
525 -731, -731, 232, 7975, 17, -731, -731, -731, 261, -731,
526 101, -731, -731, -731, 507, -731, 233, 244, 248, 1954,
527 1954, 7975, 230, -731, -731, -731, 7459, 26, -731, 1693,
528 -731, -731, -731, -731, -731, -731, -731, -731, 1806, 1919,
529 2032, 2145, -731, 2258, 2371, -731, -731, -731, 2484, -731,
530 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
531 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
532 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
533 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
534 -731, 2597, 2710, 2823, 2936, 3049, -731, -731, -731, -731,
535 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
536 -731, 3162, -731, 3275, 3388, 3501, 3614, 3727, 3840, -731,
537 3953, -731, -731, 4066, 4179, 4292, 4405, 4518, 4631, 4744,
538 4857, 4970, 5083, 5196, 5309, 5422, 5535, 5648, 5761, -731,
539 -731, -731, -731, -731, -731, -731, 5874, 987, -731, -731,
540 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
541 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
542 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
543 -731, -731, -731, -731, -731, -731, -731, -731, -731, 987,
544 -731, -731, -731, -731, -731, -731, -731, 116, 6894, -731,
545 -731, -731, -731, 7572, 6894, 250, 8076, -731, 111, -731,
546 169, -731, -731, -731, -731, 245, 247, 247, 91, 91,
547 6103, 256, -731, 230, 252, 266, -731, 268, -731, -731,
548 -731, 1467, -731, 255, 224, -731, -731, -731, -731, -731,
549 301, -731, -731, 1239, -731, 283, -731, 52, 7120, -731,
550 279, 173, 284, -731, -731, 175, 277, 286, -731, 7459,
551 6555, 7459, 7975, 7459, -731, -731, 129, -731, -731, -731,
552 -731, -731, 6781, -731, 287, -731, 7975, 299, -731, 317,
553 8076, 307, -731, -731, -731, -731, 755, 331, -731, 7108,
554 7975, -731, -731, 1580, -731, -731, -731, -731, -731, -731,
555 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
556 -731, -731, 6894, 6894, 323, 1420, 7459, 7459, -731, -731,
557 -731, -731, 153, -731, -731, -731, -731, -731, 5990, 6781,
558 325, -731, 307, -731, 8100, -731, -731, 6103, 179, 427,
559 -731, -731, -731, -731, -731, -731, 8052, 320, 7685, -731,
560 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
561 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
562 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
563 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
564 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
565 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
566 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
567 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
568 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
569 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
570 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
571 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
572 1113, -731, 76, 56, 1954, 224, 308, 493, 224, 309,
573 6781, 7975, 338, 346, 356, 8100, 351, 357, -731, 360,
574 369, 354, 363, 122, -731, 370, 376, -731, -731, -731,
575 769, 7459, -731, 7744, -731, 255, 375, -731, -731, -731,
576 378, -731, 8076, 379, 388, 7676, -731, 398, 1728, 389,
577 -731, -731, 7007, 229, 7975, 164, 164, -731, -731, 36,
578 38, 47, 7225, -731, -731, 6781, 6781, 394, -731, -731,
579 -731, -731, -731, 391, 186, -731, 80, -731, -731, -731,
580 -731, -731, 255, 180, -731, -731, -731, 255, -731, 196,
581 -731, 399, -731, -731, 403, 8100, -731, -731, 6216, -731,
582 6555, -731, 7459, -731, 80, 7459, -731, 7975, 7857, -731,
583 -731, -731, -731, -731, 405, 393, -731, -731, -731, -731,
584 6894, 6894, 411, -731, 71, 412, -731, 389, 247, 247,
585 6781, -731, 7838, -731, -731, 641, 413, 641, 407, 7975,
586 1954, -731, 7233, 224, 392, 224, 224, 158, 350, 238,
587 431, 8100, -731, -731, -731, -731, 434, 6668, -731, 433,
588 7459, 219, -731, 436, 287, 440, 987, 7916, 8076, 8124,
589 449, 441, 443, 7346, 446, 412, 7459, 7459, -731, 6781,
590 -731, 641, -731, 80, 6103, 448, 452, -731, -731, 453,
591 -731, -731, 431, -731, -731, -731, 7857, -731, 455, 6781,
592 80, -731, 6329, 456, 460, -731, 395, -731, -731, -731,
593 462, 458, 471, 389, 472, -731, -731, 474, 8148, -731,
594 48, -731, 476, 484, 224, 488, 80, 7563, 489, 491,
595 -731, 492, -731, -731, 61, -731, 495, 494, -731, 7346,
596 -731, 506, 1954, 500, -731, 445, 511, 6781, 6216, 512,
597 -731, 6555, -731, -731, 515, 519, 523, 389, -731, 516,
598 520, 1954, 276, 6442, 7442, 346, -731, -731, -731, 518,
599 6668, -731, -731, 522, 521, -731, 526, 524, 530, 534,
600 535, 528, -731, -731, 6216, -731, 542, -731, 641, 537,
601 224, 80, 538, 6555, -731, 539, -731, 1954, -731, 541,
602 -731, -731, -731, 543, 6442, 224, 548, -731, 549, -731
603 };
604
605 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
606 Performed when YYTABLE does not specify something else to do. Zero
607 means the default is an error. */
608 static const unsigned short yydefact[] =
609 {
610 280, 401, 398, 402, 396, 397, 399, 393, 394, 392,
611 391, 383, 285, 284, 0, 0, 0, 0, 510, 382,
612 0, 432, 635, 286, 0, 436, 0, 281, 282, 288,
613 287, 289, 293, 527, 0, 379, 385, 384, 390, 405,
614 417, 389, 290, 291, 292, 0, 422, 443, 445, 446,
615 0, 0, 457, 295, 294, 296, 0, 297, 0, 400,
616 395, 391, 0, 0, 0, 382, 437, 444, 427, 299,
617 310, 307, 309, 311, 312, 323, 320, 321, 318, 324,
618 319, 0, 322, 313, 314, 315, 0, 335, 335, 0,
619 303, 0, 0, 510, 510, 0, 0, 365, 370, 466,
620 369, 0, 518, 518, 33, 34, 35, 36, 37, 623,
621 584, 24, 42, 41, 40, 38, 39, 32, 31, 25,
622 29, 28, 26, 27, 43, 592, 591, 589, 587, 588,
623 590, 586, 585, 593, 30, 621, 619, 618, 620, 617,
624 616, 386, 44, 45, 387, 388, 507, 551, 552, 553,
625 554, 555, 0, 0, 548, 0, 433, 0, 637, 0,
626 636, 391, 0, 0, 434, 422, 1, 283, 533, 520,
627 381, 467, 0, 528, 529, 531, 380, 407, 411, 409,
628 413, 406, 403, 418, 405, 404, 0, 0, 0, 458,
629 458, 0, 0, 386, 387, 388, 0, 422, 71, 46,
630 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
631 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
632 67, 68, 69, 70, 161, 162, 72, 73, 74, 75,
633 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
634 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
635 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
636 111, 109, 110, 108, 106, 107, 112, 113, 114, 115,
637 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
638 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
639 163, 136, 137, 138, 139, 140, 141, 142, 143, 144,
640 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
641 155, 159, 156, 157, 158, 160, 0, 335, 305, 300,
642 46, 55, 56, 57, 58, 60, 61, 65, 109, 110,
643 108, 106, 107, 127, 129, 130, 131, 132, 133, 134,
644 163, 138, 139, 140, 141, 142, 143, 144, 145, 146,
645 147, 148, 149, 150, 151, 152, 153, 337, 308, 336,
646 301, 316, 317, 302, 304, 345, 346, 0, 0, 22,
647 23, 20, 21, 0, 0, 348, 306, 347, 386, 509,
648 387, 508, 366, 363, 371, 0, 0, 0, 0, 0,
649 0, 0, 298, 0, 0, 0, 435, 0, 536, 535,
650 534, 523, 469, 527, 520, 530, 532, 412, 408, 414,
651 415, 410, 419, 0, 431, 0, 420, 392, 527, 463,
652 0, 0, 460, 461, 464, 0, 486, 512, 484, 0,
653 635, 0, 0, 0, 629, 630, 0, 560, 563, 562,
654 564, 565, 0, 566, 428, 429, 0, 0, 424, 0,
655 327, 328, 325, 338, 506, 505, 0, 0, 501, 0,
656 0, 343, 340, 350, 2, 3, 4, 5, 6, 7,
657 8, 9, 10, 11, 13, 12, 14, 15, 16, 17,
658 18, 19, 0, 0, 0, 0, 0, 0, 472, 471,
659 473, 470, 497, 361, 362, 495, 494, 496, 0, 0,
660 0, 357, 359, 498, 358, 488, 499, 0, 0, 0,
661 364, 421, 497, 525, 526, 524, 0, 0, 0, 528,
662 468, 416, 189, 164, 165, 166, 167, 168, 169, 170,
663 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
664 181, 182, 183, 184, 185, 186, 187, 188, 277, 278,
665 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
666 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
667 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
668 220, 221, 227, 225, 226, 224, 222, 223, 228, 229,
669 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
670 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
671 250, 251, 279, 252, 253, 254, 255, 256, 257, 258,
672 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
673 269, 270, 271, 275, 272, 273, 274, 276, 441, 442,
674 0, 439, 0, 520, 458, 520, 0, 0, 520, 0,
675 0, 513, 0, 0, 0, 612, 0, 0, 611, 45,
676 0, 0, 0, 0, 632, 0, 0, 606, 537, 561,
677 0, 0, 426, 329, 425, 527, 0, 502, 504, 339,
678 0, 352, 353, 0, 351, 0, 341, 0, 0, 514,
679 374, 367, 375, 0, 376, 518, 518, 373, 372, 623,
680 24, 0, 0, 492, 356, 0, 0, 0, 538, 557,
681 558, 559, 556, 0, 0, 542, 635, 547, 549, 550,
682 522, 521, 527, 0, 438, 440, 423, 527, 465, 0,
683 449, 0, 462, 447, 0, 487, 485, 483, 0, 567,
684 635, 610, 0, 546, 635, 0, 631, 0, 607, 604,
685 628, 430, 330, 333, 0, 331, 503, 500, 344, 349,
686 0, 0, 0, 368, 0, 477, 474, 514, 0, 0,
687 0, 490, 0, 491, 355, 0, 0, 0, 544, 0,
688 458, 455, 0, 520, 0, 520, 520, 497, 0, 31,
689 30, 573, 578, 574, 576, 577, 44, 0, 613, 624,
690 0, 0, 633, 623, 609, 0, 335, 0, 354, 342,
691 0, 515, 0, 514, 0, 477, 378, 377, 489, 0,
692 539, 0, 543, 635, 0, 0, 0, 456, 453, 0,
693 450, 448, 0, 575, 598, 584, 607, 599, 0, 0,
694 635, 579, 635, 0, 0, 634, 0, 326, 332, 334,
695 0, 0, 0, 514, 478, 481, 475, 0, 493, 540,
696 0, 545, 0, 0, 520, 0, 635, 0, 594, 0,
697 626, 625, 614, 568, 0, 519, 0, 0, 479, 514,
698 476, 0, 458, 0, 454, 0, 0, 0, 0, 0,
699 615, 635, 622, 605, 0, 0, 0, 514, 482, 0,
700 0, 458, 0, 600, 0, 498, 596, 571, 569, 595,
701 0, 583, 627, 0, 0, 480, 0, 0, 0, 0,
702 0, 601, 602, 580, 0, 570, 0, 516, 0, 0,
703 520, 635, 0, 635, 597, 0, 541, 458, 451, 0,
704 581, 603, 517, 0, 600, 520, 0, 452, 0, 582
705 };
706
707 /* YYPGOTO[NTERM-NUM]. */
708 static const short yypgoto[] =
709 {
710 -731, -351, -73, -11, -47, -731, -731, -731, 547, -731,
711 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
712 -731, -731, -86, -731, -281, -731, -731, -731, -476, -731,
713 -731, 421, -118, 41, -104, -179, -19, -5, -731, -731,
714 -731, 554, -731, -731, 416, -731, -731, -731, -731, -76,
715 -261, -731, -731, -181, -731, -731, 410, -731, -45, 573,
716 39, -3, 50, -731, -731, -731, -731, -182, -731, -44,
717 3, -33, -731, -731, 213, -349, -731, -210, -731, 9,
718 -731, -41, -369, -731, -66, -731, 150, -731, -446, -444,
719 166, -731, -709, -87, -380, -731, -375, -29, -731, 459,
720 -731, -731, 586, -731, -158, -683, -730, -731, -731, 620,
721 -731, 249, -373, -731, -283, -696, 220, -145, -731, -731,
722 -692, -731, -731, -254, -284, -731, -731, -731, -175, -731,
723 -408, -410, -413, -731, -731, -731, -731, -731, -731, -83,
724 -21, -698
725 };
726
727 /* YYDEFGOTO[NTERM-NUM]. */
728 static const short yydefgoto[] =
729 {
730 -1, 706, 499, 169, 357, 638, 26, 27, 28, 29,
731 30, 86, 87, 88, 89, 363, 90, 91, 92, 318,
732 754, 755, 358, 359, 376, 683, 684, 31, 500, 501,
733 32, 96, 689, 690, 691, 33, 34, 35, 36, 37,
734 38, 39, 40, 41, 182, 408, 411, 185, 42, 188,
735 502, 43, 197, 804, 44, 45, 639, 640, 641, 46,
736 47, 48, 99, 419, 50, 420, 51, 421, 422, 423,
737 424, 503, 53, 54, 489, 490, 693, 814, 854, 101,
738 427, 428, 655, 505, 506, 676, 458, 56, 102, 103,
739 146, 652, 765, 386, 402, 517, 172, 446, 174, 175,
740 400, 57, 58, 714, 715, 656, 716, 153, 717, 718,
741 719, 436, 437, 438, 906, 907, 908, 793, 794, 795,
742 142, 889, 909, 838, 920, 921, 439, 666, 805, 440,
743 922, 658, 143, 843, 871, 441, 442, 443, 663, 664,
744 660, 160
745 };
746
747 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
748 positive, shift that token. If negative, reduce the rule whose
749 number is the opposite. If YYTABLE_NINF, syntax error. */
750 static const short yytable[] =
751 {
752 171, 159, 360, 52, 173, 141, 144, 145, 425, 55,
753 418, 418, 98, 68, 170, 444, 387, 659, 100, 374,
754 659, 504, 657, 667, 520, 483, 377, 52, 518, 176,
755 52, 707, 516, 778, 317, 450, 55, 486, 487, 695,
756 797, 696, 792, 643, 364, 820, 796, 823, 52, 67,
757 49, 193, 194, 195, 388, 451, 97, 389, 815, 361,
758 49, -446, -466, 669, -466, -392, 168, -391, 22, -392,
759 316, -24, 743, 670, 49, 398, 11, 49, 109, 892,
760 770, 375, 378, 380, 186, -392, -392, 459, 727, 397,
761 384, 859, 98, 462, 401, 49, 811, 837, 100, 483,
762 156, 841, 674, 155, 855, 796, 812, 409, 483, 726,
763 410, 483, 881, 1, 2, 3, 4, 5, 6, 7,
764 8, 447, 488, -392, 158, -391, 9, 485, 189, 702,
765 703, 61, 166, 399, 65, 669, 382, 59, 504, 60,
766 778, 405, 454, 455, 878, -518, -386, -511, 456, 385,
767 -518, 187, 362, 746, 642, -446, 747, 868, 190, 98,
768 457, 191, 404, 445, 52, 100, 668, 183, 4, 5,
769 898, 135, 136, 137, 138, 139, 140, -457, 192, 196,
770 426, 319, 682, 886, -360, 383, -360, -360, 915, -497,
771 910, -497, -497, 62, 63, 64, 796, -457, 936, 385,
772 67, 685, 686, 97, -387, -511, 645, 646, 648, 649,
773 837, 49, 780, 781, 925, 391, 708, -511, 796, 776,
774 777, 429, 430, 431, 432, 433, 910, 434, 435, 783,
775 784, 452, 796, 1, 2, 3, 4, 5, 6, 7,
776 8, 390, 695, 374, 696, 392, 9, 695, 939, 696,
777 377, 61, 845, 671, 393, 834, 835, 394, 11, 379,
778 381, 396, 401, 728, 403, 730, 766, 407, 733, 413,
779 836, 429, 430, 431, 432, 433, 415, 434, 435, 416,
780 484, 735, 463, 485, 509, 1, 2, 3, 4, 5,
781 6, 7, 8, 834, 835, 374, 507, 510, 9, 511,
782 756, 374, 377, 161, 168, 375, 692, 521, 377, 448,
783 11, 644, 453, 93, 94, 18, 65, 650, 647, 701,
784 651, 671, 429, 430, 431, 432, 433, 659, 434, 435,
785 672, 483, 798, 674, 483, 483, 772, 773, 125, 126,
786 127, 128, 129, 130, 131, 132, 133, 779, 861, 673,
787 688, 147, 782, 678, 148, 687, 704, 375, 149, 721,
788 150, 151, 461, 375, 162, 62, 63, 64, 65, 791,
789 163, 152, 731, 734, 519, 737, 125, 126, 127, 128,
790 129, 130, 131, 132, 133, 171, 738, 739, 741, 173,
791 374, 740, 742, 743, 744, 745, 653, 377, 661, 170,
792 665, 818, 748, 828, 164, 830, 831, 749, 757, 374,
793 374, 758, 759, 177, 178, 179, 377, 377, 180, 816,
794 817, 662, 760, 762, 764, 774, 775, 807, 791, 659,
795 147, 181, 785, 148, 870, 404, 786, 149, 806, 150,
796 151, 709, 710, 711, 712, 810, 813, 824, 821, 680,
797 858, 675, 375, 697, 698, 504, 829, 483, 483, 832,
798 713, 894, 729, 839, 893, 418, 840, 842, 418, -608,
799 867, 375, 375, 846, 850, 852, 851, 856, 659, 808,
800 809, 862, 98, 912, 884, 863, 864, 866, 100, 872,
801 659, 873, 874, 876, 694, 875, 877, 1, 2, 3,
802 4, 5, 6, 7, 8, 880, 879, 723, 882, 692,
803 9, 177, 178, 179, 692, 61, 180, 883, 904, 791,
804 659, 885, 11, 888, 890, 941, 891, 895, 896, 181,
805 899, 659, 901, 1, 2, 3, 4, 5, 6, 7,
806 8, 791, 902, 903, 913, 911, 9, 742, 914, 916,
807 938, 10, 924, 917, 927, 791, 926, 929, 11, 12,
808 13, 928, 933, 930, 801, 947, 931, 935, 932, 937,
809 14, 940, 942, 944, 167, 767, 945, 62, 63, 64,
810 65, 948, 949, 395, 763, 69, 1, 2, 3, 4,
811 5, 6, 7, 8, 184, 725, 414, 165, 826, 9,
812 412, 418, 491, 732, 61, 857, 677, 157, 768, 769,
813 736, 11, 15, 16, 17, 18, 19, 20, 21, 822,
814 22, 70, 71, 72, 73, 74, 75, 76, 77, 78,
815 79, 80, 81, 406, 82, 83, 84, 85, 751, 154,
816 426, 934, 508, 833, 147, 23, 519, 148, 919, 654,
817 24, 149, 25, 150, 151, 709, 710, 711, 712, 171,
818 946, 865, 753, 173, 802, 0, 62, 63, 64, 65,
819 0, 0, 0, 170, 0, 0, 0, 0, 0, 0,
820 0, 0, 170, 384, 0, 98, 0, 374, 374, 0,
821 98, 100, 0, 519, 377, 377, 100, 694, 519, 0,
822 900, 0, 694, 418, 0, 66, 0, 0, 0, 799,
823 0, 0, 445, 0, 0, 445, 0, 0, 0, 918,
824 847, 0, 418, 800, 0, 0, 1, 2, 3, 4,
825 5, 6, 7, 8, 0, 0, 662, 0, 0, 9,
826 0, 0, 0, 0, 61, 0, 0, 0, 0, 375,
827 375, 11, 0, 0, 0, 943, 0, 0, 418, 1,
828 2, 3, 4, 5, 6, 7, 8, 844, 825, 0,
829 0, 723, 9, 0, 0, 0, 0, 61, 0, 0,
830 853, 454, 455, 697, 698, 0, 0, 0, 0, 0,
831 0, 0, 0, 0, 0, 0, 849, 0, 0, 457,
832 750, 0, 860, 445, 0, 0, 93, 94, 18, 65,
833 0, 464, 465, 466, 467, 468, 469, 470, 471, 472,
834 473, 474, 475, 476, 477, 478, 479, 480, 481, 0,
835 0, 0, 0, 0, 705, 0, 0, 0, 0, 62,
836 63, 64, 0, 95, 0, 0, 897, 0, 0, 0,
837 0, 0, 0, 0, 0, 905, 0, 0, 0, 0,
838 0, 198, 0, 0, 199, 200, 201, 202, 203, 204,
839 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
840 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
841 225, 905, 226, 227, 228, 229, 230, 231, 232, 233,
842 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
843 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
844 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
845 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
846 274, 0, 275, 0, 276, 277, 278, 279, 280, 281,
847 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
848 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
849 302, 303, 304, 305, 306, 307, 308, 309, 0, 0,
850 310, 0, 311, 312, 313, 314, 315, 198, 0, 0,
851 320, 200, 201, 202, 203, 204, 205, 206, 207, 321,
852 322, 323, 324, 212, 325, 326, 215, 216, 217, 327,
853 219, 220, 221, 222, 223, 224, 225, 0, 226, 227,
854 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
855 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
856 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
857 258, 259, 260, 328, 329, 330, 331, 332, 266, 267,
858 268, 269, 270, 271, 272, 273, 274, 0, 275, 0,
859 276, 277, 278, 279, 280, 333, 282, 334, 335, 336,
860 337, 338, 339, 289, 340, 291, 292, 341, 342, 343,
861 344, 345, 346, 347, 348, 349, 350, 351, 352, 353,
862 354, 355, 356, 309, 0, 0, 310, 0, 311, 312,
863 313, 314, 315, 522, 0, 0, 523, 524, 525, 526,
864 527, 528, 529, 530, 531, 532, 533, 534, 535, 536,
865 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
866 547, 548, 549, 0, 550, 551, 552, 553, 554, 413,
867 724, 555, 556, 557, 558, 559, 560, 561, 562, 563,
868 564, 565, 566, 567, 568, 569, 570, 571, 572, 573,
869 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
870 584, 585, 586, 587, 588, 589, 590, 591, 592, 593,
871 594, 595, 596, 0, 597, 0, 598, 599, 600, 601,
872 602, 603, 604, 605, 606, 607, 608, 609, 610, 611,
873 612, 613, 614, 615, 616, 617, 618, 619, 620, 621,
874 622, 623, 624, 625, 626, 627, 628, 629, 630, 631,
875 0, 0, 632, 0, 633, 634, 635, 636, 637, 522,
876 0, 0, 523, 524, 525, 526, 527, 528, 529, 530,
877 531, 532, 533, 534, 535, 536, 537, 538, 539, 540,
878 541, 542, 543, 544, 545, 546, 547, 548, 549, 0,
879 550, 551, 552, 553, 554, 413, 0, 555, 556, 557,
880 558, 559, 560, 561, 562, 563, 564, 565, 566, 567,
881 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
882 578, 579, 580, 581, 582, 583, 584, 585, 586, 587,
883 588, 589, 590, 591, 592, 593, 594, 595, 596, 0,
884 597, 0, 598, 599, 600, 601, 602, 603, 604, 605,
885 606, 607, 608, 609, 610, 611, 612, 613, 614, 615,
886 616, 617, 618, 619, 620, 621, 622, 623, 624, 625,
887 626, 627, 628, 629, 630, 631, -584, 0, 632, 0,
888 633, 634, 635, 636, 637, -584, -584, -584, -584, 0,
889 -584, -584, 0, 0, 0, -584, 0, 0, 0, 0,
890 0, 0, -584, -584, -584, -584, -584, -584, -584, -584,
891 -584, -584, -584, -584, 0, -584, -584, -584, -584, -584,
892 -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
893 -584, -584, -584, 0, 0, 0, 0, 0, -584, -584,
894 -584, -584, -584, -584, 1, 2, 3, 4, 5, 6,
895 7, 8, 0, 0, 0, 0, 0, 9, 0, 0,
896 -584, -584, 61, -584, -584, -584, -584, -584, -584, 11,
897 -584, 0, 0, -584, -584, -584, -584, -584, -584, -584,
898 -584, -584, -584, -584, -584, -584, -584, -584, -584, 0,
899 104, 0, 0, 0, 0, 0, 0, 0, -584, 105,
900 106, 107, 108, 0, 109, 110, 512, 0, 0, 111,
901 495, 0, 496, 0, 497, 367, 513, 0, 0, 498,
902 0, 0, 0, 0, 93, 94, 18, 65, 0, 0,
903 0, 0, 0, 0, 369, 370, 168, 0, 0, 0,
904 0, 0, 0, 0, 0, 0, 0, 371, 372, 0,
905 0, 0, 0, 112, 113, 114, 115, 116, 0, 0,
906 0, 688, 0, 0, 0, 0, 0, 0, 0, 0,
907 0, 0, 0, 0, 514, 117, 0, 118, 119, 120,
908 121, 122, 123, 0, 124, 0, 0, 125, 126, 127,
909 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
910 138, 139, 140, 104, 0, 0, 0, 0, 0, 0,
911 0, 515, 105, 106, 107, 108, 0, 109, 110, 0,
912 0, 0, 111, 0, 0, 365, 0, 366, 367, 0,
913 0, 0, 368, 0, 0, 0, 0, 0, 0, 0,
914 0, 0, 0, 0, 0, 0, 0, 369, 370, 0,
915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
916 371, 372, 0, 0, 0, 0, 112, 113, 114, 115,
917 116, 0, 0, 0, 0, 0, 0, 0, 373, 0,
918 0, 0, 0, 0, 0, 0, 0, 0, 117, 0,
919 118, 119, 120, 121, 122, 123, 0, 124, 0, 0,
920 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
921 135, 136, 137, 138, 139, 140, -33, 0, 0, 681,
922 0, 0, 0, 0, 0, -33, -33, -33, -33, 0,
923 -33, -33, 0, 0, 0, -33, 0, 0, -33, -33,
924 -33, -33, 0, 0, 0, -33, 0, 0, 0, 0,
925 0, 0, 1, 2, 3, 4, 5, 6, 7, 8,
926 -33, -33, 0, 0, 0, 9, 0, 0, 0, 0,
927 61, 0, 0, -33, -33, 0, 0, 11, 0, -33,
928 -33, -33, -33, -33, 0, 0, 0, 0, 0, 0,
929 0, -33, 0, 0, 0, 0, 0, 0, 0, 0,
930 0, -33, 0, -33, -33, -33, -33, -33, -33, 0,
931 -33, 0, 0, -33, -33, -33, -33, -33, -33, -33,
932 -33, -33, -33, -33, -33, -33, -33, -33, -33, -34,
933 0, -33, 93, 94, 18, 65, 0, 0, -34, -34,
934 -34, -34, 0, -34, -34, 0, 0, 0, -34, 0,
935 0, -34, -34, -34, -34, 0, 0, 0, -34, 0,
936 0, 0, 0, 0, 0, 1, 2, 3, 4, 5,
937 6, 7, 8, -34, -34, 0, 0, 0, 9, 0,
938 0, 0, 0, 61, 0, 0, -34, -34, 0, 0,
939 11, 0, -34, -34, -34, -34, -34, 0, 0, 0,
940 0, 0, 0, 0, -34, 0, 0, 0, 0, 0,
941 0, 0, 0, 0, -34, 0, -34, -34, -34, -34,
942 -34, -34, 0, -34, 0, 0, -34, -34, -34, -34,
943 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
944 -34, -34, -35, 0, -34, 62, 63, 64, 65, 0,
945 0, -35, -35, -35, -35, 0, -35, -35, 0, 0,
946 0, -35, 0, 0, -35, -35, -35, -35, 0, 0,
947 0, -35, 0, 0, 0, 0, 0, 0, 1, 2,
948 3, 4, 5, 6, 7, 8, -35, -35, 0, 0,
949 0, 417, 0, 0, 0, 0, 61, 0, 0, -35,
950 -35, 0, 0, 11, 0, -35, -35, -35, -35, -35,
951 0, 0, 0, 0, 0, 0, 0, -35, 0, 0,
952 0, 0, 0, 0, 0, 0, 0, -35, 0, -35,
953 -35, -35, -35, -35, -35, 0, -35, 0, 0, -35,
954 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
955 -35, -35, -35, -35, -35, -36, 0, -35, 62, 63,
956 64, 65, 0, 0, -36, -36, -36, -36, 0, -36,
957 -36, 0, 0, 0, -36, 0, 0, -36, -36, -36,
958 -36, 0, 0, 0, -36, 0, 0, 0, 0, 0,
959 0, 0, 0, 0, 0, 0, 0, 0, 0, -36,
960 -36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
961 0, 0, -36, -36, 0, 0, 0, 0, -36, -36,
962 -36, -36, -36, 0, 0, 0, 0, 0, 0, 0,
963 -36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
964 -36, 0, -36, -36, -36, -36, -36, -36, 0, -36,
965 0, 0, -36, -36, -36, -36, -36, -36, -36, -36,
966 -36, -36, -36, -36, -36, -36, -36, -36, -37, 0,
967 -36, 0, 0, 0, 0, 0, 0, -37, -37, -37,
968 -37, 0, -37, -37, 0, 0, 0, -37, 0, 0,
969 -37, -37, -37, -37, 0, 0, 0, -37, 0, 0,
970 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
971 0, 0, -37, -37, 0, 0, 0, 0, 0, 0,
972 0, 0, 0, 0, 0, -37, -37, 0, 0, 0,
973 0, -37, -37, -37, -37, -37, 0, 0, 0, 0,
974 0, 0, 0, -37, 0, 0, 0, 0, 0, 0,
975 0, 0, 0, -37, 0, -37, -37, -37, -37, -37,
976 -37, 0, -37, 0, 0, -37, -37, -37, -37, -37,
977 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
978 -37, -60, 0, -37, 0, 0, 0, 0, 0, 0,
979 -60, -60, -60, -60, 0, -60, -60, 0, 0, 0,
980 -60, 0, 0, -60, -60, -60, -60, 0, 0, 0,
981 -60, 0, 0, 0, 0, 0, 0, 0, 0, 0,
982 0, 0, 0, 0, 0, -60, -60, 0, 0, 0,
983 0, 0, 0, 0, 0, 0, 0, 0, -60, -60,
984 0, 0, 0, 0, -60, -60, -60, -60, -60, 0,
985 0, 0, 0, 0, 0, 0, -60, 0, 0, 0,
986 0, 0, 0, 0, 0, 0, -60, 0, -60, -60,
987 -60, -60, -60, -60, 0, -60, 0, 0, -60, -60,
988 -60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
989 -60, -60, -60, -60, -61, 0, -623, 0, 0, 0,
990 0, 0, 0, -61, -61, -61, -61, 0, -61, -61,
991 0, 0, 0, -61, 0, 0, -61, -61, -61, -61,
992 0, 0, 0, -61, 0, 0, 0, 0, 0, 0,
993 0, 0, 0, 0, 0, 0, 0, 0, -61, -61,
994 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
995 0, -61, -61, 0, 0, 0, 0, -61, -61, -61,
996 -61, -61, 0, 0, 0, 0, 0, 0, 0, -61,
997 0, 0, 0, 0, 0, 0, 0, 0, 0, -61,
998 0, -61, -61, -61, -61, -61, -61, 0, -61, 0,
999 0, -61, -61, -61, -61, -61, -61, -61, -61, -61,
1000 -61, -61, -61, -61, -61, -61, -61, -24, 0, -584,
1001 0, 0, 0, 0, 0, 0, -24, -24, -24, -24,
1002 0, -24, -24, 0, 0, 0, -24, 0, 0, -24,
1003 -24, -24, -24, 0, 0, 0, -24, 0, 0, 0,
1004 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1005 0, -24, -24, 0, 0, 0, 0, 0, 0, 0,
1006 0, 0, 0, 0, -24, -24, 0, 0, 0, 0,
1007 -24, -24, -24, -24, -24, 0, 0, 0, 0, 0,
1008 0, 0, -24, 0, 0, 0, 0, 0, 0, 0,
1009 0, 0, -24, 0, -24, -24, -24, -24, -24, -24,
1010 0, -24, 0, 0, -24, -24, -24, -24, -24, -24,
1011 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
1012 -42, 0, -24, 0, 0, 0, 0, 0, 0, -42,
1013 -42, -42, -42, 0, -42, -42, 0, 0, 0, -42,
1014 0, 0, -42, -42, -42, -42, 0, 0, 0, -42,
1015 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1016 0, 0, 0, 0, -42, -42, 0, 0, 0, 0,
1017 0, 0, 0, 0, 0, 0, 0, -42, -42, 0,
1018 0, 0, 0, -42, -42, -42, -42, -42, 0, 0,
1019 0, 0, 0, 0, 0, -42, 0, 0, 0, 0,
1020 0, 0, 0, 0, 0, -42, 0, -42, -42, -42,
1021 -42, -42, -42, 0, -42, 0, 0, -42, -42, -42,
1022 -42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
1023 -42, -42, -42, -41, 0, -42, 0, 0, 0, 0,
1024 0, 0, -41, -41, -41, -41, 0, -41, -41, 0,
1025 0, 0, -41, 0, 0, -41, -41, -41, -41, 0,
1026 0, 0, -41, 0, 0, 0, 0, 0, 0, 0,
1027 0, 0, 0, 0, 0, 0, 0, -41, -41, 0,
1028 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1029 -41, -41, 0, 0, 0, 0, -41, -41, -41, -41,
1030 -41, 0, 0, 0, 0, 0, 0, 0, -41, 0,
1031 0, 0, 0, 0, 0, 0, 0, 0, -41, 0,
1032 -41, -41, -41, -41, -41, -41, 0, -41, 0, 0,
1033 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
1034 -41, -41, -41, -41, -41, -41, -40, 0, -41, 0,
1035 0, 0, 0, 0, 0, -40, -40, -40, -40, 0,
1036 -40, -40, 0, 0, 0, -40, 0, 0, -40, -40,
1037 -40, -40, 0, 0, 0, -40, 0, 0, 0, 0,
1038 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1039 -40, -40, 0, 0, 0, 0, 0, 0, 0, 0,
1040 0, 0, 0, -40, -40, 0, 0, 0, 0, -40,
1041 -40, -40, -40, -40, 0, 0, 0, 0, 0, 0,
1042 0, -40, 0, 0, 0, 0, 0, 0, 0, 0,
1043 0, -40, 0, -40, -40, -40, -40, -40, -40, 0,
1044 -40, 0, 0, -40, -40, -40, -40, -40, -40, -40,
1045 -40, -40, -40, -40, -40, -40, -40, -40, -40, -38,
1046 0, -40, 0, 0, 0, 0, 0, 0, -38, -38,
1047 -38, -38, 0, -38, -38, 0, 0, 0, -38, 0,
1048 0, -38, -38, -38, -38, 0, 0, 0, -38, 0,
1049 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1050 0, 0, 0, -38, -38, 0, 0, 0, 0, 0,
1051 0, 0, 0, 0, 0, 0, -38, -38, 0, 0,
1052 0, 0, -38, -38, -38, -38, -38, 0, 0, 0,
1053 0, 0, 0, 0, -38, 0, 0, 0, 0, 0,
1054 0, 0, 0, 0, -38, 0, -38, -38, -38, -38,
1055 -38, -38, 0, -38, 0, 0, -38, -38, -38, -38,
1056 -38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
1057 -38, -38, -39, 0, -38, 0, 0, 0, 0, 0,
1058 0, -39, -39, -39, -39, 0, -39, -39, 0, 0,
1059 0, -39, 0, 0, -39, -39, -39, -39, 0, 0,
1060 0, -39, 0, 0, 0, 0, 0, 0, 0, 0,
1061 0, 0, 0, 0, 0, 0, -39, -39, 0, 0,
1062 0, 0, 0, 0, 0, 0, 0, 0, 0, -39,
1063 -39, 0, 0, 0, 0, -39, -39, -39, -39, -39,
1064 0, 0, 0, 0, 0, 0, 0, -39, 0, 0,
1065 0, 0, 0, 0, 0, 0, 0, -39, 0, -39,
1066 -39, -39, -39, -39, -39, 0, -39, 0, 0, -39,
1067 -39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
1068 -39, -39, -39, -39, -39, -32, 0, -39, 0, 0,
1069 0, 0, 0, 0, -32, -32, -32, -32, 0, -32,
1070 -32, 0, 0, 0, -32, 0, 0, -32, -32, -32,
1071 -32, 0, 0, 0, -32, 0, 0, 0, 0, 0,
1072 0, 0, 0, 0, 0, 0, 0, 0, 0, -32,
1073 -32, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1074 0, 0, -32, -32, 0, 0, 0, 0, -32, -32,
1075 -32, -32, -32, 0, 0, 0, 0, 0, 0, 0,
1076 -32, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1077 -32, 0, -32, -32, -32, -32, -32, -32, 0, -32,
1078 0, 0, -32, -32, -32, -32, -32, -32, -32, -32,
1079 -32, -32, -32, -32, -32, -32, -32, -32, -31, 0,
1080 -32, 0, 0, 0, 0, 0, 0, -31, -31, -31,
1081 -31, 0, -31, -31, 0, 0, 0, -31, 0, 0,
1082 -31, -31, -31, -31, 0, 0, 0, -31, 0, 0,
1083 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1084 0, 0, -31, -31, 0, 0, 0, 0, 0, 0,
1085 0, 0, 0, 0, 0, -31, -31, 0, 0, 0,
1086 0, -31, -31, -31, -31, -31, 0, 0, 0, 0,
1087 0, 0, 0, -31, 0, 0, 0, 0, 0, 0,
1088 0, 0, 0, -31, 0, -31, -31, -31, -31, -31,
1089 -31, 0, -31, 0, 0, -31, -31, -31, -31, -31,
1090 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
1091 -31, -25, 0, -31, 0, 0, 0, 0, 0, 0,
1092 -25, -25, -25, -25, 0, -25, -25, 0, 0, 0,
1093 -25, 0, 0, -25, -25, -25, -25, 0, 0, 0,
1094 -25, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1095 0, 0, 0, 0, 0, -25, -25, 0, 0, 0,
1096 0, 0, 0, 0, 0, 0, 0, 0, -25, -25,
1097 0, 0, 0, 0, -25, -25, -25, -25, -25, 0,
1098 0, 0, 0, 0, 0, 0, -25, 0, 0, 0,
1099 0, 0, 0, 0, 0, 0, -25, 0, -25, -25,
1100 -25, -25, -25, -25, 0, -25, 0, 0, -25, -25,
1101 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
1102 -25, -25, -25, -25, -29, 0, -25, 0, 0, 0,
1103 0, 0, 0, -29, -29, -29, -29, 0, -29, -29,
1104 0, 0, 0, -29, 0, 0, -29, -29, -29, -29,
1105 0, 0, 0, -29, 0, 0, 0, 0, 0, 0,
1106 0, 0, 0, 0, 0, 0, 0, 0, -29, -29,
1107 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1108 0, -29, -29, 0, 0, 0, 0, -29, -29, -29,
1109 -29, -29, 0, 0, 0, 0, 0, 0, 0, -29,
1110 0, 0, 0, 0, 0, 0, 0, 0, 0, -29,
1111 0, -29, -29, -29, -29, -29, -29, 0, -29, 0,
1112 0, -29, -29, -29, -29, -29, -29, -29, -29, -29,
1113 -29, -29, -29, -29, -29, -29, -29, -28, 0, -29,
1114 0, 0, 0, 0, 0, 0, -28, -28, -28, -28,
1115 0, -28, -28, 0, 0, 0, -28, 0, 0, -28,
1116 -28, -28, -28, 0, 0, 0, -28, 0, 0, 0,
1117 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1118 0, -28, -28, 0, 0, 0, 0, 0, 0, 0,
1119 0, 0, 0, 0, -28, -28, 0, 0, 0, 0,
1120 -28, -28, -28, -28, -28, 0, 0, 0, 0, 0,
1121 0, 0, -28, 0, 0, 0, 0, 0, 0, 0,
1122 0, 0, -28, 0, -28, -28, -28, -28, -28, -28,
1123 0, -28, 0, 0, -28, -28, -28, -28, -28, -28,
1124 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
1125 -26, 0, -28, 0, 0, 0, 0, 0, 0, -26,
1126 -26, -26, -26, 0, -26, -26, 0, 0, 0, -26,
1127 0, 0, -26, -26, -26, -26, 0, 0, 0, -26,
1128 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1129 0, 0, 0, 0, -26, -26, 0, 0, 0, 0,
1130 0, 0, 0, 0, 0, 0, 0, -26, -26, 0,
1131 0, 0, 0, -26, -26, -26, -26, -26, 0, 0,
1132 0, 0, 0, 0, 0, -26, 0, 0, 0, 0,
1133 0, 0, 0, 0, 0, -26, 0, -26, -26, -26,
1134 -26, -26, -26, 0, -26, 0, 0, -26, -26, -26,
1135 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
1136 -26, -26, -26, -27, 0, -26, 0, 0, 0, 0,
1137 0, 0, -27, -27, -27, -27, 0, -27, -27, 0,
1138 0, 0, -27, 0, 0, -27, -27, -27, -27, 0,
1139 0, 0, -27, 0, 0, 0, 0, 0, 0, 0,
1140 0, 0, 0, 0, 0, 0, 0, -27, -27, 0,
1141 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1142 -27, -27, 0, 0, 0, 0, -27, -27, -27, -27,
1143 -27, 0, 0, 0, 0, 0, 0, 0, -27, 0,
1144 0, 0, 0, 0, 0, 0, 0, 0, -27, 0,
1145 -27, -27, -27, -27, -27, -27, 0, -27, 0, 0,
1146 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
1147 -27, -27, -27, -27, -27, -27, -43, 0, -27, 0,
1148 0, 0, 0, 0, 0, -43, -43, -43, -43, 0,
1149 -43, -43, 0, 0, 0, -43, 0, 0, -43, -43,
1150 -43, -43, 0, 0, 0, -43, 0, 0, 0, 0,
1151 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1152 -43, -43, 0, 0, 0, 0, 0, 0, 0, 0,
1153 0, 0, 0, -43, -43, 0, 0, 0, 0, -43,
1154 -43, -43, -43, -43, 0, 0, 0, 0, 0, 0,
1155 0, -43, 0, 0, 0, 0, 0, 0, 0, 0,
1156 0, -43, 0, -43, -43, -43, -43, -43, -43, 0,
1157 -43, 0, 0, -43, -43, -43, -43, -43, -43, -43,
1158 -43, -43, -43, -43, -43, -43, -43, -43, -43, -138,
1159 0, -43, 0, 0, 0, 0, 0, 0, -138, -138,
1160 -138, -138, 0, -138, -138, 0, 0, 0, -138, 0,
1161 0, -138, -138, -138, -138, 0, 0, 0, -138, 0,
1162 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1163 0, 0, 0, -138, -138, 0, 0, 0, 0, 0,
1164 0, 0, 0, 0, 0, 0, -138, -138, 0, 0,
1165 0, 0, -138, -138, -138, -138, -138, 0, 0, 0,
1166 0, 0, 0, 0, -138, 0, 0, 0, 0, 0,
1167 0, 0, 0, 0, -138, 0, -138, -138, -138, -138,
1168 -138, -138, 0, -138, 0, 0, -138, -138, -138, -138,
1169 -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
1170 -138, -138, -139, 0, -592, 0, 0, 0, 0, 0,
1171 0, -139, -139, -139, -139, 0, -139, -139, 0, 0,
1172 0, -139, 0, 0, -139, -139, -139, -139, 0, 0,
1173 0, -139, 0, 0, 0, 0, 0, 0, 0, 0,
1174 0, 0, 0, 0, 0, 0, -139, -139, 0, 0,
1175 0, 0, 0, 0, 0, 0, 0, 0, 0, -139,
1176 -139, 0, 0, 0, 0, -139, -139, -139, -139, -139,
1177 0, 0, 0, 0, 0, 0, 0, -139, 0, 0,
1178 0, 0, 0, 0, 0, 0, 0, -139, 0, -139,
1179 -139, -139, -139, -139, -139, 0, -139, 0, 0, -139,
1180 -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
1181 -139, -139, -139, -139, -139, -140, 0, -591, 0, 0,
1182 0, 0, 0, 0, -140, -140, -140, -140, 0, -140,
1183 -140, 0, 0, 0, -140, 0, 0, -140, -140, -140,
1184 -140, 0, 0, 0, -140, 0, 0, 0, 0, 0,
1185 0, 0, 0, 0, 0, 0, 0, 0, 0, -140,
1186 -140, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1187 0, 0, -140, -140, 0, 0, 0, 0, -140, -140,
1188 -140, -140, -140, 0, 0, 0, 0, 0, 0, 0,
1189 -140, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1190 -140, 0, -140, -140, -140, -140, -140, -140, 0, -140,
1191 0, 0, -140, -140, -140, -140, -140, -140, -140, -140,
1192 -140, -140, -140, -140, -140, -140, -140, -140, -141, 0,
1193 -589, 0, 0, 0, 0, 0, 0, -141, -141, -141,
1194 -141, 0, -141, -141, 0, 0, 0, -141, 0, 0,
1195 -141, -141, -141, -141, 0, 0, 0, -141, 0, 0,
1196 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1197 0, 0, -141, -141, 0, 0, 0, 0, 0, 0,
1198 0, 0, 0, 0, 0, -141, -141, 0, 0, 0,
1199 0, -141, -141, -141, -141, -141, 0, 0, 0, 0,
1200 0, 0, 0, -141, 0, 0, 0, 0, 0, 0,
1201 0, 0, 0, -141, 0, -141, -141, -141, -141, -141,
1202 -141, 0, -141, 0, 0, -141, -141, -141, -141, -141,
1203 -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
1204 -141, -142, 0, -587, 0, 0, 0, 0, 0, 0,
1205 -142, -142, -142, -142, 0, -142, -142, 0, 0, 0,
1206 -142, 0, 0, -142, -142, -142, -142, 0, 0, 0,
1207 -142, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1208 0, 0, 0, 0, 0, -142, -142, 0, 0, 0,
1209 0, 0, 0, 0, 0, 0, 0, 0, -142, -142,
1210 0, 0, 0, 0, -142, -142, -142, -142, -142, 0,
1211 0, 0, 0, 0, 0, 0, -142, 0, 0, 0,
1212 0, 0, 0, 0, 0, 0, -142, 0, -142, -142,
1213 -142, -142, -142, -142, 0, -142, 0, 0, -142, -142,
1214 -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
1215 -142, -142, -142, -142, -143, 0, -588, 0, 0, 0,
1216 0, 0, 0, -143, -143, -143, -143, 0, -143, -143,
1217 0, 0, 0, -143, 0, 0, -143, -143, -143, -143,
1218 0, 0, 0, -143, 0, 0, 0, 0, 0, 0,
1219 0, 0, 0, 0, 0, 0, 0, 0, -143, -143,
1220 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1221 0, -143, -143, 0, 0, 0, 0, -143, -143, -143,
1222 -143, -143, 0, 0, 0, 0, 0, 0, 0, -143,
1223 0, 0, 0, 0, 0, 0, 0, 0, 0, -143,
1224 0, -143, -143, -143, -143, -143, -143, 0, -143, 0,
1225 0, -143, -143, -143, -143, -143, -143, -143, -143, -143,
1226 -143, -143, -143, -143, -143, -143, -143, -144, 0, -590,
1227 0, 0, 0, 0, 0, 0, -144, -144, -144, -144,
1228 0, -144, -144, 0, 0, 0, -144, 0, 0, -144,
1229 -144, -144, -144, 0, 0, 0, -144, 0, 0, 0,
1230 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1231 0, -144, -144, 0, 0, 0, 0, 0, 0, 0,
1232 0, 0, 0, 0, -144, -144, 0, 0, 0, 0,
1233 -144, -144, -144, -144, -144, 0, 0, 0, 0, 0,
1234 0, 0, -144, 0, 0, 0, 0, 0, 0, 0,
1235 0, 0, -144, 0, -144, -144, -144, -144, -144, -144,
1236 0, -144, 0, 0, -144, -144, -144, -144, -144, -144,
1237 -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
1238 -145, 0, -586, 0, 0, 0, 0, 0, 0, -145,
1239 -145, -145, -145, 0, -145, -145, 0, 0, 0, -145,
1240 0, 0, -145, -145, -145, -145, 0, 0, 0, -145,
1241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1242 0, 0, 0, 0, -145, -145, 0, 0, 0, 0,
1243 0, 0, 0, 0, 0, 0, 0, -145, -145, 0,
1244 0, 0, 0, -145, -145, -145, -145, -145, 0, 0,
1245 0, 0, 0, 0, 0, -145, 0, 0, 0, 0,
1246 0, 0, 0, 0, 0, -145, 0, -145, -145, -145,
1247 -145, -145, -145, 0, -145, 0, 0, -145, -145, -145,
1248 -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
1249 -145, -145, -145, -146, 0, -585, 0, 0, 0, 0,
1250 0, 0, -146, -146, -146, -146, 0, -146, -146, 0,
1251 0, 0, -146, 0, 0, -146, -146, -146, -146, 0,
1252 0, 0, -146, 0, 0, 0, 0, 0, 0, 0,
1253 0, 0, 0, 0, 0, 0, 0, -146, -146, 0,
1254 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1255 -146, -146, 0, 0, 0, 0, -146, -146, -146, -146,
1256 -146, 0, 0, 0, 0, 0, 0, 0, -146, 0,
1257 0, 0, 0, 0, 0, 0, 0, 0, -146, 0,
1258 -146, -146, -146, -146, -146, -146, 0, -146, 0, 0,
1259 -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
1260 -146, -146, -146, -146, -146, -146, -30, 0, -593, 0,
1261 0, 0, 0, 0, 0, -30, -30, -30, -30, 0,
1262 -30, -30, 0, 0, 0, -30, 0, 0, -30, -30,
1263 -30, -30, 0, 0, 0, -30, 0, 0, 0, 0,
1264 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1265 -30, -30, 0, 0, 0, 0, 0, 0, 0, 0,
1266 0, 0, 0, -30, -30, 0, 0, 0, 0, -30,
1267 -30, -30, -30, -30, 0, 0, 0, 0, 0, 0,
1268 0, -30, 0, 0, 0, 0, 0, 0, 0, 0,
1269 0, -30, 0, -30, -30, -30, -30, -30, -30, 0,
1270 -30, 0, 0, -30, -30, -30, -30, -30, -30, -30,
1271 -30, -30, -30, -30, -30, -30, -30, -30, -30, -148,
1272 0, -30, 0, 0, 0, 0, 0, 0, -148, -148,
1273 -148, -148, 0, -148, -148, 0, 0, 0, -148, 0,
1274 0, -148, -148, -148, -148, 0, 0, 0, -148, 0,
1275 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1276 0, 0, 0, -148, -148, 0, 0, 0, 0, 0,
1277 0, 0, 0, 0, 0, 0, -148, -148, 0, 0,
1278 0, 0, -148, -148, -148, -148, -148, 0, 0, 0,
1279 0, 0, 0, 0, -148, 0, 0, 0, 0, 0,
1280 0, 0, 0, 0, -148, 0, -148, -148, -148, -148,
1281 -148, -148, 0, -148, 0, 0, -148, -148, -148, -148,
1282 -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
1283 -148, -148, -149, 0, -621, 0, 0, 0, 0, 0,
1284 0, -149, -149, -149, -149, 0, -149, -149, 0, 0,
1285 0, -149, 0, 0, -149, -149, -149, -149, 0, 0,
1286 0, -149, 0, 0, 0, 0, 0, 0, 0, 0,
1287 0, 0, 0, 0, 0, 0, -149, -149, 0, 0,
1288 0, 0, 0, 0, 0, 0, 0, 0, 0, -149,
1289 -149, 0, 0, 0, 0, -149, -149, -149, -149, -149,
1290 0, 0, 0, 0, 0, 0, 0, -149, 0, 0,
1291 0, 0, 0, 0, 0, 0, 0, -149, 0, -149,
1292 -149, -149, -149, -149, -149, 0, -149, 0, 0, -149,
1293 -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
1294 -149, -149, -149, -149, -149, -150, 0, -619, 0, 0,
1295 0, 0, 0, 0, -150, -150, -150, -150, 0, -150,
1296 -150, 0, 0, 0, -150, 0, 0, -150, -150, -150,
1297 -150, 0, 0, 0, -150, 0, 0, 0, 0, 0,
1298 0, 0, 0, 0, 0, 0, 0, 0, 0, -150,
1299 -150, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1300 0, 0, -150, -150, 0, 0, 0, 0, -150, -150,
1301 -150, -150, -150, 0, 0, 0, 0, 0, 0, 0,
1302 -150, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1303 -150, 0, -150, -150, -150, -150, -150, -150, 0, -150,
1304 0, 0, -150, -150, -150, -150, -150, -150, -150, -150,
1305 -150, -150, -150, -150, -150, -150, -150, -150, -151, 0,
1306 -618, 0, 0, 0, 0, 0, 0, -151, -151, -151,
1307 -151, 0, -151, -151, 0, 0, 0, -151, 0, 0,
1308 -151, -151, -151, -151, 0, 0, 0, -151, 0, 0,
1309 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1310 0, 0, -151, -151, 0, 0, 0, 0, 0, 0,
1311 0, 0, 0, 0, 0, -151, -151, 0, 0, 0,
1312 0, -151, -151, -151, -151, -151, 0, 0, 0, 0,
1313 0, 0, 0, -151, 0, 0, 0, 0, 0, 0,
1314 0, 0, 0, -151, 0, -151, -151, -151, -151, -151,
1315 -151, 0, -151, 0, 0, -151, -151, -151, -151, -151,
1316 -151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
1317 -151, -152, 0, -620, 0, 0, 0, 0, 0, 0,
1318 -152, -152, -152, -152, 0, -152, -152, 0, 0, 0,
1319 -152, 0, 0, -152, -152, -152, -152, 0, 0, 0,
1320 -152, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1321 0, 0, 0, 0, 0, -152, -152, 0, 0, 0,
1322 0, 0, 0, 0, 0, 0, 0, 0, -152, -152,
1323 0, 0, 0, 0, -152, -152, -152, -152, -152, 0,
1324 0, 0, 0, 0, 0, 0, -152, 0, 0, 0,
1325 0, 0, 0, 0, 0, 0, -152, 0, -152, -152,
1326 -152, -152, -152, -152, 0, -152, 0, 0, -152, -152,
1327 -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
1328 -152, -152, -152, -152, -153, 0, -617, 0, 0, 0,
1329 0, 0, 0, -153, -153, -153, -153, 0, -153, -153,
1330 0, 0, 0, -153, 0, 0, -153, -153, -153, -153,
1331 0, 0, 0, -153, 0, 0, 0, 0, 0, 0,
1332 0, 0, 0, 0, 0, 0, 0, 0, -153, -153,
1333 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1334 0, -153, -153, 0, 0, 0, 0, -153, -153, -153,
1335 -153, -153, 0, 0, 0, 0, 0, 0, 0, -153,
1336 0, 0, 0, 0, 0, 0, 0, 0, 0, -153,
1337 0, -153, -153, -153, -153, -153, -153, 0, -153, 0,
1338 0, -153, -153, -153, -153, -153, -153, -153, -153, -153,
1339 -153, -153, -153, -153, -153, -153, -153, 104, 0, -616,
1340 0, 0, 0, 0, 0, 0, 105, 106, 107, 108,
1341 0, 109, 110, 0, 0, 0, 111, 0, 0, 365,
1342 448, 366, 367, 0, 0, 0, 368, 0, 0, 0,
1343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1344 0, 369, 370, 0, 0, 0, 0, 0, 0, 0,
1345 0, 0, 0, 0, 371, 372, 0, 0, 0, 0,
1346 112, 113, 114, 115, 116, 0, 0, 0, 0, 0,
1347 0, 0, 373, 0, 0, 0, 0, 0, 0, 0,
1348 0, 0, 117, 0, 118, 119, 120, 121, 122, 123,
1349 0, 124, 0, 0, 125, 126, 127, 128, 129, 130,
1350 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1351 0, 0, 449, 104, 1, 2, 3, 4, 5, 6,
1352 7, 8, 105, 106, 107, 108, 0, 699, 110, 512,
1353 0, 0, 700, 495, 0, 496, 0, 497, 367, 11,
1354 0, 0, 498, 0, 0, 0, 0, 0, 0, 0,
1355 0, 0, 0, 0, 0, 0, 0, 369, 370, 168,
1356 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1357 371, 372, 0, 0, 0, 0, 112, 113, 114, 115,
1358 116, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1359 0, 0, 0, 0, 62, 63, 64, 65, 117, 0,
1360 118, 119, 120, 121, 122, 123, 0, 124, 0, 0,
1361 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1362 135, 136, 137, 138, 139, 140, 104, 0, 0, 0,
1363 0, 0, 0, 0, 0, 105, 106, 107, 108, 0,
1364 109, 110, 492, 493, 494, 111, 495, 0, 496, 448,
1365 497, 367, 0, 0, 0, 498, 0, 0, 0, 0,
1366 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1367 369, 370, 168, 0, 0, 0, 0, 0, 0, 0,
1368 0, 0, 0, 371, 372, 0, 0, 0, 0, 112,
1369 113, 114, 115, 116, 0, 0, 0, 0, 0, 0,
1370 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1371 0, 117, 0, 118, 119, 120, 121, 122, 123, 0,
1372 124, 0, 0, 125, 126, 127, 128, 129, 130, 131,
1373 132, 133, 134, 135, 136, 137, 138, 139, 140, 104,
1374 0, 0, 0, 0, 0, 0, 0, 0, 105, 106,
1375 107, 108, 0, 109, 110, 787, 0, 0, 111, 495,
1376 0, 496, 0, 497, 367, 0, 0, 0, 498, 0,
1377 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1378 158, 0, 0, 369, 370, 168, 0, 0, 0, 0,
1379 0, 0, 0, 0, 0, 0, 371, 372, 0, 0,
1380 0, 0, 112, 113, 114, 115, 116, 0, 0, 0,
1381 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1382 0, 0, 0, 0, 117, 788, 789, 119, 120, 121,
1383 122, 123, 0, 124, 0, 0, 125, 126, 127, 128,
1384 129, 130, 131, 132, 133, 790, 135, 136, 137, 138,
1385 139, 140, 104, 0, 0, 0, 0, 0, 0, 0,
1386 0, 105, 106, 107, 108, 0, 109, 110, 512, 0,
1387 0, 111, 495, 0, 496, 0, 497, 367, 0, 0,
1388 0, 498, 0, 0, 0, 0, 0, 0, 0, 0,
1389 0, 0, 0, 158, 0, 0, 369, 370, 168, 0,
1390 0, 0, 0, 0, 0, 0, 0, 0, 0, 371,
1391 372, 0, 0, 869, 0, 112, 113, 114, 115, 116,
1392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1393 0, 0, 0, 0, 0, 0, 0, 117, 0, 118,
1394 119, 120, 121, 122, 123, 0, 124, 0, 0, 125,
1395 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1396 136, 137, 138, 139, 140, 104, 0, 0, 0, 0,
1397 0, 0, 0, 0, 105, 106, 107, 108, 0, 109,
1398 110, 512, 0, 0, 111, 495, -635, 496, 0, 497,
1399 367, 0, 0, 0, 498, 0, 0, 0, 0, 0,
1400 0, 0, 0, 0, 0, 0, 158, 0, 0, 369,
1401 370, 168, 0, 0, 0, 0, 0, 0, 0, 0,
1402 0, 0, 371, 372, 0, 0, 0, 0, 112, 113,
1403 114, 115, 116, 0, 0, 0, 0, 0, 0, 0,
1404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1405 117, 0, 118, 119, 120, 121, 122, 123, 0, 124,
1406 0, 0, 125, 126, 127, 128, 129, 130, 131, 132,
1407 133, 134, 135, 136, 137, 138, 139, 140, 104, 0,
1408 0, 0, 0, 0, 0, 0, 0, 105, 106, 107,
1409 108, 0, 109, 110, 512, 0, 0, 111, 495, 0,
1410 496, 0, 497, 367, 0, 0, 0, 498, 0, 0,
1411 0, 0, 0, 0, 0, 0, 0, 0, 0, 158,
1412 0, 0, 369, 370, 168, 0, 0, 0, 0, 0,
1413 0, 0, 0, 0, 0, 371, 372, 0, 0, 0,
1414 0, 112, 113, 114, 115, 116, 0, 0, 0, 0,
1415 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1416 0, 0, 0, 117, 0, 118, 119, 120, 121, 122,
1417 123, 0, 124, 0, 0, 125, 126, 127, 128, 129,
1418 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1419 140, 104, 0, 0, 0, 0, 0, 0, 0, 0,
1420 105, 106, 107, 108, 0, 109, 110, 787, 0, 0,
1421 111, 495, 0, 496, 0, 497, 367, 0, 0, 0,
1422 498, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1423 0, 0, 0, 0, 0, 369, 370, 168, 0, 0,
1424 0, 0, 0, 0, 0, 0, 0, 0, 371, 372,
1425 0, 0, 0, 0, 112, 113, 114, 115, 116, 0,
1426 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1427 0, 0, 0, 0, 0, 0, 117, 788, 789, 119,
1428 120, 121, 122, 123, 0, 124, 0, 0, 125, 126,
1429 127, 128, 129, 130, 131, 132, 133, 790, 135, 136,
1430 137, 138, 139, 140, 104, 0, 0, 0, 0, 0,
1431 0, 0, 0, 105, 106, 107, 108, 0, 109, 110,
1432 512, 0, 0, 111, 495, 0, 496, 0, 497, 367,
1433 0, 0, 0, 498, 0, 0, 0, 0, 0, 0,
1434 0, 0, 0, 0, 0, 0, 0, 0, 369, 370,
1435 168, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1436 0, 371, 372, 0, 0, 0, 0, 112, 113, 114,
1437 115, 116, 0, 0, 0, 0, 0, 0, 0, 0,
1438 0, 0, 0, 0, 0, 0, 0, 0, 0, 117,
1439 0, 118, 119, 120, 121, 122, 123, 0, 124, 0,
1440 0, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1441 134, 135, 136, 137, 138, 139, 140, 104, 0, 0,
1442 0, 0, 0, 0, 0, 0, 105, 106, 107, 108,
1443 0, 109, 110, 0, 0, 0, 111, 0, 0, 365,
1444 0, 366, 367, 0, 0, 0, 368, 0, 0, 0,
1445 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1446 0, 369, 370, 0, 0, 0, 0, 0, 0, 0,
1447 0, 0, 0, 0, 371, 372, 0, 0, 0, 0,
1448 112, 113, 114, 115, 116, 0, 0, 0, 0, 0,
1449 0, 0, 373, 0, 0, 0, 0, 0, 0, 0,
1450 0, 0, 117, 0, 118, 119, 120, 121, 122, 123,
1451 0, 124, 0, 0, 125, 126, 127, 128, 129, 130,
1452 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1453 104, 0, 0, 0, 0, 0, 0, 0, 0, 105,
1454 106, 107, 108, 0, 109, 110, 0, 0, 0, 111,
1455 0, 0, 0, 0, 0, 0, 11, 0, 0, -527,
1456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1457 0, 0, 0, 0, 0, 0, 168, 0, 0, 0,
1458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1459 0, 0, 0, 112, 113, 114, 115, 116, 0, 0,
1460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1461 0, 0, 0, 0, 65, 117, 0, 118, 119, 120,
1462 121, 122, 123, 0, 124, 0, 0, 125, 126, 127,
1463 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1464 138, 139, 140, 104, 0, 0, 0, 0, 0, 0,
1465 0, 0, 105, 106, 107, 108, 0, 109, 110, 0,
1466 0, 679, 111, 0, 0, 0, 0, 0, 0, 11,
1467 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
1468 474, 475, 476, 477, 478, 479, 480, 481, 0, 168,
1469 0, 0, 0, 482, 0, 0, 0, 0, 0, 0,
1470 0, 0, 0, 0, 0, 0, 112, 113, 114, 115,
1471 116, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1472 0, 0, 0, 0, 0, 0, 0, 65, 117, 0,
1473 118, 119, 120, 121, 122, 123, 0, 124, 0, 0,
1474 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1475 135, 136, 137, 138, 139, 140, 104, 0, 0, 0,
1476 0, 0, 0, 0, 0, 105, 106, 107, 108, 0,
1477 109, 110, 0, 0, 0, 111, 0, 0, 771, 0,
1478 0, 0, 0, 0, 0, 722, 827, 464, 465, 466,
1479 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
1480 477, 478, 479, 480, 481, 0, 0, 0, 0, 0,
1481 705, 0, 0, 0, 0, 0, 0, 0, 0, 112,
1482 113, 114, 115, 116, 0, 0, 0, 0, 0, 0,
1483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1484 0, 117, 0, 118, 119, 120, 121, 122, 123, 0,
1485 124, 0, 0, 125, 126, 127, 128, 129, 130, 131,
1486 132, 133, 134, 135, 136, 137, 138, 139, 140, 104,
1487 0, 0, 0, 0, 0, 0, 0, 0, 105, 106,
1488 107, 108, 0, 109, 110, 0, 0, 0, 111, 0,
1489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1490 0, 764, 0, 0, 0, 0, 0, 0, 0, 0,
1491 0, 0, 0, 0, 0, 168, 0, 0, 0, 0,
1492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1493 0, 0, 112, 113, 114, 115, 116, 0, 0, 0,
1494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1495 0, 0, 0, 0, 117, 0, 118, 119, 120, 121,
1496 122, 123, 0, 124, 0, 0, 125, 126, 127, 128,
1497 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1498 139, 140, 104, 0, 0, 0, 0, 0, 0, 0,
1499 0, 105, 106, 107, 108, 923, 109, 110, 0, 0,
1500 0, 111, 0, 0, 464, 465, 466, 467, 468, 469,
1501 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
1502 480, 481, 0, 0, 0, 0, 0, 705, 168, 0,
1503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1504 0, 0, 0, 0, 0, 112, 113, 114, 115, 116,
1505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1506 0, 0, 0, 0, 0, 0, 0, 117, 0, 118,
1507 119, 120, 121, 122, 123, 0, 124, 0, 0, 125,
1508 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1509 136, 137, 138, 139, 140, 104, 0, 0, 0, 0,
1510 0, 0, 0, 0, 105, 106, 107, 108, 0, 109,
1511 110, 0, 0, 0, 111, 0, 0, 887, 0, 0,
1512 0, 0, 0, 0, 460, 464, 465, 466, 467, 468,
1513 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
1514 479, 480, 481, 0, 0, 0, 0, 0, 705, 0,
1515 0, 0, 0, 0, 0, 0, 0, 0, 112, 113,
1516 114, 115, 116, 0, 0, 0, 0, 0, 0, 0,
1517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1518 117, 0, 118, 119, 120, 121, 122, 123, 0, 124,
1519 0, 0, 125, 126, 127, 128, 129, 130, 131, 132,
1520 133, 134, 135, 136, 137, 138, 139, 140, 104, 0,
1521 0, 0, 0, 0, 0, 0, 0, 105, 106, 107,
1522 108, 0, 109, 110, 0, 0, 0, 111, 0, 0,
1523 0, 761, 0, 0, 0, 0, 0, 722, 464, 465,
1524 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
1525 476, 477, 478, 479, 480, 481, 0, 0, 0, 0,
1526 0, 482, 0, 0, 0, 0, 0, 104, 0, 0,
1527 0, 112, 113, 114, 115, 116, 105, 106, 107, 108,
1528 0, 109, 110, 0, 0, 0, 111, 0, 0, 0,
1529 0, 0, 0, 117, 0, 118, 119, 120, 121, 122,
1530 123, 0, 124, 0, 0, 125, 126, 127, 128, 129,
1531 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1532 140, 0, 0, 0, 0, 0, 0, 0, 752, 0,
1533 112, 113, 114, 115, 116, 0, 0, 0, 0, 0,
1534 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1535 0, 0, 117, 0, 118, 119, 120, 121, 122, 123,
1536 0, 124, 0, 0, 125, 126, 127, 128, 129, 130,
1537 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1538 104, 0, 0, 0, 0, 0, 0, 0, 0, 105,
1539 106, 107, 108, 819, 803, 110, 0, 0, 0, 111,
1540 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
1541 474, 475, 476, 477, 478, 479, 480, 481, 0, 0,
1542 0, 0, 0, 705, 0, 0, 168, 0, 0, 0,
1543 0, 0, 0, 0, 0, 0, 0, 0, 0, 104,
1544 0, 0, 0, 112, 113, 114, 115, 116, 105, 106,
1545 107, 108, 0, 109, 110, 0, 0, 0, 111, 0,
1546 0, 0, 0, 0, 0, 117, 0, 118, 119, 120,
1547 121, 122, 123, 0, 124, 0, 0, 125, 126, 127,
1548 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1549 138, 139, 140, 0, 0, 0, 0, 0, 104, 0,
1550 848, 0, 112, 113, 114, 115, 116, 105, 106, 107,
1551 108, 0, 109, 110, 0, 0, 0, 111, 0, 0,
1552 0, 0, 0, 0, 117, 0, 118, 119, 120, 121,
1553 122, 123, 0, 124, 0, 0, 125, 126, 127, 128,
1554 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1555 139, 140, 0, 0, 0, 0, 0, 0, 0, 0,
1556 0, 112, 113, 114, 115, 116, 0, 0, 0, 0,
1557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1558 0, 0, 0, 117, 0, 118, 119, 120, 121, 122,
1559 123, 0, 124, 0, 0, 125, 126, 127, 128, 129,
1560 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1561 140, 720, 0, 0, 464, 465, 466, 467, 468, 469,
1562 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
1563 480, 481, 0, 0, 0, 0, 0, 705, 464, 465,
1564 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
1565 476, 477, 478, 479, 480, 481, 0, 0, 0, 0,
1566 0, 482, 464, 465, 466, 467, 468, 469, 470, 471,
1567 472, 473, 474, 475, 476, 477, 478, 479, 480, 481,
1568 0, 0, 0, 0, 0, 705, 464, 465, 466, 467,
1569 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
1570 478, 479, 480, 481, 0, 0, 0, 0, 0, 482,
1571 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
1572 474, 475, 476, 477, 478, 479, 480, 481, 0, 0,
1573 0, 0, 0, 705
1574 };
1575
1576 static const short yycheck[] =
1577 {
1578 33, 22, 88, 0, 33, 16, 17, 18, 190, 0,
1579 189, 190, 15, 10, 33, 196, 103, 430, 15, 92,
1580 433, 390, 430, 433, 404, 376, 92, 24, 403, 34,
1581 27, 507, 401, 716, 81, 316, 27, 386, 387, 485,
1582 738, 485, 738, 418, 91, 775, 738, 777, 45, 10,
1583 0, 62, 63, 64, 141, 316, 15, 144, 767, 26,
1584 10, 31, 32, 436, 34, 29, 49, 29, 91, 33,
1585 81, 33, 24, 442, 24, 29, 29, 27, 17, 18,
1586 33, 92, 93, 94, 45, 33, 34, 368, 32, 165,
1587 101, 821, 95, 374, 38, 45, 25, 789, 95, 450,
1588 123, 797, 26, 26, 813, 797, 35, 6, 459, 33,
1589 9, 462, 64, 4, 5, 6, 7, 8, 9, 10,
1590 11, 197, 31, 87, 44, 87, 17, 36, 32, 498,
1591 499, 22, 0, 87, 87, 508, 95, 9, 507, 11,
1592 823, 124, 26, 27, 853, 31, 35, 36, 32, 35,
1593 36, 125, 119, 31, 415, 125, 34, 840, 32, 162,
1594 44, 36, 173, 196, 161, 162, 37, 6, 7, 8,
1595 879, 110, 111, 112, 113, 114, 115, 32, 36, 34,
1596 191, 30, 463, 866, 31, 31, 33, 34, 897, 31,
1597 888, 33, 34, 84, 85, 86, 888, 32, 928, 35,
1598 161, 482, 483, 162, 35, 36, 33, 34, 33, 34,
1599 902, 161, 32, 33, 910, 23, 37, 36, 910, 33,
1600 34, 92, 93, 94, 95, 96, 924, 98, 99, 33,
1601 34, 317, 924, 4, 5, 6, 7, 8, 9, 10,
1602 11, 40, 688, 316, 688, 31, 17, 693, 931, 693,
1603 316, 22, 33, 34, 36, 17, 18, 23, 29, 93,
1604 94, 123, 38, 643, 32, 645, 37, 6, 648, 36,
1605 32, 92, 93, 94, 95, 96, 32, 98, 99, 31,
1606 35, 650, 32, 36, 32, 4, 5, 6, 7, 8,
1607 9, 10, 11, 17, 18, 368, 40, 31, 17, 31,
1608 675, 374, 368, 22, 49, 316, 485, 6, 374, 26,
1609 29, 32, 359, 84, 85, 86, 87, 40, 34, 498,
1610 34, 34, 92, 93, 94, 95, 96, 740, 98, 99,
1611 31, 682, 740, 26, 685, 686, 705, 706, 100, 101,
1612 102, 103, 104, 105, 106, 107, 108, 722, 824, 32,
1613 121, 3, 727, 22, 6, 32, 31, 368, 10, 39,
1614 12, 13, 373, 374, 83, 84, 85, 86, 87, 738,
1615 89, 23, 64, 64, 403, 37, 100, 101, 102, 103,
1616 104, 105, 106, 107, 108, 418, 40, 31, 31, 418,
1617 463, 40, 32, 24, 40, 32, 429, 463, 431, 418,
1618 433, 770, 32, 783, 123, 785, 786, 31, 33, 482,
1619 483, 33, 33, 4, 5, 6, 482, 483, 9, 768,
1620 769, 432, 34, 25, 35, 31, 35, 34, 797, 842,
1621 3, 22, 33, 6, 842, 446, 33, 10, 33, 12,
1622 13, 14, 15, 16, 17, 34, 34, 40, 35, 460,
1623 819, 456, 463, 486, 487, 824, 64, 808, 809, 109,
1624 33, 874, 644, 32, 874, 644, 32, 34, 647, 33,
1625 839, 482, 483, 33, 25, 32, 35, 31, 891, 760,
1626 761, 33, 485, 891, 864, 33, 33, 32, 485, 33,
1627 903, 31, 97, 35, 485, 33, 25, 4, 5, 6,
1628 7, 8, 9, 10, 11, 31, 34, 518, 32, 688,
1629 17, 4, 5, 6, 693, 22, 9, 33, 887, 888,
1630 933, 33, 29, 34, 33, 933, 34, 32, 34, 22,
1631 24, 944, 32, 4, 5, 6, 7, 8, 9, 10,
1632 11, 910, 97, 32, 25, 33, 17, 32, 25, 33,
1633 930, 22, 34, 33, 33, 924, 34, 33, 29, 30,
1634 31, 35, 34, 33, 745, 945, 32, 25, 33, 32,
1635 41, 33, 33, 32, 27, 693, 33, 84, 85, 86,
1636 87, 33, 33, 162, 688, 30, 4, 5, 6, 7,
1637 8, 9, 10, 11, 40, 640, 186, 24, 780, 17,
1638 184, 780, 389, 647, 22, 815, 456, 21, 695, 696,
1639 651, 29, 83, 84, 85, 86, 87, 88, 89, 777,
1640 91, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1641 75, 76, 77, 174, 79, 80, 81, 82, 671, 19,
1642 651, 924, 393, 788, 3, 116, 675, 6, 902, 429,
1643 121, 10, 123, 12, 13, 14, 15, 16, 17, 692,
1644 944, 836, 673, 692, 747, -1, 84, 85, 86, 87,
1645 -1, -1, -1, 692, -1, -1, -1, -1, -1, -1,
1646 -1, -1, 701, 694, -1, 688, -1, 760, 761, -1,
1647 693, 688, -1, 722, 760, 761, 693, 688, 727, -1,
1648 882, -1, 693, 882, -1, 123, -1, -1, -1, 742,
1649 -1, -1, 745, -1, -1, 748, -1, -1, -1, 901,
1650 806, -1, 901, 744, -1, -1, 4, 5, 6, 7,
1651 8, 9, 10, 11, -1, -1, 747, -1, -1, 17,
1652 -1, -1, -1, -1, 22, -1, -1, -1, -1, 760,
1653 761, 29, -1, -1, -1, 937, -1, -1, 937, 4,
1654 5, 6, 7, 8, 9, 10, 11, 800, 779, -1,
1655 -1, 782, 17, -1, -1, -1, -1, 22, -1, -1,
1656 813, 26, 27, 816, 817, -1, -1, -1, -1, -1,
1657 -1, -1, -1, -1, -1, -1, 807, -1, -1, 44,
1658 31, -1, 823, 836, -1, -1, 84, 85, 86, 87,
1659 -1, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1660 51, 52, 53, 54, 55, 56, 57, 58, 59, -1,
1661 -1, -1, -1, -1, 65, -1, -1, -1, -1, 84,
1662 85, 86, -1, 121, -1, -1, 879, -1, -1, -1,
1663 -1, -1, -1, -1, -1, 888, -1, -1, -1, -1,
1664 -1, 0, -1, -1, 3, 4, 5, 6, 7, 8,
1665 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
1666 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1667 29, 924, 31, 32, 33, 34, 35, 36, 37, 38,
1668 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1669 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1670 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1671 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1672 79, -1, 81, -1, 83, 84, 85, 86, 87, 88,
1673 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1674 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1675 109, 110, 111, 112, 113, 114, 115, 116, -1, -1,
1676 119, -1, 121, 122, 123, 124, 125, 0, -1, -1,
1677 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
1678 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1679 23, 24, 25, 26, 27, 28, 29, -1, 31, 32,
1680 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1681 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1682 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1683 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1684 73, 74, 75, 76, 77, 78, 79, -1, 81, -1,
1685 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
1686 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1687 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1688 113, 114, 115, 116, -1, -1, 119, -1, 121, 122,
1689 123, 124, 125, 0, -1, -1, 3, 4, 5, 6,
1690 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1691 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1692 27, 28, 29, -1, 31, 32, 33, 34, 35, 36,
1693 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1694 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1695 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1696 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1697 77, 78, 79, -1, 81, -1, 83, 84, 85, 86,
1698 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1699 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1700 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1701 -1, -1, 119, -1, 121, 122, 123, 124, 125, 0,
1702 -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
1703 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1704 21, 22, 23, 24, 25, 26, 27, 28, 29, -1,
1705 31, 32, 33, 34, 35, 36, -1, 38, 39, 40,
1706 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1707 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1708 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1709 71, 72, 73, 74, 75, 76, 77, 78, 79, -1,
1710 81, -1, 83, 84, 85, 86, 87, 88, 89, 90,
1711 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1712 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1713 111, 112, 113, 114, 115, 116, 3, -1, 119, -1,
1714 121, 122, 123, 124, 125, 12, 13, 14, 15, -1,
1715 17, 18, -1, -1, -1, 22, -1, -1, -1, -1,
1716 -1, -1, 29, 30, 31, 32, 33, 34, 35, 36,
1717 37, 38, 39, 40, -1, 42, 43, 44, 45, 46,
1718 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1719 57, 58, 59, -1, -1, -1, -1, -1, 65, 66,
1720 67, 68, 69, 70, 4, 5, 6, 7, 8, 9,
1721 10, 11, -1, -1, -1, -1, -1, 17, -1, -1,
1722 87, 88, 22, 90, 91, 92, 93, 94, 95, 29,
1723 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1724 107, 108, 109, 110, 111, 112, 113, 114, 115, -1,
1725 3, -1, -1, -1, -1, -1, -1, -1, 125, 12,
1726 13, 14, 15, -1, 17, 18, 19, -1, -1, 22,
1727 23, -1, 25, -1, 27, 28, 29, -1, -1, 32,
1728 -1, -1, -1, -1, 84, 85, 86, 87, -1, -1,
1729 -1, -1, -1, -1, 47, 48, 49, -1, -1, -1,
1730 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
1731 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
1732 -1, 121, -1, -1, -1, -1, -1, -1, -1, -1,
1733 -1, -1, -1, -1, 87, 88, -1, 90, 91, 92,
1734 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
1735 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1736 113, 114, 115, 3, -1, -1, -1, -1, -1, -1,
1737 -1, 124, 12, 13, 14, 15, -1, 17, 18, -1,
1738 -1, -1, 22, -1, -1, 25, -1, 27, 28, -1,
1739 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
1740 -1, -1, -1, -1, -1, -1, -1, 47, 48, -1,
1741 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1742 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
1743 70, -1, -1, -1, -1, -1, -1, -1, 78, -1,
1744 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
1745 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
1746 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1747 110, 111, 112, 113, 114, 115, 3, -1, -1, 119,
1748 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
1749 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
1750 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
1751 -1, -1, 4, 5, 6, 7, 8, 9, 10, 11,
1752 47, 48, -1, -1, -1, 17, -1, -1, -1, -1,
1753 22, -1, -1, 60, 61, -1, -1, 29, -1, 66,
1754 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1755 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
1756 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
1757 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1758 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
1759 -1, 118, 84, 85, 86, 87, -1, -1, 12, 13,
1760 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
1761 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
1762 -1, -1, -1, -1, -1, 4, 5, 6, 7, 8,
1763 9, 10, 11, 47, 48, -1, -1, -1, 17, -1,
1764 -1, -1, -1, 22, -1, -1, 60, 61, -1, -1,
1765 29, -1, 66, 67, 68, 69, 70, -1, -1, -1,
1766 -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
1767 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
1768 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
1769 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1770 114, 115, 3, -1, 118, 84, 85, 86, 87, -1,
1771 -1, 12, 13, 14, 15, -1, 17, 18, -1, -1,
1772 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
1773 -1, 32, -1, -1, -1, -1, -1, -1, 4, 5,
1774 6, 7, 8, 9, 10, 11, 47, 48, -1, -1,
1775 -1, 17, -1, -1, -1, -1, 22, -1, -1, 60,
1776 61, -1, -1, 29, -1, 66, 67, 68, 69, 70,
1777 -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
1778 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
1779 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
1780 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1781 111, 112, 113, 114, 115, 3, -1, 118, 84, 85,
1782 86, 87, -1, -1, 12, 13, 14, 15, -1, 17,
1783 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
1784 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
1785 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
1786 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1787 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
1788 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
1789 78, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1790 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
1791 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
1792 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
1793 118, -1, -1, -1, -1, -1, -1, 12, 13, 14,
1794 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
1795 25, 26, 27, 28, -1, -1, -1, 32, -1, -1,
1796 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1797 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
1798 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
1799 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
1800 -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
1801 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
1802 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
1803 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1804 115, 3, -1, 118, -1, -1, -1, -1, -1, -1,
1805 12, 13, 14, 15, -1, 17, 18, -1, -1, -1,
1806 22, -1, -1, 25, 26, 27, 28, -1, -1, -1,
1807 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1808 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
1809 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
1810 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
1811 -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
1812 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
1813 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
1814 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1815 112, 113, 114, 115, 3, -1, 118, -1, -1, -1,
1816 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
1817 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
1818 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
1819 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
1820 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1821 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
1822 69, 70, -1, -1, -1, -1, -1, -1, -1, 78,
1823 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
1824 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
1825 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1826 109, 110, 111, 112, 113, 114, 115, 3, -1, 118,
1827 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
1828 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
1829 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
1830 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1831 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
1832 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
1833 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
1834 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
1835 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
1836 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
1837 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1838 3, -1, 118, -1, -1, -1, -1, -1, -1, 12,
1839 13, 14, 15, -1, 17, 18, -1, -1, -1, 22,
1840 -1, -1, 25, 26, 27, 28, -1, -1, -1, 32,
1841 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1842 -1, -1, -1, -1, 47, 48, -1, -1, -1, -1,
1843 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
1844 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
1845 -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
1846 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
1847 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
1848 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1849 113, 114, 115, 3, -1, 118, -1, -1, -1, -1,
1850 -1, -1, 12, 13, 14, 15, -1, 17, 18, -1,
1851 -1, -1, 22, -1, -1, 25, 26, 27, 28, -1,
1852 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
1853 -1, -1, -1, -1, -1, -1, -1, 47, 48, -1,
1854 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1855 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
1856 70, -1, -1, -1, -1, -1, -1, -1, 78, -1,
1857 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
1858 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
1859 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1860 110, 111, 112, 113, 114, 115, 3, -1, 118, -1,
1861 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
1862 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
1863 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
1864 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1865 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
1866 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
1867 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1868 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
1869 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
1870 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1871 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
1872 -1, 118, -1, -1, -1, -1, -1, -1, 12, 13,
1873 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
1874 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
1875 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1876 -1, -1, -1, 47, 48, -1, -1, -1, -1, -1,
1877 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
1878 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
1879 -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
1880 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
1881 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
1882 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1883 114, 115, 3, -1, 118, -1, -1, -1, -1, -1,
1884 -1, 12, 13, 14, 15, -1, 17, 18, -1, -1,
1885 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
1886 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
1887 -1, -1, -1, -1, -1, -1, 47, 48, -1, -1,
1888 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
1889 61, -1, -1, -1, -1, 66, 67, 68, 69, 70,
1890 -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
1891 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
1892 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
1893 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1894 111, 112, 113, 114, 115, 3, -1, 118, -1, -1,
1895 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
1896 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
1897 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
1898 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
1899 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1900 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
1901 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
1902 78, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1903 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
1904 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
1905 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
1906 118, -1, -1, -1, -1, -1, -1, 12, 13, 14,
1907 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
1908 25, 26, 27, 28, -1, -1, -1, 32, -1, -1,
1909 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1910 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
1911 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
1912 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
1913 -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
1914 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
1915 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
1916 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1917 115, 3, -1, 118, -1, -1, -1, -1, -1, -1,
1918 12, 13, 14, 15, -1, 17, 18, -1, -1, -1,
1919 22, -1, -1, 25, 26, 27, 28, -1, -1, -1,
1920 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1921 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
1922 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
1923 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
1924 -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
1925 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
1926 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
1927 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1928 112, 113, 114, 115, 3, -1, 118, -1, -1, -1,
1929 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
1930 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
1931 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
1932 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
1933 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1934 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
1935 69, 70, -1, -1, -1, -1, -1, -1, -1, 78,
1936 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
1937 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
1938 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1939 109, 110, 111, 112, 113, 114, 115, 3, -1, 118,
1940 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
1941 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
1942 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
1943 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1944 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
1945 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
1946 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
1947 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
1948 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
1949 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
1950 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1951 3, -1, 118, -1, -1, -1, -1, -1, -1, 12,
1952 13, 14, 15, -1, 17, 18, -1, -1, -1, 22,
1953 -1, -1, 25, 26, 27, 28, -1, -1, -1, 32,
1954 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1955 -1, -1, -1, -1, 47, 48, -1, -1, -1, -1,
1956 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
1957 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
1958 -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
1959 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
1960 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
1961 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1962 113, 114, 115, 3, -1, 118, -1, -1, -1, -1,
1963 -1, -1, 12, 13, 14, 15, -1, 17, 18, -1,
1964 -1, -1, 22, -1, -1, 25, 26, 27, 28, -1,
1965 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
1966 -1, -1, -1, -1, -1, -1, -1, 47, 48, -1,
1967 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1968 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
1969 70, -1, -1, -1, -1, -1, -1, -1, 78, -1,
1970 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
1971 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
1972 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1973 110, 111, 112, 113, 114, 115, 3, -1, 118, -1,
1974 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
1975 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
1976 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
1977 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1978 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
1979 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
1980 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1981 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
1982 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
1983 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1984 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
1985 -1, 118, -1, -1, -1, -1, -1, -1, 12, 13,
1986 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
1987 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
1988 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1989 -1, -1, -1, 47, 48, -1, -1, -1, -1, -1,
1990 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
1991 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
1992 -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
1993 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
1994 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
1995 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1996 114, 115, 3, -1, 118, -1, -1, -1, -1, -1,
1997 -1, 12, 13, 14, 15, -1, 17, 18, -1, -1,
1998 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
1999 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
2000 -1, -1, -1, -1, -1, -1, 47, 48, -1, -1,
2001 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
2002 61, -1, -1, -1, -1, 66, 67, 68, 69, 70,
2003 -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
2004 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
2005 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
2006 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2007 111, 112, 113, 114, 115, 3, -1, 118, -1, -1,
2008 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
2009 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
2010 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
2011 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
2012 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2013 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
2014 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2015 78, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2016 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
2017 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
2018 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
2019 118, -1, -1, -1, -1, -1, -1, 12, 13, 14,
2020 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
2021 25, 26, 27, 28, -1, -1, -1, 32, -1, -1,
2022 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2023 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
2024 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
2025 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
2026 -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
2027 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
2028 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2029 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2030 115, 3, -1, 118, -1, -1, -1, -1, -1, -1,
2031 12, 13, 14, 15, -1, 17, 18, -1, -1, -1,
2032 22, -1, -1, 25, 26, 27, 28, -1, -1, -1,
2033 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2034 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
2035 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
2036 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
2037 -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
2038 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
2039 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
2040 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2041 112, 113, 114, 115, 3, -1, 118, -1, -1, -1,
2042 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
2043 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
2044 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
2045 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
2046 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2047 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
2048 69, 70, -1, -1, -1, -1, -1, -1, -1, 78,
2049 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
2050 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
2051 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2052 109, 110, 111, 112, 113, 114, 115, 3, -1, 118,
2053 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
2054 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
2055 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
2056 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2057 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2058 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
2059 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
2060 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
2061 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
2062 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
2063 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2064 3, -1, 118, -1, -1, -1, -1, -1, -1, 12,
2065 13, 14, 15, -1, 17, 18, -1, -1, -1, 22,
2066 -1, -1, 25, 26, 27, 28, -1, -1, -1, 32,
2067 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2068 -1, -1, -1, -1, 47, 48, -1, -1, -1, -1,
2069 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
2070 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
2071 -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
2072 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
2073 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
2074 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2075 113, 114, 115, 3, -1, 118, -1, -1, -1, -1,
2076 -1, -1, 12, 13, 14, 15, -1, 17, 18, -1,
2077 -1, -1, 22, -1, -1, 25, 26, 27, 28, -1,
2078 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
2079 -1, -1, -1, -1, -1, -1, -1, 47, 48, -1,
2080 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2081 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
2082 70, -1, -1, -1, -1, -1, -1, -1, 78, -1,
2083 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
2084 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
2085 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2086 110, 111, 112, 113, 114, 115, 3, -1, 118, -1,
2087 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
2088 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
2089 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
2090 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2091 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
2092 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
2093 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
2094 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
2095 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
2096 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
2097 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
2098 -1, 118, -1, -1, -1, -1, -1, -1, 12, 13,
2099 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
2100 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
2101 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2102 -1, -1, -1, 47, 48, -1, -1, -1, -1, -1,
2103 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
2104 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
2105 -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
2106 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
2107 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
2108 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2109 114, 115, 3, -1, 118, -1, -1, -1, -1, -1,
2110 -1, 12, 13, 14, 15, -1, 17, 18, -1, -1,
2111 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
2112 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
2113 -1, -1, -1, -1, -1, -1, 47, 48, -1, -1,
2114 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
2115 61, -1, -1, -1, -1, 66, 67, 68, 69, 70,
2116 -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
2117 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
2118 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
2119 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2120 111, 112, 113, 114, 115, 3, -1, 118, -1, -1,
2121 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
2122 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
2123 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
2124 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
2125 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2126 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
2127 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2128 78, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2129 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
2130 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
2131 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
2132 118, -1, -1, -1, -1, -1, -1, 12, 13, 14,
2133 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
2134 25, 26, 27, 28, -1, -1, -1, 32, -1, -1,
2135 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2136 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
2137 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
2138 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
2139 -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
2140 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
2141 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2142 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2143 115, 3, -1, 118, -1, -1, -1, -1, -1, -1,
2144 12, 13, 14, 15, -1, 17, 18, -1, -1, -1,
2145 22, -1, -1, 25, 26, 27, 28, -1, -1, -1,
2146 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2147 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
2148 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
2149 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
2150 -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
2151 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
2152 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
2153 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2154 112, 113, 114, 115, 3, -1, 118, -1, -1, -1,
2155 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
2156 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
2157 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
2158 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
2159 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2160 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
2161 69, 70, -1, -1, -1, -1, -1, -1, -1, 78,
2162 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
2163 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
2164 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2165 109, 110, 111, 112, 113, 114, 115, 3, -1, 118,
2166 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
2167 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
2168 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
2169 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2170 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2171 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
2172 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
2173 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
2174 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
2175 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
2176 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2177 -1, -1, 118, 3, 4, 5, 6, 7, 8, 9,
2178 10, 11, 12, 13, 14, 15, -1, 17, 18, 19,
2179 -1, -1, 22, 23, -1, 25, -1, 27, 28, 29,
2180 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
2181 -1, -1, -1, -1, -1, -1, -1, 47, 48, 49,
2182 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2183 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
2184 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2185 -1, -1, -1, -1, 84, 85, 86, 87, 88, -1,
2186 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
2187 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2188 110, 111, 112, 113, 114, 115, 3, -1, -1, -1,
2189 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
2190 17, 18, 19, 20, 21, 22, 23, -1, 25, 26,
2191 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
2192 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2193 47, 48, 49, -1, -1, -1, -1, -1, -1, -1,
2194 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
2195 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
2196 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2197 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
2198 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
2199 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
2200 -1, -1, -1, -1, -1, -1, -1, -1, 12, 13,
2201 14, 15, -1, 17, 18, 19, -1, -1, 22, 23,
2202 -1, 25, -1, 27, 28, -1, -1, -1, 32, -1,
2203 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2204 44, -1, -1, 47, 48, 49, -1, -1, -1, -1,
2205 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
2206 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
2207 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2208 -1, -1, -1, -1, 88, 89, 90, 91, 92, 93,
2209 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
2210 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2211 114, 115, 3, -1, -1, -1, -1, -1, -1, -1,
2212 -1, 12, 13, 14, 15, -1, 17, 18, 19, -1,
2213 -1, 22, 23, -1, 25, -1, 27, 28, -1, -1,
2214 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
2215 -1, -1, -1, 44, -1, -1, 47, 48, 49, -1,
2216 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
2217 61, -1, -1, 64, -1, 66, 67, 68, 69, 70,
2218 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2219 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
2220 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
2221 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2222 111, 112, 113, 114, 115, 3, -1, -1, -1, -1,
2223 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
2224 18, 19, -1, -1, 22, 23, 24, 25, -1, 27,
2225 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
2226 -1, -1, -1, -1, -1, -1, 44, -1, -1, 47,
2227 48, 49, -1, -1, -1, -1, -1, -1, -1, -1,
2228 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
2229 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2230 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2231 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
2232 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
2233 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
2234 -1, -1, -1, -1, -1, -1, -1, 12, 13, 14,
2235 15, -1, 17, 18, 19, -1, -1, 22, 23, -1,
2236 25, -1, 27, 28, -1, -1, -1, 32, -1, -1,
2237 -1, -1, -1, -1, -1, -1, -1, -1, -1, 44,
2238 -1, -1, 47, 48, 49, -1, -1, -1, -1, -1,
2239 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
2240 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
2241 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2242 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
2243 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2244 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2245 115, 3, -1, -1, -1, -1, -1, -1, -1, -1,
2246 12, 13, 14, 15, -1, 17, 18, 19, -1, -1,
2247 22, 23, -1, 25, -1, 27, 28, -1, -1, -1,
2248 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2249 -1, -1, -1, -1, -1, 47, 48, 49, -1, -1,
2250 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
2251 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
2252 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2253 -1, -1, -1, -1, -1, -1, 88, 89, 90, 91,
2254 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
2255 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2256 112, 113, 114, 115, 3, -1, -1, -1, -1, -1,
2257 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
2258 19, -1, -1, 22, 23, -1, 25, -1, 27, 28,
2259 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
2260 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
2261 49, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2262 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
2263 69, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2264 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
2265 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
2266 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2267 109, 110, 111, 112, 113, 114, 115, 3, -1, -1,
2268 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
2269 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
2270 -1, 27, 28, -1, -1, -1, 32, -1, -1, -1,
2271 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2272 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2273 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
2274 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
2275 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
2276 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
2277 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
2278 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2279 3, -1, -1, -1, -1, -1, -1, -1, -1, 12,
2280 13, 14, 15, -1, 17, 18, -1, -1, -1, 22,
2281 -1, -1, -1, -1, -1, -1, 29, -1, -1, 32,
2282 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2283 -1, -1, -1, -1, -1, -1, 49, -1, -1, -1,
2284 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2285 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
2286 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2287 -1, -1, -1, -1, 87, 88, -1, 90, 91, 92,
2288 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
2289 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2290 113, 114, 115, 3, -1, -1, -1, -1, -1, -1,
2291 -1, -1, 12, 13, 14, 15, -1, 17, 18, -1,
2292 -1, 33, 22, -1, -1, -1, -1, -1, -1, 29,
2293 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2294 52, 53, 54, 55, 56, 57, 58, 59, -1, 49,
2295 -1, -1, -1, 65, -1, -1, -1, -1, -1, -1,
2296 -1, -1, -1, -1, -1, -1, 66, 67, 68, 69,
2297 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2298 -1, -1, -1, -1, -1, -1, -1, 87, 88, -1,
2299 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
2300 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2301 110, 111, 112, 113, 114, 115, 3, -1, -1, -1,
2302 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
2303 17, 18, -1, -1, -1, 22, -1, -1, 33, -1,
2304 -1, -1, -1, -1, -1, 32, 33, 42, 43, 44,
2305 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2306 55, 56, 57, 58, 59, -1, -1, -1, -1, -1,
2307 65, -1, -1, -1, -1, -1, -1, -1, -1, 66,
2308 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
2309 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2310 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
2311 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
2312 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
2313 -1, -1, -1, -1, -1, -1, -1, -1, 12, 13,
2314 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
2315 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2316 -1, 35, -1, -1, -1, -1, -1, -1, -1, -1,
2317 -1, -1, -1, -1, -1, 49, -1, -1, -1, -1,
2318 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2319 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
2320 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2321 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
2322 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
2323 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2324 114, 115, 3, -1, -1, -1, -1, -1, -1, -1,
2325 -1, 12, 13, 14, 15, 33, 17, 18, -1, -1,
2326 -1, 22, -1, -1, 42, 43, 44, 45, 46, 47,
2327 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2328 58, 59, -1, -1, -1, -1, -1, 65, 49, -1,
2329 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2330 -1, -1, -1, -1, -1, 66, 67, 68, 69, 70,
2331 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2332 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
2333 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
2334 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2335 111, 112, 113, 114, 115, 3, -1, -1, -1, -1,
2336 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
2337 18, -1, -1, -1, 22, -1, -1, 34, -1, -1,
2338 -1, -1, -1, -1, 32, 42, 43, 44, 45, 46,
2339 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
2340 57, 58, 59, -1, -1, -1, -1, -1, 65, -1,
2341 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
2342 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2343 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2344 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
2345 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
2346 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
2347 -1, -1, -1, -1, -1, -1, -1, 12, 13, 14,
2348 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
2349 -1, 35, -1, -1, -1, -1, -1, 32, 42, 43,
2350 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2351 54, 55, 56, 57, 58, 59, -1, -1, -1, -1,
2352 -1, 65, -1, -1, -1, -1, -1, 3, -1, -1,
2353 -1, 66, 67, 68, 69, 70, 12, 13, 14, 15,
2354 -1, 17, 18, -1, -1, -1, 22, -1, -1, -1,
2355 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
2356 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2357 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2358 115, -1, -1, -1, -1, -1, -1, -1, 64, -1,
2359 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
2360 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2361 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
2362 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
2363 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2364 3, -1, -1, -1, -1, -1, -1, -1, -1, 12,
2365 13, 14, 15, 35, 17, 18, -1, -1, -1, 22,
2366 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2367 52, 53, 54, 55, 56, 57, 58, 59, -1, -1,
2368 -1, -1, -1, 65, -1, -1, 49, -1, -1, -1,
2369 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
2370 -1, -1, -1, 66, 67, 68, 69, 70, 12, 13,
2371 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
2372 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
2373 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
2374 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2375 113, 114, 115, -1, -1, -1, -1, -1, 3, -1,
2376 64, -1, 66, 67, 68, 69, 70, 12, 13, 14,
2377 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
2378 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
2379 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
2380 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2381 114, 115, -1, -1, -1, -1, -1, -1, -1, -1,
2382 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
2383 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2384 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
2385 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2386 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2387 115, 39, -1, -1, 42, 43, 44, 45, 46, 47,
2388 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2389 58, 59, -1, -1, -1, -1, -1, 65, 42, 43,
2390 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2391 54, 55, 56, 57, 58, 59, -1, -1, -1, -1,
2392 -1, 65, 42, 43, 44, 45, 46, 47, 48, 49,
2393 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2394 -1, -1, -1, -1, -1, 65, 42, 43, 44, 45,
2395 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2396 56, 57, 58, 59, -1, -1, -1, -1, -1, 65,
2397 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2398 52, 53, 54, 55, 56, 57, 58, 59, -1, -1,
2399 -1, -1, -1, 65
2400 };
2401
2402 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2403 symbol of state STATE-NUM. */
2404 static const unsigned short yystos[] =
2405 {
2406 0, 4, 5, 6, 7, 8, 9, 10, 11, 17,
2407 22, 29, 30, 31, 41, 83, 84, 85, 86, 87,
2408 88, 89, 91, 116, 121, 123, 146, 147, 148, 149,
2409 150, 167, 170, 175, 176, 177, 178, 179, 180, 181,
2410 182, 183, 188, 191, 194, 195, 199, 200, 201, 202,
2411 204, 206, 210, 212, 213, 219, 227, 241, 242, 9,
2412 11, 22, 84, 85, 86, 87, 123, 200, 210, 30,
2413 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2414 76, 77, 79, 80, 81, 82, 151, 152, 153, 154,
2415 156, 157, 158, 84, 85, 121, 171, 173, 201, 202,
2416 210, 219, 228, 229, 3, 12, 13, 14, 15, 17,
2417 18, 22, 66, 67, 68, 69, 70, 88, 90, 91,
2418 92, 93, 94, 95, 97, 100, 101, 102, 103, 104,
2419 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2420 115, 143, 260, 272, 143, 143, 230, 3, 6, 10,
2421 12, 13, 23, 247, 249, 26, 123, 242, 44, 280,
2422 281, 22, 83, 89, 123, 199, 0, 148, 49, 143,
2423 176, 211, 236, 237, 238, 239, 177, 4, 5, 6,
2424 9, 22, 184, 6, 181, 187, 200, 125, 189, 32,
2425 32, 36, 36, 143, 143, 143, 34, 192, 0, 3,
2426 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
2427 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2428 24, 25, 26, 27, 28, 29, 31, 32, 33, 34,
2429 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2430 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2431 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2432 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2433 75, 76, 77, 78, 79, 81, 83, 84, 85, 86,
2434 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
2435 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
2436 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
2437 119, 121, 122, 123, 124, 125, 143, 144, 159, 30,
2438 3, 12, 13, 14, 15, 17, 18, 22, 66, 67,
2439 68, 69, 70, 88, 90, 91, 92, 93, 94, 95,
2440 97, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2441 109, 110, 111, 112, 113, 114, 115, 144, 162, 163,
2442 162, 26, 119, 155, 144, 25, 27, 28, 32, 47,
2443 48, 60, 61, 78, 142, 143, 164, 224, 143, 230,
2444 143, 230, 173, 31, 143, 35, 233, 233, 233, 233,
2445 40, 23, 31, 36, 23, 171, 123, 189, 29, 87,
2446 240, 38, 234, 32, 143, 124, 239, 6, 185, 6,
2447 9, 186, 184, 36, 196, 32, 31, 17, 175, 203,
2448 205, 207, 208, 209, 210, 207, 143, 220, 221, 92,
2449 93, 94, 95, 96, 98, 99, 251, 252, 253, 266,
2450 269, 275, 276, 277, 193, 211, 237, 189, 26, 118,
2451 164, 190, 162, 144, 26, 27, 32, 44, 226, 164,
2452 32, 143, 164, 32, 42, 43, 44, 45, 46, 47,
2453 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2454 58, 59, 65, 141, 35, 36, 215, 215, 31, 214,
2455 215, 214, 19, 20, 21, 23, 25, 27, 32, 142,
2456 168, 169, 190, 211, 222, 223, 224, 40, 251, 32,
2457 31, 31, 19, 29, 87, 124, 222, 235, 236, 237,
2458 234, 6, 0, 3, 4, 5, 6, 7, 8, 9,
2459 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2460 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2461 31, 32, 33, 34, 35, 38, 39, 40, 41, 42,
2462 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2463 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2464 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
2465 73, 74, 75, 76, 77, 78, 79, 81, 83, 84,
2466 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2467 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2468 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2469 115, 116, 119, 121, 122, 123, 124, 125, 145, 196,
2470 197, 198, 190, 236, 32, 33, 34, 34, 33, 34,
2471 40, 34, 231, 211, 256, 222, 245, 270, 271, 272,
2472 280, 211, 143, 278, 279, 211, 267, 271, 37, 252,
2473 222, 34, 31, 32, 26, 177, 225, 226, 22, 33,
2474 143, 119, 164, 165, 166, 164, 164, 32, 121, 172,
2475 173, 174, 175, 216, 219, 228, 229, 211, 211, 17,
2476 22, 175, 222, 222, 31, 65, 141, 168, 37, 14,
2477 15, 16, 17, 33, 243, 244, 246, 248, 249, 250,
2478 39, 39, 32, 143, 37, 198, 33, 32, 234, 207,
2479 234, 64, 209, 234, 64, 222, 221, 37, 40, 31,
2480 40, 31, 32, 24, 40, 32, 31, 34, 32, 31,
2481 31, 211, 64, 143, 160, 161, 236, 33, 33, 33,
2482 34, 35, 25, 174, 35, 232, 37, 172, 233, 233,
2483 33, 33, 222, 222, 31, 35, 33, 34, 245, 236,
2484 32, 33, 236, 33, 34, 33, 33, 19, 89, 90,
2485 109, 222, 255, 257, 258, 259, 260, 281, 270, 211,
2486 280, 193, 279, 17, 193, 268, 33, 34, 164, 164,
2487 34, 25, 35, 34, 217, 232, 215, 215, 222, 35,
2488 246, 35, 244, 246, 40, 143, 207, 33, 234, 64,
2489 234, 234, 109, 257, 17, 18, 32, 260, 263, 32,
2490 32, 255, 34, 273, 211, 33, 33, 162, 64, 143,
2491 25, 35, 32, 211, 218, 232, 31, 217, 222, 246,
2492 280, 168, 33, 33, 33, 268, 32, 222, 245, 64,
2493 270, 274, 33, 31, 97, 33, 35, 25, 232, 34,
2494 31, 64, 32, 33, 234, 33, 245, 34, 34, 261,
2495 33, 34, 18, 271, 272, 32, 34, 211, 232, 24,
2496 207, 32, 97, 32, 222, 211, 254, 255, 256, 262,
2497 281, 33, 270, 25, 25, 232, 33, 33, 207, 263,
2498 264, 265, 270, 33, 34, 255, 34, 33, 35, 33,
2499 33, 32, 33, 34, 254, 25, 246, 32, 234, 245,
2500 33, 270, 33, 207, 32, 33, 264, 234, 33, 33
2501 };
2502
2503 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
2504 static const unsigned short yyr1[] =
2505 {
2506 0, 140, 141, 141, 141, 141, 141, 141, 141, 141,
2507 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
2508 142, 142, 142, 142, 143, 143, 143, 143, 143, 143,
2509 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
2510 143, 143, 143, 143, 143, 143, 144, 144, 144, 144,
2511 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2512 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2513 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2514 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2515 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2516 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2517 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2518 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2519 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2520 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2521 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2522 144, 144, 144, 144, 145, 145, 145, 145, 145, 145,
2523 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2524 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2525 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2526 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2527 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2528 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2529 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2530 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2531 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2532 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2533 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2534 146, 146, 147, 147, 148, 148, 148, 148, 148, 148,
2535 148, 148, 148, 148, 148, 148, 148, 148, 149, 150,
2536 150, 151, 151, 151, 151, 151, 151, 151, 151, 152,
2537 152, 153, 153, 154, 154, 154, 155, 155, 156, 156,
2538 157, 157, 157, 158, 158, 159, 159, 159, 159, 160,
2539 160, 160, 160, 161, 161, 162, 162, 163, 163, 164,
2540 164, 164, 164, 164, 164, 164, 164, 164, 164, 164,
2541 165, 165, 166, 166, 166, 167, 167, 168, 168, 168,
2542 169, 169, 169, 170, 170, 171, 171, 172, 172, 173,
2543 173, 173, 173, 173, 174, 174, 174, 174, 174, 175,
2544 175, 175, 176, 176, 177, 177, 178, 178, 178, 179,
2545 179, 179, 179, 180, 180, 180, 181, 181, 182, 182,
2546 182, 183, 183, 183, 183, 184, 184, 184, 184, 184,
2547 184, 185, 185, 186, 186, 186, 186, 187, 187, 187,
2548 188, 188, 189, 189, 190, 190, 191, 192, 192, 193,
2549 193, 194, 195, 195, 195, 195, 195, 195, 196, 197,
2550 197, 198, 198, 199, 199, 200, 200, 201, 201, 202,
2551 202, 202, 202, 203, 203, 204, 205, 206, 207, 207,
2552 207, 208, 208, 209, 209, 209, 210, 210, 211, 211,
2553 212, 213, 214, 214, 215, 216, 216, 217, 217, 218,
2554 218, 218, 218, 219, 220, 220, 221, 221, 222, 222,
2555 222, 222, 222, 222, 223, 223, 223, 223, 223, 223,
2556 224, 224, 225, 225, 226, 226, 226, 227, 228, 229,
2557 230, 230, 231, 231, 232, 232, 232, 232, 233, 233,
2558 234, 234, 234, 235, 235, 235, 235, 236, 236, 237,
2559 237, 238, 238, 239, 239, 240, 240, 241, 241, 242,
2560 242, 242, 243, 243, 244, 244, 245, 246, 247, 248,
2561 248, 249, 249, 249, 249, 249, 250, 250, 250, 250,
2562 251, 251, 252, 252, 252, 252, 252, 253, 253, 254,
2563 254, 254, 255, 255, 255, 255, 255, 255, 256, 256,
2564 257, 258, 258, 259, 260, 260, 260, 260, 260, 260,
2565 260, 260, 260, 260, 261, 261, 262, 262, 263, 263,
2566 264, 264, 265, 265, 266, 267, 267, 268, 268, 268,
2567 269, 270, 270, 270, 271, 271, 272, 272, 272, 272,
2568 272, 272, 272, 272, 273, 273, 274, 274, 275, 276,
2569 276, 277, 278, 278, 279, 280, 280, 281
2570 };
2571
2572 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
2573 static const unsigned char yyr2[] =
2574 {
2575 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
2576 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2577 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2578 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2579 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2580 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2581 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2582 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2583 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2584 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2585 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2586 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2587 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2588 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2589 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2590 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2591 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2592 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2593 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2594 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2595 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2596 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2597 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2598 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2599 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2600 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2601 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2602 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2603 0, 1, 1, 2, 1, 1, 1, 1, 1, 1,
2604 1, 1, 1, 1, 1, 1, 1, 1, 3, 2,
2605 3, 2, 2, 1, 2, 2, 2, 1, 2, 1,
2606 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2607 1, 1, 1, 1, 1, 2, 6, 2, 2, 0,
2608 1, 1, 3, 1, 3, 0, 1, 1, 2, 3,
2609 2, 3, 5, 2, 4, 1, 1, 1, 1, 4,
2610 0, 1, 1, 1, 3, 6, 5, 1, 1, 1,
2611 1, 1, 1, 3, 4, 1, 2, 1, 2, 1,
2612 1, 2, 4, 4, 1, 1, 1, 3, 3, 1,
2613 2, 2, 1, 1, 1, 1, 2, 2, 2, 1,
2614 1, 1, 1, 1, 1, 2, 1, 1, 1, 1,
2615 2, 1, 1, 2, 2, 0, 1, 1, 2, 1,
2616 2, 0, 1, 0, 1, 1, 2, 0, 1, 2,
2617 3, 4, 0, 4, 1, 2, 5, 0, 2, 1,
2618 3, 3, 1, 2, 2, 3, 1, 2, 3, 1,
2619 2, 1, 1, 1, 2, 1, 1, 5, 7, 5,
2620 7, 13, 16, 5, 7, 6, 5, 1, 0, 1,
2621 1, 1, 3, 1, 1, 3, 1, 2, 3, 2,
2622 4, 4, 1, 1, 3, 4, 5, 0, 2, 2,
2623 4, 1, 3, 5, 1, 3, 1, 3, 1, 4,
2624 3, 3, 2, 5, 1, 1, 1, 1, 1, 1,
2625 4, 2, 1, 2, 2, 1, 1, 2, 2, 2,
2626 0, 1, 0, 1, 0, 2, 7, 9, 0, 7,
2627 0, 3, 3, 0, 1, 1, 1, 0, 1, 1,
2628 2, 1, 2, 1, 2, 1, 1, 4, 5, 7,
2629 8, 13, 1, 3, 2, 4, 2, 1, 1, 1,
2630 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2631 1, 2, 1, 1, 1, 1, 1, 3, 6, 1,
2632 2, 1, 1, 1, 1, 2, 1, 1, 3, 4,
2633 6, 8, 12, 5, 1, 1, 1, 1, 1, 1,
2634 1, 1, 1, 1, 0, 2, 1, 3, 1, 1,
2635 0, 1, 1, 3, 3, 6, 1, 0, 1, 1,
2636 3, 1, 1, 3, 5, 6, 1, 1, 1, 1,
2637 1, 1, 1, 1, 0, 2, 1, 3, 3, 1,
2638 1, 3, 1, 3, 4, 0, 1, 1
2639 };
2640
2641
2642 /* YYDPREC[RULE-NUM] -- Dynamic precedence of rule #RULE-NUM (0 if none). */
2643 static const unsigned char yydprec[] =
2644 {
2645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2647 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2648 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2649 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2650 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2654 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2656 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2657 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2658 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2659 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2662 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2667 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2668 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2670 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2671 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2673 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2674 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2676 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2677 0, 0, 0, 0, 0, 1, 2, 2, 2, 0,
2678 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2679 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2680 0, 0, 0, 0, 0, 0, 0, 2, 1, 0,
2681 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2682 0, 0, 0, 0, 2, 1, 0, 0, 0, 0,
2683 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2684 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2685 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2687 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2688 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2689 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2690 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
2691 1, 0, 0, 0, 2, 1, 0, 0, 0, 0,
2692 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2693 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2694 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2695 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2696 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2697 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2698 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2699 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2700 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2701 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2702 0, 0, 2, 1, 0, 0, 0, 0, 0, 0,
2703 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2704 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2705 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2706 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2707 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2708 0, 0, 0, 0, 0, 0, 0, 0
2709 };
2710
2711 /* YYMERGER[RULE-NUM] -- Index of merging function for rule #RULE-NUM. */
2712 static const unsigned char yymerger[] =
2713 {
2714 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2715 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2717 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2725 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2726 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2728 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2734 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2737 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2740 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2743 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2748 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2759 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2762 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2763 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2766 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2767 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2769 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2770 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2777 0, 0, 0, 0, 0, 0, 0, 0
2778 };
2779
2780 /* YYIMMEDIATE[RULE-NUM] -- True iff rule #RULE-NUM is not to be deferred, as
2781 in the case of predicates. */
2782 static const yybool yyimmediate[] =
2783 {
2784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2799 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2803 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2807 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2808 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2810 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2812 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2813 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2814 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2815 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2825 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2847 0, 0, 0, 0, 0, 0, 0, 0
2848 };
2849
2850 /* YYCONFLP[YYPACT[STATE-NUM]] -- Pointer into YYCONFL of start of
2851 list of conflicting reductions corresponding to action entry for
2852 state STATE-NUM in yytable. 0 means no conflicts. The list in
2853 yyconfl is terminated by a rule number of 0. */
2854 static const unsigned short yyconflp[] =
2855 {
2856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2862 0, 15, 0, 0, 0, 0, 0, 0, 0, 3714,
2863 0, 3716, 0, 0, 0, 0, 0, 0, 0, 0,
2864 0, 0, 0, 0, 0, 3700, 3702, 0, 0, 0,
2865 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2866 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2870 0, 0, 0, 0, 0, 0, 3696, 0, 0, 0,
2871 0, 0, 0, 0, 0, 17, 0, 0, 0, 0,
2872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2874 0, 0, 0, 0, 3706, 0, 3708, 3710, 0, 3718,
2875 0, 3720, 3722, 0, 0, 0, 0, 0, 0, 0,
2876 0, 0, 0, 0, 3698, 0, 0, 0, 0, 0,
2877 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2878 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2879 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2880 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2881 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2882 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2883 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2886 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2887 0, 0, 0, 0, 0, 0, 0, 0, 3704, 0,
2888 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2889 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2890 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2891 0, 0, 0, 0, 9, 0, 0, 0, 11, 0,
2892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2893 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2894 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2895 0, 0, 3712, 0, 0, 0, 0, 0, 0, 0,
2896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2897 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2898 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2899 0, 13, 0, 0, 0, 0, 0, 0, 0, 0,
2900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2902 0, 0, 0, 0, 0, 0, 0, 0, 0, 3724,
2903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2908 0, 0, 0, 0, 0, 0, 0, 0, 0, 167,
2909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2911 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2912 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2914 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2915 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
2916 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
2917 0, 5, 0, 0, 0, 0, 0, 0, 0, 0,
2918 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2921 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2922 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,
2923 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2924 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2926 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2930 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2931 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2932 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2935 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2936 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2938 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2940 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2941 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2942 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2944 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2945 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2946 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2947 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2949 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2950 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2951 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2952 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2953 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2954 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2955 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2956 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2957 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2958 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2959 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2960 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2961 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2962 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2963 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2964 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2965 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2966 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2967 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2968 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2969 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2970 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2971 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2972 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2973 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2975 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2976 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2977 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2978 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2979 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2980 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2981 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2982 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2983 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2984 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2985 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2986 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2987 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2988 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2989 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2990 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2991 0, 0, 0, 0, 0, 0, 19, 0, 0, 0,
2992 0, 0, 0, 0, 0, 21, 23, 25, 27, 0,
2993 29, 31, 0, 0, 0, 33, 0, 0, 0, 0,
2994 0, 0, 35, 37, 39, 41, 43, 45, 47, 49,
2995 51, 53, 55, 57, 0, 59, 61, 63, 65, 67,
2996 69, 71, 73, 75, 77, 79, 81, 83, 85, 87,
2997 89, 91, 93, 0, 0, 0, 0, 0, 95, 97,
2998 99, 101, 103, 105, 0, 0, 0, 0, 0, 0,
2999 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3000 107, 109, 0, 111, 113, 115, 117, 119, 121, 0,
3001 123, 0, 0, 125, 127, 129, 131, 133, 135, 137,
3002 139, 141, 143, 145, 147, 149, 151, 153, 155, 0,
3003 0, 0, 0, 0, 0, 0, 0, 0, 157, 0,
3004 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3005 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3006 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3007 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3008 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3009 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3010 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3011 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3012 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3013 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3014 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3015 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3016 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3017 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3018 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3019 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3020 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3021 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3022 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3023 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3024 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3025 0, 0, 0, 0, 0, 0, 169, 0, 0, 0,
3026 0, 0, 0, 0, 0, 171, 173, 175, 177, 0,
3027 179, 181, 0, 0, 0, 183, 0, 0, 185, 187,
3028 189, 191, 0, 0, 0, 193, 0, 0, 0, 0,
3029 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3030 195, 197, 0, 0, 0, 0, 0, 0, 0, 0,
3031 0, 0, 0, 199, 201, 0, 0, 0, 0, 203,
3032 205, 207, 209, 211, 0, 0, 0, 0, 0, 0,
3033 0, 213, 0, 0, 0, 0, 0, 0, 0, 0,
3034 0, 215, 0, 217, 219, 221, 223, 225, 227, 0,
3035 229, 0, 0, 231, 233, 235, 237, 239, 241, 243,
3036 245, 247, 249, 251, 253, 255, 257, 259, 261, 263,
3037 0, 0, 0, 0, 0, 0, 0, 0, 265, 267,
3038 269, 271, 0, 273, 275, 0, 0, 0, 277, 0,
3039 0, 279, 281, 283, 285, 0, 0, 0, 287, 0,
3040 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3041 0, 0, 0, 289, 291, 0, 0, 0, 159, 0,
3042 0, 0, 0, 161, 0, 0, 293, 295, 0, 0,
3043 163, 0, 297, 299, 301, 303, 305, 0, 0, 0,
3044 0, 0, 0, 0, 307, 0, 0, 0, 0, 0,
3045 0, 0, 0, 0, 309, 0, 311, 313, 315, 317,
3046 319, 321, 0, 323, 0, 0, 325, 327, 329, 331,
3047 333, 335, 337, 339, 341, 343, 345, 347, 349, 351,
3048 353, 355, 357, 0, 0, 0, 0, 0, 165, 0,
3049 0, 359, 361, 363, 365, 0, 367, 369, 0, 0,
3050 0, 371, 0, 0, 373, 375, 377, 379, 0, 0,
3051 0, 381, 0, 0, 0, 0, 0, 0, 0, 0,
3052 0, 0, 0, 0, 0, 0, 383, 385, 0, 0,
3053 0, 0, 0, 0, 0, 0, 0, 0, 0, 387,
3054 389, 0, 0, 0, 0, 391, 393, 395, 397, 399,
3055 0, 0, 0, 0, 0, 0, 0, 401, 0, 0,
3056 0, 0, 0, 0, 0, 0, 0, 403, 0, 405,
3057 407, 409, 411, 413, 415, 0, 417, 0, 0, 419,
3058 421, 423, 425, 427, 429, 431, 433, 435, 437, 439,
3059 441, 443, 445, 447, 449, 451, 0, 0, 0, 0,
3060 0, 0, 0, 0, 453, 455, 457, 459, 0, 461,
3061 463, 0, 0, 0, 465, 0, 0, 467, 469, 471,
3062 473, 0, 0, 0, 475, 0, 0, 0, 0, 0,
3063 0, 0, 0, 0, 0, 0, 0, 0, 0, 477,
3064 479, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3065 0, 0, 481, 483, 0, 0, 0, 0, 485, 487,
3066 489, 491, 493, 0, 0, 0, 0, 0, 0, 0,
3067 495, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3068 497, 0, 499, 501, 503, 505, 507, 509, 0, 511,
3069 0, 0, 513, 515, 517, 519, 521, 523, 525, 527,
3070 529, 531, 533, 535, 537, 539, 541, 543, 545, 0,
3071 0, 0, 0, 0, 0, 0, 0, 547, 549, 551,
3072 553, 0, 555, 557, 0, 0, 0, 559, 0, 0,
3073 561, 563, 565, 567, 0, 0, 0, 569, 0, 0,
3074 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3075 0, 0, 571, 573, 0, 0, 0, 0, 0, 0,
3076 0, 0, 0, 0, 0, 575, 577, 0, 0, 0,
3077 0, 579, 581, 583, 585, 587, 0, 0, 0, 0,
3078 0, 0, 0, 589, 0, 0, 0, 0, 0, 0,
3079 0, 0, 0, 591, 0, 593, 595, 597, 599, 601,
3080 603, 0, 605, 0, 0, 607, 609, 611, 613, 615,
3081 617, 619, 621, 623, 625, 627, 629, 631, 633, 635,
3082 637, 639, 0, 0, 0, 0, 0, 0, 0, 0,
3083 641, 643, 645, 647, 0, 649, 651, 0, 0, 0,
3084 653, 0, 0, 655, 657, 659, 661, 0, 0, 0,
3085 663, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3086 0, 0, 0, 0, 0, 665, 667, 0, 0, 0,
3087 0, 0, 0, 0, 0, 0, 0, 0, 669, 671,
3088 0, 0, 0, 0, 673, 675, 677, 679, 681, 0,
3089 0, 0, 0, 0, 0, 0, 683, 0, 0, 0,
3090 0, 0, 0, 0, 0, 0, 685, 0, 687, 689,
3091 691, 693, 695, 697, 0, 699, 0, 0, 701, 703,
3092 705, 707, 709, 711, 713, 715, 717, 719, 721, 723,
3093 725, 727, 729, 731, 733, 0, 0, 0, 0, 0,
3094 0, 0, 0, 736, 739, 742, 745, 0, 748, 751,
3095 0, 0, 0, 754, 0, 0, 757, 760, 763, 766,
3096 0, 0, 0, 769, 0, 0, 0, 0, 0, 0,
3097 0, 0, 0, 0, 0, 0, 0, 0, 772, 775,
3098 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3099 0, 778, 781, 0, 0, 0, 0, 784, 787, 790,
3100 793, 796, 0, 0, 0, 0, 0, 0, 0, 799,
3101 0, 0, 0, 0, 0, 0, 0, 0, 0, 802,
3102 0, 805, 808, 811, 814, 817, 820, 0, 823, 0,
3103 0, 826, 829, 832, 835, 838, 841, 844, 847, 850,
3104 853, 856, 859, 862, 865, 868, 871, 876, 0, 874,
3105 0, 0, 0, 0, 0, 0, 878, 880, 882, 884,
3106 0, 886, 888, 0, 0, 0, 890, 0, 0, 892,
3107 894, 896, 898, 0, 0, 0, 900, 0, 0, 0,
3108 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3109 0, 902, 904, 0, 0, 0, 0, 0, 0, 0,
3110 0, 0, 0, 0, 906, 908, 0, 0, 0, 0,
3111 910, 912, 914, 916, 918, 0, 0, 0, 0, 0,
3112 0, 0, 920, 0, 0, 0, 0, 0, 0, 0,
3113 0, 0, 922, 0, 924, 926, 928, 930, 932, 934,
3114 0, 936, 0, 0, 938, 940, 942, 944, 946, 948,
3115 950, 952, 954, 956, 958, 960, 962, 964, 966, 968,
3116 970, 0, 0, 0, 0, 0, 0, 0, 0, 972,
3117 974, 976, 978, 0, 980, 982, 0, 0, 0, 984,
3118 0, 0, 986, 988, 990, 992, 0, 0, 0, 994,
3119 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3120 0, 0, 0, 0, 996, 998, 0, 0, 0, 0,
3121 0, 0, 0, 0, 0, 0, 0, 1000, 1002, 0,
3122 0, 0, 0, 1004, 1006, 1008, 1010, 1012, 0, 0,
3123 0, 0, 0, 0, 0, 1014, 0, 0, 0, 0,
3124 0, 0, 0, 0, 0, 1016, 0, 1018, 1020, 1022,
3125 1024, 1026, 1028, 0, 1030, 0, 0, 1032, 1034, 1036,
3126 1038, 1040, 1042, 1044, 1046, 1048, 1050, 1052, 1054, 1056,
3127 1058, 1060, 1062, 1064, 0, 0, 0, 0, 0, 0,
3128 0, 0, 1066, 1068, 1070, 1072, 0, 1074, 1076, 0,
3129 0, 0, 1078, 0, 0, 1080, 1082, 1084, 1086, 0,
3130 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0,
3131 0, 0, 0, 0, 0, 0, 0, 1090, 1092, 0,
3132 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3133 1094, 1096, 0, 0, 0, 0, 1098, 1100, 1102, 1104,
3134 1106, 0, 0, 0, 0, 0, 0, 0, 1108, 0,
3135 0, 0, 0, 0, 0, 0, 0, 0, 1110, 0,
3136 1112, 1114, 1116, 1118, 1120, 1122, 0, 1124, 0, 0,
3137 1126, 1128, 1130, 1132, 1134, 1136, 1138, 1140, 1142, 1144,
3138 1146, 1148, 1150, 1152, 1154, 1156, 1158, 0, 0, 0,
3139 0, 0, 0, 0, 0, 1160, 1162, 1164, 1166, 0,
3140 1168, 1170, 0, 0, 0, 1172, 0, 0, 1174, 1176,
3141 1178, 1180, 0, 0, 0, 1182, 0, 0, 0, 0,
3142 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3143 1184, 1186, 0, 0, 0, 0, 0, 0, 0, 0,
3144 0, 0, 0, 1188, 1190, 0, 0, 0, 0, 1192,
3145 1194, 1196, 1198, 1200, 0, 0, 0, 0, 0, 0,
3146 0, 1202, 0, 0, 0, 0, 0, 0, 0, 0,
3147 0, 1204, 0, 1206, 1208, 1210, 1212, 1214, 1216, 0,
3148 1218, 0, 0, 1220, 1222, 1224, 1226, 1228, 1230, 1232,
3149 1234, 1236, 1238, 1240, 1242, 1244, 1246, 1248, 1250, 1252,
3150 0, 0, 0, 0, 0, 0, 0, 0, 1254, 1256,
3151 1258, 1260, 0, 1262, 1264, 0, 0, 0, 1266, 0,
3152 0, 1268, 1270, 1272, 1274, 0, 0, 0, 1276, 0,
3153 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3154 0, 0, 0, 1278, 1280, 0, 0, 0, 0, 0,
3155 0, 0, 0, 0, 0, 0, 1282, 1284, 0, 0,
3156 0, 0, 1286, 1288, 1290, 1292, 1294, 0, 0, 0,
3157 0, 0, 0, 0, 1296, 0, 0, 0, 0, 0,
3158 0, 0, 0, 0, 1298, 0, 1300, 1302, 1304, 1306,
3159 1308, 1310, 0, 1312, 0, 0, 1314, 1316, 1318, 1320,
3160 1322, 1324, 1326, 1328, 1330, 1332, 1334, 1336, 1338, 1340,
3161 1342, 1344, 1346, 0, 0, 0, 0, 0, 0, 0,
3162 0, 1348, 1350, 1352, 1354, 0, 1356, 1358, 0, 0,
3163 0, 1360, 0, 0, 1362, 1364, 1366, 1368, 0, 0,
3164 0, 1370, 0, 0, 0, 0, 0, 0, 0, 0,
3165 0, 0, 0, 0, 0, 0, 1372, 1374, 0, 0,
3166 0, 0, 0, 0, 0, 0, 0, 0, 0, 1376,
3167 1378, 0, 0, 0, 0, 1380, 1382, 1384, 1386, 1388,
3168 0, 0, 0, 0, 0, 0, 0, 1390, 0, 0,
3169 0, 0, 0, 0, 0, 0, 0, 1392, 0, 1394,
3170 1396, 1398, 1400, 1402, 1404, 0, 1406, 0, 0, 1408,
3171 1410, 1412, 1414, 1416, 1418, 1420, 1422, 1424, 1426, 1428,
3172 1430, 1432, 1434, 1436, 1438, 1440, 0, 0, 0, 0,
3173 0, 0, 0, 0, 1442, 1444, 1446, 1448, 0, 1450,
3174 1452, 0, 0, 0, 1454, 0, 0, 1456, 1458, 1460,
3175 1462, 0, 0, 0, 1464, 0, 0, 0, 0, 0,
3176 0, 0, 0, 0, 0, 0, 0, 0, 0, 1466,
3177 1468, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3178 0, 0, 1470, 1472, 0, 0, 0, 0, 1474, 1476,
3179 1478, 1480, 1482, 0, 0, 0, 0, 0, 0, 0,
3180 1484, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3181 1486, 0, 1488, 1490, 1492, 1494, 1496, 1498, 0, 1500,
3182 0, 0, 1502, 1504, 1506, 1508, 1510, 1512, 1514, 1516,
3183 1518, 1520, 1522, 1524, 1526, 1528, 1530, 1532, 1534, 0,
3184 0, 0, 0, 0, 0, 0, 0, 1536, 1538, 1540,
3185 1542, 0, 1544, 1546, 0, 0, 0, 1548, 0, 0,
3186 1550, 1552, 1554, 1556, 0, 0, 0, 1558, 0, 0,
3187 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3188 0, 0, 1560, 1562, 0, 0, 0, 0, 0, 0,
3189 0, 0, 0, 0, 0, 1564, 1566, 0, 0, 0,
3190 0, 1568, 1570, 1572, 1574, 1576, 0, 0, 0, 0,
3191 0, 0, 0, 1578, 0, 0, 0, 0, 0, 0,
3192 0, 0, 0, 1580, 0, 1582, 1584, 1586, 1588, 1590,
3193 1592, 0, 1594, 0, 0, 1596, 1598, 1600, 1602, 1604,
3194 1606, 1608, 1610, 1612, 1614, 1616, 1618, 1620, 1622, 1624,
3195 1626, 1628, 0, 0, 0, 0, 0, 0, 0, 0,
3196 1630, 1632, 1634, 1636, 0, 1638, 1640, 0, 0, 0,
3197 1642, 0, 0, 1644, 1646, 1648, 1650, 0, 0, 0,
3198 1652, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3199 0, 0, 0, 0, 0, 1654, 1656, 0, 0, 0,
3200 0, 0, 0, 0, 0, 0, 0, 0, 1658, 1660,
3201 0, 0, 0, 0, 1662, 1664, 1666, 1668, 1670, 0,
3202 0, 0, 0, 0, 0, 0, 1672, 0, 0, 0,
3203 0, 0, 0, 0, 0, 0, 1674, 0, 1676, 1678,
3204 1680, 1682, 1684, 1686, 0, 1688, 0, 0, 1690, 1692,
3205 1694, 1696, 1698, 1700, 1702, 1704, 1706, 1708, 1710, 1712,
3206 1714, 1716, 1718, 1720, 1722, 0, 0, 0, 0, 0,
3207 0, 0, 0, 1724, 1726, 1728, 1730, 0, 1732, 1734,
3208 0, 0, 0, 1736, 0, 0, 1738, 1740, 1742, 1744,
3209 0, 0, 0, 1746, 0, 0, 0, 0, 0, 0,
3210 0, 0, 0, 0, 0, 0, 0, 0, 1748, 1750,
3211 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3212 0, 1752, 1754, 0, 0, 0, 0, 1756, 1758, 1760,
3213 1762, 1764, 0, 0, 0, 0, 0, 0, 0, 1766,
3214 0, 0, 0, 0, 0, 0, 0, 0, 0, 1768,
3215 0, 1770, 1772, 1774, 1776, 1778, 1780, 0, 1782, 0,
3216 0, 1784, 1786, 1788, 1790, 1792, 1794, 1796, 1798, 1800,
3217 1802, 1804, 1806, 1808, 1810, 1812, 1814, 1816, 0, 0,
3218 0, 0, 0, 0, 0, 0, 1818, 1820, 1822, 1824,
3219 0, 1826, 1828, 0, 0, 0, 1830, 0, 0, 1832,
3220 1834, 1836, 1838, 0, 0, 0, 1840, 0, 0, 0,
3221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3222 0, 1842, 1844, 0, 0, 0, 0, 0, 0, 0,
3223 0, 0, 0, 0, 1846, 1848, 0, 0, 0, 0,
3224 1850, 1852, 1854, 1856, 1858, 0, 0, 0, 0, 0,
3225 0, 0, 1860, 0, 0, 0, 0, 0, 0, 0,
3226 0, 0, 1862, 0, 1864, 1866, 1868, 1870, 1872, 1874,
3227 0, 1876, 0, 0, 1878, 1880, 1882, 1884, 1886, 1888,
3228 1890, 1892, 1894, 1896, 1898, 1900, 1902, 1904, 1906, 1908,
3229 1910, 0, 0, 0, 0, 0, 0, 0, 0, 1912,
3230 1914, 1916, 1918, 0, 1920, 1922, 0, 0, 0, 1924,
3231 0, 0, 1926, 1928, 1930, 1932, 0, 0, 0, 1934,
3232 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3233 0, 0, 0, 0, 1936, 1938, 0, 0, 0, 0,
3234 0, 0, 0, 0, 0, 0, 0, 1940, 1942, 0,
3235 0, 0, 0, 1944, 1946, 1948, 1950, 1952, 0, 0,
3236 0, 0, 0, 0, 0, 1954, 0, 0, 0, 0,
3237 0, 0, 0, 0, 0, 1956, 0, 1958, 1960, 1962,
3238 1964, 1966, 1968, 0, 1970, 0, 0, 1972, 1974, 1976,
3239 1978, 1980, 1982, 1984, 1986, 1988, 1990, 1992, 1994, 1996,
3240 1998, 2000, 2002, 2004, 0, 0, 0, 0, 0, 0,
3241 0, 0, 2006, 2008, 2010, 2012, 0, 2014, 2016, 0,
3242 0, 0, 2018, 0, 0, 2020, 2022, 2024, 2026, 0,
3243 0, 0, 2028, 0, 0, 0, 0, 0, 0, 0,
3244 0, 0, 0, 0, 0, 0, 0, 2030, 2032, 0,
3245 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3246 2034, 2036, 0, 0, 0, 0, 2038, 2040, 2042, 2044,
3247 2046, 0, 0, 0, 0, 0, 0, 0, 2048, 0,
3248 0, 0, 0, 0, 0, 0, 0, 0, 2050, 0,
3249 2052, 2054, 2056, 2058, 2060, 2062, 0, 2064, 0, 0,
3250 2066, 2068, 2070, 2072, 2074, 2076, 2078, 2080, 2082, 2084,
3251 2086, 2088, 2090, 2092, 2094, 2096, 2098, 0, 0, 0,
3252 0, 0, 0, 0, 0, 2100, 2102, 2104, 2106, 0,
3253 2108, 2110, 0, 0, 0, 2112, 0, 0, 2114, 2116,
3254 2118, 2120, 0, 0, 0, 2122, 0, 0, 0, 0,
3255 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3256 2124, 2126, 0, 0, 0, 0, 0, 0, 0, 0,
3257 0, 0, 0, 2128, 2130, 0, 0, 0, 0, 2132,
3258 2134, 2136, 2138, 2140, 0, 0, 0, 0, 0, 0,
3259 0, 2142, 0, 0, 0, 0, 0, 0, 0, 0,
3260 0, 2144, 0, 2146, 2148, 2150, 2152, 2154, 2156, 0,
3261 2158, 0, 0, 2160, 2162, 2164, 2166, 2168, 2170, 2172,
3262 2174, 2176, 2178, 2180, 2182, 2184, 2186, 2188, 2190, 2192,
3263 0, 0, 0, 0, 0, 0, 0, 0, 2194, 2196,
3264 2198, 2200, 0, 2202, 2204, 0, 0, 0, 2206, 0,
3265 0, 2208, 2210, 2212, 2214, 0, 0, 0, 2216, 0,
3266 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3267 0, 0, 0, 2218, 2220, 0, 0, 0, 0, 0,
3268 0, 0, 0, 0, 0, 0, 2222, 2224, 0, 0,
3269 0, 0, 2226, 2228, 2230, 2232, 2234, 0, 0, 0,
3270 0, 0, 0, 0, 2236, 0, 0, 0, 0, 0,
3271 0, 0, 0, 0, 2238, 0, 2240, 2242, 2244, 2246,
3272 2248, 2250, 0, 2252, 0, 0, 2254, 2256, 2258, 2260,
3273 2262, 2264, 2266, 2268, 2270, 2272, 2274, 2276, 2278, 2280,
3274 2282, 2284, 2286, 0, 0, 0, 0, 0, 0, 0,
3275 0, 2288, 2290, 2292, 2294, 0, 2296, 2298, 0, 0,
3276 0, 2300, 0, 0, 2302, 2304, 2306, 2308, 0, 0,
3277 0, 2310, 0, 0, 0, 0, 0, 0, 0, 0,
3278 0, 0, 0, 0, 0, 0, 2312, 2314, 0, 0,
3279 0, 0, 0, 0, 0, 0, 0, 0, 0, 2316,
3280 2318, 0, 0, 0, 0, 2320, 2322, 2324, 2326, 2328,
3281 0, 0, 0, 0, 0, 0, 0, 2330, 0, 0,
3282 0, 0, 0, 0, 0, 0, 0, 2332, 0, 2334,
3283 2336, 2338, 2340, 2342, 2344, 0, 2346, 0, 0, 2348,
3284 2350, 2352, 2354, 2356, 2358, 2360, 2362, 2364, 2366, 2368,
3285 2370, 2372, 2374, 2376, 2378, 2380, 0, 0, 0, 0,
3286 0, 0, 0, 0, 2382, 2384, 2386, 2388, 0, 2390,
3287 2392, 0, 0, 0, 2394, 0, 0, 2396, 2398, 2400,
3288 2402, 0, 0, 0, 2404, 0, 0, 0, 0, 0,
3289 0, 0, 0, 0, 0, 0, 0, 0, 0, 2406,
3290 2408, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3291 0, 0, 2410, 2412, 0, 0, 0, 0, 2414, 2416,
3292 2418, 2420, 2422, 0, 0, 0, 0, 0, 0, 0,
3293 2424, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3294 2426, 0, 2428, 2430, 2432, 2434, 2436, 2438, 0, 2440,
3295 0, 0, 2442, 2444, 2446, 2448, 2450, 2452, 2454, 2456,
3296 2458, 2460, 2462, 2464, 2466, 2468, 2470, 2472, 2474, 0,
3297 0, 0, 0, 0, 0, 0, 0, 2476, 2478, 2480,
3298 2482, 0, 2484, 2486, 0, 0, 0, 2488, 0, 0,
3299 2490, 2492, 2494, 2496, 0, 0, 0, 2498, 0, 0,
3300 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3301 0, 0, 2500, 2502, 0, 0, 0, 0, 0, 0,
3302 0, 0, 0, 0, 0, 2504, 2506, 0, 0, 0,
3303 0, 2508, 2510, 2512, 2514, 2516, 0, 0, 0, 0,
3304 0, 0, 0, 2518, 0, 0, 0, 0, 0, 0,
3305 0, 0, 0, 2520, 0, 2522, 2524, 2526, 2528, 2530,
3306 2532, 0, 2534, 0, 0, 2536, 2538, 2540, 2542, 2544,
3307 2546, 2548, 2550, 2552, 2554, 2556, 2558, 2560, 2562, 2564,
3308 2566, 2568, 0, 0, 0, 0, 0, 0, 0, 0,
3309 2570, 2572, 2574, 2576, 0, 2578, 2580, 0, 0, 0,
3310 2582, 0, 0, 2584, 2586, 2588, 2590, 0, 0, 0,
3311 2592, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3312 0, 0, 0, 0, 0, 2594, 2596, 0, 0, 0,
3313 0, 0, 0, 0, 0, 0, 0, 0, 2598, 2600,
3314 0, 0, 0, 0, 2602, 2604, 2606, 2608, 2610, 0,
3315 0, 0, 0, 0, 0, 0, 2612, 0, 0, 0,
3316 0, 0, 0, 0, 0, 0, 2614, 0, 2616, 2618,
3317 2620, 2622, 2624, 2626, 0, 2628, 0, 0, 2630, 2632,
3318 2634, 2636, 2638, 2640, 2642, 2644, 2646, 2648, 2650, 2652,
3319 2654, 2656, 2658, 2660, 2662, 0, 0, 0, 0, 0,
3320 0, 0, 0, 2664, 2666, 2668, 2670, 0, 2672, 2674,
3321 0, 0, 0, 2676, 0, 0, 2678, 2680, 2682, 2684,
3322 0, 0, 0, 2686, 0, 0, 0, 0, 0, 0,
3323 0, 0, 0, 0, 0, 0, 0, 0, 2688, 2690,
3324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3325 0, 2692, 2694, 0, 0, 0, 0, 2696, 2698, 2700,
3326 2702, 2704, 0, 0, 0, 0, 0, 0, 0, 2706,
3327 0, 0, 0, 0, 0, 0, 0, 0, 0, 2708,
3328 0, 2710, 2712, 2714, 2716, 2718, 2720, 0, 2722, 0,
3329 0, 2724, 2726, 2728, 2730, 2732, 2734, 2736, 2738, 2740,
3330 2742, 2744, 2746, 2748, 2750, 2752, 2754, 2756, 0, 0,
3331 0, 0, 0, 0, 0, 0, 2758, 2760, 2762, 2764,
3332 0, 2766, 2768, 0, 0, 0, 2770, 0, 0, 2772,
3333 2774, 2776, 2778, 0, 0, 0, 2780, 0, 0, 0,
3334 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3335 0, 2782, 2784, 0, 0, 0, 0, 0, 0, 0,
3336 0, 0, 0, 0, 2786, 2788, 0, 0, 0, 0,
3337 2790, 2792, 2794, 2796, 2798, 0, 0, 0, 0, 0,
3338 0, 0, 2800, 0, 0, 0, 0, 0, 0, 0,
3339 0, 0, 2802, 0, 2804, 2806, 2808, 2810, 2812, 2814,
3340 0, 2816, 0, 0, 2818, 2820, 2822, 2824, 2826, 2828,
3341 2830, 2832, 2834, 2836, 2838, 2840, 2842, 2844, 2846, 2848,
3342 2850, 0, 0, 0, 0, 0, 0, 0, 0, 2852,
3343 2854, 2856, 2858, 0, 2860, 2862, 0, 0, 0, 2864,
3344 0, 0, 2866, 2868, 2870, 2872, 0, 0, 0, 2874,
3345 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3346 0, 0, 0, 0, 2876, 2878, 0, 0, 0, 0,
3347 0, 0, 0, 0, 0, 0, 0, 2880, 2882, 0,
3348 0, 0, 0, 2884, 2886, 2888, 2890, 2892, 0, 0,
3349 0, 0, 0, 0, 0, 2894, 0, 0, 0, 0,
3350 0, 0, 0, 0, 0, 2896, 0, 2898, 2900, 2902,
3351 2904, 2906, 2908, 0, 2910, 0, 0, 2912, 2914, 2916,
3352 2918, 2920, 2922, 2924, 2926, 2928, 2930, 2932, 2934, 2936,
3353 2938, 2940, 2942, 2944, 0, 0, 0, 0, 0, 0,
3354 0, 0, 2946, 2948, 2950, 2952, 0, 2954, 2956, 0,
3355 0, 0, 2958, 0, 0, 2960, 2962, 2964, 2966, 0,
3356 0, 0, 2968, 0, 0, 0, 0, 0, 0, 0,
3357 0, 0, 0, 0, 0, 0, 0, 2970, 2972, 0,
3358 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3359 2974, 2976, 0, 0, 0, 0, 2978, 2980, 2982, 2984,
3360 2986, 0, 0, 0, 0, 0, 0, 0, 2988, 0,
3361 0, 0, 0, 0, 0, 0, 0, 0, 2990, 0,
3362 2992, 2994, 2996, 2998, 3000, 3002, 0, 3004, 0, 0,
3363 3006, 3008, 3010, 3012, 3014, 3016, 3018, 3020, 3022, 3024,
3364 3026, 3028, 3030, 3032, 3034, 3036, 3038, 0, 0, 0,
3365 0, 0, 0, 0, 0, 3040, 3042, 3044, 3046, 0,
3366 3048, 3050, 0, 0, 0, 3052, 0, 0, 3054, 3056,
3367 3058, 3060, 0, 0, 0, 3062, 0, 0, 0, 0,
3368 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3369 3064, 3066, 0, 0, 0, 0, 0, 0, 0, 0,
3370 0, 0, 0, 3068, 3070, 0, 0, 0, 0, 3072,
3371 3074, 3076, 3078, 3080, 0, 0, 0, 0, 0, 0,
3372 0, 3082, 0, 0, 0, 0, 0, 0, 0, 0,
3373 0, 3084, 0, 3086, 3088, 3090, 3092, 3094, 3096, 0,
3374 3098, 0, 0, 3100, 3102, 3104, 3106, 3108, 3110, 3112,
3375 3114, 3116, 3118, 3120, 3122, 3124, 3126, 3128, 3130, 3132,
3376 0, 0, 0, 0, 0, 0, 0, 0, 3134, 3136,
3377 3138, 3140, 0, 3142, 3144, 0, 0, 0, 3146, 0,
3378 0, 3148, 3150, 3152, 3154, 0, 0, 0, 3156, 0,
3379 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3380 0, 0, 0, 3158, 3160, 0, 0, 0, 0, 0,
3381 0, 0, 0, 0, 0, 0, 3162, 3164, 0, 0,
3382 0, 0, 3166, 3168, 3170, 3172, 3174, 0, 0, 0,
3383 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0,
3384 0, 0, 0, 0, 3178, 0, 3180, 3182, 3184, 3186,
3385 3188, 3190, 0, 3192, 0, 0, 3194, 3196, 3198, 3200,
3386 3202, 3204, 3206, 3208, 3210, 3212, 3214, 3216, 3218, 3220,
3387 3222, 3224, 3226, 0, 0, 0, 0, 0, 0, 0,
3388 0, 3228, 3230, 3232, 3234, 0, 3236, 3238, 0, 0,
3389 0, 3240, 0, 0, 3242, 3244, 3246, 3248, 0, 0,
3390 0, 3250, 0, 0, 0, 0, 0, 0, 0, 0,
3391 0, 0, 0, 0, 0, 0, 3252, 3254, 0, 0,
3392 0, 0, 0, 0, 0, 0, 0, 0, 0, 3256,
3393 3258, 0, 0, 0, 0, 3260, 3262, 3264, 3266, 3268,
3394 0, 0, 0, 0, 0, 0, 0, 3270, 0, 0,
3395 0, 0, 0, 0, 0, 0, 0, 3272, 0, 3274,
3396 3276, 3278, 3280, 3282, 3284, 0, 3286, 0, 0, 3288,
3397 3290, 3292, 3294, 3296, 3298, 3300, 3302, 3304, 3306, 3308,
3398 3310, 3312, 3314, 3316, 3318, 3320, 0, 0, 0, 0,
3399 0, 0, 0, 0, 3322, 3324, 3326, 3328, 0, 3330,
3400 3332, 0, 0, 0, 3334, 0, 0, 3336, 3338, 3340,
3401 3342, 0, 0, 0, 3344, 0, 0, 0, 0, 0,
3402 0, 0, 0, 0, 0, 0, 0, 0, 0, 3346,
3403 3348, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3404 0, 0, 3350, 3352, 0, 0, 0, 0, 3354, 3356,
3405 3358, 3360, 3362, 0, 0, 0, 0, 0, 0, 0,
3406 3364, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3407 3366, 0, 3368, 3370, 3372, 3374, 3376, 3378, 0, 3380,
3408 0, 0, 3382, 3384, 3386, 3388, 3390, 3392, 3394, 3396,
3409 3398, 3400, 3402, 3404, 3406, 3408, 3410, 3412, 3414, 0,
3410 0, 0, 0, 0, 0, 0, 0, 3416, 3418, 3420,
3411 3422, 0, 3424, 3426, 0, 0, 0, 3428, 0, 0,
3412 3430, 3432, 3434, 3436, 0, 0, 0, 3438, 0, 0,
3413 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3414 0, 0, 3440, 3442, 0, 0, 0, 0, 0, 0,
3415 0, 0, 0, 0, 0, 3444, 3446, 0, 0, 0,
3416 0, 3448, 3450, 3452, 3454, 3456, 0, 0, 0, 0,
3417 0, 0, 0, 3458, 0, 0, 0, 0, 0, 0,
3418 0, 0, 0, 3460, 0, 3462, 3464, 3466, 3468, 3470,
3419 3472, 0, 3474, 0, 0, 3476, 3478, 3480, 3482, 3484,
3420 3486, 3488, 3490, 3492, 3494, 3496, 3498, 3500, 3502, 3504,
3421 3506, 3508, 0, 0, 0, 0, 0, 0, 0, 0,
3422 3510, 3512, 3514, 3516, 0, 3518, 3520, 0, 0, 0,
3423 3522, 0, 0, 3524, 3526, 3528, 3530, 0, 0, 0,
3424 3532, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3425 0, 0, 0, 0, 0, 3534, 3536, 0, 0, 0,
3426 0, 0, 0, 0, 0, 0, 0, 0, 3538, 3540,
3427 0, 0, 0, 0, 3542, 3544, 3546, 3548, 3550, 0,
3428 0, 0, 0, 0, 0, 0, 3552, 0, 0, 0,
3429 0, 0, 0, 0, 0, 0, 3554, 0, 3556, 3558,
3430 3560, 3562, 3564, 3566, 0, 3568, 0, 0, 3570, 3572,
3431 3574, 3576, 3578, 3580, 3582, 3584, 3586, 3588, 3590, 3592,
3432 3594, 3596, 3598, 3600, 3602, 0, 0, 0, 0, 0,
3433 0, 0, 0, 3604, 3606, 3608, 3610, 0, 3612, 3614,
3434 0, 0, 0, 3616, 0, 0, 3618, 3620, 3622, 3624,
3435 0, 0, 0, 3626, 0, 0, 0, 0, 0, 0,
3436 0, 0, 0, 0, 0, 0, 0, 0, 3628, 3630,
3437 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3438 0, 3632, 3634, 0, 0, 0, 0, 3636, 3638, 3640,
3439 3642, 3644, 0, 0, 0, 0, 0, 0, 0, 3646,
3440 0, 0, 0, 0, 0, 0, 0, 0, 0, 3648,
3441 0, 3650, 3652, 3654, 3656, 3658, 3660, 0, 3662, 0,
3442 0, 3664, 3666, 3668, 3670, 3672, 3674, 3676, 3678, 3680,
3443 3682, 3684, 3686, 3688, 3690, 3692, 3694, 0, 0, 0,
3444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3445 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3454 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3457 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3459 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3466 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3467 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3470 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3471 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3472 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3473 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3506 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3513 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3524 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3527 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3530 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3531 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3534 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3541 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3546 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3548 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3550 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3551 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3552 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3553 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3554 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3555 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3559 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3560 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3563 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3565 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3567 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3570 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3571 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3572 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3574 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3575 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3576 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3577 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3578 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3579 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3582 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3583 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3584 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3585 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3586 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3587 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3588 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3589 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3590 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3593 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3595 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3596 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3598 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3600 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3601 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3602 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3603 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3604 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3605 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3606 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3607 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3608 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3609 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3611 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3612 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3613 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3614 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3615 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3616 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3617 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3618 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3619 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3620 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3621 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3622 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3623 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3624 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3625 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3626 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3627 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3632 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3633 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3634 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3635 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3636 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3637 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3638 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3639 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3640 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3641 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3642 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3643 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3647 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3648 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3649 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3650 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3654 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3656 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3657 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3658 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3659 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3662 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3667 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3668 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3670 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3671 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3673 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3674 0, 0, 0, 0, 0, 0, 0, 0, 0, 3726,
3675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3676 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3677 0, 0, 0, 3728
3678 };
3679
3680 /* YYCONFL[I] -- lists of conflicting rule numbers, each terminated by
3681 0, pointed into by YYCONFLP. */
3682 static const short yyconfl[] =
3683 {
3684 0, 391, 0, 391, 0, 391, 0, 391, 0, 382,
3685 0, 382, 0, 405, 0, 466, 0, 466, 0, 622,
3686 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3687 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3688 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3689 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3690 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3691 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3692 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3693 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3694 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3695 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3696 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3697 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3698 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3699 0, 622, 0, 622, 0, 622, 0, 622, 0, 391,
3700 0, 391, 0, 391, 0, 391, 0, 405, 0, 46,
3701 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3702 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3703 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3704 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3705 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3706 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3707 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3708 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3709 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3710 0, 46, 0, 55, 0, 55, 0, 55, 0, 55,
3711 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3712 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3713 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3714 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3715 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3716 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3717 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3718 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3719 0, 55, 0, 55, 0, 55, 0, 56, 0, 56,
3720 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3721 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3722 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3723 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3724 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3725 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3726 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3727 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3728 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3729 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3730 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3731 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3732 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3733 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3734 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3735 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3736 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3737 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3738 0, 57, 0, 57, 0, 58, 0, 58, 0, 58,
3739 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3740 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3741 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3742 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3743 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3744 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3745 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3746 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3747 0, 58, 0, 58, 0, 58, 0, 58, 0, 623,
3748 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3749 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3750 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3751 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3752 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3753 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3754 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3755 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3756 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3757 0, 623, 0, 584, 622, 0, 584, 622, 0, 584,
3758 622, 0, 584, 622, 0, 584, 622, 0, 584, 622,
3759 0, 584, 622, 0, 584, 622, 0, 584, 622, 0,
3760 584, 622, 0, 584, 622, 0, 584, 622, 0, 584,
3761 622, 0, 584, 622, 0, 584, 622, 0, 584, 622,
3762 0, 584, 622, 0, 584, 622, 0, 584, 622, 0,
3763 584, 622, 0, 584, 622, 0, 584, 622, 0, 584,
3764 622, 0, 584, 622, 0, 584, 622, 0, 584, 622,
3765 0, 584, 622, 0, 584, 622, 0, 584, 622, 0,
3766 584, 622, 0, 584, 622, 0, 584, 622, 0, 584,
3767 622, 0, 584, 622, 0, 584, 622, 0, 584, 622,
3768 0, 584, 622, 0, 584, 622, 0, 584, 622, 0,
3769 584, 622, 0, 584, 622, 0, 584, 622, 0, 584,
3770 622, 0, 584, 622, 0, 584, 622, 0, 584, 622,
3771 0, 584, 622, 0, 622, 0, 65, 0, 65, 0,
3772 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3773 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3774 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3775 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3776 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3777 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3778 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3779 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3780 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3781 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3782 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3783 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3784 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3785 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3786 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3787 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3788 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3789 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3790 109, 0, 109, 0, 110, 0, 110, 0, 110, 0,
3791 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3792 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3793 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3794 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3795 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3796 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3797 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3798 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3799 110, 0, 110, 0, 110, 0, 110, 0, 108, 0,
3800 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3801 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3802 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3803 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3804 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3805 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3806 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3807 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3808 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3809 108, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3810 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3811 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3812 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3813 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3814 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3815 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3816 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3817 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3818 106, 0, 106, 0, 106, 0, 107, 0, 107, 0,
3819 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3820 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3821 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3822 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3823 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3824 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3825 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3826 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3827 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3828 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3829 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3830 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3831 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3832 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3833 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3834 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3835 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3836 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3837 127, 0, 127, 0, 129, 0, 129, 0, 129, 0,
3838 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3839 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3840 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3841 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3842 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3843 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3844 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3845 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3846 129, 0, 129, 0, 129, 0, 129, 0, 130, 0,
3847 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3848 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3849 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3850 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3851 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3852 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3853 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3854 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3855 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3856 130, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3857 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3858 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3859 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3860 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3861 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3862 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3863 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3864 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3865 131, 0, 131, 0, 131, 0, 132, 0, 132, 0,
3866 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3867 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3868 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3869 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3870 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3871 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3872 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3873 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3874 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3875 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3876 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3877 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3878 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3879 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3880 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3881 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3882 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3883 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3884 133, 0, 133, 0, 134, 0, 134, 0, 134, 0,
3885 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3886 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3887 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3888 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3889 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3890 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3891 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3892 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3893 134, 0, 134, 0, 134, 0, 134, 0, 163, 0,
3894 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3895 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3896 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3897 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3898 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3899 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3900 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3901 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3902 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3903 163, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3904 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3905 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3906 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3907 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3908 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3909 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3910 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3911 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3912 592, 0, 592, 0, 592, 0, 591, 0, 591, 0,
3913 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3914 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3915 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3916 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3917 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3918 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3919 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3920 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3921 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3922 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3923 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3924 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3925 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3926 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3927 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3928 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3929 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3930 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3931 589, 0, 589, 0, 587, 0, 587, 0, 587, 0,
3932 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3933 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3934 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3935 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3936 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3937 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3938 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3939 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3940 587, 0, 587, 0, 587, 0, 587, 0, 588, 0,
3941 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3942 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3943 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3944 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3945 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3946 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3947 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3948 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3949 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3950 588, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3951 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3952 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3953 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3954 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3955 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3956 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3957 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3958 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3959 590, 0, 590, 0, 590, 0, 586, 0, 586, 0,
3960 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3961 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3962 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3963 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3964 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3965 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3966 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3967 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3968 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3969 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3970 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3971 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3972 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3973 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3974 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3975 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3976 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3977 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3978 585, 0, 585, 0, 593, 0, 593, 0, 593, 0,
3979 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3980 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3981 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3982 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3983 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3984 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3985 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3986 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3987 593, 0, 593, 0, 593, 0, 593, 0, 147, 0,
3988 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3989 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3990 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3991 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3992 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3993 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3994 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3995 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3996 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3997 147, 0, 621, 0, 621, 0, 621, 0, 621, 0,
3998 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
3999 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4000 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4001 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4002 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4003 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4004 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4005 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4006 621, 0, 621, 0, 621, 0, 619, 0, 619, 0,
4007 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4008 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4009 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4010 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4011 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4012 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4013 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4014 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4015 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4016 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4017 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4018 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4019 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4020 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4021 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4022 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4023 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4024 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4025 618, 0, 618, 0, 620, 0, 620, 0, 620, 0,
4026 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4027 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4028 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4029 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4030 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4031 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4032 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4033 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4034 620, 0, 620, 0, 620, 0, 620, 0, 617, 0,
4035 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4036 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4037 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4038 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4039 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4040 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4041 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4042 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4043 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4044 617, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4045 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4046 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4047 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4048 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4049 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4050 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4051 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4052 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4053 616, 0, 616, 0, 616, 0, 511, 0, 511, 0,
4054 459, 0, 459, 0, 460, 0, 497, 0, 497, 0,
4055 497, 0, 45, 0, 623, 0, 391, 0, 572, 0,
4056 572, 0, 572, 0, 623, 0, 342, 0, 493, 0
4057 };
4058
4059 /* Error token number */
4060 #define YYTERROR 1
4061
4062
4063
4064
4065 #undef yynerrs
4066 #define yynerrs (yystackp->yyerrcnt)
4067 #undef yychar
4068 #define yychar (yystackp->yyrawchar)
4069 #undef yylval
4070 #define yylval (yystackp->yyval)
4071 #undef yylloc
4072 #define yylloc (yystackp->yyloc)
4073 #define psi_parser_proc_nerrs yynerrs
4074 #define psi_parser_proc_char yychar
4075 #define psi_parser_proc_lval yylval
4076 #define psi_parser_proc_lloc yylloc
4077
4078 static const int YYEOF = 0;
4079 static const int YYEMPTY = -2;
4080
4081 typedef enum { yyok, yyaccept, yyabort, yyerr } YYRESULTTAG;
4082
4083 #define YYCHK(YYE) \
4084 do { \
4085 YYRESULTTAG yychk_flag = YYE; \
4086 if (yychk_flag != yyok) \
4087 return yychk_flag; \
4088 } while (0)
4089
4090 #if YYDEBUG
4091
4092 # ifndef YYFPRINTF
4093 # define YYFPRINTF fprintf
4094 # endif
4095
4096 /* This macro is provided for backward compatibility. */
4097 #ifndef YY_LOCATION_PRINT
4098 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
4099 #endif
4100
4101
4102 # define YYDPRINTF(Args) \
4103 do { \
4104 if (yydebug) \
4105 YYFPRINTF Args; \
4106 } while (0)
4107
4108
4109 /*-----------------------------------.
4110 | Print this symbol's value on YYO. |
4111 `-----------------------------------*/
4112
4113 static void
4114 yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
4115 {
4116 FILE *yyoutput = yyo;
4117 YYUSE (yyoutput);
4118 YYUSE (P);
4119 YYUSE (tokens);
4120 YYUSE (index);
4121 if (!yyvaluep)
4122 return;
4123 YYUSE (yytype);
4124 }
4125
4126
4127 /*---------------------------.
4128 | Print this symbol on YYO. |
4129 `---------------------------*/
4130
4131 static void
4132 yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
4133 {
4134 YYFPRINTF (yyo, "%s %s (",
4135 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
4136
4137 yy_symbol_value_print (yyo, yytype, yyvaluep, P, tokens, index);
4138 YYFPRINTF (yyo, ")");
4139 }
4140
4141 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
4142 do { \
4143 if (yydebug) \
4144 { \
4145 YYFPRINTF (stderr, "%s ", Title); \
4146 yy_symbol_print (stderr, Type, Value, P, tokens, index); \
4147 YYFPRINTF (stderr, "\n"); \
4148 } \
4149 } while (0)
4150
4151 /* Nonzero means print parse trace. It is left uninitialized so that
4152 multiple parsers can coexist. */
4153 int yydebug;
4154
4155 struct yyGLRStack;
4156 static void yypstack (struct yyGLRStack* yystackp, size_t yyk)
4157 YY_ATTRIBUTE_UNUSED;
4158 static void yypdumpstack (struct yyGLRStack* yystackp)
4159 YY_ATTRIBUTE_UNUSED;
4160
4161 #else /* !YYDEBUG */
4162
4163 # define YYDPRINTF(Args)
4164 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
4165
4166 #endif /* !YYDEBUG */
4167
4168 /* YYINITDEPTH -- initial size of the parser's stacks. */
4169 #ifndef YYINITDEPTH
4170 # define YYINITDEPTH 200
4171 #endif
4172
4173 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
4174 if the built-in stack extension method is used).
4175
4176 Do not make this value too large; the results are undefined if
4177 SIZE_MAX < YYMAXDEPTH * sizeof (GLRStackItem)
4178 evaluated with infinite-precision integer arithmetic. */
4179
4180 #ifndef YYMAXDEPTH
4181 # define YYMAXDEPTH 10000
4182 #endif
4183
4184 /* Minimum number of free items on the stack allowed after an
4185 allocation. This is to allow allocation and initialization
4186 to be completed by functions that call yyexpandGLRStack before the
4187 stack is expanded, thus insuring that all necessary pointers get
4188 properly redirected to new data. */
4189 #define YYHEADROOM 2
4190
4191 #ifndef YYSTACKEXPANDABLE
4192 # define YYSTACKEXPANDABLE 1
4193 #endif
4194
4195 #if YYSTACKEXPANDABLE
4196 # define YY_RESERVE_GLRSTACK(Yystack) \
4197 do { \
4198 if (Yystack->yyspaceLeft < YYHEADROOM) \
4199 yyexpandGLRStack (Yystack); \
4200 } while (0)
4201 #else
4202 # define YY_RESERVE_GLRSTACK(Yystack) \
4203 do { \
4204 if (Yystack->yyspaceLeft < YYHEADROOM) \
4205 yyMemoryExhausted (Yystack); \
4206 } while (0)
4207 #endif
4208
4209
4210 #if YYERROR_VERBOSE
4211
4212 # ifndef yystpcpy
4213 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
4214 # define yystpcpy stpcpy
4215 # else
4216 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
4217 YYDEST. */
4218 static char *
4219 yystpcpy (char *yydest, const char *yysrc)
4220 {
4221 char *yyd = yydest;
4222 const char *yys = yysrc;
4223
4224 while ((*yyd++ = *yys++) != '\0')
4225 continue;
4226
4227 return yyd - 1;
4228 }
4229 # endif
4230 # endif
4231
4232 # ifndef yytnamerr
4233 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
4234 quotes and backslashes, so that it's suitable for yyerror. The
4235 heuristic is that double-quoting is unnecessary unless the string
4236 contains an apostrophe, a comma, or backslash (other than
4237 backslash-backslash). YYSTR is taken from yytname. If YYRES is
4238 null, do not copy; instead, return the length of what the result
4239 would have been. */
4240 static size_t
4241 yytnamerr (char *yyres, const char *yystr)
4242 {
4243 if (*yystr == '"')
4244 {
4245 size_t yyn = 0;
4246 char const *yyp = yystr;
4247
4248 for (;;)
4249 switch (*++yyp)
4250 {
4251 case '\'':
4252 case ',':
4253 goto do_not_strip_quotes;
4254
4255 case '\\':
4256 if (*++yyp != '\\')
4257 goto do_not_strip_quotes;
4258 /* Fall through. */
4259 default:
4260 if (yyres)
4261 yyres[yyn] = *yyp;
4262 yyn++;
4263 break;
4264
4265 case '"':
4266 if (yyres)
4267 yyres[yyn] = '\0';
4268 return yyn;
4269 }
4270 do_not_strip_quotes: ;
4271 }
4272
4273 if (! yyres)
4274 return strlen (yystr);
4275
4276 return (size_t) (yystpcpy (yyres, yystr) - yyres);
4277 }
4278 # endif
4279
4280 #endif /* !YYERROR_VERBOSE */
4281
4282 /** State numbers, as in LALR(1) machine */
4283 typedef int yyStateNum;
4284
4285 /** Rule numbers, as in LALR(1) machine */
4286 typedef int yyRuleNum;
4287
4288 /** Grammar symbol */
4289 typedef int yySymbol;
4290
4291 /** Item references, as in LALR(1) machine */
4292 typedef short yyItemNum;
4293
4294 typedef struct yyGLRState yyGLRState;
4295 typedef struct yyGLRStateSet yyGLRStateSet;
4296 typedef struct yySemanticOption yySemanticOption;
4297 typedef union yyGLRStackItem yyGLRStackItem;
4298 typedef struct yyGLRStack yyGLRStack;
4299
4300 struct yyGLRState {
4301 /** Type tag: always true. */
4302 yybool yyisState;
4303 /** Type tag for yysemantics. If true, yysval applies, otherwise
4304 * yyfirstVal applies. */
4305 yybool yyresolved;
4306 /** Number of corresponding LALR(1) machine state. */
4307 yyStateNum yylrState;
4308 /** Preceding state in this stack */
4309 yyGLRState* yypred;
4310 /** Source position of the last token produced by my symbol */
4311 size_t yyposn;
4312 union {
4313 /** First in a chain of alternative reductions producing the
4314 * non-terminal corresponding to this state, threaded through
4315 * yynext. */
4316 yySemanticOption* yyfirstVal;
4317 /** Semantic value for this state. */
4318 YYSTYPE yysval;
4319 } yysemantics;
4320 };
4321
4322 struct yyGLRStateSet {
4323 yyGLRState** yystates;
4324 /** During nondeterministic operation, yylookaheadNeeds tracks which
4325 * stacks have actually needed the current lookahead. During deterministic
4326 * operation, yylookaheadNeeds[0] is not maintained since it would merely
4327 * duplicate yychar != YYEMPTY. */
4328 yybool* yylookaheadNeeds;
4329 size_t yysize, yycapacity;
4330 };
4331
4332 struct yySemanticOption {
4333 /** Type tag: always false. */
4334 yybool yyisState;
4335 /** Rule number for this reduction */
4336 yyRuleNum yyrule;
4337 /** The last RHS state in the list of states to be reduced. */
4338 yyGLRState* yystate;
4339 /** The lookahead for this reduction. */
4340 int yyrawchar;
4341 YYSTYPE yyval;
4342 /** Next sibling in chain of options. To facilitate merging,
4343 * options are chained in decreasing order by address. */
4344 yySemanticOption* yynext;
4345 };
4346
4347 /** Type of the items in the GLR stack. The yyisState field
4348 * indicates which item of the union is valid. */
4349 union yyGLRStackItem {
4350 yyGLRState yystate;
4351 yySemanticOption yyoption;
4352 };
4353
4354 struct yyGLRStack {
4355 int yyerrState;
4356
4357
4358 int yyerrcnt;
4359 int yyrawchar;
4360 YYSTYPE yyval;
4361
4362 YYJMP_BUF yyexception_buffer;
4363 yyGLRStackItem* yyitems;
4364 yyGLRStackItem* yynextFree;
4365 size_t yyspaceLeft;
4366 yyGLRState* yysplitPoint;
4367 yyGLRState* yylastDeleted;
4368 yyGLRStateSet yytops;
4369 };
4370
4371 #if YYSTACKEXPANDABLE
4372 static void yyexpandGLRStack (yyGLRStack* yystackp);
4373 #endif
4374
4375 static _Noreturn void
4376 yyFail (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char* yymsg)
4377 {
4378 if (yymsg != YY_NULLPTR)
4379 yyerror (P, tokens, index, yymsg);
4380 YYLONGJMP (yystackp->yyexception_buffer, 1);
4381 }
4382
4383 static _Noreturn void
4384 yyMemoryExhausted (yyGLRStack* yystackp)
4385 {
4386 YYLONGJMP (yystackp->yyexception_buffer, 2);
4387 }
4388
4389 #if YYDEBUG || YYERROR_VERBOSE
4390 /** A printable representation of TOKEN. */
4391 static inline const char*
4392 yytokenName (yySymbol yytoken)
4393 {
4394 if (yytoken == YYEMPTY)
4395 return "";
4396
4397 return yytname[yytoken];
4398 }
4399 #endif
4400
4401 /** Fill in YYVSP[YYLOW1 .. YYLOW0-1] from the chain of states starting
4402 * at YYVSP[YYLOW0].yystate.yypred. Leaves YYVSP[YYLOW1].yystate.yypred
4403 * containing the pointer to the next state in the chain. */
4404 static void yyfillin (yyGLRStackItem *, int, int) YY_ATTRIBUTE_UNUSED;
4405 static void
4406 yyfillin (yyGLRStackItem *yyvsp, int yylow0, int yylow1)
4407 {
4408 int i;
4409 yyGLRState *s = yyvsp[yylow0].yystate.yypred;
4410 for (i = yylow0-1; i >= yylow1; i -= 1)
4411 {
4412 #if YYDEBUG
4413 yyvsp[i].yystate.yylrState = s->yylrState;
4414 #endif
4415 yyvsp[i].yystate.yyresolved = s->yyresolved;
4416 if (s->yyresolved)
4417 yyvsp[i].yystate.yysemantics.yysval = s->yysemantics.yysval;
4418 else
4419 /* The effect of using yysval or yyloc (in an immediate rule) is
4420 * undefined. */
4421 yyvsp[i].yystate.yysemantics.yyfirstVal = YY_NULLPTR;
4422 s = yyvsp[i].yystate.yypred = s->yypred;
4423 }
4424 }
4425
4426 /* Do nothing if YYNORMAL or if *YYLOW <= YYLOW1. Otherwise, fill in
4427 * YYVSP[YYLOW1 .. *YYLOW-1] as in yyfillin and set *YYLOW = YYLOW1.
4428 * For convenience, always return YYLOW1. */
4429 static inline int yyfill (yyGLRStackItem *, int *, int, yybool)
4430 YY_ATTRIBUTE_UNUSED;
4431 static inline int
4432 yyfill (yyGLRStackItem *yyvsp, int *yylow, int yylow1, yybool yynormal)
4433 {
4434 if (!yynormal && yylow1 < *yylow)
4435 {
4436 yyfillin (yyvsp, *yylow, yylow1);
4437 *yylow = yylow1;
4438 }
4439 return yylow1;
4440 }
4441
4442 /** Perform user action for rule number YYN, with RHS length YYRHSLEN,
4443 * and top stack item YYVSP. YYLVALP points to place to put semantic
4444 * value ($$), and yylocp points to place for location information
4445 * (@$). Returns yyok for normal return, yyaccept for YYACCEPT,
4446 * yyerr for YYERROR, yyabort for YYABORT. */
4447 static YYRESULTTAG
4448 yyuserAction (yyRuleNum yyn, int yyrhslen, yyGLRStackItem* yyvsp,
4449 yyGLRStack* yystackp,
4450 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
4451 {
4452 yybool yynormal YY_ATTRIBUTE_UNUSED = (yybool) (yystackp->yysplitPoint == YY_NULLPTR);
4453 int yylow;
4454 YYUSE (yyvalp);
4455 YYUSE (P);
4456 YYUSE (tokens);
4457 YYUSE (index);
4458 YYUSE (yyrhslen);
4459 # undef yyerrok
4460 # define yyerrok (yystackp->yyerrState = 0)
4461 # undef YYACCEPT
4462 # define YYACCEPT return yyaccept
4463 # undef YYABORT
4464 # define YYABORT return yyabort
4465 # undef YYERROR
4466 # define YYERROR return yyerrok, yyerr
4467 # undef YYRECOVERING
4468 # define YYRECOVERING() (yystackp->yyerrState != 0)
4469 # undef yyclearin
4470 # define yyclearin (yychar = YYEMPTY)
4471 # undef YYFILL
4472 # define YYFILL(N) yyfill (yyvsp, &yylow, (N), yynormal)
4473 # undef YYBACKUP
4474 # define YYBACKUP(Token, Value) \
4475 return yyerror (P, tokens, index, YY_("syntax error: cannot back up")), \
4476 yyerrok, yyerr
4477
4478 yylow = 1;
4479 if (yyrhslen == 0)
4480 *yyvalp = yyval_default;
4481 else
4482 *yyvalp = yyvsp[YYFILL (1-yyrhslen)].yystate.yysemantics.yysval;
4483 switch (yyn)
4484 {
4485 case 287:
4486 #line 426 "src/parser_proc_grammar.y" /* glr.c:821 */
4487 {
4488 if ((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4489 psi_cpp_exp_exec((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), P->preproc, PSI_DATA(P));
4490 psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4491 }
4492 }
4493 #line 4494 "src/parser_proc.c" /* glr.c:821 */
4494 break;
4495
4496 case 288:
4497 #line 432 "src/parser_proc_grammar.y" /* glr.c:821 */
4498 {
4499 char *libname = strdup((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text->val);
4500 P->file.libnames = psi_plist_add(P->file.libnames, &libname);
4501 }
4502 #line 4503 "src/parser_proc.c" /* glr.c:821 */
4503 break;
4504
4505 case 289:
4506 #line 436 "src/parser_proc_grammar.y" /* glr.c:821 */
4507 {
4508 psi_parser_proc_add_const(P, (*(struct psi_const **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4509 }
4510 #line 4511 "src/parser_proc.c" /* glr.c:821 */
4511 break;
4512
4513 case 290:
4514 #line 439 "src/parser_proc_grammar.y" /* glr.c:821 */
4515 {
4516 psi_parser_proc_add_decl(P, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4517 }
4518 #line 4519 "src/parser_proc.c" /* glr.c:821 */
4519 break;
4520
4521 case 291:
4522 #line 442 "src/parser_proc_grammar.y" /* glr.c:821 */
4523 {
4524 psi_parser_proc_add_decl_extvars(P, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4525 }
4526 #line 4527 "src/parser_proc.c" /* glr.c:821 */
4527 break;
4528
4529 case 292:
4530 #line 445 "src/parser_proc_grammar.y" /* glr.c:821 */
4531 {
4532 if (P->flags & PSI_DEBUG) {
4533 P->error(PSI_DATA(P), (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token, PSI_NOTICE, "Ignored decl: %s", (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name->val);
4534 }
4535 psi_decl_free(&(*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4536 }
4537 #line 4538 "src/parser_proc.c" /* glr.c:821 */
4538 break;
4539
4540 case 293:
4541 #line 451 "src/parser_proc_grammar.y" /* glr.c:821 */
4542 {
4543 psi_parser_proc_add_typedef(P, (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4544 }
4545 #line 4546 "src/parser_proc.c" /* glr.c:821 */
4546 break;
4547
4548 case 294:
4549 #line 454 "src/parser_proc_grammar.y" /* glr.c:821 */
4550 {
4551 psi_parser_proc_add_struct(P, (*(struct psi_decl_struct **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4552 }
4553 #line 4554 "src/parser_proc.c" /* glr.c:821 */
4554 break;
4555
4556 case 295:
4557 #line 457 "src/parser_proc_grammar.y" /* glr.c:821 */
4558 {
4559 psi_parser_proc_add_union(P, (*(struct psi_decl_union **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4560 }
4561 #line 4562 "src/parser_proc.c" /* glr.c:821 */
4562 break;
4563
4564 case 296:
4565 #line 460 "src/parser_proc_grammar.y" /* glr.c:821 */
4566 {
4567 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4568 }
4569 #line 4570 "src/parser_proc.c" /* glr.c:821 */
4570 break;
4571
4572 case 297:
4573 #line 463 "src/parser_proc_grammar.y" /* glr.c:821 */
4574 {
4575 psi_parser_proc_add_impl(P, (*(struct psi_impl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4576 }
4577 #line 4578 "src/parser_proc.c" /* glr.c:821 */
4578 break;
4579
4580 case 298:
4581 #line 469 "src/parser_proc_grammar.y" /* glr.c:821 */
4582 {
4583 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4584 }
4585 #line 4586 "src/parser_proc.c" /* glr.c:821 */
4586 break;
4587
4588 case 299:
4589 #line 475 "src/parser_proc_grammar.y" /* glr.c:821 */
4590 {
4591 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
4592 }
4593 #line 4594 "src/parser_proc.c" /* glr.c:821 */
4594 break;
4595
4596 case 300:
4597 #line 478 "src/parser_proc_grammar.y" /* glr.c:821 */
4598 {
4599 (*(struct psi_cpp_exp **)(&(*yyvalp))) = (*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4600 }
4601 #line 4602 "src/parser_proc.c" /* glr.c:821 */
4602 break;
4603
4604 case 301:
4605 #line 484 "src/parser_proc_grammar.y" /* glr.c:821 */
4606 {
4607 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4608 struct psi_token *msg = NULL;
4609
4610 if (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0, &msg)) {
4611 size_t index = 1;
4612 struct psi_token *next;
4613
4614 msg = psi_token_copy(msg);
4615 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), index++, &next)) {
4616 struct psi_token *old = msg;
4617 msg = psi_token_cat(" ", 2, msg, next);
4618 psi_token_free(&old);
4619 }
4620 }
4621 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4622
4623 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, msg);
4624 } else {
4625 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, NULL);
4626 }
4627 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4628 }
4629 #line 4630 "src/parser_proc.c" /* glr.c:821 */
4630 break;
4631
4632 case 302:
4633 #line 507 "src/parser_proc_grammar.y" /* glr.c:821 */
4634 {
4635 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))));
4636 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4637 }
4638 #line 4639 "src/parser_proc.c" /* glr.c:821 */
4639 break;
4640
4641 case 303:
4642 #line 511 "src/parser_proc_grammar.y" /* glr.c:821 */
4643 {
4644 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL);
4645 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4646 }
4647 #line 4648 "src/parser_proc.c" /* glr.c:821 */
4648 break;
4649
4650 case 304:
4651 #line 515 "src/parser_proc_grammar.y" /* glr.c:821 */
4652 {
4653 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4654 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))));
4655 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4656 }
4657 #line 4658 "src/parser_proc.c" /* glr.c:821 */
4658 break;
4659
4660 case 305:
4661 #line 520 "src/parser_proc_grammar.y" /* glr.c:821 */
4662 {
4663 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, (*(struct psi_cpp_macro_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4664 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4665 }
4666 #line 4667 "src/parser_proc.c" /* glr.c:821 */
4667 break;
4668
4669 case 306:
4670 #line 524 "src/parser_proc_grammar.y" /* glr.c:821 */
4671 {
4672 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4673 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4674 }
4675 #line 4676 "src/parser_proc.c" /* glr.c:821 */
4676 break;
4677
4678 case 307:
4679 #line 528 "src/parser_proc_grammar.y" /* glr.c:821 */
4680 {
4681 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL);
4682 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4683 }
4684 #line 4685 "src/parser_proc.c" /* glr.c:821 */
4685 break;
4686
4687 case 308:
4688 #line 532 "src/parser_proc_grammar.y" /* glr.c:821 */
4689 {
4690 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4691 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
4692 }
4693 #line 4694 "src/parser_proc.c" /* glr.c:821 */
4694 break;
4695
4696 case 325:
4697 #line 576 "src/parser_proc_grammar.y" /* glr.c:821 */
4698 {
4699 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4700 (*(struct psi_cpp_macro_decl **)(&(*yyvalp))) = psi_cpp_macro_decl_init(NULL, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), NULL);
4701 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4702 }
4703 #line 4704 "src/parser_proc.c" /* glr.c:821 */
4704 break;
4705
4706 case 326:
4707 #line 581 "src/parser_proc_grammar.y" /* glr.c:821 */
4708 {
4709 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4710 (*(struct psi_cpp_macro_decl **)(&(*yyvalp))) = psi_cpp_macro_decl_init((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), NULL);
4711 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4712 }
4713 #line 4714 "src/parser_proc.c" /* glr.c:821 */
4714 break;
4715
4716 case 327:
4717 #line 586 "src/parser_proc_grammar.y" /* glr.c:821 */
4718 {
4719 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4720 (*(struct psi_cpp_macro_decl **)(&(*yyvalp))) = psi_cpp_macro_decl_init(NULL, psi_num_exp_tokens((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), NULL), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4721 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4722 }
4723 #line 4724 "src/parser_proc.c" /* glr.c:821 */
4724 break;
4725
4726 case 328:
4727 #line 591 "src/parser_proc_grammar.y" /* glr.c:821 */
4728 {
4729 struct psi_plist *list = psi_plist_init((psi_plist_dtor) psi_token_free);
4730 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4731 (*(struct psi_cpp_macro_decl **)(&(*yyvalp))) = psi_cpp_macro_decl_init(NULL, psi_plist_add(list, &(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))), NULL);
4732 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4733 }
4734 #line 4735 "src/parser_proc.c" /* glr.c:821 */
4735 break;
4736
4737 case 329:
4738 #line 600 "src/parser_proc_grammar.y" /* glr.c:821 */
4739 {
4740 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL);
4741 }
4742 #line 4743 "src/parser_proc.c" /* glr.c:821 */
4743 break;
4744
4745 case 330:
4746 #line 603 "src/parser_proc_grammar.y" /* glr.c:821 */
4747 {
4748 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL); /* FIXME */
4749 }
4750 #line 4751 "src/parser_proc.c" /* glr.c:821 */
4751 break;
4752
4753 case 332:
4754 #line 607 "src/parser_proc_grammar.y" /* glr.c:821 */
4755 {
4756 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4757 }
4758 #line 4759 "src/parser_proc.c" /* glr.c:821 */
4759 break;
4760
4761 case 333:
4762 #line 613 "src/parser_proc_grammar.y" /* glr.c:821 */
4763 {
4764 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4765 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4766 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_token_free), &(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4767 }
4768 #line 4769 "src/parser_proc.c" /* glr.c:821 */
4769 break;
4770
4771 case 334:
4772 #line 618 "src/parser_proc_grammar.y" /* glr.c:821 */
4773 {
4774 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4775 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4776 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4777 }
4778 #line 4779 "src/parser_proc.c" /* glr.c:821 */
4779 break;
4780
4781 case 335:
4782 #line 626 "src/parser_proc_grammar.y" /* glr.c:821 */
4783 {
4784 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4785 }
4786 #line 4787 "src/parser_proc.c" /* glr.c:821 */
4787 break;
4788
4789 case 337:
4790 #line 633 "src/parser_proc_grammar.y" /* glr.c:821 */
4791 {
4792 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4793 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_token_free), &(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4794 }
4795 #line 4796 "src/parser_proc.c" /* glr.c:821 */
4796 break;
4797
4798 case 338:
4799 #line 637 "src/parser_proc_grammar.y" /* glr.c:821 */
4800 {
4801 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4802 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), &(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4803 }
4804 #line 4805 "src/parser_proc.c" /* glr.c:821 */
4805 break;
4806
4807 case 339:
4808 #line 644 "src/parser_proc_grammar.y" /* glr.c:821 */
4809 {
4810 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_unary((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4811 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4812 }
4813 #line 4814 "src/parser_proc.c" /* glr.c:821 */
4814 break;
4815
4816 case 340:
4817 #line 648 "src/parser_proc_grammar.y" /* glr.c:821 */
4818 {
4819 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_unary((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4820 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4821 }
4822 #line 4823 "src/parser_proc.c" /* glr.c:821 */
4823 break;
4824
4825 case 341:
4826 #line 652 "src/parser_proc_grammar.y" /* glr.c:821 */
4827 {
4828 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_binary((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4829 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4830 }
4831 #line 4832 "src/parser_proc.c" /* glr.c:821 */
4832 break;
4833
4834 case 342:
4835 #line 656 "src/parser_proc_grammar.y" /* glr.c:821 */
4836 {
4837 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_ternary((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4838 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4839 }
4840 #line 4841 "src/parser_proc.c" /* glr.c:821 */
4841 break;
4842
4843 case 343:
4844 #line 661 "src/parser_proc_grammar.y" /* glr.c:821 */
4845 {
4846 {
4847 uint8_t exists;
4848
4849 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4850 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4851 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_DEFINED, &exists, 0));
4852 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4853 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4854 }
4855 }
4856 #line 4857 "src/parser_proc.c" /* glr.c:821 */
4857 break;
4858
4859 case 344:
4860 #line 672 "src/parser_proc_grammar.y" /* glr.c:821 */
4861 {
4862 {
4863 uint8_t exists;
4864
4865 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4866 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4867 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_DEFINED, &exists, 0));
4868 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4869 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4870 }
4871 }
4872 #line 4873 "src/parser_proc.c" /* glr.c:821 */
4873 break;
4874
4875 case 345:
4876 #line 683 "src/parser_proc_grammar.y" /* glr.c:821 */
4877 {
4878 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->flags));
4879 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4880 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4881 }
4882 #line 4883 "src/parser_proc.c" /* glr.c:821 */
4883 break;
4884
4885 case 346:
4886 #line 688 "src/parser_proc_grammar.y" /* glr.c:821 */
4887 {
4888 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0));
4889 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4890 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4891 }
4892 #line 4893 "src/parser_proc.c" /* glr.c:821 */
4893 break;
4894
4895 case 347:
4896 #line 693 "src/parser_proc_grammar.y" /* glr.c:821 */
4897 {
4898 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4899 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4900 }
4901 #line 4902 "src/parser_proc.c" /* glr.c:821 */
4902 break;
4903
4904 case 348:
4905 #line 697 "src/parser_proc_grammar.y" /* glr.c:821 */
4906 {
4907 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4908 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_DEFINE, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0));
4909 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4910 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4911 }
4912 #line 4913 "src/parser_proc.c" /* glr.c:821 */
4913 break;
4914
4915 case 349:
4916 #line 703 "src/parser_proc_grammar.y" /* glr.c:821 */
4917 {
4918 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4919 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_FUNCTION,
4920 psi_cpp_macro_call_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 0));
4921 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4922 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4923 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->data.call->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4924 }
4925 #line 4926 "src/parser_proc.c" /* glr.c:821 */
4926 break;
4927
4928 case 350:
4929 #line 714 "src/parser_proc_grammar.y" /* glr.c:821 */
4930 {
4931 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4932 }
4933 #line 4934 "src/parser_proc.c" /* glr.c:821 */
4934 break;
4935
4936 case 352:
4937 #line 721 "src/parser_proc_grammar.y" /* glr.c:821 */
4938 {
4939 /* TODO: clang include test macros */
4940 uint8_t no = 1;
4941 struct psi_num_exp *exp = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8, &no, 0));
4942 exp->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4943 exp->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4944 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_num_exp_free), &exp);
4945 }
4946 #line 4947 "src/parser_proc.c" /* glr.c:821 */
4947 break;
4948
4949 case 353:
4950 #line 729 "src/parser_proc_grammar.y" /* glr.c:821 */
4951 {
4952 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_num_exp_free),
4953 &(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4954 }
4955 #line 4956 "src/parser_proc.c" /* glr.c:821 */
4956 break;
4957
4958 case 354:
4959 #line 733 "src/parser_proc_grammar.y" /* glr.c:821 */
4960 {
4961 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4962 }
4963 #line 4964 "src/parser_proc.c" /* glr.c:821 */
4964 break;
4965
4966 case 355:
4967 #line 739 "src/parser_proc_grammar.y" /* glr.c:821 */
4968 {
4969 (*(struct psi_const **)(&(*yyvalp))) = psi_const_init((*(struct psi_impl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text, (*(struct psi_impl_def_val **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4970 (*(struct psi_const **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4971 }
4972 #line 4973 "src/parser_proc.c" /* glr.c:821 */
4973 break;
4974
4975 case 356:
4976 #line 743 "src/parser_proc_grammar.y" /* glr.c:821 */
4977 {
4978 (*(struct psi_const **)(&(*yyvalp))) = psi_const_init(NULL, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text, (*(struct psi_impl_def_val **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4979 (*(struct psi_const **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4980 }
4981 #line 4982 "src/parser_proc.c" /* glr.c:821 */
4982 break;
4983
4984 case 357:
4985 #line 750 "src/parser_proc_grammar.y" /* glr.c:821 */
4986 {
4987 (*(struct psi_impl_def_val **)(&(*yyvalp))) = psi_impl_def_val_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text);
4988 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4989 }
4990 #line 4991 "src/parser_proc.c" /* glr.c:821 */
4991 break;
4992
4993 case 358:
4994 #line 754 "src/parser_proc_grammar.y" /* glr.c:821 */
4995 {
4996 (*(struct psi_impl_def_val **)(&(*yyvalp))) = psi_impl_def_val_init(PSI_T_NUMBER, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4997 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4998 }
4999 #line 5000 "src/parser_proc.c" /* glr.c:821 */
5000 break;
5001
5002 case 359:
5003 #line 758 "src/parser_proc_grammar.y" /* glr.c:821 */
5004 {
5005 (*(struct psi_impl_def_val **)(&(*yyvalp))) = psi_impl_def_val_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text);
5006 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5007 }
5008 #line 5009 "src/parser_proc.c" /* glr.c:821 */
5009 break;
5010
5011 case 363:
5012 #line 771 "src/parser_proc_grammar.y" /* glr.c:821 */
5013 {
5014 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5015 }
5016 #line 5017 "src/parser_proc.c" /* glr.c:821 */
5017 break;
5018
5019 case 364:
5020 #line 785 "src/parser_proc_grammar.y" /* glr.c:821 */
5021 {
5022 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5023 }
5024 #line 5025 "src/parser_proc.c" /* glr.c:821 */
5025 break;
5026
5027 case 365:
5028 #line 791 "src/parser_proc_grammar.y" /* glr.c:821 */
5029 {
5030 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5031 }
5032 #line 5033 "src/parser_proc.c" /* glr.c:821 */
5033 break;
5034
5035 case 366:
5036 #line 794 "src/parser_proc_grammar.y" /* glr.c:821 */
5037 {
5038 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5039 }
5040 #line 5041 "src/parser_proc.c" /* glr.c:821 */
5041 break;
5042
5043 case 367:
5044 #line 800 "src/parser_proc_grammar.y" /* glr.c:821 */
5045 {
5046 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5047 }
5048 #line 5049 "src/parser_proc.c" /* glr.c:821 */
5049 break;
5050
5051 case 368:
5052 #line 803 "src/parser_proc_grammar.y" /* glr.c:821 */
5053 {
5054 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5055 }
5056 #line 5057 "src/parser_proc.c" /* glr.c:821 */
5057 break;
5058
5059 case 370:
5060 #line 810 "src/parser_proc_grammar.y" /* glr.c:821 */
5061 {
5062 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5063 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
5064 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
5065 );
5066 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
5067 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5068 }
5069 #line 5070 "src/parser_proc.c" /* glr.c:821 */
5070 break;
5071
5072 case 371:
5073 #line 818 "src/parser_proc_grammar.y" /* glr.c:821 */
5074 {
5075 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5076 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5077 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->name),
5078 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0, 0)
5079 );
5080 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5081 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->token);
5082 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5083 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5084 }
5085 #line 5086 "src/parser_proc.c" /* glr.c:821 */
5086 break;
5087
5088 case 372:
5089 #line 829 "src/parser_proc_grammar.y" /* glr.c:821 */
5090 {
5091 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(psi_decl_type_init(PSI_T_STRUCT, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text), (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5092 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
5093 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct = psi_decl_struct_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5094 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5095 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
5096 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
5097 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
5098 }
5099 #line 5100 "src/parser_proc.c" /* glr.c:821 */
5100 break;
5101
5102 case 373:
5103 #line 838 "src/parser_proc_grammar.y" /* glr.c:821 */
5104 {
5105 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(psi_decl_type_init(PSI_T_UNION, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text), (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5106 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
5107 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn = psi_decl_union_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5108 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5109 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
5110 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
5111 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
5112 }
5113 #line 5114 "src/parser_proc.c" /* glr.c:821 */
5114 break;
5115
5116 case 375:
5117 #line 851 "src/parser_proc_grammar.y" /* glr.c:821 */
5118 {
5119 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), psi_decl_var_init(NULL, 0, 0));
5120 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
5121 }
5122 #line 5123 "src/parser_proc.c" /* glr.c:821 */
5123 break;
5124
5125 case 376:
5126 #line 855 "src/parser_proc_grammar.y" /* glr.c:821 */
5127 {
5128 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5129 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->name),
5130 psi_decl_var_init(NULL, 0, 0)
5131 );
5132 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
5133 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
5134 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5135 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5136 }
5137 #line 5138 "src/parser_proc.c" /* glr.c:821 */
5138 break;
5139
5140 case 377:
5141 #line 865 "src/parser_proc_grammar.y" /* glr.c:821 */
5142 {
5143 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(psi_decl_type_init(PSI_T_STRUCT, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->text), psi_decl_var_init(NULL, 0, 0));
5144 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5145 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct = psi_decl_struct_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->text, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5146 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5147 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
5148 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
5149 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
5150 }
5151 #line 5152 "src/parser_proc.c" /* glr.c:821 */
5152 break;
5153
5154 case 378:
5155 #line 874 "src/parser_proc_grammar.y" /* glr.c:821 */
5156 {
5157 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(psi_decl_type_init(PSI_T_UNION, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->text), psi_decl_var_init(NULL, 0, 0));
5158 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5159 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn = psi_decl_union_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->text, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5160 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5161 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
5162 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
5163 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
5164 }
5165 #line 5166 "src/parser_proc.c" /* glr.c:821 */
5166 break;
5167
5168 case 380:
5169 #line 887 "src/parser_proc_grammar.y" /* glr.c:821 */
5170 {
5171 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5172 }
5173 #line 5174 "src/parser_proc.c" /* glr.c:821 */
5174 break;
5175
5176 case 381:
5177 #line 890 "src/parser_proc_grammar.y" /* glr.c:821 */
5178 {
5179 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5180 }
5181 #line 5182 "src/parser_proc.c" /* glr.c:821 */
5182 break;
5183
5184 case 384:
5185 #line 901 "src/parser_proc_grammar.y" /* glr.c:821 */
5186 {
5187 (*(struct psi_decl_type **)(&(*yyvalp))) = psi_decl_type_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text);
5188 (*(struct psi_decl_type **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5189 }
5190 #line 5191 "src/parser_proc.c" /* glr.c:821 */
5191 break;
5192
5193 case 386:
5194 #line 909 "src/parser_proc_grammar.y" /* glr.c:821 */
5195 {
5196 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5197 (*(struct psi_decl_type **)(&(*yyvalp))) = psi_decl_type_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text);
5198 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5199 }
5200 #line 5201 "src/parser_proc.c" /* glr.c:821 */
5201 break;
5202
5203 case 387:
5204 #line 914 "src/parser_proc_grammar.y" /* glr.c:821 */
5205 {
5206 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5207 (*(struct psi_decl_type **)(&(*yyvalp))) = psi_decl_type_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text);
5208 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5209 }
5210 #line 5211 "src/parser_proc.c" /* glr.c:821 */
5211 break;
5212
5213 case 388:
5214 #line 919 "src/parser_proc_grammar.y" /* glr.c:821 */
5215 {
5216 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5217 (*(struct psi_decl_type **)(&(*yyvalp))) = psi_decl_type_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text);
5218 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5219 }
5220 #line 5221 "src/parser_proc.c" /* glr.c:821 */
5221 break;
5222
5223 case 391:
5224 #line 929 "src/parser_proc_grammar.y" /* glr.c:821 */
5225 {
5226 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5227 }
5228 #line 5229 "src/parser_proc.c" /* glr.c:821 */
5229 break;
5230
5231 case 392:
5232 #line 932 "src/parser_proc_grammar.y" /* glr.c:821 */
5233 {
5234 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5235 }
5236 #line 5237 "src/parser_proc.c" /* glr.c:821 */
5237 break;
5238
5239 case 393:
5240 #line 938 "src/parser_proc_grammar.y" /* glr.c:821 */
5241 {
5242 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5243 }
5244 #line 5245 "src/parser_proc.c" /* glr.c:821 */
5245 break;
5246
5247 case 394:
5248 #line 941 "src/parser_proc_grammar.y" /* glr.c:821 */
5249 {
5250 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5251 }
5252 #line 5253 "src/parser_proc.c" /* glr.c:821 */
5253 break;
5254
5255 case 395:
5256 #line 944 "src/parser_proc_grammar.y" /* glr.c:821 */
5257 {
5258 (*(struct psi_token **)(&(*yyvalp))) = psi_token_cat(" ", 2, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5259 }
5260 #line 5261 "src/parser_proc.c" /* glr.c:821 */
5261 break;
5262
5263 case 398:
5264 #line 955 "src/parser_proc_grammar.y" /* glr.c:821 */
5265 {
5266 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5267 }
5268 #line 5269 "src/parser_proc.c" /* glr.c:821 */
5269 break;
5270
5271 case 399:
5272 #line 958 "src/parser_proc_grammar.y" /* glr.c:821 */
5273 {
5274 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5275 }
5276 #line 5277 "src/parser_proc.c" /* glr.c:821 */
5277 break;
5278
5279 case 400:
5280 #line 961 "src/parser_proc_grammar.y" /* glr.c:821 */
5281 {
5282 (*(struct psi_token **)(&(*yyvalp))) = psi_token_cat(" ", 2, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5283 }
5284 #line 5285 "src/parser_proc.c" /* glr.c:821 */
5285 break;
5286
5287 case 401:
5288 #line 967 "src/parser_proc_grammar.y" /* glr.c:821 */
5289 {
5290 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5291 }
5292 #line 5293 "src/parser_proc.c" /* glr.c:821 */
5293 break;
5294
5295 case 402:
5296 #line 970 "src/parser_proc_grammar.y" /* glr.c:821 */
5297 {
5298 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5299 }
5300 #line 5301 "src/parser_proc.c" /* glr.c:821 */
5301 break;
5302
5303 case 403:
5304 #line 973 "src/parser_proc_grammar.y" /* glr.c:821 */
5305 {
5306 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5307 (*(struct psi_token **)(&(*yyvalp))) = psi_token_cat(" ", 2, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5308 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5309 } else {
5310 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5311 }
5312 }
5313 #line 5314 "src/parser_proc.c" /* glr.c:821 */
5314 break;
5315
5316 case 404:
5317 #line 981 "src/parser_proc_grammar.y" /* glr.c:821 */
5318 {
5319 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5320 (*(struct psi_token **)(&(*yyvalp))) = psi_token_cat(" ", 2, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5321 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5322 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5323 } else {
5324 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5325 }
5326 }
5327 #line 5328 "src/parser_proc.c" /* glr.c:821 */
5328 break;
5329
5330 case 405:
5331 #line 993 "src/parser_proc_grammar.y" /* glr.c:821 */
5332 {
5333 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5334 }
5335 #line 5336 "src/parser_proc.c" /* glr.c:821 */
5336 break;
5337
5338 case 406:
5339 #line 996 "src/parser_proc_grammar.y" /* glr.c:821 */
5340 {
5341 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5342 }
5343 #line 5344 "src/parser_proc.c" /* glr.c:821 */
5344 break;
5345
5346 case 407:
5347 #line 999 "src/parser_proc_grammar.y" /* glr.c:821 */
5348 {
5349 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5350 }
5351 #line 5352 "src/parser_proc.c" /* glr.c:821 */
5352 break;
5353
5354 case 408:
5355 #line 1002 "src/parser_proc_grammar.y" /* glr.c:821 */
5356 {
5357 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5358 (*(struct psi_token **)(&(*yyvalp))) = psi_token_cat(" ", 2, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5359 } else {
5360 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5361 }
5362 }
5363 #line 5364 "src/parser_proc.c" /* glr.c:821 */
5364 break;
5365
5366 case 409:
5367 #line 1009 "src/parser_proc_grammar.y" /* glr.c:821 */
5368 {
5369 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5370 }
5371 #line 5372 "src/parser_proc.c" /* glr.c:821 */
5372 break;
5373
5374 case 410:
5375 #line 1012 "src/parser_proc_grammar.y" /* glr.c:821 */
5376 {
5377 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5378 (*(struct psi_token **)(&(*yyvalp))) = psi_token_cat(" ", 2, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5379 } else {
5380 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5381 }
5382 }
5383 #line 5384 "src/parser_proc.c" /* glr.c:821 */
5384 break;
5385
5386 case 411:
5387 #line 1022 "src/parser_proc_grammar.y" /* glr.c:821 */
5388 {
5389 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5390 }
5391 #line 5392 "src/parser_proc.c" /* glr.c:821 */
5392 break;
5393
5394 case 413:
5395 #line 1028 "src/parser_proc_grammar.y" /* glr.c:821 */
5396 {
5397 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5398 }
5399 #line 5400 "src/parser_proc.c" /* glr.c:821 */
5400 break;
5401
5402 case 417:
5403 #line 1037 "src/parser_proc_grammar.y" /* glr.c:821 */
5404 {
5405 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5406 }
5407 #line 5408 "src/parser_proc.c" /* glr.c:821 */
5408 break;
5409
5410 case 418:
5411 #line 1040 "src/parser_proc_grammar.y" /* glr.c:821 */
5412 {
5413 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5414 }
5415 #line 5416 "src/parser_proc.c" /* glr.c:821 */
5416 break;
5417
5418 case 419:
5419 #line 1043 "src/parser_proc_grammar.y" /* glr.c:821 */
5420 {
5421 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5422 (*(struct psi_token **)(&(*yyvalp))) = psi_token_cat(" ", 2, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5423 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5424 } else {
5425 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5426 }
5427 }
5428 #line 5429 "src/parser_proc.c" /* glr.c:821 */
5429 break;
5430
5431 case 420:
5432 #line 1054 "src/parser_proc_grammar.y" /* glr.c:821 */
5433 {
5434 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5435 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5436 (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->redir = zend_string_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
5437 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5438 }
5439 }
5440 #line 5441 "src/parser_proc.c" /* glr.c:821 */
5441 break;
5442
5443 case 421:
5444 #line 1061 "src/parser_proc_grammar.y" /* glr.c:821 */
5445 {
5446 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5447 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5448 (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->redir = zend_string_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
5449 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5450 }
5451 }
5452 #line 5453 "src/parser_proc.c" /* glr.c:821 */
5453 break;
5454
5455 case 422:
5456 #line 1071 "src/parser_proc_grammar.y" /* glr.c:821 */
5457 {
5458 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5459 }
5460 #line 5461 "src/parser_proc.c" /* glr.c:821 */
5461 break;
5462
5463 case 423:
5464 #line 1074 "src/parser_proc_grammar.y" /* glr.c:821 */
5465 {
5466 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5467 }
5468 #line 5469 "src/parser_proc.c" /* glr.c:821 */
5469 break;
5470
5471 case 424:
5472 #line 1080 "src/parser_proc_grammar.y" /* glr.c:821 */
5473 {
5474 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5475 }
5476 #line 5477 "src/parser_proc.c" /* glr.c:821 */
5477 break;
5478
5479 case 425:
5480 #line 1083 "src/parser_proc_grammar.y" /* glr.c:821 */
5481 {
5482 (*(struct psi_token **)(&(*yyvalp))) = psi_token_cat("", 2, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5483 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5484 }
5485 #line 5486 "src/parser_proc.c" /* glr.c:821 */
5486 break;
5487
5488 case 426:
5489 #line 1090 "src/parser_proc_grammar.y" /* glr.c:821 */
5490 {
5491 struct psi_plist *list = psi_plist_init((psi_plist_dtor) psi_decl_extvar_free);
5492
5493 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))) {
5494 size_t i = 0;
5495 struct psi_decl_var *var;
5496
5497 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), i++, &var)) {
5498 if (psi_decl_extvar_is_blacklisted(var->name->val)) {
5499 psi_decl_var_free(&var);
5500 } else {
5501 struct psi_decl_extvar *evar = psi_decl_extvar_init(
5502 psi_decl_arg_init(psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type), var));
5503 list = psi_plist_add(list, &evar);
5504 }
5505 }
5506 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5507 }
5508
5509 if (psi_decl_extvar_is_blacklisted((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->var->name->val)) {
5510 psi_decl_arg_free(&(*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5511 } else {
5512 struct psi_decl_extvar *evar = psi_decl_extvar_init((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5513
5514 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5515 evar->redir = zend_string_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
5516 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5517 }
5518 list = psi_plist_add(list, &evar);
5519 }
5520
5521 (*(struct psi_plist **)(&(*yyvalp))) = list;
5522 }
5523 #line 5524 "src/parser_proc.c" /* glr.c:821 */
5524 break;
5525
5526 case 427:
5527 #line 1126 "src/parser_proc_grammar.y" /* glr.c:821 */
5528 {
5529 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5530 }
5531 #line 5532 "src/parser_proc.c" /* glr.c:821 */
5532 break;
5533
5534 case 428:
5535 #line 1129 "src/parser_proc_grammar.y" /* glr.c:821 */
5536 {
5537 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5538 }
5539 #line 5540 "src/parser_proc.c" /* glr.c:821 */
5540 break;
5541
5542 case 429:
5543 #line 1135 "src/parser_proc_grammar.y" /* glr.c:821 */
5544 {
5545 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_var_free), &(*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5546 }
5547 #line 5548 "src/parser_proc.c" /* glr.c:821 */
5548 break;
5549
5550 case 430:
5551 #line 1138 "src/parser_proc_grammar.y" /* glr.c:821 */
5552 {
5553 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &(*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5554 }
5555 #line 5556 "src/parser_proc.c" /* glr.c:821 */
5556 break;
5557
5558 case 431:
5559 #line 1144 "src/parser_proc_grammar.y" /* glr.c:821 */
5560 {
5561 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5562 }
5563 #line 5564 "src/parser_proc.c" /* glr.c:821 */
5564 break;
5565
5566 case 444:
5567 #line 1174 "src/parser_proc_grammar.y" /* glr.c:821 */
5568 {
5569 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5570 (*(struct psi_decl **)(&(*yyvalp)))->abi = psi_decl_abi_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
5571 }
5572 #line 5573 "src/parser_proc.c" /* glr.c:821 */
5573 break;
5574
5575 case 447:
5576 #line 1186 "src/parser_proc_grammar.y" /* glr.c:821 */
5577 {
5578 (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5579 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5580 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5581 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5582 }
5583 }
5584 #line 5585 "src/parser_proc.c" /* glr.c:821 */
5585 break;
5586
5587 case 448:
5588 #line 1193 "src/parser_proc_grammar.y" /* glr.c:821 */
5589 {
5590 (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
5591 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
5592 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5593 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5594 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5595 }
5596 }
5597 #line 5598 "src/parser_proc.c" /* glr.c:821 */
5598 break;
5599
5600 case 449:
5601 #line 1204 "src/parser_proc_grammar.y" /* glr.c:821 */
5602 {
5603 (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5604 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5605 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5606 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5607 }
5608 }
5609 #line 5610 "src/parser_proc.c" /* glr.c:821 */
5610 break;
5611
5612 case 450:
5613 #line 1211 "src/parser_proc_grammar.y" /* glr.c:821 */
5614 {
5615 (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
5616 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
5617 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5618 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5619 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5620 }
5621 }
5622 #line 5623 "src/parser_proc.c" /* glr.c:821 */
5623 break;
5624
5625 case 451:
5626 #line 1219 "src/parser_proc_grammar.y" /* glr.c:821 */
5627 {
5628 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval));
5629 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5630
5631 struct psi_token *type_token = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval))), 1, "rval");
5632 struct psi_decl_arg *rval_func = psi_decl_arg_init((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-12)].yystate.yysemantics.yysval)), psi_decl_var_init(type_token->text, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-11)].yystate.yysemantics.yysval)), 0));
5633 struct psi_decl *rval_decl = psi_decl_init(rval_func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5634
5635 rval_func->var->token = psi_token_copy(type_token);
5636 rval_func->token = psi_token_copy(type_token);
5637 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5638 rval_func->var->pointer_level += 1;
5639 rval_func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5640 }
5641
5642 struct psi_decl_type *type = psi_decl_type_init(PSI_T_FUNCTION, type_token->text);
5643 struct psi_decl_arg *func = psi_decl_arg_init(type, psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval))->text, 1, 0));
5644
5645 type->real.func = rval_decl;
5646 func->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval)));
5647 func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval)));
5648
5649 (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init(func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
5650 }
5651 #line 5652 "src/parser_proc.c" /* glr.c:821 */
5652 break;
5653
5654 case 452:
5655 #line 1243 "src/parser_proc_grammar.y" /* glr.c:821 */
5656 {
5657 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-12)].yystate.yysemantics.yysval));
5658 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval));
5659 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5660
5661 struct psi_token *type_token = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval))), 1, "rval");
5662 struct psi_decl_arg *rval_func = psi_decl_arg_init((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-15)].yystate.yysemantics.yysval)), psi_decl_var_init(type_token->text, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-14)].yystate.yysemantics.yysval)), 0));
5663 struct psi_decl *rval_decl = psi_decl_init(rval_func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5664
5665 rval_func->var->token = psi_token_copy(type_token);
5666 rval_func->token = psi_token_copy(type_token);
5667 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5668 rval_func->var->pointer_level += 1;
5669 rval_func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5670 }
5671
5672 struct psi_decl_type *type = psi_decl_type_init(PSI_T_FUNCTION, type_token->text);
5673 struct psi_decl_arg *func = psi_decl_arg_init(type, psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval))->text, 1, 0));
5674
5675 type->real.func = rval_decl;
5676 func->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval)));
5677 func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval)));
5678 type->token = type_token;
5679
5680 (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init(func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
5681 }
5682 #line 5683 "src/parser_proc.c" /* glr.c:821 */
5683 break;
5684
5685 case 453:
5686 #line 1272 "src/parser_proc_grammar.y" /* glr.c:821 */
5687 {
5688 (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5689 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5690 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5691 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5692 }
5693 }
5694 #line 5695 "src/parser_proc.c" /* glr.c:821 */
5695 break;
5696
5697 case 454:
5698 #line 1279 "src/parser_proc_grammar.y" /* glr.c:821 */
5699 {
5700 (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
5701 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
5702 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5703 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5704 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5705 }
5706 }
5707 #line 5708 "src/parser_proc.c" /* glr.c:821 */
5708 break;
5709
5710 case 455:
5711 #line 1290 "src/parser_proc_grammar.y" /* glr.c:821 */
5712 {
5713 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5714 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5715 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)), psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)), 0));
5716 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5717 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5718 }
5719 #line 5720 "src/parser_proc.c" /* glr.c:821 */
5720 break;
5721
5722 case 456:
5723 #line 1336 "src/parser_proc_grammar.y" /* glr.c:821 */
5724 {
5725 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5726 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)), psi_decl_var_init(NULL, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), 0));
5727 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5728 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5729 }
5730 #line 5731 "src/parser_proc.c" /* glr.c:821 */
5731 break;
5732
5733 case 458:
5734 #line 1392 "src/parser_proc_grammar.y" /* glr.c:821 */
5735 {
5736 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5737 }
5738 #line 5739 "src/parser_proc.c" /* glr.c:821 */
5739 break;
5740
5741 case 459:
5742 #line 1395 "src/parser_proc_grammar.y" /* glr.c:821 */
5743 {
5744 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5745 }
5746 #line 5747 "src/parser_proc.c" /* glr.c:821 */
5747 break;
5748
5749 case 460:
5750 #line 1398 "src/parser_proc_grammar.y" /* glr.c:821 */
5751 {
5752 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5753 }
5754 #line 5755 "src/parser_proc.c" /* glr.c:821 */
5755 break;
5756
5757 case 461:
5758 #line 1404 "src/parser_proc_grammar.y" /* glr.c:821 */
5759 {
5760 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &(*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5761 }
5762 #line 5763 "src/parser_proc.c" /* glr.c:821 */
5763 break;
5764
5765 case 462:
5766 #line 1407 "src/parser_proc_grammar.y" /* glr.c:821 */
5767 {
5768 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &(*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5769 }
5770 #line 5771 "src/parser_proc.c" /* glr.c:821 */
5771 break;
5772
5773 case 463:
5774 #line 1413 "src/parser_proc_grammar.y" /* glr.c:821 */
5775 {
5776 char digest[17];
5777 struct psi_token *name;
5778
5779 psi_token_hash((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token, digest);
5780 name = psi_token_append("@", psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token), 2, "funct", digest);
5781
5782 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5783 psi_decl_type_init(PSI_T_FUNCTION, name->text),
5784 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
5785 );
5786 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = name;
5787 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
5788 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5789 }
5790 #line 5791 "src/parser_proc.c" /* glr.c:821 */
5791 break;
5792
5793 case 464:
5794 #line 1428 "src/parser_proc_grammar.y" /* glr.c:821 */
5795 {
5796 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5797 }
5798 #line 5799 "src/parser_proc.c" /* glr.c:821 */
5799 break;
5800
5801 case 465:
5802 #line 1431 "src/parser_proc_grammar.y" /* glr.c:821 */
5803 {
5804 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5805 (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)),
5806 psi_decl_var_init(NULL, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)))
5807 );
5808 }
5809 #line 5810 "src/parser_proc.c" /* glr.c:821 */
5810 break;
5811
5812 case 466:
5813 #line 1460 "src/parser_proc_grammar.y" /* glr.c:821 */
5814 {
5815 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5816 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
5817 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
5818 );
5819 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
5820 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5821 }
5822 #line 5823 "src/parser_proc.c" /* glr.c:821 */
5823 break;
5824
5825 case 467:
5826 #line 1468 "src/parser_proc_grammar.y" /* glr.c:821 */
5827 {
5828 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5829 }
5830 #line 5831 "src/parser_proc.c" /* glr.c:821 */
5831 break;
5832
5833 case 468:
5834 #line 1496 "src/parser_proc_grammar.y" /* glr.c:821 */
5835 {
5836 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5837 (*(struct psi_decl_var **)(&(*yyvalp))) = psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)) + !! (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5838 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5839 }
5840 #line 5841 "src/parser_proc.c" /* glr.c:821 */
5841 break;
5842
5843 case 469:
5844 #line 1501 "src/parser_proc_grammar.y" /* glr.c:821 */
5845 {
5846 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5847 (*(struct psi_decl_var **)(&(*yyvalp))) = psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text, !! (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5848 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5849 }
5850 #line 5851 "src/parser_proc.c" /* glr.c:821 */
5851 break;
5852
5853 case 470:
5854 #line 1509 "src/parser_proc_grammar.y" /* glr.c:821 */
5855 {
5856 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5857 (*(struct psi_decl_union **)(&(*yyvalp))) = psi_decl_union_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->text, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5858 (*(struct psi_decl_union **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
5859 (*(struct psi_decl_union **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
5860 (*(struct psi_decl_union **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5861 }
5862 #line 5863 "src/parser_proc.c" /* glr.c:821 */
5863 break;
5864
5865 case 471:
5866 #line 1519 "src/parser_proc_grammar.y" /* glr.c:821 */
5867 {
5868 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5869 (*(struct psi_decl_struct **)(&(*yyvalp))) = psi_decl_struct_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->text, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5870 (*(struct psi_decl_struct **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
5871 (*(struct psi_decl_struct **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
5872 (*(struct psi_decl_struct **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5873 }
5874 #line 5875 "src/parser_proc.c" /* glr.c:821 */
5875 break;
5876
5877 case 472:
5878 #line 1529 "src/parser_proc_grammar.y" /* glr.c:821 */
5879 {
5880 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5881 }
5882 #line 5883 "src/parser_proc.c" /* glr.c:821 */
5883 break;
5884
5885 case 474:
5886 #line 1536 "src/parser_proc_grammar.y" /* glr.c:821 */
5887 {
5888 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5889 }
5890 #line 5891 "src/parser_proc.c" /* glr.c:821 */
5891 break;
5892
5893 case 475:
5894 #line 1542 "src/parser_proc_grammar.y" /* glr.c:821 */
5895 {
5896 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5897 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &(*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5898 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5899 size_t i = 0;
5900 struct psi_decl_arg *arg;
5901
5902 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
5903 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
5904 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
5905 }
5906 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5907 }
5908 }
5909 #line 5910 "src/parser_proc.c" /* glr.c:821 */
5910 break;
5911
5912 case 476:
5913 #line 1556 "src/parser_proc_grammar.y" /* glr.c:821 */
5914 {
5915 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5916 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)), &(*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5917 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5918 size_t i = 0;
5919 struct psi_decl_arg *arg;
5920
5921 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
5922 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
5923 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
5924 }
5925 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5926 }
5927 }
5928 #line 5929 "src/parser_proc.c" /* glr.c:821 */
5929 break;
5930
5931 case 477:
5932 #line 1573 "src/parser_proc_grammar.y" /* glr.c:821 */
5933 {
5934 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5935 }
5936 #line 5937 "src/parser_proc.c" /* glr.c:821 */
5937 break;
5938
5939 case 478:
5940 #line 1576 "src/parser_proc_grammar.y" /* glr.c:821 */
5941 {
5942 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5943 }
5944 #line 5945 "src/parser_proc.c" /* glr.c:821 */
5945 break;
5946
5947 case 479:
5948 #line 1582 "src/parser_proc_grammar.y" /* glr.c:821 */
5949 {
5950 {
5951 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5952 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5953 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &arg);
5954 }
5955 }
5956 #line 5957 "src/parser_proc.c" /* glr.c:821 */
5957 break;
5958
5959 case 480:
5960 #line 1589 "src/parser_proc_grammar.y" /* glr.c:821 */
5961 {
5962 {
5963 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5964 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5965 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), &arg);
5966 }
5967 }
5968 #line 5969 "src/parser_proc.c" /* glr.c:821 */
5969 break;
5970
5971 case 481:
5972 #line 1596 "src/parser_proc_grammar.y" /* glr.c:821 */
5973 {
5974 {
5975 struct psi_decl_var *var = psi_decl_var_init(NULL, 0, 0);
5976 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, var);
5977 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5978 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &arg);
5979 }
5980 }
5981 #line 5982 "src/parser_proc.c" /* glr.c:821 */
5982 break;
5983
5984 case 482:
5985 #line 1604 "src/parser_proc_grammar.y" /* glr.c:821 */
5986 {
5987 {
5988 struct psi_decl_var *var = psi_decl_var_init(NULL, 0, 0);
5989 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, var);
5990 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5991 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &arg);
5992 }
5993 }
5994 #line 5995 "src/parser_proc.c" /* glr.c:821 */
5995 break;
5996
5997 case 483:
5998 #line 1615 "src/parser_proc_grammar.y" /* glr.c:821 */
5999 {
6000 (*(struct psi_decl_enum **)(&(*yyvalp))) = psi_decl_enum_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval))->text, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6001 (*(struct psi_decl_enum **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval));
6002 }
6003 #line 6004 "src/parser_proc.c" /* glr.c:821 */
6004 break;
6005
6006 case 484:
6007 #line 1622 "src/parser_proc_grammar.y" /* glr.c:821 */
6008 {
6009 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_enum_item_free), &(*(struct psi_decl_enum_item **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6010 }
6011 #line 6012 "src/parser_proc.c" /* glr.c:821 */
6012 break;
6013
6014 case 485:
6015 #line 1625 "src/parser_proc_grammar.y" /* glr.c:821 */
6016 {
6017 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &(*(struct psi_decl_enum_item **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6018 }
6019 #line 6020 "src/parser_proc.c" /* glr.c:821 */
6020 break;
6021
6022 case 486:
6023 #line 1631 "src/parser_proc_grammar.y" /* glr.c:821 */
6024 {
6025 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
6026 (*(struct psi_decl_enum_item **)(&(*yyvalp))) = psi_decl_enum_item_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, NULL);
6027 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6028 }
6029 #line 6030 "src/parser_proc.c" /* glr.c:821 */
6030 break;
6031
6032 case 487:
6033 #line 1636 "src/parser_proc_grammar.y" /* glr.c:821 */
6034 {
6035 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
6036 (*(struct psi_decl_enum_item **)(&(*yyvalp))) = psi_decl_enum_item_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->text, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6037 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6038 }
6039 #line 6040 "src/parser_proc.c" /* glr.c:821 */
6040 break;
6041
6042 case 488:
6043 #line 1644 "src/parser_proc_grammar.y" /* glr.c:821 */
6044 {
6045 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6046 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
6047 }
6048 #line 6049 "src/parser_proc.c" /* glr.c:821 */
6049 break;
6050
6051 case 489:
6052 #line 1648 "src/parser_proc_grammar.y" /* glr.c:821 */
6053 {
6054 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_cast((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6055 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->token);
6056 }
6057 #line 6058 "src/parser_proc.c" /* glr.c:821 */
6058 break;
6059
6060 case 490:
6061 #line 1652 "src/parser_proc_grammar.y" /* glr.c:821 */
6062 {
6063 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_unary(PSI_T_LPAREN, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6064 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6065 }
6066 #line 6067 "src/parser_proc.c" /* glr.c:821 */
6067 break;
6068
6069 case 491:
6070 #line 1656 "src/parser_proc_grammar.y" /* glr.c:821 */
6071 {
6072 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_binary((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6073 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6074 }
6075 #line 6076 "src/parser_proc.c" /* glr.c:821 */
6076 break;
6077
6078 case 492:
6079 #line 1660 "src/parser_proc_grammar.y" /* glr.c:821 */
6080 {
6081 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_unary((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6082 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6083 }
6084 #line 6085 "src/parser_proc.c" /* glr.c:821 */
6085 break;
6086
6087 case 493:
6088 #line 1664 "src/parser_proc_grammar.y" /* glr.c:821 */
6089 {
6090 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_ternary((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6091 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
6092 }
6093 #line 6094 "src/parser_proc.c" /* glr.c:821 */
6094 break;
6095
6096 case 494:
6097 #line 1671 "src/parser_proc_grammar.y" /* glr.c:821 */
6098 {
6099 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->flags);
6100 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6101 }
6102 #line 6103 "src/parser_proc.c" /* glr.c:821 */
6103 break;
6104
6105 case 495:
6106 #line 1675 "src/parser_proc_grammar.y" /* glr.c:821 */
6107 {
6108 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0);
6109 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6110 }
6111 #line 6112 "src/parser_proc.c" /* glr.c:821 */
6112 break;
6113
6114 case 496:
6115 #line 1679 "src/parser_proc_grammar.y" /* glr.c:821 */
6116 {
6117 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0);
6118 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6119 }
6120 #line 6121 "src/parser_proc.c" /* glr.c:821 */
6121 break;
6122
6123 case 497:
6124 #line 1683 "src/parser_proc_grammar.y" /* glr.c:821 */
6125 {
6126 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0);
6127 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6128 }
6129 #line 6130 "src/parser_proc.c" /* glr.c:821 */
6130 break;
6131
6132 case 498:
6133 #line 1687 "src/parser_proc_grammar.y" /* glr.c:821 */
6134 {
6135 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_NAME, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0);
6136 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
6137 }
6138 #line 6139 "src/parser_proc.c" /* glr.c:821 */
6139 break;
6140
6141 case 499:
6142 #line 1691 "src/parser_proc_grammar.y" /* glr.c:821 */
6143 {
6144 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6145 }
6146 #line 6147 "src/parser_proc.c" /* glr.c:821 */
6147 break;
6148
6149 case 500:
6150 #line 1697 "src/parser_proc_grammar.y" /* glr.c:821 */
6151 {
6152 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
6153 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
6154 }
6155 #line 6156 "src/parser_proc.c" /* glr.c:821 */
6156 break;
6157
6158 case 501:
6159 #line 1701 "src/parser_proc_grammar.y" /* glr.c:821 */
6160 {
6161 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6162 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6163 }
6164 #line 6165 "src/parser_proc.c" /* glr.c:821 */
6165 break;
6166
6167 case 502:
6168 #line 1708 "src/parser_proc_grammar.y" /* glr.c:821 */
6169 {
6170 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6171 }
6172 #line 6173 "src/parser_proc.c" /* glr.c:821 */
6173 break;
6174
6175 case 503:
6176 #line 1711 "src/parser_proc_grammar.y" /* glr.c:821 */
6177 {
6178 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
6179 int8_t sizeof_void_p = sizeof(void *);
6180 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0);
6181 psi_decl_type_free(&(*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6182 } else {
6183 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_SIZEOF, (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), 0);
6184 }
6185 }
6186 #line 6187 "src/parser_proc.c" /* glr.c:821 */
6187 break;
6188
6189 case 504:
6190 #line 1723 "src/parser_proc_grammar.y" /* glr.c:821 */
6191 {
6192 int8_t sizeof_void_p = sizeof(void *);
6193 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0);
6194 }
6195 #line 6196 "src/parser_proc.c" /* glr.c:821 */
6196 break;
6197
6198 case 505:
6199 #line 1727 "src/parser_proc_grammar.y" /* glr.c:821 */
6200 {
6201 int8_t sizeof_a = sizeof('a');
6202 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_a, 0);
6203 }
6204 #line 6205 "src/parser_proc.c" /* glr.c:821 */
6205 break;
6206
6207 case 506:
6208 #line 1731 "src/parser_proc_grammar.y" /* glr.c:821 */
6209 {
6210 uint64_t len = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text->len + 1;
6211 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_UINT64, &len, 0);
6212 }
6213 #line 6214 "src/parser_proc.c" /* glr.c:821 */
6214 break;
6215
6216 case 507:
6217 #line 1738 "src/parser_proc_grammar.y" /* glr.c:821 */
6218 {
6219 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
6220 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6221 } else {
6222 char digest[17];
6223
6224 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
6225 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
6226 }
6227 }
6228 #line 6229 "src/parser_proc.c" /* glr.c:821 */
6229 break;
6230
6231 case 508:
6232 #line 1751 "src/parser_proc_grammar.y" /* glr.c:821 */
6233 {
6234 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
6235 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6236 } else {
6237 char digest[17];
6238
6239 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
6240 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
6241 }
6242 }
6243 #line 6244 "src/parser_proc.c" /* glr.c:821 */
6244 break;
6245
6246 case 509:
6247 #line 1764 "src/parser_proc_grammar.y" /* glr.c:821 */
6248 {
6249 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
6250 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6251 } else {
6252 char digest[17];
6253
6254 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
6255 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
6256 }
6257 }
6258 #line 6259 "src/parser_proc.c" /* glr.c:821 */
6259 break;
6260
6261 case 510:
6262 #line 1777 "src/parser_proc_grammar.y" /* glr.c:821 */
6263 {
6264 (*(struct psi_token **)(&(*yyvalp))) = NULL;
6265 }
6266 #line 6267 "src/parser_proc.c" /* glr.c:821 */
6267 break;
6268
6269 case 511:
6270 #line 1780 "src/parser_proc_grammar.y" /* glr.c:821 */
6271 {
6272 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6273 (*(struct psi_token **)(&(*yyvalp)))->type = PSI_T_NAME;
6274 }
6275 #line 6276 "src/parser_proc.c" /* glr.c:821 */
6276 break;
6277
6278 case 514:
6279 #line 1792 "src/parser_proc_grammar.y" /* glr.c:821 */
6280 {
6281 (*(struct psi_layout **)(&(*yyvalp))) = NULL;
6282 }
6283 #line 6284 "src/parser_proc.c" /* glr.c:821 */
6284 break;
6285
6286 case 515:
6287 #line 1795 "src/parser_proc_grammar.y" /* glr.c:821 */
6288 {
6289 (*(struct psi_layout **)(&(*yyvalp))) = psi_layout_init(0, 0, psi_layout_init(0, atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text->val), NULL));
6290 }
6291 #line 6292 "src/parser_proc.c" /* glr.c:821 */
6292 break;
6293
6294 case 516:
6295 #line 1798 "src/parser_proc_grammar.y" /* glr.c:821 */
6296 {
6297 (*(struct psi_layout **)(&(*yyvalp))) = psi_layout_init(atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text->val), atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text->val), NULL);
6298 }
6299 #line 6300 "src/parser_proc.c" /* glr.c:821 */
6300 break;
6301
6302 case 517:
6303 #line 1801 "src/parser_proc_grammar.y" /* glr.c:821 */
6304 {
6305 (*(struct psi_layout **)(&(*yyvalp))) = psi_layout_init(atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text->val), atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text->val), psi_layout_init(0, atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval))->text->val), NULL));
6306 }
6307 #line 6308 "src/parser_proc.c" /* glr.c:821 */
6308 break;
6309
6310 case 518:
6311 #line 1807 "src/parser_proc_grammar.y" /* glr.c:821 */
6312 {
6313 (*(struct psi_layout*)(&(*yyvalp))).pos = 0;
6314 (*(struct psi_layout*)(&(*yyvalp))).len = 0;
6315 }
6316 #line 6317 "src/parser_proc.c" /* glr.c:821 */
6317 break;
6318
6319 case 519:
6320 #line 1811 "src/parser_proc_grammar.y" /* glr.c:821 */
6321 {
6322 (*(struct psi_layout*)(&(*yyvalp))).pos = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text->val);
6323 (*(struct psi_layout*)(&(*yyvalp))).len = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text->val);
6324 }
6325 #line 6326 "src/parser_proc.c" /* glr.c:821 */
6326 break;
6327
6328 case 520:
6329 #line 1818 "src/parser_proc_grammar.y" /* glr.c:821 */
6330 {
6331 (*(size_t*)(&(*yyvalp))) = 0;
6332 }
6333 #line 6334 "src/parser_proc.c" /* glr.c:821 */
6334 break;
6335
6336 case 521:
6337 #line 1821 "src/parser_proc_grammar.y" /* glr.c:821 */
6338 {
6339 (*(size_t*)(&(*yyvalp))) = 0;
6340 }
6341 #line 6342 "src/parser_proc.c" /* glr.c:821 */
6342 break;
6343
6344 case 522:
6345 #line 1824 "src/parser_proc_grammar.y" /* glr.c:821 */
6346 {
6347 struct psi_validate_scope scope = {0};
6348 psi_validate_scope_ctor(&scope);
6349 scope.cpp = P->preproc;
6350 if (psi_num_exp_validate(PSI_DATA(P), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), &scope)) {
6351 (*(size_t*)(&(*yyvalp))) = psi_num_exp_get_long((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), NULL, P->preproc);
6352 } else {
6353 (*(size_t*)(&(*yyvalp))) = 0;
6354 }
6355 psi_num_exp_free(&(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6356 psi_validate_scope_dtor(&scope);
6357 }
6358 #line 6359 "src/parser_proc.c" /* glr.c:821 */
6359 break;
6360
6361 case 527:
6362 #line 1846 "src/parser_proc_grammar.y" /* glr.c:821 */
6363 {
6364 (*(size_t*)(&(*yyvalp))) = 0;
6365 }
6366 #line 6367 "src/parser_proc.c" /* glr.c:821 */
6367 break;
6368
6369 case 528:
6370 #line 1849 "src/parser_proc_grammar.y" /* glr.c:821 */
6371 {
6372 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6373 }
6374 #line 6375 "src/parser_proc.c" /* glr.c:821 */
6375 break;
6376
6377 case 530:
6378 #line 1856 "src/parser_proc_grammar.y" /* glr.c:821 */
6379 {
6380 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
6381 }
6382 #line 6383 "src/parser_proc.c" /* glr.c:821 */
6383 break;
6384
6385 case 531:
6386 #line 1862 "src/parser_proc_grammar.y" /* glr.c:821 */
6387 {
6388 (*(size_t*)(&(*yyvalp))) = 1;
6389 }
6390 #line 6391 "src/parser_proc.c" /* glr.c:821 */
6391 break;
6392
6393 case 532:
6394 #line 1865 "src/parser_proc_grammar.y" /* glr.c:821 */
6395 {
6396 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)) + 1;
6397 }
6398 #line 6399 "src/parser_proc.c" /* glr.c:821 */
6399 break;
6400
6401 case 537:
6402 #line 1887 "src/parser_proc_grammar.y" /* glr.c:821 */
6403 {
6404 (*(struct psi_impl **)(&(*yyvalp))) = psi_impl_init((*(struct psi_impl_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6405 }
6406 #line 6407 "src/parser_proc.c" /* glr.c:821 */
6407 break;
6408
6409 case 538:
6410 #line 1890 "src/parser_proc_grammar.y" /* glr.c:821 */
6411 {
6412 (*(struct psi_impl **)(&(*yyvalp))) = psi_impl_init((*(struct psi_impl_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6413 (*(struct psi_impl_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->static_memory = 1;
6414 }
6415 #line 6416 "src/parser_proc.c" /* glr.c:821 */
6416 break;
6417
6418 case 539:
6419 #line 1897 "src/parser_proc_grammar.y" /* glr.c:821 */
6420 {
6421 (*(struct psi_impl_func **)(&(*yyvalp))) = psi_impl_func_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval))->text, NULL, (*(struct psi_impl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6422 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
6423 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval));
6424 }
6425 #line 6426 "src/parser_proc.c" /* glr.c:821 */
6426 break;
6427
6428 case 540:
6429 #line 1902 "src/parser_proc_grammar.y" /* glr.c:821 */
6430 {
6431 (*(struct psi_impl_func **)(&(*yyvalp))) = psi_impl_func_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->text, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), (*(struct psi_impl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6432 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6433 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval));
6434 }
6435 #line 6436 "src/parser_proc.c" /* glr.c:821 */
6436 break;
6437
6438 case 541:
6439 #line 1907 "src/parser_proc_grammar.y" /* glr.c:821 */
6440 {
6441 (*(struct psi_impl_func **)(&(*yyvalp))) = psi_impl_func_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval))->text, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval)), (*(struct psi_impl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6442 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval)));
6443 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-11)].yystate.yysemantics.yysval));
6444 (*(struct psi_impl_func **)(&(*yyvalp)))->vararg = psi_impl_arg_init((*(struct psi_impl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)), psi_impl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text, (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))), NULL);
6445 (*(struct psi_impl_func **)(&(*yyvalp)))->vararg->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
6446 }
6447 #line 6448 "src/parser_proc.c" /* glr.c:821 */
6448 break;
6449
6450 case 542:
6451 #line 1917 "src/parser_proc_grammar.y" /* glr.c:821 */
6452 {
6453 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_impl_arg_free), &(*(struct psi_impl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6454 }
6455 #line 6456 "src/parser_proc.c" /* glr.c:821 */
6456 break;
6457
6458 case 543:
6459 #line 1920 "src/parser_proc_grammar.y" /* glr.c:821 */
6460 {
6461 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &(*(struct psi_impl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6462 }
6463 #line 6464 "src/parser_proc.c" /* glr.c:821 */
6464 break;
6465
6466 case 544:
6467 #line 1926 "src/parser_proc_grammar.y" /* glr.c:821 */
6468 {
6469 (*(struct psi_impl_arg **)(&(*yyvalp))) = psi_impl_arg_init((*(struct psi_impl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), (*(struct psi_impl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), NULL);
6470 }
6471 #line 6472 "src/parser_proc.c" /* glr.c:821 */
6472 break;
6473
6474 case 545:
6475 #line 1929 "src/parser_proc_grammar.y" /* glr.c:821 */
6476 {
6477 (*(struct psi_impl_arg **)(&(*yyvalp))) = psi_impl_arg_init((*(struct psi_impl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), (*(struct psi_impl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), (*(struct psi_impl_def_val **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6478 }
6479 #line 6480 "src/parser_proc.c" /* glr.c:821 */
6480 break;
6481
6482 case 546:
6483 #line 1935 "src/parser_proc_grammar.y" /* glr.c:821 */
6484 {
6485 (*(struct psi_impl_var **)(&(*yyvalp))) = psi_impl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6486 (*(struct psi_impl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6487 }
6488 #line 6489 "src/parser_proc.c" /* glr.c:821 */
6489 break;
6490
6491 case 547:
6492 #line 1942 "src/parser_proc_grammar.y" /* glr.c:821 */
6493 {
6494 (*(struct psi_impl_type **)(&(*yyvalp))) = psi_impl_type_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text);
6495 (*(struct psi_impl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6496 }
6497 #line 6498 "src/parser_proc.c" /* glr.c:821 */
6498 break;
6499
6500 case 548:
6501 #line 1949 "src/parser_proc_grammar.y" /* glr.c:821 */
6502 {
6503 (*(struct psi_impl_type **)(&(*yyvalp))) = psi_impl_type_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text);
6504 (*(struct psi_impl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6505 }
6506 #line 6507 "src/parser_proc.c" /* glr.c:821 */
6507 break;
6508
6509 case 560:
6510 #line 1976 "src/parser_proc_grammar.y" /* glr.c:821 */
6511 {
6512 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_impl_stmt_free), &(*(struct psi_token ***)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6513 }
6514 #line 6515 "src/parser_proc.c" /* glr.c:821 */
6515 break;
6516
6517 case 561:
6518 #line 1979 "src/parser_proc_grammar.y" /* glr.c:821 */
6519 {
6520 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), &(*(struct psi_token ***)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6521 }
6522 #line 6523 "src/parser_proc.c" /* glr.c:821 */
6523 break;
6524
6525 case 562:
6526 #line 1985 "src/parser_proc_grammar.y" /* glr.c:821 */
6527 {
6528 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_return_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6529 }
6530 #line 6531 "src/parser_proc.c" /* glr.c:821 */
6531 break;
6532
6533 case 563:
6534 #line 1988 "src/parser_proc_grammar.y" /* glr.c:821 */
6535 {
6536 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_let_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6537 }
6538 #line 6539 "src/parser_proc.c" /* glr.c:821 */
6539 break;
6540
6541 case 564:
6542 #line 1991 "src/parser_proc_grammar.y" /* glr.c:821 */
6543 {
6544 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_set_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6545 }
6546 #line 6547 "src/parser_proc.c" /* glr.c:821 */
6547 break;
6548
6549 case 565:
6550 #line 1994 "src/parser_proc_grammar.y" /* glr.c:821 */
6551 {
6552 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_assert_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6553 }
6554 #line 6555 "src/parser_proc.c" /* glr.c:821 */
6555 break;
6556
6557 case 566:
6558 #line 1997 "src/parser_proc_grammar.y" /* glr.c:821 */
6559 {
6560 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_free_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6561 }
6562 #line 6563 "src/parser_proc.c" /* glr.c:821 */
6563 break;
6564
6565 case 567:
6566 #line 2003 "src/parser_proc_grammar.y" /* glr.c:821 */
6567 {
6568 (*(struct psi_let_stmt **)(&(*yyvalp))) = psi_let_stmt_init((*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6569 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6570 }
6571 #line 6572 "src/parser_proc.c" /* glr.c:821 */
6572 break;
6573
6574 case 568:
6575 #line 2007 "src/parser_proc_grammar.y" /* glr.c:821 */
6576 {
6577 (*(struct psi_let_stmt **)(&(*yyvalp))) = psi_let_stmt_init(psi_let_exp_init_ex((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)), PSI_LET_TMP, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))));
6578 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6579 (*(struct psi_let_stmt **)(&(*yyvalp)))->exp->is_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
6580 }
6581 #line 6582 "src/parser_proc.c" /* glr.c:821 */
6582 break;
6583
6584 case 570:
6585 #line 2016 "src/parser_proc_grammar.y" /* glr.c:821 */
6586 {
6587 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6588 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = true;
6589 }
6590 #line 6591 "src/parser_proc.c" /* glr.c:821 */
6591 break;
6592
6593 case 571:
6594 #line 2020 "src/parser_proc_grammar.y" /* glr.c:821 */
6595 {
6596 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6597 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = false;
6598 }
6599 #line 6600 "src/parser_proc.c" /* glr.c:821 */
6600 break;
6601
6602 case 572:
6603 #line 2027 "src/parser_proc_grammar.y" /* glr.c:821 */
6604 {
6605 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_NULL, NULL);
6606 }
6607 #line 6608 "src/parser_proc.c" /* glr.c:821 */
6608 break;
6609
6610 case 573:
6611 #line 2030 "src/parser_proc_grammar.y" /* glr.c:821 */
6612 {
6613 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init_ex(NULL, PSI_LET_NUMEXP, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6614 }
6615 #line 6616 "src/parser_proc.c" /* glr.c:821 */
6616 break;
6617
6618 case 574:
6619 #line 2033 "src/parser_proc_grammar.y" /* glr.c:821 */
6620 {
6621 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6622 }
6623 #line 6624 "src/parser_proc.c" /* glr.c:821 */
6624 break;
6625
6626 case 575:
6627 #line 2036 "src/parser_proc_grammar.y" /* glr.c:821 */
6628 {
6629 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6630 (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->static_memory = 1;
6631 }
6632 #line 6633 "src/parser_proc.c" /* glr.c:821 */
6633 break;
6634
6635 case 576:
6636 #line 2040 "src/parser_proc_grammar.y" /* glr.c:821 */
6637 {
6638 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLBACK, (*(struct psi_let_callback **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6639 }
6640 #line 6641 "src/parser_proc.c" /* glr.c:821 */
6641 break;
6642
6643 case 577:
6644 #line 2043 "src/parser_proc_grammar.y" /* glr.c:821 */
6645 {
6646 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init_ex(NULL, PSI_LET_FUNC, (*(struct psi_let_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6647 }
6648 #line 6649 "src/parser_proc.c" /* glr.c:821 */
6649 break;
6650
6651 case 578:
6652 #line 2049 "src/parser_proc_grammar.y" /* glr.c:821 */
6653 {
6654 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6655 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
6656 }
6657 #line 6658 "src/parser_proc.c" /* glr.c:821 */
6658 break;
6659
6660 case 579:
6661 #line 2053 "src/parser_proc_grammar.y" /* glr.c:821 */
6662 {
6663 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6664 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = 1;
6665 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
6666 }
6667 #line 6668 "src/parser_proc.c" /* glr.c:821 */
6668 break;
6669
6670 case 580:
6671 #line 2061 "src/parser_proc_grammar.y" /* glr.c:821 */
6672 {
6673 (*(struct psi_let_calloc **)(&(*yyvalp))) = psi_let_calloc_init((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6674 (*(struct psi_let_calloc **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6675 }
6676 #line 6677 "src/parser_proc.c" /* glr.c:821 */
6677 break;
6678
6679 case 581:
6680 #line 2068 "src/parser_proc_grammar.y" /* glr.c:821 */
6681 {
6682 (*(struct psi_let_callback **)(&(*yyvalp))) = psi_let_callback_init(psi_let_func_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval))->text, (*(struct psi_impl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval))), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), NULL);
6683 (*(struct psi_let_callback **)(&(*yyvalp)))->func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
6684 (*(struct psi_let_callback **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval)));
6685 }
6686 #line 6687 "src/parser_proc.c" /* glr.c:821 */
6687 break;
6688
6689 case 582:
6690 #line 2073 "src/parser_proc_grammar.y" /* glr.c:821 */
6691 {
6692 (*(struct psi_let_callback **)(&(*yyvalp))) = psi_let_callback_init(psi_let_func_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval))->text, (*(struct psi_impl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval))), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval)));
6693 (*(struct psi_let_callback **)(&(*yyvalp)))->func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
6694 (*(struct psi_let_callback **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-11)].yystate.yysemantics.yysval)));
6695 }
6696 #line 6697 "src/parser_proc.c" /* glr.c:821 */
6697 break;
6698
6699 case 583:
6700 #line 2081 "src/parser_proc_grammar.y" /* glr.c:821 */
6701 {
6702 (*(struct psi_let_func **)(&(*yyvalp))) = psi_let_func_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval))->text, (*(struct psi_impl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6703 (*(struct psi_let_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
6704 (*(struct psi_let_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
6705 }
6706 #line 6707 "src/parser_proc.c" /* glr.c:821 */
6707 break;
6708
6709 case 594:
6710 #line 2102 "src/parser_proc_grammar.y" /* glr.c:821 */
6711 {
6712 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6713 }
6714 #line 6715 "src/parser_proc.c" /* glr.c:821 */
6715 break;
6716
6717 case 595:
6718 #line 2105 "src/parser_proc_grammar.y" /* glr.c:821 */
6719 {
6720 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6721 }
6722 #line 6723 "src/parser_proc.c" /* glr.c:821 */
6723 break;
6724
6725 case 596:
6726 #line 2111 "src/parser_proc_grammar.y" /* glr.c:821 */
6727 {
6728 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_let_exp_free), &(*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6729 }
6730 #line 6731 "src/parser_proc.c" /* glr.c:821 */
6731 break;
6732
6733 case 597:
6734 #line 2114 "src/parser_proc_grammar.y" /* glr.c:821 */
6735 {
6736 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &(*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6737 }
6738 #line 6739 "src/parser_proc.c" /* glr.c:821 */
6739 break;
6740
6741 case 600:
6742 #line 2125 "src/parser_proc_grammar.y" /* glr.c:821 */
6743 {
6744 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6745 }
6746 #line 6747 "src/parser_proc.c" /* glr.c:821 */
6747 break;
6748
6749 case 601:
6750 #line 2128 "src/parser_proc_grammar.y" /* glr.c:821 */
6751 {
6752 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6753 }
6754 #line 6755 "src/parser_proc.c" /* glr.c:821 */
6755 break;
6756
6757 case 602:
6758 #line 2134 "src/parser_proc_grammar.y" /* glr.c:821 */
6759 {
6760 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_set_exp_free), &(*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6761 }
6762 #line 6763 "src/parser_proc.c" /* glr.c:821 */
6763 break;
6764
6765 case 603:
6766 #line 2137 "src/parser_proc_grammar.y" /* glr.c:821 */
6767 {
6768 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &(*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6769 }
6770 #line 6771 "src/parser_proc.c" /* glr.c:821 */
6771 break;
6772
6773 case 604:
6774 #line 2143 "src/parser_proc_grammar.y" /* glr.c:821 */
6775 {
6776 (*(struct psi_return_stmt **)(&(*yyvalp))) = psi_return_stmt_init((*(struct psi_return_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6777 (*(struct psi_return_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6778 }
6779 #line 6780 "src/parser_proc.c" /* glr.c:821 */
6780 break;
6781
6782 case 605:
6783 #line 2150 "src/parser_proc_grammar.y" /* glr.c:821 */
6784 {
6785 (*(struct psi_return_exp **)(&(*yyvalp))) = psi_return_exp_init((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), psi_set_exp_init(PSI_SET_FUNC, (*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))));
6786 (*(struct psi_return_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->token);
6787 }
6788 #line 6789 "src/parser_proc.c" /* glr.c:821 */
6789 break;
6790
6791 case 606:
6792 #line 2154 "src/parser_proc_grammar.y" /* glr.c:821 */
6793 {
6794 (*(struct psi_return_exp **)(&(*yyvalp))) = psi_return_exp_init(NULL, NULL, psi_set_exp_init(PSI_SET_FUNC, (*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))));
6795 (*(struct psi_return_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
6796 }
6797 #line 6798 "src/parser_proc.c" /* glr.c:821 */
6798 break;
6799
6800 case 607:
6801 #line 2161 "src/parser_proc_grammar.y" /* glr.c:821 */
6802 {
6803 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6804 }
6805 #line 6806 "src/parser_proc.c" /* glr.c:821 */
6806 break;
6807
6808 case 608:
6809 #line 2164 "src/parser_proc_grammar.y" /* glr.c:821 */
6810 {
6811 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6812 }
6813 #line 6814 "src/parser_proc.c" /* glr.c:821 */
6814 break;
6815
6816 case 609:
6817 #line 2167 "src/parser_proc_grammar.y" /* glr.c:821 */
6818 {
6819 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6820 }
6821 #line 6822 "src/parser_proc.c" /* glr.c:821 */
6822 break;
6823
6824 case 610:
6825 #line 2173 "src/parser_proc_grammar.y" /* glr.c:821 */
6826 {
6827 (*(struct psi_set_stmt **)(&(*yyvalp))) = psi_set_stmt_init((*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6828 (*(struct psi_set_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6829 }
6830 #line 6831 "src/parser_proc.c" /* glr.c:821 */
6831 break;
6832
6833 case 611:
6834 #line 2180 "src/parser_proc_grammar.y" /* glr.c:821 */
6835 {
6836 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_FUNC, (*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6837 }
6838 #line 6839 "src/parser_proc.c" /* glr.c:821 */
6839 break;
6840
6841 case 612:
6842 #line 2183 "src/parser_proc_grammar.y" /* glr.c:821 */
6843 {
6844 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_NUMEXP, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6845 }
6846 #line 6847 "src/parser_proc.c" /* glr.c:821 */
6847 break;
6848
6849 case 613:
6850 #line 2186 "src/parser_proc_grammar.y" /* glr.c:821 */
6851 {
6852 (*(struct psi_set_exp **)(&(*yyvalp))) = (*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6853 (*(struct psi_set_exp **)(&(*yyvalp)))->var = (*(struct psi_impl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
6854 }
6855 #line 6856 "src/parser_proc.c" /* glr.c:821 */
6856 break;
6857
6858 case 614:
6859 #line 2193 "src/parser_proc_grammar.y" /* glr.c:821 */
6860 {
6861 (*(struct psi_set_func **)(&(*yyvalp))) = psi_set_func_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval))->text, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6862 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
6863 (*(struct psi_set_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
6864 }
6865 #line 6866 "src/parser_proc.c" /* glr.c:821 */
6866 break;
6867
6868 case 615:
6869 #line 2198 "src/parser_proc_grammar.y" /* glr.c:821 */
6870 {
6871 (*(struct psi_set_func **)(&(*yyvalp))) = psi_set_func_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->text, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
6872 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6873 (*(struct psi_set_func **)(&(*yyvalp)))->recursive = 1;
6874 }
6875 #line 6876 "src/parser_proc.c" /* glr.c:821 */
6876 break;
6877
6878 case 624:
6879 #line 2217 "src/parser_proc_grammar.y" /* glr.c:821 */
6880 {
6881 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6882 }
6883 #line 6884 "src/parser_proc.c" /* glr.c:821 */
6884 break;
6885
6886 case 625:
6887 #line 2220 "src/parser_proc_grammar.y" /* glr.c:821 */
6888 {
6889 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6890 }
6891 #line 6892 "src/parser_proc.c" /* glr.c:821 */
6892 break;
6893
6894 case 626:
6895 #line 2226 "src/parser_proc_grammar.y" /* glr.c:821 */
6896 {
6897 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_set_exp_free), &(*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6898 }
6899 #line 6900 "src/parser_proc.c" /* glr.c:821 */
6900 break;
6901
6902 case 627:
6903 #line 2229 "src/parser_proc_grammar.y" /* glr.c:821 */
6904 {
6905 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &(*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6906 }
6907 #line 6908 "src/parser_proc.c" /* glr.c:821 */
6908 break;
6909
6910 case 628:
6911 #line 2235 "src/parser_proc_grammar.y" /* glr.c:821 */
6912 {
6913 (*(struct psi_assert_stmt **)(&(*yyvalp))) = psi_assert_stmt_init((enum psi_assert_kind) (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6914 (*(struct psi_assert_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6915 }
6916 #line 6917 "src/parser_proc.c" /* glr.c:821 */
6917 break;
6918
6919 case 631:
6920 #line 2247 "src/parser_proc_grammar.y" /* glr.c:821 */
6921 {
6922 (*(struct psi_free_stmt **)(&(*yyvalp))) = psi_free_stmt_init((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6923 (*(struct psi_free_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6924 }
6925 #line 6926 "src/parser_proc.c" /* glr.c:821 */
6926 break;
6927
6928 case 632:
6929 #line 2254 "src/parser_proc_grammar.y" /* glr.c:821 */
6930 {
6931 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_free_exp_free), &(*(struct psi_free_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6932 }
6933 #line 6934 "src/parser_proc.c" /* glr.c:821 */
6934 break;
6935
6936 case 633:
6937 #line 2257 "src/parser_proc_grammar.y" /* glr.c:821 */
6938 {
6939 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &(*(struct psi_free_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6940 }
6941 #line 6942 "src/parser_proc.c" /* glr.c:821 */
6942 break;
6943
6944 case 634:
6945 #line 2263 "src/parser_proc_grammar.y" /* glr.c:821 */
6946 {
6947 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
6948 (*(struct psi_free_exp **)(&(*yyvalp))) = psi_free_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6949 (*(struct psi_free_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
6950 }
6951 #line 6952 "src/parser_proc.c" /* glr.c:821 */
6952 break;
6953
6954 case 635:
6955 #line 2271 "src/parser_proc_grammar.y" /* glr.c:821 */
6956 {
6957 (*(bool*)(&(*yyvalp))) = false;
6958 }
6959 #line 6960 "src/parser_proc.c" /* glr.c:821 */
6960 break;
6961
6962 case 636:
6963 #line 2274 "src/parser_proc_grammar.y" /* glr.c:821 */
6964 {
6965 (*(bool*)(&(*yyvalp))) = true;
6966 }
6967 #line 6968 "src/parser_proc.c" /* glr.c:821 */
6968 break;
6969
6970
6971 #line 6972 "src/parser_proc.c" /* glr.c:821 */
6972 default: break;
6973 }
6974
6975 return yyok;
6976 # undef yyerrok
6977 # undef YYABORT
6978 # undef YYACCEPT
6979 # undef YYERROR
6980 # undef YYBACKUP
6981 # undef yyclearin
6982 # undef YYRECOVERING
6983 }
6984
6985
6986 static void
6987 yyuserMerge (int yyn, YYSTYPE* yy0, YYSTYPE* yy1)
6988 {
6989 YYUSE (yy0);
6990 YYUSE (yy1);
6991
6992 switch (yyn)
6993 {
6994
6995 default: break;
6996 }
6997 }
6998
6999 /* Bison grammar-table manipulation. */
7000
7001 /*-----------------------------------------------.
7002 | Release the memory associated to this symbol. |
7003 `-----------------------------------------------*/
7004
7005 static void
7006 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7007 {
7008 YYUSE (yyvaluep);
7009 YYUSE (P);
7010 YYUSE (tokens);
7011 YYUSE (index);
7012 if (!yymsg)
7013 yymsg = "Deleting";
7014 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
7015
7016 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
7017 switch (yytype)
7018 {
7019 case 141: /* binary_op_token */
7020 #line 289 "src/parser_proc_grammar.y" /* glr.c:851 */
7021 {}
7022 #line 7023 "src/parser_proc.c" /* glr.c:851 */
7023 break;
7024
7025 case 142: /* unary_op_token */
7026 #line 289 "src/parser_proc_grammar.y" /* glr.c:851 */
7027 {}
7028 #line 7029 "src/parser_proc.c" /* glr.c:851 */
7029 break;
7030
7031 case 143: /* name_token */
7032 #line 289 "src/parser_proc_grammar.y" /* glr.c:851 */
7033 {}
7034 #line 7035 "src/parser_proc.c" /* glr.c:851 */
7035 break;
7036
7037 case 144: /* any_noeol_token */
7038 #line 289 "src/parser_proc_grammar.y" /* glr.c:851 */
7039 {}
7040 #line 7041 "src/parser_proc.c" /* glr.c:851 */
7041 break;
7042
7043 case 149: /* lib */
7044 #line 283 "src/parser_proc_grammar.y" /* glr.c:851 */
7045 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7046 #line 7047 "src/parser_proc.c" /* glr.c:851 */
7047 break;
7048
7049 case 150: /* cpp */
7050 #line 298 "src/parser_proc_grammar.y" /* glr.c:851 */
7051 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
7052 #line 7053 "src/parser_proc.c" /* glr.c:851 */
7053 break;
7054
7055 case 151: /* cpp_exp */
7056 #line 298 "src/parser_proc_grammar.y" /* glr.c:851 */
7057 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
7058 #line 7059 "src/parser_proc.c" /* glr.c:851 */
7059 break;
7060
7061 case 153: /* cpp_message_token */
7062 #line 286 "src/parser_proc_grammar.y" /* glr.c:851 */
7063 {}
7064 #line 7065 "src/parser_proc.c" /* glr.c:851 */
7065 break;
7066
7067 case 154: /* cpp_include_token */
7068 #line 286 "src/parser_proc_grammar.y" /* glr.c:851 */
7069 {}
7070 #line 7071 "src/parser_proc.c" /* glr.c:851 */
7071 break;
7072
7073 case 155: /* cpp_header_token */
7074 #line 286 "src/parser_proc_grammar.y" /* glr.c:851 */
7075 {}
7076 #line 7077 "src/parser_proc.c" /* glr.c:851 */
7077 break;
7078
7079 case 156: /* cpp_no_arg_token */
7080 #line 286 "src/parser_proc_grammar.y" /* glr.c:851 */
7081 {}
7082 #line 7083 "src/parser_proc.c" /* glr.c:851 */
7083 break;
7084
7085 case 157: /* cpp_name_arg_token */
7086 #line 286 "src/parser_proc_grammar.y" /* glr.c:851 */
7087 {}
7088 #line 7089 "src/parser_proc.c" /* glr.c:851 */
7089 break;
7090
7091 case 158: /* cpp_exp_arg_token */
7092 #line 286 "src/parser_proc_grammar.y" /* glr.c:851 */
7093 {}
7094 #line 7095 "src/parser_proc.c" /* glr.c:851 */
7095 break;
7096
7097 case 159: /* cpp_macro_decl */
7098 #line 300 "src/parser_proc_grammar.y" /* glr.c:851 */
7099 {psi_cpp_macro_decl_free(&(*(struct psi_cpp_macro_decl **)(&(*yyvaluep))));}
7100 #line 7101 "src/parser_proc.c" /* glr.c:851 */
7101 break;
7102
7103 case 160: /* cpp_macro_sig */
7104 #line 302 "src/parser_proc_grammar.y" /* glr.c:851 */
7105 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7106 #line 7107 "src/parser_proc.c" /* glr.c:851 */
7107 break;
7108
7109 case 161: /* cpp_macro_sig_args */
7110 #line 302 "src/parser_proc_grammar.y" /* glr.c:851 */
7111 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7112 #line 7113 "src/parser_proc.c" /* glr.c:851 */
7113 break;
7114
7115 case 162: /* cpp_macro_decl_tokens */
7116 #line 302 "src/parser_proc_grammar.y" /* glr.c:851 */
7117 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7118 #line 7119 "src/parser_proc.c" /* glr.c:851 */
7119 break;
7120
7121 case 163: /* cpp_macro_decl_token_list */
7122 #line 302 "src/parser_proc_grammar.y" /* glr.c:851 */
7123 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7124 #line 7125 "src/parser_proc.c" /* glr.c:851 */
7125 break;
7126
7127 case 164: /* cpp_macro_exp */
7128 #line 304 "src/parser_proc_grammar.y" /* glr.c:851 */
7129 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
7130 #line 7131 "src/parser_proc.c" /* glr.c:851 */
7131 break;
7132
7133 case 165: /* cpp_macro_call_args */
7134 #line 302 "src/parser_proc_grammar.y" /* glr.c:851 */
7135 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7136 #line 7137 "src/parser_proc.c" /* glr.c:851 */
7137 break;
7138
7139 case 166: /* cpp_macro_call_arg_list */
7140 #line 302 "src/parser_proc_grammar.y" /* glr.c:851 */
7141 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7142 #line 7143 "src/parser_proc.c" /* glr.c:851 */
7143 break;
7144
7145 case 167: /* constant */
7146 #line 310 "src/parser_proc_grammar.y" /* glr.c:851 */
7147 {psi_const_free(&(*(struct psi_const **)(&(*yyvaluep))));}
7148 #line 7149 "src/parser_proc.c" /* glr.c:851 */
7149 break;
7150
7151 case 168: /* impl_def_val */
7152 #line 312 "src/parser_proc_grammar.y" /* glr.c:851 */
7153 {psi_impl_def_val_free(&(*(struct psi_impl_def_val **)(&(*yyvaluep))));}
7154 #line 7155 "src/parser_proc.c" /* glr.c:851 */
7155 break;
7156
7157 case 169: /* impl_def_val_token */
7158 #line 307 "src/parser_proc_grammar.y" /* glr.c:851 */
7159 {}
7160 #line 7161 "src/parser_proc.c" /* glr.c:851 */
7161 break;
7162
7163 case 170: /* decl_typedef */
7164 #line 325 "src/parser_proc_grammar.y" /* glr.c:851 */
7165 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7166 #line 7167 "src/parser_proc.c" /* glr.c:851 */
7167 break;
7168
7169 case 171: /* typedef */
7170 #line 325 "src/parser_proc_grammar.y" /* glr.c:851 */
7171 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7172 #line 7173 "src/parser_proc.c" /* glr.c:851 */
7173 break;
7174
7175 case 172: /* typedef_anon */
7176 #line 325 "src/parser_proc_grammar.y" /* glr.c:851 */
7177 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7178 #line 7179 "src/parser_proc.c" /* glr.c:851 */
7179 break;
7180
7181 case 173: /* typedef_decl */
7182 #line 325 "src/parser_proc_grammar.y" /* glr.c:851 */
7183 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7184 #line 7185 "src/parser_proc.c" /* glr.c:851 */
7185 break;
7186
7187 case 174: /* typedef_anon_decl */
7188 #line 325 "src/parser_proc_grammar.y" /* glr.c:851 */
7189 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7190 #line 7191 "src/parser_proc.c" /* glr.c:851 */
7191 break;
7192
7193 case 175: /* qualified_decl_type */
7194 #line 321 "src/parser_proc_grammar.y" /* glr.c:851 */
7195 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
7196 #line 7197 "src/parser_proc.c" /* glr.c:851 */
7197 break;
7198
7199 case 177: /* decl_type */
7200 #line 321 "src/parser_proc_grammar.y" /* glr.c:851 */
7201 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
7202 #line 7203 "src/parser_proc.c" /* glr.c:851 */
7203 break;
7204
7205 case 178: /* decl_type_complex */
7206 #line 321 "src/parser_proc_grammar.y" /* glr.c:851 */
7207 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
7208 #line 7209 "src/parser_proc.c" /* glr.c:851 */
7209 break;
7210
7211 case 179: /* decl_type_simple */
7212 #line 315 "src/parser_proc_grammar.y" /* glr.c:851 */
7213 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7214 #line 7215 "src/parser_proc.c" /* glr.c:851 */
7215 break;
7216
7217 case 180: /* decl_real_type */
7218 #line 315 "src/parser_proc_grammar.y" /* glr.c:851 */
7219 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7220 #line 7221 "src/parser_proc.c" /* glr.c:851 */
7221 break;
7222
7223 case 181: /* int_signed */
7224 #line 295 "src/parser_proc_grammar.y" /* glr.c:851 */
7225 {}
7226 #line 7227 "src/parser_proc.c" /* glr.c:851 */
7227 break;
7228
7229 case 182: /* int_width */
7230 #line 292 "src/parser_proc_grammar.y" /* glr.c:851 */
7231 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7232 #line 7233 "src/parser_proc.c" /* glr.c:851 */
7233 break;
7234
7235 case 183: /* decl_int_type */
7236 #line 315 "src/parser_proc_grammar.y" /* glr.c:851 */
7237 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7238 #line 7239 "src/parser_proc.c" /* glr.c:851 */
7239 break;
7240
7241 case 184: /* int_signed_types */
7242 #line 292 "src/parser_proc_grammar.y" /* glr.c:851 */
7243 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7244 #line 7245 "src/parser_proc.c" /* glr.c:851 */
7245 break;
7246
7247 case 185: /* signed_short_types */
7248 #line 295 "src/parser_proc_grammar.y" /* glr.c:851 */
7249 {}
7250 #line 7251 "src/parser_proc.c" /* glr.c:851 */
7251 break;
7252
7253 case 186: /* signed_long_types */
7254 #line 295 "src/parser_proc_grammar.y" /* glr.c:851 */
7255 {}
7256 #line 7257 "src/parser_proc.c" /* glr.c:851 */
7257 break;
7258
7259 case 187: /* int_width_types */
7260 #line 292 "src/parser_proc_grammar.y" /* glr.c:851 */
7261 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7262 #line 7263 "src/parser_proc.c" /* glr.c:851 */
7263 break;
7264
7265 case 188: /* decl_stmt */
7266 #line 323 "src/parser_proc_grammar.y" /* glr.c:851 */
7267 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7268 #line 7269 "src/parser_proc.c" /* glr.c:851 */
7269 break;
7270
7271 case 189: /* decl_asm */
7272 #line 318 "src/parser_proc_grammar.y" /* glr.c:851 */
7273 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7274 #line 7275 "src/parser_proc.c" /* glr.c:851 */
7275 break;
7276
7277 case 190: /* quoted_strings */
7278 #line 318 "src/parser_proc_grammar.y" /* glr.c:851 */
7279 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7280 #line 7281 "src/parser_proc.c" /* glr.c:851 */
7281 break;
7282
7283 case 191: /* decl_extvar_stmt */
7284 #line 337 "src/parser_proc_grammar.y" /* glr.c:851 */
7285 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7286 #line 7287 "src/parser_proc.c" /* glr.c:851 */
7287 break;
7288
7289 case 192: /* decl_extvar_list */
7290 #line 337 "src/parser_proc_grammar.y" /* glr.c:851 */
7291 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7292 #line 7293 "src/parser_proc.c" /* glr.c:851 */
7293 break;
7294
7295 case 193: /* decl_vars */
7296 #line 337 "src/parser_proc_grammar.y" /* glr.c:851 */
7297 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7298 #line 7299 "src/parser_proc.c" /* glr.c:851 */
7299 break;
7300
7301 case 194: /* ignored_decl */
7302 #line 323 "src/parser_proc_grammar.y" /* glr.c:851 */
7303 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7304 #line 7305 "src/parser_proc.c" /* glr.c:851 */
7305 break;
7306
7307 case 199: /* decl */
7308 #line 323 "src/parser_proc_grammar.y" /* glr.c:851 */
7309 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7310 #line 7311 "src/parser_proc.c" /* glr.c:851 */
7311 break;
7312
7313 case 200: /* decl_body */
7314 #line 323 "src/parser_proc_grammar.y" /* glr.c:851 */
7315 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7316 #line 7317 "src/parser_proc.c" /* glr.c:851 */
7317 break;
7318
7319 case 201: /* decl_func_body */
7320 #line 323 "src/parser_proc_grammar.y" /* glr.c:851 */
7321 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7322 #line 7323 "src/parser_proc.c" /* glr.c:851 */
7323 break;
7324
7325 case 202: /* decl_functor_body */
7326 #line 323 "src/parser_proc_grammar.y" /* glr.c:851 */
7327 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7328 #line 7329 "src/parser_proc.c" /* glr.c:851 */
7329 break;
7330
7331 case 203: /* decl_anon_functor_body */
7332 #line 323 "src/parser_proc_grammar.y" /* glr.c:851 */
7333 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7334 #line 7335 "src/parser_proc.c" /* glr.c:851 */
7335 break;
7336
7337 case 204: /* decl_functor */
7338 #line 325 "src/parser_proc_grammar.y" /* glr.c:851 */
7339 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7340 #line 7341 "src/parser_proc.c" /* glr.c:851 */
7341 break;
7342
7343 case 205: /* decl_anon_functor */
7344 #line 325 "src/parser_proc_grammar.y" /* glr.c:851 */
7345 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7346 #line 7347 "src/parser_proc.c" /* glr.c:851 */
7347 break;
7348
7349 case 206: /* decl_func */
7350 #line 325 "src/parser_proc_grammar.y" /* glr.c:851 */
7351 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7352 #line 7353 "src/parser_proc.c" /* glr.c:851 */
7353 break;
7354
7355 case 207: /* decl_args */
7356 #line 337 "src/parser_proc_grammar.y" /* glr.c:851 */
7357 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7358 #line 7359 "src/parser_proc.c" /* glr.c:851 */
7359 break;
7360
7361 case 208: /* decl_arg_list */
7362 #line 337 "src/parser_proc_grammar.y" /* glr.c:851 */
7363 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7364 #line 7365 "src/parser_proc.c" /* glr.c:851 */
7365 break;
7366
7367 case 209: /* decl_anon_arg */
7368 #line 325 "src/parser_proc_grammar.y" /* glr.c:851 */
7369 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7370 #line 7371 "src/parser_proc.c" /* glr.c:851 */
7371 break;
7372
7373 case 210: /* decl_arg */
7374 #line 325 "src/parser_proc_grammar.y" /* glr.c:851 */
7375 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7376 #line 7377 "src/parser_proc.c" /* glr.c:851 */
7377 break;
7378
7379 case 211: /* decl_var */
7380 #line 327 "src/parser_proc_grammar.y" /* glr.c:851 */
7381 {psi_decl_var_free(&(*(struct psi_decl_var **)(&(*yyvaluep))));}
7382 #line 7383 "src/parser_proc.c" /* glr.c:851 */
7383 break;
7384
7385 case 212: /* decl_union */
7386 #line 331 "src/parser_proc_grammar.y" /* glr.c:851 */
7387 {psi_decl_union_free(&(*(struct psi_decl_union **)(&(*yyvaluep))));}
7388 #line 7389 "src/parser_proc.c" /* glr.c:851 */
7389 break;
7390
7391 case 213: /* decl_struct */
7392 #line 329 "src/parser_proc_grammar.y" /* glr.c:851 */
7393 {psi_decl_struct_free(&(*(struct psi_decl_struct **)(&(*yyvaluep))));}
7394 #line 7395 "src/parser_proc.c" /* glr.c:851 */
7395 break;
7396
7397 case 214: /* decl_struct_args */
7398 #line 337 "src/parser_proc_grammar.y" /* glr.c:851 */
7399 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7400 #line 7401 "src/parser_proc.c" /* glr.c:851 */
7401 break;
7402
7403 case 215: /* struct_args_block */
7404 #line 337 "src/parser_proc_grammar.y" /* glr.c:851 */
7405 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7406 #line 7407 "src/parser_proc.c" /* glr.c:851 */
7407 break;
7408
7409 case 216: /* struct_args */
7410 #line 337 "src/parser_proc_grammar.y" /* glr.c:851 */
7411 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7412 #line 7413 "src/parser_proc.c" /* glr.c:851 */
7413 break;
7414
7415 case 217: /* struct_arg_var_list */
7416 #line 337 "src/parser_proc_grammar.y" /* glr.c:851 */
7417 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7418 #line 7419 "src/parser_proc.c" /* glr.c:851 */
7419 break;
7420
7421 case 218: /* decl_vars_with_layout */
7422 #line 337 "src/parser_proc_grammar.y" /* glr.c:851 */
7423 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7424 #line 7425 "src/parser_proc.c" /* glr.c:851 */
7425 break;
7426
7427 case 219: /* decl_enum */
7428 #line 333 "src/parser_proc_grammar.y" /* glr.c:851 */
7429 {psi_decl_enum_free(&(*(struct psi_decl_enum **)(&(*yyvaluep))));}
7430 #line 7431 "src/parser_proc.c" /* glr.c:851 */
7431 break;
7432
7433 case 220: /* decl_enum_items */
7434 #line 337 "src/parser_proc_grammar.y" /* glr.c:851 */
7435 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7436 #line 7437 "src/parser_proc.c" /* glr.c:851 */
7437 break;
7438
7439 case 221: /* decl_enum_item */
7440 #line 335 "src/parser_proc_grammar.y" /* glr.c:851 */
7441 {psi_decl_enum_item_free(&(*(struct psi_decl_enum_item **)(&(*yyvaluep))));}
7442 #line 7443 "src/parser_proc.c" /* glr.c:851 */
7443 break;
7444
7445 case 222: /* num_exp */
7446 #line 393 "src/parser_proc_grammar.y" /* glr.c:851 */
7447 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
7448 #line 7449 "src/parser_proc.c" /* glr.c:851 */
7449 break;
7450
7451 case 223: /* number */
7452 #line 395 "src/parser_proc_grammar.y" /* glr.c:851 */
7453 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7454 #line 7455 "src/parser_proc.c" /* glr.c:851 */
7455 break;
7456
7457 case 224: /* sizeof */
7458 #line 345 "src/parser_proc_grammar.y" /* glr.c:851 */
7459 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7460 #line 7461 "src/parser_proc.c" /* glr.c:851 */
7461 break;
7462
7463 case 225: /* sizeof_body */
7464 #line 345 "src/parser_proc_grammar.y" /* glr.c:851 */
7465 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7466 #line 7467 "src/parser_proc.c" /* glr.c:851 */
7467 break;
7468
7469 case 226: /* sizeof_body_notypes */
7470 #line 345 "src/parser_proc_grammar.y" /* glr.c:851 */
7471 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7472 #line 7473 "src/parser_proc.c" /* glr.c:851 */
7473 break;
7474
7475 case 227: /* enum_name */
7476 #line 283 "src/parser_proc_grammar.y" /* glr.c:851 */
7477 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7478 #line 7479 "src/parser_proc.c" /* glr.c:851 */
7479 break;
7480
7481 case 228: /* union_name */
7482 #line 283 "src/parser_proc_grammar.y" /* glr.c:851 */
7483 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7484 #line 7485 "src/parser_proc.c" /* glr.c:851 */
7485 break;
7486
7487 case 229: /* struct_name */
7488 #line 283 "src/parser_proc_grammar.y" /* glr.c:851 */
7489 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7490 #line 7491 "src/parser_proc.c" /* glr.c:851 */
7491 break;
7492
7493 case 230: /* optional_name */
7494 #line 283 "src/parser_proc_grammar.y" /* glr.c:851 */
7495 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7496 #line 7497 "src/parser_proc.c" /* glr.c:851 */
7497 break;
7498
7499 case 232: /* decl_layout */
7500 #line 342 "src/parser_proc_grammar.y" /* glr.c:851 */
7501 {psi_layout_free(&(*(struct psi_layout **)(&(*yyvaluep))));}
7502 #line 7503 "src/parser_proc.c" /* glr.c:851 */
7503 break;
7504
7505 case 233: /* align_and_size */
7506 #line 340 "src/parser_proc_grammar.y" /* glr.c:851 */
7507 {}
7508 #line 7509 "src/parser_proc.c" /* glr.c:851 */
7509 break;
7510
7511 case 234: /* array_size */
7512 #line 398 "src/parser_proc_grammar.y" /* glr.c:851 */
7513 {}
7514 #line 7515 "src/parser_proc.c" /* glr.c:851 */
7515 break;
7516
7517 case 236: /* indirection */
7518 #line 398 "src/parser_proc_grammar.y" /* glr.c:851 */
7519 {}
7520 #line 7521 "src/parser_proc.c" /* glr.c:851 */
7521 break;
7522
7523 case 237: /* pointers */
7524 #line 398 "src/parser_proc_grammar.y" /* glr.c:851 */
7525 {}
7526 #line 7527 "src/parser_proc.c" /* glr.c:851 */
7527 break;
7528
7529 case 238: /* asterisks */
7530 #line 398 "src/parser_proc_grammar.y" /* glr.c:851 */
7531 {}
7532 #line 7533 "src/parser_proc.c" /* glr.c:851 */
7533 break;
7534
7535 case 241: /* impl */
7536 #line 348 "src/parser_proc_grammar.y" /* glr.c:851 */
7537 {psi_impl_free(&(*(struct psi_impl **)(&(*yyvaluep))));}
7538 #line 7539 "src/parser_proc.c" /* glr.c:851 */
7539 break;
7540
7541 case 242: /* impl_func */
7542 #line 350 "src/parser_proc_grammar.y" /* glr.c:851 */
7543 {psi_impl_func_free(&(*(struct psi_impl_func **)(&(*yyvaluep))));}
7544 #line 7545 "src/parser_proc.c" /* glr.c:851 */
7545 break;
7546
7547 case 243: /* impl_args */
7548 #line 390 "src/parser_proc_grammar.y" /* glr.c:851 */
7549 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7550 #line 7551 "src/parser_proc.c" /* glr.c:851 */
7551 break;
7552
7553 case 244: /* impl_arg */
7554 #line 352 "src/parser_proc_grammar.y" /* glr.c:851 */
7555 {psi_impl_arg_free(&(*(struct psi_impl_arg **)(&(*yyvaluep))));}
7556 #line 7557 "src/parser_proc.c" /* glr.c:851 */
7557 break;
7558
7559 case 245: /* impl_var */
7560 #line 356 "src/parser_proc_grammar.y" /* glr.c:851 */
7561 {psi_impl_var_free(&(*(struct psi_impl_var **)(&(*yyvaluep))));}
7562 #line 7563 "src/parser_proc.c" /* glr.c:851 */
7563 break;
7564
7565 case 246: /* impl_type */
7566 #line 354 "src/parser_proc_grammar.y" /* glr.c:851 */
7567 {psi_impl_type_free(&(*(struct psi_impl_type **)(&(*yyvaluep))));}
7568 #line 7569 "src/parser_proc.c" /* glr.c:851 */
7569 break;
7570
7571 case 247: /* impl_type_restricted */
7572 #line 354 "src/parser_proc_grammar.y" /* glr.c:851 */
7573 {psi_impl_type_free(&(*(struct psi_impl_type **)(&(*yyvaluep))));}
7574 #line 7575 "src/parser_proc.c" /* glr.c:851 */
7575 break;
7576
7577 case 248: /* impl_type_token */
7578 #line 388 "src/parser_proc_grammar.y" /* glr.c:851 */
7579 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7580 #line 7581 "src/parser_proc.c" /* glr.c:851 */
7581 break;
7582
7583 case 249: /* impl_type_restricted_token */
7584 #line 388 "src/parser_proc_grammar.y" /* glr.c:851 */
7585 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7586 #line 7587 "src/parser_proc.c" /* glr.c:851 */
7587 break;
7588
7589 case 250: /* impl_type_extended_token */
7590 #line 388 "src/parser_proc_grammar.y" /* glr.c:851 */
7591 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7592 #line 7593 "src/parser_proc.c" /* glr.c:851 */
7593 break;
7594
7595 case 251: /* impl_stmts */
7596 #line 390 "src/parser_proc_grammar.y" /* glr.c:851 */
7597 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7598 #line 7599 "src/parser_proc.c" /* glr.c:851 */
7599 break;
7600
7601 case 252: /* impl_stmt */
7602 #line 386 "src/parser_proc_grammar.y" /* glr.c:851 */
7603 {psi_impl_stmt_free(&(*(struct psi_token ***)(&(*yyvaluep))));}
7604 #line 7605 "src/parser_proc.c" /* glr.c:851 */
7605 break;
7606
7607 case 253: /* let_stmt */
7608 #line 359 "src/parser_proc_grammar.y" /* glr.c:851 */
7609 {psi_let_stmt_free(&(*(struct psi_let_stmt **)(&(*yyvaluep))));}
7610 #line 7611 "src/parser_proc.c" /* glr.c:851 */
7611 break;
7612
7613 case 254: /* let_exp */
7614 #line 361 "src/parser_proc_grammar.y" /* glr.c:851 */
7615 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
7616 #line 7617 "src/parser_proc.c" /* glr.c:851 */
7617 break;
7618
7619 case 255: /* let_exp_byref */
7620 #line 361 "src/parser_proc_grammar.y" /* glr.c:851 */
7621 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
7622 #line 7623 "src/parser_proc.c" /* glr.c:851 */
7623 break;
7624
7625 case 256: /* let_exp_assign */
7626 #line 361 "src/parser_proc_grammar.y" /* glr.c:851 */
7627 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
7628 #line 7629 "src/parser_proc.c" /* glr.c:851 */
7629 break;
7630
7631 case 257: /* let_calloc */
7632 #line 363 "src/parser_proc_grammar.y" /* glr.c:851 */
7633 {psi_let_calloc_free(&(*(struct psi_let_calloc **)(&(*yyvaluep))));}
7634 #line 7635 "src/parser_proc.c" /* glr.c:851 */
7635 break;
7636
7637 case 258: /* let_callback */
7638 #line 365 "src/parser_proc_grammar.y" /* glr.c:851 */
7639 {psi_let_callback_free(&(*(struct psi_let_callback **)(&(*yyvaluep))));}
7640 #line 7641 "src/parser_proc.c" /* glr.c:851 */
7641 break;
7642
7643 case 259: /* let_func */
7644 #line 367 "src/parser_proc_grammar.y" /* glr.c:851 */
7645 {psi_let_func_free(&(*(struct psi_let_func **)(&(*yyvaluep))));}
7646 #line 7647 "src/parser_proc.c" /* glr.c:851 */
7647 break;
7648
7649 case 260: /* let_func_token */
7650 #line 388 "src/parser_proc_grammar.y" /* glr.c:851 */
7651 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7652 #line 7653 "src/parser_proc.c" /* glr.c:851 */
7653 break;
7654
7655 case 261: /* let_func_exps */
7656 #line 390 "src/parser_proc_grammar.y" /* glr.c:851 */
7657 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7658 #line 7659 "src/parser_proc.c" /* glr.c:851 */
7659 break;
7660
7661 case 262: /* let_exps */
7662 #line 390 "src/parser_proc_grammar.y" /* glr.c:851 */
7663 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7664 #line 7665 "src/parser_proc.c" /* glr.c:851 */
7665 break;
7666
7667 case 263: /* callback_rval */
7668 #line 388 "src/parser_proc_grammar.y" /* glr.c:851 */
7669 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7670 #line 7671 "src/parser_proc.c" /* glr.c:851 */
7671 break;
7672
7673 case 264: /* callback_arg_list */
7674 #line 390 "src/parser_proc_grammar.y" /* glr.c:851 */
7675 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7676 #line 7677 "src/parser_proc.c" /* glr.c:851 */
7677 break;
7678
7679 case 265: /* callback_args */
7680 #line 390 "src/parser_proc_grammar.y" /* glr.c:851 */
7681 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7682 #line 7683 "src/parser_proc.c" /* glr.c:851 */
7683 break;
7684
7685 case 266: /* return_stmt */
7686 #line 377 "src/parser_proc_grammar.y" /* glr.c:851 */
7687 {psi_return_stmt_free(&(*(struct psi_return_stmt **)(&(*yyvaluep))));}
7688 #line 7689 "src/parser_proc.c" /* glr.c:851 */
7689 break;
7690
7691 case 267: /* return_exp */
7692 #line 379 "src/parser_proc_grammar.y" /* glr.c:851 */
7693 {psi_return_exp_free(&(*(struct psi_return_exp **)(&(*yyvaluep))));}
7694 #line 7695 "src/parser_proc.c" /* glr.c:851 */
7695 break;
7696
7697 case 268: /* call_decl_vars */
7698 #line 337 "src/parser_proc_grammar.y" /* glr.c:851 */
7699 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7700 #line 7701 "src/parser_proc.c" /* glr.c:851 */
7701 break;
7702
7703 case 269: /* set_stmt */
7704 #line 369 "src/parser_proc_grammar.y" /* glr.c:851 */
7705 {psi_set_stmt_free(&(*(struct psi_set_stmt **)(&(*yyvaluep))));}
7706 #line 7707 "src/parser_proc.c" /* glr.c:851 */
7707 break;
7708
7709 case 270: /* set_exp */
7710 #line 371 "src/parser_proc_grammar.y" /* glr.c:851 */
7711 {psi_set_exp_free(&(*(struct psi_set_exp **)(&(*yyvaluep))));}
7712 #line 7713 "src/parser_proc.c" /* glr.c:851 */
7713 break;
7714
7715 case 271: /* set_func */
7716 #line 373 "src/parser_proc_grammar.y" /* glr.c:851 */
7717 {psi_set_func_free(&(*(struct psi_set_func **)(&(*yyvaluep))));}
7718 #line 7719 "src/parser_proc.c" /* glr.c:851 */
7719 break;
7720
7721 case 272: /* set_func_token */
7722 #line 388 "src/parser_proc_grammar.y" /* glr.c:851 */
7723 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7724 #line 7725 "src/parser_proc.c" /* glr.c:851 */
7725 break;
7726
7727 case 273: /* set_func_exps */
7728 #line 390 "src/parser_proc_grammar.y" /* glr.c:851 */
7729 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7730 #line 7731 "src/parser_proc.c" /* glr.c:851 */
7731 break;
7732
7733 case 274: /* set_exps */
7734 #line 390 "src/parser_proc_grammar.y" /* glr.c:851 */
7735 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7736 #line 7737 "src/parser_proc.c" /* glr.c:851 */
7737 break;
7738
7739 case 275: /* assert_stmt */
7740 #line 375 "src/parser_proc_grammar.y" /* glr.c:851 */
7741 {psi_assert_stmt_free(&(*(struct psi_assert_stmt **)(&(*yyvaluep))));}
7742 #line 7743 "src/parser_proc.c" /* glr.c:851 */
7743 break;
7744
7745 case 276: /* assert_stmt_token */
7746 #line 388 "src/parser_proc_grammar.y" /* glr.c:851 */
7747 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7748 #line 7749 "src/parser_proc.c" /* glr.c:851 */
7749 break;
7750
7751 case 277: /* free_stmt */
7752 #line 381 "src/parser_proc_grammar.y" /* glr.c:851 */
7753 {psi_free_stmt_free(&(*(struct psi_free_stmt **)(&(*yyvaluep))));}
7754 #line 7755 "src/parser_proc.c" /* glr.c:851 */
7755 break;
7756
7757 case 278: /* free_exps */
7758 #line 390 "src/parser_proc_grammar.y" /* glr.c:851 */
7759 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7760 #line 7761 "src/parser_proc.c" /* glr.c:851 */
7761 break;
7762
7763 case 279: /* free_exp */
7764 #line 383 "src/parser_proc_grammar.y" /* glr.c:851 */
7765 {psi_free_exp_free(&(*(struct psi_free_exp **)(&(*yyvaluep))));}
7766 #line 7767 "src/parser_proc.c" /* glr.c:851 */
7767 break;
7768
7769 case 280: /* reference */
7770 #line 400 "src/parser_proc_grammar.y" /* glr.c:851 */
7771 {}
7772 #line 7773 "src/parser_proc.c" /* glr.c:851 */
7773 break;
7774
7775
7776 default:
7777 break;
7778 }
7779 YY_IGNORE_MAYBE_UNINITIALIZED_END
7780 }
7781
7782 /** Number of symbols composing the right hand side of rule #RULE. */
7783 static inline int
7784 yyrhsLength (yyRuleNum yyrule)
7785 {
7786 return yyr2[yyrule];
7787 }
7788
7789 static void
7790 yydestroyGLRState (char const *yymsg, yyGLRState *yys, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7791 {
7792 if (yys->yyresolved)
7793 yydestruct (yymsg, yystos[yys->yylrState],
7794 &yys->yysemantics.yysval, P, tokens, index);
7795 else
7796 {
7797 #if YYDEBUG
7798 if (yydebug)
7799 {
7800 if (yys->yysemantics.yyfirstVal)
7801 YYFPRINTF (stderr, "%s unresolved", yymsg);
7802 else
7803 YYFPRINTF (stderr, "%s incomplete", yymsg);
7804 YY_SYMBOL_PRINT ("", yystos[yys->yylrState], YY_NULLPTR, &yys->yyloc);
7805 }
7806 #endif
7807
7808 if (yys->yysemantics.yyfirstVal)
7809 {
7810 yySemanticOption *yyoption = yys->yysemantics.yyfirstVal;
7811 yyGLRState *yyrh;
7812 int yyn;
7813 for (yyrh = yyoption->yystate, yyn = yyrhsLength (yyoption->yyrule);
7814 yyn > 0;
7815 yyrh = yyrh->yypred, yyn -= 1)
7816 yydestroyGLRState (yymsg, yyrh, P, tokens, index);
7817 }
7818 }
7819 }
7820
7821 /** Left-hand-side symbol for rule #YYRULE. */
7822 static inline yySymbol
7823 yylhsNonterm (yyRuleNum yyrule)
7824 {
7825 return yyr1[yyrule];
7826 }
7827
7828 #define yypact_value_is_default(Yystate) \
7829 (!!((Yystate) == (-731)))
7830
7831 /** True iff LR state YYSTATE has only a default reduction (regardless
7832 * of token). */
7833 static inline yybool
7834 yyisDefaultedState (yyStateNum yystate)
7835 {
7836 return (yybool) yypact_value_is_default (yypact[yystate]);
7837 }
7838
7839 /** The default reduction for YYSTATE, assuming it has one. */
7840 static inline yyRuleNum
7841 yydefaultAction (yyStateNum yystate)
7842 {
7843 return yydefact[yystate];
7844 }
7845
7846 #define yytable_value_is_error(Yytable_value) \
7847 0
7848
7849 /** Set *YYACTION to the action to take in YYSTATE on seeing YYTOKEN.
7850 * Result R means
7851 * R < 0: Reduce on rule -R.
7852 * R = 0: Error.
7853 * R > 0: Shift to state R.
7854 * Set *YYCONFLICTS to a pointer into yyconfl to a 0-terminated list
7855 * of conflicting reductions.
7856 */
7857 static inline void
7858 yygetLRActions (yyStateNum yystate, int yytoken,
7859 int* yyaction, const short** yyconflicts)
7860 {
7861 int yyindex = yypact[yystate] + yytoken;
7862 if (yyisDefaultedState (yystate)
7863 || yyindex < 0 || YYLAST < yyindex || yycheck[yyindex] != yytoken)
7864 {
7865 *yyaction = -yydefact[yystate];
7866 *yyconflicts = yyconfl;
7867 }
7868 else if (! yytable_value_is_error (yytable[yyindex]))
7869 {
7870 *yyaction = yytable[yyindex];
7871 *yyconflicts = yyconfl + yyconflp[yyindex];
7872 }
7873 else
7874 {
7875 *yyaction = 0;
7876 *yyconflicts = yyconfl + yyconflp[yyindex];
7877 }
7878 }
7879
7880 /** Compute post-reduction state.
7881 * \param yystate the current state
7882 * \param yysym the nonterminal to push on the stack
7883 */
7884 static inline yyStateNum
7885 yyLRgotoState (yyStateNum yystate, yySymbol yysym)
7886 {
7887 int yyr = yypgoto[yysym - YYNTOKENS] + yystate;
7888 if (0 <= yyr && yyr <= YYLAST && yycheck[yyr] == yystate)
7889 return yytable[yyr];
7890 else
7891 return yydefgoto[yysym - YYNTOKENS];
7892 }
7893
7894 static inline yybool
7895 yyisShiftAction (int yyaction)
7896 {
7897 return (yybool) (0 < yyaction);
7898 }
7899
7900 static inline yybool
7901 yyisErrorAction (int yyaction)
7902 {
7903 return (yybool) (yyaction == 0);
7904 }
7905
7906 /* GLRStates */
7907
7908 /** Return a fresh GLRStackItem in YYSTACKP. The item is an LR state
7909 * if YYISSTATE, and otherwise a semantic option. Callers should call
7910 * YY_RESERVE_GLRSTACK afterwards to make sure there is sufficient
7911 * headroom. */
7912
7913 static inline yyGLRStackItem*
7914 yynewGLRStackItem (yyGLRStack* yystackp, yybool yyisState)
7915 {
7916 yyGLRStackItem* yynewItem = yystackp->yynextFree;
7917 yystackp->yyspaceLeft -= 1;
7918 yystackp->yynextFree += 1;
7919 yynewItem->yystate.yyisState = yyisState;
7920 return yynewItem;
7921 }
7922
7923 /** Add a new semantic action that will execute the action for rule
7924 * YYRULE on the semantic values in YYRHS to the list of
7925 * alternative actions for YYSTATE. Assumes that YYRHS comes from
7926 * stack #YYK of *YYSTACKP. */
7927 static void
7928 yyaddDeferredAction (yyGLRStack* yystackp, size_t yyk, yyGLRState* yystate,
7929 yyGLRState* yyrhs, yyRuleNum yyrule)
7930 {
7931 yySemanticOption* yynewOption =
7932 &yynewGLRStackItem (yystackp, yyfalse)->yyoption;
7933 YYASSERT (!yynewOption->yyisState);
7934 yynewOption->yystate = yyrhs;
7935 yynewOption->yyrule = yyrule;
7936 if (yystackp->yytops.yylookaheadNeeds[yyk])
7937 {
7938 yynewOption->yyrawchar = yychar;
7939 yynewOption->yyval = yylval;
7940 }
7941 else
7942 yynewOption->yyrawchar = YYEMPTY;
7943 yynewOption->yynext = yystate->yysemantics.yyfirstVal;
7944 yystate->yysemantics.yyfirstVal = yynewOption;
7945
7946 YY_RESERVE_GLRSTACK (yystackp);
7947 }
7948
7949 /* GLRStacks */
7950
7951 /** Initialize YYSET to a singleton set containing an empty stack. */
7952 static yybool
7953 yyinitStateSet (yyGLRStateSet* yyset)
7954 {
7955 yyset->yysize = 1;
7956 yyset->yycapacity = 16;
7957 yyset->yystates = (yyGLRState**) YYMALLOC (16 * sizeof yyset->yystates[0]);
7958 if (! yyset->yystates)
7959 return yyfalse;
7960 yyset->yystates[0] = YY_NULLPTR;
7961 yyset->yylookaheadNeeds =
7962 (yybool*) YYMALLOC (16 * sizeof yyset->yylookaheadNeeds[0]);
7963 if (! yyset->yylookaheadNeeds)
7964 {
7965 YYFREE (yyset->yystates);
7966 return yyfalse;
7967 }
7968 return yytrue;
7969 }
7970
7971 static void yyfreeStateSet (yyGLRStateSet* yyset)
7972 {
7973 YYFREE (yyset->yystates);
7974 YYFREE (yyset->yylookaheadNeeds);
7975 }
7976
7977 /** Initialize *YYSTACKP to a single empty stack, with total maximum
7978 * capacity for all stacks of YYSIZE. */
7979 static yybool
7980 yyinitGLRStack (yyGLRStack* yystackp, size_t yysize)
7981 {
7982 yystackp->yyerrState = 0;
7983 yynerrs = 0;
7984 yystackp->yyspaceLeft = yysize;
7985 yystackp->yyitems =
7986 (yyGLRStackItem*) YYMALLOC (yysize * sizeof yystackp->yynextFree[0]);
7987 if (!yystackp->yyitems)
7988 return yyfalse;
7989 yystackp->yynextFree = yystackp->yyitems;
7990 yystackp->yysplitPoint = YY_NULLPTR;
7991 yystackp->yylastDeleted = YY_NULLPTR;
7992 return yyinitStateSet (&yystackp->yytops);
7993 }
7994
7995
7996 #if YYSTACKEXPANDABLE
7997 # define YYRELOC(YYFROMITEMS,YYTOITEMS,YYX,YYTYPE) \
7998 &((YYTOITEMS) - ((YYFROMITEMS) - (yyGLRStackItem*) (YYX)))->YYTYPE
7999
8000 /** If *YYSTACKP is expandable, extend it. WARNING: Pointers into the
8001 stack from outside should be considered invalid after this call.
8002 We always expand when there are 1 or fewer items left AFTER an
8003 allocation, so that we can avoid having external pointers exist
8004 across an allocation. */
8005 static void
8006 yyexpandGLRStack (yyGLRStack* yystackp)
8007 {
8008 yyGLRStackItem* yynewItems;
8009 yyGLRStackItem* yyp0, *yyp1;
8010 size_t yynewSize;
8011 size_t yyn;
8012 size_t yysize = (size_t) (yystackp->yynextFree - yystackp->yyitems);
8013 if (YYMAXDEPTH - YYHEADROOM < yysize)
8014 yyMemoryExhausted (yystackp);
8015 yynewSize = 2*yysize;
8016 if (YYMAXDEPTH < yynewSize)
8017 yynewSize = YYMAXDEPTH;
8018 yynewItems = (yyGLRStackItem*) YYMALLOC (yynewSize * sizeof yynewItems[0]);
8019 if (! yynewItems)
8020 yyMemoryExhausted (yystackp);
8021 for (yyp0 = yystackp->yyitems, yyp1 = yynewItems, yyn = yysize;
8022 0 < yyn;
8023 yyn -= 1, yyp0 += 1, yyp1 += 1)
8024 {
8025 *yyp1 = *yyp0;
8026 if (*(yybool *) yyp0)
8027 {
8028 yyGLRState* yys0 = &yyp0->yystate;
8029 yyGLRState* yys1 = &yyp1->yystate;
8030 if (yys0->yypred != YY_NULLPTR)
8031 yys1->yypred =
8032 YYRELOC (yyp0, yyp1, yys0->yypred, yystate);
8033 if (! yys0->yyresolved && yys0->yysemantics.yyfirstVal != YY_NULLPTR)
8034 yys1->yysemantics.yyfirstVal =
8035 YYRELOC (yyp0, yyp1, yys0->yysemantics.yyfirstVal, yyoption);
8036 }
8037 else
8038 {
8039 yySemanticOption* yyv0 = &yyp0->yyoption;
8040 yySemanticOption* yyv1 = &yyp1->yyoption;
8041 if (yyv0->yystate != YY_NULLPTR)
8042 yyv1->yystate = YYRELOC (yyp0, yyp1, yyv0->yystate, yystate);
8043 if (yyv0->yynext != YY_NULLPTR)
8044 yyv1->yynext = YYRELOC (yyp0, yyp1, yyv0->yynext, yyoption);
8045 }
8046 }
8047 if (yystackp->yysplitPoint != YY_NULLPTR)
8048 yystackp->yysplitPoint = YYRELOC (yystackp->yyitems, yynewItems,
8049 yystackp->yysplitPoint, yystate);
8050
8051 for (yyn = 0; yyn < yystackp->yytops.yysize; yyn += 1)
8052 if (yystackp->yytops.yystates[yyn] != YY_NULLPTR)
8053 yystackp->yytops.yystates[yyn] =
8054 YYRELOC (yystackp->yyitems, yynewItems,
8055 yystackp->yytops.yystates[yyn], yystate);
8056 YYFREE (yystackp->yyitems);
8057 yystackp->yyitems = yynewItems;
8058 yystackp->yynextFree = yynewItems + yysize;
8059 yystackp->yyspaceLeft = yynewSize - yysize;
8060 }
8061 #endif
8062
8063 static void
8064 yyfreeGLRStack (yyGLRStack* yystackp)
8065 {
8066 YYFREE (yystackp->yyitems);
8067 yyfreeStateSet (&yystackp->yytops);
8068 }
8069
8070 /** Assuming that YYS is a GLRState somewhere on *YYSTACKP, update the
8071 * splitpoint of *YYSTACKP, if needed, so that it is at least as deep as
8072 * YYS. */
8073 static inline void
8074 yyupdateSplit (yyGLRStack* yystackp, yyGLRState* yys)
8075 {
8076 if (yystackp->yysplitPoint != YY_NULLPTR && yystackp->yysplitPoint > yys)
8077 yystackp->yysplitPoint = yys;
8078 }
8079
8080 /** Invalidate stack #YYK in *YYSTACKP. */
8081 static inline void
8082 yymarkStackDeleted (yyGLRStack* yystackp, size_t yyk)
8083 {
8084 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
8085 yystackp->yylastDeleted = yystackp->yytops.yystates[yyk];
8086 yystackp->yytops.yystates[yyk] = YY_NULLPTR;
8087 }
8088
8089 /** Undelete the last stack in *YYSTACKP that was marked as deleted. Can
8090 only be done once after a deletion, and only when all other stacks have
8091 been deleted. */
8092 static void
8093 yyundeleteLastStack (yyGLRStack* yystackp)
8094 {
8095 if (yystackp->yylastDeleted == YY_NULLPTR || yystackp->yytops.yysize != 0)
8096 return;
8097 yystackp->yytops.yystates[0] = yystackp->yylastDeleted;
8098 yystackp->yytops.yysize = 1;
8099 YYDPRINTF ((stderr, "Restoring last deleted stack as stack #0.\n"));
8100 yystackp->yylastDeleted = YY_NULLPTR;
8101 }
8102
8103 static inline void
8104 yyremoveDeletes (yyGLRStack* yystackp)
8105 {
8106 size_t yyi, yyj;
8107 yyi = yyj = 0;
8108 while (yyj < yystackp->yytops.yysize)
8109 {
8110 if (yystackp->yytops.yystates[yyi] == YY_NULLPTR)
8111 {
8112 if (yyi == yyj)
8113 {
8114 YYDPRINTF ((stderr, "Removing dead stacks.\n"));
8115 }
8116 yystackp->yytops.yysize -= 1;
8117 }
8118 else
8119 {
8120 yystackp->yytops.yystates[yyj] = yystackp->yytops.yystates[yyi];
8121 /* In the current implementation, it's unnecessary to copy
8122 yystackp->yytops.yylookaheadNeeds[yyi] since, after
8123 yyremoveDeletes returns, the parser immediately either enters
8124 deterministic operation or shifts a token. However, it doesn't
8125 hurt, and the code might evolve to need it. */
8126 yystackp->yytops.yylookaheadNeeds[yyj] =
8127 yystackp->yytops.yylookaheadNeeds[yyi];
8128 if (yyj != yyi)
8129 {
8130 YYDPRINTF ((stderr, "Rename stack %lu -> %lu.\n",
8131 (unsigned long) yyi, (unsigned long) yyj));
8132 }
8133 yyj += 1;
8134 }
8135 yyi += 1;
8136 }
8137 }
8138
8139 /** Shift to a new state on stack #YYK of *YYSTACKP, corresponding to LR
8140 * state YYLRSTATE, at input position YYPOSN, with (resolved) semantic
8141 * value *YYVALP and source location *YYLOCP. */
8142 static inline void
8143 yyglrShift (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
8144 size_t yyposn,
8145 YYSTYPE* yyvalp)
8146 {
8147 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
8148
8149 yynewState->yylrState = yylrState;
8150 yynewState->yyposn = yyposn;
8151 yynewState->yyresolved = yytrue;
8152 yynewState->yypred = yystackp->yytops.yystates[yyk];
8153 yynewState->yysemantics.yysval = *yyvalp;
8154 yystackp->yytops.yystates[yyk] = yynewState;
8155
8156 YY_RESERVE_GLRSTACK (yystackp);
8157 }
8158
8159 /** Shift stack #YYK of *YYSTACKP, to a new state corresponding to LR
8160 * state YYLRSTATE, at input position YYPOSN, with the (unresolved)
8161 * semantic value of YYRHS under the action for YYRULE. */
8162 static inline void
8163 yyglrShiftDefer (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
8164 size_t yyposn, yyGLRState* yyrhs, yyRuleNum yyrule)
8165 {
8166 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
8167 YYASSERT (yynewState->yyisState);
8168
8169 yynewState->yylrState = yylrState;
8170 yynewState->yyposn = yyposn;
8171 yynewState->yyresolved = yyfalse;
8172 yynewState->yypred = yystackp->yytops.yystates[yyk];
8173 yynewState->yysemantics.yyfirstVal = YY_NULLPTR;
8174 yystackp->yytops.yystates[yyk] = yynewState;
8175
8176 /* Invokes YY_RESERVE_GLRSTACK. */
8177 yyaddDeferredAction (yystackp, yyk, yynewState, yyrhs, yyrule);
8178 }
8179
8180 #if !YYDEBUG
8181 # define YY_REDUCE_PRINT(Args)
8182 #else
8183 # define YY_REDUCE_PRINT(Args) \
8184 do { \
8185 if (yydebug) \
8186 yy_reduce_print Args; \
8187 } while (0)
8188
8189 /*----------------------------------------------------------------------.
8190 | Report that stack #YYK of *YYSTACKP is going to be reduced by YYRULE. |
8191 `----------------------------------------------------------------------*/
8192
8193 static inline void
8194 yy_reduce_print (yybool yynormal, yyGLRStackItem* yyvsp, size_t yyk,
8195 yyRuleNum yyrule, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8196 {
8197 int yynrhs = yyrhsLength (yyrule);
8198 int yyi;
8199 YYFPRINTF (stderr, "Reducing stack %lu by rule %d (line %lu):\n",
8200 (unsigned long) yyk, yyrule - 1,
8201 (unsigned long) yyrline[yyrule]);
8202 if (! yynormal)
8203 yyfillin (yyvsp, 1, -yynrhs);
8204 /* The symbols being reduced. */
8205 for (yyi = 0; yyi < yynrhs; yyi++)
8206 {
8207 YYFPRINTF (stderr, " $%d = ", yyi + 1);
8208 yy_symbol_print (stderr,
8209 yystos[yyvsp[yyi - yynrhs + 1].yystate.yylrState],
8210 &yyvsp[yyi - yynrhs + 1].yystate.yysemantics.yysval , P, tokens, index);
8211 if (!yyvsp[yyi - yynrhs + 1].yystate.yyresolved)
8212 YYFPRINTF (stderr, " (unresolved)");
8213 YYFPRINTF (stderr, "\n");
8214 }
8215 }
8216 #endif
8217
8218 /** Pop the symbols consumed by reduction #YYRULE from the top of stack
8219 * #YYK of *YYSTACKP, and perform the appropriate semantic action on their
8220 * semantic values. Assumes that all ambiguities in semantic values
8221 * have been previously resolved. Set *YYVALP to the resulting value,
8222 * and *YYLOCP to the computed location (if any). Return value is as
8223 * for userAction. */
8224 static inline YYRESULTTAG
8225 yydoAction (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
8226 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8227 {
8228 int yynrhs = yyrhsLength (yyrule);
8229
8230 if (yystackp->yysplitPoint == YY_NULLPTR)
8231 {
8232 /* Standard special case: single stack. */
8233 yyGLRStackItem* yyrhs = (yyGLRStackItem*) yystackp->yytops.yystates[yyk];
8234 YYASSERT (yyk == 0);
8235 yystackp->yynextFree -= yynrhs;
8236 yystackp->yyspaceLeft += (size_t) yynrhs;
8237 yystackp->yytops.yystates[0] = & yystackp->yynextFree[-1].yystate;
8238 YY_REDUCE_PRINT ((yytrue, yyrhs, yyk, yyrule, P, tokens, index));
8239 return yyuserAction (yyrule, yynrhs, yyrhs, yystackp,
8240 yyvalp, P, tokens, index);
8241 }
8242 else
8243 {
8244 int yyi;
8245 yyGLRState* yys;
8246 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
8247 yys = yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred
8248 = yystackp->yytops.yystates[yyk];
8249 for (yyi = 0; yyi < yynrhs; yyi += 1)
8250 {
8251 yys = yys->yypred;
8252 YYASSERT (yys);
8253 }
8254 yyupdateSplit (yystackp, yys);
8255 yystackp->yytops.yystates[yyk] = yys;
8256 YY_REDUCE_PRINT ((yyfalse, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1, yyk, yyrule, P, tokens, index));
8257 return yyuserAction (yyrule, yynrhs, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
8258 yystackp, yyvalp, P, tokens, index);
8259 }
8260 }
8261
8262 /** Pop items off stack #YYK of *YYSTACKP according to grammar rule YYRULE,
8263 * and push back on the resulting nonterminal symbol. Perform the
8264 * semantic action associated with YYRULE and store its value with the
8265 * newly pushed state, if YYFORCEEVAL or if *YYSTACKP is currently
8266 * unambiguous. Otherwise, store the deferred semantic action with
8267 * the new state. If the new state would have an identical input
8268 * position, LR state, and predecessor to an existing state on the stack,
8269 * it is identified with that existing state, eliminating stack #YYK from
8270 * *YYSTACKP. In this case, the semantic value is
8271 * added to the options for the existing state's semantic value.
8272 */
8273 static inline YYRESULTTAG
8274 yyglrReduce (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
8275 yybool yyforceEval, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8276 {
8277 size_t yyposn = yystackp->yytops.yystates[yyk]->yyposn;
8278
8279 if (yyforceEval || yystackp->yysplitPoint == YY_NULLPTR)
8280 {
8281 YYSTYPE yysval;
8282
8283 YYRESULTTAG yyflag = yydoAction (yystackp, yyk, yyrule, &yysval, P, tokens, index);
8284 if (yyflag == yyerr && yystackp->yysplitPoint != YY_NULLPTR)
8285 {
8286 YYDPRINTF ((stderr, "Parse on stack %lu rejected by rule #%d.\n",
8287 (unsigned long) yyk, yyrule - 1));
8288 }
8289 if (yyflag != yyok)
8290 return yyflag;
8291 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyrule], &yysval, &yyloc);
8292 yyglrShift (yystackp, yyk,
8293 yyLRgotoState (yystackp->yytops.yystates[yyk]->yylrState,
8294 yylhsNonterm (yyrule)),
8295 yyposn, &yysval);
8296 }
8297 else
8298 {
8299 size_t yyi;
8300 int yyn;
8301 yyGLRState* yys, *yys0 = yystackp->yytops.yystates[yyk];
8302 yyStateNum yynewLRState;
8303
8304 for (yys = yystackp->yytops.yystates[yyk], yyn = yyrhsLength (yyrule);
8305 0 < yyn; yyn -= 1)
8306 {
8307 yys = yys->yypred;
8308 YYASSERT (yys);
8309 }
8310 yyupdateSplit (yystackp, yys);
8311 yynewLRState = yyLRgotoState (yys->yylrState, yylhsNonterm (yyrule));
8312 YYDPRINTF ((stderr,
8313 "Reduced stack %lu by rule #%d; action deferred. "
8314 "Now in state %d.\n",
8315 (unsigned long) yyk, yyrule - 1, yynewLRState));
8316 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
8317 if (yyi != yyk && yystackp->yytops.yystates[yyi] != YY_NULLPTR)
8318 {
8319 yyGLRState *yysplit = yystackp->yysplitPoint;
8320 yyGLRState *yyp = yystackp->yytops.yystates[yyi];
8321 while (yyp != yys && yyp != yysplit && yyp->yyposn >= yyposn)
8322 {
8323 if (yyp->yylrState == yynewLRState && yyp->yypred == yys)
8324 {
8325 yyaddDeferredAction (yystackp, yyk, yyp, yys0, yyrule);
8326 yymarkStackDeleted (yystackp, yyk);
8327 YYDPRINTF ((stderr, "Merging stack %lu into stack %lu.\n",
8328 (unsigned long) yyk,
8329 (unsigned long) yyi));
8330 return yyok;
8331 }
8332 yyp = yyp->yypred;
8333 }
8334 }
8335 yystackp->yytops.yystates[yyk] = yys;
8336 yyglrShiftDefer (yystackp, yyk, yynewLRState, yyposn, yys0, yyrule);
8337 }
8338 return yyok;
8339 }
8340
8341 static size_t
8342 yysplitStack (yyGLRStack* yystackp, size_t yyk)
8343 {
8344 if (yystackp->yysplitPoint == YY_NULLPTR)
8345 {
8346 YYASSERT (yyk == 0);
8347 yystackp->yysplitPoint = yystackp->yytops.yystates[yyk];
8348 }
8349 if (yystackp->yytops.yysize >= yystackp->yytops.yycapacity)
8350 {
8351 yyGLRState** yynewStates = YY_NULLPTR;
8352 yybool* yynewLookaheadNeeds;
8353
8354 if (yystackp->yytops.yycapacity
8355 > (YYSIZEMAX / (2 * sizeof yynewStates[0])))
8356 yyMemoryExhausted (yystackp);
8357 yystackp->yytops.yycapacity *= 2;
8358
8359 yynewStates =
8360 (yyGLRState**) YYREALLOC (yystackp->yytops.yystates,
8361 (yystackp->yytops.yycapacity
8362 * sizeof yynewStates[0]));
8363 if (yynewStates == YY_NULLPTR)
8364 yyMemoryExhausted (yystackp);
8365 yystackp->yytops.yystates = yynewStates;
8366
8367 yynewLookaheadNeeds =
8368 (yybool*) YYREALLOC (yystackp->yytops.yylookaheadNeeds,
8369 (yystackp->yytops.yycapacity
8370 * sizeof yynewLookaheadNeeds[0]));
8371 if (yynewLookaheadNeeds == YY_NULLPTR)
8372 yyMemoryExhausted (yystackp);
8373 yystackp->yytops.yylookaheadNeeds = yynewLookaheadNeeds;
8374 }
8375 yystackp->yytops.yystates[yystackp->yytops.yysize]
8376 = yystackp->yytops.yystates[yyk];
8377 yystackp->yytops.yylookaheadNeeds[yystackp->yytops.yysize]
8378 = yystackp->yytops.yylookaheadNeeds[yyk];
8379 yystackp->yytops.yysize += 1;
8380 return yystackp->yytops.yysize-1;
8381 }
8382
8383 /** True iff YYY0 and YYY1 represent identical options at the top level.
8384 * That is, they represent the same rule applied to RHS symbols
8385 * that produce the same terminal symbols. */
8386 static yybool
8387 yyidenticalOptions (yySemanticOption* yyy0, yySemanticOption* yyy1)
8388 {
8389 if (yyy0->yyrule == yyy1->yyrule)
8390 {
8391 yyGLRState *yys0, *yys1;
8392 int yyn;
8393 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
8394 yyn = yyrhsLength (yyy0->yyrule);
8395 yyn > 0;
8396 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
8397 if (yys0->yyposn != yys1->yyposn)
8398 return yyfalse;
8399 return yytrue;
8400 }
8401 else
8402 return yyfalse;
8403 }
8404
8405 /** Assuming identicalOptions (YYY0,YYY1), destructively merge the
8406 * alternative semantic values for the RHS-symbols of YYY1 and YYY0. */
8407 static void
8408 yymergeOptionSets (yySemanticOption* yyy0, yySemanticOption* yyy1)
8409 {
8410 yyGLRState *yys0, *yys1;
8411 int yyn;
8412 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
8413 yyn = yyrhsLength (yyy0->yyrule);
8414 yyn > 0;
8415 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
8416 {
8417 if (yys0 == yys1)
8418 break;
8419 else if (yys0->yyresolved)
8420 {
8421 yys1->yyresolved = yytrue;
8422 yys1->yysemantics.yysval = yys0->yysemantics.yysval;
8423 }
8424 else if (yys1->yyresolved)
8425 {
8426 yys0->yyresolved = yytrue;
8427 yys0->yysemantics.yysval = yys1->yysemantics.yysval;
8428 }
8429 else
8430 {
8431 yySemanticOption** yyz0p = &yys0->yysemantics.yyfirstVal;
8432 yySemanticOption* yyz1 = yys1->yysemantics.yyfirstVal;
8433 while (yytrue)
8434 {
8435 if (yyz1 == *yyz0p || yyz1 == YY_NULLPTR)
8436 break;
8437 else if (*yyz0p == YY_NULLPTR)
8438 {
8439 *yyz0p = yyz1;
8440 break;
8441 }
8442 else if (*yyz0p < yyz1)
8443 {
8444 yySemanticOption* yyz = *yyz0p;
8445 *yyz0p = yyz1;
8446 yyz1 = yyz1->yynext;
8447 (*yyz0p)->yynext = yyz;
8448 }
8449 yyz0p = &(*yyz0p)->yynext;
8450 }
8451 yys1->yysemantics.yyfirstVal = yys0->yysemantics.yyfirstVal;
8452 }
8453 }
8454 }
8455
8456 /** Y0 and Y1 represent two possible actions to take in a given
8457 * parsing state; return 0 if no combination is possible,
8458 * 1 if user-mergeable, 2 if Y0 is preferred, 3 if Y1 is preferred. */
8459 static int
8460 yypreference (yySemanticOption* y0, yySemanticOption* y1)
8461 {
8462 yyRuleNum r0 = y0->yyrule, r1 = y1->yyrule;
8463 int p0 = yydprec[r0], p1 = yydprec[r1];
8464
8465 if (p0 == p1)
8466 {
8467 if (yymerger[r0] == 0 || yymerger[r0] != yymerger[r1])
8468 return 0;
8469 else
8470 return 1;
8471 }
8472 if (p0 == 0 || p1 == 0)
8473 return 0;
8474 if (p0 < p1)
8475 return 3;
8476 if (p1 < p0)
8477 return 2;
8478 return 0;
8479 }
8480
8481 static YYRESULTTAG yyresolveValue (yyGLRState* yys,
8482 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index);
8483
8484
8485 /** Resolve the previous YYN states starting at and including state YYS
8486 * on *YYSTACKP. If result != yyok, some states may have been left
8487 * unresolved possibly with empty semantic option chains. Regardless
8488 * of whether result = yyok, each state has been left with consistent
8489 * data so that yydestroyGLRState can be invoked if necessary. */
8490 static YYRESULTTAG
8491 yyresolveStates (yyGLRState* yys, int yyn,
8492 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8493 {
8494 if (0 < yyn)
8495 {
8496 YYASSERT (yys->yypred);
8497 YYCHK (yyresolveStates (yys->yypred, yyn-1, yystackp, P, tokens, index));
8498 if (! yys->yyresolved)
8499 YYCHK (yyresolveValue (yys, yystackp, P, tokens, index));
8500 }
8501 return yyok;
8502 }
8503
8504 /** Resolve the states for the RHS of YYOPT on *YYSTACKP, perform its
8505 * user action, and return the semantic value and location in *YYVALP
8506 * and *YYLOCP. Regardless of whether result = yyok, all RHS states
8507 * have been destroyed (assuming the user action destroys all RHS
8508 * semantic values if invoked). */
8509 static YYRESULTTAG
8510 yyresolveAction (yySemanticOption* yyopt, yyGLRStack* yystackp,
8511 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8512 {
8513 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
8514 int yynrhs = yyrhsLength (yyopt->yyrule);
8515 YYRESULTTAG yyflag =
8516 yyresolveStates (yyopt->yystate, yynrhs, yystackp, P, tokens, index);
8517 if (yyflag != yyok)
8518 {
8519 yyGLRState *yys;
8520 for (yys = yyopt->yystate; yynrhs > 0; yys = yys->yypred, yynrhs -= 1)
8521 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
8522 return yyflag;
8523 }
8524
8525 yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred = yyopt->yystate;
8526 {
8527 int yychar_current = yychar;
8528 YYSTYPE yylval_current = yylval;
8529 yychar = yyopt->yyrawchar;
8530 yylval = yyopt->yyval;
8531 yyflag = yyuserAction (yyopt->yyrule, yynrhs,
8532 yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
8533 yystackp, yyvalp, P, tokens, index);
8534 yychar = yychar_current;
8535 yylval = yylval_current;
8536 }
8537 return yyflag;
8538 }
8539
8540 #if YYDEBUG
8541 static void
8542 yyreportTree (yySemanticOption* yyx, int yyindent)
8543 {
8544 int yynrhs = yyrhsLength (yyx->yyrule);
8545 int yyi;
8546 yyGLRState* yys;
8547 yyGLRState* yystates[1 + YYMAXRHS];
8548 yyGLRState yyleftmost_state;
8549
8550 for (yyi = yynrhs, yys = yyx->yystate; 0 < yyi; yyi -= 1, yys = yys->yypred)
8551 yystates[yyi] = yys;
8552 if (yys == YY_NULLPTR)
8553 {
8554 yyleftmost_state.yyposn = 0;
8555 yystates[0] = &yyleftmost_state;
8556 }
8557 else
8558 yystates[0] = yys;
8559
8560 if (yyx->yystate->yyposn < yys->yyposn + 1)
8561 YYFPRINTF (stderr, "%*s%s -> <Rule %d, empty>\n",
8562 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
8563 yyx->yyrule - 1);
8564 else
8565 YYFPRINTF (stderr, "%*s%s -> <Rule %d, tokens %lu .. %lu>\n",
8566 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
8567 yyx->yyrule - 1, (unsigned long) (yys->yyposn + 1),
8568 (unsigned long) yyx->yystate->yyposn);
8569 for (yyi = 1; yyi <= yynrhs; yyi += 1)
8570 {
8571 if (yystates[yyi]->yyresolved)
8572 {
8573 if (yystates[yyi-1]->yyposn+1 > yystates[yyi]->yyposn)
8574 YYFPRINTF (stderr, "%*s%s <empty>\n", yyindent+2, "",
8575 yytokenName (yystos[yystates[yyi]->yylrState]));
8576 else
8577 YYFPRINTF (stderr, "%*s%s <tokens %lu .. %lu>\n", yyindent+2, "",
8578 yytokenName (yystos[yystates[yyi]->yylrState]),
8579 (unsigned long) (yystates[yyi-1]->yyposn + 1),
8580 (unsigned long) yystates[yyi]->yyposn);
8581 }
8582 else
8583 yyreportTree (yystates[yyi]->yysemantics.yyfirstVal, yyindent+2);
8584 }
8585 }
8586 #endif
8587
8588 static YYRESULTTAG
8589 yyreportAmbiguity (yySemanticOption* yyx0,
8590 yySemanticOption* yyx1, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8591 {
8592 YYUSE (yyx0);
8593 YYUSE (yyx1);
8594
8595 #if YYDEBUG
8596 YYFPRINTF (stderr, "Ambiguity detected.\n");
8597 YYFPRINTF (stderr, "Option 1,\n");
8598 yyreportTree (yyx0, 2);
8599 YYFPRINTF (stderr, "\nOption 2,\n");
8600 yyreportTree (yyx1, 2);
8601 YYFPRINTF (stderr, "\n");
8602 #endif
8603
8604 yyerror (P, tokens, index, YY_("syntax is ambiguous"));
8605 return yyabort;
8606 }
8607
8608 /** Resolve the ambiguity represented in state YYS in *YYSTACKP,
8609 * perform the indicated actions, and set the semantic value of YYS.
8610 * If result != yyok, the chain of semantic options in YYS has been
8611 * cleared instead or it has been left unmodified except that
8612 * redundant options may have been removed. Regardless of whether
8613 * result = yyok, YYS has been left with consistent data so that
8614 * yydestroyGLRState can be invoked if necessary. */
8615 static YYRESULTTAG
8616 yyresolveValue (yyGLRState* yys, yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8617 {
8618 yySemanticOption* yyoptionList = yys->yysemantics.yyfirstVal;
8619 yySemanticOption* yybest = yyoptionList;
8620 yySemanticOption** yypp;
8621 yybool yymerge = yyfalse;
8622 YYSTYPE yysval;
8623 YYRESULTTAG yyflag;
8624
8625 for (yypp = &yyoptionList->yynext; *yypp != YY_NULLPTR; )
8626 {
8627 yySemanticOption* yyp = *yypp;
8628
8629 if (yyidenticalOptions (yybest, yyp))
8630 {
8631 yymergeOptionSets (yybest, yyp);
8632 *yypp = yyp->yynext;
8633 }
8634 else
8635 {
8636 switch (yypreference (yybest, yyp))
8637 {
8638 case 0:
8639 return yyreportAmbiguity (yybest, yyp, P, tokens, index);
8640 break;
8641 case 1:
8642 yymerge = yytrue;
8643 break;
8644 case 2:
8645 break;
8646 case 3:
8647 yybest = yyp;
8648 yymerge = yyfalse;
8649 break;
8650 default:
8651 /* This cannot happen so it is not worth a YYASSERT (yyfalse),
8652 but some compilers complain if the default case is
8653 omitted. */
8654 break;
8655 }
8656 yypp = &yyp->yynext;
8657 }
8658 }
8659
8660 if (yymerge)
8661 {
8662 yySemanticOption* yyp;
8663 int yyprec = yydprec[yybest->yyrule];
8664 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
8665 if (yyflag == yyok)
8666 for (yyp = yybest->yynext; yyp != YY_NULLPTR; yyp = yyp->yynext)
8667 {
8668 if (yyprec == yydprec[yyp->yyrule])
8669 {
8670 YYSTYPE yysval_other;
8671 yyflag = yyresolveAction (yyp, yystackp, &yysval_other, P, tokens, index);
8672 if (yyflag != yyok)
8673 {
8674 yydestruct ("Cleanup: discarding incompletely merged value for",
8675 yystos[yys->yylrState],
8676 &yysval, P, tokens, index);
8677 break;
8678 }
8679 yyuserMerge (yymerger[yyp->yyrule], &yysval, &yysval_other);
8680 }
8681 }
8682 }
8683 else
8684 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
8685
8686 if (yyflag == yyok)
8687 {
8688 yys->yyresolved = yytrue;
8689 yys->yysemantics.yysval = yysval;
8690 }
8691 else
8692 yys->yysemantics.yyfirstVal = YY_NULLPTR;
8693 return yyflag;
8694 }
8695
8696 static YYRESULTTAG
8697 yyresolveStack (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8698 {
8699 if (yystackp->yysplitPoint != YY_NULLPTR)
8700 {
8701 yyGLRState* yys;
8702 int yyn;
8703
8704 for (yyn = 0, yys = yystackp->yytops.yystates[0];
8705 yys != yystackp->yysplitPoint;
8706 yys = yys->yypred, yyn += 1)
8707 continue;
8708 YYCHK (yyresolveStates (yystackp->yytops.yystates[0], yyn, yystackp
8709 , P, tokens, index));
8710 }
8711 return yyok;
8712 }
8713
8714 static void
8715 yycompressStack (yyGLRStack* yystackp)
8716 {
8717 yyGLRState* yyp, *yyq, *yyr;
8718
8719 if (yystackp->yytops.yysize != 1 || yystackp->yysplitPoint == YY_NULLPTR)
8720 return;
8721
8722 for (yyp = yystackp->yytops.yystates[0], yyq = yyp->yypred, yyr = YY_NULLPTR;
8723 yyp != yystackp->yysplitPoint;
8724 yyr = yyp, yyp = yyq, yyq = yyp->yypred)
8725 yyp->yypred = yyr;
8726
8727 yystackp->yyspaceLeft += (size_t) (yystackp->yynextFree - yystackp->yyitems);
8728 yystackp->yynextFree = ((yyGLRStackItem*) yystackp->yysplitPoint) + 1;
8729 yystackp->yyspaceLeft -= (size_t) (yystackp->yynextFree - yystackp->yyitems);
8730 yystackp->yysplitPoint = YY_NULLPTR;
8731 yystackp->yylastDeleted = YY_NULLPTR;
8732
8733 while (yyr != YY_NULLPTR)
8734 {
8735 yystackp->yynextFree->yystate = *yyr;
8736 yyr = yyr->yypred;
8737 yystackp->yynextFree->yystate.yypred = &yystackp->yynextFree[-1].yystate;
8738 yystackp->yytops.yystates[0] = &yystackp->yynextFree->yystate;
8739 yystackp->yynextFree += 1;
8740 yystackp->yyspaceLeft -= 1;
8741 }
8742 }
8743
8744 static YYRESULTTAG
8745 yyprocessOneStack (yyGLRStack* yystackp, size_t yyk,
8746 size_t yyposn, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8747 {
8748 while (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
8749 {
8750 yyStateNum yystate = yystackp->yytops.yystates[yyk]->yylrState;
8751 YYDPRINTF ((stderr, "Stack %lu Entering state %d\n",
8752 (unsigned long) yyk, yystate));
8753
8754 YYASSERT (yystate != YYFINAL);
8755
8756 if (yyisDefaultedState (yystate))
8757 {
8758 YYRESULTTAG yyflag;
8759 yyRuleNum yyrule = yydefaultAction (yystate);
8760 if (yyrule == 0)
8761 {
8762 YYDPRINTF ((stderr, "Stack %lu dies.\n",
8763 (unsigned long) yyk));
8764 yymarkStackDeleted (yystackp, yyk);
8765 return yyok;
8766 }
8767 yyflag = yyglrReduce (yystackp, yyk, yyrule, yyimmediate[yyrule], P, tokens, index);
8768 if (yyflag == yyerr)
8769 {
8770 YYDPRINTF ((stderr,
8771 "Stack %lu dies "
8772 "(predicate failure or explicit user error).\n",
8773 (unsigned long) yyk));
8774 yymarkStackDeleted (yystackp, yyk);
8775 return yyok;
8776 }
8777 if (yyflag != yyok)
8778 return yyflag;
8779 }
8780 else
8781 {
8782 yySymbol yytoken;
8783 int yyaction;
8784 const short* yyconflicts;
8785
8786 yystackp->yytops.yylookaheadNeeds[yyk] = yytrue;
8787 if (yychar == YYEMPTY)
8788 {
8789 YYDPRINTF ((stderr, "Reading a token: "));
8790 yychar = yylex (&yylval, P, tokens, index);
8791 }
8792
8793 if (yychar <= YYEOF)
8794 {
8795 yychar = yytoken = YYEOF;
8796 YYDPRINTF ((stderr, "Now at end of input.\n"));
8797 }
8798 else
8799 {
8800 yytoken = YYTRANSLATE (yychar);
8801 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
8802 }
8803
8804 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
8805
8806 while (*yyconflicts != 0)
8807 {
8808 YYRESULTTAG yyflag;
8809 size_t yynewStack = yysplitStack (yystackp, yyk);
8810 YYDPRINTF ((stderr, "Splitting off stack %lu from %lu.\n",
8811 (unsigned long) yynewStack,
8812 (unsigned long) yyk));
8813 yyflag = yyglrReduce (yystackp, yynewStack,
8814 *yyconflicts,
8815 yyimmediate[*yyconflicts], P, tokens, index);
8816 if (yyflag == yyok)
8817 YYCHK (yyprocessOneStack (yystackp, yynewStack,
8818 yyposn, P, tokens, index));
8819 else if (yyflag == yyerr)
8820 {
8821 YYDPRINTF ((stderr, "Stack %lu dies.\n",
8822 (unsigned long) yynewStack));
8823 yymarkStackDeleted (yystackp, yynewStack);
8824 }
8825 else
8826 return yyflag;
8827 yyconflicts += 1;
8828 }
8829
8830 if (yyisShiftAction (yyaction))
8831 break;
8832 else if (yyisErrorAction (yyaction))
8833 {
8834 YYDPRINTF ((stderr, "Stack %lu dies.\n",
8835 (unsigned long) yyk));
8836 yymarkStackDeleted (yystackp, yyk);
8837 break;
8838 }
8839 else
8840 {
8841 YYRESULTTAG yyflag = yyglrReduce (yystackp, yyk, -yyaction,
8842 yyimmediate[-yyaction], P, tokens, index);
8843 if (yyflag == yyerr)
8844 {
8845 YYDPRINTF ((stderr,
8846 "Stack %lu dies "
8847 "(predicate failure or explicit user error).\n",
8848 (unsigned long) yyk));
8849 yymarkStackDeleted (yystackp, yyk);
8850 break;
8851 }
8852 else if (yyflag != yyok)
8853 return yyflag;
8854 }
8855 }
8856 }
8857 return yyok;
8858 }
8859
8860 static void
8861 yyreportSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8862 {
8863 if (yystackp->yyerrState != 0)
8864 return;
8865 #if ! YYERROR_VERBOSE
8866 yyerror (P, tokens, index, YY_("syntax error"));
8867 #else
8868 {
8869 yySymbol yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
8870 size_t yysize0 = yytnamerr (YY_NULLPTR, yytokenName (yytoken));
8871 size_t yysize = yysize0;
8872 yybool yysize_overflow = yyfalse;
8873 char* yymsg = YY_NULLPTR;
8874 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
8875 /* Internationalized format string. */
8876 const char *yyformat = YY_NULLPTR;
8877 /* Arguments of yyformat. */
8878 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
8879 /* Number of reported tokens (one for the "unexpected", one per
8880 "expected"). */
8881 int yycount = 0;
8882
8883 /* There are many possibilities here to consider:
8884 - If this state is a consistent state with a default action, then
8885 the only way this function was invoked is if the default action
8886 is an error action. In that case, don't check for expected
8887 tokens because there are none.
8888 - The only way there can be no lookahead present (in yychar) is if
8889 this state is a consistent state with a default action. Thus,
8890 detecting the absence of a lookahead is sufficient to determine
8891 that there is no unexpected or expected token to report. In that
8892 case, just report a simple "syntax error".
8893 - Don't assume there isn't a lookahead just because this state is a
8894 consistent state with a default action. There might have been a
8895 previous inconsistent state, consistent state with a non-default
8896 action, or user semantic action that manipulated yychar.
8897 - Of course, the expected token list depends on states to have
8898 correct lookahead information, and it depends on the parser not
8899 to perform extra reductions after fetching a lookahead from the
8900 scanner and before detecting a syntax error. Thus, state merging
8901 (from LALR or IELR) and default reductions corrupt the expected
8902 token list. However, the list is correct for canonical LR with
8903 one exception: it will still contain any token that will not be
8904 accepted due to an error action in a later state.
8905 */
8906 if (yytoken != YYEMPTY)
8907 {
8908 int yyn = yypact[yystackp->yytops.yystates[0]->yylrState];
8909 yyarg[yycount++] = yytokenName (yytoken);
8910 if (!yypact_value_is_default (yyn))
8911 {
8912 /* Start YYX at -YYN if negative to avoid negative indexes in
8913 YYCHECK. In other words, skip the first -YYN actions for this
8914 state because they are default actions. */
8915 int yyxbegin = yyn < 0 ? -yyn : 0;
8916 /* Stay within bounds of both yycheck and yytname. */
8917 int yychecklim = YYLAST - yyn + 1;
8918 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
8919 int yyx;
8920 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
8921 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
8922 && !yytable_value_is_error (yytable[yyx + yyn]))
8923 {
8924 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
8925 {
8926 yycount = 1;
8927 yysize = yysize0;
8928 break;
8929 }
8930 yyarg[yycount++] = yytokenName (yyx);
8931 {
8932 size_t yysz = yysize + yytnamerr (YY_NULLPTR, yytokenName (yyx));
8933 if (yysz < yysize)
8934 yysize_overflow = yytrue;
8935 yysize = yysz;
8936 }
8937 }
8938 }
8939 }
8940
8941 switch (yycount)
8942 {
8943 #define YYCASE_(N, S) \
8944 case N: \
8945 yyformat = S; \
8946 break
8947 default: /* Avoid compiler warnings. */
8948 YYCASE_(0, YY_("syntax error"));
8949 YYCASE_(1, YY_("syntax error, unexpected %s"));
8950 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
8951 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
8952 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
8953 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
8954 #undef YYCASE_
8955 }
8956
8957 {
8958 size_t yysz = yysize + strlen (yyformat);
8959 if (yysz < yysize)
8960 yysize_overflow = yytrue;
8961 yysize = yysz;
8962 }
8963
8964 if (!yysize_overflow)
8965 yymsg = (char *) YYMALLOC (yysize);
8966
8967 if (yymsg)
8968 {
8969 char *yyp = yymsg;
8970 int yyi = 0;
8971 while ((*yyp = *yyformat))
8972 {
8973 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
8974 {
8975 yyp += yytnamerr (yyp, yyarg[yyi++]);
8976 yyformat += 2;
8977 }
8978 else
8979 {
8980 yyp++;
8981 yyformat++;
8982 }
8983 }
8984 yyerror (P, tokens, index, yymsg);
8985 YYFREE (yymsg);
8986 }
8987 else
8988 {
8989 yyerror (P, tokens, index, YY_("syntax error"));
8990 yyMemoryExhausted (yystackp);
8991 }
8992 }
8993 #endif /* YYERROR_VERBOSE */
8994 yynerrs += 1;
8995 }
8996
8997 /* Recover from a syntax error on *YYSTACKP, assuming that *YYSTACKP->YYTOKENP,
8998 yylval, and yylloc are the syntactic category, semantic value, and location
8999 of the lookahead. */
9000 static void
9001 yyrecoverSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
9002 {
9003 size_t yyk;
9004 int yyj;
9005
9006 if (yystackp->yyerrState == 3)
9007 /* We just shifted the error token and (perhaps) took some
9008 reductions. Skip tokens until we can proceed. */
9009 while (yytrue)
9010 {
9011 yySymbol yytoken;
9012 if (yychar == YYEOF)
9013 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
9014 if (yychar != YYEMPTY)
9015 {
9016 yytoken = YYTRANSLATE (yychar);
9017 yydestruct ("Error: discarding",
9018 yytoken, &yylval, P, tokens, index);
9019 }
9020 YYDPRINTF ((stderr, "Reading a token: "));
9021 yychar = yylex (&yylval, P, tokens, index);
9022 if (yychar <= YYEOF)
9023 {
9024 yychar = yytoken = YYEOF;
9025 YYDPRINTF ((stderr, "Now at end of input.\n"));
9026 }
9027 else
9028 {
9029 yytoken = YYTRANSLATE (yychar);
9030 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
9031 }
9032 yyj = yypact[yystackp->yytops.yystates[0]->yylrState];
9033 if (yypact_value_is_default (yyj))
9034 return;
9035 yyj += yytoken;
9036 if (yyj < 0 || YYLAST < yyj || yycheck[yyj] != yytoken)
9037 {
9038 if (yydefact[yystackp->yytops.yystates[0]->yylrState] != 0)
9039 return;
9040 }
9041 else if (! yytable_value_is_error (yytable[yyj]))
9042 return;
9043 }
9044
9045 /* Reduce to one stack. */
9046 for (yyk = 0; yyk < yystackp->yytops.yysize; yyk += 1)
9047 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
9048 break;
9049 if (yyk >= yystackp->yytops.yysize)
9050 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
9051 for (yyk += 1; yyk < yystackp->yytops.yysize; yyk += 1)
9052 yymarkStackDeleted (yystackp, yyk);
9053 yyremoveDeletes (yystackp);
9054 yycompressStack (yystackp);
9055
9056 /* Now pop stack until we find a state that shifts the error token. */
9057 yystackp->yyerrState = 3;
9058 while (yystackp->yytops.yystates[0] != YY_NULLPTR)
9059 {
9060 yyGLRState *yys = yystackp->yytops.yystates[0];
9061 yyj = yypact[yys->yylrState];
9062 if (! yypact_value_is_default (yyj))
9063 {
9064 yyj += YYTERROR;
9065 if (0 <= yyj && yyj <= YYLAST && yycheck[yyj] == YYTERROR
9066 && yyisShiftAction (yytable[yyj]))
9067 {
9068 /* Shift the error token. */
9069 YY_SYMBOL_PRINT ("Shifting", yystos[yytable[yyj]],
9070 &yylval, &yyerrloc);
9071 yyglrShift (yystackp, 0, yytable[yyj],
9072 yys->yyposn, &yylval);
9073 yys = yystackp->yytops.yystates[0];
9074 break;
9075 }
9076 }
9077 if (yys->yypred != YY_NULLPTR)
9078 yydestroyGLRState ("Error: popping", yys, P, tokens, index);
9079 yystackp->yytops.yystates[0] = yys->yypred;
9080 yystackp->yynextFree -= 1;
9081 yystackp->yyspaceLeft += 1;
9082 }
9083 if (yystackp->yytops.yystates[0] == YY_NULLPTR)
9084 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
9085 }
9086
9087 #define YYCHK1(YYE) \
9088 do { \
9089 switch (YYE) { \
9090 case yyok: \
9091 break; \
9092 case yyabort: \
9093 goto yyabortlab; \
9094 case yyaccept: \
9095 goto yyacceptlab; \
9096 case yyerr: \
9097 goto yyuser_error; \
9098 default: \
9099 goto yybuglab; \
9100 } \
9101 } while (0)
9102
9103 /*----------.
9104 | yyparse. |
9105 `----------*/
9106
9107 int
9108 yyparse (struct psi_parser *P, struct psi_plist *tokens, size_t *index)
9109 {
9110 int yyresult;
9111 yyGLRStack yystack;
9112 yyGLRStack* const yystackp = &yystack;
9113 size_t yyposn;
9114
9115 YYDPRINTF ((stderr, "Starting parse\n"));
9116
9117 yychar = YYEMPTY;
9118 yylval = yyval_default;
9119
9120 /* User initialization code. */
9121 #line 118 "src/parser_proc_grammar.y" /* glr.c:2265 */
9122 {
9123 }
9124
9125 #line 9126 "src/parser_proc.c" /* glr.c:2265 */
9126
9127 if (! yyinitGLRStack (yystackp, YYINITDEPTH))
9128 goto yyexhaustedlab;
9129 switch (YYSETJMP (yystack.yyexception_buffer))
9130 {
9131 case 0: break;
9132 case 1: goto yyabortlab;
9133 case 2: goto yyexhaustedlab;
9134 default: goto yybuglab;
9135 }
9136 yyglrShift (&yystack, 0, 0, 0, &yylval);
9137 yyposn = 0;
9138
9139 while (yytrue)
9140 {
9141 /* For efficiency, we have two loops, the first of which is
9142 specialized to deterministic operation (single stack, no
9143 potential ambiguity). */
9144 /* Standard mode */
9145 while (yytrue)
9146 {
9147 yyRuleNum yyrule;
9148 int yyaction;
9149 const short* yyconflicts;
9150
9151 yyStateNum yystate = yystack.yytops.yystates[0]->yylrState;
9152 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
9153 if (yystate == YYFINAL)
9154 goto yyacceptlab;
9155 if (yyisDefaultedState (yystate))
9156 {
9157 yyrule = yydefaultAction (yystate);
9158 if (yyrule == 0)
9159 {
9160 yyreportSyntaxError (&yystack, P, tokens, index);
9161 goto yyuser_error;
9162 }
9163 YYCHK1 (yyglrReduce (&yystack, 0, yyrule, yytrue, P, tokens, index));
9164 }
9165 else
9166 {
9167 yySymbol yytoken;
9168 if (yychar == YYEMPTY)
9169 {
9170 YYDPRINTF ((stderr, "Reading a token: "));
9171 yychar = yylex (&yylval, P, tokens, index);
9172 }
9173
9174 if (yychar <= YYEOF)
9175 {
9176 yychar = yytoken = YYEOF;
9177 YYDPRINTF ((stderr, "Now at end of input.\n"));
9178 }
9179 else
9180 {
9181 yytoken = YYTRANSLATE (yychar);
9182 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
9183 }
9184
9185 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
9186 if (*yyconflicts != 0)
9187 break;
9188 if (yyisShiftAction (yyaction))
9189 {
9190 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
9191 yychar = YYEMPTY;
9192 yyposn += 1;
9193 yyglrShift (&yystack, 0, yyaction, yyposn, &yylval);
9194 if (0 < yystack.yyerrState)
9195 yystack.yyerrState -= 1;
9196 }
9197 else if (yyisErrorAction (yyaction))
9198 {
9199 yyreportSyntaxError (&yystack, P, tokens, index);
9200 goto yyuser_error;
9201 }
9202 else
9203 YYCHK1 (yyglrReduce (&yystack, 0, -yyaction, yytrue, P, tokens, index));
9204 }
9205 }
9206
9207 while (yytrue)
9208 {
9209 yySymbol yytoken_to_shift;
9210 size_t yys;
9211
9212 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
9213 yystackp->yytops.yylookaheadNeeds[yys] = (yybool) (yychar != YYEMPTY);
9214
9215 /* yyprocessOneStack returns one of three things:
9216
9217 - An error flag. If the caller is yyprocessOneStack, it
9218 immediately returns as well. When the caller is finally
9219 yyparse, it jumps to an error label via YYCHK1.
9220
9221 - yyok, but yyprocessOneStack has invoked yymarkStackDeleted
9222 (&yystack, yys), which sets the top state of yys to NULL. Thus,
9223 yyparse's following invocation of yyremoveDeletes will remove
9224 the stack.
9225
9226 - yyok, when ready to shift a token.
9227
9228 Except in the first case, yyparse will invoke yyremoveDeletes and
9229 then shift the next token onto all remaining stacks. This
9230 synchronization of the shift (that is, after all preceding
9231 reductions on all stacks) helps prevent double destructor calls
9232 on yylval in the event of memory exhaustion. */
9233
9234 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
9235 YYCHK1 (yyprocessOneStack (&yystack, yys, yyposn, P, tokens, index));
9236 yyremoveDeletes (&yystack);
9237 if (yystack.yytops.yysize == 0)
9238 {
9239 yyundeleteLastStack (&yystack);
9240 if (yystack.yytops.yysize == 0)
9241 yyFail (&yystack, P, tokens, index, YY_("syntax error"));
9242 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
9243 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
9244 yyreportSyntaxError (&yystack, P, tokens, index);
9245 goto yyuser_error;
9246 }
9247
9248 /* If any yyglrShift call fails, it will fail after shifting. Thus,
9249 a copy of yylval will already be on stack 0 in the event of a
9250 failure in the following loop. Thus, yychar is set to YYEMPTY
9251 before the loop to make sure the user destructor for yylval isn't
9252 called twice. */
9253 yytoken_to_shift = YYTRANSLATE (yychar);
9254 yychar = YYEMPTY;
9255 yyposn += 1;
9256 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
9257 {
9258 int yyaction;
9259 const short* yyconflicts;
9260 yyStateNum yystate = yystack.yytops.yystates[yys]->yylrState;
9261 yygetLRActions (yystate, yytoken_to_shift, &yyaction,
9262 &yyconflicts);
9263 /* Note that yyconflicts were handled by yyprocessOneStack. */
9264 YYDPRINTF ((stderr, "On stack %lu, ", (unsigned long) yys));
9265 YY_SYMBOL_PRINT ("shifting", yytoken_to_shift, &yylval, &yylloc);
9266 yyglrShift (&yystack, yys, yyaction, yyposn,
9267 &yylval);
9268 YYDPRINTF ((stderr, "Stack %lu now in state #%d\n",
9269 (unsigned long) yys,
9270 yystack.yytops.yystates[yys]->yylrState));
9271 }
9272
9273 if (yystack.yytops.yysize == 1)
9274 {
9275 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
9276 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
9277 yycompressStack (&yystack);
9278 break;
9279 }
9280 }
9281 continue;
9282 yyuser_error:
9283 yyrecoverSyntaxError (&yystack, P, tokens, index);
9284 yyposn = yystack.yytops.yystates[0]->yyposn;
9285 }
9286
9287 yyacceptlab:
9288 yyresult = 0;
9289 goto yyreturn;
9290
9291 yybuglab:
9292 YYASSERT (yyfalse);
9293 goto yyabortlab;
9294
9295 yyabortlab:
9296 yyresult = 1;
9297 goto yyreturn;
9298
9299 yyexhaustedlab:
9300 yyerror (P, tokens, index, YY_("memory exhausted"));
9301 yyresult = 2;
9302 goto yyreturn;
9303
9304 yyreturn:
9305 if (yychar != YYEMPTY)
9306 yydestruct ("Cleanup: discarding lookahead",
9307 YYTRANSLATE (yychar), &yylval, P, tokens, index);
9308
9309 /* If the stack is well-formed, pop the stack until it is empty,
9310 destroying its entries as we go. But free the stack regardless
9311 of whether it is well-formed. */
9312 if (yystack.yyitems)
9313 {
9314 yyGLRState** yystates = yystack.yytops.yystates;
9315 if (yystates)
9316 {
9317 size_t yysize = yystack.yytops.yysize;
9318 size_t yyk;
9319 for (yyk = 0; yyk < yysize; yyk += 1)
9320 if (yystates[yyk])
9321 {
9322 while (yystates[yyk])
9323 {
9324 yyGLRState *yys = yystates[yyk];
9325 if (yys->yypred != YY_NULLPTR)
9326 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
9327 yystates[yyk] = yys->yypred;
9328 yystack.yynextFree -= 1;
9329 yystack.yyspaceLeft += 1;
9330 }
9331 break;
9332 }
9333 }
9334 yyfreeGLRStack (&yystack);
9335 }
9336
9337 return yyresult;
9338 }
9339
9340 /* DEBUGGING ONLY */
9341 #if YYDEBUG
9342 static void
9343 yy_yypstack (yyGLRState* yys)
9344 {
9345 if (yys->yypred)
9346 {
9347 yy_yypstack (yys->yypred);
9348 YYFPRINTF (stderr, " -> ");
9349 }
9350 YYFPRINTF (stderr, "%d@%lu", yys->yylrState,
9351 (unsigned long) yys->yyposn);
9352 }
9353
9354 static void
9355 yypstates (yyGLRState* yyst)
9356 {
9357 if (yyst == YY_NULLPTR)
9358 YYFPRINTF (stderr, "<null>");
9359 else
9360 yy_yypstack (yyst);
9361 YYFPRINTF (stderr, "\n");
9362 }
9363
9364 static void
9365 yypstack (yyGLRStack* yystackp, size_t yyk)
9366 {
9367 yypstates (yystackp->yytops.yystates[yyk]);
9368 }
9369
9370 #define YYINDEX(YYX) \
9371 ((YYX) == YY_NULLPTR ? -1 : (yyGLRStackItem*) (YYX) - yystackp->yyitems)
9372
9373
9374 static void
9375 yypdumpstack (yyGLRStack* yystackp)
9376 {
9377 yyGLRStackItem* yyp;
9378 size_t yyi;
9379 for (yyp = yystackp->yyitems; yyp < yystackp->yynextFree; yyp += 1)
9380 {
9381 YYFPRINTF (stderr, "%3lu. ",
9382 (unsigned long) (yyp - yystackp->yyitems));
9383 if (*(yybool *) yyp)
9384 {
9385 YYASSERT (yyp->yystate.yyisState);
9386 YYASSERT (yyp->yyoption.yyisState);
9387 YYFPRINTF (stderr, "Res: %d, LR State: %d, posn: %lu, pred: %ld",
9388 yyp->yystate.yyresolved, yyp->yystate.yylrState,
9389 (unsigned long) yyp->yystate.yyposn,
9390 (long) YYINDEX (yyp->yystate.yypred));
9391 if (! yyp->yystate.yyresolved)
9392 YYFPRINTF (stderr, ", firstVal: %ld",
9393 (long) YYINDEX (yyp->yystate
9394 .yysemantics.yyfirstVal));
9395 }
9396 else
9397 {
9398 YYASSERT (!yyp->yystate.yyisState);
9399 YYASSERT (!yyp->yyoption.yyisState);
9400 YYFPRINTF (stderr, "Option. rule: %d, state: %ld, next: %ld",
9401 yyp->yyoption.yyrule - 1,
9402 (long) YYINDEX (yyp->yyoption.yystate),
9403 (long) YYINDEX (yyp->yyoption.yynext));
9404 }
9405 YYFPRINTF (stderr, "\n");
9406 }
9407 YYFPRINTF (stderr, "Tops:");
9408 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
9409 YYFPRINTF (stderr, "%lu: %ld; ", (unsigned long) yyi,
9410 (long) YYINDEX (yystackp->yytops.yystates[yyi]));
9411 YYFPRINTF (stderr, "\n");
9412 }
9413 #endif
9414
9415 #undef yylval
9416 #undef yychar
9417 #undef yynerrs
9418
9419 /* Substitute the variable and function names. */
9420 #define yyparse psi_parser_proc_parse
9421 #define yylex psi_parser_proc_lex
9422 #define yyerror psi_parser_proc_error
9423 #define yylval psi_parser_proc_lval
9424 #define yychar psi_parser_proc_char
9425 #define yydebug psi_parser_proc_debug
9426 #define yynerrs psi_parser_proc_nerrs
9427
9428 #line 2283 "src/parser_proc_grammar.y" /* glr.c:2578 */
9429
9430
9431 /* epilogue */
9432
9433 #define PSI_DEBUG_LEX 0
9434 static int psi_parser_proc_lex(YYSTYPE *lvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
9435 {
9436 struct psi_token *token;
9437 #if PSI_DEBUG_LEX
9438 PSI_DEBUG_PRINT(P, "PSI: LEX index %4zu ", *index);
9439 #endif
9440 if (psi_plist_get(tokens, (*index)++, &token)) {
9441 #if PSI_DEBUG_LEX
9442 PSI_DEBUG_DUMP(P, psi_token_dump, token);
9443 #endif
9444 *((struct psi_token **)lvalp) = token;
9445 return token->type;
9446 } else {
9447 #if PSI_DEBUG_LEX
9448 PSI_DEBUG_PRINT(P, "EOF\n");
9449 #endif
9450 (*index)--;
9451 }
9452
9453 return PSI_T_EOF;
9454 }
9455
9456 static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char *msg)
9457 {
9458 struct psi_token *T = NULL;
9459 size_t last;
9460
9461 if (*index == 0) {
9462 last = 0;
9463 } else {
9464 last = --(*index);
9465 }
9466
9467 psi_plist_get(tokens, last, &T);
9468 if (T) {
9469 size_t i = (last >= 5) ? last - 5 : 0;
9470
9471 P->error(PSI_DATA(P), T, PSI_WARNING, "PSI %s at col %u", msg, T->col);
9472 while (i <= last || T->type != PSI_T_EOS) {
9473 if (!psi_plist_get(tokens, i++, &T)) {
9474 break;
9475 }
9476 P->error(PSI_DATA(P), T, PSI_WARNING, "PSI %s token '%s' at col %u",
9477 i<last+1?"preceding":i>last+1?"following":"offending", T->text->val, T->col);
9478 }
9479 } else {
9480 P->error(PSI_DATA(P), NULL, PSI_WARNING, "PSI %s", msg);
9481 }
9482 P->errors++;
9483 }
9484