fix access of stat.st_mtime
[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 #ifdef HAVE_CONFIG_H
55 # include "config.h"
56 #else
57 # include "php_config.h"
58 #endif
59
60 #line 61 "src/parser_proc.c" /* glr.c:221 */
61
62
63 /* Substitute the variable and function names. */
64 #define yyparse psi_parser_proc_parse
65 #define yylex psi_parser_proc_lex
66 #define yyerror psi_parser_proc_error
67 #define yydebug psi_parser_proc_debug
68
69
70
71
72 # ifndef YY_NULLPTR
73 # if defined __cplusplus
74 # if 201103L <= __cplusplus
75 # define YY_NULLPTR nullptr
76 # else
77 # define YY_NULLPTR 0
78 # endif
79 # else
80 # define YY_NULLPTR ((void*)0)
81 # endif
82 # endif
83
84 #include "parser_proc.h"
85
86 /* Enabling verbose error messages. */
87 #ifdef YYERROR_VERBOSE
88 # undef YYERROR_VERBOSE
89 # define YYERROR_VERBOSE 1
90 #else
91 # define YYERROR_VERBOSE 1
92 #endif
93
94 /* Default (constant) value used for initialization for null
95 right-hand sides. Unlike the standard yacc.c template, here we set
96 the default value of $$ to a zeroed-out value. Since the default
97 value is undefined, this behavior is technically correct. */
98 static YYSTYPE yyval_default;
99
100
101 /* Unqualified %code blocks. */
102 #line 9 "src/parser_proc_grammar.y" /* glr.c:261 */
103
104 #include <assert.h>
105 #include <stdarg.h>
106
107 #include "plist.h"
108 #include "parser.h"
109
110 #define YYDEBUG 1
111 #define PSI_PARSER_PROC_DEBUG 1
112
113 static int psi_parser_proc_lex(YYSTYPE *u, struct psi_parser *P, struct psi_plist *tokens, size_t *index);
114 static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char *msg);
115
116 static inline void psi_parser_proc_add_struct(struct psi_parser *P, struct psi_decl_struct *strct)
117 {
118 assert(strct);
119 if (!P->structs) {
120 P->structs = psi_plist_init((psi_plist_dtor) psi_decl_struct_free);
121 }
122 P->structs = psi_plist_add(P->structs, &strct);
123 }
124 static inline void psi_parser_proc_add_union(struct psi_parser *P, struct psi_decl_union *u)
125 {
126 assert(u);
127 if (!P->unions) {
128 P->unions = psi_plist_init((psi_plist_dtor) psi_decl_union_free);
129 }
130 P->unions = psi_plist_add(P->unions, &u);
131 }
132 static inline void psi_parser_proc_add_enum(struct psi_parser *P, struct psi_decl_enum *e)
133 {
134 assert(e);
135 if (!P->enums) {
136 P->enums = psi_plist_init((psi_plist_dtor) psi_decl_enum_free);
137 }
138 P->enums = psi_plist_add(P->enums, &e);
139 }
140 static inline void psi_parser_proc_add_typedef(struct psi_parser *P, struct psi_decl_arg *def)
141 {
142 assert(def);
143 if (!P->types) {
144 P->types = psi_plist_init((psi_plist_dtor) psi_decl_arg_free);
145 }
146 P->types = psi_plist_add(P->types, &def);
147 }
148 static inline void psi_parser_proc_add_const(struct psi_parser *P, struct psi_const *cnst) {
149 assert(cnst);
150 if (!P->consts) {
151 P->consts = psi_plist_init((psi_plist_dtor) psi_const_free);
152 }
153 P->consts = psi_plist_add(P->consts, &cnst);
154
155 }
156 static inline void psi_parser_proc_add_decl(struct psi_parser *P, struct psi_decl *decl) {
157 assert(decl);
158
159 if (psi_decl_is_blacklisted(decl->func->var->name->val)) {
160 psi_decl_free(&decl);
161 return;
162 }
163
164 if (!P->decls) {
165 P->decls = psi_plist_init((psi_plist_dtor) psi_decl_free);
166 }
167 P->decls = psi_plist_add(P->decls, &decl);
168 }
169 static inline void psi_parser_proc_add_decl_extvars(struct psi_parser *P, struct psi_plist *list) {
170 assert(list);
171 if (!P->vars) {
172 P->vars = psi_plist_init((psi_plist_dtor) psi_decl_extvar_free);
173 }
174 P->vars = psi_plist_add_r(P->vars, psi_plist_count(list), psi_plist_eles(list));
175 free(list);
176 }
177 static inline void psi_parser_proc_add_impl(struct psi_parser *P, struct psi_impl *impl) {
178 assert(impl);
179 if (!P->impls) {
180 P->impls = psi_plist_init((psi_plist_dtor) psi_impl_free);
181 }
182 P->impls = psi_plist_add(P->impls, &impl);
183 }
184
185 /* end code */
186
187 #line 188 "src/parser_proc.c" /* glr.c:261 */
188
189 #include <stdio.h>
190 #include <stdlib.h>
191 #include <string.h>
192
193 #ifndef YY_
194 # if defined YYENABLE_NLS && YYENABLE_NLS
195 # if ENABLE_NLS
196 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
197 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
198 # endif
199 # endif
200 # ifndef YY_
201 # define YY_(Msgid) Msgid
202 # endif
203 #endif
204
205 #ifndef YYFREE
206 # define YYFREE free
207 #endif
208 #ifndef YYMALLOC
209 # define YYMALLOC malloc
210 #endif
211 #ifndef YYREALLOC
212 # define YYREALLOC realloc
213 #endif
214
215 #define YYSIZEMAX ((size_t) -1)
216
217 #ifdef __cplusplus
218 typedef bool yybool;
219 # define yytrue true
220 # define yyfalse false
221 #else
222 /* When we move to stdbool, get rid of the various casts to yybool. */
223 typedef unsigned char yybool;
224 # define yytrue 1
225 # define yyfalse 0
226 #endif
227
228 #ifndef YYSETJMP
229 # include <setjmp.h>
230 # define YYJMP_BUF jmp_buf
231 # define YYSETJMP(Env) setjmp (Env)
232 /* Pacify Clang and ICC. */
233 # define YYLONGJMP(Env, Val) \
234 do { \
235 longjmp (Env, Val); \
236 YYASSERT (0); \
237 } while (yyfalse)
238 #endif
239
240 #ifndef YY_ATTRIBUTE
241 # if (defined __GNUC__ \
242 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
243 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
244 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
245 # else
246 # define YY_ATTRIBUTE(Spec) /* empty */
247 # endif
248 #endif
249
250 #ifndef YY_ATTRIBUTE_PURE
251 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
252 #endif
253
254 #ifndef YY_ATTRIBUTE_UNUSED
255 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
256 #endif
257
258 #if !defined _Noreturn \
259 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
260 # if defined _MSC_VER && 1200 <= _MSC_VER
261 # define _Noreturn __declspec (noreturn)
262 # else
263 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
264 # endif
265 #endif
266
267 /* Suppress unused-variable warnings by "using" E. */
268 #if ! defined lint || defined __GNUC__
269 # define YYUSE(E) ((void) (E))
270 #else
271 # define YYUSE(E) /* empty */
272 #endif
273
274 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
275 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
276 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
277 _Pragma ("GCC diagnostic push") \
278 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
279 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
280 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
281 _Pragma ("GCC diagnostic pop")
282 #else
283 # define YY_INITIAL_VALUE(Value) Value
284 #endif
285 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
286 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
287 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
288 #endif
289 #ifndef YY_INITIAL_VALUE
290 # define YY_INITIAL_VALUE(Value) /* Nothing. */
291 #endif
292
293
294 #ifndef YYASSERT
295 # define YYASSERT(Condition) ((void) ((Condition) || (abort (), 0)))
296 #endif
297
298 /* YYFINAL -- State number of the termination state. */
299 #define YYFINAL 166
300 /* YYLAST -- Last index in YYTABLE. */
301 #define YYLAST 8213
302
303 /* YYNTOKENS -- Number of terminals. */
304 #define YYNTOKENS 140
305 /* YYNNTS -- Number of nonterminals. */
306 #define YYNNTS 142
307 /* YYNRULES -- Number of rules. */
308 #define YYNRULES 637
309 /* YYNRULES -- Number of states. */
310 #define YYNSTATES 950
311 /* YYMAXRHS -- Maximum number of symbols on right-hand side of rule. */
312 #define YYMAXRHS 16
313 /* YYMAXLEFT -- Maximum number of symbols to the left of a handle
314 accessed by $0, $-1, etc., in any rule. */
315 #define YYMAXLEFT 0
316
317 /* YYTRANSLATE(X) -- Bison symbol number corresponding to X. */
318 #define YYUNDEFTOK 2
319 #define YYMAXUTOK 394
320
321 #define YYTRANSLATE(YYX) \
322 ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
323
324 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
325 static const unsigned char yytranslate[] =
326 {
327 0, 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, 2, 2, 2, 2,
348 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
349 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
350 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
351 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
352 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
353 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
354 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
355 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
356 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
357 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
358 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
359 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
360 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
361 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
362 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
363 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
364 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
365 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
366 135, 136, 137, 138, 139
367 };
368
369 #if YYDEBUG
370 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
371 static const unsigned short yyrline[] =
372 {
373 0, 412, 412, 412, 412, 412, 412, 412, 412, 412,
374 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
375 413, 413, 413, 413, 414, 414, 414, 414, 414, 414,
376 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
377 414, 414, 414, 414, 414, 414, 415, 415, 415, 415,
378 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
379 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
380 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
381 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
382 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
383 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
384 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
385 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
386 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
387 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
388 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
389 415, 415, 415, 415, 416, 416, 416, 416, 416, 416,
390 416, 416, 416, 416, 416, 416, 416, 416, 416, 416,
391 416, 416, 416, 416, 416, 416, 416, 416, 416, 416,
392 416, 416, 416, 416, 416, 416, 416, 416, 416, 416,
393 416, 416, 416, 416, 416, 416, 416, 416, 416, 416,
394 416, 416, 416, 416, 416, 416, 416, 416, 416, 416,
395 416, 416, 416, 416, 416, 416, 416, 416, 416, 416,
396 416, 416, 416, 416, 416, 416, 416, 416, 416, 416,
397 416, 416, 416, 416, 416, 416, 416, 416, 416, 416,
398 416, 416, 416, 416, 416, 416, 416, 416, 416, 416,
399 416, 416, 416, 416, 416, 416, 416, 416, 416, 416,
400 416, 416, 416, 416, 416, 416, 416, 416, 416, 416,
401 420, 421, 424, 425, 428, 429, 430, 431, 437, 441,
402 444, 447, 450, 456, 459, 462, 465, 468, 474, 480,
403 483, 489, 512, 516, 520, 525, 529, 533, 537, 544,
404 545, 549, 550, 554, 555, 556, 560, 561, 565, 566,
405 570, 571, 572, 576, 577, 581, 586, 591, 596, 605,
406 608, 611, 612, 618, 623, 631, 634, 638, 642, 649,
407 653, 657, 661, 666, 677, 688, 693, 698, 702, 708,
408 719, 722, 726, 734, 738, 744, 748, 755, 759, 763,
409 770, 771, 772, 776, 790, 796, 799, 805, 808, 814,
410 815, 823, 834, 843, 855, 856, 860, 870, 879, 891,
411 892, 895, 901, 902, 906, 910, 914, 919, 924, 932,
412 933, 934, 937, 943, 946, 949, 955, 956, 960, 963,
413 966, 972, 975, 978, 986, 998, 1001, 1004, 1007, 1014,
414 1017, 1027, 1030, 1033, 1036, 1037, 1038, 1042, 1045, 1048,
415 1059, 1066, 1076, 1079, 1085, 1088, 1095, 1131, 1134, 1140,
416 1143, 1149, 1155, 1156, 1157, 1158, 1159, 1160, 1164, 1168,
417 1169, 1173, 1174, 1178, 1179, 1186, 1187, 1191, 1198, 1209,
418 1216, 1224, 1248, 1277, 1284, 1295, 1341, 1382, 1397, 1400,
419 1403, 1409, 1412, 1418, 1433, 1436, 1465, 1473, 1501, 1506,
420 1514, 1524, 1534, 1537, 1541, 1547, 1561, 1578, 1581, 1587,
421 1594, 1601, 1609, 1620, 1627, 1630, 1636, 1641, 1649, 1653,
422 1657, 1661, 1665, 1669, 1676, 1680, 1684, 1688, 1692, 1696,
423 1702, 1706, 1713, 1716, 1728, 1732, 1736, 1743, 1756, 1769,
424 1782, 1785, 1792, 1793, 1797, 1800, 1803, 1806, 1812, 1816,
425 1823, 1826, 1829, 1844, 1845, 1846, 1847, 1851, 1854, 1860,
426 1861, 1867, 1870, 1876, 1877, 1881, 1882, 1892, 1895, 1902,
427 1907, 1912, 1922, 1925, 1931, 1934, 1940, 1947, 1954, 1961,
428 1962, 1966, 1967, 1968, 1969, 1970, 1974, 1975, 1976, 1977,
429 1981, 1984, 1990, 1993, 1996, 1999, 2002, 2008, 2012, 2020,
430 2021, 2025, 2032, 2035, 2038, 2041, 2045, 2048, 2054, 2058,
431 2066, 2073, 2078, 2086, 2094, 2095, 2096, 2097, 2098, 2099,
432 2100, 2101, 2102, 2103, 2107, 2110, 2116, 2119, 2125, 2126,
433 2130, 2133, 2139, 2142, 2148, 2155, 2159, 2166, 2169, 2172,
434 2178, 2185, 2188, 2191, 2198, 2203, 2211, 2212, 2213, 2214,
435 2215, 2216, 2217, 2218, 2222, 2225, 2231, 2234, 2240, 2247,
436 2248, 2252, 2259, 2262, 2268, 2276, 2279, 2285
437 };
438 #endif
439
440 #if YYDEBUG || YYERROR_VERBOSE || 1
441 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
442 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
443 static const char *const yytname[] =
444 {
445 "\"end of file\"", "error", "$undefined", "BOOL", "CHAR", "SHORT",
446 "INT", "SIGNED", "UNSIGNED", "LONG", "FLOAT", "DOUBLE", "STRING",
447 "MIXED", "ARRAY", "OBJECT", "CALLABLE", "VOID", "ZVAL", "NULL", "TRUE",
448 "FALSE", "NAME", "NSNAME", "DOLLAR_NAME", "NUMBER", "QUOTED_STRING",
449 "QUOTED_CHAR", "SIZEOF", "VOLATILE", "\"end of line\"", "\";\"", "\"(\"",
450 "\")\"", "\",\"", "\":\"", "\"{\"", "\"}\"", "\"[\"", "\"]\"", "\"=\"",
451 "\"#\"", "\"|\"", "\"^\"", "\"&\"", "\"<<\"", "\">>\"", "\"+\"", "\"-\"",
452 "\"*\"", "\"/\"", "\"%\"", "\"<\"", "\">\"", "\">=\"", "\"<=\"",
453 "\"||\"", "\"&&\"", "\"==\"", "\"!=\"", "\"~\"", "\"!\"", "\".\"",
454 "\"\\\\\"", "\"...\"", "\"?\"", "PRAGMA", "PRAGMA_ONCE", "LINE", "ERROR",
455 "WARNING", "IF", "IFDEF", "IFNDEF", "ELSE", "ELIF", "ENDIF", "DEFINE",
456 "DEFINED", "UNDEF", "IMPORT", "INCLUDE", "INCLUDE_NEXT", "TYPEDEF",
457 "STRUCT", "UNION", "ENUM", "CONST", "LIB", "STATIC", "CALLBACK",
458 "FUNCTION", "LET", "SET", "TEMP", "FREE", "RETURN", "AS", "PRE_ASSERT",
459 "POST_ASSERT", "BOOLVAL", "INTVAL", "STRVAL", "PATHVAL", "STRLEN",
460 "FLOATVAL", "ARRVAL", "OBJVAL", "COUNT", "CALLOC", "TO_BOOL", "TO_INT",
461 "TO_STRING", "TO_FLOAT", "TO_ARRAY", "TO_OBJECT", "COMMENT",
462 "WHITESPACE", "NO_WHITESPACE", "CPP_HEADER", "CPP_ATTRIBUTE",
463 "CPP_EXTENSION", "CPP_PASTE", "CPP_INLINE", "CPP_RESTRICT", "CPP_ASM",
464 "BSLASH", "LONG_DOUBLE", "INT8", "UINT8", "INT16", "UINT16", "INT32",
465 "UINT32", "INT64", "UINT64", "INT128", "UINT128", "BINARY", "UNARY",
466 "$accept", "binary_op_token", "unary_op_token", "name_token",
467 "any_noeol_token", "any_nobrace_token", "file", "blocks", "block", "lib",
468 "cpp", "cpp_exp", "cpp_ignored_token", "cpp_message_token",
469 "cpp_include_token", "cpp_header_token", "cpp_no_arg_token",
470 "cpp_name_arg_token", "cpp_exp_arg_token", "cpp_macro_decl",
471 "cpp_macro_sig", "cpp_macro_sig_args", "cpp_macro_decl_tokens",
472 "cpp_macro_decl_token_list", "cpp_macro_exp", "cpp_macro_call_args",
473 "cpp_macro_call_arg_list", "constant", "impl_def_val",
474 "impl_def_val_token", "decl_typedef", "typedef", "typedef_anon",
475 "typedef_decl", "typedef_anon_decl", "qualified_decl_type",
476 "decl_type_qualifier_token", "decl_type", "decl_type_complex",
477 "decl_type_simple", "decl_real_type", "int_signed", "int_width",
478 "decl_int_type", "int_signed_types", "signed_short_types",
479 "signed_long_types", "int_width_types", "decl_stmt", "decl_asm",
480 "quoted_strings", "decl_extvar_stmt", "decl_extvar_list", "decl_vars",
481 "ignored_decl", "ignored_decl_qualifiers", "ignored_decl_body",
482 "ignored_decl_body_stmts", "ignored_decl_body_stmt", "decl", "decl_body",
483 "decl_func_body", "decl_functor_body", "decl_anon_functor_body",
484 "decl_functor", "decl_anon_functor", "decl_func", "decl_args",
485 "decl_arg_list", "decl_anon_arg", "decl_arg", "decl_var", "decl_union",
486 "decl_struct", "decl_struct_args", "struct_args_block", "struct_args",
487 "struct_arg_var_list", "decl_vars_with_layout", "decl_enum",
488 "decl_enum_items", "decl_enum_item", "num_exp", "number", "sizeof",
489 "sizeof_body", "sizeof_body_notypes", "enum_name", "union_name",
490 "struct_name", "optional_name", "optional_comma", "decl_layout",
491 "align_and_size", "array_size", "array_qualifier_token", "indirection",
492 "pointers", "asterisks", "asterisk", "pointer_qualifier_token", "impl",
493 "impl_func", "impl_args", "impl_arg", "impl_var", "impl_type",
494 "impl_type_restricted", "impl_type_token", "impl_type_restricted_token",
495 "impl_type_extended_token", "impl_stmts", "impl_stmt", "let_stmt",
496 "let_exp", "let_exp_byref", "let_exp_assign", "let_calloc",
497 "let_callback", "let_func", "let_func_token", "let_func_exps",
498 "let_exps", "callback_rval", "callback_arg_list", "callback_args",
499 "return_stmt", "return_exp", "call_decl_vars", "set_stmt", "set_exp",
500 "set_func", "set_func_token", "set_func_exps", "set_exps", "assert_stmt",
501 "assert_stmt_token", "free_stmt", "free_exps", "free_exp", "reference",
502 "byref", YY_NULLPTR
503 };
504 #endif
505
506 #define YYPACT_NINF -731
507 #define YYTABLE_NINF -636
508
509 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
510 STATE-NUM. */
511 static const short yypact[] =
512 {
513 529, -731, -731, -731, -731, -731, 128, -731, -731, -731,
514 582, -731, -731, -731, 555, 722, 7975, 7975, 7975, 348,
515 77, -23, 80, -731, 281, -731, 132, 529, -731, -731,
516 -731, -731, -731, 7120, 109, -731, -731, -731, -731, 409,
517 161, -731, -731, -731, -731, 493, 26, -731, -731, 30,
518 96, 126, -731, -731, -731, -731, 125, -731, 142, -731,
519 -731, -731, 7975, 7975, 7975, -731, -731, -731, 145, -731,
520 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
521 -731, 861, -731, -731, -731, -731, 151, 987, 987, 33,
522 -731, 987, 6894, 7975, 7975, 1728, 154, -731, -731, -731,
523 165, 7975, 164, 164, -731, -731, -731, -731, -731, -731,
524 1353, -731, -731, -731, -731, -731, -731, -731, -731, -731,
525 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
526 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
527 -731, 114, -731, -731, 114, 181, -731, -731, -731, -731,
528 -731, -731, 201, 192, -731, 214, -731, 218, -731, 234,
529 -731, 1841, 722, 138, -731, 26, -731, -731, 46, 224,
530 -731, -731, 232, 7975, 17, -731, -731, -731, 261, -731,
531 101, -731, -731, -731, 507, -731, 233, 244, 248, 1954,
532 1954, 7975, 230, -731, -731, -731, 7459, 26, -731, 1693,
533 -731, -731, -731, -731, -731, -731, -731, -731, 1806, 1919,
534 2032, 2145, -731, 2258, 2371, -731, -731, -731, 2484, -731,
535 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
536 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
537 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
538 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
539 -731, 2597, 2710, 2823, 2936, 3049, -731, -731, -731, -731,
540 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
541 -731, 3162, -731, 3275, 3388, 3501, 3614, 3727, 3840, -731,
542 3953, -731, -731, 4066, 4179, 4292, 4405, 4518, 4631, 4744,
543 4857, 4970, 5083, 5196, 5309, 5422, 5535, 5648, 5761, -731,
544 -731, -731, -731, -731, -731, -731, 5874, 987, -731, -731,
545 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
546 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
547 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
548 -731, -731, -731, -731, -731, -731, -731, -731, -731, 987,
549 -731, -731, -731, -731, -731, -731, -731, 116, 6894, -731,
550 -731, -731, -731, 7572, 6894, 250, 8076, -731, 111, -731,
551 169, -731, -731, -731, -731, 245, 247, 247, 91, 91,
552 6103, 256, -731, 230, 252, 266, -731, 268, -731, -731,
553 -731, 1467, -731, 255, 224, -731, -731, -731, -731, -731,
554 301, -731, -731, 1239, -731, 283, -731, 52, 7120, -731,
555 279, 173, 284, -731, -731, 175, 277, 286, -731, 7459,
556 6555, 7459, 7975, 7459, -731, -731, 129, -731, -731, -731,
557 -731, -731, 6781, -731, 287, -731, 7975, 299, -731, 317,
558 8076, 307, -731, -731, -731, -731, 755, 331, -731, 7108,
559 7975, -731, -731, 1580, -731, -731, -731, -731, -731, -731,
560 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
561 -731, -731, 6894, 6894, 323, 1420, 7459, 7459, -731, -731,
562 -731, -731, 153, -731, -731, -731, -731, -731, 5990, 6781,
563 325, -731, 307, -731, 8100, -731, -731, 6103, 179, 427,
564 -731, -731, -731, -731, -731, -731, 8052, 320, 7685, -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 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
573 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
574 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
575 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
576 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
577 1113, -731, 76, 56, 1954, 224, 308, 493, 224, 309,
578 6781, 7975, 338, 346, 356, 8100, 351, 357, -731, 360,
579 369, 354, 363, 122, -731, 370, 376, -731, -731, -731,
580 769, 7459, -731, 7744, -731, 255, 375, -731, -731, -731,
581 378, -731, 8076, 379, 388, 7676, -731, 398, 1728, 389,
582 -731, -731, 7007, 229, 7975, 164, 164, -731, -731, 36,
583 38, 47, 7225, -731, -731, 6781, 6781, 394, -731, -731,
584 -731, -731, -731, 391, 186, -731, 80, -731, -731, -731,
585 -731, -731, 255, 180, -731, -731, -731, 255, -731, 196,
586 -731, 399, -731, -731, 403, 8100, -731, -731, 6216, -731,
587 6555, -731, 7459, -731, 80, 7459, -731, 7975, 7857, -731,
588 -731, -731, -731, -731, 405, 393, -731, -731, -731, -731,
589 6894, 6894, 411, -731, 71, 412, -731, 389, 247, 247,
590 6781, -731, 7838, -731, -731, 641, 413, 641, 407, 7975,
591 1954, -731, 7233, 224, 392, 224, 224, 158, 350, 238,
592 431, 8100, -731, -731, -731, -731, 434, 6668, -731, 433,
593 7459, 219, -731, 436, 287, 440, 987, 7916, 8076, 8124,
594 449, 441, 443, 7346, 446, 412, 7459, 7459, -731, 6781,
595 -731, 641, -731, 80, 6103, 448, 452, -731, -731, 453,
596 -731, -731, 431, -731, -731, -731, 7857, -731, 455, 6781,
597 80, -731, 6329, 456, 460, -731, 395, -731, -731, -731,
598 462, 458, 471, 389, 472, -731, -731, 474, 8148, -731,
599 48, -731, 476, 484, 224, 488, 80, 7563, 489, 491,
600 -731, 492, -731, -731, 61, -731, 495, 494, -731, 7346,
601 -731, 506, 1954, 500, -731, 445, 511, 6781, 6216, 512,
602 -731, 6555, -731, -731, 515, 519, 523, 389, -731, 516,
603 520, 1954, 276, 6442, 7442, 346, -731, -731, -731, 518,
604 6668, -731, -731, 522, 521, -731, 526, 524, 530, 534,
605 535, 528, -731, -731, 6216, -731, 542, -731, 641, 537,
606 224, 80, 538, 6555, -731, 539, -731, 1954, -731, 541,
607 -731, -731, -731, 543, 6442, 224, 548, -731, 549, -731
608 };
609
610 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
611 Performed when YYTABLE does not specify something else to do. Zero
612 means the default is an error. */
613 static const unsigned short yydefact[] =
614 {
615 280, 401, 398, 402, 396, 397, 399, 393, 394, 392,
616 391, 383, 285, 284, 0, 0, 0, 0, 510, 382,
617 0, 432, 635, 286, 0, 436, 0, 281, 282, 288,
618 287, 289, 293, 527, 0, 379, 385, 384, 390, 405,
619 417, 389, 290, 291, 292, 0, 422, 443, 445, 446,
620 0, 0, 457, 295, 294, 296, 0, 297, 0, 400,
621 395, 391, 0, 0, 0, 382, 437, 444, 427, 299,
622 310, 307, 309, 311, 312, 323, 320, 321, 318, 324,
623 319, 0, 322, 313, 314, 315, 0, 335, 335, 0,
624 303, 0, 0, 510, 510, 0, 0, 365, 370, 466,
625 369, 0, 518, 518, 33, 34, 35, 36, 37, 623,
626 584, 24, 42, 41, 40, 38, 39, 32, 31, 25,
627 29, 28, 26, 27, 43, 592, 591, 589, 587, 588,
628 590, 586, 585, 593, 30, 621, 619, 618, 620, 617,
629 616, 386, 44, 45, 387, 388, 507, 551, 552, 553,
630 554, 555, 0, 0, 548, 0, 433, 0, 637, 0,
631 636, 391, 0, 0, 434, 422, 1, 283, 533, 520,
632 381, 467, 0, 528, 529, 531, 380, 407, 411, 409,
633 413, 406, 403, 418, 405, 404, 0, 0, 0, 458,
634 458, 0, 0, 386, 387, 388, 0, 422, 71, 46,
635 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
636 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
637 67, 68, 69, 70, 161, 162, 72, 73, 74, 75,
638 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
639 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
640 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
641 111, 109, 110, 108, 106, 107, 112, 113, 114, 115,
642 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
643 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
644 163, 136, 137, 138, 139, 140, 141, 142, 143, 144,
645 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
646 155, 159, 156, 157, 158, 160, 0, 335, 305, 300,
647 46, 55, 56, 57, 58, 60, 61, 65, 109, 110,
648 108, 106, 107, 127, 129, 130, 131, 132, 133, 134,
649 163, 138, 139, 140, 141, 142, 143, 144, 145, 146,
650 147, 148, 149, 150, 151, 152, 153, 337, 308, 336,
651 301, 316, 317, 302, 304, 345, 346, 0, 0, 22,
652 23, 20, 21, 0, 0, 348, 306, 347, 386, 509,
653 387, 508, 366, 363, 371, 0, 0, 0, 0, 0,
654 0, 0, 298, 0, 0, 0, 435, 0, 536, 535,
655 534, 523, 469, 527, 520, 530, 532, 412, 408, 414,
656 415, 410, 419, 0, 431, 0, 420, 392, 527, 463,
657 0, 0, 460, 461, 464, 0, 486, 512, 484, 0,
658 635, 0, 0, 0, 629, 630, 0, 560, 563, 562,
659 564, 565, 0, 566, 428, 429, 0, 0, 424, 0,
660 327, 328, 325, 338, 506, 505, 0, 0, 501, 0,
661 0, 343, 340, 350, 2, 3, 4, 5, 6, 7,
662 8, 9, 10, 11, 13, 12, 14, 15, 16, 17,
663 18, 19, 0, 0, 0, 0, 0, 0, 472, 471,
664 473, 470, 497, 361, 362, 495, 494, 496, 0, 0,
665 0, 357, 359, 498, 358, 488, 499, 0, 0, 0,
666 364, 421, 497, 525, 526, 524, 0, 0, 0, 528,
667 468, 416, 189, 164, 165, 166, 167, 168, 169, 170,
668 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
669 181, 182, 183, 184, 185, 186, 187, 188, 277, 278,
670 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
671 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
672 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
673 220, 221, 227, 225, 226, 224, 222, 223, 228, 229,
674 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
675 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
676 250, 251, 279, 252, 253, 254, 255, 256, 257, 258,
677 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
678 269, 270, 271, 275, 272, 273, 274, 276, 441, 442,
679 0, 439, 0, 520, 458, 520, 0, 0, 520, 0,
680 0, 513, 0, 0, 0, 612, 0, 0, 611, 45,
681 0, 0, 0, 0, 632, 0, 0, 606, 537, 561,
682 0, 0, 426, 329, 425, 527, 0, 502, 504, 339,
683 0, 352, 353, 0, 351, 0, 341, 0, 0, 514,
684 374, 367, 375, 0, 376, 518, 518, 373, 372, 623,
685 24, 0, 0, 492, 356, 0, 0, 0, 538, 557,
686 558, 559, 556, 0, 0, 542, 635, 547, 549, 550,
687 522, 521, 527, 0, 438, 440, 423, 527, 465, 0,
688 449, 0, 462, 447, 0, 487, 485, 483, 0, 567,
689 635, 610, 0, 546, 635, 0, 631, 0, 607, 604,
690 628, 430, 330, 333, 0, 331, 503, 500, 344, 349,
691 0, 0, 0, 368, 0, 477, 474, 514, 0, 0,
692 0, 490, 0, 491, 355, 0, 0, 0, 544, 0,
693 458, 455, 0, 520, 0, 520, 520, 497, 0, 31,
694 30, 573, 578, 574, 576, 577, 44, 0, 613, 624,
695 0, 0, 633, 623, 609, 0, 335, 0, 354, 342,
696 0, 515, 0, 514, 0, 477, 378, 377, 489, 0,
697 539, 0, 543, 635, 0, 0, 0, 456, 453, 0,
698 450, 448, 0, 575, 598, 584, 607, 599, 0, 0,
699 635, 579, 635, 0, 0, 634, 0, 326, 332, 334,
700 0, 0, 0, 514, 478, 481, 475, 0, 493, 540,
701 0, 545, 0, 0, 520, 0, 635, 0, 594, 0,
702 626, 625, 614, 568, 0, 519, 0, 0, 479, 514,
703 476, 0, 458, 0, 454, 0, 0, 0, 0, 0,
704 615, 635, 622, 605, 0, 0, 0, 514, 482, 0,
705 0, 458, 0, 600, 0, 498, 596, 571, 569, 595,
706 0, 583, 627, 0, 0, 480, 0, 0, 0, 0,
707 0, 601, 602, 580, 0, 570, 0, 516, 0, 0,
708 520, 635, 0, 635, 597, 0, 541, 458, 451, 0,
709 581, 603, 517, 0, 600, 520, 0, 452, 0, 582
710 };
711
712 /* YYPGOTO[NTERM-NUM]. */
713 static const short yypgoto[] =
714 {
715 -731, -351, -73, -11, -47, -731, -731, -731, 547, -731,
716 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
717 -731, -731, -86, -731, -281, -731, -731, -731, -476, -731,
718 -731, 421, -118, 41, -104, -179, -19, -5, -731, -731,
719 -731, 554, -731, -731, 416, -731, -731, -731, -731, -76,
720 -261, -731, -731, -181, -731, -731, 410, -731, -45, 573,
721 39, -3, 50, -731, -731, -731, -731, -182, -731, -44,
722 3, -33, -731, -731, 213, -349, -731, -210, -731, 9,
723 -731, -41, -369, -731, -66, -731, 150, -731, -446, -444,
724 166, -731, -709, -87, -380, -731, -375, -29, -731, 459,
725 -731, -731, 586, -731, -158, -683, -730, -731, -731, 620,
726 -731, 249, -373, -731, -283, -696, 220, -145, -731, -731,
727 -692, -731, -731, -254, -284, -731, -731, -731, -175, -731,
728 -408, -410, -413, -731, -731, -731, -731, -731, -731, -83,
729 -21, -698
730 };
731
732 /* YYDEFGOTO[NTERM-NUM]. */
733 static const short yydefgoto[] =
734 {
735 -1, 706, 499, 169, 357, 638, 26, 27, 28, 29,
736 30, 86, 87, 88, 89, 363, 90, 91, 92, 318,
737 754, 755, 358, 359, 376, 683, 684, 31, 500, 501,
738 32, 96, 689, 690, 691, 33, 34, 35, 36, 37,
739 38, 39, 40, 41, 182, 408, 411, 185, 42, 188,
740 502, 43, 197, 804, 44, 45, 639, 640, 641, 46,
741 47, 48, 99, 419, 50, 420, 51, 421, 422, 423,
742 424, 503, 53, 54, 489, 490, 693, 814, 854, 101,
743 427, 428, 655, 505, 506, 676, 458, 56, 102, 103,
744 146, 652, 765, 386, 402, 517, 172, 446, 174, 175,
745 400, 57, 58, 714, 715, 656, 716, 153, 717, 718,
746 719, 436, 437, 438, 906, 907, 908, 793, 794, 795,
747 142, 889, 909, 838, 920, 921, 439, 666, 805, 440,
748 922, 658, 143, 843, 871, 441, 442, 443, 663, 664,
749 660, 160
750 };
751
752 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
753 positive, shift that token. If negative, reduce the rule whose
754 number is the opposite. If YYTABLE_NINF, syntax error. */
755 static const short yytable[] =
756 {
757 171, 159, 360, 52, 173, 141, 144, 145, 425, 55,
758 418, 418, 98, 68, 170, 444, 387, 659, 100, 374,
759 659, 504, 657, 667, 520, 483, 377, 52, 518, 176,
760 52, 707, 516, 778, 317, 450, 55, 486, 487, 695,
761 797, 696, 792, 643, 364, 820, 796, 823, 52, 67,
762 49, 193, 194, 195, 388, 451, 97, 389, 815, 361,
763 49, -446, -466, 669, -466, -392, 168, -391, 22, -392,
764 316, -24, 743, 670, 49, 398, 11, 49, 109, 892,
765 770, 375, 378, 380, 186, -392, -392, 459, 727, 397,
766 384, 859, 98, 462, 401, 49, 811, 837, 100, 483,
767 156, 841, 674, 155, 855, 796, 812, 409, 483, 726,
768 410, 483, 881, 1, 2, 3, 4, 5, 6, 7,
769 8, 447, 488, -392, 158, -391, 9, 485, 189, 702,
770 703, 61, 166, 399, 65, 669, 382, 59, 504, 60,
771 778, 405, 454, 455, 878, -518, -386, -511, 456, 385,
772 -518, 187, 362, 746, 642, -446, 747, 868, 190, 98,
773 457, 191, 404, 445, 52, 100, 668, 183, 4, 5,
774 898, 135, 136, 137, 138, 139, 140, -457, 192, 196,
775 426, 319, 682, 886, -360, 383, -360, -360, 915, -497,
776 910, -497, -497, 62, 63, 64, 796, -457, 936, 385,
777 67, 685, 686, 97, -387, -511, 645, 646, 648, 649,
778 837, 49, 780, 781, 925, 391, 708, -511, 796, 776,
779 777, 429, 430, 431, 432, 433, 910, 434, 435, 783,
780 784, 452, 796, 1, 2, 3, 4, 5, 6, 7,
781 8, 390, 695, 374, 696, 392, 9, 695, 939, 696,
782 377, 61, 845, 671, 393, 834, 835, 394, 11, 379,
783 381, 396, 401, 728, 403, 730, 766, 407, 733, 413,
784 836, 429, 430, 431, 432, 433, 415, 434, 435, 416,
785 484, 735, 463, 485, 509, 1, 2, 3, 4, 5,
786 6, 7, 8, 834, 835, 374, 507, 510, 9, 511,
787 756, 374, 377, 161, 168, 375, 692, 521, 377, 448,
788 11, 644, 453, 93, 94, 18, 65, 650, 647, 701,
789 651, 671, 429, 430, 431, 432, 433, 659, 434, 435,
790 672, 483, 798, 674, 483, 483, 772, 773, 125, 126,
791 127, 128, 129, 130, 131, 132, 133, 779, 861, 673,
792 688, 147, 782, 678, 148, 687, 704, 375, 149, 721,
793 150, 151, 461, 375, 162, 62, 63, 64, 65, 791,
794 163, 152, 731, 734, 519, 737, 125, 126, 127, 128,
795 129, 130, 131, 132, 133, 171, 738, 739, 741, 173,
796 374, 740, 742, 743, 744, 745, 653, 377, 661, 170,
797 665, 818, 748, 828, 164, 830, 831, 749, 757, 374,
798 374, 758, 759, 177, 178, 179, 377, 377, 180, 816,
799 817, 662, 760, 762, 764, 774, 775, 807, 791, 659,
800 147, 181, 785, 148, 870, 404, 786, 149, 806, 150,
801 151, 709, 710, 711, 712, 810, 813, 824, 821, 680,
802 858, 675, 375, 697, 698, 504, 829, 483, 483, 832,
803 713, 894, 729, 839, 893, 418, 840, 842, 418, -608,
804 867, 375, 375, 846, 850, 852, 851, 856, 659, 808,
805 809, 862, 98, 912, 884, 863, 864, 866, 100, 872,
806 659, 873, 874, 876, 694, 875, 877, 1, 2, 3,
807 4, 5, 6, 7, 8, 880, 879, 723, 882, 692,
808 9, 177, 178, 179, 692, 61, 180, 883, 904, 791,
809 659, 885, 11, 888, 890, 941, 891, 895, 896, 181,
810 899, 659, 901, 1, 2, 3, 4, 5, 6, 7,
811 8, 791, 902, 903, 913, 911, 9, 742, 914, 916,
812 938, 10, 924, 917, 927, 791, 926, 929, 11, 12,
813 13, 928, 933, 930, 801, 947, 931, 935, 932, 937,
814 14, 940, 942, 944, 167, 767, 945, 62, 63, 64,
815 65, 948, 949, 395, 763, 69, 1, 2, 3, 4,
816 5, 6, 7, 8, 184, 725, 414, 165, 826, 9,
817 412, 418, 491, 732, 61, 857, 677, 157, 768, 769,
818 736, 11, 15, 16, 17, 18, 19, 20, 21, 822,
819 22, 70, 71, 72, 73, 74, 75, 76, 77, 78,
820 79, 80, 81, 406, 82, 83, 84, 85, 751, 154,
821 426, 934, 508, 833, 147, 23, 519, 148, 919, 654,
822 24, 149, 25, 150, 151, 709, 710, 711, 712, 171,
823 946, 865, 753, 173, 802, 0, 62, 63, 64, 65,
824 0, 0, 0, 170, 0, 0, 0, 0, 0, 0,
825 0, 0, 170, 384, 0, 98, 0, 374, 374, 0,
826 98, 100, 0, 519, 377, 377, 100, 694, 519, 0,
827 900, 0, 694, 418, 0, 66, 0, 0, 0, 799,
828 0, 0, 445, 0, 0, 445, 0, 0, 0, 918,
829 847, 0, 418, 800, 0, 0, 1, 2, 3, 4,
830 5, 6, 7, 8, 0, 0, 662, 0, 0, 9,
831 0, 0, 0, 0, 61, 0, 0, 0, 0, 375,
832 375, 11, 0, 0, 0, 943, 0, 0, 418, 1,
833 2, 3, 4, 5, 6, 7, 8, 844, 825, 0,
834 0, 723, 9, 0, 0, 0, 0, 61, 0, 0,
835 853, 454, 455, 697, 698, 0, 0, 0, 0, 0,
836 0, 0, 0, 0, 0, 0, 849, 0, 0, 457,
837 750, 0, 860, 445, 0, 0, 93, 94, 18, 65,
838 0, 464, 465, 466, 467, 468, 469, 470, 471, 472,
839 473, 474, 475, 476, 477, 478, 479, 480, 481, 0,
840 0, 0, 0, 0, 705, 0, 0, 0, 0, 62,
841 63, 64, 0, 95, 0, 0, 897, 0, 0, 0,
842 0, 0, 0, 0, 0, 905, 0, 0, 0, 0,
843 0, 198, 0, 0, 199, 200, 201, 202, 203, 204,
844 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
845 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
846 225, 905, 226, 227, 228, 229, 230, 231, 232, 233,
847 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
848 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
849 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
850 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
851 274, 0, 275, 0, 276, 277, 278, 279, 280, 281,
852 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
853 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
854 302, 303, 304, 305, 306, 307, 308, 309, 0, 0,
855 310, 0, 311, 312, 313, 314, 315, 198, 0, 0,
856 320, 200, 201, 202, 203, 204, 205, 206, 207, 321,
857 322, 323, 324, 212, 325, 326, 215, 216, 217, 327,
858 219, 220, 221, 222, 223, 224, 225, 0, 226, 227,
859 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
860 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
861 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
862 258, 259, 260, 328, 329, 330, 331, 332, 266, 267,
863 268, 269, 270, 271, 272, 273, 274, 0, 275, 0,
864 276, 277, 278, 279, 280, 333, 282, 334, 335, 336,
865 337, 338, 339, 289, 340, 291, 292, 341, 342, 343,
866 344, 345, 346, 347, 348, 349, 350, 351, 352, 353,
867 354, 355, 356, 309, 0, 0, 310, 0, 311, 312,
868 313, 314, 315, 522, 0, 0, 523, 524, 525, 526,
869 527, 528, 529, 530, 531, 532, 533, 534, 535, 536,
870 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
871 547, 548, 549, 0, 550, 551, 552, 553, 554, 413,
872 724, 555, 556, 557, 558, 559, 560, 561, 562, 563,
873 564, 565, 566, 567, 568, 569, 570, 571, 572, 573,
874 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
875 584, 585, 586, 587, 588, 589, 590, 591, 592, 593,
876 594, 595, 596, 0, 597, 0, 598, 599, 600, 601,
877 602, 603, 604, 605, 606, 607, 608, 609, 610, 611,
878 612, 613, 614, 615, 616, 617, 618, 619, 620, 621,
879 622, 623, 624, 625, 626, 627, 628, 629, 630, 631,
880 0, 0, 632, 0, 633, 634, 635, 636, 637, 522,
881 0, 0, 523, 524, 525, 526, 527, 528, 529, 530,
882 531, 532, 533, 534, 535, 536, 537, 538, 539, 540,
883 541, 542, 543, 544, 545, 546, 547, 548, 549, 0,
884 550, 551, 552, 553, 554, 413, 0, 555, 556, 557,
885 558, 559, 560, 561, 562, 563, 564, 565, 566, 567,
886 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
887 578, 579, 580, 581, 582, 583, 584, 585, 586, 587,
888 588, 589, 590, 591, 592, 593, 594, 595, 596, 0,
889 597, 0, 598, 599, 600, 601, 602, 603, 604, 605,
890 606, 607, 608, 609, 610, 611, 612, 613, 614, 615,
891 616, 617, 618, 619, 620, 621, 622, 623, 624, 625,
892 626, 627, 628, 629, 630, 631, -584, 0, 632, 0,
893 633, 634, 635, 636, 637, -584, -584, -584, -584, 0,
894 -584, -584, 0, 0, 0, -584, 0, 0, 0, 0,
895 0, 0, -584, -584, -584, -584, -584, -584, -584, -584,
896 -584, -584, -584, -584, 0, -584, -584, -584, -584, -584,
897 -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
898 -584, -584, -584, 0, 0, 0, 0, 0, -584, -584,
899 -584, -584, -584, -584, 1, 2, 3, 4, 5, 6,
900 7, 8, 0, 0, 0, 0, 0, 9, 0, 0,
901 -584, -584, 61, -584, -584, -584, -584, -584, -584, 11,
902 -584, 0, 0, -584, -584, -584, -584, -584, -584, -584,
903 -584, -584, -584, -584, -584, -584, -584, -584, -584, 0,
904 104, 0, 0, 0, 0, 0, 0, 0, -584, 105,
905 106, 107, 108, 0, 109, 110, 512, 0, 0, 111,
906 495, 0, 496, 0, 497, 367, 513, 0, 0, 498,
907 0, 0, 0, 0, 93, 94, 18, 65, 0, 0,
908 0, 0, 0, 0, 369, 370, 168, 0, 0, 0,
909 0, 0, 0, 0, 0, 0, 0, 371, 372, 0,
910 0, 0, 0, 112, 113, 114, 115, 116, 0, 0,
911 0, 688, 0, 0, 0, 0, 0, 0, 0, 0,
912 0, 0, 0, 0, 514, 117, 0, 118, 119, 120,
913 121, 122, 123, 0, 124, 0, 0, 125, 126, 127,
914 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
915 138, 139, 140, 104, 0, 0, 0, 0, 0, 0,
916 0, 515, 105, 106, 107, 108, 0, 109, 110, 0,
917 0, 0, 111, 0, 0, 365, 0, 366, 367, 0,
918 0, 0, 368, 0, 0, 0, 0, 0, 0, 0,
919 0, 0, 0, 0, 0, 0, 0, 369, 370, 0,
920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
921 371, 372, 0, 0, 0, 0, 112, 113, 114, 115,
922 116, 0, 0, 0, 0, 0, 0, 0, 373, 0,
923 0, 0, 0, 0, 0, 0, 0, 0, 117, 0,
924 118, 119, 120, 121, 122, 123, 0, 124, 0, 0,
925 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
926 135, 136, 137, 138, 139, 140, -33, 0, 0, 681,
927 0, 0, 0, 0, 0, -33, -33, -33, -33, 0,
928 -33, -33, 0, 0, 0, -33, 0, 0, -33, -33,
929 -33, -33, 0, 0, 0, -33, 0, 0, 0, 0,
930 0, 0, 1, 2, 3, 4, 5, 6, 7, 8,
931 -33, -33, 0, 0, 0, 9, 0, 0, 0, 0,
932 61, 0, 0, -33, -33, 0, 0, 11, 0, -33,
933 -33, -33, -33, -33, 0, 0, 0, 0, 0, 0,
934 0, -33, 0, 0, 0, 0, 0, 0, 0, 0,
935 0, -33, 0, -33, -33, -33, -33, -33, -33, 0,
936 -33, 0, 0, -33, -33, -33, -33, -33, -33, -33,
937 -33, -33, -33, -33, -33, -33, -33, -33, -33, -34,
938 0, -33, 93, 94, 18, 65, 0, 0, -34, -34,
939 -34, -34, 0, -34, -34, 0, 0, 0, -34, 0,
940 0, -34, -34, -34, -34, 0, 0, 0, -34, 0,
941 0, 0, 0, 0, 0, 1, 2, 3, 4, 5,
942 6, 7, 8, -34, -34, 0, 0, 0, 9, 0,
943 0, 0, 0, 61, 0, 0, -34, -34, 0, 0,
944 11, 0, -34, -34, -34, -34, -34, 0, 0, 0,
945 0, 0, 0, 0, -34, 0, 0, 0, 0, 0,
946 0, 0, 0, 0, -34, 0, -34, -34, -34, -34,
947 -34, -34, 0, -34, 0, 0, -34, -34, -34, -34,
948 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
949 -34, -34, -35, 0, -34, 62, 63, 64, 65, 0,
950 0, -35, -35, -35, -35, 0, -35, -35, 0, 0,
951 0, -35, 0, 0, -35, -35, -35, -35, 0, 0,
952 0, -35, 0, 0, 0, 0, 0, 0, 1, 2,
953 3, 4, 5, 6, 7, 8, -35, -35, 0, 0,
954 0, 417, 0, 0, 0, 0, 61, 0, 0, -35,
955 -35, 0, 0, 11, 0, -35, -35, -35, -35, -35,
956 0, 0, 0, 0, 0, 0, 0, -35, 0, 0,
957 0, 0, 0, 0, 0, 0, 0, -35, 0, -35,
958 -35, -35, -35, -35, -35, 0, -35, 0, 0, -35,
959 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
960 -35, -35, -35, -35, -35, -36, 0, -35, 62, 63,
961 64, 65, 0, 0, -36, -36, -36, -36, 0, -36,
962 -36, 0, 0, 0, -36, 0, 0, -36, -36, -36,
963 -36, 0, 0, 0, -36, 0, 0, 0, 0, 0,
964 0, 0, 0, 0, 0, 0, 0, 0, 0, -36,
965 -36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
966 0, 0, -36, -36, 0, 0, 0, 0, -36, -36,
967 -36, -36, -36, 0, 0, 0, 0, 0, 0, 0,
968 -36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
969 -36, 0, -36, -36, -36, -36, -36, -36, 0, -36,
970 0, 0, -36, -36, -36, -36, -36, -36, -36, -36,
971 -36, -36, -36, -36, -36, -36, -36, -36, -37, 0,
972 -36, 0, 0, 0, 0, 0, 0, -37, -37, -37,
973 -37, 0, -37, -37, 0, 0, 0, -37, 0, 0,
974 -37, -37, -37, -37, 0, 0, 0, -37, 0, 0,
975 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
976 0, 0, -37, -37, 0, 0, 0, 0, 0, 0,
977 0, 0, 0, 0, 0, -37, -37, 0, 0, 0,
978 0, -37, -37, -37, -37, -37, 0, 0, 0, 0,
979 0, 0, 0, -37, 0, 0, 0, 0, 0, 0,
980 0, 0, 0, -37, 0, -37, -37, -37, -37, -37,
981 -37, 0, -37, 0, 0, -37, -37, -37, -37, -37,
982 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
983 -37, -60, 0, -37, 0, 0, 0, 0, 0, 0,
984 -60, -60, -60, -60, 0, -60, -60, 0, 0, 0,
985 -60, 0, 0, -60, -60, -60, -60, 0, 0, 0,
986 -60, 0, 0, 0, 0, 0, 0, 0, 0, 0,
987 0, 0, 0, 0, 0, -60, -60, 0, 0, 0,
988 0, 0, 0, 0, 0, 0, 0, 0, -60, -60,
989 0, 0, 0, 0, -60, -60, -60, -60, -60, 0,
990 0, 0, 0, 0, 0, 0, -60, 0, 0, 0,
991 0, 0, 0, 0, 0, 0, -60, 0, -60, -60,
992 -60, -60, -60, -60, 0, -60, 0, 0, -60, -60,
993 -60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
994 -60, -60, -60, -60, -61, 0, -623, 0, 0, 0,
995 0, 0, 0, -61, -61, -61, -61, 0, -61, -61,
996 0, 0, 0, -61, 0, 0, -61, -61, -61, -61,
997 0, 0, 0, -61, 0, 0, 0, 0, 0, 0,
998 0, 0, 0, 0, 0, 0, 0, 0, -61, -61,
999 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1000 0, -61, -61, 0, 0, 0, 0, -61, -61, -61,
1001 -61, -61, 0, 0, 0, 0, 0, 0, 0, -61,
1002 0, 0, 0, 0, 0, 0, 0, 0, 0, -61,
1003 0, -61, -61, -61, -61, -61, -61, 0, -61, 0,
1004 0, -61, -61, -61, -61, -61, -61, -61, -61, -61,
1005 -61, -61, -61, -61, -61, -61, -61, -24, 0, -584,
1006 0, 0, 0, 0, 0, 0, -24, -24, -24, -24,
1007 0, -24, -24, 0, 0, 0, -24, 0, 0, -24,
1008 -24, -24, -24, 0, 0, 0, -24, 0, 0, 0,
1009 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1010 0, -24, -24, 0, 0, 0, 0, 0, 0, 0,
1011 0, 0, 0, 0, -24, -24, 0, 0, 0, 0,
1012 -24, -24, -24, -24, -24, 0, 0, 0, 0, 0,
1013 0, 0, -24, 0, 0, 0, 0, 0, 0, 0,
1014 0, 0, -24, 0, -24, -24, -24, -24, -24, -24,
1015 0, -24, 0, 0, -24, -24, -24, -24, -24, -24,
1016 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
1017 -42, 0, -24, 0, 0, 0, 0, 0, 0, -42,
1018 -42, -42, -42, 0, -42, -42, 0, 0, 0, -42,
1019 0, 0, -42, -42, -42, -42, 0, 0, 0, -42,
1020 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1021 0, 0, 0, 0, -42, -42, 0, 0, 0, 0,
1022 0, 0, 0, 0, 0, 0, 0, -42, -42, 0,
1023 0, 0, 0, -42, -42, -42, -42, -42, 0, 0,
1024 0, 0, 0, 0, 0, -42, 0, 0, 0, 0,
1025 0, 0, 0, 0, 0, -42, 0, -42, -42, -42,
1026 -42, -42, -42, 0, -42, 0, 0, -42, -42, -42,
1027 -42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
1028 -42, -42, -42, -41, 0, -42, 0, 0, 0, 0,
1029 0, 0, -41, -41, -41, -41, 0, -41, -41, 0,
1030 0, 0, -41, 0, 0, -41, -41, -41, -41, 0,
1031 0, 0, -41, 0, 0, 0, 0, 0, 0, 0,
1032 0, 0, 0, 0, 0, 0, 0, -41, -41, 0,
1033 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1034 -41, -41, 0, 0, 0, 0, -41, -41, -41, -41,
1035 -41, 0, 0, 0, 0, 0, 0, 0, -41, 0,
1036 0, 0, 0, 0, 0, 0, 0, 0, -41, 0,
1037 -41, -41, -41, -41, -41, -41, 0, -41, 0, 0,
1038 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
1039 -41, -41, -41, -41, -41, -41, -40, 0, -41, 0,
1040 0, 0, 0, 0, 0, -40, -40, -40, -40, 0,
1041 -40, -40, 0, 0, 0, -40, 0, 0, -40, -40,
1042 -40, -40, 0, 0, 0, -40, 0, 0, 0, 0,
1043 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1044 -40, -40, 0, 0, 0, 0, 0, 0, 0, 0,
1045 0, 0, 0, -40, -40, 0, 0, 0, 0, -40,
1046 -40, -40, -40, -40, 0, 0, 0, 0, 0, 0,
1047 0, -40, 0, 0, 0, 0, 0, 0, 0, 0,
1048 0, -40, 0, -40, -40, -40, -40, -40, -40, 0,
1049 -40, 0, 0, -40, -40, -40, -40, -40, -40, -40,
1050 -40, -40, -40, -40, -40, -40, -40, -40, -40, -38,
1051 0, -40, 0, 0, 0, 0, 0, 0, -38, -38,
1052 -38, -38, 0, -38, -38, 0, 0, 0, -38, 0,
1053 0, -38, -38, -38, -38, 0, 0, 0, -38, 0,
1054 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1055 0, 0, 0, -38, -38, 0, 0, 0, 0, 0,
1056 0, 0, 0, 0, 0, 0, -38, -38, 0, 0,
1057 0, 0, -38, -38, -38, -38, -38, 0, 0, 0,
1058 0, 0, 0, 0, -38, 0, 0, 0, 0, 0,
1059 0, 0, 0, 0, -38, 0, -38, -38, -38, -38,
1060 -38, -38, 0, -38, 0, 0, -38, -38, -38, -38,
1061 -38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
1062 -38, -38, -39, 0, -38, 0, 0, 0, 0, 0,
1063 0, -39, -39, -39, -39, 0, -39, -39, 0, 0,
1064 0, -39, 0, 0, -39, -39, -39, -39, 0, 0,
1065 0, -39, 0, 0, 0, 0, 0, 0, 0, 0,
1066 0, 0, 0, 0, 0, 0, -39, -39, 0, 0,
1067 0, 0, 0, 0, 0, 0, 0, 0, 0, -39,
1068 -39, 0, 0, 0, 0, -39, -39, -39, -39, -39,
1069 0, 0, 0, 0, 0, 0, 0, -39, 0, 0,
1070 0, 0, 0, 0, 0, 0, 0, -39, 0, -39,
1071 -39, -39, -39, -39, -39, 0, -39, 0, 0, -39,
1072 -39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
1073 -39, -39, -39, -39, -39, -32, 0, -39, 0, 0,
1074 0, 0, 0, 0, -32, -32, -32, -32, 0, -32,
1075 -32, 0, 0, 0, -32, 0, 0, -32, -32, -32,
1076 -32, 0, 0, 0, -32, 0, 0, 0, 0, 0,
1077 0, 0, 0, 0, 0, 0, 0, 0, 0, -32,
1078 -32, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1079 0, 0, -32, -32, 0, 0, 0, 0, -32, -32,
1080 -32, -32, -32, 0, 0, 0, 0, 0, 0, 0,
1081 -32, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1082 -32, 0, -32, -32, -32, -32, -32, -32, 0, -32,
1083 0, 0, -32, -32, -32, -32, -32, -32, -32, -32,
1084 -32, -32, -32, -32, -32, -32, -32, -32, -31, 0,
1085 -32, 0, 0, 0, 0, 0, 0, -31, -31, -31,
1086 -31, 0, -31, -31, 0, 0, 0, -31, 0, 0,
1087 -31, -31, -31, -31, 0, 0, 0, -31, 0, 0,
1088 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1089 0, 0, -31, -31, 0, 0, 0, 0, 0, 0,
1090 0, 0, 0, 0, 0, -31, -31, 0, 0, 0,
1091 0, -31, -31, -31, -31, -31, 0, 0, 0, 0,
1092 0, 0, 0, -31, 0, 0, 0, 0, 0, 0,
1093 0, 0, 0, -31, 0, -31, -31, -31, -31, -31,
1094 -31, 0, -31, 0, 0, -31, -31, -31, -31, -31,
1095 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
1096 -31, -25, 0, -31, 0, 0, 0, 0, 0, 0,
1097 -25, -25, -25, -25, 0, -25, -25, 0, 0, 0,
1098 -25, 0, 0, -25, -25, -25, -25, 0, 0, 0,
1099 -25, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1100 0, 0, 0, 0, 0, -25, -25, 0, 0, 0,
1101 0, 0, 0, 0, 0, 0, 0, 0, -25, -25,
1102 0, 0, 0, 0, -25, -25, -25, -25, -25, 0,
1103 0, 0, 0, 0, 0, 0, -25, 0, 0, 0,
1104 0, 0, 0, 0, 0, 0, -25, 0, -25, -25,
1105 -25, -25, -25, -25, 0, -25, 0, 0, -25, -25,
1106 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
1107 -25, -25, -25, -25, -29, 0, -25, 0, 0, 0,
1108 0, 0, 0, -29, -29, -29, -29, 0, -29, -29,
1109 0, 0, 0, -29, 0, 0, -29, -29, -29, -29,
1110 0, 0, 0, -29, 0, 0, 0, 0, 0, 0,
1111 0, 0, 0, 0, 0, 0, 0, 0, -29, -29,
1112 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1113 0, -29, -29, 0, 0, 0, 0, -29, -29, -29,
1114 -29, -29, 0, 0, 0, 0, 0, 0, 0, -29,
1115 0, 0, 0, 0, 0, 0, 0, 0, 0, -29,
1116 0, -29, -29, -29, -29, -29, -29, 0, -29, 0,
1117 0, -29, -29, -29, -29, -29, -29, -29, -29, -29,
1118 -29, -29, -29, -29, -29, -29, -29, -28, 0, -29,
1119 0, 0, 0, 0, 0, 0, -28, -28, -28, -28,
1120 0, -28, -28, 0, 0, 0, -28, 0, 0, -28,
1121 -28, -28, -28, 0, 0, 0, -28, 0, 0, 0,
1122 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1123 0, -28, -28, 0, 0, 0, 0, 0, 0, 0,
1124 0, 0, 0, 0, -28, -28, 0, 0, 0, 0,
1125 -28, -28, -28, -28, -28, 0, 0, 0, 0, 0,
1126 0, 0, -28, 0, 0, 0, 0, 0, 0, 0,
1127 0, 0, -28, 0, -28, -28, -28, -28, -28, -28,
1128 0, -28, 0, 0, -28, -28, -28, -28, -28, -28,
1129 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
1130 -26, 0, -28, 0, 0, 0, 0, 0, 0, -26,
1131 -26, -26, -26, 0, -26, -26, 0, 0, 0, -26,
1132 0, 0, -26, -26, -26, -26, 0, 0, 0, -26,
1133 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1134 0, 0, 0, 0, -26, -26, 0, 0, 0, 0,
1135 0, 0, 0, 0, 0, 0, 0, -26, -26, 0,
1136 0, 0, 0, -26, -26, -26, -26, -26, 0, 0,
1137 0, 0, 0, 0, 0, -26, 0, 0, 0, 0,
1138 0, 0, 0, 0, 0, -26, 0, -26, -26, -26,
1139 -26, -26, -26, 0, -26, 0, 0, -26, -26, -26,
1140 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
1141 -26, -26, -26, -27, 0, -26, 0, 0, 0, 0,
1142 0, 0, -27, -27, -27, -27, 0, -27, -27, 0,
1143 0, 0, -27, 0, 0, -27, -27, -27, -27, 0,
1144 0, 0, -27, 0, 0, 0, 0, 0, 0, 0,
1145 0, 0, 0, 0, 0, 0, 0, -27, -27, 0,
1146 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1147 -27, -27, 0, 0, 0, 0, -27, -27, -27, -27,
1148 -27, 0, 0, 0, 0, 0, 0, 0, -27, 0,
1149 0, 0, 0, 0, 0, 0, 0, 0, -27, 0,
1150 -27, -27, -27, -27, -27, -27, 0, -27, 0, 0,
1151 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
1152 -27, -27, -27, -27, -27, -27, -43, 0, -27, 0,
1153 0, 0, 0, 0, 0, -43, -43, -43, -43, 0,
1154 -43, -43, 0, 0, 0, -43, 0, 0, -43, -43,
1155 -43, -43, 0, 0, 0, -43, 0, 0, 0, 0,
1156 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1157 -43, -43, 0, 0, 0, 0, 0, 0, 0, 0,
1158 0, 0, 0, -43, -43, 0, 0, 0, 0, -43,
1159 -43, -43, -43, -43, 0, 0, 0, 0, 0, 0,
1160 0, -43, 0, 0, 0, 0, 0, 0, 0, 0,
1161 0, -43, 0, -43, -43, -43, -43, -43, -43, 0,
1162 -43, 0, 0, -43, -43, -43, -43, -43, -43, -43,
1163 -43, -43, -43, -43, -43, -43, -43, -43, -43, -138,
1164 0, -43, 0, 0, 0, 0, 0, 0, -138, -138,
1165 -138, -138, 0, -138, -138, 0, 0, 0, -138, 0,
1166 0, -138, -138, -138, -138, 0, 0, 0, -138, 0,
1167 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1168 0, 0, 0, -138, -138, 0, 0, 0, 0, 0,
1169 0, 0, 0, 0, 0, 0, -138, -138, 0, 0,
1170 0, 0, -138, -138, -138, -138, -138, 0, 0, 0,
1171 0, 0, 0, 0, -138, 0, 0, 0, 0, 0,
1172 0, 0, 0, 0, -138, 0, -138, -138, -138, -138,
1173 -138, -138, 0, -138, 0, 0, -138, -138, -138, -138,
1174 -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
1175 -138, -138, -139, 0, -592, 0, 0, 0, 0, 0,
1176 0, -139, -139, -139, -139, 0, -139, -139, 0, 0,
1177 0, -139, 0, 0, -139, -139, -139, -139, 0, 0,
1178 0, -139, 0, 0, 0, 0, 0, 0, 0, 0,
1179 0, 0, 0, 0, 0, 0, -139, -139, 0, 0,
1180 0, 0, 0, 0, 0, 0, 0, 0, 0, -139,
1181 -139, 0, 0, 0, 0, -139, -139, -139, -139, -139,
1182 0, 0, 0, 0, 0, 0, 0, -139, 0, 0,
1183 0, 0, 0, 0, 0, 0, 0, -139, 0, -139,
1184 -139, -139, -139, -139, -139, 0, -139, 0, 0, -139,
1185 -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
1186 -139, -139, -139, -139, -139, -140, 0, -591, 0, 0,
1187 0, 0, 0, 0, -140, -140, -140, -140, 0, -140,
1188 -140, 0, 0, 0, -140, 0, 0, -140, -140, -140,
1189 -140, 0, 0, 0, -140, 0, 0, 0, 0, 0,
1190 0, 0, 0, 0, 0, 0, 0, 0, 0, -140,
1191 -140, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1192 0, 0, -140, -140, 0, 0, 0, 0, -140, -140,
1193 -140, -140, -140, 0, 0, 0, 0, 0, 0, 0,
1194 -140, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1195 -140, 0, -140, -140, -140, -140, -140, -140, 0, -140,
1196 0, 0, -140, -140, -140, -140, -140, -140, -140, -140,
1197 -140, -140, -140, -140, -140, -140, -140, -140, -141, 0,
1198 -589, 0, 0, 0, 0, 0, 0, -141, -141, -141,
1199 -141, 0, -141, -141, 0, 0, 0, -141, 0, 0,
1200 -141, -141, -141, -141, 0, 0, 0, -141, 0, 0,
1201 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1202 0, 0, -141, -141, 0, 0, 0, 0, 0, 0,
1203 0, 0, 0, 0, 0, -141, -141, 0, 0, 0,
1204 0, -141, -141, -141, -141, -141, 0, 0, 0, 0,
1205 0, 0, 0, -141, 0, 0, 0, 0, 0, 0,
1206 0, 0, 0, -141, 0, -141, -141, -141, -141, -141,
1207 -141, 0, -141, 0, 0, -141, -141, -141, -141, -141,
1208 -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
1209 -141, -142, 0, -587, 0, 0, 0, 0, 0, 0,
1210 -142, -142, -142, -142, 0, -142, -142, 0, 0, 0,
1211 -142, 0, 0, -142, -142, -142, -142, 0, 0, 0,
1212 -142, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1213 0, 0, 0, 0, 0, -142, -142, 0, 0, 0,
1214 0, 0, 0, 0, 0, 0, 0, 0, -142, -142,
1215 0, 0, 0, 0, -142, -142, -142, -142, -142, 0,
1216 0, 0, 0, 0, 0, 0, -142, 0, 0, 0,
1217 0, 0, 0, 0, 0, 0, -142, 0, -142, -142,
1218 -142, -142, -142, -142, 0, -142, 0, 0, -142, -142,
1219 -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
1220 -142, -142, -142, -142, -143, 0, -588, 0, 0, 0,
1221 0, 0, 0, -143, -143, -143, -143, 0, -143, -143,
1222 0, 0, 0, -143, 0, 0, -143, -143, -143, -143,
1223 0, 0, 0, -143, 0, 0, 0, 0, 0, 0,
1224 0, 0, 0, 0, 0, 0, 0, 0, -143, -143,
1225 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1226 0, -143, -143, 0, 0, 0, 0, -143, -143, -143,
1227 -143, -143, 0, 0, 0, 0, 0, 0, 0, -143,
1228 0, 0, 0, 0, 0, 0, 0, 0, 0, -143,
1229 0, -143, -143, -143, -143, -143, -143, 0, -143, 0,
1230 0, -143, -143, -143, -143, -143, -143, -143, -143, -143,
1231 -143, -143, -143, -143, -143, -143, -143, -144, 0, -590,
1232 0, 0, 0, 0, 0, 0, -144, -144, -144, -144,
1233 0, -144, -144, 0, 0, 0, -144, 0, 0, -144,
1234 -144, -144, -144, 0, 0, 0, -144, 0, 0, 0,
1235 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1236 0, -144, -144, 0, 0, 0, 0, 0, 0, 0,
1237 0, 0, 0, 0, -144, -144, 0, 0, 0, 0,
1238 -144, -144, -144, -144, -144, 0, 0, 0, 0, 0,
1239 0, 0, -144, 0, 0, 0, 0, 0, 0, 0,
1240 0, 0, -144, 0, -144, -144, -144, -144, -144, -144,
1241 0, -144, 0, 0, -144, -144, -144, -144, -144, -144,
1242 -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
1243 -145, 0, -586, 0, 0, 0, 0, 0, 0, -145,
1244 -145, -145, -145, 0, -145, -145, 0, 0, 0, -145,
1245 0, 0, -145, -145, -145, -145, 0, 0, 0, -145,
1246 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1247 0, 0, 0, 0, -145, -145, 0, 0, 0, 0,
1248 0, 0, 0, 0, 0, 0, 0, -145, -145, 0,
1249 0, 0, 0, -145, -145, -145, -145, -145, 0, 0,
1250 0, 0, 0, 0, 0, -145, 0, 0, 0, 0,
1251 0, 0, 0, 0, 0, -145, 0, -145, -145, -145,
1252 -145, -145, -145, 0, -145, 0, 0, -145, -145, -145,
1253 -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
1254 -145, -145, -145, -146, 0, -585, 0, 0, 0, 0,
1255 0, 0, -146, -146, -146, -146, 0, -146, -146, 0,
1256 0, 0, -146, 0, 0, -146, -146, -146, -146, 0,
1257 0, 0, -146, 0, 0, 0, 0, 0, 0, 0,
1258 0, 0, 0, 0, 0, 0, 0, -146, -146, 0,
1259 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1260 -146, -146, 0, 0, 0, 0, -146, -146, -146, -146,
1261 -146, 0, 0, 0, 0, 0, 0, 0, -146, 0,
1262 0, 0, 0, 0, 0, 0, 0, 0, -146, 0,
1263 -146, -146, -146, -146, -146, -146, 0, -146, 0, 0,
1264 -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
1265 -146, -146, -146, -146, -146, -146, -30, 0, -593, 0,
1266 0, 0, 0, 0, 0, -30, -30, -30, -30, 0,
1267 -30, -30, 0, 0, 0, -30, 0, 0, -30, -30,
1268 -30, -30, 0, 0, 0, -30, 0, 0, 0, 0,
1269 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1270 -30, -30, 0, 0, 0, 0, 0, 0, 0, 0,
1271 0, 0, 0, -30, -30, 0, 0, 0, 0, -30,
1272 -30, -30, -30, -30, 0, 0, 0, 0, 0, 0,
1273 0, -30, 0, 0, 0, 0, 0, 0, 0, 0,
1274 0, -30, 0, -30, -30, -30, -30, -30, -30, 0,
1275 -30, 0, 0, -30, -30, -30, -30, -30, -30, -30,
1276 -30, -30, -30, -30, -30, -30, -30, -30, -30, -148,
1277 0, -30, 0, 0, 0, 0, 0, 0, -148, -148,
1278 -148, -148, 0, -148, -148, 0, 0, 0, -148, 0,
1279 0, -148, -148, -148, -148, 0, 0, 0, -148, 0,
1280 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1281 0, 0, 0, -148, -148, 0, 0, 0, 0, 0,
1282 0, 0, 0, 0, 0, 0, -148, -148, 0, 0,
1283 0, 0, -148, -148, -148, -148, -148, 0, 0, 0,
1284 0, 0, 0, 0, -148, 0, 0, 0, 0, 0,
1285 0, 0, 0, 0, -148, 0, -148, -148, -148, -148,
1286 -148, -148, 0, -148, 0, 0, -148, -148, -148, -148,
1287 -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
1288 -148, -148, -149, 0, -621, 0, 0, 0, 0, 0,
1289 0, -149, -149, -149, -149, 0, -149, -149, 0, 0,
1290 0, -149, 0, 0, -149, -149, -149, -149, 0, 0,
1291 0, -149, 0, 0, 0, 0, 0, 0, 0, 0,
1292 0, 0, 0, 0, 0, 0, -149, -149, 0, 0,
1293 0, 0, 0, 0, 0, 0, 0, 0, 0, -149,
1294 -149, 0, 0, 0, 0, -149, -149, -149, -149, -149,
1295 0, 0, 0, 0, 0, 0, 0, -149, 0, 0,
1296 0, 0, 0, 0, 0, 0, 0, -149, 0, -149,
1297 -149, -149, -149, -149, -149, 0, -149, 0, 0, -149,
1298 -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
1299 -149, -149, -149, -149, -149, -150, 0, -619, 0, 0,
1300 0, 0, 0, 0, -150, -150, -150, -150, 0, -150,
1301 -150, 0, 0, 0, -150, 0, 0, -150, -150, -150,
1302 -150, 0, 0, 0, -150, 0, 0, 0, 0, 0,
1303 0, 0, 0, 0, 0, 0, 0, 0, 0, -150,
1304 -150, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1305 0, 0, -150, -150, 0, 0, 0, 0, -150, -150,
1306 -150, -150, -150, 0, 0, 0, 0, 0, 0, 0,
1307 -150, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1308 -150, 0, -150, -150, -150, -150, -150, -150, 0, -150,
1309 0, 0, -150, -150, -150, -150, -150, -150, -150, -150,
1310 -150, -150, -150, -150, -150, -150, -150, -150, -151, 0,
1311 -618, 0, 0, 0, 0, 0, 0, -151, -151, -151,
1312 -151, 0, -151, -151, 0, 0, 0, -151, 0, 0,
1313 -151, -151, -151, -151, 0, 0, 0, -151, 0, 0,
1314 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1315 0, 0, -151, -151, 0, 0, 0, 0, 0, 0,
1316 0, 0, 0, 0, 0, -151, -151, 0, 0, 0,
1317 0, -151, -151, -151, -151, -151, 0, 0, 0, 0,
1318 0, 0, 0, -151, 0, 0, 0, 0, 0, 0,
1319 0, 0, 0, -151, 0, -151, -151, -151, -151, -151,
1320 -151, 0, -151, 0, 0, -151, -151, -151, -151, -151,
1321 -151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
1322 -151, -152, 0, -620, 0, 0, 0, 0, 0, 0,
1323 -152, -152, -152, -152, 0, -152, -152, 0, 0, 0,
1324 -152, 0, 0, -152, -152, -152, -152, 0, 0, 0,
1325 -152, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1326 0, 0, 0, 0, 0, -152, -152, 0, 0, 0,
1327 0, 0, 0, 0, 0, 0, 0, 0, -152, -152,
1328 0, 0, 0, 0, -152, -152, -152, -152, -152, 0,
1329 0, 0, 0, 0, 0, 0, -152, 0, 0, 0,
1330 0, 0, 0, 0, 0, 0, -152, 0, -152, -152,
1331 -152, -152, -152, -152, 0, -152, 0, 0, -152, -152,
1332 -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
1333 -152, -152, -152, -152, -153, 0, -617, 0, 0, 0,
1334 0, 0, 0, -153, -153, -153, -153, 0, -153, -153,
1335 0, 0, 0, -153, 0, 0, -153, -153, -153, -153,
1336 0, 0, 0, -153, 0, 0, 0, 0, 0, 0,
1337 0, 0, 0, 0, 0, 0, 0, 0, -153, -153,
1338 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1339 0, -153, -153, 0, 0, 0, 0, -153, -153, -153,
1340 -153, -153, 0, 0, 0, 0, 0, 0, 0, -153,
1341 0, 0, 0, 0, 0, 0, 0, 0, 0, -153,
1342 0, -153, -153, -153, -153, -153, -153, 0, -153, 0,
1343 0, -153, -153, -153, -153, -153, -153, -153, -153, -153,
1344 -153, -153, -153, -153, -153, -153, -153, 104, 0, -616,
1345 0, 0, 0, 0, 0, 0, 105, 106, 107, 108,
1346 0, 109, 110, 0, 0, 0, 111, 0, 0, 365,
1347 448, 366, 367, 0, 0, 0, 368, 0, 0, 0,
1348 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1349 0, 369, 370, 0, 0, 0, 0, 0, 0, 0,
1350 0, 0, 0, 0, 371, 372, 0, 0, 0, 0,
1351 112, 113, 114, 115, 116, 0, 0, 0, 0, 0,
1352 0, 0, 373, 0, 0, 0, 0, 0, 0, 0,
1353 0, 0, 117, 0, 118, 119, 120, 121, 122, 123,
1354 0, 124, 0, 0, 125, 126, 127, 128, 129, 130,
1355 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1356 0, 0, 449, 104, 1, 2, 3, 4, 5, 6,
1357 7, 8, 105, 106, 107, 108, 0, 699, 110, 512,
1358 0, 0, 700, 495, 0, 496, 0, 497, 367, 11,
1359 0, 0, 498, 0, 0, 0, 0, 0, 0, 0,
1360 0, 0, 0, 0, 0, 0, 0, 369, 370, 168,
1361 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1362 371, 372, 0, 0, 0, 0, 112, 113, 114, 115,
1363 116, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1364 0, 0, 0, 0, 62, 63, 64, 65, 117, 0,
1365 118, 119, 120, 121, 122, 123, 0, 124, 0, 0,
1366 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1367 135, 136, 137, 138, 139, 140, 104, 0, 0, 0,
1368 0, 0, 0, 0, 0, 105, 106, 107, 108, 0,
1369 109, 110, 492, 493, 494, 111, 495, 0, 496, 448,
1370 497, 367, 0, 0, 0, 498, 0, 0, 0, 0,
1371 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1372 369, 370, 168, 0, 0, 0, 0, 0, 0, 0,
1373 0, 0, 0, 371, 372, 0, 0, 0, 0, 112,
1374 113, 114, 115, 116, 0, 0, 0, 0, 0, 0,
1375 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1376 0, 117, 0, 118, 119, 120, 121, 122, 123, 0,
1377 124, 0, 0, 125, 126, 127, 128, 129, 130, 131,
1378 132, 133, 134, 135, 136, 137, 138, 139, 140, 104,
1379 0, 0, 0, 0, 0, 0, 0, 0, 105, 106,
1380 107, 108, 0, 109, 110, 787, 0, 0, 111, 495,
1381 0, 496, 0, 497, 367, 0, 0, 0, 498, 0,
1382 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1383 158, 0, 0, 369, 370, 168, 0, 0, 0, 0,
1384 0, 0, 0, 0, 0, 0, 371, 372, 0, 0,
1385 0, 0, 112, 113, 114, 115, 116, 0, 0, 0,
1386 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1387 0, 0, 0, 0, 117, 788, 789, 119, 120, 121,
1388 122, 123, 0, 124, 0, 0, 125, 126, 127, 128,
1389 129, 130, 131, 132, 133, 790, 135, 136, 137, 138,
1390 139, 140, 104, 0, 0, 0, 0, 0, 0, 0,
1391 0, 105, 106, 107, 108, 0, 109, 110, 512, 0,
1392 0, 111, 495, 0, 496, 0, 497, 367, 0, 0,
1393 0, 498, 0, 0, 0, 0, 0, 0, 0, 0,
1394 0, 0, 0, 158, 0, 0, 369, 370, 168, 0,
1395 0, 0, 0, 0, 0, 0, 0, 0, 0, 371,
1396 372, 0, 0, 869, 0, 112, 113, 114, 115, 116,
1397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1398 0, 0, 0, 0, 0, 0, 0, 117, 0, 118,
1399 119, 120, 121, 122, 123, 0, 124, 0, 0, 125,
1400 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1401 136, 137, 138, 139, 140, 104, 0, 0, 0, 0,
1402 0, 0, 0, 0, 105, 106, 107, 108, 0, 109,
1403 110, 512, 0, 0, 111, 495, -635, 496, 0, 497,
1404 367, 0, 0, 0, 498, 0, 0, 0, 0, 0,
1405 0, 0, 0, 0, 0, 0, 158, 0, 0, 369,
1406 370, 168, 0, 0, 0, 0, 0, 0, 0, 0,
1407 0, 0, 371, 372, 0, 0, 0, 0, 112, 113,
1408 114, 115, 116, 0, 0, 0, 0, 0, 0, 0,
1409 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1410 117, 0, 118, 119, 120, 121, 122, 123, 0, 124,
1411 0, 0, 125, 126, 127, 128, 129, 130, 131, 132,
1412 133, 134, 135, 136, 137, 138, 139, 140, 104, 0,
1413 0, 0, 0, 0, 0, 0, 0, 105, 106, 107,
1414 108, 0, 109, 110, 512, 0, 0, 111, 495, 0,
1415 496, 0, 497, 367, 0, 0, 0, 498, 0, 0,
1416 0, 0, 0, 0, 0, 0, 0, 0, 0, 158,
1417 0, 0, 369, 370, 168, 0, 0, 0, 0, 0,
1418 0, 0, 0, 0, 0, 371, 372, 0, 0, 0,
1419 0, 112, 113, 114, 115, 116, 0, 0, 0, 0,
1420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1421 0, 0, 0, 117, 0, 118, 119, 120, 121, 122,
1422 123, 0, 124, 0, 0, 125, 126, 127, 128, 129,
1423 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1424 140, 104, 0, 0, 0, 0, 0, 0, 0, 0,
1425 105, 106, 107, 108, 0, 109, 110, 787, 0, 0,
1426 111, 495, 0, 496, 0, 497, 367, 0, 0, 0,
1427 498, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1428 0, 0, 0, 0, 0, 369, 370, 168, 0, 0,
1429 0, 0, 0, 0, 0, 0, 0, 0, 371, 372,
1430 0, 0, 0, 0, 112, 113, 114, 115, 116, 0,
1431 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1432 0, 0, 0, 0, 0, 0, 117, 788, 789, 119,
1433 120, 121, 122, 123, 0, 124, 0, 0, 125, 126,
1434 127, 128, 129, 130, 131, 132, 133, 790, 135, 136,
1435 137, 138, 139, 140, 104, 0, 0, 0, 0, 0,
1436 0, 0, 0, 105, 106, 107, 108, 0, 109, 110,
1437 512, 0, 0, 111, 495, 0, 496, 0, 497, 367,
1438 0, 0, 0, 498, 0, 0, 0, 0, 0, 0,
1439 0, 0, 0, 0, 0, 0, 0, 0, 369, 370,
1440 168, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1441 0, 371, 372, 0, 0, 0, 0, 112, 113, 114,
1442 115, 116, 0, 0, 0, 0, 0, 0, 0, 0,
1443 0, 0, 0, 0, 0, 0, 0, 0, 0, 117,
1444 0, 118, 119, 120, 121, 122, 123, 0, 124, 0,
1445 0, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1446 134, 135, 136, 137, 138, 139, 140, 104, 0, 0,
1447 0, 0, 0, 0, 0, 0, 105, 106, 107, 108,
1448 0, 109, 110, 0, 0, 0, 111, 0, 0, 365,
1449 0, 366, 367, 0, 0, 0, 368, 0, 0, 0,
1450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1451 0, 369, 370, 0, 0, 0, 0, 0, 0, 0,
1452 0, 0, 0, 0, 371, 372, 0, 0, 0, 0,
1453 112, 113, 114, 115, 116, 0, 0, 0, 0, 0,
1454 0, 0, 373, 0, 0, 0, 0, 0, 0, 0,
1455 0, 0, 117, 0, 118, 119, 120, 121, 122, 123,
1456 0, 124, 0, 0, 125, 126, 127, 128, 129, 130,
1457 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1458 104, 0, 0, 0, 0, 0, 0, 0, 0, 105,
1459 106, 107, 108, 0, 109, 110, 0, 0, 0, 111,
1460 0, 0, 0, 0, 0, 0, 11, 0, 0, -527,
1461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1462 0, 0, 0, 0, 0, 0, 168, 0, 0, 0,
1463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1464 0, 0, 0, 112, 113, 114, 115, 116, 0, 0,
1465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1466 0, 0, 0, 0, 65, 117, 0, 118, 119, 120,
1467 121, 122, 123, 0, 124, 0, 0, 125, 126, 127,
1468 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1469 138, 139, 140, 104, 0, 0, 0, 0, 0, 0,
1470 0, 0, 105, 106, 107, 108, 0, 109, 110, 0,
1471 0, 679, 111, 0, 0, 0, 0, 0, 0, 11,
1472 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
1473 474, 475, 476, 477, 478, 479, 480, 481, 0, 168,
1474 0, 0, 0, 482, 0, 0, 0, 0, 0, 0,
1475 0, 0, 0, 0, 0, 0, 112, 113, 114, 115,
1476 116, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1477 0, 0, 0, 0, 0, 0, 0, 65, 117, 0,
1478 118, 119, 120, 121, 122, 123, 0, 124, 0, 0,
1479 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1480 135, 136, 137, 138, 139, 140, 104, 0, 0, 0,
1481 0, 0, 0, 0, 0, 105, 106, 107, 108, 0,
1482 109, 110, 0, 0, 0, 111, 0, 0, 771, 0,
1483 0, 0, 0, 0, 0, 722, 827, 464, 465, 466,
1484 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
1485 477, 478, 479, 480, 481, 0, 0, 0, 0, 0,
1486 705, 0, 0, 0, 0, 0, 0, 0, 0, 112,
1487 113, 114, 115, 116, 0, 0, 0, 0, 0, 0,
1488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1489 0, 117, 0, 118, 119, 120, 121, 122, 123, 0,
1490 124, 0, 0, 125, 126, 127, 128, 129, 130, 131,
1491 132, 133, 134, 135, 136, 137, 138, 139, 140, 104,
1492 0, 0, 0, 0, 0, 0, 0, 0, 105, 106,
1493 107, 108, 0, 109, 110, 0, 0, 0, 111, 0,
1494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1495 0, 764, 0, 0, 0, 0, 0, 0, 0, 0,
1496 0, 0, 0, 0, 0, 168, 0, 0, 0, 0,
1497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1498 0, 0, 112, 113, 114, 115, 116, 0, 0, 0,
1499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1500 0, 0, 0, 0, 117, 0, 118, 119, 120, 121,
1501 122, 123, 0, 124, 0, 0, 125, 126, 127, 128,
1502 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1503 139, 140, 104, 0, 0, 0, 0, 0, 0, 0,
1504 0, 105, 106, 107, 108, 923, 109, 110, 0, 0,
1505 0, 111, 0, 0, 464, 465, 466, 467, 468, 469,
1506 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
1507 480, 481, 0, 0, 0, 0, 0, 705, 168, 0,
1508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1509 0, 0, 0, 0, 0, 112, 113, 114, 115, 116,
1510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1511 0, 0, 0, 0, 0, 0, 0, 117, 0, 118,
1512 119, 120, 121, 122, 123, 0, 124, 0, 0, 125,
1513 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1514 136, 137, 138, 139, 140, 104, 0, 0, 0, 0,
1515 0, 0, 0, 0, 105, 106, 107, 108, 0, 109,
1516 110, 0, 0, 0, 111, 0, 0, 887, 0, 0,
1517 0, 0, 0, 0, 460, 464, 465, 466, 467, 468,
1518 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
1519 479, 480, 481, 0, 0, 0, 0, 0, 705, 0,
1520 0, 0, 0, 0, 0, 0, 0, 0, 112, 113,
1521 114, 115, 116, 0, 0, 0, 0, 0, 0, 0,
1522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1523 117, 0, 118, 119, 120, 121, 122, 123, 0, 124,
1524 0, 0, 125, 126, 127, 128, 129, 130, 131, 132,
1525 133, 134, 135, 136, 137, 138, 139, 140, 104, 0,
1526 0, 0, 0, 0, 0, 0, 0, 105, 106, 107,
1527 108, 0, 109, 110, 0, 0, 0, 111, 0, 0,
1528 0, 761, 0, 0, 0, 0, 0, 722, 464, 465,
1529 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
1530 476, 477, 478, 479, 480, 481, 0, 0, 0, 0,
1531 0, 482, 0, 0, 0, 0, 0, 104, 0, 0,
1532 0, 112, 113, 114, 115, 116, 105, 106, 107, 108,
1533 0, 109, 110, 0, 0, 0, 111, 0, 0, 0,
1534 0, 0, 0, 117, 0, 118, 119, 120, 121, 122,
1535 123, 0, 124, 0, 0, 125, 126, 127, 128, 129,
1536 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1537 140, 0, 0, 0, 0, 0, 0, 0, 752, 0,
1538 112, 113, 114, 115, 116, 0, 0, 0, 0, 0,
1539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1540 0, 0, 117, 0, 118, 119, 120, 121, 122, 123,
1541 0, 124, 0, 0, 125, 126, 127, 128, 129, 130,
1542 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1543 104, 0, 0, 0, 0, 0, 0, 0, 0, 105,
1544 106, 107, 108, 819, 803, 110, 0, 0, 0, 111,
1545 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
1546 474, 475, 476, 477, 478, 479, 480, 481, 0, 0,
1547 0, 0, 0, 705, 0, 0, 168, 0, 0, 0,
1548 0, 0, 0, 0, 0, 0, 0, 0, 0, 104,
1549 0, 0, 0, 112, 113, 114, 115, 116, 105, 106,
1550 107, 108, 0, 109, 110, 0, 0, 0, 111, 0,
1551 0, 0, 0, 0, 0, 117, 0, 118, 119, 120,
1552 121, 122, 123, 0, 124, 0, 0, 125, 126, 127,
1553 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1554 138, 139, 140, 0, 0, 0, 0, 0, 104, 0,
1555 848, 0, 112, 113, 114, 115, 116, 105, 106, 107,
1556 108, 0, 109, 110, 0, 0, 0, 111, 0, 0,
1557 0, 0, 0, 0, 117, 0, 118, 119, 120, 121,
1558 122, 123, 0, 124, 0, 0, 125, 126, 127, 128,
1559 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1560 139, 140, 0, 0, 0, 0, 0, 0, 0, 0,
1561 0, 112, 113, 114, 115, 116, 0, 0, 0, 0,
1562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1563 0, 0, 0, 117, 0, 118, 119, 120, 121, 122,
1564 123, 0, 124, 0, 0, 125, 126, 127, 128, 129,
1565 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1566 140, 720, 0, 0, 464, 465, 466, 467, 468, 469,
1567 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
1568 480, 481, 0, 0, 0, 0, 0, 705, 464, 465,
1569 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
1570 476, 477, 478, 479, 480, 481, 0, 0, 0, 0,
1571 0, 482, 464, 465, 466, 467, 468, 469, 470, 471,
1572 472, 473, 474, 475, 476, 477, 478, 479, 480, 481,
1573 0, 0, 0, 0, 0, 705, 464, 465, 466, 467,
1574 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
1575 478, 479, 480, 481, 0, 0, 0, 0, 0, 482,
1576 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
1577 474, 475, 476, 477, 478, 479, 480, 481, 0, 0,
1578 0, 0, 0, 705
1579 };
1580
1581 static const short yycheck[] =
1582 {
1583 33, 22, 88, 0, 33, 16, 17, 18, 190, 0,
1584 189, 190, 15, 10, 33, 196, 103, 430, 15, 92,
1585 433, 390, 430, 433, 404, 376, 92, 24, 403, 34,
1586 27, 507, 401, 716, 81, 316, 27, 386, 387, 485,
1587 738, 485, 738, 418, 91, 775, 738, 777, 45, 10,
1588 0, 62, 63, 64, 141, 316, 15, 144, 767, 26,
1589 10, 31, 32, 436, 34, 29, 49, 29, 91, 33,
1590 81, 33, 24, 442, 24, 29, 29, 27, 17, 18,
1591 33, 92, 93, 94, 45, 33, 34, 368, 32, 165,
1592 101, 821, 95, 374, 38, 45, 25, 789, 95, 450,
1593 123, 797, 26, 26, 813, 797, 35, 6, 459, 33,
1594 9, 462, 64, 4, 5, 6, 7, 8, 9, 10,
1595 11, 197, 31, 87, 44, 87, 17, 36, 32, 498,
1596 499, 22, 0, 87, 87, 508, 95, 9, 507, 11,
1597 823, 124, 26, 27, 853, 31, 35, 36, 32, 35,
1598 36, 125, 119, 31, 415, 125, 34, 840, 32, 162,
1599 44, 36, 173, 196, 161, 162, 37, 6, 7, 8,
1600 879, 110, 111, 112, 113, 114, 115, 32, 36, 34,
1601 191, 30, 463, 866, 31, 31, 33, 34, 897, 31,
1602 888, 33, 34, 84, 85, 86, 888, 32, 928, 35,
1603 161, 482, 483, 162, 35, 36, 33, 34, 33, 34,
1604 902, 161, 32, 33, 910, 23, 37, 36, 910, 33,
1605 34, 92, 93, 94, 95, 96, 924, 98, 99, 33,
1606 34, 317, 924, 4, 5, 6, 7, 8, 9, 10,
1607 11, 40, 688, 316, 688, 31, 17, 693, 931, 693,
1608 316, 22, 33, 34, 36, 17, 18, 23, 29, 93,
1609 94, 123, 38, 643, 32, 645, 37, 6, 648, 36,
1610 32, 92, 93, 94, 95, 96, 32, 98, 99, 31,
1611 35, 650, 32, 36, 32, 4, 5, 6, 7, 8,
1612 9, 10, 11, 17, 18, 368, 40, 31, 17, 31,
1613 675, 374, 368, 22, 49, 316, 485, 6, 374, 26,
1614 29, 32, 359, 84, 85, 86, 87, 40, 34, 498,
1615 34, 34, 92, 93, 94, 95, 96, 740, 98, 99,
1616 31, 682, 740, 26, 685, 686, 705, 706, 100, 101,
1617 102, 103, 104, 105, 106, 107, 108, 722, 824, 32,
1618 121, 3, 727, 22, 6, 32, 31, 368, 10, 39,
1619 12, 13, 373, 374, 83, 84, 85, 86, 87, 738,
1620 89, 23, 64, 64, 403, 37, 100, 101, 102, 103,
1621 104, 105, 106, 107, 108, 418, 40, 31, 31, 418,
1622 463, 40, 32, 24, 40, 32, 429, 463, 431, 418,
1623 433, 770, 32, 783, 123, 785, 786, 31, 33, 482,
1624 483, 33, 33, 4, 5, 6, 482, 483, 9, 768,
1625 769, 432, 34, 25, 35, 31, 35, 34, 797, 842,
1626 3, 22, 33, 6, 842, 446, 33, 10, 33, 12,
1627 13, 14, 15, 16, 17, 34, 34, 40, 35, 460,
1628 819, 456, 463, 486, 487, 824, 64, 808, 809, 109,
1629 33, 874, 644, 32, 874, 644, 32, 34, 647, 33,
1630 839, 482, 483, 33, 25, 32, 35, 31, 891, 760,
1631 761, 33, 485, 891, 864, 33, 33, 32, 485, 33,
1632 903, 31, 97, 35, 485, 33, 25, 4, 5, 6,
1633 7, 8, 9, 10, 11, 31, 34, 518, 32, 688,
1634 17, 4, 5, 6, 693, 22, 9, 33, 887, 888,
1635 933, 33, 29, 34, 33, 933, 34, 32, 34, 22,
1636 24, 944, 32, 4, 5, 6, 7, 8, 9, 10,
1637 11, 910, 97, 32, 25, 33, 17, 32, 25, 33,
1638 930, 22, 34, 33, 33, 924, 34, 33, 29, 30,
1639 31, 35, 34, 33, 745, 945, 32, 25, 33, 32,
1640 41, 33, 33, 32, 27, 693, 33, 84, 85, 86,
1641 87, 33, 33, 162, 688, 30, 4, 5, 6, 7,
1642 8, 9, 10, 11, 40, 640, 186, 24, 780, 17,
1643 184, 780, 389, 647, 22, 815, 456, 21, 695, 696,
1644 651, 29, 83, 84, 85, 86, 87, 88, 89, 777,
1645 91, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1646 75, 76, 77, 174, 79, 80, 81, 82, 671, 19,
1647 651, 924, 393, 788, 3, 116, 675, 6, 902, 429,
1648 121, 10, 123, 12, 13, 14, 15, 16, 17, 692,
1649 944, 836, 673, 692, 747, -1, 84, 85, 86, 87,
1650 -1, -1, -1, 692, -1, -1, -1, -1, -1, -1,
1651 -1, -1, 701, 694, -1, 688, -1, 760, 761, -1,
1652 693, 688, -1, 722, 760, 761, 693, 688, 727, -1,
1653 882, -1, 693, 882, -1, 123, -1, -1, -1, 742,
1654 -1, -1, 745, -1, -1, 748, -1, -1, -1, 901,
1655 806, -1, 901, 744, -1, -1, 4, 5, 6, 7,
1656 8, 9, 10, 11, -1, -1, 747, -1, -1, 17,
1657 -1, -1, -1, -1, 22, -1, -1, -1, -1, 760,
1658 761, 29, -1, -1, -1, 937, -1, -1, 937, 4,
1659 5, 6, 7, 8, 9, 10, 11, 800, 779, -1,
1660 -1, 782, 17, -1, -1, -1, -1, 22, -1, -1,
1661 813, 26, 27, 816, 817, -1, -1, -1, -1, -1,
1662 -1, -1, -1, -1, -1, -1, 807, -1, -1, 44,
1663 31, -1, 823, 836, -1, -1, 84, 85, 86, 87,
1664 -1, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1665 51, 52, 53, 54, 55, 56, 57, 58, 59, -1,
1666 -1, -1, -1, -1, 65, -1, -1, -1, -1, 84,
1667 85, 86, -1, 121, -1, -1, 879, -1, -1, -1,
1668 -1, -1, -1, -1, -1, 888, -1, -1, -1, -1,
1669 -1, 0, -1, -1, 3, 4, 5, 6, 7, 8,
1670 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
1671 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1672 29, 924, 31, 32, 33, 34, 35, 36, 37, 38,
1673 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1674 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1675 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1676 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1677 79, -1, 81, -1, 83, 84, 85, 86, 87, 88,
1678 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1679 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1680 109, 110, 111, 112, 113, 114, 115, 116, -1, -1,
1681 119, -1, 121, 122, 123, 124, 125, 0, -1, -1,
1682 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
1683 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1684 23, 24, 25, 26, 27, 28, 29, -1, 31, 32,
1685 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1686 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1687 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1688 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1689 73, 74, 75, 76, 77, 78, 79, -1, 81, -1,
1690 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
1691 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1692 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1693 113, 114, 115, 116, -1, -1, 119, -1, 121, 122,
1694 123, 124, 125, 0, -1, -1, 3, 4, 5, 6,
1695 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1696 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1697 27, 28, 29, -1, 31, 32, 33, 34, 35, 36,
1698 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1699 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1700 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1701 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1702 77, 78, 79, -1, 81, -1, 83, 84, 85, 86,
1703 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1704 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1705 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1706 -1, -1, 119, -1, 121, 122, 123, 124, 125, 0,
1707 -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
1708 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1709 21, 22, 23, 24, 25, 26, 27, 28, 29, -1,
1710 31, 32, 33, 34, 35, 36, -1, 38, 39, 40,
1711 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1712 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1713 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1714 71, 72, 73, 74, 75, 76, 77, 78, 79, -1,
1715 81, -1, 83, 84, 85, 86, 87, 88, 89, 90,
1716 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1717 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1718 111, 112, 113, 114, 115, 116, 3, -1, 119, -1,
1719 121, 122, 123, 124, 125, 12, 13, 14, 15, -1,
1720 17, 18, -1, -1, -1, 22, -1, -1, -1, -1,
1721 -1, -1, 29, 30, 31, 32, 33, 34, 35, 36,
1722 37, 38, 39, 40, -1, 42, 43, 44, 45, 46,
1723 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1724 57, 58, 59, -1, -1, -1, -1, -1, 65, 66,
1725 67, 68, 69, 70, 4, 5, 6, 7, 8, 9,
1726 10, 11, -1, -1, -1, -1, -1, 17, -1, -1,
1727 87, 88, 22, 90, 91, 92, 93, 94, 95, 29,
1728 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1729 107, 108, 109, 110, 111, 112, 113, 114, 115, -1,
1730 3, -1, -1, -1, -1, -1, -1, -1, 125, 12,
1731 13, 14, 15, -1, 17, 18, 19, -1, -1, 22,
1732 23, -1, 25, -1, 27, 28, 29, -1, -1, 32,
1733 -1, -1, -1, -1, 84, 85, 86, 87, -1, -1,
1734 -1, -1, -1, -1, 47, 48, 49, -1, -1, -1,
1735 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
1736 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
1737 -1, 121, -1, -1, -1, -1, -1, -1, -1, -1,
1738 -1, -1, -1, -1, 87, 88, -1, 90, 91, 92,
1739 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
1740 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1741 113, 114, 115, 3, -1, -1, -1, -1, -1, -1,
1742 -1, 124, 12, 13, 14, 15, -1, 17, 18, -1,
1743 -1, -1, 22, -1, -1, 25, -1, 27, 28, -1,
1744 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
1745 -1, -1, -1, -1, -1, -1, -1, 47, 48, -1,
1746 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1747 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
1748 70, -1, -1, -1, -1, -1, -1, -1, 78, -1,
1749 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
1750 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
1751 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1752 110, 111, 112, 113, 114, 115, 3, -1, -1, 119,
1753 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
1754 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
1755 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
1756 -1, -1, 4, 5, 6, 7, 8, 9, 10, 11,
1757 47, 48, -1, -1, -1, 17, -1, -1, -1, -1,
1758 22, -1, -1, 60, 61, -1, -1, 29, -1, 66,
1759 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1760 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
1761 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
1762 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1763 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
1764 -1, 118, 84, 85, 86, 87, -1, -1, 12, 13,
1765 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
1766 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
1767 -1, -1, -1, -1, -1, 4, 5, 6, 7, 8,
1768 9, 10, 11, 47, 48, -1, -1, -1, 17, -1,
1769 -1, -1, -1, 22, -1, -1, 60, 61, -1, -1,
1770 29, -1, 66, 67, 68, 69, 70, -1, -1, -1,
1771 -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
1772 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
1773 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
1774 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1775 114, 115, 3, -1, 118, 84, 85, 86, 87, -1,
1776 -1, 12, 13, 14, 15, -1, 17, 18, -1, -1,
1777 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
1778 -1, 32, -1, -1, -1, -1, -1, -1, 4, 5,
1779 6, 7, 8, 9, 10, 11, 47, 48, -1, -1,
1780 -1, 17, -1, -1, -1, -1, 22, -1, -1, 60,
1781 61, -1, -1, 29, -1, 66, 67, 68, 69, 70,
1782 -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
1783 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
1784 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
1785 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1786 111, 112, 113, 114, 115, 3, -1, 118, 84, 85,
1787 86, 87, -1, -1, 12, 13, 14, 15, -1, 17,
1788 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
1789 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
1790 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
1791 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1792 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
1793 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
1794 78, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1795 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
1796 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
1797 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
1798 118, -1, -1, -1, -1, -1, -1, 12, 13, 14,
1799 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
1800 25, 26, 27, 28, -1, -1, -1, 32, -1, -1,
1801 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1802 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
1803 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
1804 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
1805 -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
1806 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
1807 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
1808 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1809 115, 3, -1, 118, -1, -1, -1, -1, -1, -1,
1810 12, 13, 14, 15, -1, 17, 18, -1, -1, -1,
1811 22, -1, -1, 25, 26, 27, 28, -1, -1, -1,
1812 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1813 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
1814 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
1815 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
1816 -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
1817 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
1818 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
1819 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1820 112, 113, 114, 115, 3, -1, 118, -1, -1, -1,
1821 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
1822 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
1823 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
1824 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
1825 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1826 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
1827 69, 70, -1, -1, -1, -1, -1, -1, -1, 78,
1828 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
1829 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
1830 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1831 109, 110, 111, 112, 113, 114, 115, 3, -1, 118,
1832 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
1833 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
1834 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
1835 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1836 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
1837 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
1838 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
1839 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
1840 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
1841 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
1842 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1843 3, -1, 118, -1, -1, -1, -1, -1, -1, 12,
1844 13, 14, 15, -1, 17, 18, -1, -1, -1, 22,
1845 -1, -1, 25, 26, 27, 28, -1, -1, -1, 32,
1846 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1847 -1, -1, -1, -1, 47, 48, -1, -1, -1, -1,
1848 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
1849 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
1850 -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
1851 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
1852 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
1853 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1854 113, 114, 115, 3, -1, 118, -1, -1, -1, -1,
1855 -1, -1, 12, 13, 14, 15, -1, 17, 18, -1,
1856 -1, -1, 22, -1, -1, 25, 26, 27, 28, -1,
1857 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
1858 -1, -1, -1, -1, -1, -1, -1, 47, 48, -1,
1859 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1860 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
1861 70, -1, -1, -1, -1, -1, -1, -1, 78, -1,
1862 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
1863 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
1864 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1865 110, 111, 112, 113, 114, 115, 3, -1, 118, -1,
1866 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
1867 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
1868 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
1869 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1870 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
1871 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
1872 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1873 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
1874 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
1875 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1876 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
1877 -1, 118, -1, -1, -1, -1, -1, -1, 12, 13,
1878 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
1879 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
1880 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1881 -1, -1, -1, 47, 48, -1, -1, -1, -1, -1,
1882 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
1883 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
1884 -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
1885 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
1886 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
1887 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1888 114, 115, 3, -1, 118, -1, -1, -1, -1, -1,
1889 -1, 12, 13, 14, 15, -1, 17, 18, -1, -1,
1890 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
1891 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
1892 -1, -1, -1, -1, -1, -1, 47, 48, -1, -1,
1893 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
1894 61, -1, -1, -1, -1, 66, 67, 68, 69, 70,
1895 -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
1896 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
1897 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
1898 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1899 111, 112, 113, 114, 115, 3, -1, 118, -1, -1,
1900 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
1901 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
1902 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
1903 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
1904 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1905 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
1906 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
1907 78, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1908 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
1909 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
1910 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
1911 118, -1, -1, -1, -1, -1, -1, 12, 13, 14,
1912 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
1913 25, 26, 27, 28, -1, -1, -1, 32, -1, -1,
1914 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1915 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
1916 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
1917 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
1918 -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
1919 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
1920 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
1921 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1922 115, 3, -1, 118, -1, -1, -1, -1, -1, -1,
1923 12, 13, 14, 15, -1, 17, 18, -1, -1, -1,
1924 22, -1, -1, 25, 26, 27, 28, -1, -1, -1,
1925 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1926 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
1927 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
1928 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
1929 -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
1930 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
1931 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
1932 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1933 112, 113, 114, 115, 3, -1, 118, -1, -1, -1,
1934 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
1935 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
1936 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
1937 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
1938 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1939 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
1940 69, 70, -1, -1, -1, -1, -1, -1, -1, 78,
1941 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
1942 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
1943 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1944 109, 110, 111, 112, 113, 114, 115, 3, -1, 118,
1945 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
1946 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
1947 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
1948 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1949 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
1950 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
1951 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
1952 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
1953 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
1954 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
1955 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1956 3, -1, 118, -1, -1, -1, -1, -1, -1, 12,
1957 13, 14, 15, -1, 17, 18, -1, -1, -1, 22,
1958 -1, -1, 25, 26, 27, 28, -1, -1, -1, 32,
1959 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1960 -1, -1, -1, -1, 47, 48, -1, -1, -1, -1,
1961 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
1962 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
1963 -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
1964 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
1965 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
1966 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1967 113, 114, 115, 3, -1, 118, -1, -1, -1, -1,
1968 -1, -1, 12, 13, 14, 15, -1, 17, 18, -1,
1969 -1, -1, 22, -1, -1, 25, 26, 27, 28, -1,
1970 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
1971 -1, -1, -1, -1, -1, -1, -1, 47, 48, -1,
1972 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1973 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
1974 70, -1, -1, -1, -1, -1, -1, -1, 78, -1,
1975 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
1976 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
1977 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1978 110, 111, 112, 113, 114, 115, 3, -1, 118, -1,
1979 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
1980 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
1981 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
1982 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1983 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
1984 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
1985 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1986 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
1987 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
1988 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1989 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
1990 -1, 118, -1, -1, -1, -1, -1, -1, 12, 13,
1991 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
1992 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
1993 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1994 -1, -1, -1, 47, 48, -1, -1, -1, -1, -1,
1995 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
1996 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
1997 -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
1998 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
1999 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
2000 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2001 114, 115, 3, -1, 118, -1, -1, -1, -1, -1,
2002 -1, 12, 13, 14, 15, -1, 17, 18, -1, -1,
2003 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
2004 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
2005 -1, -1, -1, -1, -1, -1, 47, 48, -1, -1,
2006 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
2007 61, -1, -1, -1, -1, 66, 67, 68, 69, 70,
2008 -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
2009 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
2010 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
2011 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2012 111, 112, 113, 114, 115, 3, -1, 118, -1, -1,
2013 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
2014 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
2015 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
2016 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
2017 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2018 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
2019 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2020 78, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2021 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
2022 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
2023 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
2024 118, -1, -1, -1, -1, -1, -1, 12, 13, 14,
2025 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
2026 25, 26, 27, 28, -1, -1, -1, 32, -1, -1,
2027 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2028 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
2029 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
2030 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
2031 -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
2032 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
2033 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2034 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2035 115, 3, -1, 118, -1, -1, -1, -1, -1, -1,
2036 12, 13, 14, 15, -1, 17, 18, -1, -1, -1,
2037 22, -1, -1, 25, 26, 27, 28, -1, -1, -1,
2038 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2039 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
2040 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
2041 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
2042 -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
2043 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
2044 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
2045 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2046 112, 113, 114, 115, 3, -1, 118, -1, -1, -1,
2047 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
2048 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
2049 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
2050 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
2051 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2052 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
2053 69, 70, -1, -1, -1, -1, -1, -1, -1, 78,
2054 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
2055 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
2056 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2057 109, 110, 111, 112, 113, 114, 115, 3, -1, 118,
2058 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
2059 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
2060 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
2061 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2062 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2063 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
2064 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
2065 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
2066 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
2067 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
2068 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2069 3, -1, 118, -1, -1, -1, -1, -1, -1, 12,
2070 13, 14, 15, -1, 17, 18, -1, -1, -1, 22,
2071 -1, -1, 25, 26, 27, 28, -1, -1, -1, 32,
2072 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2073 -1, -1, -1, -1, 47, 48, -1, -1, -1, -1,
2074 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
2075 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
2076 -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
2077 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
2078 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
2079 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2080 113, 114, 115, 3, -1, 118, -1, -1, -1, -1,
2081 -1, -1, 12, 13, 14, 15, -1, 17, 18, -1,
2082 -1, -1, 22, -1, -1, 25, 26, 27, 28, -1,
2083 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
2084 -1, -1, -1, -1, -1, -1, -1, 47, 48, -1,
2085 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2086 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
2087 70, -1, -1, -1, -1, -1, -1, -1, 78, -1,
2088 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
2089 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
2090 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2091 110, 111, 112, 113, 114, 115, 3, -1, 118, -1,
2092 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
2093 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
2094 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
2095 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2096 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
2097 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
2098 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
2099 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
2100 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
2101 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
2102 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
2103 -1, 118, -1, -1, -1, -1, -1, -1, 12, 13,
2104 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
2105 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
2106 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2107 -1, -1, -1, 47, 48, -1, -1, -1, -1, -1,
2108 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
2109 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
2110 -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
2111 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
2112 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
2113 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2114 114, 115, 3, -1, 118, -1, -1, -1, -1, -1,
2115 -1, 12, 13, 14, 15, -1, 17, 18, -1, -1,
2116 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
2117 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
2118 -1, -1, -1, -1, -1, -1, 47, 48, -1, -1,
2119 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
2120 61, -1, -1, -1, -1, 66, 67, 68, 69, 70,
2121 -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
2122 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
2123 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
2124 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2125 111, 112, 113, 114, 115, 3, -1, 118, -1, -1,
2126 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
2127 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
2128 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
2129 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
2130 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2131 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
2132 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2133 78, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2134 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
2135 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
2136 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
2137 118, -1, -1, -1, -1, -1, -1, 12, 13, 14,
2138 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
2139 25, 26, 27, 28, -1, -1, -1, 32, -1, -1,
2140 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2141 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
2142 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
2143 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
2144 -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
2145 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
2146 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2147 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2148 115, 3, -1, 118, -1, -1, -1, -1, -1, -1,
2149 12, 13, 14, 15, -1, 17, 18, -1, -1, -1,
2150 22, -1, -1, 25, 26, 27, 28, -1, -1, -1,
2151 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2152 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
2153 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
2154 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
2155 -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
2156 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
2157 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
2158 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2159 112, 113, 114, 115, 3, -1, 118, -1, -1, -1,
2160 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
2161 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
2162 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
2163 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
2164 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2165 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
2166 69, 70, -1, -1, -1, -1, -1, -1, -1, 78,
2167 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
2168 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
2169 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2170 109, 110, 111, 112, 113, 114, 115, 3, -1, 118,
2171 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
2172 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
2173 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
2174 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2175 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2176 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
2177 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
2178 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
2179 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
2180 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
2181 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2182 -1, -1, 118, 3, 4, 5, 6, 7, 8, 9,
2183 10, 11, 12, 13, 14, 15, -1, 17, 18, 19,
2184 -1, -1, 22, 23, -1, 25, -1, 27, 28, 29,
2185 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
2186 -1, -1, -1, -1, -1, -1, -1, 47, 48, 49,
2187 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2188 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
2189 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2190 -1, -1, -1, -1, 84, 85, 86, 87, 88, -1,
2191 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
2192 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2193 110, 111, 112, 113, 114, 115, 3, -1, -1, -1,
2194 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
2195 17, 18, 19, 20, 21, 22, 23, -1, 25, 26,
2196 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
2197 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2198 47, 48, 49, -1, -1, -1, -1, -1, -1, -1,
2199 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
2200 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
2201 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2202 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
2203 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
2204 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
2205 -1, -1, -1, -1, -1, -1, -1, -1, 12, 13,
2206 14, 15, -1, 17, 18, 19, -1, -1, 22, 23,
2207 -1, 25, -1, 27, 28, -1, -1, -1, 32, -1,
2208 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2209 44, -1, -1, 47, 48, 49, -1, -1, -1, -1,
2210 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
2211 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
2212 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2213 -1, -1, -1, -1, 88, 89, 90, 91, 92, 93,
2214 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
2215 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2216 114, 115, 3, -1, -1, -1, -1, -1, -1, -1,
2217 -1, 12, 13, 14, 15, -1, 17, 18, 19, -1,
2218 -1, 22, 23, -1, 25, -1, 27, 28, -1, -1,
2219 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
2220 -1, -1, -1, 44, -1, -1, 47, 48, 49, -1,
2221 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
2222 61, -1, -1, 64, -1, 66, 67, 68, 69, 70,
2223 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2224 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
2225 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
2226 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2227 111, 112, 113, 114, 115, 3, -1, -1, -1, -1,
2228 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
2229 18, 19, -1, -1, 22, 23, 24, 25, -1, 27,
2230 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
2231 -1, -1, -1, -1, -1, -1, 44, -1, -1, 47,
2232 48, 49, -1, -1, -1, -1, -1, -1, -1, -1,
2233 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
2234 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2235 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2236 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
2237 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
2238 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
2239 -1, -1, -1, -1, -1, -1, -1, 12, 13, 14,
2240 15, -1, 17, 18, 19, -1, -1, 22, 23, -1,
2241 25, -1, 27, 28, -1, -1, -1, 32, -1, -1,
2242 -1, -1, -1, -1, -1, -1, -1, -1, -1, 44,
2243 -1, -1, 47, 48, 49, -1, -1, -1, -1, -1,
2244 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
2245 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
2246 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2247 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
2248 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2249 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2250 115, 3, -1, -1, -1, -1, -1, -1, -1, -1,
2251 12, 13, 14, 15, -1, 17, 18, 19, -1, -1,
2252 22, 23, -1, 25, -1, 27, 28, -1, -1, -1,
2253 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2254 -1, -1, -1, -1, -1, 47, 48, 49, -1, -1,
2255 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
2256 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
2257 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2258 -1, -1, -1, -1, -1, -1, 88, 89, 90, 91,
2259 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
2260 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2261 112, 113, 114, 115, 3, -1, -1, -1, -1, -1,
2262 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
2263 19, -1, -1, 22, 23, -1, 25, -1, 27, 28,
2264 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
2265 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
2266 49, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2267 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
2268 69, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2269 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
2270 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
2271 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2272 109, 110, 111, 112, 113, 114, 115, 3, -1, -1,
2273 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
2274 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
2275 -1, 27, 28, -1, -1, -1, 32, -1, -1, -1,
2276 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2277 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2278 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
2279 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
2280 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
2281 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
2282 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
2283 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2284 3, -1, -1, -1, -1, -1, -1, -1, -1, 12,
2285 13, 14, 15, -1, 17, 18, -1, -1, -1, 22,
2286 -1, -1, -1, -1, -1, -1, 29, -1, -1, 32,
2287 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2288 -1, -1, -1, -1, -1, -1, 49, -1, -1, -1,
2289 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2290 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
2291 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2292 -1, -1, -1, -1, 87, 88, -1, 90, 91, 92,
2293 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
2294 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2295 113, 114, 115, 3, -1, -1, -1, -1, -1, -1,
2296 -1, -1, 12, 13, 14, 15, -1, 17, 18, -1,
2297 -1, 33, 22, -1, -1, -1, -1, -1, -1, 29,
2298 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2299 52, 53, 54, 55, 56, 57, 58, 59, -1, 49,
2300 -1, -1, -1, 65, -1, -1, -1, -1, -1, -1,
2301 -1, -1, -1, -1, -1, -1, 66, 67, 68, 69,
2302 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2303 -1, -1, -1, -1, -1, -1, -1, 87, 88, -1,
2304 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
2305 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2306 110, 111, 112, 113, 114, 115, 3, -1, -1, -1,
2307 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
2308 17, 18, -1, -1, -1, 22, -1, -1, 33, -1,
2309 -1, -1, -1, -1, -1, 32, 33, 42, 43, 44,
2310 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2311 55, 56, 57, 58, 59, -1, -1, -1, -1, -1,
2312 65, -1, -1, -1, -1, -1, -1, -1, -1, 66,
2313 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
2314 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2315 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
2316 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
2317 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
2318 -1, -1, -1, -1, -1, -1, -1, -1, 12, 13,
2319 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
2320 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2321 -1, 35, -1, -1, -1, -1, -1, -1, -1, -1,
2322 -1, -1, -1, -1, -1, 49, -1, -1, -1, -1,
2323 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2324 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
2325 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2326 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
2327 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
2328 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2329 114, 115, 3, -1, -1, -1, -1, -1, -1, -1,
2330 -1, 12, 13, 14, 15, 33, 17, 18, -1, -1,
2331 -1, 22, -1, -1, 42, 43, 44, 45, 46, 47,
2332 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2333 58, 59, -1, -1, -1, -1, -1, 65, 49, -1,
2334 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2335 -1, -1, -1, -1, -1, 66, 67, 68, 69, 70,
2336 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2337 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
2338 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
2339 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2340 111, 112, 113, 114, 115, 3, -1, -1, -1, -1,
2341 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
2342 18, -1, -1, -1, 22, -1, -1, 34, -1, -1,
2343 -1, -1, -1, -1, 32, 42, 43, 44, 45, 46,
2344 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
2345 57, 58, 59, -1, -1, -1, -1, -1, 65, -1,
2346 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
2347 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2348 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2349 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
2350 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
2351 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
2352 -1, -1, -1, -1, -1, -1, -1, 12, 13, 14,
2353 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
2354 -1, 35, -1, -1, -1, -1, -1, 32, 42, 43,
2355 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2356 54, 55, 56, 57, 58, 59, -1, -1, -1, -1,
2357 -1, 65, -1, -1, -1, -1, -1, 3, -1, -1,
2358 -1, 66, 67, 68, 69, 70, 12, 13, 14, 15,
2359 -1, 17, 18, -1, -1, -1, 22, -1, -1, -1,
2360 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
2361 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2362 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2363 115, -1, -1, -1, -1, -1, -1, -1, 64, -1,
2364 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
2365 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2366 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
2367 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
2368 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2369 3, -1, -1, -1, -1, -1, -1, -1, -1, 12,
2370 13, 14, 15, 35, 17, 18, -1, -1, -1, 22,
2371 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2372 52, 53, 54, 55, 56, 57, 58, 59, -1, -1,
2373 -1, -1, -1, 65, -1, -1, 49, -1, -1, -1,
2374 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
2375 -1, -1, -1, 66, 67, 68, 69, 70, 12, 13,
2376 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
2377 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
2378 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
2379 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2380 113, 114, 115, -1, -1, -1, -1, -1, 3, -1,
2381 64, -1, 66, 67, 68, 69, 70, 12, 13, 14,
2382 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
2383 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
2384 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
2385 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2386 114, 115, -1, -1, -1, -1, -1, -1, -1, -1,
2387 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
2388 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2389 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
2390 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2391 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2392 115, 39, -1, -1, 42, 43, 44, 45, 46, 47,
2393 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2394 58, 59, -1, -1, -1, -1, -1, 65, 42, 43,
2395 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2396 54, 55, 56, 57, 58, 59, -1, -1, -1, -1,
2397 -1, 65, 42, 43, 44, 45, 46, 47, 48, 49,
2398 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2399 -1, -1, -1, -1, -1, 65, 42, 43, 44, 45,
2400 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2401 56, 57, 58, 59, -1, -1, -1, -1, -1, 65,
2402 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2403 52, 53, 54, 55, 56, 57, 58, 59, -1, -1,
2404 -1, -1, -1, 65
2405 };
2406
2407 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2408 symbol of state STATE-NUM. */
2409 static const unsigned short yystos[] =
2410 {
2411 0, 4, 5, 6, 7, 8, 9, 10, 11, 17,
2412 22, 29, 30, 31, 41, 83, 84, 85, 86, 87,
2413 88, 89, 91, 116, 121, 123, 146, 147, 148, 149,
2414 150, 167, 170, 175, 176, 177, 178, 179, 180, 181,
2415 182, 183, 188, 191, 194, 195, 199, 200, 201, 202,
2416 204, 206, 210, 212, 213, 219, 227, 241, 242, 9,
2417 11, 22, 84, 85, 86, 87, 123, 200, 210, 30,
2418 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2419 76, 77, 79, 80, 81, 82, 151, 152, 153, 154,
2420 156, 157, 158, 84, 85, 121, 171, 173, 201, 202,
2421 210, 219, 228, 229, 3, 12, 13, 14, 15, 17,
2422 18, 22, 66, 67, 68, 69, 70, 88, 90, 91,
2423 92, 93, 94, 95, 97, 100, 101, 102, 103, 104,
2424 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2425 115, 143, 260, 272, 143, 143, 230, 3, 6, 10,
2426 12, 13, 23, 247, 249, 26, 123, 242, 44, 280,
2427 281, 22, 83, 89, 123, 199, 0, 148, 49, 143,
2428 176, 211, 236, 237, 238, 239, 177, 4, 5, 6,
2429 9, 22, 184, 6, 181, 187, 200, 125, 189, 32,
2430 32, 36, 36, 143, 143, 143, 34, 192, 0, 3,
2431 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
2432 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2433 24, 25, 26, 27, 28, 29, 31, 32, 33, 34,
2434 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2435 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2436 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2437 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2438 75, 76, 77, 78, 79, 81, 83, 84, 85, 86,
2439 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
2440 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
2441 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
2442 119, 121, 122, 123, 124, 125, 143, 144, 159, 30,
2443 3, 12, 13, 14, 15, 17, 18, 22, 66, 67,
2444 68, 69, 70, 88, 90, 91, 92, 93, 94, 95,
2445 97, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2446 109, 110, 111, 112, 113, 114, 115, 144, 162, 163,
2447 162, 26, 119, 155, 144, 25, 27, 28, 32, 47,
2448 48, 60, 61, 78, 142, 143, 164, 224, 143, 230,
2449 143, 230, 173, 31, 143, 35, 233, 233, 233, 233,
2450 40, 23, 31, 36, 23, 171, 123, 189, 29, 87,
2451 240, 38, 234, 32, 143, 124, 239, 6, 185, 6,
2452 9, 186, 184, 36, 196, 32, 31, 17, 175, 203,
2453 205, 207, 208, 209, 210, 207, 143, 220, 221, 92,
2454 93, 94, 95, 96, 98, 99, 251, 252, 253, 266,
2455 269, 275, 276, 277, 193, 211, 237, 189, 26, 118,
2456 164, 190, 162, 144, 26, 27, 32, 44, 226, 164,
2457 32, 143, 164, 32, 42, 43, 44, 45, 46, 47,
2458 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2459 58, 59, 65, 141, 35, 36, 215, 215, 31, 214,
2460 215, 214, 19, 20, 21, 23, 25, 27, 32, 142,
2461 168, 169, 190, 211, 222, 223, 224, 40, 251, 32,
2462 31, 31, 19, 29, 87, 124, 222, 235, 236, 237,
2463 234, 6, 0, 3, 4, 5, 6, 7, 8, 9,
2464 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2465 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2466 31, 32, 33, 34, 35, 38, 39, 40, 41, 42,
2467 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2468 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2469 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
2470 73, 74, 75, 76, 77, 78, 79, 81, 83, 84,
2471 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2472 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2473 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2474 115, 116, 119, 121, 122, 123, 124, 125, 145, 196,
2475 197, 198, 190, 236, 32, 33, 34, 34, 33, 34,
2476 40, 34, 231, 211, 256, 222, 245, 270, 271, 272,
2477 280, 211, 143, 278, 279, 211, 267, 271, 37, 252,
2478 222, 34, 31, 32, 26, 177, 225, 226, 22, 33,
2479 143, 119, 164, 165, 166, 164, 164, 32, 121, 172,
2480 173, 174, 175, 216, 219, 228, 229, 211, 211, 17,
2481 22, 175, 222, 222, 31, 65, 141, 168, 37, 14,
2482 15, 16, 17, 33, 243, 244, 246, 248, 249, 250,
2483 39, 39, 32, 143, 37, 198, 33, 32, 234, 207,
2484 234, 64, 209, 234, 64, 222, 221, 37, 40, 31,
2485 40, 31, 32, 24, 40, 32, 31, 34, 32, 31,
2486 31, 211, 64, 143, 160, 161, 236, 33, 33, 33,
2487 34, 35, 25, 174, 35, 232, 37, 172, 233, 233,
2488 33, 33, 222, 222, 31, 35, 33, 34, 245, 236,
2489 32, 33, 236, 33, 34, 33, 33, 19, 89, 90,
2490 109, 222, 255, 257, 258, 259, 260, 281, 270, 211,
2491 280, 193, 279, 17, 193, 268, 33, 34, 164, 164,
2492 34, 25, 35, 34, 217, 232, 215, 215, 222, 35,
2493 246, 35, 244, 246, 40, 143, 207, 33, 234, 64,
2494 234, 234, 109, 257, 17, 18, 32, 260, 263, 32,
2495 32, 255, 34, 273, 211, 33, 33, 162, 64, 143,
2496 25, 35, 32, 211, 218, 232, 31, 217, 222, 246,
2497 280, 168, 33, 33, 33, 268, 32, 222, 245, 64,
2498 270, 274, 33, 31, 97, 33, 35, 25, 232, 34,
2499 31, 64, 32, 33, 234, 33, 245, 34, 34, 261,
2500 33, 34, 18, 271, 272, 32, 34, 211, 232, 24,
2501 207, 32, 97, 32, 222, 211, 254, 255, 256, 262,
2502 281, 33, 270, 25, 25, 232, 33, 33, 207, 263,
2503 264, 265, 270, 33, 34, 255, 34, 33, 35, 33,
2504 33, 32, 33, 34, 254, 25, 246, 32, 234, 245,
2505 33, 270, 33, 207, 32, 33, 264, 234, 33, 33
2506 };
2507
2508 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
2509 static const unsigned short yyr1[] =
2510 {
2511 0, 140, 141, 141, 141, 141, 141, 141, 141, 141,
2512 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
2513 142, 142, 142, 142, 143, 143, 143, 143, 143, 143,
2514 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
2515 143, 143, 143, 143, 143, 143, 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, 144, 144, 144, 144, 144, 144,
2523 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2524 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2525 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2526 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2527 144, 144, 144, 144, 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 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2535 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2536 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2537 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2538 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2539 146, 146, 147, 147, 148, 148, 148, 148, 148, 148,
2540 148, 148, 148, 148, 148, 148, 148, 148, 149, 150,
2541 150, 151, 151, 151, 151, 151, 151, 151, 151, 152,
2542 152, 153, 153, 154, 154, 154, 155, 155, 156, 156,
2543 157, 157, 157, 158, 158, 159, 159, 159, 159, 160,
2544 160, 160, 160, 161, 161, 162, 162, 163, 163, 164,
2545 164, 164, 164, 164, 164, 164, 164, 164, 164, 164,
2546 165, 165, 166, 166, 166, 167, 167, 168, 168, 168,
2547 169, 169, 169, 170, 170, 171, 171, 172, 172, 173,
2548 173, 173, 173, 173, 174, 174, 174, 174, 174, 175,
2549 175, 175, 176, 176, 177, 177, 178, 178, 178, 179,
2550 179, 179, 179, 180, 180, 180, 181, 181, 182, 182,
2551 182, 183, 183, 183, 183, 184, 184, 184, 184, 184,
2552 184, 185, 185, 186, 186, 186, 186, 187, 187, 187,
2553 188, 188, 189, 189, 190, 190, 191, 192, 192, 193,
2554 193, 194, 195, 195, 195, 195, 195, 195, 196, 197,
2555 197, 198, 198, 199, 199, 200, 200, 201, 201, 202,
2556 202, 202, 202, 203, 203, 204, 205, 206, 207, 207,
2557 207, 208, 208, 209, 209, 209, 210, 210, 211, 211,
2558 212, 213, 214, 214, 215, 216, 216, 217, 217, 218,
2559 218, 218, 218, 219, 220, 220, 221, 221, 222, 222,
2560 222, 222, 222, 222, 223, 223, 223, 223, 223, 223,
2561 224, 224, 225, 225, 226, 226, 226, 227, 228, 229,
2562 230, 230, 231, 231, 232, 232, 232, 232, 233, 233,
2563 234, 234, 234, 235, 235, 235, 235, 236, 236, 237,
2564 237, 238, 238, 239, 239, 240, 240, 241, 241, 242,
2565 242, 242, 243, 243, 244, 244, 245, 246, 247, 248,
2566 248, 249, 249, 249, 249, 249, 250, 250, 250, 250,
2567 251, 251, 252, 252, 252, 252, 252, 253, 253, 254,
2568 254, 254, 255, 255, 255, 255, 255, 255, 256, 256,
2569 257, 258, 258, 259, 260, 260, 260, 260, 260, 260,
2570 260, 260, 260, 260, 261, 261, 262, 262, 263, 263,
2571 264, 264, 265, 265, 266, 267, 267, 268, 268, 268,
2572 269, 270, 270, 270, 271, 271, 272, 272, 272, 272,
2573 272, 272, 272, 272, 273, 273, 274, 274, 275, 276,
2574 276, 277, 278, 278, 279, 280, 280, 281
2575 };
2576
2577 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
2578 static const unsigned char yyr2[] =
2579 {
2580 0, 2, 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 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2604 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2605 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2606 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2607 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2608 0, 1, 1, 2, 1, 1, 1, 1, 1, 1,
2609 1, 1, 1, 1, 1, 1, 1, 1, 3, 2,
2610 3, 2, 2, 1, 2, 2, 2, 1, 2, 1,
2611 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2612 1, 1, 1, 1, 1, 2, 6, 2, 2, 0,
2613 1, 1, 3, 1, 3, 0, 1, 1, 2, 3,
2614 2, 3, 5, 2, 4, 1, 1, 1, 1, 4,
2615 0, 1, 1, 1, 3, 6, 5, 1, 1, 1,
2616 1, 1, 1, 3, 4, 1, 2, 1, 2, 1,
2617 1, 2, 4, 4, 1, 1, 1, 3, 3, 1,
2618 2, 2, 1, 1, 1, 1, 2, 2, 2, 1,
2619 1, 1, 1, 1, 1, 2, 1, 1, 1, 1,
2620 2, 1, 1, 2, 2, 0, 1, 1, 2, 1,
2621 2, 0, 1, 0, 1, 1, 2, 0, 1, 2,
2622 3, 4, 0, 4, 1, 2, 5, 0, 2, 1,
2623 3, 3, 1, 2, 2, 3, 1, 2, 3, 1,
2624 2, 1, 1, 1, 2, 1, 1, 5, 7, 5,
2625 7, 13, 16, 5, 7, 6, 5, 1, 0, 1,
2626 1, 1, 3, 1, 1, 3, 1, 2, 3, 2,
2627 4, 4, 1, 1, 3, 4, 5, 0, 2, 2,
2628 4, 1, 3, 5, 1, 3, 1, 3, 1, 4,
2629 3, 3, 2, 5, 1, 1, 1, 1, 1, 1,
2630 4, 2, 1, 2, 2, 1, 1, 2, 2, 2,
2631 0, 1, 0, 1, 0, 2, 7, 9, 0, 7,
2632 0, 3, 3, 0, 1, 1, 1, 0, 1, 1,
2633 2, 1, 2, 1, 2, 1, 1, 4, 5, 7,
2634 8, 13, 1, 3, 2, 4, 2, 1, 1, 1,
2635 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2636 1, 2, 1, 1, 1, 1, 1, 3, 6, 1,
2637 2, 1, 1, 1, 1, 2, 1, 1, 3, 4,
2638 6, 8, 12, 5, 1, 1, 1, 1, 1, 1,
2639 1, 1, 1, 1, 0, 2, 1, 3, 1, 1,
2640 0, 1, 1, 3, 3, 6, 1, 0, 1, 1,
2641 3, 1, 1, 3, 5, 6, 1, 1, 1, 1,
2642 1, 1, 1, 1, 0, 2, 1, 3, 3, 1,
2643 1, 3, 1, 3, 4, 0, 1, 1
2644 };
2645
2646
2647 /* YYDPREC[RULE-NUM] -- Dynamic precedence of rule #RULE-NUM (0 if none). */
2648 static const unsigned char yydprec[] =
2649 {
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, 0, 0, 0, 0, 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, 0, 0, 0,
2681 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2682 0, 0, 0, 0, 0, 1, 2, 2, 2, 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, 2, 1, 0,
2686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2687 0, 0, 0, 0, 2, 1, 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, 0,
2691 0, 0, 0, 0, 0, 0, 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, 2,
2696 1, 0, 0, 0, 2, 1, 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, 0, 0, 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, 2, 1, 0, 0, 0, 0, 0, 0,
2708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2709 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2712 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2713 0, 0, 0, 0, 0, 0, 0, 0
2714 };
2715
2716 /* YYMERGER[RULE-NUM] -- Index of merging function for rule #RULE-NUM. */
2717 static const unsigned char yymerger[] =
2718 {
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, 0, 0,
2778 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2780 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2781 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2782 0, 0, 0, 0, 0, 0, 0, 0
2783 };
2784
2785 /* YYIMMEDIATE[RULE-NUM] -- True iff rule #RULE-NUM is not to be deferred, as
2786 in the case of predicates. */
2787 static const yybool yyimmediate[] =
2788 {
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, 0, 0,
2848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2852 0, 0, 0, 0, 0, 0, 0, 0
2853 };
2854
2855 /* YYCONFLP[YYPACT[STATE-NUM]] -- Pointer into YYCONFL of start of
2856 list of conflicting reductions corresponding to action entry for
2857 state STATE-NUM in yytable. 0 means no conflicts. The list in
2858 yyconfl is terminated by a rule number of 0. */
2859 static const unsigned short yyconflp[] =
2860 {
2861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2863 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2864 0, 0, 0, 0, 0, 0, 0, 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, 15, 0, 0, 0, 0, 0, 0, 0, 3714,
2868 0, 3716, 0, 0, 0, 0, 0, 0, 0, 0,
2869 0, 0, 0, 0, 0, 3700, 3702, 0, 0, 0,
2870 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2871 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0,
2875 0, 0, 0, 0, 0, 0, 3696, 0, 0, 0,
2876 0, 0, 0, 0, 0, 17, 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, 3706, 0, 3708, 3710, 0, 3718,
2880 0, 3720, 3722, 0, 0, 0, 0, 0, 0, 0,
2881 0, 0, 0, 0, 3698, 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, 0, 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, 0, 0, 0, 0, 0, 0,
2892 0, 0, 0, 0, 0, 0, 0, 0, 3704, 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, 0, 0, 0, 0, 0, 0, 0, 0,
2896 0, 0, 0, 0, 9, 0, 0, 0, 11, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2900 0, 0, 3712, 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, 0,
2903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2904 0, 13, 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, 3724,
2908 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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, 167,
2914 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2917 0, 0, 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, 1,
2921 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
2922 0, 5, 0, 0, 0, 0, 0, 0, 0, 0,
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, 7,
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, 0, 0, 0, 0,
2992 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2993 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2994 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2995 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2996 0, 0, 0, 0, 0, 0, 19, 0, 0, 0,
2997 0, 0, 0, 0, 0, 21, 23, 25, 27, 0,
2998 29, 31, 0, 0, 0, 33, 0, 0, 0, 0,
2999 0, 0, 35, 37, 39, 41, 43, 45, 47, 49,
3000 51, 53, 55, 57, 0, 59, 61, 63, 65, 67,
3001 69, 71, 73, 75, 77, 79, 81, 83, 85, 87,
3002 89, 91, 93, 0, 0, 0, 0, 0, 95, 97,
3003 99, 101, 103, 105, 0, 0, 0, 0, 0, 0,
3004 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3005 107, 109, 0, 111, 113, 115, 117, 119, 121, 0,
3006 123, 0, 0, 125, 127, 129, 131, 133, 135, 137,
3007 139, 141, 143, 145, 147, 149, 151, 153, 155, 0,
3008 0, 0, 0, 0, 0, 0, 0, 0, 157, 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, 0, 0, 0, 0,
3026 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3027 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3028 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3029 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3030 0, 0, 0, 0, 0, 0, 169, 0, 0, 0,
3031 0, 0, 0, 0, 0, 171, 173, 175, 177, 0,
3032 179, 181, 0, 0, 0, 183, 0, 0, 185, 187,
3033 189, 191, 0, 0, 0, 193, 0, 0, 0, 0,
3034 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3035 195, 197, 0, 0, 0, 0, 0, 0, 0, 0,
3036 0, 0, 0, 199, 201, 0, 0, 0, 0, 203,
3037 205, 207, 209, 211, 0, 0, 0, 0, 0, 0,
3038 0, 213, 0, 0, 0, 0, 0, 0, 0, 0,
3039 0, 215, 0, 217, 219, 221, 223, 225, 227, 0,
3040 229, 0, 0, 231, 233, 235, 237, 239, 241, 243,
3041 245, 247, 249, 251, 253, 255, 257, 259, 261, 263,
3042 0, 0, 0, 0, 0, 0, 0, 0, 265, 267,
3043 269, 271, 0, 273, 275, 0, 0, 0, 277, 0,
3044 0, 279, 281, 283, 285, 0, 0, 0, 287, 0,
3045 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3046 0, 0, 0, 289, 291, 0, 0, 0, 159, 0,
3047 0, 0, 0, 161, 0, 0, 293, 295, 0, 0,
3048 163, 0, 297, 299, 301, 303, 305, 0, 0, 0,
3049 0, 0, 0, 0, 307, 0, 0, 0, 0, 0,
3050 0, 0, 0, 0, 309, 0, 311, 313, 315, 317,
3051 319, 321, 0, 323, 0, 0, 325, 327, 329, 331,
3052 333, 335, 337, 339, 341, 343, 345, 347, 349, 351,
3053 353, 355, 357, 0, 0, 0, 0, 0, 165, 0,
3054 0, 359, 361, 363, 365, 0, 367, 369, 0, 0,
3055 0, 371, 0, 0, 373, 375, 377, 379, 0, 0,
3056 0, 381, 0, 0, 0, 0, 0, 0, 0, 0,
3057 0, 0, 0, 0, 0, 0, 383, 385, 0, 0,
3058 0, 0, 0, 0, 0, 0, 0, 0, 0, 387,
3059 389, 0, 0, 0, 0, 391, 393, 395, 397, 399,
3060 0, 0, 0, 0, 0, 0, 0, 401, 0, 0,
3061 0, 0, 0, 0, 0, 0, 0, 403, 0, 405,
3062 407, 409, 411, 413, 415, 0, 417, 0, 0, 419,
3063 421, 423, 425, 427, 429, 431, 433, 435, 437, 439,
3064 441, 443, 445, 447, 449, 451, 0, 0, 0, 0,
3065 0, 0, 0, 0, 453, 455, 457, 459, 0, 461,
3066 463, 0, 0, 0, 465, 0, 0, 467, 469, 471,
3067 473, 0, 0, 0, 475, 0, 0, 0, 0, 0,
3068 0, 0, 0, 0, 0, 0, 0, 0, 0, 477,
3069 479, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3070 0, 0, 481, 483, 0, 0, 0, 0, 485, 487,
3071 489, 491, 493, 0, 0, 0, 0, 0, 0, 0,
3072 495, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3073 497, 0, 499, 501, 503, 505, 507, 509, 0, 511,
3074 0, 0, 513, 515, 517, 519, 521, 523, 525, 527,
3075 529, 531, 533, 535, 537, 539, 541, 543, 545, 0,
3076 0, 0, 0, 0, 0, 0, 0, 547, 549, 551,
3077 553, 0, 555, 557, 0, 0, 0, 559, 0, 0,
3078 561, 563, 565, 567, 0, 0, 0, 569, 0, 0,
3079 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3080 0, 0, 571, 573, 0, 0, 0, 0, 0, 0,
3081 0, 0, 0, 0, 0, 575, 577, 0, 0, 0,
3082 0, 579, 581, 583, 585, 587, 0, 0, 0, 0,
3083 0, 0, 0, 589, 0, 0, 0, 0, 0, 0,
3084 0, 0, 0, 591, 0, 593, 595, 597, 599, 601,
3085 603, 0, 605, 0, 0, 607, 609, 611, 613, 615,
3086 617, 619, 621, 623, 625, 627, 629, 631, 633, 635,
3087 637, 639, 0, 0, 0, 0, 0, 0, 0, 0,
3088 641, 643, 645, 647, 0, 649, 651, 0, 0, 0,
3089 653, 0, 0, 655, 657, 659, 661, 0, 0, 0,
3090 663, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3091 0, 0, 0, 0, 0, 665, 667, 0, 0, 0,
3092 0, 0, 0, 0, 0, 0, 0, 0, 669, 671,
3093 0, 0, 0, 0, 673, 675, 677, 679, 681, 0,
3094 0, 0, 0, 0, 0, 0, 683, 0, 0, 0,
3095 0, 0, 0, 0, 0, 0, 685, 0, 687, 689,
3096 691, 693, 695, 697, 0, 699, 0, 0, 701, 703,
3097 705, 707, 709, 711, 713, 715, 717, 719, 721, 723,
3098 725, 727, 729, 731, 733, 0, 0, 0, 0, 0,
3099 0, 0, 0, 736, 739, 742, 745, 0, 748, 751,
3100 0, 0, 0, 754, 0, 0, 757, 760, 763, 766,
3101 0, 0, 0, 769, 0, 0, 0, 0, 0, 0,
3102 0, 0, 0, 0, 0, 0, 0, 0, 772, 775,
3103 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3104 0, 778, 781, 0, 0, 0, 0, 784, 787, 790,
3105 793, 796, 0, 0, 0, 0, 0, 0, 0, 799,
3106 0, 0, 0, 0, 0, 0, 0, 0, 0, 802,
3107 0, 805, 808, 811, 814, 817, 820, 0, 823, 0,
3108 0, 826, 829, 832, 835, 838, 841, 844, 847, 850,
3109 853, 856, 859, 862, 865, 868, 871, 876, 0, 874,
3110 0, 0, 0, 0, 0, 0, 878, 880, 882, 884,
3111 0, 886, 888, 0, 0, 0, 890, 0, 0, 892,
3112 894, 896, 898, 0, 0, 0, 900, 0, 0, 0,
3113 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3114 0, 902, 904, 0, 0, 0, 0, 0, 0, 0,
3115 0, 0, 0, 0, 906, 908, 0, 0, 0, 0,
3116 910, 912, 914, 916, 918, 0, 0, 0, 0, 0,
3117 0, 0, 920, 0, 0, 0, 0, 0, 0, 0,
3118 0, 0, 922, 0, 924, 926, 928, 930, 932, 934,
3119 0, 936, 0, 0, 938, 940, 942, 944, 946, 948,
3120 950, 952, 954, 956, 958, 960, 962, 964, 966, 968,
3121 970, 0, 0, 0, 0, 0, 0, 0, 0, 972,
3122 974, 976, 978, 0, 980, 982, 0, 0, 0, 984,
3123 0, 0, 986, 988, 990, 992, 0, 0, 0, 994,
3124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3125 0, 0, 0, 0, 996, 998, 0, 0, 0, 0,
3126 0, 0, 0, 0, 0, 0, 0, 1000, 1002, 0,
3127 0, 0, 0, 1004, 1006, 1008, 1010, 1012, 0, 0,
3128 0, 0, 0, 0, 0, 1014, 0, 0, 0, 0,
3129 0, 0, 0, 0, 0, 1016, 0, 1018, 1020, 1022,
3130 1024, 1026, 1028, 0, 1030, 0, 0, 1032, 1034, 1036,
3131 1038, 1040, 1042, 1044, 1046, 1048, 1050, 1052, 1054, 1056,
3132 1058, 1060, 1062, 1064, 0, 0, 0, 0, 0, 0,
3133 0, 0, 1066, 1068, 1070, 1072, 0, 1074, 1076, 0,
3134 0, 0, 1078, 0, 0, 1080, 1082, 1084, 1086, 0,
3135 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0,
3136 0, 0, 0, 0, 0, 0, 0, 1090, 1092, 0,
3137 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3138 1094, 1096, 0, 0, 0, 0, 1098, 1100, 1102, 1104,
3139 1106, 0, 0, 0, 0, 0, 0, 0, 1108, 0,
3140 0, 0, 0, 0, 0, 0, 0, 0, 1110, 0,
3141 1112, 1114, 1116, 1118, 1120, 1122, 0, 1124, 0, 0,
3142 1126, 1128, 1130, 1132, 1134, 1136, 1138, 1140, 1142, 1144,
3143 1146, 1148, 1150, 1152, 1154, 1156, 1158, 0, 0, 0,
3144 0, 0, 0, 0, 0, 1160, 1162, 1164, 1166, 0,
3145 1168, 1170, 0, 0, 0, 1172, 0, 0, 1174, 1176,
3146 1178, 1180, 0, 0, 0, 1182, 0, 0, 0, 0,
3147 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3148 1184, 1186, 0, 0, 0, 0, 0, 0, 0, 0,
3149 0, 0, 0, 1188, 1190, 0, 0, 0, 0, 1192,
3150 1194, 1196, 1198, 1200, 0, 0, 0, 0, 0, 0,
3151 0, 1202, 0, 0, 0, 0, 0, 0, 0, 0,
3152 0, 1204, 0, 1206, 1208, 1210, 1212, 1214, 1216, 0,
3153 1218, 0, 0, 1220, 1222, 1224, 1226, 1228, 1230, 1232,
3154 1234, 1236, 1238, 1240, 1242, 1244, 1246, 1248, 1250, 1252,
3155 0, 0, 0, 0, 0, 0, 0, 0, 1254, 1256,
3156 1258, 1260, 0, 1262, 1264, 0, 0, 0, 1266, 0,
3157 0, 1268, 1270, 1272, 1274, 0, 0, 0, 1276, 0,
3158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3159 0, 0, 0, 1278, 1280, 0, 0, 0, 0, 0,
3160 0, 0, 0, 0, 0, 0, 1282, 1284, 0, 0,
3161 0, 0, 1286, 1288, 1290, 1292, 1294, 0, 0, 0,
3162 0, 0, 0, 0, 1296, 0, 0, 0, 0, 0,
3163 0, 0, 0, 0, 1298, 0, 1300, 1302, 1304, 1306,
3164 1308, 1310, 0, 1312, 0, 0, 1314, 1316, 1318, 1320,
3165 1322, 1324, 1326, 1328, 1330, 1332, 1334, 1336, 1338, 1340,
3166 1342, 1344, 1346, 0, 0, 0, 0, 0, 0, 0,
3167 0, 1348, 1350, 1352, 1354, 0, 1356, 1358, 0, 0,
3168 0, 1360, 0, 0, 1362, 1364, 1366, 1368, 0, 0,
3169 0, 1370, 0, 0, 0, 0, 0, 0, 0, 0,
3170 0, 0, 0, 0, 0, 0, 1372, 1374, 0, 0,
3171 0, 0, 0, 0, 0, 0, 0, 0, 0, 1376,
3172 1378, 0, 0, 0, 0, 1380, 1382, 1384, 1386, 1388,
3173 0, 0, 0, 0, 0, 0, 0, 1390, 0, 0,
3174 0, 0, 0, 0, 0, 0, 0, 1392, 0, 1394,
3175 1396, 1398, 1400, 1402, 1404, 0, 1406, 0, 0, 1408,
3176 1410, 1412, 1414, 1416, 1418, 1420, 1422, 1424, 1426, 1428,
3177 1430, 1432, 1434, 1436, 1438, 1440, 0, 0, 0, 0,
3178 0, 0, 0, 0, 1442, 1444, 1446, 1448, 0, 1450,
3179 1452, 0, 0, 0, 1454, 0, 0, 1456, 1458, 1460,
3180 1462, 0, 0, 0, 1464, 0, 0, 0, 0, 0,
3181 0, 0, 0, 0, 0, 0, 0, 0, 0, 1466,
3182 1468, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3183 0, 0, 1470, 1472, 0, 0, 0, 0, 1474, 1476,
3184 1478, 1480, 1482, 0, 0, 0, 0, 0, 0, 0,
3185 1484, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3186 1486, 0, 1488, 1490, 1492, 1494, 1496, 1498, 0, 1500,
3187 0, 0, 1502, 1504, 1506, 1508, 1510, 1512, 1514, 1516,
3188 1518, 1520, 1522, 1524, 1526, 1528, 1530, 1532, 1534, 0,
3189 0, 0, 0, 0, 0, 0, 0, 1536, 1538, 1540,
3190 1542, 0, 1544, 1546, 0, 0, 0, 1548, 0, 0,
3191 1550, 1552, 1554, 1556, 0, 0, 0, 1558, 0, 0,
3192 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3193 0, 0, 1560, 1562, 0, 0, 0, 0, 0, 0,
3194 0, 0, 0, 0, 0, 1564, 1566, 0, 0, 0,
3195 0, 1568, 1570, 1572, 1574, 1576, 0, 0, 0, 0,
3196 0, 0, 0, 1578, 0, 0, 0, 0, 0, 0,
3197 0, 0, 0, 1580, 0, 1582, 1584, 1586, 1588, 1590,
3198 1592, 0, 1594, 0, 0, 1596, 1598, 1600, 1602, 1604,
3199 1606, 1608, 1610, 1612, 1614, 1616, 1618, 1620, 1622, 1624,
3200 1626, 1628, 0, 0, 0, 0, 0, 0, 0, 0,
3201 1630, 1632, 1634, 1636, 0, 1638, 1640, 0, 0, 0,
3202 1642, 0, 0, 1644, 1646, 1648, 1650, 0, 0, 0,
3203 1652, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3204 0, 0, 0, 0, 0, 1654, 1656, 0, 0, 0,
3205 0, 0, 0, 0, 0, 0, 0, 0, 1658, 1660,
3206 0, 0, 0, 0, 1662, 1664, 1666, 1668, 1670, 0,
3207 0, 0, 0, 0, 0, 0, 1672, 0, 0, 0,
3208 0, 0, 0, 0, 0, 0, 1674, 0, 1676, 1678,
3209 1680, 1682, 1684, 1686, 0, 1688, 0, 0, 1690, 1692,
3210 1694, 1696, 1698, 1700, 1702, 1704, 1706, 1708, 1710, 1712,
3211 1714, 1716, 1718, 1720, 1722, 0, 0, 0, 0, 0,
3212 0, 0, 0, 1724, 1726, 1728, 1730, 0, 1732, 1734,
3213 0, 0, 0, 1736, 0, 0, 1738, 1740, 1742, 1744,
3214 0, 0, 0, 1746, 0, 0, 0, 0, 0, 0,
3215 0, 0, 0, 0, 0, 0, 0, 0, 1748, 1750,
3216 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3217 0, 1752, 1754, 0, 0, 0, 0, 1756, 1758, 1760,
3218 1762, 1764, 0, 0, 0, 0, 0, 0, 0, 1766,
3219 0, 0, 0, 0, 0, 0, 0, 0, 0, 1768,
3220 0, 1770, 1772, 1774, 1776, 1778, 1780, 0, 1782, 0,
3221 0, 1784, 1786, 1788, 1790, 1792, 1794, 1796, 1798, 1800,
3222 1802, 1804, 1806, 1808, 1810, 1812, 1814, 1816, 0, 0,
3223 0, 0, 0, 0, 0, 0, 1818, 1820, 1822, 1824,
3224 0, 1826, 1828, 0, 0, 0, 1830, 0, 0, 1832,
3225 1834, 1836, 1838, 0, 0, 0, 1840, 0, 0, 0,
3226 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3227 0, 1842, 1844, 0, 0, 0, 0, 0, 0, 0,
3228 0, 0, 0, 0, 1846, 1848, 0, 0, 0, 0,
3229 1850, 1852, 1854, 1856, 1858, 0, 0, 0, 0, 0,
3230 0, 0, 1860, 0, 0, 0, 0, 0, 0, 0,
3231 0, 0, 1862, 0, 1864, 1866, 1868, 1870, 1872, 1874,
3232 0, 1876, 0, 0, 1878, 1880, 1882, 1884, 1886, 1888,
3233 1890, 1892, 1894, 1896, 1898, 1900, 1902, 1904, 1906, 1908,
3234 1910, 0, 0, 0, 0, 0, 0, 0, 0, 1912,
3235 1914, 1916, 1918, 0, 1920, 1922, 0, 0, 0, 1924,
3236 0, 0, 1926, 1928, 1930, 1932, 0, 0, 0, 1934,
3237 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3238 0, 0, 0, 0, 1936, 1938, 0, 0, 0, 0,
3239 0, 0, 0, 0, 0, 0, 0, 1940, 1942, 0,
3240 0, 0, 0, 1944, 1946, 1948, 1950, 1952, 0, 0,
3241 0, 0, 0, 0, 0, 1954, 0, 0, 0, 0,
3242 0, 0, 0, 0, 0, 1956, 0, 1958, 1960, 1962,
3243 1964, 1966, 1968, 0, 1970, 0, 0, 1972, 1974, 1976,
3244 1978, 1980, 1982, 1984, 1986, 1988, 1990, 1992, 1994, 1996,
3245 1998, 2000, 2002, 2004, 0, 0, 0, 0, 0, 0,
3246 0, 0, 2006, 2008, 2010, 2012, 0, 2014, 2016, 0,
3247 0, 0, 2018, 0, 0, 2020, 2022, 2024, 2026, 0,
3248 0, 0, 2028, 0, 0, 0, 0, 0, 0, 0,
3249 0, 0, 0, 0, 0, 0, 0, 2030, 2032, 0,
3250 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3251 2034, 2036, 0, 0, 0, 0, 2038, 2040, 2042, 2044,
3252 2046, 0, 0, 0, 0, 0, 0, 0, 2048, 0,
3253 0, 0, 0, 0, 0, 0, 0, 0, 2050, 0,
3254 2052, 2054, 2056, 2058, 2060, 2062, 0, 2064, 0, 0,
3255 2066, 2068, 2070, 2072, 2074, 2076, 2078, 2080, 2082, 2084,
3256 2086, 2088, 2090, 2092, 2094, 2096, 2098, 0, 0, 0,
3257 0, 0, 0, 0, 0, 2100, 2102, 2104, 2106, 0,
3258 2108, 2110, 0, 0, 0, 2112, 0, 0, 2114, 2116,
3259 2118, 2120, 0, 0, 0, 2122, 0, 0, 0, 0,
3260 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3261 2124, 2126, 0, 0, 0, 0, 0, 0, 0, 0,
3262 0, 0, 0, 2128, 2130, 0, 0, 0, 0, 2132,
3263 2134, 2136, 2138, 2140, 0, 0, 0, 0, 0, 0,
3264 0, 2142, 0, 0, 0, 0, 0, 0, 0, 0,
3265 0, 2144, 0, 2146, 2148, 2150, 2152, 2154, 2156, 0,
3266 2158, 0, 0, 2160, 2162, 2164, 2166, 2168, 2170, 2172,
3267 2174, 2176, 2178, 2180, 2182, 2184, 2186, 2188, 2190, 2192,
3268 0, 0, 0, 0, 0, 0, 0, 0, 2194, 2196,
3269 2198, 2200, 0, 2202, 2204, 0, 0, 0, 2206, 0,
3270 0, 2208, 2210, 2212, 2214, 0, 0, 0, 2216, 0,
3271 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3272 0, 0, 0, 2218, 2220, 0, 0, 0, 0, 0,
3273 0, 0, 0, 0, 0, 0, 2222, 2224, 0, 0,
3274 0, 0, 2226, 2228, 2230, 2232, 2234, 0, 0, 0,
3275 0, 0, 0, 0, 2236, 0, 0, 0, 0, 0,
3276 0, 0, 0, 0, 2238, 0, 2240, 2242, 2244, 2246,
3277 2248, 2250, 0, 2252, 0, 0, 2254, 2256, 2258, 2260,
3278 2262, 2264, 2266, 2268, 2270, 2272, 2274, 2276, 2278, 2280,
3279 2282, 2284, 2286, 0, 0, 0, 0, 0, 0, 0,
3280 0, 2288, 2290, 2292, 2294, 0, 2296, 2298, 0, 0,
3281 0, 2300, 0, 0, 2302, 2304, 2306, 2308, 0, 0,
3282 0, 2310, 0, 0, 0, 0, 0, 0, 0, 0,
3283 0, 0, 0, 0, 0, 0, 2312, 2314, 0, 0,
3284 0, 0, 0, 0, 0, 0, 0, 0, 0, 2316,
3285 2318, 0, 0, 0, 0, 2320, 2322, 2324, 2326, 2328,
3286 0, 0, 0, 0, 0, 0, 0, 2330, 0, 0,
3287 0, 0, 0, 0, 0, 0, 0, 2332, 0, 2334,
3288 2336, 2338, 2340, 2342, 2344, 0, 2346, 0, 0, 2348,
3289 2350, 2352, 2354, 2356, 2358, 2360, 2362, 2364, 2366, 2368,
3290 2370, 2372, 2374, 2376, 2378, 2380, 0, 0, 0, 0,
3291 0, 0, 0, 0, 2382, 2384, 2386, 2388, 0, 2390,
3292 2392, 0, 0, 0, 2394, 0, 0, 2396, 2398, 2400,
3293 2402, 0, 0, 0, 2404, 0, 0, 0, 0, 0,
3294 0, 0, 0, 0, 0, 0, 0, 0, 0, 2406,
3295 2408, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3296 0, 0, 2410, 2412, 0, 0, 0, 0, 2414, 2416,
3297 2418, 2420, 2422, 0, 0, 0, 0, 0, 0, 0,
3298 2424, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3299 2426, 0, 2428, 2430, 2432, 2434, 2436, 2438, 0, 2440,
3300 0, 0, 2442, 2444, 2446, 2448, 2450, 2452, 2454, 2456,
3301 2458, 2460, 2462, 2464, 2466, 2468, 2470, 2472, 2474, 0,
3302 0, 0, 0, 0, 0, 0, 0, 2476, 2478, 2480,
3303 2482, 0, 2484, 2486, 0, 0, 0, 2488, 0, 0,
3304 2490, 2492, 2494, 2496, 0, 0, 0, 2498, 0, 0,
3305 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3306 0, 0, 2500, 2502, 0, 0, 0, 0, 0, 0,
3307 0, 0, 0, 0, 0, 2504, 2506, 0, 0, 0,
3308 0, 2508, 2510, 2512, 2514, 2516, 0, 0, 0, 0,
3309 0, 0, 0, 2518, 0, 0, 0, 0, 0, 0,
3310 0, 0, 0, 2520, 0, 2522, 2524, 2526, 2528, 2530,
3311 2532, 0, 2534, 0, 0, 2536, 2538, 2540, 2542, 2544,
3312 2546, 2548, 2550, 2552, 2554, 2556, 2558, 2560, 2562, 2564,
3313 2566, 2568, 0, 0, 0, 0, 0, 0, 0, 0,
3314 2570, 2572, 2574, 2576, 0, 2578, 2580, 0, 0, 0,
3315 2582, 0, 0, 2584, 2586, 2588, 2590, 0, 0, 0,
3316 2592, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3317 0, 0, 0, 0, 0, 2594, 2596, 0, 0, 0,
3318 0, 0, 0, 0, 0, 0, 0, 0, 2598, 2600,
3319 0, 0, 0, 0, 2602, 2604, 2606, 2608, 2610, 0,
3320 0, 0, 0, 0, 0, 0, 2612, 0, 0, 0,
3321 0, 0, 0, 0, 0, 0, 2614, 0, 2616, 2618,
3322 2620, 2622, 2624, 2626, 0, 2628, 0, 0, 2630, 2632,
3323 2634, 2636, 2638, 2640, 2642, 2644, 2646, 2648, 2650, 2652,
3324 2654, 2656, 2658, 2660, 2662, 0, 0, 0, 0, 0,
3325 0, 0, 0, 2664, 2666, 2668, 2670, 0, 2672, 2674,
3326 0, 0, 0, 2676, 0, 0, 2678, 2680, 2682, 2684,
3327 0, 0, 0, 2686, 0, 0, 0, 0, 0, 0,
3328 0, 0, 0, 0, 0, 0, 0, 0, 2688, 2690,
3329 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3330 0, 2692, 2694, 0, 0, 0, 0, 2696, 2698, 2700,
3331 2702, 2704, 0, 0, 0, 0, 0, 0, 0, 2706,
3332 0, 0, 0, 0, 0, 0, 0, 0, 0, 2708,
3333 0, 2710, 2712, 2714, 2716, 2718, 2720, 0, 2722, 0,
3334 0, 2724, 2726, 2728, 2730, 2732, 2734, 2736, 2738, 2740,
3335 2742, 2744, 2746, 2748, 2750, 2752, 2754, 2756, 0, 0,
3336 0, 0, 0, 0, 0, 0, 2758, 2760, 2762, 2764,
3337 0, 2766, 2768, 0, 0, 0, 2770, 0, 0, 2772,
3338 2774, 2776, 2778, 0, 0, 0, 2780, 0, 0, 0,
3339 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3340 0, 2782, 2784, 0, 0, 0, 0, 0, 0, 0,
3341 0, 0, 0, 0, 2786, 2788, 0, 0, 0, 0,
3342 2790, 2792, 2794, 2796, 2798, 0, 0, 0, 0, 0,
3343 0, 0, 2800, 0, 0, 0, 0, 0, 0, 0,
3344 0, 0, 2802, 0, 2804, 2806, 2808, 2810, 2812, 2814,
3345 0, 2816, 0, 0, 2818, 2820, 2822, 2824, 2826, 2828,
3346 2830, 2832, 2834, 2836, 2838, 2840, 2842, 2844, 2846, 2848,
3347 2850, 0, 0, 0, 0, 0, 0, 0, 0, 2852,
3348 2854, 2856, 2858, 0, 2860, 2862, 0, 0, 0, 2864,
3349 0, 0, 2866, 2868, 2870, 2872, 0, 0, 0, 2874,
3350 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3351 0, 0, 0, 0, 2876, 2878, 0, 0, 0, 0,
3352 0, 0, 0, 0, 0, 0, 0, 2880, 2882, 0,
3353 0, 0, 0, 2884, 2886, 2888, 2890, 2892, 0, 0,
3354 0, 0, 0, 0, 0, 2894, 0, 0, 0, 0,
3355 0, 0, 0, 0, 0, 2896, 0, 2898, 2900, 2902,
3356 2904, 2906, 2908, 0, 2910, 0, 0, 2912, 2914, 2916,
3357 2918, 2920, 2922, 2924, 2926, 2928, 2930, 2932, 2934, 2936,
3358 2938, 2940, 2942, 2944, 0, 0, 0, 0, 0, 0,
3359 0, 0, 2946, 2948, 2950, 2952, 0, 2954, 2956, 0,
3360 0, 0, 2958, 0, 0, 2960, 2962, 2964, 2966, 0,
3361 0, 0, 2968, 0, 0, 0, 0, 0, 0, 0,
3362 0, 0, 0, 0, 0, 0, 0, 2970, 2972, 0,
3363 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3364 2974, 2976, 0, 0, 0, 0, 2978, 2980, 2982, 2984,
3365 2986, 0, 0, 0, 0, 0, 0, 0, 2988, 0,
3366 0, 0, 0, 0, 0, 0, 0, 0, 2990, 0,
3367 2992, 2994, 2996, 2998, 3000, 3002, 0, 3004, 0, 0,
3368 3006, 3008, 3010, 3012, 3014, 3016, 3018, 3020, 3022, 3024,
3369 3026, 3028, 3030, 3032, 3034, 3036, 3038, 0, 0, 0,
3370 0, 0, 0, 0, 0, 3040, 3042, 3044, 3046, 0,
3371 3048, 3050, 0, 0, 0, 3052, 0, 0, 3054, 3056,
3372 3058, 3060, 0, 0, 0, 3062, 0, 0, 0, 0,
3373 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3374 3064, 3066, 0, 0, 0, 0, 0, 0, 0, 0,
3375 0, 0, 0, 3068, 3070, 0, 0, 0, 0, 3072,
3376 3074, 3076, 3078, 3080, 0, 0, 0, 0, 0, 0,
3377 0, 3082, 0, 0, 0, 0, 0, 0, 0, 0,
3378 0, 3084, 0, 3086, 3088, 3090, 3092, 3094, 3096, 0,
3379 3098, 0, 0, 3100, 3102, 3104, 3106, 3108, 3110, 3112,
3380 3114, 3116, 3118, 3120, 3122, 3124, 3126, 3128, 3130, 3132,
3381 0, 0, 0, 0, 0, 0, 0, 0, 3134, 3136,
3382 3138, 3140, 0, 3142, 3144, 0, 0, 0, 3146, 0,
3383 0, 3148, 3150, 3152, 3154, 0, 0, 0, 3156, 0,
3384 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3385 0, 0, 0, 3158, 3160, 0, 0, 0, 0, 0,
3386 0, 0, 0, 0, 0, 0, 3162, 3164, 0, 0,
3387 0, 0, 3166, 3168, 3170, 3172, 3174, 0, 0, 0,
3388 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0,
3389 0, 0, 0, 0, 3178, 0, 3180, 3182, 3184, 3186,
3390 3188, 3190, 0, 3192, 0, 0, 3194, 3196, 3198, 3200,
3391 3202, 3204, 3206, 3208, 3210, 3212, 3214, 3216, 3218, 3220,
3392 3222, 3224, 3226, 0, 0, 0, 0, 0, 0, 0,
3393 0, 3228, 3230, 3232, 3234, 0, 3236, 3238, 0, 0,
3394 0, 3240, 0, 0, 3242, 3244, 3246, 3248, 0, 0,
3395 0, 3250, 0, 0, 0, 0, 0, 0, 0, 0,
3396 0, 0, 0, 0, 0, 0, 3252, 3254, 0, 0,
3397 0, 0, 0, 0, 0, 0, 0, 0, 0, 3256,
3398 3258, 0, 0, 0, 0, 3260, 3262, 3264, 3266, 3268,
3399 0, 0, 0, 0, 0, 0, 0, 3270, 0, 0,
3400 0, 0, 0, 0, 0, 0, 0, 3272, 0, 3274,
3401 3276, 3278, 3280, 3282, 3284, 0, 3286, 0, 0, 3288,
3402 3290, 3292, 3294, 3296, 3298, 3300, 3302, 3304, 3306, 3308,
3403 3310, 3312, 3314, 3316, 3318, 3320, 0, 0, 0, 0,
3404 0, 0, 0, 0, 3322, 3324, 3326, 3328, 0, 3330,
3405 3332, 0, 0, 0, 3334, 0, 0, 3336, 3338, 3340,
3406 3342, 0, 0, 0, 3344, 0, 0, 0, 0, 0,
3407 0, 0, 0, 0, 0, 0, 0, 0, 0, 3346,
3408 3348, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3409 0, 0, 3350, 3352, 0, 0, 0, 0, 3354, 3356,
3410 3358, 3360, 3362, 0, 0, 0, 0, 0, 0, 0,
3411 3364, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3412 3366, 0, 3368, 3370, 3372, 3374, 3376, 3378, 0, 3380,
3413 0, 0, 3382, 3384, 3386, 3388, 3390, 3392, 3394, 3396,
3414 3398, 3400, 3402, 3404, 3406, 3408, 3410, 3412, 3414, 0,
3415 0, 0, 0, 0, 0, 0, 0, 3416, 3418, 3420,
3416 3422, 0, 3424, 3426, 0, 0, 0, 3428, 0, 0,
3417 3430, 3432, 3434, 3436, 0, 0, 0, 3438, 0, 0,
3418 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3419 0, 0, 3440, 3442, 0, 0, 0, 0, 0, 0,
3420 0, 0, 0, 0, 0, 3444, 3446, 0, 0, 0,
3421 0, 3448, 3450, 3452, 3454, 3456, 0, 0, 0, 0,
3422 0, 0, 0, 3458, 0, 0, 0, 0, 0, 0,
3423 0, 0, 0, 3460, 0, 3462, 3464, 3466, 3468, 3470,
3424 3472, 0, 3474, 0, 0, 3476, 3478, 3480, 3482, 3484,
3425 3486, 3488, 3490, 3492, 3494, 3496, 3498, 3500, 3502, 3504,
3426 3506, 3508, 0, 0, 0, 0, 0, 0, 0, 0,
3427 3510, 3512, 3514, 3516, 0, 3518, 3520, 0, 0, 0,
3428 3522, 0, 0, 3524, 3526, 3528, 3530, 0, 0, 0,
3429 3532, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3430 0, 0, 0, 0, 0, 3534, 3536, 0, 0, 0,
3431 0, 0, 0, 0, 0, 0, 0, 0, 3538, 3540,
3432 0, 0, 0, 0, 3542, 3544, 3546, 3548, 3550, 0,
3433 0, 0, 0, 0, 0, 0, 3552, 0, 0, 0,
3434 0, 0, 0, 0, 0, 0, 3554, 0, 3556, 3558,
3435 3560, 3562, 3564, 3566, 0, 3568, 0, 0, 3570, 3572,
3436 3574, 3576, 3578, 3580, 3582, 3584, 3586, 3588, 3590, 3592,
3437 3594, 3596, 3598, 3600, 3602, 0, 0, 0, 0, 0,
3438 0, 0, 0, 3604, 3606, 3608, 3610, 0, 3612, 3614,
3439 0, 0, 0, 3616, 0, 0, 3618, 3620, 3622, 3624,
3440 0, 0, 0, 3626, 0, 0, 0, 0, 0, 0,
3441 0, 0, 0, 0, 0, 0, 0, 0, 3628, 3630,
3442 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3443 0, 3632, 3634, 0, 0, 0, 0, 3636, 3638, 3640,
3444 3642, 3644, 0, 0, 0, 0, 0, 0, 0, 3646,
3445 0, 0, 0, 0, 0, 0, 0, 0, 0, 3648,
3446 0, 3650, 3652, 3654, 3656, 3658, 3660, 0, 3662, 0,
3447 0, 3664, 3666, 3668, 3670, 3672, 3674, 3676, 3678, 3680,
3448 3682, 3684, 3686, 3688, 3690, 3692, 3694, 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, 0,
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, 0, 0, 0, 0, 0, 0, 0,
3678 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3679 0, 0, 0, 0, 0, 0, 0, 0, 0, 3726,
3680 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3681 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3682 0, 0, 0, 3728
3683 };
3684
3685 /* YYCONFL[I] -- lists of conflicting rule numbers, each terminated by
3686 0, pointed into by YYCONFLP. */
3687 static const short yyconfl[] =
3688 {
3689 0, 391, 0, 391, 0, 391, 0, 391, 0, 382,
3690 0, 382, 0, 405, 0, 466, 0, 466, 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, 622,
3700 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3701 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3702 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3703 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3704 0, 622, 0, 622, 0, 622, 0, 622, 0, 391,
3705 0, 391, 0, 391, 0, 391, 0, 405, 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, 46, 0, 46, 0, 46, 0, 46,
3711 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3712 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3713 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3714 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3715 0, 46, 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, 55, 0, 55,
3720 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3721 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3722 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3723 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3724 0, 55, 0, 55, 0, 55, 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, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3730 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3731 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3732 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3733 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
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, 57, 0, 57, 0, 57,
3739 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3740 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3741 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3742 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3743 0, 57, 0, 57, 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, 58,
3748 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3749 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3750 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3751 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3752 0, 58, 0, 58, 0, 58, 0, 58, 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, 623, 0, 623, 0, 623, 0, 623,
3758 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3759 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3760 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3761 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3762 0, 623, 0, 584, 622, 0, 584, 622, 0, 584,
3763 622, 0, 584, 622, 0, 584, 622, 0, 584, 622,
3764 0, 584, 622, 0, 584, 622, 0, 584, 622, 0,
3765 584, 622, 0, 584, 622, 0, 584, 622, 0, 584,
3766 622, 0, 584, 622, 0, 584, 622, 0, 584, 622,
3767 0, 584, 622, 0, 584, 622, 0, 584, 622, 0,
3768 584, 622, 0, 584, 622, 0, 584, 622, 0, 584,
3769 622, 0, 584, 622, 0, 584, 622, 0, 584, 622,
3770 0, 584, 622, 0, 584, 622, 0, 584, 622, 0,
3771 584, 622, 0, 584, 622, 0, 584, 622, 0, 584,
3772 622, 0, 584, 622, 0, 584, 622, 0, 584, 622,
3773 0, 584, 622, 0, 584, 622, 0, 584, 622, 0,
3774 584, 622, 0, 584, 622, 0, 584, 622, 0, 584,
3775 622, 0, 584, 622, 0, 584, 622, 0, 584, 622,
3776 0, 584, 622, 0, 622, 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 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3782 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3783 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3784 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3785 65, 0, 65, 0, 65, 0, 65, 0, 65, 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, 109, 0, 109, 0, 109, 0,
3791 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3792 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3793 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3794 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3795 109, 0, 109, 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, 110, 0,
3800 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3801 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3802 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3803 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3804 110, 0, 110, 0, 110, 0, 110, 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, 108, 0, 108, 0, 108, 0, 108, 0,
3810 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3811 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3812 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3813 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3814 108, 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, 106, 0, 106, 0,
3819 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3820 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3821 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3822 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3823 106, 0, 106, 0, 106, 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 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3829 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3830 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3831 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3832 107, 0, 107, 0, 107, 0, 107, 0, 107, 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, 127, 0, 127, 0, 127, 0,
3838 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3839 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3840 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3841 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3842 127, 0, 127, 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, 129, 0,
3847 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3848 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3849 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3850 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3851 129, 0, 129, 0, 129, 0, 129, 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, 130, 0, 130, 0, 130, 0, 130, 0,
3857 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3858 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3859 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3860 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3861 130, 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, 131, 0, 131, 0,
3866 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3867 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3868 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3869 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3870 131, 0, 131, 0, 131, 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 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3876 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3877 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3878 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3879 132, 0, 132, 0, 132, 0, 132, 0, 132, 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, 133, 0, 133, 0, 133, 0,
3885 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3886 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3887 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3888 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3889 133, 0, 133, 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, 134, 0,
3894 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3895 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3896 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3897 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3898 134, 0, 134, 0, 134, 0, 134, 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, 163, 0, 163, 0, 163, 0, 163, 0,
3904 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3905 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3906 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3907 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3908 163, 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, 592, 0, 592, 0,
3913 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3914 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3915 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3916 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3917 592, 0, 592, 0, 592, 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 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3923 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3924 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3925 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3926 591, 0, 591, 0, 591, 0, 591, 0, 591, 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, 589, 0, 589, 0, 589, 0,
3932 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3933 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3934 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3935 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3936 589, 0, 589, 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, 587, 0,
3941 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3942 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3943 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3944 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3945 587, 0, 587, 0, 587, 0, 587, 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, 588, 0, 588, 0, 588, 0, 588, 0,
3951 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3952 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3953 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3954 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3955 588, 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, 590, 0, 590, 0,
3960 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3961 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3962 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3963 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3964 590, 0, 590, 0, 590, 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 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3970 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3971 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3972 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3973 586, 0, 586, 0, 586, 0, 586, 0, 586, 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, 585, 0, 585, 0, 585, 0,
3979 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3980 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3981 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3982 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3983 585, 0, 585, 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, 593, 0,
3988 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3989 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3990 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3991 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3992 593, 0, 593, 0, 593, 0, 593, 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, 147, 0, 147, 0, 147, 0, 147, 0,
3998 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3999 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
4000 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
4001 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
4002 147, 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, 621, 0, 621, 0,
4007 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4008 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4009 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4010 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4011 621, 0, 621, 0, 621, 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 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4017 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4018 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4019 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4020 619, 0, 619, 0, 619, 0, 619, 0, 619, 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, 618, 0, 618, 0, 618, 0,
4026 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4027 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4028 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4029 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4030 618, 0, 618, 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, 620, 0,
4035 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4036 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4037 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4038 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4039 620, 0, 620, 0, 620, 0, 620, 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, 617, 0, 617, 0, 617, 0, 617, 0,
4045 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4046 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4047 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4048 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4049 617, 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, 616, 0, 616, 0,
4054 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4055 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4056 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4057 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4058 616, 0, 616, 0, 616, 0, 511, 0, 511, 0,
4059 459, 0, 459, 0, 460, 0, 497, 0, 497, 0,
4060 497, 0, 45, 0, 623, 0, 391, 0, 572, 0,
4061 572, 0, 572, 0, 623, 0, 342, 0, 493, 0
4062 };
4063
4064 /* Error token number */
4065 #define YYTERROR 1
4066
4067
4068
4069
4070 #undef yynerrs
4071 #define yynerrs (yystackp->yyerrcnt)
4072 #undef yychar
4073 #define yychar (yystackp->yyrawchar)
4074 #undef yylval
4075 #define yylval (yystackp->yyval)
4076 #undef yylloc
4077 #define yylloc (yystackp->yyloc)
4078 #define psi_parser_proc_nerrs yynerrs
4079 #define psi_parser_proc_char yychar
4080 #define psi_parser_proc_lval yylval
4081 #define psi_parser_proc_lloc yylloc
4082
4083 static const int YYEOF = 0;
4084 static const int YYEMPTY = -2;
4085
4086 typedef enum { yyok, yyaccept, yyabort, yyerr } YYRESULTTAG;
4087
4088 #define YYCHK(YYE) \
4089 do { \
4090 YYRESULTTAG yychk_flag = YYE; \
4091 if (yychk_flag != yyok) \
4092 return yychk_flag; \
4093 } while (0)
4094
4095 #if YYDEBUG
4096
4097 # ifndef YYFPRINTF
4098 # define YYFPRINTF fprintf
4099 # endif
4100
4101 /* This macro is provided for backward compatibility. */
4102 #ifndef YY_LOCATION_PRINT
4103 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
4104 #endif
4105
4106
4107 # define YYDPRINTF(Args) \
4108 do { \
4109 if (yydebug) \
4110 YYFPRINTF Args; \
4111 } while (0)
4112
4113
4114 /*-----------------------------------.
4115 | Print this symbol's value on YYO. |
4116 `-----------------------------------*/
4117
4118 static void
4119 yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
4120 {
4121 FILE *yyoutput = yyo;
4122 YYUSE (yyoutput);
4123 YYUSE (P);
4124 YYUSE (tokens);
4125 YYUSE (index);
4126 if (!yyvaluep)
4127 return;
4128 YYUSE (yytype);
4129 }
4130
4131
4132 /*---------------------------.
4133 | Print this symbol on YYO. |
4134 `---------------------------*/
4135
4136 static void
4137 yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
4138 {
4139 YYFPRINTF (yyo, "%s %s (",
4140 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
4141
4142 yy_symbol_value_print (yyo, yytype, yyvaluep, P, tokens, index);
4143 YYFPRINTF (yyo, ")");
4144 }
4145
4146 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
4147 do { \
4148 if (yydebug) \
4149 { \
4150 YYFPRINTF (stderr, "%s ", Title); \
4151 yy_symbol_print (stderr, Type, Value, P, tokens, index); \
4152 YYFPRINTF (stderr, "\n"); \
4153 } \
4154 } while (0)
4155
4156 /* Nonzero means print parse trace. It is left uninitialized so that
4157 multiple parsers can coexist. */
4158 int yydebug;
4159
4160 struct yyGLRStack;
4161 static void yypstack (struct yyGLRStack* yystackp, size_t yyk)
4162 YY_ATTRIBUTE_UNUSED;
4163 static void yypdumpstack (struct yyGLRStack* yystackp)
4164 YY_ATTRIBUTE_UNUSED;
4165
4166 #else /* !YYDEBUG */
4167
4168 # define YYDPRINTF(Args)
4169 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
4170
4171 #endif /* !YYDEBUG */
4172
4173 /* YYINITDEPTH -- initial size of the parser's stacks. */
4174 #ifndef YYINITDEPTH
4175 # define YYINITDEPTH 200
4176 #endif
4177
4178 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
4179 if the built-in stack extension method is used).
4180
4181 Do not make this value too large; the results are undefined if
4182 SIZE_MAX < YYMAXDEPTH * sizeof (GLRStackItem)
4183 evaluated with infinite-precision integer arithmetic. */
4184
4185 #ifndef YYMAXDEPTH
4186 # define YYMAXDEPTH 10000
4187 #endif
4188
4189 /* Minimum number of free items on the stack allowed after an
4190 allocation. This is to allow allocation and initialization
4191 to be completed by functions that call yyexpandGLRStack before the
4192 stack is expanded, thus insuring that all necessary pointers get
4193 properly redirected to new data. */
4194 #define YYHEADROOM 2
4195
4196 #ifndef YYSTACKEXPANDABLE
4197 # define YYSTACKEXPANDABLE 1
4198 #endif
4199
4200 #if YYSTACKEXPANDABLE
4201 # define YY_RESERVE_GLRSTACK(Yystack) \
4202 do { \
4203 if (Yystack->yyspaceLeft < YYHEADROOM) \
4204 yyexpandGLRStack (Yystack); \
4205 } while (0)
4206 #else
4207 # define YY_RESERVE_GLRSTACK(Yystack) \
4208 do { \
4209 if (Yystack->yyspaceLeft < YYHEADROOM) \
4210 yyMemoryExhausted (Yystack); \
4211 } while (0)
4212 #endif
4213
4214
4215 #if YYERROR_VERBOSE
4216
4217 # ifndef yystpcpy
4218 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
4219 # define yystpcpy stpcpy
4220 # else
4221 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
4222 YYDEST. */
4223 static char *
4224 yystpcpy (char *yydest, const char *yysrc)
4225 {
4226 char *yyd = yydest;
4227 const char *yys = yysrc;
4228
4229 while ((*yyd++ = *yys++) != '\0')
4230 continue;
4231
4232 return yyd - 1;
4233 }
4234 # endif
4235 # endif
4236
4237 # ifndef yytnamerr
4238 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
4239 quotes and backslashes, so that it's suitable for yyerror. The
4240 heuristic is that double-quoting is unnecessary unless the string
4241 contains an apostrophe, a comma, or backslash (other than
4242 backslash-backslash). YYSTR is taken from yytname. If YYRES is
4243 null, do not copy; instead, return the length of what the result
4244 would have been. */
4245 static size_t
4246 yytnamerr (char *yyres, const char *yystr)
4247 {
4248 if (*yystr == '"')
4249 {
4250 size_t yyn = 0;
4251 char const *yyp = yystr;
4252
4253 for (;;)
4254 switch (*++yyp)
4255 {
4256 case '\'':
4257 case ',':
4258 goto do_not_strip_quotes;
4259
4260 case '\\':
4261 if (*++yyp != '\\')
4262 goto do_not_strip_quotes;
4263 /* Fall through. */
4264 default:
4265 if (yyres)
4266 yyres[yyn] = *yyp;
4267 yyn++;
4268 break;
4269
4270 case '"':
4271 if (yyres)
4272 yyres[yyn] = '\0';
4273 return yyn;
4274 }
4275 do_not_strip_quotes: ;
4276 }
4277
4278 if (! yyres)
4279 return strlen (yystr);
4280
4281 return (size_t) (yystpcpy (yyres, yystr) - yyres);
4282 }
4283 # endif
4284
4285 #endif /* !YYERROR_VERBOSE */
4286
4287 /** State numbers, as in LALR(1) machine */
4288 typedef int yyStateNum;
4289
4290 /** Rule numbers, as in LALR(1) machine */
4291 typedef int yyRuleNum;
4292
4293 /** Grammar symbol */
4294 typedef int yySymbol;
4295
4296 /** Item references, as in LALR(1) machine */
4297 typedef short yyItemNum;
4298
4299 typedef struct yyGLRState yyGLRState;
4300 typedef struct yyGLRStateSet yyGLRStateSet;
4301 typedef struct yySemanticOption yySemanticOption;
4302 typedef union yyGLRStackItem yyGLRStackItem;
4303 typedef struct yyGLRStack yyGLRStack;
4304
4305 struct yyGLRState {
4306 /** Type tag: always true. */
4307 yybool yyisState;
4308 /** Type tag for yysemantics. If true, yysval applies, otherwise
4309 * yyfirstVal applies. */
4310 yybool yyresolved;
4311 /** Number of corresponding LALR(1) machine state. */
4312 yyStateNum yylrState;
4313 /** Preceding state in this stack */
4314 yyGLRState* yypred;
4315 /** Source position of the last token produced by my symbol */
4316 size_t yyposn;
4317 union {
4318 /** First in a chain of alternative reductions producing the
4319 * non-terminal corresponding to this state, threaded through
4320 * yynext. */
4321 yySemanticOption* yyfirstVal;
4322 /** Semantic value for this state. */
4323 YYSTYPE yysval;
4324 } yysemantics;
4325 };
4326
4327 struct yyGLRStateSet {
4328 yyGLRState** yystates;
4329 /** During nondeterministic operation, yylookaheadNeeds tracks which
4330 * stacks have actually needed the current lookahead. During deterministic
4331 * operation, yylookaheadNeeds[0] is not maintained since it would merely
4332 * duplicate yychar != YYEMPTY. */
4333 yybool* yylookaheadNeeds;
4334 size_t yysize, yycapacity;
4335 };
4336
4337 struct yySemanticOption {
4338 /** Type tag: always false. */
4339 yybool yyisState;
4340 /** Rule number for this reduction */
4341 yyRuleNum yyrule;
4342 /** The last RHS state in the list of states to be reduced. */
4343 yyGLRState* yystate;
4344 /** The lookahead for this reduction. */
4345 int yyrawchar;
4346 YYSTYPE yyval;
4347 /** Next sibling in chain of options. To facilitate merging,
4348 * options are chained in decreasing order by address. */
4349 yySemanticOption* yynext;
4350 };
4351
4352 /** Type of the items in the GLR stack. The yyisState field
4353 * indicates which item of the union is valid. */
4354 union yyGLRStackItem {
4355 yyGLRState yystate;
4356 yySemanticOption yyoption;
4357 };
4358
4359 struct yyGLRStack {
4360 int yyerrState;
4361
4362
4363 int yyerrcnt;
4364 int yyrawchar;
4365 YYSTYPE yyval;
4366
4367 YYJMP_BUF yyexception_buffer;
4368 yyGLRStackItem* yyitems;
4369 yyGLRStackItem* yynextFree;
4370 size_t yyspaceLeft;
4371 yyGLRState* yysplitPoint;
4372 yyGLRState* yylastDeleted;
4373 yyGLRStateSet yytops;
4374 };
4375
4376 #if YYSTACKEXPANDABLE
4377 static void yyexpandGLRStack (yyGLRStack* yystackp);
4378 #endif
4379
4380 static _Noreturn void
4381 yyFail (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char* yymsg)
4382 {
4383 if (yymsg != YY_NULLPTR)
4384 yyerror (P, tokens, index, yymsg);
4385 YYLONGJMP (yystackp->yyexception_buffer, 1);
4386 }
4387
4388 static _Noreturn void
4389 yyMemoryExhausted (yyGLRStack* yystackp)
4390 {
4391 YYLONGJMP (yystackp->yyexception_buffer, 2);
4392 }
4393
4394 #if YYDEBUG || YYERROR_VERBOSE
4395 /** A printable representation of TOKEN. */
4396 static inline const char*
4397 yytokenName (yySymbol yytoken)
4398 {
4399 if (yytoken == YYEMPTY)
4400 return "";
4401
4402 return yytname[yytoken];
4403 }
4404 #endif
4405
4406 /** Fill in YYVSP[YYLOW1 .. YYLOW0-1] from the chain of states starting
4407 * at YYVSP[YYLOW0].yystate.yypred. Leaves YYVSP[YYLOW1].yystate.yypred
4408 * containing the pointer to the next state in the chain. */
4409 static void yyfillin (yyGLRStackItem *, int, int) YY_ATTRIBUTE_UNUSED;
4410 static void
4411 yyfillin (yyGLRStackItem *yyvsp, int yylow0, int yylow1)
4412 {
4413 int i;
4414 yyGLRState *s = yyvsp[yylow0].yystate.yypred;
4415 for (i = yylow0-1; i >= yylow1; i -= 1)
4416 {
4417 #if YYDEBUG
4418 yyvsp[i].yystate.yylrState = s->yylrState;
4419 #endif
4420 yyvsp[i].yystate.yyresolved = s->yyresolved;
4421 if (s->yyresolved)
4422 yyvsp[i].yystate.yysemantics.yysval = s->yysemantics.yysval;
4423 else
4424 /* The effect of using yysval or yyloc (in an immediate rule) is
4425 * undefined. */
4426 yyvsp[i].yystate.yysemantics.yyfirstVal = YY_NULLPTR;
4427 s = yyvsp[i].yystate.yypred = s->yypred;
4428 }
4429 }
4430
4431 /* Do nothing if YYNORMAL or if *YYLOW <= YYLOW1. Otherwise, fill in
4432 * YYVSP[YYLOW1 .. *YYLOW-1] as in yyfillin and set *YYLOW = YYLOW1.
4433 * For convenience, always return YYLOW1. */
4434 static inline int yyfill (yyGLRStackItem *, int *, int, yybool)
4435 YY_ATTRIBUTE_UNUSED;
4436 static inline int
4437 yyfill (yyGLRStackItem *yyvsp, int *yylow, int yylow1, yybool yynormal)
4438 {
4439 if (!yynormal && yylow1 < *yylow)
4440 {
4441 yyfillin (yyvsp, *yylow, yylow1);
4442 *yylow = yylow1;
4443 }
4444 return yylow1;
4445 }
4446
4447 /** Perform user action for rule number YYN, with RHS length YYRHSLEN,
4448 * and top stack item YYVSP. YYLVALP points to place to put semantic
4449 * value ($$), and yylocp points to place for location information
4450 * (@$). Returns yyok for normal return, yyaccept for YYACCEPT,
4451 * yyerr for YYERROR, yyabort for YYABORT. */
4452 static YYRESULTTAG
4453 yyuserAction (yyRuleNum yyn, int yyrhslen, yyGLRStackItem* yyvsp,
4454 yyGLRStack* yystackp,
4455 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
4456 {
4457 yybool yynormal YY_ATTRIBUTE_UNUSED = (yybool) (yystackp->yysplitPoint == YY_NULLPTR);
4458 int yylow;
4459 YYUSE (yyvalp);
4460 YYUSE (P);
4461 YYUSE (tokens);
4462 YYUSE (index);
4463 YYUSE (yyrhslen);
4464 # undef yyerrok
4465 # define yyerrok (yystackp->yyerrState = 0)
4466 # undef YYACCEPT
4467 # define YYACCEPT return yyaccept
4468 # undef YYABORT
4469 # define YYABORT return yyabort
4470 # undef YYERROR
4471 # define YYERROR return yyerrok, yyerr
4472 # undef YYRECOVERING
4473 # define YYRECOVERING() (yystackp->yyerrState != 0)
4474 # undef yyclearin
4475 # define yyclearin (yychar = YYEMPTY)
4476 # undef YYFILL
4477 # define YYFILL(N) yyfill (yyvsp, &yylow, (N), yynormal)
4478 # undef YYBACKUP
4479 # define YYBACKUP(Token, Value) \
4480 return yyerror (P, tokens, index, YY_("syntax error: cannot back up")), \
4481 yyerrok, yyerr
4482
4483 yylow = 1;
4484 if (yyrhslen == 0)
4485 *yyvalp = yyval_default;
4486 else
4487 *yyvalp = yyvsp[YYFILL (1-yyrhslen)].yystate.yysemantics.yysval;
4488 switch (yyn)
4489 {
4490 case 287:
4491 #line 431 "src/parser_proc_grammar.y" /* glr.c:821 */
4492 {
4493 if ((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4494 psi_cpp_exp_exec((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), P->preproc, PSI_DATA(P));
4495 psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4496 }
4497 }
4498 #line 4499 "src/parser_proc.c" /* glr.c:821 */
4499 break;
4500
4501 case 288:
4502 #line 437 "src/parser_proc_grammar.y" /* glr.c:821 */
4503 {
4504 char *libname = strdup((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text->val);
4505 P->file.libnames = psi_plist_add(P->file.libnames, &libname);
4506 }
4507 #line 4508 "src/parser_proc.c" /* glr.c:821 */
4508 break;
4509
4510 case 289:
4511 #line 441 "src/parser_proc_grammar.y" /* glr.c:821 */
4512 {
4513 psi_parser_proc_add_const(P, (*(struct psi_const **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4514 }
4515 #line 4516 "src/parser_proc.c" /* glr.c:821 */
4516 break;
4517
4518 case 290:
4519 #line 444 "src/parser_proc_grammar.y" /* glr.c:821 */
4520 {
4521 psi_parser_proc_add_decl(P, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4522 }
4523 #line 4524 "src/parser_proc.c" /* glr.c:821 */
4524 break;
4525
4526 case 291:
4527 #line 447 "src/parser_proc_grammar.y" /* glr.c:821 */
4528 {
4529 psi_parser_proc_add_decl_extvars(P, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4530 }
4531 #line 4532 "src/parser_proc.c" /* glr.c:821 */
4532 break;
4533
4534 case 292:
4535 #line 450 "src/parser_proc_grammar.y" /* glr.c:821 */
4536 {
4537 if (P->flags & PSI_DEBUG) {
4538 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);
4539 }
4540 psi_decl_free(&(*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4541 }
4542 #line 4543 "src/parser_proc.c" /* glr.c:821 */
4543 break;
4544
4545 case 293:
4546 #line 456 "src/parser_proc_grammar.y" /* glr.c:821 */
4547 {
4548 psi_parser_proc_add_typedef(P, (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4549 }
4550 #line 4551 "src/parser_proc.c" /* glr.c:821 */
4551 break;
4552
4553 case 294:
4554 #line 459 "src/parser_proc_grammar.y" /* glr.c:821 */
4555 {
4556 psi_parser_proc_add_struct(P, (*(struct psi_decl_struct **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4557 }
4558 #line 4559 "src/parser_proc.c" /* glr.c:821 */
4559 break;
4560
4561 case 295:
4562 #line 462 "src/parser_proc_grammar.y" /* glr.c:821 */
4563 {
4564 psi_parser_proc_add_union(P, (*(struct psi_decl_union **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4565 }
4566 #line 4567 "src/parser_proc.c" /* glr.c:821 */
4567 break;
4568
4569 case 296:
4570 #line 465 "src/parser_proc_grammar.y" /* glr.c:821 */
4571 {
4572 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4573 }
4574 #line 4575 "src/parser_proc.c" /* glr.c:821 */
4575 break;
4576
4577 case 297:
4578 #line 468 "src/parser_proc_grammar.y" /* glr.c:821 */
4579 {
4580 psi_parser_proc_add_impl(P, (*(struct psi_impl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4581 }
4582 #line 4583 "src/parser_proc.c" /* glr.c:821 */
4583 break;
4584
4585 case 298:
4586 #line 474 "src/parser_proc_grammar.y" /* glr.c:821 */
4587 {
4588 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4589 }
4590 #line 4591 "src/parser_proc.c" /* glr.c:821 */
4591 break;
4592
4593 case 299:
4594 #line 480 "src/parser_proc_grammar.y" /* glr.c:821 */
4595 {
4596 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
4597 }
4598 #line 4599 "src/parser_proc.c" /* glr.c:821 */
4599 break;
4600
4601 case 300:
4602 #line 483 "src/parser_proc_grammar.y" /* glr.c:821 */
4603 {
4604 (*(struct psi_cpp_exp **)(&(*yyvalp))) = (*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4605 }
4606 #line 4607 "src/parser_proc.c" /* glr.c:821 */
4607 break;
4608
4609 case 301:
4610 #line 489 "src/parser_proc_grammar.y" /* glr.c:821 */
4611 {
4612 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4613 struct psi_token *msg = NULL;
4614
4615 if (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0, &msg)) {
4616 size_t index = 1;
4617 struct psi_token *next;
4618
4619 msg = psi_token_copy(msg);
4620 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), index++, &next)) {
4621 struct psi_token *old = msg;
4622 msg = psi_token_cat(" ", 2, msg, next);
4623 psi_token_free(&old);
4624 }
4625 }
4626 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4627
4628 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, msg);
4629 } else {
4630 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, NULL);
4631 }
4632 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4633 }
4634 #line 4635 "src/parser_proc.c" /* glr.c:821 */
4635 break;
4636
4637 case 302:
4638 #line 512 "src/parser_proc_grammar.y" /* glr.c:821 */
4639 {
4640 (*(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))));
4641 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4642 }
4643 #line 4644 "src/parser_proc.c" /* glr.c:821 */
4644 break;
4645
4646 case 303:
4647 #line 516 "src/parser_proc_grammar.y" /* glr.c:821 */
4648 {
4649 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL);
4650 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4651 }
4652 #line 4653 "src/parser_proc.c" /* glr.c:821 */
4653 break;
4654
4655 case 304:
4656 #line 520 "src/parser_proc_grammar.y" /* glr.c:821 */
4657 {
4658 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4659 (*(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))));
4660 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4661 }
4662 #line 4663 "src/parser_proc.c" /* glr.c:821 */
4663 break;
4664
4665 case 305:
4666 #line 525 "src/parser_proc_grammar.y" /* glr.c:821 */
4667 {
4668 (*(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)));
4669 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4670 }
4671 #line 4672 "src/parser_proc.c" /* glr.c:821 */
4672 break;
4673
4674 case 306:
4675 #line 529 "src/parser_proc_grammar.y" /* glr.c:821 */
4676 {
4677 (*(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)));
4678 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4679 }
4680 #line 4681 "src/parser_proc.c" /* glr.c:821 */
4681 break;
4682
4683 case 307:
4684 #line 533 "src/parser_proc_grammar.y" /* glr.c:821 */
4685 {
4686 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL);
4687 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4688 }
4689 #line 4690 "src/parser_proc.c" /* glr.c:821 */
4690 break;
4691
4692 case 308:
4693 #line 537 "src/parser_proc_grammar.y" /* glr.c:821 */
4694 {
4695 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4696 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
4697 }
4698 #line 4699 "src/parser_proc.c" /* glr.c:821 */
4699 break;
4700
4701 case 325:
4702 #line 581 "src/parser_proc_grammar.y" /* glr.c:821 */
4703 {
4704 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4705 (*(struct psi_cpp_macro_decl **)(&(*yyvalp))) = psi_cpp_macro_decl_init(NULL, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), NULL);
4706 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4707 }
4708 #line 4709 "src/parser_proc.c" /* glr.c:821 */
4709 break;
4710
4711 case 326:
4712 #line 586 "src/parser_proc_grammar.y" /* glr.c:821 */
4713 {
4714 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4715 (*(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);
4716 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4717 }
4718 #line 4719 "src/parser_proc.c" /* glr.c:821 */
4719 break;
4720
4721 case 327:
4722 #line 591 "src/parser_proc_grammar.y" /* glr.c:821 */
4723 {
4724 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4725 (*(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)));
4726 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4727 }
4728 #line 4729 "src/parser_proc.c" /* glr.c:821 */
4729 break;
4730
4731 case 328:
4732 #line 596 "src/parser_proc_grammar.y" /* glr.c:821 */
4733 {
4734 struct psi_plist *list = psi_plist_init((psi_plist_dtor) psi_token_free);
4735 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4736 (*(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);
4737 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4738 }
4739 #line 4740 "src/parser_proc.c" /* glr.c:821 */
4740 break;
4741
4742 case 329:
4743 #line 605 "src/parser_proc_grammar.y" /* glr.c:821 */
4744 {
4745 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL);
4746 }
4747 #line 4748 "src/parser_proc.c" /* glr.c:821 */
4748 break;
4749
4750 case 330:
4751 #line 608 "src/parser_proc_grammar.y" /* glr.c:821 */
4752 {
4753 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL); /* FIXME */
4754 }
4755 #line 4756 "src/parser_proc.c" /* glr.c:821 */
4756 break;
4757
4758 case 332:
4759 #line 612 "src/parser_proc_grammar.y" /* glr.c:821 */
4760 {
4761 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4762 }
4763 #line 4764 "src/parser_proc.c" /* glr.c:821 */
4764 break;
4765
4766 case 333:
4767 #line 618 "src/parser_proc_grammar.y" /* glr.c:821 */
4768 {
4769 (*(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)));
4770 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4771 (*(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)));
4772 }
4773 #line 4774 "src/parser_proc.c" /* glr.c:821 */
4774 break;
4775
4776 case 334:
4777 #line 623 "src/parser_proc_grammar.y" /* glr.c:821 */
4778 {
4779 (*(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)));
4780 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4781 (*(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)));
4782 }
4783 #line 4784 "src/parser_proc.c" /* glr.c:821 */
4784 break;
4785
4786 case 335:
4787 #line 631 "src/parser_proc_grammar.y" /* glr.c:821 */
4788 {
4789 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4790 }
4791 #line 4792 "src/parser_proc.c" /* glr.c:821 */
4792 break;
4793
4794 case 337:
4795 #line 638 "src/parser_proc_grammar.y" /* glr.c:821 */
4796 {
4797 (*(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)));
4798 (*(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)));
4799 }
4800 #line 4801 "src/parser_proc.c" /* glr.c:821 */
4801 break;
4802
4803 case 338:
4804 #line 642 "src/parser_proc_grammar.y" /* glr.c:821 */
4805 {
4806 (*(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)));
4807 (*(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)));
4808 }
4809 #line 4810 "src/parser_proc.c" /* glr.c:821 */
4810 break;
4811
4812 case 339:
4813 #line 649 "src/parser_proc_grammar.y" /* glr.c:821 */
4814 {
4815 (*(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)));
4816 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4817 }
4818 #line 4819 "src/parser_proc.c" /* glr.c:821 */
4819 break;
4820
4821 case 340:
4822 #line 653 "src/parser_proc_grammar.y" /* glr.c:821 */
4823 {
4824 (*(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)));
4825 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4826 }
4827 #line 4828 "src/parser_proc.c" /* glr.c:821 */
4828 break;
4829
4830 case 341:
4831 #line 657 "src/parser_proc_grammar.y" /* glr.c:821 */
4832 {
4833 (*(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)));
4834 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4835 }
4836 #line 4837 "src/parser_proc.c" /* glr.c:821 */
4837 break;
4838
4839 case 342:
4840 #line 661 "src/parser_proc_grammar.y" /* glr.c:821 */
4841 {
4842 (*(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)));
4843 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4844 }
4845 #line 4846 "src/parser_proc.c" /* glr.c:821 */
4846 break;
4847
4848 case 343:
4849 #line 666 "src/parser_proc_grammar.y" /* glr.c:821 */
4850 {
4851 {
4852 uint8_t exists;
4853
4854 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4855 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4856 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_DEFINED, &exists, 0));
4857 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4858 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4859 }
4860 }
4861 #line 4862 "src/parser_proc.c" /* glr.c:821 */
4862 break;
4863
4864 case 344:
4865 #line 677 "src/parser_proc_grammar.y" /* glr.c:821 */
4866 {
4867 {
4868 uint8_t exists;
4869
4870 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4871 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4872 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_DEFINED, &exists, 0));
4873 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4874 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4875 }
4876 }
4877 #line 4878 "src/parser_proc.c" /* glr.c:821 */
4878 break;
4879
4880 case 345:
4881 #line 688 "src/parser_proc_grammar.y" /* glr.c:821 */
4882 {
4883 (*(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));
4884 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4885 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4886 }
4887 #line 4888 "src/parser_proc.c" /* glr.c:821 */
4888 break;
4889
4890 case 346:
4891 #line 693 "src/parser_proc_grammar.y" /* glr.c:821 */
4892 {
4893 (*(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));
4894 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4895 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4896 }
4897 #line 4898 "src/parser_proc.c" /* glr.c:821 */
4898 break;
4899
4900 case 347:
4901 #line 698 "src/parser_proc_grammar.y" /* glr.c:821 */
4902 {
4903 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4904 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4905 }
4906 #line 4907 "src/parser_proc.c" /* glr.c:821 */
4907 break;
4908
4909 case 348:
4910 #line 702 "src/parser_proc_grammar.y" /* glr.c:821 */
4911 {
4912 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4913 (*(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));
4914 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4915 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4916 }
4917 #line 4918 "src/parser_proc.c" /* glr.c:821 */
4918 break;
4919
4920 case 349:
4921 #line 708 "src/parser_proc_grammar.y" /* glr.c:821 */
4922 {
4923 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4924 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_FUNCTION,
4925 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));
4926 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4927 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4928 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->data.call->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4929 }
4930 #line 4931 "src/parser_proc.c" /* glr.c:821 */
4931 break;
4932
4933 case 350:
4934 #line 719 "src/parser_proc_grammar.y" /* glr.c:821 */
4935 {
4936 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4937 }
4938 #line 4939 "src/parser_proc.c" /* glr.c:821 */
4939 break;
4940
4941 case 352:
4942 #line 726 "src/parser_proc_grammar.y" /* glr.c:821 */
4943 {
4944 /* TODO: clang include test macros */
4945 uint8_t no = 1;
4946 struct psi_num_exp *exp = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8, &no, 0));
4947 exp->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4948 exp->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4949 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_num_exp_free), &exp);
4950 }
4951 #line 4952 "src/parser_proc.c" /* glr.c:821 */
4952 break;
4953
4954 case 353:
4955 #line 734 "src/parser_proc_grammar.y" /* glr.c:821 */
4956 {
4957 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_num_exp_free),
4958 &(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4959 }
4960 #line 4961 "src/parser_proc.c" /* glr.c:821 */
4961 break;
4962
4963 case 354:
4964 #line 738 "src/parser_proc_grammar.y" /* glr.c:821 */
4965 {
4966 (*(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)));
4967 }
4968 #line 4969 "src/parser_proc.c" /* glr.c:821 */
4969 break;
4970
4971 case 355:
4972 #line 744 "src/parser_proc_grammar.y" /* glr.c:821 */
4973 {
4974 (*(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)));
4975 (*(struct psi_const **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4976 }
4977 #line 4978 "src/parser_proc.c" /* glr.c:821 */
4978 break;
4979
4980 case 356:
4981 #line 748 "src/parser_proc_grammar.y" /* glr.c:821 */
4982 {
4983 (*(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)));
4984 (*(struct psi_const **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4985 }
4986 #line 4987 "src/parser_proc.c" /* glr.c:821 */
4987 break;
4988
4989 case 357:
4990 #line 755 "src/parser_proc_grammar.y" /* glr.c:821 */
4991 {
4992 (*(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);
4993 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4994 }
4995 #line 4996 "src/parser_proc.c" /* glr.c:821 */
4996 break;
4997
4998 case 358:
4999 #line 759 "src/parser_proc_grammar.y" /* glr.c:821 */
5000 {
5001 (*(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)));
5002 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
5003 }
5004 #line 5005 "src/parser_proc.c" /* glr.c:821 */
5005 break;
5006
5007 case 359:
5008 #line 763 "src/parser_proc_grammar.y" /* glr.c:821 */
5009 {
5010 (*(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);
5011 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5012 }
5013 #line 5014 "src/parser_proc.c" /* glr.c:821 */
5014 break;
5015
5016 case 363:
5017 #line 776 "src/parser_proc_grammar.y" /* glr.c:821 */
5018 {
5019 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5020 }
5021 #line 5022 "src/parser_proc.c" /* glr.c:821 */
5022 break;
5023
5024 case 364:
5025 #line 790 "src/parser_proc_grammar.y" /* glr.c:821 */
5026 {
5027 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5028 }
5029 #line 5030 "src/parser_proc.c" /* glr.c:821 */
5030 break;
5031
5032 case 365:
5033 #line 796 "src/parser_proc_grammar.y" /* glr.c:821 */
5034 {
5035 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5036 }
5037 #line 5038 "src/parser_proc.c" /* glr.c:821 */
5038 break;
5039
5040 case 366:
5041 #line 799 "src/parser_proc_grammar.y" /* glr.c:821 */
5042 {
5043 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5044 }
5045 #line 5046 "src/parser_proc.c" /* glr.c:821 */
5046 break;
5047
5048 case 367:
5049 #line 805 "src/parser_proc_grammar.y" /* glr.c:821 */
5050 {
5051 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5052 }
5053 #line 5054 "src/parser_proc.c" /* glr.c:821 */
5054 break;
5055
5056 case 368:
5057 #line 808 "src/parser_proc_grammar.y" /* glr.c:821 */
5058 {
5059 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5060 }
5061 #line 5062 "src/parser_proc.c" /* glr.c:821 */
5062 break;
5063
5064 case 370:
5065 #line 815 "src/parser_proc_grammar.y" /* glr.c:821 */
5066 {
5067 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5068 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
5069 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
5070 );
5071 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
5072 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5073 }
5074 #line 5075 "src/parser_proc.c" /* glr.c:821 */
5075 break;
5076
5077 case 371:
5078 #line 823 "src/parser_proc_grammar.y" /* glr.c:821 */
5079 {
5080 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5081 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5082 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->name),
5083 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0, 0)
5084 );
5085 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5086 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->token);
5087 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5088 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5089 }
5090 #line 5091 "src/parser_proc.c" /* glr.c:821 */
5091 break;
5092
5093 case 372:
5094 #line 834 "src/parser_proc_grammar.y" /* glr.c:821 */
5095 {
5096 (*(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)));
5097 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
5098 (*(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)));
5099 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5100 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
5101 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
5102 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
5103 }
5104 #line 5105 "src/parser_proc.c" /* glr.c:821 */
5105 break;
5106
5107 case 373:
5108 #line 843 "src/parser_proc_grammar.y" /* glr.c:821 */
5109 {
5110 (*(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)));
5111 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
5112 (*(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)));
5113 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5114 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
5115 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
5116 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
5117 }
5118 #line 5119 "src/parser_proc.c" /* glr.c:821 */
5119 break;
5120
5121 case 375:
5122 #line 856 "src/parser_proc_grammar.y" /* glr.c:821 */
5123 {
5124 (*(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));
5125 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
5126 }
5127 #line 5128 "src/parser_proc.c" /* glr.c:821 */
5128 break;
5129
5130 case 376:
5131 #line 860 "src/parser_proc_grammar.y" /* glr.c:821 */
5132 {
5133 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5134 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->name),
5135 psi_decl_var_init(NULL, 0, 0)
5136 );
5137 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
5138 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
5139 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5140 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5141 }
5142 #line 5143 "src/parser_proc.c" /* glr.c:821 */
5143 break;
5144
5145 case 377:
5146 #line 870 "src/parser_proc_grammar.y" /* glr.c:821 */
5147 {
5148 (*(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));
5149 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5150 (*(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)));
5151 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5152 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
5153 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
5154 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
5155 }
5156 #line 5157 "src/parser_proc.c" /* glr.c:821 */
5157 break;
5158
5159 case 378:
5160 #line 879 "src/parser_proc_grammar.y" /* glr.c:821 */
5161 {
5162 (*(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));
5163 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5164 (*(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)));
5165 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5166 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
5167 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
5168 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
5169 }
5170 #line 5171 "src/parser_proc.c" /* glr.c:821 */
5171 break;
5172
5173 case 380:
5174 #line 892 "src/parser_proc_grammar.y" /* glr.c:821 */
5175 {
5176 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5177 }
5178 #line 5179 "src/parser_proc.c" /* glr.c:821 */
5179 break;
5180
5181 case 381:
5182 #line 895 "src/parser_proc_grammar.y" /* glr.c:821 */
5183 {
5184 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5185 }
5186 #line 5187 "src/parser_proc.c" /* glr.c:821 */
5187 break;
5188
5189 case 384:
5190 #line 906 "src/parser_proc_grammar.y" /* glr.c:821 */
5191 {
5192 (*(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);
5193 (*(struct psi_decl_type **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5194 }
5195 #line 5196 "src/parser_proc.c" /* glr.c:821 */
5196 break;
5197
5198 case 386:
5199 #line 914 "src/parser_proc_grammar.y" /* glr.c:821 */
5200 {
5201 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5202 (*(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);
5203 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5204 }
5205 #line 5206 "src/parser_proc.c" /* glr.c:821 */
5206 break;
5207
5208 case 387:
5209 #line 919 "src/parser_proc_grammar.y" /* glr.c:821 */
5210 {
5211 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5212 (*(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);
5213 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5214 }
5215 #line 5216 "src/parser_proc.c" /* glr.c:821 */
5216 break;
5217
5218 case 388:
5219 #line 924 "src/parser_proc_grammar.y" /* glr.c:821 */
5220 {
5221 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5222 (*(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);
5223 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5224 }
5225 #line 5226 "src/parser_proc.c" /* glr.c:821 */
5226 break;
5227
5228 case 391:
5229 #line 934 "src/parser_proc_grammar.y" /* glr.c:821 */
5230 {
5231 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5232 }
5233 #line 5234 "src/parser_proc.c" /* glr.c:821 */
5234 break;
5235
5236 case 392:
5237 #line 937 "src/parser_proc_grammar.y" /* glr.c:821 */
5238 {
5239 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5240 }
5241 #line 5242 "src/parser_proc.c" /* glr.c:821 */
5242 break;
5243
5244 case 393:
5245 #line 943 "src/parser_proc_grammar.y" /* glr.c:821 */
5246 {
5247 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5248 }
5249 #line 5250 "src/parser_proc.c" /* glr.c:821 */
5250 break;
5251
5252 case 394:
5253 #line 946 "src/parser_proc_grammar.y" /* glr.c:821 */
5254 {
5255 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5256 }
5257 #line 5258 "src/parser_proc.c" /* glr.c:821 */
5258 break;
5259
5260 case 395:
5261 #line 949 "src/parser_proc_grammar.y" /* glr.c:821 */
5262 {
5263 (*(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)));
5264 }
5265 #line 5266 "src/parser_proc.c" /* glr.c:821 */
5266 break;
5267
5268 case 398:
5269 #line 960 "src/parser_proc_grammar.y" /* glr.c:821 */
5270 {
5271 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5272 }
5273 #line 5274 "src/parser_proc.c" /* glr.c:821 */
5274 break;
5275
5276 case 399:
5277 #line 963 "src/parser_proc_grammar.y" /* glr.c:821 */
5278 {
5279 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5280 }
5281 #line 5282 "src/parser_proc.c" /* glr.c:821 */
5282 break;
5283
5284 case 400:
5285 #line 966 "src/parser_proc_grammar.y" /* glr.c:821 */
5286 {
5287 (*(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)));
5288 }
5289 #line 5290 "src/parser_proc.c" /* glr.c:821 */
5290 break;
5291
5292 case 401:
5293 #line 972 "src/parser_proc_grammar.y" /* glr.c:821 */
5294 {
5295 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5296 }
5297 #line 5298 "src/parser_proc.c" /* glr.c:821 */
5298 break;
5299
5300 case 402:
5301 #line 975 "src/parser_proc_grammar.y" /* glr.c:821 */
5302 {
5303 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5304 }
5305 #line 5306 "src/parser_proc.c" /* glr.c:821 */
5306 break;
5307
5308 case 403:
5309 #line 978 "src/parser_proc_grammar.y" /* glr.c:821 */
5310 {
5311 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5312 (*(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)));
5313 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5314 } else {
5315 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5316 }
5317 }
5318 #line 5319 "src/parser_proc.c" /* glr.c:821 */
5319 break;
5320
5321 case 404:
5322 #line 986 "src/parser_proc_grammar.y" /* glr.c:821 */
5323 {
5324 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5325 (*(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)));
5326 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5327 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5328 } else {
5329 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5330 }
5331 }
5332 #line 5333 "src/parser_proc.c" /* glr.c:821 */
5333 break;
5334
5335 case 405:
5336 #line 998 "src/parser_proc_grammar.y" /* glr.c:821 */
5337 {
5338 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5339 }
5340 #line 5341 "src/parser_proc.c" /* glr.c:821 */
5341 break;
5342
5343 case 406:
5344 #line 1001 "src/parser_proc_grammar.y" /* glr.c:821 */
5345 {
5346 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5347 }
5348 #line 5349 "src/parser_proc.c" /* glr.c:821 */
5349 break;
5350
5351 case 407:
5352 #line 1004 "src/parser_proc_grammar.y" /* glr.c:821 */
5353 {
5354 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5355 }
5356 #line 5357 "src/parser_proc.c" /* glr.c:821 */
5357 break;
5358
5359 case 408:
5360 #line 1007 "src/parser_proc_grammar.y" /* glr.c:821 */
5361 {
5362 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5363 (*(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)));
5364 } else {
5365 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5366 }
5367 }
5368 #line 5369 "src/parser_proc.c" /* glr.c:821 */
5369 break;
5370
5371 case 409:
5372 #line 1014 "src/parser_proc_grammar.y" /* glr.c:821 */
5373 {
5374 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5375 }
5376 #line 5377 "src/parser_proc.c" /* glr.c:821 */
5377 break;
5378
5379 case 410:
5380 #line 1017 "src/parser_proc_grammar.y" /* glr.c:821 */
5381 {
5382 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5383 (*(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)));
5384 } else {
5385 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5386 }
5387 }
5388 #line 5389 "src/parser_proc.c" /* glr.c:821 */
5389 break;
5390
5391 case 411:
5392 #line 1027 "src/parser_proc_grammar.y" /* glr.c:821 */
5393 {
5394 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5395 }
5396 #line 5397 "src/parser_proc.c" /* glr.c:821 */
5397 break;
5398
5399 case 413:
5400 #line 1033 "src/parser_proc_grammar.y" /* glr.c:821 */
5401 {
5402 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5403 }
5404 #line 5405 "src/parser_proc.c" /* glr.c:821 */
5405 break;
5406
5407 case 417:
5408 #line 1042 "src/parser_proc_grammar.y" /* glr.c:821 */
5409 {
5410 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5411 }
5412 #line 5413 "src/parser_proc.c" /* glr.c:821 */
5413 break;
5414
5415 case 418:
5416 #line 1045 "src/parser_proc_grammar.y" /* glr.c:821 */
5417 {
5418 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5419 }
5420 #line 5421 "src/parser_proc.c" /* glr.c:821 */
5421 break;
5422
5423 case 419:
5424 #line 1048 "src/parser_proc_grammar.y" /* glr.c:821 */
5425 {
5426 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5427 (*(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)));
5428 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5429 } else {
5430 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5431 }
5432 }
5433 #line 5434 "src/parser_proc.c" /* glr.c:821 */
5434 break;
5435
5436 case 420:
5437 #line 1059 "src/parser_proc_grammar.y" /* glr.c:821 */
5438 {
5439 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5440 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5441 (*(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);
5442 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5443 }
5444 }
5445 #line 5446 "src/parser_proc.c" /* glr.c:821 */
5446 break;
5447
5448 case 421:
5449 #line 1066 "src/parser_proc_grammar.y" /* glr.c:821 */
5450 {
5451 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5452 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5453 (*(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);
5454 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5455 }
5456 }
5457 #line 5458 "src/parser_proc.c" /* glr.c:821 */
5458 break;
5459
5460 case 422:
5461 #line 1076 "src/parser_proc_grammar.y" /* glr.c:821 */
5462 {
5463 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5464 }
5465 #line 5466 "src/parser_proc.c" /* glr.c:821 */
5466 break;
5467
5468 case 423:
5469 #line 1079 "src/parser_proc_grammar.y" /* glr.c:821 */
5470 {
5471 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5472 }
5473 #line 5474 "src/parser_proc.c" /* glr.c:821 */
5474 break;
5475
5476 case 424:
5477 #line 1085 "src/parser_proc_grammar.y" /* glr.c:821 */
5478 {
5479 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5480 }
5481 #line 5482 "src/parser_proc.c" /* glr.c:821 */
5482 break;
5483
5484 case 425:
5485 #line 1088 "src/parser_proc_grammar.y" /* glr.c:821 */
5486 {
5487 (*(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)));
5488 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5489 }
5490 #line 5491 "src/parser_proc.c" /* glr.c:821 */
5491 break;
5492
5493 case 426:
5494 #line 1095 "src/parser_proc_grammar.y" /* glr.c:821 */
5495 {
5496 struct psi_plist *list = psi_plist_init((psi_plist_dtor) psi_decl_extvar_free);
5497
5498 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))) {
5499 size_t i = 0;
5500 struct psi_decl_var *var;
5501
5502 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), i++, &var)) {
5503 if (psi_decl_extvar_is_blacklisted(var->name->val)) {
5504 psi_decl_var_free(&var);
5505 } else {
5506 struct psi_decl_extvar *evar = psi_decl_extvar_init(
5507 psi_decl_arg_init(psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type), var));
5508 list = psi_plist_add(list, &evar);
5509 }
5510 }
5511 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5512 }
5513
5514 if (psi_decl_extvar_is_blacklisted((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->var->name->val)) {
5515 psi_decl_arg_free(&(*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5516 } else {
5517 struct psi_decl_extvar *evar = psi_decl_extvar_init((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5518
5519 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5520 evar->redir = zend_string_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
5521 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5522 }
5523 list = psi_plist_add(list, &evar);
5524 }
5525
5526 (*(struct psi_plist **)(&(*yyvalp))) = list;
5527 }
5528 #line 5529 "src/parser_proc.c" /* glr.c:821 */
5529 break;
5530
5531 case 427:
5532 #line 1131 "src/parser_proc_grammar.y" /* glr.c:821 */
5533 {
5534 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5535 }
5536 #line 5537 "src/parser_proc.c" /* glr.c:821 */
5537 break;
5538
5539 case 428:
5540 #line 1134 "src/parser_proc_grammar.y" /* glr.c:821 */
5541 {
5542 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5543 }
5544 #line 5545 "src/parser_proc.c" /* glr.c:821 */
5545 break;
5546
5547 case 429:
5548 #line 1140 "src/parser_proc_grammar.y" /* glr.c:821 */
5549 {
5550 (*(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)));
5551 }
5552 #line 5553 "src/parser_proc.c" /* glr.c:821 */
5553 break;
5554
5555 case 430:
5556 #line 1143 "src/parser_proc_grammar.y" /* glr.c:821 */
5557 {
5558 (*(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)));
5559 }
5560 #line 5561 "src/parser_proc.c" /* glr.c:821 */
5561 break;
5562
5563 case 431:
5564 #line 1149 "src/parser_proc_grammar.y" /* glr.c:821 */
5565 {
5566 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5567 }
5568 #line 5569 "src/parser_proc.c" /* glr.c:821 */
5569 break;
5570
5571 case 444:
5572 #line 1179 "src/parser_proc_grammar.y" /* glr.c:821 */
5573 {
5574 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5575 (*(struct psi_decl **)(&(*yyvalp)))->abi = psi_decl_abi_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
5576 }
5577 #line 5578 "src/parser_proc.c" /* glr.c:821 */
5578 break;
5579
5580 case 447:
5581 #line 1191 "src/parser_proc_grammar.y" /* glr.c:821 */
5582 {
5583 (*(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)));
5584 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5585 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5586 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5587 }
5588 }
5589 #line 5590 "src/parser_proc.c" /* glr.c:821 */
5590 break;
5591
5592 case 448:
5593 #line 1198 "src/parser_proc_grammar.y" /* glr.c:821 */
5594 {
5595 (*(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)));
5596 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
5597 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5598 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5599 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5600 }
5601 }
5602 #line 5603 "src/parser_proc.c" /* glr.c:821 */
5603 break;
5604
5605 case 449:
5606 #line 1209 "src/parser_proc_grammar.y" /* glr.c:821 */
5607 {
5608 (*(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)));
5609 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5610 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5611 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5612 }
5613 }
5614 #line 5615 "src/parser_proc.c" /* glr.c:821 */
5615 break;
5616
5617 case 450:
5618 #line 1216 "src/parser_proc_grammar.y" /* glr.c:821 */
5619 {
5620 (*(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)));
5621 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
5622 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5623 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5624 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5625 }
5626 }
5627 #line 5628 "src/parser_proc.c" /* glr.c:821 */
5628 break;
5629
5630 case 451:
5631 #line 1224 "src/parser_proc_grammar.y" /* glr.c:821 */
5632 {
5633 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval));
5634 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5635
5636 struct psi_token *type_token = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval))), 1, "rval");
5637 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));
5638 struct psi_decl *rval_decl = psi_decl_init(rval_func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5639
5640 rval_func->var->token = psi_token_copy(type_token);
5641 rval_func->token = psi_token_copy(type_token);
5642 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5643 rval_func->var->pointer_level += 1;
5644 rval_func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5645 }
5646
5647 struct psi_decl_type *type = psi_decl_type_init(PSI_T_FUNCTION, type_token->text);
5648 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));
5649
5650 type->real.func = rval_decl;
5651 func->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval)));
5652 func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval)));
5653
5654 (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init(func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
5655 }
5656 #line 5657 "src/parser_proc.c" /* glr.c:821 */
5657 break;
5658
5659 case 452:
5660 #line 1248 "src/parser_proc_grammar.y" /* glr.c:821 */
5661 {
5662 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-12)].yystate.yysemantics.yysval));
5663 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval));
5664 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5665
5666 struct psi_token *type_token = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval))), 1, "rval");
5667 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));
5668 struct psi_decl *rval_decl = psi_decl_init(rval_func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5669
5670 rval_func->var->token = psi_token_copy(type_token);
5671 rval_func->token = psi_token_copy(type_token);
5672 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5673 rval_func->var->pointer_level += 1;
5674 rval_func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5675 }
5676
5677 struct psi_decl_type *type = psi_decl_type_init(PSI_T_FUNCTION, type_token->text);
5678 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));
5679
5680 type->real.func = rval_decl;
5681 func->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval)));
5682 func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval)));
5683 type->token = type_token;
5684
5685 (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init(func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
5686 }
5687 #line 5688 "src/parser_proc.c" /* glr.c:821 */
5688 break;
5689
5690 case 453:
5691 #line 1277 "src/parser_proc_grammar.y" /* glr.c:821 */
5692 {
5693 (*(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)));
5694 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5695 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5696 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5697 }
5698 }
5699 #line 5700 "src/parser_proc.c" /* glr.c:821 */
5700 break;
5701
5702 case 454:
5703 #line 1284 "src/parser_proc_grammar.y" /* glr.c:821 */
5704 {
5705 (*(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)));
5706 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
5707 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5708 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5709 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5710 }
5711 }
5712 #line 5713 "src/parser_proc.c" /* glr.c:821 */
5713 break;
5714
5715 case 455:
5716 #line 1295 "src/parser_proc_grammar.y" /* glr.c:821 */
5717 {
5718 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5719 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5720 (*(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));
5721 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5722 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5723 }
5724 #line 5725 "src/parser_proc.c" /* glr.c:821 */
5725 break;
5726
5727 case 456:
5728 #line 1341 "src/parser_proc_grammar.y" /* glr.c:821 */
5729 {
5730 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5731 (*(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));
5732 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5733 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5734 }
5735 #line 5736 "src/parser_proc.c" /* glr.c:821 */
5736 break;
5737
5738 case 458:
5739 #line 1397 "src/parser_proc_grammar.y" /* glr.c:821 */
5740 {
5741 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5742 }
5743 #line 5744 "src/parser_proc.c" /* glr.c:821 */
5744 break;
5745
5746 case 459:
5747 #line 1400 "src/parser_proc_grammar.y" /* glr.c:821 */
5748 {
5749 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5750 }
5751 #line 5752 "src/parser_proc.c" /* glr.c:821 */
5752 break;
5753
5754 case 460:
5755 #line 1403 "src/parser_proc_grammar.y" /* glr.c:821 */
5756 {
5757 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5758 }
5759 #line 5760 "src/parser_proc.c" /* glr.c:821 */
5760 break;
5761
5762 case 461:
5763 #line 1409 "src/parser_proc_grammar.y" /* glr.c:821 */
5764 {
5765 (*(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)));
5766 }
5767 #line 5768 "src/parser_proc.c" /* glr.c:821 */
5768 break;
5769
5770 case 462:
5771 #line 1412 "src/parser_proc_grammar.y" /* glr.c:821 */
5772 {
5773 (*(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)));
5774 }
5775 #line 5776 "src/parser_proc.c" /* glr.c:821 */
5776 break;
5777
5778 case 463:
5779 #line 1418 "src/parser_proc_grammar.y" /* glr.c:821 */
5780 {
5781 char digest[17];
5782 struct psi_token *name;
5783
5784 psi_token_hash((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token, digest);
5785 name = psi_token_append("@", psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token), 2, "funct", digest);
5786
5787 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5788 psi_decl_type_init(PSI_T_FUNCTION, name->text),
5789 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
5790 );
5791 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = name;
5792 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
5793 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5794 }
5795 #line 5796 "src/parser_proc.c" /* glr.c:821 */
5796 break;
5797
5798 case 464:
5799 #line 1433 "src/parser_proc_grammar.y" /* glr.c:821 */
5800 {
5801 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5802 }
5803 #line 5804 "src/parser_proc.c" /* glr.c:821 */
5804 break;
5805
5806 case 465:
5807 #line 1436 "src/parser_proc_grammar.y" /* glr.c:821 */
5808 {
5809 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5810 (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)),
5811 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)))
5812 );
5813 }
5814 #line 5815 "src/parser_proc.c" /* glr.c:821 */
5815 break;
5816
5817 case 466:
5818 #line 1465 "src/parser_proc_grammar.y" /* glr.c:821 */
5819 {
5820 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5821 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
5822 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
5823 );
5824 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
5825 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5826 }
5827 #line 5828 "src/parser_proc.c" /* glr.c:821 */
5828 break;
5829
5830 case 467:
5831 #line 1473 "src/parser_proc_grammar.y" /* glr.c:821 */
5832 {
5833 (*(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)));
5834 }
5835 #line 5836 "src/parser_proc.c" /* glr.c:821 */
5836 break;
5837
5838 case 468:
5839 #line 1501 "src/parser_proc_grammar.y" /* glr.c:821 */
5840 {
5841 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5842 (*(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)));
5843 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5844 }
5845 #line 5846 "src/parser_proc.c" /* glr.c:821 */
5846 break;
5847
5848 case 469:
5849 #line 1506 "src/parser_proc_grammar.y" /* glr.c:821 */
5850 {
5851 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5852 (*(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)));
5853 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5854 }
5855 #line 5856 "src/parser_proc.c" /* glr.c:821 */
5856 break;
5857
5858 case 470:
5859 #line 1514 "src/parser_proc_grammar.y" /* glr.c:821 */
5860 {
5861 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5862 (*(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)));
5863 (*(struct psi_decl_union **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
5864 (*(struct psi_decl_union **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
5865 (*(struct psi_decl_union **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5866 }
5867 #line 5868 "src/parser_proc.c" /* glr.c:821 */
5868 break;
5869
5870 case 471:
5871 #line 1524 "src/parser_proc_grammar.y" /* glr.c:821 */
5872 {
5873 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5874 (*(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)));
5875 (*(struct psi_decl_struct **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
5876 (*(struct psi_decl_struct **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
5877 (*(struct psi_decl_struct **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5878 }
5879 #line 5880 "src/parser_proc.c" /* glr.c:821 */
5880 break;
5881
5882 case 472:
5883 #line 1534 "src/parser_proc_grammar.y" /* glr.c:821 */
5884 {
5885 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5886 }
5887 #line 5888 "src/parser_proc.c" /* glr.c:821 */
5888 break;
5889
5890 case 474:
5891 #line 1541 "src/parser_proc_grammar.y" /* glr.c:821 */
5892 {
5893 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5894 }
5895 #line 5896 "src/parser_proc.c" /* glr.c:821 */
5896 break;
5897
5898 case 475:
5899 #line 1547 "src/parser_proc_grammar.y" /* glr.c:821 */
5900 {
5901 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5902 (*(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)));
5903 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5904 size_t i = 0;
5905 struct psi_decl_arg *arg;
5906
5907 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
5908 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
5909 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
5910 }
5911 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5912 }
5913 }
5914 #line 5915 "src/parser_proc.c" /* glr.c:821 */
5915 break;
5916
5917 case 476:
5918 #line 1561 "src/parser_proc_grammar.y" /* glr.c:821 */
5919 {
5920 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5921 (*(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)));
5922 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5923 size_t i = 0;
5924 struct psi_decl_arg *arg;
5925
5926 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
5927 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
5928 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
5929 }
5930 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5931 }
5932 }
5933 #line 5934 "src/parser_proc.c" /* glr.c:821 */
5934 break;
5935
5936 case 477:
5937 #line 1578 "src/parser_proc_grammar.y" /* glr.c:821 */
5938 {
5939 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5940 }
5941 #line 5942 "src/parser_proc.c" /* glr.c:821 */
5942 break;
5943
5944 case 478:
5945 #line 1581 "src/parser_proc_grammar.y" /* glr.c:821 */
5946 {
5947 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5948 }
5949 #line 5950 "src/parser_proc.c" /* glr.c:821 */
5950 break;
5951
5952 case 479:
5953 #line 1587 "src/parser_proc_grammar.y" /* glr.c:821 */
5954 {
5955 {
5956 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5957 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5958 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &arg);
5959 }
5960 }
5961 #line 5962 "src/parser_proc.c" /* glr.c:821 */
5962 break;
5963
5964 case 480:
5965 #line 1594 "src/parser_proc_grammar.y" /* glr.c:821 */
5966 {
5967 {
5968 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5969 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5970 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), &arg);
5971 }
5972 }
5973 #line 5974 "src/parser_proc.c" /* glr.c:821 */
5974 break;
5975
5976 case 481:
5977 #line 1601 "src/parser_proc_grammar.y" /* glr.c:821 */
5978 {
5979 {
5980 struct psi_decl_var *var = psi_decl_var_init(NULL, 0, 0);
5981 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, var);
5982 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5983 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &arg);
5984 }
5985 }
5986 #line 5987 "src/parser_proc.c" /* glr.c:821 */
5987 break;
5988
5989 case 482:
5990 #line 1609 "src/parser_proc_grammar.y" /* glr.c:821 */
5991 {
5992 {
5993 struct psi_decl_var *var = psi_decl_var_init(NULL, 0, 0);
5994 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, var);
5995 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5996 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &arg);
5997 }
5998 }
5999 #line 6000 "src/parser_proc.c" /* glr.c:821 */
6000 break;
6001
6002 case 483:
6003 #line 1620 "src/parser_proc_grammar.y" /* glr.c:821 */
6004 {
6005 (*(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)));
6006 (*(struct psi_decl_enum **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval));
6007 }
6008 #line 6009 "src/parser_proc.c" /* glr.c:821 */
6009 break;
6010
6011 case 484:
6012 #line 1627 "src/parser_proc_grammar.y" /* glr.c:821 */
6013 {
6014 (*(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)));
6015 }
6016 #line 6017 "src/parser_proc.c" /* glr.c:821 */
6017 break;
6018
6019 case 485:
6020 #line 1630 "src/parser_proc_grammar.y" /* glr.c:821 */
6021 {
6022 (*(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)));
6023 }
6024 #line 6025 "src/parser_proc.c" /* glr.c:821 */
6025 break;
6026
6027 case 486:
6028 #line 1636 "src/parser_proc_grammar.y" /* glr.c:821 */
6029 {
6030 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
6031 (*(struct psi_decl_enum_item **)(&(*yyvalp))) = psi_decl_enum_item_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, NULL);
6032 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6033 }
6034 #line 6035 "src/parser_proc.c" /* glr.c:821 */
6035 break;
6036
6037 case 487:
6038 #line 1641 "src/parser_proc_grammar.y" /* glr.c:821 */
6039 {
6040 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
6041 (*(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)));
6042 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6043 }
6044 #line 6045 "src/parser_proc.c" /* glr.c:821 */
6045 break;
6046
6047 case 488:
6048 #line 1649 "src/parser_proc_grammar.y" /* glr.c:821 */
6049 {
6050 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6051 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
6052 }
6053 #line 6054 "src/parser_proc.c" /* glr.c:821 */
6054 break;
6055
6056 case 489:
6057 #line 1653 "src/parser_proc_grammar.y" /* glr.c:821 */
6058 {
6059 (*(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)));
6060 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->token);
6061 }
6062 #line 6063 "src/parser_proc.c" /* glr.c:821 */
6063 break;
6064
6065 case 490:
6066 #line 1657 "src/parser_proc_grammar.y" /* glr.c:821 */
6067 {
6068 (*(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)));
6069 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6070 }
6071 #line 6072 "src/parser_proc.c" /* glr.c:821 */
6072 break;
6073
6074 case 491:
6075 #line 1661 "src/parser_proc_grammar.y" /* glr.c:821 */
6076 {
6077 (*(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)));
6078 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6079 }
6080 #line 6081 "src/parser_proc.c" /* glr.c:821 */
6081 break;
6082
6083 case 492:
6084 #line 1665 "src/parser_proc_grammar.y" /* glr.c:821 */
6085 {
6086 (*(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)));
6087 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6088 }
6089 #line 6090 "src/parser_proc.c" /* glr.c:821 */
6090 break;
6091
6092 case 493:
6093 #line 1669 "src/parser_proc_grammar.y" /* glr.c:821 */
6094 {
6095 (*(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)));
6096 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
6097 }
6098 #line 6099 "src/parser_proc.c" /* glr.c:821 */
6099 break;
6100
6101 case 494:
6102 #line 1676 "src/parser_proc_grammar.y" /* glr.c:821 */
6103 {
6104 (*(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);
6105 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6106 }
6107 #line 6108 "src/parser_proc.c" /* glr.c:821 */
6108 break;
6109
6110 case 495:
6111 #line 1680 "src/parser_proc_grammar.y" /* glr.c:821 */
6112 {
6113 (*(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);
6114 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6115 }
6116 #line 6117 "src/parser_proc.c" /* glr.c:821 */
6117 break;
6118
6119 case 496:
6120 #line 1684 "src/parser_proc_grammar.y" /* glr.c:821 */
6121 {
6122 (*(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);
6123 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6124 }
6125 #line 6126 "src/parser_proc.c" /* glr.c:821 */
6126 break;
6127
6128 case 497:
6129 #line 1688 "src/parser_proc_grammar.y" /* glr.c:821 */
6130 {
6131 (*(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);
6132 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6133 }
6134 #line 6135 "src/parser_proc.c" /* glr.c:821 */
6135 break;
6136
6137 case 498:
6138 #line 1692 "src/parser_proc_grammar.y" /* glr.c:821 */
6139 {
6140 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_NAME, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0);
6141 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
6142 }
6143 #line 6144 "src/parser_proc.c" /* glr.c:821 */
6144 break;
6145
6146 case 499:
6147 #line 1696 "src/parser_proc_grammar.y" /* glr.c:821 */
6148 {
6149 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6150 }
6151 #line 6152 "src/parser_proc.c" /* glr.c:821 */
6152 break;
6153
6154 case 500:
6155 #line 1702 "src/parser_proc_grammar.y" /* glr.c:821 */
6156 {
6157 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
6158 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
6159 }
6160 #line 6161 "src/parser_proc.c" /* glr.c:821 */
6161 break;
6162
6163 case 501:
6164 #line 1706 "src/parser_proc_grammar.y" /* glr.c:821 */
6165 {
6166 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6167 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6168 }
6169 #line 6170 "src/parser_proc.c" /* glr.c:821 */
6170 break;
6171
6172 case 502:
6173 #line 1713 "src/parser_proc_grammar.y" /* glr.c:821 */
6174 {
6175 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6176 }
6177 #line 6178 "src/parser_proc.c" /* glr.c:821 */
6178 break;
6179
6180 case 503:
6181 #line 1716 "src/parser_proc_grammar.y" /* glr.c:821 */
6182 {
6183 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
6184 int8_t sizeof_void_p = sizeof(void *);
6185 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0);
6186 psi_decl_type_free(&(*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6187 } else {
6188 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_SIZEOF, (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), 0);
6189 }
6190 }
6191 #line 6192 "src/parser_proc.c" /* glr.c:821 */
6192 break;
6193
6194 case 504:
6195 #line 1728 "src/parser_proc_grammar.y" /* glr.c:821 */
6196 {
6197 int8_t sizeof_void_p = sizeof(void *);
6198 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0);
6199 }
6200 #line 6201 "src/parser_proc.c" /* glr.c:821 */
6201 break;
6202
6203 case 505:
6204 #line 1732 "src/parser_proc_grammar.y" /* glr.c:821 */
6205 {
6206 int8_t sizeof_a = sizeof('a');
6207 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_a, 0);
6208 }
6209 #line 6210 "src/parser_proc.c" /* glr.c:821 */
6210 break;
6211
6212 case 506:
6213 #line 1736 "src/parser_proc_grammar.y" /* glr.c:821 */
6214 {
6215 uint64_t len = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text->len + 1;
6216 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_UINT64, &len, 0);
6217 }
6218 #line 6219 "src/parser_proc.c" /* glr.c:821 */
6219 break;
6220
6221 case 507:
6222 #line 1743 "src/parser_proc_grammar.y" /* glr.c:821 */
6223 {
6224 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
6225 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6226 } else {
6227 char digest[17];
6228
6229 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
6230 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
6231 }
6232 }
6233 #line 6234 "src/parser_proc.c" /* glr.c:821 */
6234 break;
6235
6236 case 508:
6237 #line 1756 "src/parser_proc_grammar.y" /* glr.c:821 */
6238 {
6239 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
6240 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6241 } else {
6242 char digest[17];
6243
6244 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
6245 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
6246 }
6247 }
6248 #line 6249 "src/parser_proc.c" /* glr.c:821 */
6249 break;
6250
6251 case 509:
6252 #line 1769 "src/parser_proc_grammar.y" /* glr.c:821 */
6253 {
6254 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
6255 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6256 } else {
6257 char digest[17];
6258
6259 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
6260 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
6261 }
6262 }
6263 #line 6264 "src/parser_proc.c" /* glr.c:821 */
6264 break;
6265
6266 case 510:
6267 #line 1782 "src/parser_proc_grammar.y" /* glr.c:821 */
6268 {
6269 (*(struct psi_token **)(&(*yyvalp))) = NULL;
6270 }
6271 #line 6272 "src/parser_proc.c" /* glr.c:821 */
6272 break;
6273
6274 case 511:
6275 #line 1785 "src/parser_proc_grammar.y" /* glr.c:821 */
6276 {
6277 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6278 (*(struct psi_token **)(&(*yyvalp)))->type = PSI_T_NAME;
6279 }
6280 #line 6281 "src/parser_proc.c" /* glr.c:821 */
6281 break;
6282
6283 case 514:
6284 #line 1797 "src/parser_proc_grammar.y" /* glr.c:821 */
6285 {
6286 (*(struct psi_layout **)(&(*yyvalp))) = NULL;
6287 }
6288 #line 6289 "src/parser_proc.c" /* glr.c:821 */
6289 break;
6290
6291 case 515:
6292 #line 1800 "src/parser_proc_grammar.y" /* glr.c:821 */
6293 {
6294 (*(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));
6295 }
6296 #line 6297 "src/parser_proc.c" /* glr.c:821 */
6297 break;
6298
6299 case 516:
6300 #line 1803 "src/parser_proc_grammar.y" /* glr.c:821 */
6301 {
6302 (*(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);
6303 }
6304 #line 6305 "src/parser_proc.c" /* glr.c:821 */
6305 break;
6306
6307 case 517:
6308 #line 1806 "src/parser_proc_grammar.y" /* glr.c:821 */
6309 {
6310 (*(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));
6311 }
6312 #line 6313 "src/parser_proc.c" /* glr.c:821 */
6313 break;
6314
6315 case 518:
6316 #line 1812 "src/parser_proc_grammar.y" /* glr.c:821 */
6317 {
6318 (*(struct psi_layout*)(&(*yyvalp))).pos = 0;
6319 (*(struct psi_layout*)(&(*yyvalp))).len = 0;
6320 }
6321 #line 6322 "src/parser_proc.c" /* glr.c:821 */
6322 break;
6323
6324 case 519:
6325 #line 1816 "src/parser_proc_grammar.y" /* glr.c:821 */
6326 {
6327 (*(struct psi_layout*)(&(*yyvalp))).pos = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text->val);
6328 (*(struct psi_layout*)(&(*yyvalp))).len = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text->val);
6329 }
6330 #line 6331 "src/parser_proc.c" /* glr.c:821 */
6331 break;
6332
6333 case 520:
6334 #line 1823 "src/parser_proc_grammar.y" /* glr.c:821 */
6335 {
6336 (*(size_t*)(&(*yyvalp))) = 0;
6337 }
6338 #line 6339 "src/parser_proc.c" /* glr.c:821 */
6339 break;
6340
6341 case 521:
6342 #line 1826 "src/parser_proc_grammar.y" /* glr.c:821 */
6343 {
6344 (*(size_t*)(&(*yyvalp))) = 0;
6345 }
6346 #line 6347 "src/parser_proc.c" /* glr.c:821 */
6347 break;
6348
6349 case 522:
6350 #line 1829 "src/parser_proc_grammar.y" /* glr.c:821 */
6351 {
6352 struct psi_validate_scope scope = {0};
6353 psi_validate_scope_ctor(&scope);
6354 scope.cpp = P->preproc;
6355 if (psi_num_exp_validate(PSI_DATA(P), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), &scope)) {
6356 (*(size_t*)(&(*yyvalp))) = psi_num_exp_get_long((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), NULL, P->preproc);
6357 } else {
6358 (*(size_t*)(&(*yyvalp))) = 0;
6359 }
6360 psi_num_exp_free(&(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6361 psi_validate_scope_dtor(&scope);
6362 }
6363 #line 6364 "src/parser_proc.c" /* glr.c:821 */
6364 break;
6365
6366 case 527:
6367 #line 1851 "src/parser_proc_grammar.y" /* glr.c:821 */
6368 {
6369 (*(size_t*)(&(*yyvalp))) = 0;
6370 }
6371 #line 6372 "src/parser_proc.c" /* glr.c:821 */
6372 break;
6373
6374 case 528:
6375 #line 1854 "src/parser_proc_grammar.y" /* glr.c:821 */
6376 {
6377 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6378 }
6379 #line 6380 "src/parser_proc.c" /* glr.c:821 */
6380 break;
6381
6382 case 530:
6383 #line 1861 "src/parser_proc_grammar.y" /* glr.c:821 */
6384 {
6385 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
6386 }
6387 #line 6388 "src/parser_proc.c" /* glr.c:821 */
6388 break;
6389
6390 case 531:
6391 #line 1867 "src/parser_proc_grammar.y" /* glr.c:821 */
6392 {
6393 (*(size_t*)(&(*yyvalp))) = 1;
6394 }
6395 #line 6396 "src/parser_proc.c" /* glr.c:821 */
6396 break;
6397
6398 case 532:
6399 #line 1870 "src/parser_proc_grammar.y" /* glr.c:821 */
6400 {
6401 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)) + 1;
6402 }
6403 #line 6404 "src/parser_proc.c" /* glr.c:821 */
6404 break;
6405
6406 case 537:
6407 #line 1892 "src/parser_proc_grammar.y" /* glr.c:821 */
6408 {
6409 (*(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)));
6410 }
6411 #line 6412 "src/parser_proc.c" /* glr.c:821 */
6412 break;
6413
6414 case 538:
6415 #line 1895 "src/parser_proc_grammar.y" /* glr.c:821 */
6416 {
6417 (*(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)));
6418 (*(struct psi_impl_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->static_memory = 1;
6419 }
6420 #line 6421 "src/parser_proc.c" /* glr.c:821 */
6421 break;
6422
6423 case 539:
6424 #line 1902 "src/parser_proc_grammar.y" /* glr.c:821 */
6425 {
6426 (*(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)));
6427 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
6428 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval));
6429 }
6430 #line 6431 "src/parser_proc.c" /* glr.c:821 */
6431 break;
6432
6433 case 540:
6434 #line 1907 "src/parser_proc_grammar.y" /* glr.c:821 */
6435 {
6436 (*(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)));
6437 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6438 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval));
6439 }
6440 #line 6441 "src/parser_proc.c" /* glr.c:821 */
6441 break;
6442
6443 case 541:
6444 #line 1912 "src/parser_proc_grammar.y" /* glr.c:821 */
6445 {
6446 (*(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)));
6447 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval)));
6448 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-11)].yystate.yysemantics.yysval));
6449 (*(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);
6450 (*(struct psi_impl_func **)(&(*yyvalp)))->vararg->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
6451 }
6452 #line 6453 "src/parser_proc.c" /* glr.c:821 */
6453 break;
6454
6455 case 542:
6456 #line 1922 "src/parser_proc_grammar.y" /* glr.c:821 */
6457 {
6458 (*(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)));
6459 }
6460 #line 6461 "src/parser_proc.c" /* glr.c:821 */
6461 break;
6462
6463 case 543:
6464 #line 1925 "src/parser_proc_grammar.y" /* glr.c:821 */
6465 {
6466 (*(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)));
6467 }
6468 #line 6469 "src/parser_proc.c" /* glr.c:821 */
6469 break;
6470
6471 case 544:
6472 #line 1931 "src/parser_proc_grammar.y" /* glr.c:821 */
6473 {
6474 (*(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);
6475 }
6476 #line 6477 "src/parser_proc.c" /* glr.c:821 */
6477 break;
6478
6479 case 545:
6480 #line 1934 "src/parser_proc_grammar.y" /* glr.c:821 */
6481 {
6482 (*(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)));
6483 }
6484 #line 6485 "src/parser_proc.c" /* glr.c:821 */
6485 break;
6486
6487 case 546:
6488 #line 1940 "src/parser_proc_grammar.y" /* glr.c:821 */
6489 {
6490 (*(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)));
6491 (*(struct psi_impl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6492 }
6493 #line 6494 "src/parser_proc.c" /* glr.c:821 */
6494 break;
6495
6496 case 547:
6497 #line 1947 "src/parser_proc_grammar.y" /* glr.c:821 */
6498 {
6499 (*(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);
6500 (*(struct psi_impl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6501 }
6502 #line 6503 "src/parser_proc.c" /* glr.c:821 */
6503 break;
6504
6505 case 548:
6506 #line 1954 "src/parser_proc_grammar.y" /* glr.c:821 */
6507 {
6508 (*(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);
6509 (*(struct psi_impl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6510 }
6511 #line 6512 "src/parser_proc.c" /* glr.c:821 */
6512 break;
6513
6514 case 560:
6515 #line 1981 "src/parser_proc_grammar.y" /* glr.c:821 */
6516 {
6517 (*(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)));
6518 }
6519 #line 6520 "src/parser_proc.c" /* glr.c:821 */
6520 break;
6521
6522 case 561:
6523 #line 1984 "src/parser_proc_grammar.y" /* glr.c:821 */
6524 {
6525 (*(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)));
6526 }
6527 #line 6528 "src/parser_proc.c" /* glr.c:821 */
6528 break;
6529
6530 case 562:
6531 #line 1990 "src/parser_proc_grammar.y" /* glr.c:821 */
6532 {
6533 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_return_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6534 }
6535 #line 6536 "src/parser_proc.c" /* glr.c:821 */
6536 break;
6537
6538 case 563:
6539 #line 1993 "src/parser_proc_grammar.y" /* glr.c:821 */
6540 {
6541 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_let_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6542 }
6543 #line 6544 "src/parser_proc.c" /* glr.c:821 */
6544 break;
6545
6546 case 564:
6547 #line 1996 "src/parser_proc_grammar.y" /* glr.c:821 */
6548 {
6549 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_set_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6550 }
6551 #line 6552 "src/parser_proc.c" /* glr.c:821 */
6552 break;
6553
6554 case 565:
6555 #line 1999 "src/parser_proc_grammar.y" /* glr.c:821 */
6556 {
6557 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_assert_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6558 }
6559 #line 6560 "src/parser_proc.c" /* glr.c:821 */
6560 break;
6561
6562 case 566:
6563 #line 2002 "src/parser_proc_grammar.y" /* glr.c:821 */
6564 {
6565 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_free_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6566 }
6567 #line 6568 "src/parser_proc.c" /* glr.c:821 */
6568 break;
6569
6570 case 567:
6571 #line 2008 "src/parser_proc_grammar.y" /* glr.c:821 */
6572 {
6573 (*(struct psi_let_stmt **)(&(*yyvalp))) = psi_let_stmt_init((*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6574 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6575 }
6576 #line 6577 "src/parser_proc.c" /* glr.c:821 */
6577 break;
6578
6579 case 568:
6580 #line 2012 "src/parser_proc_grammar.y" /* glr.c:821 */
6581 {
6582 (*(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))));
6583 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6584 (*(struct psi_let_stmt **)(&(*yyvalp)))->exp->is_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
6585 }
6586 #line 6587 "src/parser_proc.c" /* glr.c:821 */
6587 break;
6588
6589 case 570:
6590 #line 2021 "src/parser_proc_grammar.y" /* glr.c:821 */
6591 {
6592 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6593 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = true;
6594 }
6595 #line 6596 "src/parser_proc.c" /* glr.c:821 */
6596 break;
6597
6598 case 571:
6599 #line 2025 "src/parser_proc_grammar.y" /* glr.c:821 */
6600 {
6601 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6602 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = false;
6603 }
6604 #line 6605 "src/parser_proc.c" /* glr.c:821 */
6605 break;
6606
6607 case 572:
6608 #line 2032 "src/parser_proc_grammar.y" /* glr.c:821 */
6609 {
6610 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_NULL, NULL);
6611 }
6612 #line 6613 "src/parser_proc.c" /* glr.c:821 */
6613 break;
6614
6615 case 573:
6616 #line 2035 "src/parser_proc_grammar.y" /* glr.c:821 */
6617 {
6618 (*(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)));
6619 }
6620 #line 6621 "src/parser_proc.c" /* glr.c:821 */
6621 break;
6622
6623 case 574:
6624 #line 2038 "src/parser_proc_grammar.y" /* glr.c:821 */
6625 {
6626 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6627 }
6628 #line 6629 "src/parser_proc.c" /* glr.c:821 */
6629 break;
6630
6631 case 575:
6632 #line 2041 "src/parser_proc_grammar.y" /* glr.c:821 */
6633 {
6634 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6635 (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->static_memory = 1;
6636 }
6637 #line 6638 "src/parser_proc.c" /* glr.c:821 */
6638 break;
6639
6640 case 576:
6641 #line 2045 "src/parser_proc_grammar.y" /* glr.c:821 */
6642 {
6643 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLBACK, (*(struct psi_let_callback **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6644 }
6645 #line 6646 "src/parser_proc.c" /* glr.c:821 */
6646 break;
6647
6648 case 577:
6649 #line 2048 "src/parser_proc_grammar.y" /* glr.c:821 */
6650 {
6651 (*(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)));
6652 }
6653 #line 6654 "src/parser_proc.c" /* glr.c:821 */
6654 break;
6655
6656 case 578:
6657 #line 2054 "src/parser_proc_grammar.y" /* glr.c:821 */
6658 {
6659 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6660 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
6661 }
6662 #line 6663 "src/parser_proc.c" /* glr.c:821 */
6663 break;
6664
6665 case 579:
6666 #line 2058 "src/parser_proc_grammar.y" /* glr.c:821 */
6667 {
6668 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6669 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = 1;
6670 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
6671 }
6672 #line 6673 "src/parser_proc.c" /* glr.c:821 */
6673 break;
6674
6675 case 580:
6676 #line 2066 "src/parser_proc_grammar.y" /* glr.c:821 */
6677 {
6678 (*(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)));
6679 (*(struct psi_let_calloc **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6680 }
6681 #line 6682 "src/parser_proc.c" /* glr.c:821 */
6682 break;
6683
6684 case 581:
6685 #line 2073 "src/parser_proc_grammar.y" /* glr.c:821 */
6686 {
6687 (*(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);
6688 (*(struct psi_let_callback **)(&(*yyvalp)))->func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
6689 (*(struct psi_let_callback **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval)));
6690 }
6691 #line 6692 "src/parser_proc.c" /* glr.c:821 */
6692 break;
6693
6694 case 582:
6695 #line 2078 "src/parser_proc_grammar.y" /* glr.c:821 */
6696 {
6697 (*(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)));
6698 (*(struct psi_let_callback **)(&(*yyvalp)))->func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
6699 (*(struct psi_let_callback **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-11)].yystate.yysemantics.yysval)));
6700 }
6701 #line 6702 "src/parser_proc.c" /* glr.c:821 */
6702 break;
6703
6704 case 583:
6705 #line 2086 "src/parser_proc_grammar.y" /* glr.c:821 */
6706 {
6707 (*(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)));
6708 (*(struct psi_let_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
6709 (*(struct psi_let_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
6710 }
6711 #line 6712 "src/parser_proc.c" /* glr.c:821 */
6712 break;
6713
6714 case 594:
6715 #line 2107 "src/parser_proc_grammar.y" /* glr.c:821 */
6716 {
6717 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6718 }
6719 #line 6720 "src/parser_proc.c" /* glr.c:821 */
6720 break;
6721
6722 case 595:
6723 #line 2110 "src/parser_proc_grammar.y" /* glr.c:821 */
6724 {
6725 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6726 }
6727 #line 6728 "src/parser_proc.c" /* glr.c:821 */
6728 break;
6729
6730 case 596:
6731 #line 2116 "src/parser_proc_grammar.y" /* glr.c:821 */
6732 {
6733 (*(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)));
6734 }
6735 #line 6736 "src/parser_proc.c" /* glr.c:821 */
6736 break;
6737
6738 case 597:
6739 #line 2119 "src/parser_proc_grammar.y" /* glr.c:821 */
6740 {
6741 (*(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)));
6742 }
6743 #line 6744 "src/parser_proc.c" /* glr.c:821 */
6744 break;
6745
6746 case 600:
6747 #line 2130 "src/parser_proc_grammar.y" /* glr.c:821 */
6748 {
6749 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6750 }
6751 #line 6752 "src/parser_proc.c" /* glr.c:821 */
6752 break;
6753
6754 case 601:
6755 #line 2133 "src/parser_proc_grammar.y" /* glr.c:821 */
6756 {
6757 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6758 }
6759 #line 6760 "src/parser_proc.c" /* glr.c:821 */
6760 break;
6761
6762 case 602:
6763 #line 2139 "src/parser_proc_grammar.y" /* glr.c:821 */
6764 {
6765 (*(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)));
6766 }
6767 #line 6768 "src/parser_proc.c" /* glr.c:821 */
6768 break;
6769
6770 case 603:
6771 #line 2142 "src/parser_proc_grammar.y" /* glr.c:821 */
6772 {
6773 (*(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)));
6774 }
6775 #line 6776 "src/parser_proc.c" /* glr.c:821 */
6776 break;
6777
6778 case 604:
6779 #line 2148 "src/parser_proc_grammar.y" /* glr.c:821 */
6780 {
6781 (*(struct psi_return_stmt **)(&(*yyvalp))) = psi_return_stmt_init((*(struct psi_return_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6782 (*(struct psi_return_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6783 }
6784 #line 6785 "src/parser_proc.c" /* glr.c:821 */
6785 break;
6786
6787 case 605:
6788 #line 2155 "src/parser_proc_grammar.y" /* glr.c:821 */
6789 {
6790 (*(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))));
6791 (*(struct psi_return_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->token);
6792 }
6793 #line 6794 "src/parser_proc.c" /* glr.c:821 */
6794 break;
6795
6796 case 606:
6797 #line 2159 "src/parser_proc_grammar.y" /* glr.c:821 */
6798 {
6799 (*(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))));
6800 (*(struct psi_return_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
6801 }
6802 #line 6803 "src/parser_proc.c" /* glr.c:821 */
6803 break;
6804
6805 case 607:
6806 #line 2166 "src/parser_proc_grammar.y" /* glr.c:821 */
6807 {
6808 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6809 }
6810 #line 6811 "src/parser_proc.c" /* glr.c:821 */
6811 break;
6812
6813 case 608:
6814 #line 2169 "src/parser_proc_grammar.y" /* glr.c:821 */
6815 {
6816 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6817 }
6818 #line 6819 "src/parser_proc.c" /* glr.c:821 */
6819 break;
6820
6821 case 609:
6822 #line 2172 "src/parser_proc_grammar.y" /* glr.c:821 */
6823 {
6824 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6825 }
6826 #line 6827 "src/parser_proc.c" /* glr.c:821 */
6827 break;
6828
6829 case 610:
6830 #line 2178 "src/parser_proc_grammar.y" /* glr.c:821 */
6831 {
6832 (*(struct psi_set_stmt **)(&(*yyvalp))) = psi_set_stmt_init((*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6833 (*(struct psi_set_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6834 }
6835 #line 6836 "src/parser_proc.c" /* glr.c:821 */
6836 break;
6837
6838 case 611:
6839 #line 2185 "src/parser_proc_grammar.y" /* glr.c:821 */
6840 {
6841 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_FUNC, (*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6842 }
6843 #line 6844 "src/parser_proc.c" /* glr.c:821 */
6844 break;
6845
6846 case 612:
6847 #line 2188 "src/parser_proc_grammar.y" /* glr.c:821 */
6848 {
6849 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_NUMEXP, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6850 }
6851 #line 6852 "src/parser_proc.c" /* glr.c:821 */
6852 break;
6853
6854 case 613:
6855 #line 2191 "src/parser_proc_grammar.y" /* glr.c:821 */
6856 {
6857 (*(struct psi_set_exp **)(&(*yyvalp))) = (*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6858 (*(struct psi_set_exp **)(&(*yyvalp)))->var = (*(struct psi_impl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
6859 }
6860 #line 6861 "src/parser_proc.c" /* glr.c:821 */
6861 break;
6862
6863 case 614:
6864 #line 2198 "src/parser_proc_grammar.y" /* glr.c:821 */
6865 {
6866 (*(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)));
6867 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
6868 (*(struct psi_set_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
6869 }
6870 #line 6871 "src/parser_proc.c" /* glr.c:821 */
6871 break;
6872
6873 case 615:
6874 #line 2203 "src/parser_proc_grammar.y" /* glr.c:821 */
6875 {
6876 (*(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)));
6877 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6878 (*(struct psi_set_func **)(&(*yyvalp)))->recursive = 1;
6879 }
6880 #line 6881 "src/parser_proc.c" /* glr.c:821 */
6881 break;
6882
6883 case 624:
6884 #line 2222 "src/parser_proc_grammar.y" /* glr.c:821 */
6885 {
6886 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6887 }
6888 #line 6889 "src/parser_proc.c" /* glr.c:821 */
6889 break;
6890
6891 case 625:
6892 #line 2225 "src/parser_proc_grammar.y" /* glr.c:821 */
6893 {
6894 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6895 }
6896 #line 6897 "src/parser_proc.c" /* glr.c:821 */
6897 break;
6898
6899 case 626:
6900 #line 2231 "src/parser_proc_grammar.y" /* glr.c:821 */
6901 {
6902 (*(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)));
6903 }
6904 #line 6905 "src/parser_proc.c" /* glr.c:821 */
6905 break;
6906
6907 case 627:
6908 #line 2234 "src/parser_proc_grammar.y" /* glr.c:821 */
6909 {
6910 (*(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)));
6911 }
6912 #line 6913 "src/parser_proc.c" /* glr.c:821 */
6913 break;
6914
6915 case 628:
6916 #line 2240 "src/parser_proc_grammar.y" /* glr.c:821 */
6917 {
6918 (*(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)));
6919 (*(struct psi_assert_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6920 }
6921 #line 6922 "src/parser_proc.c" /* glr.c:821 */
6922 break;
6923
6924 case 631:
6925 #line 2252 "src/parser_proc_grammar.y" /* glr.c:821 */
6926 {
6927 (*(struct psi_free_stmt **)(&(*yyvalp))) = psi_free_stmt_init((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6928 (*(struct psi_free_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6929 }
6930 #line 6931 "src/parser_proc.c" /* glr.c:821 */
6931 break;
6932
6933 case 632:
6934 #line 2259 "src/parser_proc_grammar.y" /* glr.c:821 */
6935 {
6936 (*(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)));
6937 }
6938 #line 6939 "src/parser_proc.c" /* glr.c:821 */
6939 break;
6940
6941 case 633:
6942 #line 2262 "src/parser_proc_grammar.y" /* glr.c:821 */
6943 {
6944 (*(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)));
6945 }
6946 #line 6947 "src/parser_proc.c" /* glr.c:821 */
6947 break;
6948
6949 case 634:
6950 #line 2268 "src/parser_proc_grammar.y" /* glr.c:821 */
6951 {
6952 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
6953 (*(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)));
6954 (*(struct psi_free_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
6955 }
6956 #line 6957 "src/parser_proc.c" /* glr.c:821 */
6957 break;
6958
6959 case 635:
6960 #line 2276 "src/parser_proc_grammar.y" /* glr.c:821 */
6961 {
6962 (*(bool*)(&(*yyvalp))) = false;
6963 }
6964 #line 6965 "src/parser_proc.c" /* glr.c:821 */
6965 break;
6966
6967 case 636:
6968 #line 2279 "src/parser_proc_grammar.y" /* glr.c:821 */
6969 {
6970 (*(bool*)(&(*yyvalp))) = true;
6971 }
6972 #line 6973 "src/parser_proc.c" /* glr.c:821 */
6973 break;
6974
6975
6976 #line 6977 "src/parser_proc.c" /* glr.c:821 */
6977 default: break;
6978 }
6979
6980 return yyok;
6981 # undef yyerrok
6982 # undef YYABORT
6983 # undef YYACCEPT
6984 # undef YYERROR
6985 # undef YYBACKUP
6986 # undef yyclearin
6987 # undef YYRECOVERING
6988 }
6989
6990
6991 static void
6992 yyuserMerge (int yyn, YYSTYPE* yy0, YYSTYPE* yy1)
6993 {
6994 YYUSE (yy0);
6995 YYUSE (yy1);
6996
6997 switch (yyn)
6998 {
6999
7000 default: break;
7001 }
7002 }
7003
7004 /* Bison grammar-table manipulation. */
7005
7006 /*-----------------------------------------------.
7007 | Release the memory associated to this symbol. |
7008 `-----------------------------------------------*/
7009
7010 static void
7011 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7012 {
7013 YYUSE (yyvaluep);
7014 YYUSE (P);
7015 YYUSE (tokens);
7016 YYUSE (index);
7017 if (!yymsg)
7018 yymsg = "Deleting";
7019 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
7020
7021 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
7022 switch (yytype)
7023 {
7024 case 141: /* binary_op_token */
7025 #line 294 "src/parser_proc_grammar.y" /* glr.c:851 */
7026 {}
7027 #line 7028 "src/parser_proc.c" /* glr.c:851 */
7028 break;
7029
7030 case 142: /* unary_op_token */
7031 #line 294 "src/parser_proc_grammar.y" /* glr.c:851 */
7032 {}
7033 #line 7034 "src/parser_proc.c" /* glr.c:851 */
7034 break;
7035
7036 case 143: /* name_token */
7037 #line 294 "src/parser_proc_grammar.y" /* glr.c:851 */
7038 {}
7039 #line 7040 "src/parser_proc.c" /* glr.c:851 */
7040 break;
7041
7042 case 144: /* any_noeol_token */
7043 #line 294 "src/parser_proc_grammar.y" /* glr.c:851 */
7044 {}
7045 #line 7046 "src/parser_proc.c" /* glr.c:851 */
7046 break;
7047
7048 case 149: /* lib */
7049 #line 288 "src/parser_proc_grammar.y" /* glr.c:851 */
7050 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7051 #line 7052 "src/parser_proc.c" /* glr.c:851 */
7052 break;
7053
7054 case 150: /* cpp */
7055 #line 303 "src/parser_proc_grammar.y" /* glr.c:851 */
7056 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
7057 #line 7058 "src/parser_proc.c" /* glr.c:851 */
7058 break;
7059
7060 case 151: /* cpp_exp */
7061 #line 303 "src/parser_proc_grammar.y" /* glr.c:851 */
7062 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
7063 #line 7064 "src/parser_proc.c" /* glr.c:851 */
7064 break;
7065
7066 case 153: /* cpp_message_token */
7067 #line 291 "src/parser_proc_grammar.y" /* glr.c:851 */
7068 {}
7069 #line 7070 "src/parser_proc.c" /* glr.c:851 */
7070 break;
7071
7072 case 154: /* cpp_include_token */
7073 #line 291 "src/parser_proc_grammar.y" /* glr.c:851 */
7074 {}
7075 #line 7076 "src/parser_proc.c" /* glr.c:851 */
7076 break;
7077
7078 case 155: /* cpp_header_token */
7079 #line 291 "src/parser_proc_grammar.y" /* glr.c:851 */
7080 {}
7081 #line 7082 "src/parser_proc.c" /* glr.c:851 */
7082 break;
7083
7084 case 156: /* cpp_no_arg_token */
7085 #line 291 "src/parser_proc_grammar.y" /* glr.c:851 */
7086 {}
7087 #line 7088 "src/parser_proc.c" /* glr.c:851 */
7088 break;
7089
7090 case 157: /* cpp_name_arg_token */
7091 #line 291 "src/parser_proc_grammar.y" /* glr.c:851 */
7092 {}
7093 #line 7094 "src/parser_proc.c" /* glr.c:851 */
7094 break;
7095
7096 case 158: /* cpp_exp_arg_token */
7097 #line 291 "src/parser_proc_grammar.y" /* glr.c:851 */
7098 {}
7099 #line 7100 "src/parser_proc.c" /* glr.c:851 */
7100 break;
7101
7102 case 159: /* cpp_macro_decl */
7103 #line 305 "src/parser_proc_grammar.y" /* glr.c:851 */
7104 {psi_cpp_macro_decl_free(&(*(struct psi_cpp_macro_decl **)(&(*yyvaluep))));}
7105 #line 7106 "src/parser_proc.c" /* glr.c:851 */
7106 break;
7107
7108 case 160: /* cpp_macro_sig */
7109 #line 307 "src/parser_proc_grammar.y" /* glr.c:851 */
7110 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7111 #line 7112 "src/parser_proc.c" /* glr.c:851 */
7112 break;
7113
7114 case 161: /* cpp_macro_sig_args */
7115 #line 307 "src/parser_proc_grammar.y" /* glr.c:851 */
7116 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7117 #line 7118 "src/parser_proc.c" /* glr.c:851 */
7118 break;
7119
7120 case 162: /* cpp_macro_decl_tokens */
7121 #line 307 "src/parser_proc_grammar.y" /* glr.c:851 */
7122 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7123 #line 7124 "src/parser_proc.c" /* glr.c:851 */
7124 break;
7125
7126 case 163: /* cpp_macro_decl_token_list */
7127 #line 307 "src/parser_proc_grammar.y" /* glr.c:851 */
7128 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7129 #line 7130 "src/parser_proc.c" /* glr.c:851 */
7130 break;
7131
7132 case 164: /* cpp_macro_exp */
7133 #line 309 "src/parser_proc_grammar.y" /* glr.c:851 */
7134 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
7135 #line 7136 "src/parser_proc.c" /* glr.c:851 */
7136 break;
7137
7138 case 165: /* cpp_macro_call_args */
7139 #line 307 "src/parser_proc_grammar.y" /* glr.c:851 */
7140 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7141 #line 7142 "src/parser_proc.c" /* glr.c:851 */
7142 break;
7143
7144 case 166: /* cpp_macro_call_arg_list */
7145 #line 307 "src/parser_proc_grammar.y" /* glr.c:851 */
7146 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7147 #line 7148 "src/parser_proc.c" /* glr.c:851 */
7148 break;
7149
7150 case 167: /* constant */
7151 #line 315 "src/parser_proc_grammar.y" /* glr.c:851 */
7152 {psi_const_free(&(*(struct psi_const **)(&(*yyvaluep))));}
7153 #line 7154 "src/parser_proc.c" /* glr.c:851 */
7154 break;
7155
7156 case 168: /* impl_def_val */
7157 #line 317 "src/parser_proc_grammar.y" /* glr.c:851 */
7158 {psi_impl_def_val_free(&(*(struct psi_impl_def_val **)(&(*yyvaluep))));}
7159 #line 7160 "src/parser_proc.c" /* glr.c:851 */
7160 break;
7161
7162 case 169: /* impl_def_val_token */
7163 #line 312 "src/parser_proc_grammar.y" /* glr.c:851 */
7164 {}
7165 #line 7166 "src/parser_proc.c" /* glr.c:851 */
7166 break;
7167
7168 case 170: /* decl_typedef */
7169 #line 330 "src/parser_proc_grammar.y" /* glr.c:851 */
7170 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7171 #line 7172 "src/parser_proc.c" /* glr.c:851 */
7172 break;
7173
7174 case 171: /* typedef */
7175 #line 330 "src/parser_proc_grammar.y" /* glr.c:851 */
7176 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7177 #line 7178 "src/parser_proc.c" /* glr.c:851 */
7178 break;
7179
7180 case 172: /* typedef_anon */
7181 #line 330 "src/parser_proc_grammar.y" /* glr.c:851 */
7182 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7183 #line 7184 "src/parser_proc.c" /* glr.c:851 */
7184 break;
7185
7186 case 173: /* typedef_decl */
7187 #line 330 "src/parser_proc_grammar.y" /* glr.c:851 */
7188 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7189 #line 7190 "src/parser_proc.c" /* glr.c:851 */
7190 break;
7191
7192 case 174: /* typedef_anon_decl */
7193 #line 330 "src/parser_proc_grammar.y" /* glr.c:851 */
7194 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7195 #line 7196 "src/parser_proc.c" /* glr.c:851 */
7196 break;
7197
7198 case 175: /* qualified_decl_type */
7199 #line 326 "src/parser_proc_grammar.y" /* glr.c:851 */
7200 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
7201 #line 7202 "src/parser_proc.c" /* glr.c:851 */
7202 break;
7203
7204 case 177: /* decl_type */
7205 #line 326 "src/parser_proc_grammar.y" /* glr.c:851 */
7206 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
7207 #line 7208 "src/parser_proc.c" /* glr.c:851 */
7208 break;
7209
7210 case 178: /* decl_type_complex */
7211 #line 326 "src/parser_proc_grammar.y" /* glr.c:851 */
7212 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
7213 #line 7214 "src/parser_proc.c" /* glr.c:851 */
7214 break;
7215
7216 case 179: /* decl_type_simple */
7217 #line 320 "src/parser_proc_grammar.y" /* glr.c:851 */
7218 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7219 #line 7220 "src/parser_proc.c" /* glr.c:851 */
7220 break;
7221
7222 case 180: /* decl_real_type */
7223 #line 320 "src/parser_proc_grammar.y" /* glr.c:851 */
7224 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7225 #line 7226 "src/parser_proc.c" /* glr.c:851 */
7226 break;
7227
7228 case 181: /* int_signed */
7229 #line 300 "src/parser_proc_grammar.y" /* glr.c:851 */
7230 {}
7231 #line 7232 "src/parser_proc.c" /* glr.c:851 */
7232 break;
7233
7234 case 182: /* int_width */
7235 #line 297 "src/parser_proc_grammar.y" /* glr.c:851 */
7236 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7237 #line 7238 "src/parser_proc.c" /* glr.c:851 */
7238 break;
7239
7240 case 183: /* decl_int_type */
7241 #line 320 "src/parser_proc_grammar.y" /* glr.c:851 */
7242 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7243 #line 7244 "src/parser_proc.c" /* glr.c:851 */
7244 break;
7245
7246 case 184: /* int_signed_types */
7247 #line 297 "src/parser_proc_grammar.y" /* glr.c:851 */
7248 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7249 #line 7250 "src/parser_proc.c" /* glr.c:851 */
7250 break;
7251
7252 case 185: /* signed_short_types */
7253 #line 300 "src/parser_proc_grammar.y" /* glr.c:851 */
7254 {}
7255 #line 7256 "src/parser_proc.c" /* glr.c:851 */
7256 break;
7257
7258 case 186: /* signed_long_types */
7259 #line 300 "src/parser_proc_grammar.y" /* glr.c:851 */
7260 {}
7261 #line 7262 "src/parser_proc.c" /* glr.c:851 */
7262 break;
7263
7264 case 187: /* int_width_types */
7265 #line 297 "src/parser_proc_grammar.y" /* glr.c:851 */
7266 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7267 #line 7268 "src/parser_proc.c" /* glr.c:851 */
7268 break;
7269
7270 case 188: /* decl_stmt */
7271 #line 328 "src/parser_proc_grammar.y" /* glr.c:851 */
7272 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7273 #line 7274 "src/parser_proc.c" /* glr.c:851 */
7274 break;
7275
7276 case 189: /* decl_asm */
7277 #line 323 "src/parser_proc_grammar.y" /* glr.c:851 */
7278 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7279 #line 7280 "src/parser_proc.c" /* glr.c:851 */
7280 break;
7281
7282 case 190: /* quoted_strings */
7283 #line 323 "src/parser_proc_grammar.y" /* glr.c:851 */
7284 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7285 #line 7286 "src/parser_proc.c" /* glr.c:851 */
7286 break;
7287
7288 case 191: /* decl_extvar_stmt */
7289 #line 342 "src/parser_proc_grammar.y" /* glr.c:851 */
7290 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7291 #line 7292 "src/parser_proc.c" /* glr.c:851 */
7292 break;
7293
7294 case 192: /* decl_extvar_list */
7295 #line 342 "src/parser_proc_grammar.y" /* glr.c:851 */
7296 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7297 #line 7298 "src/parser_proc.c" /* glr.c:851 */
7298 break;
7299
7300 case 193: /* decl_vars */
7301 #line 342 "src/parser_proc_grammar.y" /* glr.c:851 */
7302 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7303 #line 7304 "src/parser_proc.c" /* glr.c:851 */
7304 break;
7305
7306 case 194: /* ignored_decl */
7307 #line 328 "src/parser_proc_grammar.y" /* glr.c:851 */
7308 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7309 #line 7310 "src/parser_proc.c" /* glr.c:851 */
7310 break;
7311
7312 case 199: /* decl */
7313 #line 328 "src/parser_proc_grammar.y" /* glr.c:851 */
7314 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7315 #line 7316 "src/parser_proc.c" /* glr.c:851 */
7316 break;
7317
7318 case 200: /* decl_body */
7319 #line 328 "src/parser_proc_grammar.y" /* glr.c:851 */
7320 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7321 #line 7322 "src/parser_proc.c" /* glr.c:851 */
7322 break;
7323
7324 case 201: /* decl_func_body */
7325 #line 328 "src/parser_proc_grammar.y" /* glr.c:851 */
7326 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7327 #line 7328 "src/parser_proc.c" /* glr.c:851 */
7328 break;
7329
7330 case 202: /* decl_functor_body */
7331 #line 328 "src/parser_proc_grammar.y" /* glr.c:851 */
7332 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7333 #line 7334 "src/parser_proc.c" /* glr.c:851 */
7334 break;
7335
7336 case 203: /* decl_anon_functor_body */
7337 #line 328 "src/parser_proc_grammar.y" /* glr.c:851 */
7338 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7339 #line 7340 "src/parser_proc.c" /* glr.c:851 */
7340 break;
7341
7342 case 204: /* decl_functor */
7343 #line 330 "src/parser_proc_grammar.y" /* glr.c:851 */
7344 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7345 #line 7346 "src/parser_proc.c" /* glr.c:851 */
7346 break;
7347
7348 case 205: /* decl_anon_functor */
7349 #line 330 "src/parser_proc_grammar.y" /* glr.c:851 */
7350 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7351 #line 7352 "src/parser_proc.c" /* glr.c:851 */
7352 break;
7353
7354 case 206: /* decl_func */
7355 #line 330 "src/parser_proc_grammar.y" /* glr.c:851 */
7356 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7357 #line 7358 "src/parser_proc.c" /* glr.c:851 */
7358 break;
7359
7360 case 207: /* decl_args */
7361 #line 342 "src/parser_proc_grammar.y" /* glr.c:851 */
7362 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7363 #line 7364 "src/parser_proc.c" /* glr.c:851 */
7364 break;
7365
7366 case 208: /* decl_arg_list */
7367 #line 342 "src/parser_proc_grammar.y" /* glr.c:851 */
7368 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7369 #line 7370 "src/parser_proc.c" /* glr.c:851 */
7370 break;
7371
7372 case 209: /* decl_anon_arg */
7373 #line 330 "src/parser_proc_grammar.y" /* glr.c:851 */
7374 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7375 #line 7376 "src/parser_proc.c" /* glr.c:851 */
7376 break;
7377
7378 case 210: /* decl_arg */
7379 #line 330 "src/parser_proc_grammar.y" /* glr.c:851 */
7380 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7381 #line 7382 "src/parser_proc.c" /* glr.c:851 */
7382 break;
7383
7384 case 211: /* decl_var */
7385 #line 332 "src/parser_proc_grammar.y" /* glr.c:851 */
7386 {psi_decl_var_free(&(*(struct psi_decl_var **)(&(*yyvaluep))));}
7387 #line 7388 "src/parser_proc.c" /* glr.c:851 */
7388 break;
7389
7390 case 212: /* decl_union */
7391 #line 336 "src/parser_proc_grammar.y" /* glr.c:851 */
7392 {psi_decl_union_free(&(*(struct psi_decl_union **)(&(*yyvaluep))));}
7393 #line 7394 "src/parser_proc.c" /* glr.c:851 */
7394 break;
7395
7396 case 213: /* decl_struct */
7397 #line 334 "src/parser_proc_grammar.y" /* glr.c:851 */
7398 {psi_decl_struct_free(&(*(struct psi_decl_struct **)(&(*yyvaluep))));}
7399 #line 7400 "src/parser_proc.c" /* glr.c:851 */
7400 break;
7401
7402 case 214: /* decl_struct_args */
7403 #line 342 "src/parser_proc_grammar.y" /* glr.c:851 */
7404 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7405 #line 7406 "src/parser_proc.c" /* glr.c:851 */
7406 break;
7407
7408 case 215: /* struct_args_block */
7409 #line 342 "src/parser_proc_grammar.y" /* glr.c:851 */
7410 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7411 #line 7412 "src/parser_proc.c" /* glr.c:851 */
7412 break;
7413
7414 case 216: /* struct_args */
7415 #line 342 "src/parser_proc_grammar.y" /* glr.c:851 */
7416 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7417 #line 7418 "src/parser_proc.c" /* glr.c:851 */
7418 break;
7419
7420 case 217: /* struct_arg_var_list */
7421 #line 342 "src/parser_proc_grammar.y" /* glr.c:851 */
7422 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7423 #line 7424 "src/parser_proc.c" /* glr.c:851 */
7424 break;
7425
7426 case 218: /* decl_vars_with_layout */
7427 #line 342 "src/parser_proc_grammar.y" /* glr.c:851 */
7428 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7429 #line 7430 "src/parser_proc.c" /* glr.c:851 */
7430 break;
7431
7432 case 219: /* decl_enum */
7433 #line 338 "src/parser_proc_grammar.y" /* glr.c:851 */
7434 {psi_decl_enum_free(&(*(struct psi_decl_enum **)(&(*yyvaluep))));}
7435 #line 7436 "src/parser_proc.c" /* glr.c:851 */
7436 break;
7437
7438 case 220: /* decl_enum_items */
7439 #line 342 "src/parser_proc_grammar.y" /* glr.c:851 */
7440 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7441 #line 7442 "src/parser_proc.c" /* glr.c:851 */
7442 break;
7443
7444 case 221: /* decl_enum_item */
7445 #line 340 "src/parser_proc_grammar.y" /* glr.c:851 */
7446 {psi_decl_enum_item_free(&(*(struct psi_decl_enum_item **)(&(*yyvaluep))));}
7447 #line 7448 "src/parser_proc.c" /* glr.c:851 */
7448 break;
7449
7450 case 222: /* num_exp */
7451 #line 398 "src/parser_proc_grammar.y" /* glr.c:851 */
7452 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
7453 #line 7454 "src/parser_proc.c" /* glr.c:851 */
7454 break;
7455
7456 case 223: /* number */
7457 #line 400 "src/parser_proc_grammar.y" /* glr.c:851 */
7458 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7459 #line 7460 "src/parser_proc.c" /* glr.c:851 */
7460 break;
7461
7462 case 224: /* sizeof */
7463 #line 350 "src/parser_proc_grammar.y" /* glr.c:851 */
7464 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7465 #line 7466 "src/parser_proc.c" /* glr.c:851 */
7466 break;
7467
7468 case 225: /* sizeof_body */
7469 #line 350 "src/parser_proc_grammar.y" /* glr.c:851 */
7470 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7471 #line 7472 "src/parser_proc.c" /* glr.c:851 */
7472 break;
7473
7474 case 226: /* sizeof_body_notypes */
7475 #line 350 "src/parser_proc_grammar.y" /* glr.c:851 */
7476 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7477 #line 7478 "src/parser_proc.c" /* glr.c:851 */
7478 break;
7479
7480 case 227: /* enum_name */
7481 #line 288 "src/parser_proc_grammar.y" /* glr.c:851 */
7482 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7483 #line 7484 "src/parser_proc.c" /* glr.c:851 */
7484 break;
7485
7486 case 228: /* union_name */
7487 #line 288 "src/parser_proc_grammar.y" /* glr.c:851 */
7488 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7489 #line 7490 "src/parser_proc.c" /* glr.c:851 */
7490 break;
7491
7492 case 229: /* struct_name */
7493 #line 288 "src/parser_proc_grammar.y" /* glr.c:851 */
7494 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7495 #line 7496 "src/parser_proc.c" /* glr.c:851 */
7496 break;
7497
7498 case 230: /* optional_name */
7499 #line 288 "src/parser_proc_grammar.y" /* glr.c:851 */
7500 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7501 #line 7502 "src/parser_proc.c" /* glr.c:851 */
7502 break;
7503
7504 case 232: /* decl_layout */
7505 #line 347 "src/parser_proc_grammar.y" /* glr.c:851 */
7506 {psi_layout_free(&(*(struct psi_layout **)(&(*yyvaluep))));}
7507 #line 7508 "src/parser_proc.c" /* glr.c:851 */
7508 break;
7509
7510 case 233: /* align_and_size */
7511 #line 345 "src/parser_proc_grammar.y" /* glr.c:851 */
7512 {}
7513 #line 7514 "src/parser_proc.c" /* glr.c:851 */
7514 break;
7515
7516 case 234: /* array_size */
7517 #line 403 "src/parser_proc_grammar.y" /* glr.c:851 */
7518 {}
7519 #line 7520 "src/parser_proc.c" /* glr.c:851 */
7520 break;
7521
7522 case 236: /* indirection */
7523 #line 403 "src/parser_proc_grammar.y" /* glr.c:851 */
7524 {}
7525 #line 7526 "src/parser_proc.c" /* glr.c:851 */
7526 break;
7527
7528 case 237: /* pointers */
7529 #line 403 "src/parser_proc_grammar.y" /* glr.c:851 */
7530 {}
7531 #line 7532 "src/parser_proc.c" /* glr.c:851 */
7532 break;
7533
7534 case 238: /* asterisks */
7535 #line 403 "src/parser_proc_grammar.y" /* glr.c:851 */
7536 {}
7537 #line 7538 "src/parser_proc.c" /* glr.c:851 */
7538 break;
7539
7540 case 241: /* impl */
7541 #line 353 "src/parser_proc_grammar.y" /* glr.c:851 */
7542 {psi_impl_free(&(*(struct psi_impl **)(&(*yyvaluep))));}
7543 #line 7544 "src/parser_proc.c" /* glr.c:851 */
7544 break;
7545
7546 case 242: /* impl_func */
7547 #line 355 "src/parser_proc_grammar.y" /* glr.c:851 */
7548 {psi_impl_func_free(&(*(struct psi_impl_func **)(&(*yyvaluep))));}
7549 #line 7550 "src/parser_proc.c" /* glr.c:851 */
7550 break;
7551
7552 case 243: /* impl_args */
7553 #line 395 "src/parser_proc_grammar.y" /* glr.c:851 */
7554 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7555 #line 7556 "src/parser_proc.c" /* glr.c:851 */
7556 break;
7557
7558 case 244: /* impl_arg */
7559 #line 357 "src/parser_proc_grammar.y" /* glr.c:851 */
7560 {psi_impl_arg_free(&(*(struct psi_impl_arg **)(&(*yyvaluep))));}
7561 #line 7562 "src/parser_proc.c" /* glr.c:851 */
7562 break;
7563
7564 case 245: /* impl_var */
7565 #line 361 "src/parser_proc_grammar.y" /* glr.c:851 */
7566 {psi_impl_var_free(&(*(struct psi_impl_var **)(&(*yyvaluep))));}
7567 #line 7568 "src/parser_proc.c" /* glr.c:851 */
7568 break;
7569
7570 case 246: /* impl_type */
7571 #line 359 "src/parser_proc_grammar.y" /* glr.c:851 */
7572 {psi_impl_type_free(&(*(struct psi_impl_type **)(&(*yyvaluep))));}
7573 #line 7574 "src/parser_proc.c" /* glr.c:851 */
7574 break;
7575
7576 case 247: /* impl_type_restricted */
7577 #line 359 "src/parser_proc_grammar.y" /* glr.c:851 */
7578 {psi_impl_type_free(&(*(struct psi_impl_type **)(&(*yyvaluep))));}
7579 #line 7580 "src/parser_proc.c" /* glr.c:851 */
7580 break;
7581
7582 case 248: /* impl_type_token */
7583 #line 393 "src/parser_proc_grammar.y" /* glr.c:851 */
7584 {}
7585 #line 7586 "src/parser_proc.c" /* glr.c:851 */
7586 break;
7587
7588 case 249: /* impl_type_restricted_token */
7589 #line 393 "src/parser_proc_grammar.y" /* glr.c:851 */
7590 {}
7591 #line 7592 "src/parser_proc.c" /* glr.c:851 */
7592 break;
7593
7594 case 250: /* impl_type_extended_token */
7595 #line 393 "src/parser_proc_grammar.y" /* glr.c:851 */
7596 {}
7597 #line 7598 "src/parser_proc.c" /* glr.c:851 */
7598 break;
7599
7600 case 251: /* impl_stmts */
7601 #line 395 "src/parser_proc_grammar.y" /* glr.c:851 */
7602 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7603 #line 7604 "src/parser_proc.c" /* glr.c:851 */
7604 break;
7605
7606 case 252: /* impl_stmt */
7607 #line 391 "src/parser_proc_grammar.y" /* glr.c:851 */
7608 {psi_impl_stmt_free(&(*(struct psi_token ***)(&(*yyvaluep))));}
7609 #line 7610 "src/parser_proc.c" /* glr.c:851 */
7610 break;
7611
7612 case 253: /* let_stmt */
7613 #line 364 "src/parser_proc_grammar.y" /* glr.c:851 */
7614 {psi_let_stmt_free(&(*(struct psi_let_stmt **)(&(*yyvaluep))));}
7615 #line 7616 "src/parser_proc.c" /* glr.c:851 */
7616 break;
7617
7618 case 254: /* let_exp */
7619 #line 366 "src/parser_proc_grammar.y" /* glr.c:851 */
7620 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
7621 #line 7622 "src/parser_proc.c" /* glr.c:851 */
7622 break;
7623
7624 case 255: /* let_exp_byref */
7625 #line 366 "src/parser_proc_grammar.y" /* glr.c:851 */
7626 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
7627 #line 7628 "src/parser_proc.c" /* glr.c:851 */
7628 break;
7629
7630 case 256: /* let_exp_assign */
7631 #line 366 "src/parser_proc_grammar.y" /* glr.c:851 */
7632 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
7633 #line 7634 "src/parser_proc.c" /* glr.c:851 */
7634 break;
7635
7636 case 257: /* let_calloc */
7637 #line 368 "src/parser_proc_grammar.y" /* glr.c:851 */
7638 {psi_let_calloc_free(&(*(struct psi_let_calloc **)(&(*yyvaluep))));}
7639 #line 7640 "src/parser_proc.c" /* glr.c:851 */
7640 break;
7641
7642 case 258: /* let_callback */
7643 #line 370 "src/parser_proc_grammar.y" /* glr.c:851 */
7644 {psi_let_callback_free(&(*(struct psi_let_callback **)(&(*yyvaluep))));}
7645 #line 7646 "src/parser_proc.c" /* glr.c:851 */
7646 break;
7647
7648 case 259: /* let_func */
7649 #line 372 "src/parser_proc_grammar.y" /* glr.c:851 */
7650 {psi_let_func_free(&(*(struct psi_let_func **)(&(*yyvaluep))));}
7651 #line 7652 "src/parser_proc.c" /* glr.c:851 */
7652 break;
7653
7654 case 260: /* let_func_token */
7655 #line 393 "src/parser_proc_grammar.y" /* glr.c:851 */
7656 {}
7657 #line 7658 "src/parser_proc.c" /* glr.c:851 */
7658 break;
7659
7660 case 261: /* let_func_exps */
7661 #line 395 "src/parser_proc_grammar.y" /* glr.c:851 */
7662 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7663 #line 7664 "src/parser_proc.c" /* glr.c:851 */
7664 break;
7665
7666 case 262: /* let_exps */
7667 #line 395 "src/parser_proc_grammar.y" /* glr.c:851 */
7668 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7669 #line 7670 "src/parser_proc.c" /* glr.c:851 */
7670 break;
7671
7672 case 263: /* callback_rval */
7673 #line 393 "src/parser_proc_grammar.y" /* glr.c:851 */
7674 {}
7675 #line 7676 "src/parser_proc.c" /* glr.c:851 */
7676 break;
7677
7678 case 264: /* callback_arg_list */
7679 #line 395 "src/parser_proc_grammar.y" /* glr.c:851 */
7680 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7681 #line 7682 "src/parser_proc.c" /* glr.c:851 */
7682 break;
7683
7684 case 265: /* callback_args */
7685 #line 395 "src/parser_proc_grammar.y" /* glr.c:851 */
7686 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7687 #line 7688 "src/parser_proc.c" /* glr.c:851 */
7688 break;
7689
7690 case 266: /* return_stmt */
7691 #line 382 "src/parser_proc_grammar.y" /* glr.c:851 */
7692 {psi_return_stmt_free(&(*(struct psi_return_stmt **)(&(*yyvaluep))));}
7693 #line 7694 "src/parser_proc.c" /* glr.c:851 */
7694 break;
7695
7696 case 267: /* return_exp */
7697 #line 384 "src/parser_proc_grammar.y" /* glr.c:851 */
7698 {psi_return_exp_free(&(*(struct psi_return_exp **)(&(*yyvaluep))));}
7699 #line 7700 "src/parser_proc.c" /* glr.c:851 */
7700 break;
7701
7702 case 268: /* call_decl_vars */
7703 #line 342 "src/parser_proc_grammar.y" /* glr.c:851 */
7704 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7705 #line 7706 "src/parser_proc.c" /* glr.c:851 */
7706 break;
7707
7708 case 269: /* set_stmt */
7709 #line 374 "src/parser_proc_grammar.y" /* glr.c:851 */
7710 {psi_set_stmt_free(&(*(struct psi_set_stmt **)(&(*yyvaluep))));}
7711 #line 7712 "src/parser_proc.c" /* glr.c:851 */
7712 break;
7713
7714 case 270: /* set_exp */
7715 #line 376 "src/parser_proc_grammar.y" /* glr.c:851 */
7716 {psi_set_exp_free(&(*(struct psi_set_exp **)(&(*yyvaluep))));}
7717 #line 7718 "src/parser_proc.c" /* glr.c:851 */
7718 break;
7719
7720 case 271: /* set_func */
7721 #line 378 "src/parser_proc_grammar.y" /* glr.c:851 */
7722 {psi_set_func_free(&(*(struct psi_set_func **)(&(*yyvaluep))));}
7723 #line 7724 "src/parser_proc.c" /* glr.c:851 */
7724 break;
7725
7726 case 272: /* set_func_token */
7727 #line 393 "src/parser_proc_grammar.y" /* glr.c:851 */
7728 {}
7729 #line 7730 "src/parser_proc.c" /* glr.c:851 */
7730 break;
7731
7732 case 273: /* set_func_exps */
7733 #line 395 "src/parser_proc_grammar.y" /* glr.c:851 */
7734 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7735 #line 7736 "src/parser_proc.c" /* glr.c:851 */
7736 break;
7737
7738 case 274: /* set_exps */
7739 #line 395 "src/parser_proc_grammar.y" /* glr.c:851 */
7740 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7741 #line 7742 "src/parser_proc.c" /* glr.c:851 */
7742 break;
7743
7744 case 275: /* assert_stmt */
7745 #line 380 "src/parser_proc_grammar.y" /* glr.c:851 */
7746 {psi_assert_stmt_free(&(*(struct psi_assert_stmt **)(&(*yyvaluep))));}
7747 #line 7748 "src/parser_proc.c" /* glr.c:851 */
7748 break;
7749
7750 case 276: /* assert_stmt_token */
7751 #line 393 "src/parser_proc_grammar.y" /* glr.c:851 */
7752 {}
7753 #line 7754 "src/parser_proc.c" /* glr.c:851 */
7754 break;
7755
7756 case 277: /* free_stmt */
7757 #line 386 "src/parser_proc_grammar.y" /* glr.c:851 */
7758 {psi_free_stmt_free(&(*(struct psi_free_stmt **)(&(*yyvaluep))));}
7759 #line 7760 "src/parser_proc.c" /* glr.c:851 */
7760 break;
7761
7762 case 278: /* free_exps */
7763 #line 395 "src/parser_proc_grammar.y" /* glr.c:851 */
7764 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7765 #line 7766 "src/parser_proc.c" /* glr.c:851 */
7766 break;
7767
7768 case 279: /* free_exp */
7769 #line 388 "src/parser_proc_grammar.y" /* glr.c:851 */
7770 {psi_free_exp_free(&(*(struct psi_free_exp **)(&(*yyvaluep))));}
7771 #line 7772 "src/parser_proc.c" /* glr.c:851 */
7772 break;
7773
7774 case 280: /* reference */
7775 #line 405 "src/parser_proc_grammar.y" /* glr.c:851 */
7776 {}
7777 #line 7778 "src/parser_proc.c" /* glr.c:851 */
7778 break;
7779
7780
7781 default:
7782 break;
7783 }
7784 YY_IGNORE_MAYBE_UNINITIALIZED_END
7785 }
7786
7787 /** Number of symbols composing the right hand side of rule #RULE. */
7788 static inline int
7789 yyrhsLength (yyRuleNum yyrule)
7790 {
7791 return yyr2[yyrule];
7792 }
7793
7794 static void
7795 yydestroyGLRState (char const *yymsg, yyGLRState *yys, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7796 {
7797 if (yys->yyresolved)
7798 yydestruct (yymsg, yystos[yys->yylrState],
7799 &yys->yysemantics.yysval, P, tokens, index);
7800 else
7801 {
7802 #if YYDEBUG
7803 if (yydebug)
7804 {
7805 if (yys->yysemantics.yyfirstVal)
7806 YYFPRINTF (stderr, "%s unresolved", yymsg);
7807 else
7808 YYFPRINTF (stderr, "%s incomplete", yymsg);
7809 YY_SYMBOL_PRINT ("", yystos[yys->yylrState], YY_NULLPTR, &yys->yyloc);
7810 }
7811 #endif
7812
7813 if (yys->yysemantics.yyfirstVal)
7814 {
7815 yySemanticOption *yyoption = yys->yysemantics.yyfirstVal;
7816 yyGLRState *yyrh;
7817 int yyn;
7818 for (yyrh = yyoption->yystate, yyn = yyrhsLength (yyoption->yyrule);
7819 yyn > 0;
7820 yyrh = yyrh->yypred, yyn -= 1)
7821 yydestroyGLRState (yymsg, yyrh, P, tokens, index);
7822 }
7823 }
7824 }
7825
7826 /** Left-hand-side symbol for rule #YYRULE. */
7827 static inline yySymbol
7828 yylhsNonterm (yyRuleNum yyrule)
7829 {
7830 return yyr1[yyrule];
7831 }
7832
7833 #define yypact_value_is_default(Yystate) \
7834 (!!((Yystate) == (-731)))
7835
7836 /** True iff LR state YYSTATE has only a default reduction (regardless
7837 * of token). */
7838 static inline yybool
7839 yyisDefaultedState (yyStateNum yystate)
7840 {
7841 return (yybool) yypact_value_is_default (yypact[yystate]);
7842 }
7843
7844 /** The default reduction for YYSTATE, assuming it has one. */
7845 static inline yyRuleNum
7846 yydefaultAction (yyStateNum yystate)
7847 {
7848 return yydefact[yystate];
7849 }
7850
7851 #define yytable_value_is_error(Yytable_value) \
7852 0
7853
7854 /** Set *YYACTION to the action to take in YYSTATE on seeing YYTOKEN.
7855 * Result R means
7856 * R < 0: Reduce on rule -R.
7857 * R = 0: Error.
7858 * R > 0: Shift to state R.
7859 * Set *YYCONFLICTS to a pointer into yyconfl to a 0-terminated list
7860 * of conflicting reductions.
7861 */
7862 static inline void
7863 yygetLRActions (yyStateNum yystate, int yytoken,
7864 int* yyaction, const short** yyconflicts)
7865 {
7866 int yyindex = yypact[yystate] + yytoken;
7867 if (yyisDefaultedState (yystate)
7868 || yyindex < 0 || YYLAST < yyindex || yycheck[yyindex] != yytoken)
7869 {
7870 *yyaction = -yydefact[yystate];
7871 *yyconflicts = yyconfl;
7872 }
7873 else if (! yytable_value_is_error (yytable[yyindex]))
7874 {
7875 *yyaction = yytable[yyindex];
7876 *yyconflicts = yyconfl + yyconflp[yyindex];
7877 }
7878 else
7879 {
7880 *yyaction = 0;
7881 *yyconflicts = yyconfl + yyconflp[yyindex];
7882 }
7883 }
7884
7885 /** Compute post-reduction state.
7886 * \param yystate the current state
7887 * \param yysym the nonterminal to push on the stack
7888 */
7889 static inline yyStateNum
7890 yyLRgotoState (yyStateNum yystate, yySymbol yysym)
7891 {
7892 int yyr = yypgoto[yysym - YYNTOKENS] + yystate;
7893 if (0 <= yyr && yyr <= YYLAST && yycheck[yyr] == yystate)
7894 return yytable[yyr];
7895 else
7896 return yydefgoto[yysym - YYNTOKENS];
7897 }
7898
7899 static inline yybool
7900 yyisShiftAction (int yyaction)
7901 {
7902 return (yybool) (0 < yyaction);
7903 }
7904
7905 static inline yybool
7906 yyisErrorAction (int yyaction)
7907 {
7908 return (yybool) (yyaction == 0);
7909 }
7910
7911 /* GLRStates */
7912
7913 /** Return a fresh GLRStackItem in YYSTACKP. The item is an LR state
7914 * if YYISSTATE, and otherwise a semantic option. Callers should call
7915 * YY_RESERVE_GLRSTACK afterwards to make sure there is sufficient
7916 * headroom. */
7917
7918 static inline yyGLRStackItem*
7919 yynewGLRStackItem (yyGLRStack* yystackp, yybool yyisState)
7920 {
7921 yyGLRStackItem* yynewItem = yystackp->yynextFree;
7922 yystackp->yyspaceLeft -= 1;
7923 yystackp->yynextFree += 1;
7924 yynewItem->yystate.yyisState = yyisState;
7925 return yynewItem;
7926 }
7927
7928 /** Add a new semantic action that will execute the action for rule
7929 * YYRULE on the semantic values in YYRHS to the list of
7930 * alternative actions for YYSTATE. Assumes that YYRHS comes from
7931 * stack #YYK of *YYSTACKP. */
7932 static void
7933 yyaddDeferredAction (yyGLRStack* yystackp, size_t yyk, yyGLRState* yystate,
7934 yyGLRState* yyrhs, yyRuleNum yyrule)
7935 {
7936 yySemanticOption* yynewOption =
7937 &yynewGLRStackItem (yystackp, yyfalse)->yyoption;
7938 YYASSERT (!yynewOption->yyisState);
7939 yynewOption->yystate = yyrhs;
7940 yynewOption->yyrule = yyrule;
7941 if (yystackp->yytops.yylookaheadNeeds[yyk])
7942 {
7943 yynewOption->yyrawchar = yychar;
7944 yynewOption->yyval = yylval;
7945 }
7946 else
7947 yynewOption->yyrawchar = YYEMPTY;
7948 yynewOption->yynext = yystate->yysemantics.yyfirstVal;
7949 yystate->yysemantics.yyfirstVal = yynewOption;
7950
7951 YY_RESERVE_GLRSTACK (yystackp);
7952 }
7953
7954 /* GLRStacks */
7955
7956 /** Initialize YYSET to a singleton set containing an empty stack. */
7957 static yybool
7958 yyinitStateSet (yyGLRStateSet* yyset)
7959 {
7960 yyset->yysize = 1;
7961 yyset->yycapacity = 16;
7962 yyset->yystates = (yyGLRState**) YYMALLOC (16 * sizeof yyset->yystates[0]);
7963 if (! yyset->yystates)
7964 return yyfalse;
7965 yyset->yystates[0] = YY_NULLPTR;
7966 yyset->yylookaheadNeeds =
7967 (yybool*) YYMALLOC (16 * sizeof yyset->yylookaheadNeeds[0]);
7968 if (! yyset->yylookaheadNeeds)
7969 {
7970 YYFREE (yyset->yystates);
7971 return yyfalse;
7972 }
7973 return yytrue;
7974 }
7975
7976 static void yyfreeStateSet (yyGLRStateSet* yyset)
7977 {
7978 YYFREE (yyset->yystates);
7979 YYFREE (yyset->yylookaheadNeeds);
7980 }
7981
7982 /** Initialize *YYSTACKP to a single empty stack, with total maximum
7983 * capacity for all stacks of YYSIZE. */
7984 static yybool
7985 yyinitGLRStack (yyGLRStack* yystackp, size_t yysize)
7986 {
7987 yystackp->yyerrState = 0;
7988 yynerrs = 0;
7989 yystackp->yyspaceLeft = yysize;
7990 yystackp->yyitems =
7991 (yyGLRStackItem*) YYMALLOC (yysize * sizeof yystackp->yynextFree[0]);
7992 if (!yystackp->yyitems)
7993 return yyfalse;
7994 yystackp->yynextFree = yystackp->yyitems;
7995 yystackp->yysplitPoint = YY_NULLPTR;
7996 yystackp->yylastDeleted = YY_NULLPTR;
7997 return yyinitStateSet (&yystackp->yytops);
7998 }
7999
8000
8001 #if YYSTACKEXPANDABLE
8002 # define YYRELOC(YYFROMITEMS,YYTOITEMS,YYX,YYTYPE) \
8003 &((YYTOITEMS) - ((YYFROMITEMS) - (yyGLRStackItem*) (YYX)))->YYTYPE
8004
8005 /** If *YYSTACKP is expandable, extend it. WARNING: Pointers into the
8006 stack from outside should be considered invalid after this call.
8007 We always expand when there are 1 or fewer items left AFTER an
8008 allocation, so that we can avoid having external pointers exist
8009 across an allocation. */
8010 static void
8011 yyexpandGLRStack (yyGLRStack* yystackp)
8012 {
8013 yyGLRStackItem* yynewItems;
8014 yyGLRStackItem* yyp0, *yyp1;
8015 size_t yynewSize;
8016 size_t yyn;
8017 size_t yysize = (size_t) (yystackp->yynextFree - yystackp->yyitems);
8018 if (YYMAXDEPTH - YYHEADROOM < yysize)
8019 yyMemoryExhausted (yystackp);
8020 yynewSize = 2*yysize;
8021 if (YYMAXDEPTH < yynewSize)
8022 yynewSize = YYMAXDEPTH;
8023 yynewItems = (yyGLRStackItem*) YYMALLOC (yynewSize * sizeof yynewItems[0]);
8024 if (! yynewItems)
8025 yyMemoryExhausted (yystackp);
8026 for (yyp0 = yystackp->yyitems, yyp1 = yynewItems, yyn = yysize;
8027 0 < yyn;
8028 yyn -= 1, yyp0 += 1, yyp1 += 1)
8029 {
8030 *yyp1 = *yyp0;
8031 if (*(yybool *) yyp0)
8032 {
8033 yyGLRState* yys0 = &yyp0->yystate;
8034 yyGLRState* yys1 = &yyp1->yystate;
8035 if (yys0->yypred != YY_NULLPTR)
8036 yys1->yypred =
8037 YYRELOC (yyp0, yyp1, yys0->yypred, yystate);
8038 if (! yys0->yyresolved && yys0->yysemantics.yyfirstVal != YY_NULLPTR)
8039 yys1->yysemantics.yyfirstVal =
8040 YYRELOC (yyp0, yyp1, yys0->yysemantics.yyfirstVal, yyoption);
8041 }
8042 else
8043 {
8044 yySemanticOption* yyv0 = &yyp0->yyoption;
8045 yySemanticOption* yyv1 = &yyp1->yyoption;
8046 if (yyv0->yystate != YY_NULLPTR)
8047 yyv1->yystate = YYRELOC (yyp0, yyp1, yyv0->yystate, yystate);
8048 if (yyv0->yynext != YY_NULLPTR)
8049 yyv1->yynext = YYRELOC (yyp0, yyp1, yyv0->yynext, yyoption);
8050 }
8051 }
8052 if (yystackp->yysplitPoint != YY_NULLPTR)
8053 yystackp->yysplitPoint = YYRELOC (yystackp->yyitems, yynewItems,
8054 yystackp->yysplitPoint, yystate);
8055
8056 for (yyn = 0; yyn < yystackp->yytops.yysize; yyn += 1)
8057 if (yystackp->yytops.yystates[yyn] != YY_NULLPTR)
8058 yystackp->yytops.yystates[yyn] =
8059 YYRELOC (yystackp->yyitems, yynewItems,
8060 yystackp->yytops.yystates[yyn], yystate);
8061 YYFREE (yystackp->yyitems);
8062 yystackp->yyitems = yynewItems;
8063 yystackp->yynextFree = yynewItems + yysize;
8064 yystackp->yyspaceLeft = yynewSize - yysize;
8065 }
8066 #endif
8067
8068 static void
8069 yyfreeGLRStack (yyGLRStack* yystackp)
8070 {
8071 YYFREE (yystackp->yyitems);
8072 yyfreeStateSet (&yystackp->yytops);
8073 }
8074
8075 /** Assuming that YYS is a GLRState somewhere on *YYSTACKP, update the
8076 * splitpoint of *YYSTACKP, if needed, so that it is at least as deep as
8077 * YYS. */
8078 static inline void
8079 yyupdateSplit (yyGLRStack* yystackp, yyGLRState* yys)
8080 {
8081 if (yystackp->yysplitPoint != YY_NULLPTR && yystackp->yysplitPoint > yys)
8082 yystackp->yysplitPoint = yys;
8083 }
8084
8085 /** Invalidate stack #YYK in *YYSTACKP. */
8086 static inline void
8087 yymarkStackDeleted (yyGLRStack* yystackp, size_t yyk)
8088 {
8089 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
8090 yystackp->yylastDeleted = yystackp->yytops.yystates[yyk];
8091 yystackp->yytops.yystates[yyk] = YY_NULLPTR;
8092 }
8093
8094 /** Undelete the last stack in *YYSTACKP that was marked as deleted. Can
8095 only be done once after a deletion, and only when all other stacks have
8096 been deleted. */
8097 static void
8098 yyundeleteLastStack (yyGLRStack* yystackp)
8099 {
8100 if (yystackp->yylastDeleted == YY_NULLPTR || yystackp->yytops.yysize != 0)
8101 return;
8102 yystackp->yytops.yystates[0] = yystackp->yylastDeleted;
8103 yystackp->yytops.yysize = 1;
8104 YYDPRINTF ((stderr, "Restoring last deleted stack as stack #0.\n"));
8105 yystackp->yylastDeleted = YY_NULLPTR;
8106 }
8107
8108 static inline void
8109 yyremoveDeletes (yyGLRStack* yystackp)
8110 {
8111 size_t yyi, yyj;
8112 yyi = yyj = 0;
8113 while (yyj < yystackp->yytops.yysize)
8114 {
8115 if (yystackp->yytops.yystates[yyi] == YY_NULLPTR)
8116 {
8117 if (yyi == yyj)
8118 {
8119 YYDPRINTF ((stderr, "Removing dead stacks.\n"));
8120 }
8121 yystackp->yytops.yysize -= 1;
8122 }
8123 else
8124 {
8125 yystackp->yytops.yystates[yyj] = yystackp->yytops.yystates[yyi];
8126 /* In the current implementation, it's unnecessary to copy
8127 yystackp->yytops.yylookaheadNeeds[yyi] since, after
8128 yyremoveDeletes returns, the parser immediately either enters
8129 deterministic operation or shifts a token. However, it doesn't
8130 hurt, and the code might evolve to need it. */
8131 yystackp->yytops.yylookaheadNeeds[yyj] =
8132 yystackp->yytops.yylookaheadNeeds[yyi];
8133 if (yyj != yyi)
8134 {
8135 YYDPRINTF ((stderr, "Rename stack %lu -> %lu.\n",
8136 (unsigned long) yyi, (unsigned long) yyj));
8137 }
8138 yyj += 1;
8139 }
8140 yyi += 1;
8141 }
8142 }
8143
8144 /** Shift to a new state on stack #YYK of *YYSTACKP, corresponding to LR
8145 * state YYLRSTATE, at input position YYPOSN, with (resolved) semantic
8146 * value *YYVALP and source location *YYLOCP. */
8147 static inline void
8148 yyglrShift (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
8149 size_t yyposn,
8150 YYSTYPE* yyvalp)
8151 {
8152 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
8153
8154 yynewState->yylrState = yylrState;
8155 yynewState->yyposn = yyposn;
8156 yynewState->yyresolved = yytrue;
8157 yynewState->yypred = yystackp->yytops.yystates[yyk];
8158 yynewState->yysemantics.yysval = *yyvalp;
8159 yystackp->yytops.yystates[yyk] = yynewState;
8160
8161 YY_RESERVE_GLRSTACK (yystackp);
8162 }
8163
8164 /** Shift stack #YYK of *YYSTACKP, to a new state corresponding to LR
8165 * state YYLRSTATE, at input position YYPOSN, with the (unresolved)
8166 * semantic value of YYRHS under the action for YYRULE. */
8167 static inline void
8168 yyglrShiftDefer (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
8169 size_t yyposn, yyGLRState* yyrhs, yyRuleNum yyrule)
8170 {
8171 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
8172 YYASSERT (yynewState->yyisState);
8173
8174 yynewState->yylrState = yylrState;
8175 yynewState->yyposn = yyposn;
8176 yynewState->yyresolved = yyfalse;
8177 yynewState->yypred = yystackp->yytops.yystates[yyk];
8178 yynewState->yysemantics.yyfirstVal = YY_NULLPTR;
8179 yystackp->yytops.yystates[yyk] = yynewState;
8180
8181 /* Invokes YY_RESERVE_GLRSTACK. */
8182 yyaddDeferredAction (yystackp, yyk, yynewState, yyrhs, yyrule);
8183 }
8184
8185 #if !YYDEBUG
8186 # define YY_REDUCE_PRINT(Args)
8187 #else
8188 # define YY_REDUCE_PRINT(Args) \
8189 do { \
8190 if (yydebug) \
8191 yy_reduce_print Args; \
8192 } while (0)
8193
8194 /*----------------------------------------------------------------------.
8195 | Report that stack #YYK of *YYSTACKP is going to be reduced by YYRULE. |
8196 `----------------------------------------------------------------------*/
8197
8198 static inline void
8199 yy_reduce_print (yybool yynormal, yyGLRStackItem* yyvsp, size_t yyk,
8200 yyRuleNum yyrule, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8201 {
8202 int yynrhs = yyrhsLength (yyrule);
8203 int yyi;
8204 YYFPRINTF (stderr, "Reducing stack %lu by rule %d (line %lu):\n",
8205 (unsigned long) yyk, yyrule - 1,
8206 (unsigned long) yyrline[yyrule]);
8207 if (! yynormal)
8208 yyfillin (yyvsp, 1, -yynrhs);
8209 /* The symbols being reduced. */
8210 for (yyi = 0; yyi < yynrhs; yyi++)
8211 {
8212 YYFPRINTF (stderr, " $%d = ", yyi + 1);
8213 yy_symbol_print (stderr,
8214 yystos[yyvsp[yyi - yynrhs + 1].yystate.yylrState],
8215 &yyvsp[yyi - yynrhs + 1].yystate.yysemantics.yysval , P, tokens, index);
8216 if (!yyvsp[yyi - yynrhs + 1].yystate.yyresolved)
8217 YYFPRINTF (stderr, " (unresolved)");
8218 YYFPRINTF (stderr, "\n");
8219 }
8220 }
8221 #endif
8222
8223 /** Pop the symbols consumed by reduction #YYRULE from the top of stack
8224 * #YYK of *YYSTACKP, and perform the appropriate semantic action on their
8225 * semantic values. Assumes that all ambiguities in semantic values
8226 * have been previously resolved. Set *YYVALP to the resulting value,
8227 * and *YYLOCP to the computed location (if any). Return value is as
8228 * for userAction. */
8229 static inline YYRESULTTAG
8230 yydoAction (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
8231 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8232 {
8233 int yynrhs = yyrhsLength (yyrule);
8234
8235 if (yystackp->yysplitPoint == YY_NULLPTR)
8236 {
8237 /* Standard special case: single stack. */
8238 yyGLRStackItem* yyrhs = (yyGLRStackItem*) yystackp->yytops.yystates[yyk];
8239 YYASSERT (yyk == 0);
8240 yystackp->yynextFree -= yynrhs;
8241 yystackp->yyspaceLeft += (size_t) yynrhs;
8242 yystackp->yytops.yystates[0] = & yystackp->yynextFree[-1].yystate;
8243 YY_REDUCE_PRINT ((yytrue, yyrhs, yyk, yyrule, P, tokens, index));
8244 return yyuserAction (yyrule, yynrhs, yyrhs, yystackp,
8245 yyvalp, P, tokens, index);
8246 }
8247 else
8248 {
8249 int yyi;
8250 yyGLRState* yys;
8251 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
8252 yys = yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred
8253 = yystackp->yytops.yystates[yyk];
8254 for (yyi = 0; yyi < yynrhs; yyi += 1)
8255 {
8256 yys = yys->yypred;
8257 YYASSERT (yys);
8258 }
8259 yyupdateSplit (yystackp, yys);
8260 yystackp->yytops.yystates[yyk] = yys;
8261 YY_REDUCE_PRINT ((yyfalse, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1, yyk, yyrule, P, tokens, index));
8262 return yyuserAction (yyrule, yynrhs, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
8263 yystackp, yyvalp, P, tokens, index);
8264 }
8265 }
8266
8267 /** Pop items off stack #YYK of *YYSTACKP according to grammar rule YYRULE,
8268 * and push back on the resulting nonterminal symbol. Perform the
8269 * semantic action associated with YYRULE and store its value with the
8270 * newly pushed state, if YYFORCEEVAL or if *YYSTACKP is currently
8271 * unambiguous. Otherwise, store the deferred semantic action with
8272 * the new state. If the new state would have an identical input
8273 * position, LR state, and predecessor to an existing state on the stack,
8274 * it is identified with that existing state, eliminating stack #YYK from
8275 * *YYSTACKP. In this case, the semantic value is
8276 * added to the options for the existing state's semantic value.
8277 */
8278 static inline YYRESULTTAG
8279 yyglrReduce (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
8280 yybool yyforceEval, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8281 {
8282 size_t yyposn = yystackp->yytops.yystates[yyk]->yyposn;
8283
8284 if (yyforceEval || yystackp->yysplitPoint == YY_NULLPTR)
8285 {
8286 YYSTYPE yysval;
8287
8288 YYRESULTTAG yyflag = yydoAction (yystackp, yyk, yyrule, &yysval, P, tokens, index);
8289 if (yyflag == yyerr && yystackp->yysplitPoint != YY_NULLPTR)
8290 {
8291 YYDPRINTF ((stderr, "Parse on stack %lu rejected by rule #%d.\n",
8292 (unsigned long) yyk, yyrule - 1));
8293 }
8294 if (yyflag != yyok)
8295 return yyflag;
8296 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyrule], &yysval, &yyloc);
8297 yyglrShift (yystackp, yyk,
8298 yyLRgotoState (yystackp->yytops.yystates[yyk]->yylrState,
8299 yylhsNonterm (yyrule)),
8300 yyposn, &yysval);
8301 }
8302 else
8303 {
8304 size_t yyi;
8305 int yyn;
8306 yyGLRState* yys, *yys0 = yystackp->yytops.yystates[yyk];
8307 yyStateNum yynewLRState;
8308
8309 for (yys = yystackp->yytops.yystates[yyk], yyn = yyrhsLength (yyrule);
8310 0 < yyn; yyn -= 1)
8311 {
8312 yys = yys->yypred;
8313 YYASSERT (yys);
8314 }
8315 yyupdateSplit (yystackp, yys);
8316 yynewLRState = yyLRgotoState (yys->yylrState, yylhsNonterm (yyrule));
8317 YYDPRINTF ((stderr,
8318 "Reduced stack %lu by rule #%d; action deferred. "
8319 "Now in state %d.\n",
8320 (unsigned long) yyk, yyrule - 1, yynewLRState));
8321 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
8322 if (yyi != yyk && yystackp->yytops.yystates[yyi] != YY_NULLPTR)
8323 {
8324 yyGLRState *yysplit = yystackp->yysplitPoint;
8325 yyGLRState *yyp = yystackp->yytops.yystates[yyi];
8326 while (yyp != yys && yyp != yysplit && yyp->yyposn >= yyposn)
8327 {
8328 if (yyp->yylrState == yynewLRState && yyp->yypred == yys)
8329 {
8330 yyaddDeferredAction (yystackp, yyk, yyp, yys0, yyrule);
8331 yymarkStackDeleted (yystackp, yyk);
8332 YYDPRINTF ((stderr, "Merging stack %lu into stack %lu.\n",
8333 (unsigned long) yyk,
8334 (unsigned long) yyi));
8335 return yyok;
8336 }
8337 yyp = yyp->yypred;
8338 }
8339 }
8340 yystackp->yytops.yystates[yyk] = yys;
8341 yyglrShiftDefer (yystackp, yyk, yynewLRState, yyposn, yys0, yyrule);
8342 }
8343 return yyok;
8344 }
8345
8346 static size_t
8347 yysplitStack (yyGLRStack* yystackp, size_t yyk)
8348 {
8349 if (yystackp->yysplitPoint == YY_NULLPTR)
8350 {
8351 YYASSERT (yyk == 0);
8352 yystackp->yysplitPoint = yystackp->yytops.yystates[yyk];
8353 }
8354 if (yystackp->yytops.yysize >= yystackp->yytops.yycapacity)
8355 {
8356 yyGLRState** yynewStates = YY_NULLPTR;
8357 yybool* yynewLookaheadNeeds;
8358
8359 if (yystackp->yytops.yycapacity
8360 > (YYSIZEMAX / (2 * sizeof yynewStates[0])))
8361 yyMemoryExhausted (yystackp);
8362 yystackp->yytops.yycapacity *= 2;
8363
8364 yynewStates =
8365 (yyGLRState**) YYREALLOC (yystackp->yytops.yystates,
8366 (yystackp->yytops.yycapacity
8367 * sizeof yynewStates[0]));
8368 if (yynewStates == YY_NULLPTR)
8369 yyMemoryExhausted (yystackp);
8370 yystackp->yytops.yystates = yynewStates;
8371
8372 yynewLookaheadNeeds =
8373 (yybool*) YYREALLOC (yystackp->yytops.yylookaheadNeeds,
8374 (yystackp->yytops.yycapacity
8375 * sizeof yynewLookaheadNeeds[0]));
8376 if (yynewLookaheadNeeds == YY_NULLPTR)
8377 yyMemoryExhausted (yystackp);
8378 yystackp->yytops.yylookaheadNeeds = yynewLookaheadNeeds;
8379 }
8380 yystackp->yytops.yystates[yystackp->yytops.yysize]
8381 = yystackp->yytops.yystates[yyk];
8382 yystackp->yytops.yylookaheadNeeds[yystackp->yytops.yysize]
8383 = yystackp->yytops.yylookaheadNeeds[yyk];
8384 yystackp->yytops.yysize += 1;
8385 return yystackp->yytops.yysize-1;
8386 }
8387
8388 /** True iff YYY0 and YYY1 represent identical options at the top level.
8389 * That is, they represent the same rule applied to RHS symbols
8390 * that produce the same terminal symbols. */
8391 static yybool
8392 yyidenticalOptions (yySemanticOption* yyy0, yySemanticOption* yyy1)
8393 {
8394 if (yyy0->yyrule == yyy1->yyrule)
8395 {
8396 yyGLRState *yys0, *yys1;
8397 int yyn;
8398 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
8399 yyn = yyrhsLength (yyy0->yyrule);
8400 yyn > 0;
8401 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
8402 if (yys0->yyposn != yys1->yyposn)
8403 return yyfalse;
8404 return yytrue;
8405 }
8406 else
8407 return yyfalse;
8408 }
8409
8410 /** Assuming identicalOptions (YYY0,YYY1), destructively merge the
8411 * alternative semantic values for the RHS-symbols of YYY1 and YYY0. */
8412 static void
8413 yymergeOptionSets (yySemanticOption* yyy0, yySemanticOption* yyy1)
8414 {
8415 yyGLRState *yys0, *yys1;
8416 int yyn;
8417 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
8418 yyn = yyrhsLength (yyy0->yyrule);
8419 yyn > 0;
8420 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
8421 {
8422 if (yys0 == yys1)
8423 break;
8424 else if (yys0->yyresolved)
8425 {
8426 yys1->yyresolved = yytrue;
8427 yys1->yysemantics.yysval = yys0->yysemantics.yysval;
8428 }
8429 else if (yys1->yyresolved)
8430 {
8431 yys0->yyresolved = yytrue;
8432 yys0->yysemantics.yysval = yys1->yysemantics.yysval;
8433 }
8434 else
8435 {
8436 yySemanticOption** yyz0p = &yys0->yysemantics.yyfirstVal;
8437 yySemanticOption* yyz1 = yys1->yysemantics.yyfirstVal;
8438 while (yytrue)
8439 {
8440 if (yyz1 == *yyz0p || yyz1 == YY_NULLPTR)
8441 break;
8442 else if (*yyz0p == YY_NULLPTR)
8443 {
8444 *yyz0p = yyz1;
8445 break;
8446 }
8447 else if (*yyz0p < yyz1)
8448 {
8449 yySemanticOption* yyz = *yyz0p;
8450 *yyz0p = yyz1;
8451 yyz1 = yyz1->yynext;
8452 (*yyz0p)->yynext = yyz;
8453 }
8454 yyz0p = &(*yyz0p)->yynext;
8455 }
8456 yys1->yysemantics.yyfirstVal = yys0->yysemantics.yyfirstVal;
8457 }
8458 }
8459 }
8460
8461 /** Y0 and Y1 represent two possible actions to take in a given
8462 * parsing state; return 0 if no combination is possible,
8463 * 1 if user-mergeable, 2 if Y0 is preferred, 3 if Y1 is preferred. */
8464 static int
8465 yypreference (yySemanticOption* y0, yySemanticOption* y1)
8466 {
8467 yyRuleNum r0 = y0->yyrule, r1 = y1->yyrule;
8468 int p0 = yydprec[r0], p1 = yydprec[r1];
8469
8470 if (p0 == p1)
8471 {
8472 if (yymerger[r0] == 0 || yymerger[r0] != yymerger[r1])
8473 return 0;
8474 else
8475 return 1;
8476 }
8477 if (p0 == 0 || p1 == 0)
8478 return 0;
8479 if (p0 < p1)
8480 return 3;
8481 if (p1 < p0)
8482 return 2;
8483 return 0;
8484 }
8485
8486 static YYRESULTTAG yyresolveValue (yyGLRState* yys,
8487 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index);
8488
8489
8490 /** Resolve the previous YYN states starting at and including state YYS
8491 * on *YYSTACKP. If result != yyok, some states may have been left
8492 * unresolved possibly with empty semantic option chains. Regardless
8493 * of whether result = yyok, each state has been left with consistent
8494 * data so that yydestroyGLRState can be invoked if necessary. */
8495 static YYRESULTTAG
8496 yyresolveStates (yyGLRState* yys, int yyn,
8497 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8498 {
8499 if (0 < yyn)
8500 {
8501 YYASSERT (yys->yypred);
8502 YYCHK (yyresolveStates (yys->yypred, yyn-1, yystackp, P, tokens, index));
8503 if (! yys->yyresolved)
8504 YYCHK (yyresolveValue (yys, yystackp, P, tokens, index));
8505 }
8506 return yyok;
8507 }
8508
8509 /** Resolve the states for the RHS of YYOPT on *YYSTACKP, perform its
8510 * user action, and return the semantic value and location in *YYVALP
8511 * and *YYLOCP. Regardless of whether result = yyok, all RHS states
8512 * have been destroyed (assuming the user action destroys all RHS
8513 * semantic values if invoked). */
8514 static YYRESULTTAG
8515 yyresolveAction (yySemanticOption* yyopt, yyGLRStack* yystackp,
8516 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8517 {
8518 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
8519 int yynrhs = yyrhsLength (yyopt->yyrule);
8520 YYRESULTTAG yyflag =
8521 yyresolveStates (yyopt->yystate, yynrhs, yystackp, P, tokens, index);
8522 if (yyflag != yyok)
8523 {
8524 yyGLRState *yys;
8525 for (yys = yyopt->yystate; yynrhs > 0; yys = yys->yypred, yynrhs -= 1)
8526 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
8527 return yyflag;
8528 }
8529
8530 yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred = yyopt->yystate;
8531 {
8532 int yychar_current = yychar;
8533 YYSTYPE yylval_current = yylval;
8534 yychar = yyopt->yyrawchar;
8535 yylval = yyopt->yyval;
8536 yyflag = yyuserAction (yyopt->yyrule, yynrhs,
8537 yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
8538 yystackp, yyvalp, P, tokens, index);
8539 yychar = yychar_current;
8540 yylval = yylval_current;
8541 }
8542 return yyflag;
8543 }
8544
8545 #if YYDEBUG
8546 static void
8547 yyreportTree (yySemanticOption* yyx, int yyindent)
8548 {
8549 int yynrhs = yyrhsLength (yyx->yyrule);
8550 int yyi;
8551 yyGLRState* yys;
8552 yyGLRState* yystates[1 + YYMAXRHS];
8553 yyGLRState yyleftmost_state;
8554
8555 for (yyi = yynrhs, yys = yyx->yystate; 0 < yyi; yyi -= 1, yys = yys->yypred)
8556 yystates[yyi] = yys;
8557 if (yys == YY_NULLPTR)
8558 {
8559 yyleftmost_state.yyposn = 0;
8560 yystates[0] = &yyleftmost_state;
8561 }
8562 else
8563 yystates[0] = yys;
8564
8565 if (yyx->yystate->yyposn < yys->yyposn + 1)
8566 YYFPRINTF (stderr, "%*s%s -> <Rule %d, empty>\n",
8567 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
8568 yyx->yyrule - 1);
8569 else
8570 YYFPRINTF (stderr, "%*s%s -> <Rule %d, tokens %lu .. %lu>\n",
8571 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
8572 yyx->yyrule - 1, (unsigned long) (yys->yyposn + 1),
8573 (unsigned long) yyx->yystate->yyposn);
8574 for (yyi = 1; yyi <= yynrhs; yyi += 1)
8575 {
8576 if (yystates[yyi]->yyresolved)
8577 {
8578 if (yystates[yyi-1]->yyposn+1 > yystates[yyi]->yyposn)
8579 YYFPRINTF (stderr, "%*s%s <empty>\n", yyindent+2, "",
8580 yytokenName (yystos[yystates[yyi]->yylrState]));
8581 else
8582 YYFPRINTF (stderr, "%*s%s <tokens %lu .. %lu>\n", yyindent+2, "",
8583 yytokenName (yystos[yystates[yyi]->yylrState]),
8584 (unsigned long) (yystates[yyi-1]->yyposn + 1),
8585 (unsigned long) yystates[yyi]->yyposn);
8586 }
8587 else
8588 yyreportTree (yystates[yyi]->yysemantics.yyfirstVal, yyindent+2);
8589 }
8590 }
8591 #endif
8592
8593 static YYRESULTTAG
8594 yyreportAmbiguity (yySemanticOption* yyx0,
8595 yySemanticOption* yyx1, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8596 {
8597 YYUSE (yyx0);
8598 YYUSE (yyx1);
8599
8600 #if YYDEBUG
8601 YYFPRINTF (stderr, "Ambiguity detected.\n");
8602 YYFPRINTF (stderr, "Option 1,\n");
8603 yyreportTree (yyx0, 2);
8604 YYFPRINTF (stderr, "\nOption 2,\n");
8605 yyreportTree (yyx1, 2);
8606 YYFPRINTF (stderr, "\n");
8607 #endif
8608
8609 yyerror (P, tokens, index, YY_("syntax is ambiguous"));
8610 return yyabort;
8611 }
8612
8613 /** Resolve the ambiguity represented in state YYS in *YYSTACKP,
8614 * perform the indicated actions, and set the semantic value of YYS.
8615 * If result != yyok, the chain of semantic options in YYS has been
8616 * cleared instead or it has been left unmodified except that
8617 * redundant options may have been removed. Regardless of whether
8618 * result = yyok, YYS has been left with consistent data so that
8619 * yydestroyGLRState can be invoked if necessary. */
8620 static YYRESULTTAG
8621 yyresolveValue (yyGLRState* yys, yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8622 {
8623 yySemanticOption* yyoptionList = yys->yysemantics.yyfirstVal;
8624 yySemanticOption* yybest = yyoptionList;
8625 yySemanticOption** yypp;
8626 yybool yymerge = yyfalse;
8627 YYSTYPE yysval;
8628 YYRESULTTAG yyflag;
8629
8630 for (yypp = &yyoptionList->yynext; *yypp != YY_NULLPTR; )
8631 {
8632 yySemanticOption* yyp = *yypp;
8633
8634 if (yyidenticalOptions (yybest, yyp))
8635 {
8636 yymergeOptionSets (yybest, yyp);
8637 *yypp = yyp->yynext;
8638 }
8639 else
8640 {
8641 switch (yypreference (yybest, yyp))
8642 {
8643 case 0:
8644 return yyreportAmbiguity (yybest, yyp, P, tokens, index);
8645 break;
8646 case 1:
8647 yymerge = yytrue;
8648 break;
8649 case 2:
8650 break;
8651 case 3:
8652 yybest = yyp;
8653 yymerge = yyfalse;
8654 break;
8655 default:
8656 /* This cannot happen so it is not worth a YYASSERT (yyfalse),
8657 but some compilers complain if the default case is
8658 omitted. */
8659 break;
8660 }
8661 yypp = &yyp->yynext;
8662 }
8663 }
8664
8665 if (yymerge)
8666 {
8667 yySemanticOption* yyp;
8668 int yyprec = yydprec[yybest->yyrule];
8669 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
8670 if (yyflag == yyok)
8671 for (yyp = yybest->yynext; yyp != YY_NULLPTR; yyp = yyp->yynext)
8672 {
8673 if (yyprec == yydprec[yyp->yyrule])
8674 {
8675 YYSTYPE yysval_other;
8676 yyflag = yyresolveAction (yyp, yystackp, &yysval_other, P, tokens, index);
8677 if (yyflag != yyok)
8678 {
8679 yydestruct ("Cleanup: discarding incompletely merged value for",
8680 yystos[yys->yylrState],
8681 &yysval, P, tokens, index);
8682 break;
8683 }
8684 yyuserMerge (yymerger[yyp->yyrule], &yysval, &yysval_other);
8685 }
8686 }
8687 }
8688 else
8689 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
8690
8691 if (yyflag == yyok)
8692 {
8693 yys->yyresolved = yytrue;
8694 yys->yysemantics.yysval = yysval;
8695 }
8696 else
8697 yys->yysemantics.yyfirstVal = YY_NULLPTR;
8698 return yyflag;
8699 }
8700
8701 static YYRESULTTAG
8702 yyresolveStack (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8703 {
8704 if (yystackp->yysplitPoint != YY_NULLPTR)
8705 {
8706 yyGLRState* yys;
8707 int yyn;
8708
8709 for (yyn = 0, yys = yystackp->yytops.yystates[0];
8710 yys != yystackp->yysplitPoint;
8711 yys = yys->yypred, yyn += 1)
8712 continue;
8713 YYCHK (yyresolveStates (yystackp->yytops.yystates[0], yyn, yystackp
8714 , P, tokens, index));
8715 }
8716 return yyok;
8717 }
8718
8719 static void
8720 yycompressStack (yyGLRStack* yystackp)
8721 {
8722 yyGLRState* yyp, *yyq, *yyr;
8723
8724 if (yystackp->yytops.yysize != 1 || yystackp->yysplitPoint == YY_NULLPTR)
8725 return;
8726
8727 for (yyp = yystackp->yytops.yystates[0], yyq = yyp->yypred, yyr = YY_NULLPTR;
8728 yyp != yystackp->yysplitPoint;
8729 yyr = yyp, yyp = yyq, yyq = yyp->yypred)
8730 yyp->yypred = yyr;
8731
8732 yystackp->yyspaceLeft += (size_t) (yystackp->yynextFree - yystackp->yyitems);
8733 yystackp->yynextFree = ((yyGLRStackItem*) yystackp->yysplitPoint) + 1;
8734 yystackp->yyspaceLeft -= (size_t) (yystackp->yynextFree - yystackp->yyitems);
8735 yystackp->yysplitPoint = YY_NULLPTR;
8736 yystackp->yylastDeleted = YY_NULLPTR;
8737
8738 while (yyr != YY_NULLPTR)
8739 {
8740 yystackp->yynextFree->yystate = *yyr;
8741 yyr = yyr->yypred;
8742 yystackp->yynextFree->yystate.yypred = &yystackp->yynextFree[-1].yystate;
8743 yystackp->yytops.yystates[0] = &yystackp->yynextFree->yystate;
8744 yystackp->yynextFree += 1;
8745 yystackp->yyspaceLeft -= 1;
8746 }
8747 }
8748
8749 static YYRESULTTAG
8750 yyprocessOneStack (yyGLRStack* yystackp, size_t yyk,
8751 size_t yyposn, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8752 {
8753 while (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
8754 {
8755 yyStateNum yystate = yystackp->yytops.yystates[yyk]->yylrState;
8756 YYDPRINTF ((stderr, "Stack %lu Entering state %d\n",
8757 (unsigned long) yyk, yystate));
8758
8759 YYASSERT (yystate != YYFINAL);
8760
8761 if (yyisDefaultedState (yystate))
8762 {
8763 YYRESULTTAG yyflag;
8764 yyRuleNum yyrule = yydefaultAction (yystate);
8765 if (yyrule == 0)
8766 {
8767 YYDPRINTF ((stderr, "Stack %lu dies.\n",
8768 (unsigned long) yyk));
8769 yymarkStackDeleted (yystackp, yyk);
8770 return yyok;
8771 }
8772 yyflag = yyglrReduce (yystackp, yyk, yyrule, yyimmediate[yyrule], P, tokens, index);
8773 if (yyflag == yyerr)
8774 {
8775 YYDPRINTF ((stderr,
8776 "Stack %lu dies "
8777 "(predicate failure or explicit user error).\n",
8778 (unsigned long) yyk));
8779 yymarkStackDeleted (yystackp, yyk);
8780 return yyok;
8781 }
8782 if (yyflag != yyok)
8783 return yyflag;
8784 }
8785 else
8786 {
8787 yySymbol yytoken;
8788 int yyaction;
8789 const short* yyconflicts;
8790
8791 yystackp->yytops.yylookaheadNeeds[yyk] = yytrue;
8792 if (yychar == YYEMPTY)
8793 {
8794 YYDPRINTF ((stderr, "Reading a token: "));
8795 yychar = yylex (&yylval, P, tokens, index);
8796 }
8797
8798 if (yychar <= YYEOF)
8799 {
8800 yychar = yytoken = YYEOF;
8801 YYDPRINTF ((stderr, "Now at end of input.\n"));
8802 }
8803 else
8804 {
8805 yytoken = YYTRANSLATE (yychar);
8806 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
8807 }
8808
8809 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
8810
8811 while (*yyconflicts != 0)
8812 {
8813 YYRESULTTAG yyflag;
8814 size_t yynewStack = yysplitStack (yystackp, yyk);
8815 YYDPRINTF ((stderr, "Splitting off stack %lu from %lu.\n",
8816 (unsigned long) yynewStack,
8817 (unsigned long) yyk));
8818 yyflag = yyglrReduce (yystackp, yynewStack,
8819 *yyconflicts,
8820 yyimmediate[*yyconflicts], P, tokens, index);
8821 if (yyflag == yyok)
8822 YYCHK (yyprocessOneStack (yystackp, yynewStack,
8823 yyposn, P, tokens, index));
8824 else if (yyflag == yyerr)
8825 {
8826 YYDPRINTF ((stderr, "Stack %lu dies.\n",
8827 (unsigned long) yynewStack));
8828 yymarkStackDeleted (yystackp, yynewStack);
8829 }
8830 else
8831 return yyflag;
8832 yyconflicts += 1;
8833 }
8834
8835 if (yyisShiftAction (yyaction))
8836 break;
8837 else if (yyisErrorAction (yyaction))
8838 {
8839 YYDPRINTF ((stderr, "Stack %lu dies.\n",
8840 (unsigned long) yyk));
8841 yymarkStackDeleted (yystackp, yyk);
8842 break;
8843 }
8844 else
8845 {
8846 YYRESULTTAG yyflag = yyglrReduce (yystackp, yyk, -yyaction,
8847 yyimmediate[-yyaction], P, tokens, index);
8848 if (yyflag == yyerr)
8849 {
8850 YYDPRINTF ((stderr,
8851 "Stack %lu dies "
8852 "(predicate failure or explicit user error).\n",
8853 (unsigned long) yyk));
8854 yymarkStackDeleted (yystackp, yyk);
8855 break;
8856 }
8857 else if (yyflag != yyok)
8858 return yyflag;
8859 }
8860 }
8861 }
8862 return yyok;
8863 }
8864
8865 static void
8866 yyreportSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8867 {
8868 if (yystackp->yyerrState != 0)
8869 return;
8870 #if ! YYERROR_VERBOSE
8871 yyerror (P, tokens, index, YY_("syntax error"));
8872 #else
8873 {
8874 yySymbol yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
8875 size_t yysize0 = yytnamerr (YY_NULLPTR, yytokenName (yytoken));
8876 size_t yysize = yysize0;
8877 yybool yysize_overflow = yyfalse;
8878 char* yymsg = YY_NULLPTR;
8879 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
8880 /* Internationalized format string. */
8881 const char *yyformat = YY_NULLPTR;
8882 /* Arguments of yyformat. */
8883 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
8884 /* Number of reported tokens (one for the "unexpected", one per
8885 "expected"). */
8886 int yycount = 0;
8887
8888 /* There are many possibilities here to consider:
8889 - If this state is a consistent state with a default action, then
8890 the only way this function was invoked is if the default action
8891 is an error action. In that case, don't check for expected
8892 tokens because there are none.
8893 - The only way there can be no lookahead present (in yychar) is if
8894 this state is a consistent state with a default action. Thus,
8895 detecting the absence of a lookahead is sufficient to determine
8896 that there is no unexpected or expected token to report. In that
8897 case, just report a simple "syntax error".
8898 - Don't assume there isn't a lookahead just because this state is a
8899 consistent state with a default action. There might have been a
8900 previous inconsistent state, consistent state with a non-default
8901 action, or user semantic action that manipulated yychar.
8902 - Of course, the expected token list depends on states to have
8903 correct lookahead information, and it depends on the parser not
8904 to perform extra reductions after fetching a lookahead from the
8905 scanner and before detecting a syntax error. Thus, state merging
8906 (from LALR or IELR) and default reductions corrupt the expected
8907 token list. However, the list is correct for canonical LR with
8908 one exception: it will still contain any token that will not be
8909 accepted due to an error action in a later state.
8910 */
8911 if (yytoken != YYEMPTY)
8912 {
8913 int yyn = yypact[yystackp->yytops.yystates[0]->yylrState];
8914 yyarg[yycount++] = yytokenName (yytoken);
8915 if (!yypact_value_is_default (yyn))
8916 {
8917 /* Start YYX at -YYN if negative to avoid negative indexes in
8918 YYCHECK. In other words, skip the first -YYN actions for this
8919 state because they are default actions. */
8920 int yyxbegin = yyn < 0 ? -yyn : 0;
8921 /* Stay within bounds of both yycheck and yytname. */
8922 int yychecklim = YYLAST - yyn + 1;
8923 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
8924 int yyx;
8925 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
8926 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
8927 && !yytable_value_is_error (yytable[yyx + yyn]))
8928 {
8929 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
8930 {
8931 yycount = 1;
8932 yysize = yysize0;
8933 break;
8934 }
8935 yyarg[yycount++] = yytokenName (yyx);
8936 {
8937 size_t yysz = yysize + yytnamerr (YY_NULLPTR, yytokenName (yyx));
8938 if (yysz < yysize)
8939 yysize_overflow = yytrue;
8940 yysize = yysz;
8941 }
8942 }
8943 }
8944 }
8945
8946 switch (yycount)
8947 {
8948 #define YYCASE_(N, S) \
8949 case N: \
8950 yyformat = S; \
8951 break
8952 default: /* Avoid compiler warnings. */
8953 YYCASE_(0, YY_("syntax error"));
8954 YYCASE_(1, YY_("syntax error, unexpected %s"));
8955 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
8956 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
8957 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
8958 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
8959 #undef YYCASE_
8960 }
8961
8962 {
8963 size_t yysz = yysize + strlen (yyformat);
8964 if (yysz < yysize)
8965 yysize_overflow = yytrue;
8966 yysize = yysz;
8967 }
8968
8969 if (!yysize_overflow)
8970 yymsg = (char *) YYMALLOC (yysize);
8971
8972 if (yymsg)
8973 {
8974 char *yyp = yymsg;
8975 int yyi = 0;
8976 while ((*yyp = *yyformat))
8977 {
8978 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
8979 {
8980 yyp += yytnamerr (yyp, yyarg[yyi++]);
8981 yyformat += 2;
8982 }
8983 else
8984 {
8985 yyp++;
8986 yyformat++;
8987 }
8988 }
8989 yyerror (P, tokens, index, yymsg);
8990 YYFREE (yymsg);
8991 }
8992 else
8993 {
8994 yyerror (P, tokens, index, YY_("syntax error"));
8995 yyMemoryExhausted (yystackp);
8996 }
8997 }
8998 #endif /* YYERROR_VERBOSE */
8999 yynerrs += 1;
9000 }
9001
9002 /* Recover from a syntax error on *YYSTACKP, assuming that *YYSTACKP->YYTOKENP,
9003 yylval, and yylloc are the syntactic category, semantic value, and location
9004 of the lookahead. */
9005 static void
9006 yyrecoverSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
9007 {
9008 size_t yyk;
9009 int yyj;
9010
9011 if (yystackp->yyerrState == 3)
9012 /* We just shifted the error token and (perhaps) took some
9013 reductions. Skip tokens until we can proceed. */
9014 while (yytrue)
9015 {
9016 yySymbol yytoken;
9017 if (yychar == YYEOF)
9018 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
9019 if (yychar != YYEMPTY)
9020 {
9021 yytoken = YYTRANSLATE (yychar);
9022 yydestruct ("Error: discarding",
9023 yytoken, &yylval, P, tokens, index);
9024 }
9025 YYDPRINTF ((stderr, "Reading a token: "));
9026 yychar = yylex (&yylval, P, tokens, index);
9027 if (yychar <= YYEOF)
9028 {
9029 yychar = yytoken = YYEOF;
9030 YYDPRINTF ((stderr, "Now at end of input.\n"));
9031 }
9032 else
9033 {
9034 yytoken = YYTRANSLATE (yychar);
9035 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
9036 }
9037 yyj = yypact[yystackp->yytops.yystates[0]->yylrState];
9038 if (yypact_value_is_default (yyj))
9039 return;
9040 yyj += yytoken;
9041 if (yyj < 0 || YYLAST < yyj || yycheck[yyj] != yytoken)
9042 {
9043 if (yydefact[yystackp->yytops.yystates[0]->yylrState] != 0)
9044 return;
9045 }
9046 else if (! yytable_value_is_error (yytable[yyj]))
9047 return;
9048 }
9049
9050 /* Reduce to one stack. */
9051 for (yyk = 0; yyk < yystackp->yytops.yysize; yyk += 1)
9052 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
9053 break;
9054 if (yyk >= yystackp->yytops.yysize)
9055 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
9056 for (yyk += 1; yyk < yystackp->yytops.yysize; yyk += 1)
9057 yymarkStackDeleted (yystackp, yyk);
9058 yyremoveDeletes (yystackp);
9059 yycompressStack (yystackp);
9060
9061 /* Now pop stack until we find a state that shifts the error token. */
9062 yystackp->yyerrState = 3;
9063 while (yystackp->yytops.yystates[0] != YY_NULLPTR)
9064 {
9065 yyGLRState *yys = yystackp->yytops.yystates[0];
9066 yyj = yypact[yys->yylrState];
9067 if (! yypact_value_is_default (yyj))
9068 {
9069 yyj += YYTERROR;
9070 if (0 <= yyj && yyj <= YYLAST && yycheck[yyj] == YYTERROR
9071 && yyisShiftAction (yytable[yyj]))
9072 {
9073 /* Shift the error token. */
9074 YY_SYMBOL_PRINT ("Shifting", yystos[yytable[yyj]],
9075 &yylval, &yyerrloc);
9076 yyglrShift (yystackp, 0, yytable[yyj],
9077 yys->yyposn, &yylval);
9078 yys = yystackp->yytops.yystates[0];
9079 break;
9080 }
9081 }
9082 if (yys->yypred != YY_NULLPTR)
9083 yydestroyGLRState ("Error: popping", yys, P, tokens, index);
9084 yystackp->yytops.yystates[0] = yys->yypred;
9085 yystackp->yynextFree -= 1;
9086 yystackp->yyspaceLeft += 1;
9087 }
9088 if (yystackp->yytops.yystates[0] == YY_NULLPTR)
9089 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
9090 }
9091
9092 #define YYCHK1(YYE) \
9093 do { \
9094 switch (YYE) { \
9095 case yyok: \
9096 break; \
9097 case yyabort: \
9098 goto yyabortlab; \
9099 case yyaccept: \
9100 goto yyacceptlab; \
9101 case yyerr: \
9102 goto yyuser_error; \
9103 default: \
9104 goto yybuglab; \
9105 } \
9106 } while (0)
9107
9108 /*----------.
9109 | yyparse. |
9110 `----------*/
9111
9112 int
9113 yyparse (struct psi_parser *P, struct psi_plist *tokens, size_t *index)
9114 {
9115 int yyresult;
9116 yyGLRStack yystack;
9117 yyGLRStack* const yystackp = &yystack;
9118 size_t yyposn;
9119
9120 YYDPRINTF ((stderr, "Starting parse\n"));
9121
9122 yychar = YYEMPTY;
9123 yylval = yyval_default;
9124
9125 /* User initialization code. */
9126 #line 123 "src/parser_proc_grammar.y" /* glr.c:2265 */
9127 {
9128 }
9129
9130 #line 9131 "src/parser_proc.c" /* glr.c:2265 */
9131
9132 if (! yyinitGLRStack (yystackp, YYINITDEPTH))
9133 goto yyexhaustedlab;
9134 switch (YYSETJMP (yystack.yyexception_buffer))
9135 {
9136 case 0: break;
9137 case 1: goto yyabortlab;
9138 case 2: goto yyexhaustedlab;
9139 default: goto yybuglab;
9140 }
9141 yyglrShift (&yystack, 0, 0, 0, &yylval);
9142 yyposn = 0;
9143
9144 while (yytrue)
9145 {
9146 /* For efficiency, we have two loops, the first of which is
9147 specialized to deterministic operation (single stack, no
9148 potential ambiguity). */
9149 /* Standard mode */
9150 while (yytrue)
9151 {
9152 yyRuleNum yyrule;
9153 int yyaction;
9154 const short* yyconflicts;
9155
9156 yyStateNum yystate = yystack.yytops.yystates[0]->yylrState;
9157 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
9158 if (yystate == YYFINAL)
9159 goto yyacceptlab;
9160 if (yyisDefaultedState (yystate))
9161 {
9162 yyrule = yydefaultAction (yystate);
9163 if (yyrule == 0)
9164 {
9165 yyreportSyntaxError (&yystack, P, tokens, index);
9166 goto yyuser_error;
9167 }
9168 YYCHK1 (yyglrReduce (&yystack, 0, yyrule, yytrue, P, tokens, index));
9169 }
9170 else
9171 {
9172 yySymbol yytoken;
9173 if (yychar == YYEMPTY)
9174 {
9175 YYDPRINTF ((stderr, "Reading a token: "));
9176 yychar = yylex (&yylval, P, tokens, index);
9177 }
9178
9179 if (yychar <= YYEOF)
9180 {
9181 yychar = yytoken = YYEOF;
9182 YYDPRINTF ((stderr, "Now at end of input.\n"));
9183 }
9184 else
9185 {
9186 yytoken = YYTRANSLATE (yychar);
9187 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
9188 }
9189
9190 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
9191 if (*yyconflicts != 0)
9192 break;
9193 if (yyisShiftAction (yyaction))
9194 {
9195 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
9196 yychar = YYEMPTY;
9197 yyposn += 1;
9198 yyglrShift (&yystack, 0, yyaction, yyposn, &yylval);
9199 if (0 < yystack.yyerrState)
9200 yystack.yyerrState -= 1;
9201 }
9202 else if (yyisErrorAction (yyaction))
9203 {
9204 yyreportSyntaxError (&yystack, P, tokens, index);
9205 goto yyuser_error;
9206 }
9207 else
9208 YYCHK1 (yyglrReduce (&yystack, 0, -yyaction, yytrue, P, tokens, index));
9209 }
9210 }
9211
9212 while (yytrue)
9213 {
9214 yySymbol yytoken_to_shift;
9215 size_t yys;
9216
9217 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
9218 yystackp->yytops.yylookaheadNeeds[yys] = (yybool) (yychar != YYEMPTY);
9219
9220 /* yyprocessOneStack returns one of three things:
9221
9222 - An error flag. If the caller is yyprocessOneStack, it
9223 immediately returns as well. When the caller is finally
9224 yyparse, it jumps to an error label via YYCHK1.
9225
9226 - yyok, but yyprocessOneStack has invoked yymarkStackDeleted
9227 (&yystack, yys), which sets the top state of yys to NULL. Thus,
9228 yyparse's following invocation of yyremoveDeletes will remove
9229 the stack.
9230
9231 - yyok, when ready to shift a token.
9232
9233 Except in the first case, yyparse will invoke yyremoveDeletes and
9234 then shift the next token onto all remaining stacks. This
9235 synchronization of the shift (that is, after all preceding
9236 reductions on all stacks) helps prevent double destructor calls
9237 on yylval in the event of memory exhaustion. */
9238
9239 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
9240 YYCHK1 (yyprocessOneStack (&yystack, yys, yyposn, P, tokens, index));
9241 yyremoveDeletes (&yystack);
9242 if (yystack.yytops.yysize == 0)
9243 {
9244 yyundeleteLastStack (&yystack);
9245 if (yystack.yytops.yysize == 0)
9246 yyFail (&yystack, P, tokens, index, YY_("syntax error"));
9247 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
9248 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
9249 yyreportSyntaxError (&yystack, P, tokens, index);
9250 goto yyuser_error;
9251 }
9252
9253 /* If any yyglrShift call fails, it will fail after shifting. Thus,
9254 a copy of yylval will already be on stack 0 in the event of a
9255 failure in the following loop. Thus, yychar is set to YYEMPTY
9256 before the loop to make sure the user destructor for yylval isn't
9257 called twice. */
9258 yytoken_to_shift = YYTRANSLATE (yychar);
9259 yychar = YYEMPTY;
9260 yyposn += 1;
9261 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
9262 {
9263 int yyaction;
9264 const short* yyconflicts;
9265 yyStateNum yystate = yystack.yytops.yystates[yys]->yylrState;
9266 yygetLRActions (yystate, yytoken_to_shift, &yyaction,
9267 &yyconflicts);
9268 /* Note that yyconflicts were handled by yyprocessOneStack. */
9269 YYDPRINTF ((stderr, "On stack %lu, ", (unsigned long) yys));
9270 YY_SYMBOL_PRINT ("shifting", yytoken_to_shift, &yylval, &yylloc);
9271 yyglrShift (&yystack, yys, yyaction, yyposn,
9272 &yylval);
9273 YYDPRINTF ((stderr, "Stack %lu now in state #%d\n",
9274 (unsigned long) yys,
9275 yystack.yytops.yystates[yys]->yylrState));
9276 }
9277
9278 if (yystack.yytops.yysize == 1)
9279 {
9280 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
9281 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
9282 yycompressStack (&yystack);
9283 break;
9284 }
9285 }
9286 continue;
9287 yyuser_error:
9288 yyrecoverSyntaxError (&yystack, P, tokens, index);
9289 yyposn = yystack.yytops.yystates[0]->yyposn;
9290 }
9291
9292 yyacceptlab:
9293 yyresult = 0;
9294 goto yyreturn;
9295
9296 yybuglab:
9297 YYASSERT (yyfalse);
9298 goto yyabortlab;
9299
9300 yyabortlab:
9301 yyresult = 1;
9302 goto yyreturn;
9303
9304 yyexhaustedlab:
9305 yyerror (P, tokens, index, YY_("memory exhausted"));
9306 yyresult = 2;
9307 goto yyreturn;
9308
9309 yyreturn:
9310 if (yychar != YYEMPTY)
9311 yydestruct ("Cleanup: discarding lookahead",
9312 YYTRANSLATE (yychar), &yylval, P, tokens, index);
9313
9314 /* If the stack is well-formed, pop the stack until it is empty,
9315 destroying its entries as we go. But free the stack regardless
9316 of whether it is well-formed. */
9317 if (yystack.yyitems)
9318 {
9319 yyGLRState** yystates = yystack.yytops.yystates;
9320 if (yystates)
9321 {
9322 size_t yysize = yystack.yytops.yysize;
9323 size_t yyk;
9324 for (yyk = 0; yyk < yysize; yyk += 1)
9325 if (yystates[yyk])
9326 {
9327 while (yystates[yyk])
9328 {
9329 yyGLRState *yys = yystates[yyk];
9330 if (yys->yypred != YY_NULLPTR)
9331 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
9332 yystates[yyk] = yys->yypred;
9333 yystack.yynextFree -= 1;
9334 yystack.yyspaceLeft += 1;
9335 }
9336 break;
9337 }
9338 }
9339 yyfreeGLRStack (&yystack);
9340 }
9341
9342 return yyresult;
9343 }
9344
9345 /* DEBUGGING ONLY */
9346 #if YYDEBUG
9347 static void
9348 yy_yypstack (yyGLRState* yys)
9349 {
9350 if (yys->yypred)
9351 {
9352 yy_yypstack (yys->yypred);
9353 YYFPRINTF (stderr, " -> ");
9354 }
9355 YYFPRINTF (stderr, "%d@%lu", yys->yylrState,
9356 (unsigned long) yys->yyposn);
9357 }
9358
9359 static void
9360 yypstates (yyGLRState* yyst)
9361 {
9362 if (yyst == YY_NULLPTR)
9363 YYFPRINTF (stderr, "<null>");
9364 else
9365 yy_yypstack (yyst);
9366 YYFPRINTF (stderr, "\n");
9367 }
9368
9369 static void
9370 yypstack (yyGLRStack* yystackp, size_t yyk)
9371 {
9372 yypstates (yystackp->yytops.yystates[yyk]);
9373 }
9374
9375 #define YYINDEX(YYX) \
9376 ((YYX) == YY_NULLPTR ? -1 : (yyGLRStackItem*) (YYX) - yystackp->yyitems)
9377
9378
9379 static void
9380 yypdumpstack (yyGLRStack* yystackp)
9381 {
9382 yyGLRStackItem* yyp;
9383 size_t yyi;
9384 for (yyp = yystackp->yyitems; yyp < yystackp->yynextFree; yyp += 1)
9385 {
9386 YYFPRINTF (stderr, "%3lu. ",
9387 (unsigned long) (yyp - yystackp->yyitems));
9388 if (*(yybool *) yyp)
9389 {
9390 YYASSERT (yyp->yystate.yyisState);
9391 YYASSERT (yyp->yyoption.yyisState);
9392 YYFPRINTF (stderr, "Res: %d, LR State: %d, posn: %lu, pred: %ld",
9393 yyp->yystate.yyresolved, yyp->yystate.yylrState,
9394 (unsigned long) yyp->yystate.yyposn,
9395 (long) YYINDEX (yyp->yystate.yypred));
9396 if (! yyp->yystate.yyresolved)
9397 YYFPRINTF (stderr, ", firstVal: %ld",
9398 (long) YYINDEX (yyp->yystate
9399 .yysemantics.yyfirstVal));
9400 }
9401 else
9402 {
9403 YYASSERT (!yyp->yystate.yyisState);
9404 YYASSERT (!yyp->yyoption.yyisState);
9405 YYFPRINTF (stderr, "Option. rule: %d, state: %ld, next: %ld",
9406 yyp->yyoption.yyrule - 1,
9407 (long) YYINDEX (yyp->yyoption.yystate),
9408 (long) YYINDEX (yyp->yyoption.yynext));
9409 }
9410 YYFPRINTF (stderr, "\n");
9411 }
9412 YYFPRINTF (stderr, "Tops:");
9413 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
9414 YYFPRINTF (stderr, "%lu: %ld; ", (unsigned long) yyi,
9415 (long) YYINDEX (yystackp->yytops.yystates[yyi]));
9416 YYFPRINTF (stderr, "\n");
9417 }
9418 #endif
9419
9420 #undef yylval
9421 #undef yychar
9422 #undef yynerrs
9423
9424 /* Substitute the variable and function names. */
9425 #define yyparse psi_parser_proc_parse
9426 #define yylex psi_parser_proc_lex
9427 #define yyerror psi_parser_proc_error
9428 #define yylval psi_parser_proc_lval
9429 #define yychar psi_parser_proc_char
9430 #define yydebug psi_parser_proc_debug
9431 #define yynerrs psi_parser_proc_nerrs
9432
9433 #line 2288 "src/parser_proc_grammar.y" /* glr.c:2578 */
9434
9435
9436 /* epilogue */
9437
9438 #define PSI_DEBUG_LEX 0
9439 static int psi_parser_proc_lex(YYSTYPE *lvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
9440 {
9441 struct psi_token *token;
9442 #if PSI_DEBUG_LEX
9443 PSI_DEBUG_PRINT(P, "PSI: LEX index %4zu ", *index);
9444 #endif
9445 if (psi_plist_get(tokens, (*index)++, &token) && token) {
9446 #if PSI_DEBUG_LEX
9447 PSI_DEBUG_DUMP(P, psi_token_dump, token);
9448 #endif
9449 *((struct psi_token **)lvalp) = token;
9450 return token->type;
9451 } else {
9452 #if PSI_DEBUG_LEX
9453 PSI_DEBUG_PRINT(P, "EOF\n");
9454 #endif
9455 (*index)--;
9456 }
9457
9458 return PSI_T_EOF;
9459 }
9460
9461 static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char *msg)
9462 {
9463 struct psi_token *T = NULL;
9464 size_t last;
9465
9466 if (*index == 0) {
9467 last = 0;
9468 } else {
9469 last = --(*index);
9470 }
9471
9472 psi_plist_get(tokens, last, &T);
9473 if (T) {
9474 size_t i = (last >= 5) ? last - 5 : 0;
9475
9476 P->error(PSI_DATA(P), T, PSI_WARNING, "PSI %s at col %u", msg, T->col);
9477 while (i <= last || T->type != PSI_T_EOS) {
9478 const char *pos;
9479
9480 if (!psi_plist_get(tokens, i++, &T)) {
9481 break;
9482 }
9483
9484 if (i < last + 1) {
9485 pos = "preceding";
9486 } else if (i > last + 1) {
9487 pos = "following";
9488 } else {
9489 pos = "offending";
9490 }
9491
9492 P->error(PSI_DATA(P), T, PSI_WARNING, "PSI %s token '%s' at col %u",
9493 pos, T ? T->text->val : "<deleted>", T ? T->col : 0);
9494 }
9495 } else {
9496 P->error(PSI_DATA(P), NULL, PSI_WARNING, "PSI %s", msg);
9497 }
9498 P->errors++;
9499 }
9500