bc386a761feb88c8da029f7ff06c5279fd4868dc
[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 static inline void psi_parser_proc_add_lib(struct psi_parser *P, zend_string *lib) {
185 char *libname = strdup(lib->val);
186 P->file.libnames = psi_plist_add(P->file.libnames, &libname);
187 }
188
189 /* end code */
190
191 #line 192 "src/parser_proc.c" /* glr.c:261 */
192
193 #include <stdio.h>
194 #include <stdlib.h>
195 #include <string.h>
196
197 #ifndef YY_
198 # if defined YYENABLE_NLS && YYENABLE_NLS
199 # if ENABLE_NLS
200 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
201 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
202 # endif
203 # endif
204 # ifndef YY_
205 # define YY_(Msgid) Msgid
206 # endif
207 #endif
208
209 #ifndef YYFREE
210 # define YYFREE free
211 #endif
212 #ifndef YYMALLOC
213 # define YYMALLOC malloc
214 #endif
215 #ifndef YYREALLOC
216 # define YYREALLOC realloc
217 #endif
218
219 #define YYSIZEMAX ((size_t) -1)
220
221 #ifdef __cplusplus
222 typedef bool yybool;
223 # define yytrue true
224 # define yyfalse false
225 #else
226 /* When we move to stdbool, get rid of the various casts to yybool. */
227 typedef unsigned char yybool;
228 # define yytrue 1
229 # define yyfalse 0
230 #endif
231
232 #ifndef YYSETJMP
233 # include <setjmp.h>
234 # define YYJMP_BUF jmp_buf
235 # define YYSETJMP(Env) setjmp (Env)
236 /* Pacify Clang and ICC. */
237 # define YYLONGJMP(Env, Val) \
238 do { \
239 longjmp (Env, Val); \
240 YYASSERT (0); \
241 } while (yyfalse)
242 #endif
243
244 #ifndef YY_ATTRIBUTE
245 # if (defined __GNUC__ \
246 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
247 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
248 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
249 # else
250 # define YY_ATTRIBUTE(Spec) /* empty */
251 # endif
252 #endif
253
254 #ifndef YY_ATTRIBUTE_PURE
255 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
256 #endif
257
258 #ifndef YY_ATTRIBUTE_UNUSED
259 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
260 #endif
261
262 #if !defined _Noreturn \
263 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
264 # if defined _MSC_VER && 1200 <= _MSC_VER
265 # define _Noreturn __declspec (noreturn)
266 # else
267 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
268 # endif
269 #endif
270
271 /* Suppress unused-variable warnings by "using" E. */
272 #if ! defined lint || defined __GNUC__
273 # define YYUSE(E) ((void) (E))
274 #else
275 # define YYUSE(E) /* empty */
276 #endif
277
278 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
279 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
280 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
281 _Pragma ("GCC diagnostic push") \
282 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
283 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
284 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
285 _Pragma ("GCC diagnostic pop")
286 #else
287 # define YY_INITIAL_VALUE(Value) Value
288 #endif
289 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
290 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
291 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
292 #endif
293 #ifndef YY_INITIAL_VALUE
294 # define YY_INITIAL_VALUE(Value) /* Nothing. */
295 #endif
296
297
298 #ifndef YYASSERT
299 # define YYASSERT(Condition) ((void) ((Condition) || (abort (), 0)))
300 #endif
301
302 /* YYFINAL -- State number of the termination state. */
303 #define YYFINAL 166
304 /* YYLAST -- Last index in YYTABLE. */
305 #define YYLAST 8244
306
307 /* YYNTOKENS -- Number of terminals. */
308 #define YYNTOKENS 140
309 /* YYNNTS -- Number of nonterminals. */
310 #define YYNNTS 142
311 /* YYNRULES -- Number of rules. */
312 #define YYNRULES 638
313 /* YYNRULES -- Number of states. */
314 #define YYNSTATES 953
315 /* YYMAXRHS -- Maximum number of symbols on right-hand side of rule. */
316 #define YYMAXRHS 16
317 /* YYMAXLEFT -- Maximum number of symbols to the left of a handle
318 accessed by $0, $-1, etc., in any rule. */
319 #define YYMAXLEFT 0
320
321 /* YYTRANSLATE(X) -- Bison symbol number corresponding to X. */
322 #define YYUNDEFTOK 2
323 #define YYMAXUTOK 394
324
325 #define YYTRANSLATE(YYX) \
326 ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
327
328 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
329 static const unsigned char yytranslate[] =
330 {
331 0, 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, 2, 2, 2, 2,
353 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
354 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
355 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
356 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
357 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
358 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
359 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
360 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
361 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
362 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
363 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
364 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
365 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
366 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
367 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
368 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
369 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
370 135, 136, 137, 138, 139
371 };
372
373 #if YYDEBUG
374 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
375 static const unsigned short yyrline[] =
376 {
377 0, 416, 416, 416, 416, 416, 416, 416, 416, 416,
378 416, 416, 416, 416, 416, 416, 416, 416, 416, 416,
379 417, 417, 417, 417, 418, 418, 418, 418, 418, 418,
380 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
381 418, 418, 418, 418, 418, 418, 419, 419, 419, 419,
382 419, 419, 419, 419, 419, 419, 419, 419, 419, 419,
383 419, 419, 419, 419, 419, 419, 419, 419, 419, 419,
384 419, 419, 419, 419, 419, 419, 419, 419, 419, 419,
385 419, 419, 419, 419, 419, 419, 419, 419, 419, 419,
386 419, 419, 419, 419, 419, 419, 419, 419, 419, 419,
387 419, 419, 419, 419, 419, 419, 419, 419, 419, 419,
388 419, 419, 419, 419, 419, 419, 419, 419, 419, 419,
389 419, 419, 419, 419, 419, 419, 419, 419, 419, 419,
390 419, 419, 419, 419, 419, 419, 419, 419, 419, 419,
391 419, 419, 419, 419, 419, 419, 419, 419, 419, 419,
392 419, 419, 419, 419, 419, 419, 419, 419, 419, 419,
393 419, 419, 419, 419, 420, 420, 420, 420, 420, 420,
394 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
395 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
396 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
397 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
398 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
399 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
400 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
401 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
402 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
403 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
404 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
405 424, 425, 428, 429, 432, 433, 434, 435, 441, 444,
406 447, 450, 453, 459, 462, 465, 468, 471, 477, 480,
407 486, 489, 495, 518, 522, 526, 531, 535, 539, 543,
408 550, 551, 555, 556, 560, 561, 562, 566, 567, 571,
409 572, 576, 577, 578, 582, 583, 587, 592, 597, 602,
410 611, 614, 617, 618, 624, 629, 637, 640, 644, 648,
411 655, 659, 663, 667, 672, 683, 694, 699, 704, 708,
412 714, 725, 728, 732, 740, 744, 750, 754, 761, 765,
413 769, 776, 777, 778, 782, 796, 802, 805, 811, 814,
414 820, 821, 829, 840, 849, 861, 862, 866, 876, 885,
415 897, 898, 901, 907, 908, 912, 916, 920, 925, 930,
416 938, 939, 940, 943, 949, 952, 955, 961, 962, 966,
417 969, 972, 978, 981, 984, 992, 1004, 1007, 1010, 1013,
418 1020, 1023, 1033, 1036, 1039, 1042, 1043, 1044, 1048, 1051,
419 1054, 1065, 1072, 1082, 1085, 1091, 1094, 1101, 1137, 1140,
420 1146, 1149, 1155, 1161, 1162, 1163, 1164, 1165, 1166, 1170,
421 1174, 1175, 1179, 1180, 1184, 1185, 1192, 1193, 1197, 1204,
422 1215, 1222, 1230, 1254, 1283, 1290, 1301, 1347, 1388, 1403,
423 1406, 1409, 1415, 1418, 1424, 1439, 1442, 1471, 1479, 1507,
424 1512, 1520, 1530, 1540, 1543, 1547, 1553, 1567, 1584, 1587,
425 1593, 1600, 1607, 1615, 1626, 1633, 1636, 1642, 1647, 1655,
426 1659, 1663, 1667, 1671, 1675, 1682, 1686, 1690, 1694, 1698,
427 1702, 1708, 1712, 1719, 1722, 1734, 1738, 1742, 1749, 1762,
428 1775, 1788, 1791, 1798, 1799, 1803, 1806, 1809, 1812, 1818,
429 1822, 1829, 1832, 1835, 1850, 1851, 1852, 1853, 1857, 1860,
430 1866, 1867, 1873, 1876, 1882, 1883, 1887, 1888, 1898, 1901,
431 1908, 1913, 1918, 1928, 1931, 1937, 1940, 1946, 1953, 1960,
432 1967, 1968, 1972, 1973, 1974, 1975, 1976, 1980, 1981, 1982,
433 1983, 1987, 1990, 1996, 1999, 2002, 2005, 2008, 2014, 2018,
434 2026, 2027, 2031, 2038, 2041, 2044, 2047, 2051, 2054, 2060,
435 2064, 2072, 2079, 2084, 2092, 2100, 2101, 2102, 2103, 2104,
436 2105, 2106, 2107, 2108, 2109, 2113, 2116, 2122, 2125, 2131,
437 2132, 2136, 2139, 2145, 2148, 2154, 2161, 2165, 2172, 2175,
438 2178, 2184, 2191, 2194, 2197, 2204, 2209, 2217, 2218, 2219,
439 2220, 2221, 2222, 2223, 2224, 2228, 2231, 2237, 2240, 2246,
440 2253, 2254, 2258, 2265, 2268, 2274, 2282, 2285, 2291
441 };
442 #endif
443
444 #if YYDEBUG || YYERROR_VERBOSE || 1
445 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
446 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
447 static const char *const yytname[] =
448 {
449 "\"end of file\"", "error", "$undefined", "BOOL", "CHAR", "SHORT",
450 "INT", "SIGNED", "UNSIGNED", "LONG", "FLOAT", "DOUBLE", "STRING",
451 "MIXED", "ARRAY", "OBJECT", "CALLABLE", "VOID", "ZVAL", "NULL", "TRUE",
452 "FALSE", "NAME", "NSNAME", "DOLLAR_NAME", "NUMBER", "QUOTED_STRING",
453 "QUOTED_CHAR", "SIZEOF", "VOLATILE", "\"end of line\"", "\";\"", "\"(\"",
454 "\")\"", "\",\"", "\":\"", "\"{\"", "\"}\"", "\"[\"", "\"]\"", "\"=\"",
455 "\"#\"", "\"|\"", "\"^\"", "\"&\"", "\"<<\"", "\">>\"", "\"+\"", "\"-\"",
456 "\"*\"", "\"/\"", "\"%\"", "\"<\"", "\">\"", "\">=\"", "\"<=\"",
457 "\"||\"", "\"&&\"", "\"==\"", "\"!=\"", "\"~\"", "\"!\"", "\".\"",
458 "\"\\\\\"", "\"...\"", "\"?\"", "PRAGMA", "PRAGMA_ONCE", "LINE", "ERROR",
459 "WARNING", "IF", "IFDEF", "IFNDEF", "ELSE", "ELIF", "ENDIF", "DEFINE",
460 "DEFINED", "UNDEF", "IMPORT", "INCLUDE", "INCLUDE_NEXT", "TYPEDEF",
461 "STRUCT", "UNION", "ENUM", "CONST", "LIB", "STATIC", "CALLBACK",
462 "FUNCTION", "LET", "SET", "TEMP", "FREE", "RETURN", "AS", "PRE_ASSERT",
463 "POST_ASSERT", "BOOLVAL", "INTVAL", "STRVAL", "PATHVAL", "STRLEN",
464 "FLOATVAL", "ARRVAL", "OBJVAL", "COUNT", "CALLOC", "TO_BOOL", "TO_INT",
465 "TO_STRING", "TO_FLOAT", "TO_ARRAY", "TO_OBJECT", "COMMENT",
466 "WHITESPACE", "NO_WHITESPACE", "CPP_HEADER", "CPP_ATTRIBUTE",
467 "CPP_EXTENSION", "CPP_PASTE", "CPP_INLINE", "CPP_RESTRICT", "CPP_ASM",
468 "BSLASH", "LONG_DOUBLE", "INT8", "UINT8", "INT16", "UINT16", "INT32",
469 "UINT32", "INT64", "UINT64", "INT128", "UINT128", "BINARY", "UNARY",
470 "$accept", "binary_op_token", "unary_op_token", "name_token",
471 "any_noeol_token", "any_nobrace_token", "file", "blocks", "block", "lib",
472 "cpp", "cpp_exp", "cpp_ignored_token", "cpp_message_token",
473 "cpp_include_token", "cpp_header_token", "cpp_no_arg_token",
474 "cpp_name_arg_token", "cpp_exp_arg_token", "cpp_macro_decl",
475 "cpp_macro_sig", "cpp_macro_sig_args", "cpp_macro_decl_tokens",
476 "cpp_macro_decl_token_list", "cpp_macro_exp", "cpp_macro_call_args",
477 "cpp_macro_call_arg_list", "constant", "impl_def_val",
478 "impl_def_val_token", "decl_typedef", "typedef", "typedef_anon",
479 "typedef_decl", "typedef_anon_decl", "qualified_decl_type",
480 "decl_type_qualifier_token", "decl_type", "decl_type_complex",
481 "decl_type_simple", "decl_real_type", "int_signed", "int_width",
482 "decl_int_type", "int_signed_types", "signed_short_types",
483 "signed_long_types", "int_width_types", "decl_stmt", "decl_asm",
484 "quoted_strings", "decl_extvar_stmt", "decl_extvar_list", "decl_vars",
485 "ignored_decl", "ignored_decl_qualifiers", "ignored_decl_body",
486 "ignored_decl_body_stmts", "ignored_decl_body_stmt", "decl", "decl_body",
487 "decl_func_body", "decl_functor_body", "decl_anon_functor_body",
488 "decl_functor", "decl_anon_functor", "decl_func", "decl_args",
489 "decl_arg_list", "decl_anon_arg", "decl_arg", "decl_var", "decl_union",
490 "decl_struct", "decl_struct_args", "struct_args_block", "struct_args",
491 "struct_arg_var_list", "decl_vars_with_layout", "decl_enum",
492 "decl_enum_items", "decl_enum_item", "num_exp", "number", "sizeof",
493 "sizeof_body", "sizeof_body_notypes", "enum_name", "union_name",
494 "struct_name", "optional_name", "optional_comma", "decl_layout",
495 "align_and_size", "array_size", "array_qualifier_token", "indirection",
496 "pointers", "asterisks", "asterisk", "pointer_qualifier_token", "impl",
497 "impl_func", "impl_args", "impl_arg", "impl_var", "impl_type",
498 "impl_type_restricted", "impl_type_token", "impl_type_restricted_token",
499 "impl_type_extended_token", "impl_stmts", "impl_stmt", "let_stmt",
500 "let_exp", "let_exp_byref", "let_exp_assign", "let_calloc",
501 "let_callback", "let_func", "let_func_token", "let_func_exps",
502 "let_exps", "callback_rval", "callback_arg_list", "callback_args",
503 "return_stmt", "return_exp", "call_decl_vars", "set_stmt", "set_exp",
504 "set_func", "set_func_token", "set_func_exps", "set_exps", "assert_stmt",
505 "assert_stmt_token", "free_stmt", "free_exps", "free_exp", "reference",
506 "byref", YY_NULLPTR
507 };
508 #endif
509
510 #define YYPACT_NINF -719
511 #define YYTABLE_NINF -637
512
513 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
514 STATE-NUM. */
515 static const short yypact[] =
516 {
517 497, -719, -719, -719, -719, -719, 99, -719, -719, -719,
518 248, -719, -719, -719, 742, 275, 7978, 7978, 7978, 225,
519 59, -20, 31, -719, 107, -719, 97, 497, -719, -719,
520 -719, -719, -719, 7123, 1957, -719, -719, -719, -719, 144,
521 198, -719, -719, -719, -719, 1423, 5, -719, -719, 32,
522 108, 115, -719, -719, -719, -719, 140, -719, 148, -719,
523 -719, -719, 7978, 7978, 7978, -719, -719, -719, 88, -719,
524 98, -719, -719, -719, -719, -719, -719, -719, -719, -719,
525 -719, 864, -719, -719, -719, -719, 168, 990, 990, 20,
526 -719, 990, 6897, 7978, 7978, 1537, 177, -719, -719, -719,
527 179, 7978, 194, 194, -719, -719, -719, -719, -719, -719,
528 1356, -719, -719, -719, -719, -719, -719, -719, -719, -719,
529 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
530 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
531 -719, 125, -719, -719, 125, 211, -719, -719, -719, -719,
532 -719, -719, 220, 239, -719, 233, -719, 242, -719, 282,
533 -719, 1731, 275, 187, -719, 5, -719, -719, 50, 273,
534 -719, -719, 281, 7978, 1, -719, -719, -719, 308, -719,
535 96, -719, -719, -719, 173, -719, 279, 285, 287, 1844,
536 1844, 7978, 195, -719, -719, -719, 7462, 5, 290, -719,
537 1696, -719, -719, -719, -719, -719, -719, -719, -719, 1809,
538 1922, 2035, 2148, -719, 2261, 2374, -719, -719, -719, 2487,
539 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
540 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
541 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
542 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
543 -719, -719, 2600, 2713, 2826, 2939, 3052, -719, -719, -719,
544 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
545 -719, -719, 3165, -719, 3278, 3391, 3504, 3617, 3730, 3843,
546 -719, 3956, -719, -719, 4069, 4182, 4295, 4408, 4521, 4634,
547 4747, 4860, 4973, 5086, 5199, 5312, 5425, 5538, 5651, 5764,
548 -719, -719, -719, -719, -719, -719, -719, 5877, 990, -719,
549 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
550 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
551 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
552 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
553 990, -719, -719, -719, -719, -719, -719, -719, 207, 6897,
554 -719, -719, -719, -719, 7575, 6897, 291, 8107, -719, 133,
555 -719, 214, -719, -719, -719, -719, 289, 286, 286, 53,
556 53, 6106, 288, -719, 195, 294, 296, -719, 299, -719,
557 -719, -719, 1470, -719, 292, 273, -719, -719, -719, -719,
558 -719, 325, -719, -719, 1242, -719, 310, -719, 209, 7123,
559 -719, 306, 235, 305, -719, -719, 238, 300, 309, -719,
560 7462, 6558, 7462, 7978, 7462, -719, -719, 284, -719, -719,
561 -719, -719, -719, 6784, -719, 311, -719, 7978, 315, 316,
562 -719, 317, 8107, 322, -719, -719, -719, -719, 758, 320,
563 -719, 7228, 7978, -719, -719, 1583, -719, -719, -719, -719,
564 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
565 -719, -719, -719, -719, 6897, 6897, 321, 624, 7462, 7462,
566 -719, -719, -719, -719, 166, -719, -719, -719, -719, -719,
567 5993, 6784, 323, -719, 322, -719, 8131, -719, -719, 6106,
568 331, 545, -719, -719, -719, -719, -719, -719, 8083, 318,
569 7688, -719, -719, -719, -719, -719, -719, -719, -719, -719,
570 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
571 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
572 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
573 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
574 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
575 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
576 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
577 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
578 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
579 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
580 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
581 -719, -719, 1116, -719, 102, 42, 1844, 273, 301, 1423,
582 273, 303, 6784, 7978, 319, 332, 342, 8131, 334, 350,
583 -719, 353, 363, 348, 357, 120, -719, 359, 362, -719,
584 -719, -719, 7111, 7462, -719, -719, 7747, -719, 292, 361,
585 -719, -719, -719, 365, -719, 8107, 370, 374, 7841, -719,
586 384, 1537, 360, -719, -719, 7010, 585, 7978, 194, 194,
587 -719, -719, 36, 39, 71, 7445, -719, -719, 6784, 6784,
588 379, -719, -719, -719, -719, -719, 378, 240, -719, 31,
589 -719, -719, -719, -719, -719, 292, 243, -719, -719, -719,
590 292, -719, 265, -719, 381, -719, -719, 385, 8131, -719,
591 -719, 6219, -719, 6558, -719, 7462, -719, 31, 7462, -719,
592 7978, 7860, -719, -719, -719, -719, -719, 386, 383, -719,
593 -719, -719, -719, 6897, 6897, 387, -719, 84, 394, -719,
594 360, 286, 286, 6784, -719, 8059, -719, -719, 734, 397,
595 734, 380, 7978, 1844, -719, 7236, 273, 369, 273, 273,
596 193, 328, 627, 406, 8131, -719, -719, -719, -719, 408,
597 6671, -719, 407, 7462, 267, -719, 409, 311, 412, 990,
598 7919, 8107, 8155, 421, 413, 415, 7349, 418, 394, 7462,
599 7462, -719, 6784, -719, 734, -719, 31, 6106, 417, 419,
600 -719, -719, 420, -719, -719, 406, -719, -719, -719, 7860,
601 -719, 425, 6784, 31, -719, 6332, 426, 427, -719, 364,
602 -719, -719, -719, 429, 428, 435, 360, 434, -719, -719,
603 441, 8179, -719, 43, -719, 443, 444, 273, 445, 31,
604 7679, 442, 446, -719, 452, -719, -719, 60, -719, 455,
605 457, -719, 7349, -719, 465, 1844, 462, -719, 398, 464,
606 6784, 6219, 466, -719, 6558, -719, -719, 478, 472, 487,
607 360, -719, 480, 482, 1844, 114, 6445, 7566, 332, -719,
608 -719, -719, 483, 6671, -719, -719, 484, 488, -719, 485,
609 490, 491, 493, 496, 498, -719, -719, 6219, -719, 506,
610 -719, 734, 503, 273, 31, 504, 6558, -719, 507, -719,
611 1844, -719, 510, -719, -719, -719, 511, 6445, 273, 512,
612 -719, 513, -719
613 };
614
615 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
616 Performed when YYTABLE does not specify something else to do. Zero
617 means the default is an error. */
618 static const unsigned short yydefact[] =
619 {
620 280, 402, 399, 403, 397, 398, 400, 394, 395, 393,
621 392, 384, 285, 284, 0, 0, 0, 0, 511, 383,
622 0, 433, 636, 286, 0, 437, 0, 281, 282, 288,
623 287, 289, 293, 528, 0, 380, 386, 385, 391, 406,
624 418, 390, 290, 291, 292, 0, 423, 444, 446, 447,
625 0, 0, 458, 295, 294, 296, 0, 297, 0, 401,
626 396, 392, 0, 0, 0, 383, 438, 445, 428, 300,
627 311, 308, 310, 312, 313, 324, 321, 322, 319, 325,
628 320, 0, 323, 314, 315, 316, 0, 336, 336, 0,
629 304, 0, 0, 511, 511, 0, 0, 366, 371, 467,
630 370, 0, 519, 519, 33, 34, 35, 36, 37, 624,
631 585, 24, 42, 41, 40, 38, 39, 32, 31, 25,
632 29, 28, 26, 27, 43, 593, 592, 590, 588, 589,
633 591, 587, 586, 594, 30, 622, 620, 619, 621, 618,
634 617, 387, 44, 45, 388, 389, 508, 552, 553, 554,
635 555, 556, 0, 0, 549, 0, 434, 0, 638, 0,
636 637, 392, 0, 0, 435, 423, 1, 283, 534, 521,
637 382, 468, 0, 529, 530, 532, 381, 408, 412, 410,
638 414, 407, 404, 419, 406, 405, 0, 0, 0, 459,
639 459, 0, 0, 387, 388, 389, 0, 423, 0, 71,
640 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
641 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
642 66, 67, 68, 69, 70, 161, 162, 72, 73, 74,
643 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
644 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
645 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
646 105, 111, 109, 110, 108, 106, 107, 112, 113, 114,
647 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
648 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
649 135, 163, 136, 137, 138, 139, 140, 141, 142, 143,
650 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
651 154, 155, 159, 156, 157, 158, 160, 0, 336, 306,
652 301, 46, 55, 56, 57, 58, 60, 61, 65, 109,
653 110, 108, 106, 107, 127, 129, 130, 131, 132, 133,
654 134, 163, 138, 139, 140, 141, 142, 143, 144, 145,
655 146, 147, 148, 149, 150, 151, 152, 153, 338, 309,
656 337, 302, 317, 318, 303, 305, 346, 347, 0, 0,
657 22, 23, 20, 21, 0, 0, 349, 307, 348, 387,
658 510, 388, 509, 367, 364, 372, 0, 0, 0, 0,
659 0, 0, 0, 298, 0, 0, 0, 436, 0, 537,
660 536, 535, 524, 470, 528, 521, 531, 533, 413, 409,
661 415, 416, 411, 420, 0, 432, 0, 421, 393, 528,
662 464, 0, 0, 461, 462, 465, 0, 487, 513, 485,
663 0, 636, 0, 0, 0, 630, 631, 0, 561, 564,
664 563, 565, 566, 0, 567, 429, 430, 0, 0, 0,
665 425, 0, 328, 329, 326, 339, 507, 506, 0, 0,
666 502, 0, 0, 344, 341, 351, 2, 3, 4, 5,
667 6, 7, 8, 9, 10, 11, 13, 12, 14, 15,
668 16, 17, 18, 19, 0, 0, 0, 0, 0, 0,
669 473, 472, 474, 471, 498, 362, 363, 496, 495, 497,
670 0, 0, 0, 358, 360, 499, 359, 489, 500, 0,
671 0, 0, 365, 422, 498, 526, 527, 525, 0, 0,
672 0, 529, 469, 417, 189, 164, 165, 166, 167, 168,
673 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
674 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
675 277, 278, 190, 191, 192, 193, 194, 195, 196, 197,
676 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
677 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
678 218, 219, 220, 221, 227, 225, 226, 224, 222, 223,
679 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
680 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
681 248, 249, 250, 251, 279, 252, 253, 254, 255, 256,
682 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
683 267, 268, 269, 270, 271, 275, 272, 273, 274, 276,
684 442, 443, 0, 440, 0, 521, 459, 521, 0, 0,
685 521, 0, 0, 514, 0, 0, 0, 613, 0, 0,
686 612, 45, 0, 0, 0, 0, 633, 0, 0, 607,
687 538, 562, 0, 0, 427, 299, 330, 426, 528, 0,
688 503, 505, 340, 0, 353, 354, 0, 352, 0, 342,
689 0, 0, 515, 375, 368, 376, 0, 377, 519, 519,
690 374, 373, 624, 24, 0, 0, 493, 357, 0, 0,
691 0, 539, 558, 559, 560, 557, 0, 0, 543, 636,
692 548, 550, 551, 523, 522, 528, 0, 439, 441, 424,
693 528, 466, 0, 450, 0, 463, 448, 0, 488, 486,
694 484, 0, 568, 636, 611, 0, 547, 636, 0, 632,
695 0, 608, 605, 629, 431, 331, 334, 0, 332, 504,
696 501, 345, 350, 0, 0, 0, 369, 0, 478, 475,
697 515, 0, 0, 0, 491, 0, 492, 356, 0, 0,
698 0, 545, 0, 459, 456, 0, 521, 0, 521, 521,
699 498, 0, 31, 30, 574, 579, 575, 577, 578, 44,
700 0, 614, 625, 0, 0, 634, 624, 610, 0, 336,
701 0, 355, 343, 0, 516, 0, 515, 0, 478, 379,
702 378, 490, 0, 540, 0, 544, 636, 0, 0, 0,
703 457, 454, 0, 451, 449, 0, 576, 599, 585, 608,
704 600, 0, 0, 636, 580, 636, 0, 0, 635, 0,
705 327, 333, 335, 0, 0, 0, 515, 479, 482, 476,
706 0, 494, 541, 0, 546, 0, 0, 521, 0, 636,
707 0, 595, 0, 627, 626, 615, 569, 0, 520, 0,
708 0, 480, 515, 477, 0, 459, 0, 455, 0, 0,
709 0, 0, 0, 616, 636, 623, 606, 0, 0, 0,
710 515, 483, 0, 0, 459, 0, 601, 0, 499, 597,
711 572, 570, 596, 0, 584, 628, 0, 0, 481, 0,
712 0, 0, 0, 0, 602, 603, 581, 0, 571, 0,
713 517, 0, 0, 521, 636, 0, 636, 598, 0, 542,
714 459, 452, 0, 582, 604, 518, 0, 601, 521, 0,
715 453, 0, 583
716 };
717
718 /* YYPGOTO[NTERM-NUM]. */
719 static const short yypgoto[] =
720 {
721 -719, -319, -73, -11, -48, -719, -719, -719, 509, -719,
722 -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
723 -719, -719, -86, -719, -282, -719, -719, -719, -483, -719,
724 -719, 377, -153, 26, -144, -180, -19, -14, -719, -719,
725 -719, 514, -719, -719, 366, -719, -719, -719, -719, -70,
726 -270, -719, -719, -181, -719, -719, 367, -719, -90, 539,
727 46, -3, 49, -719, -719, -719, -719, -182, -719, -84,
728 3, -33, -719, -719, 176, -365, -719, -250, -719, 11,
729 -719, -82, -357, -719, -50, -719, 111, -719, -455, -451,
730 215, -719, -715, -87, -384, -719, -375, -29, -719, 399,
731 -719, -719, 551, -719, -206, -688, -718, -719, -719, 556,
732 -719, 182, -376, -719, -350, -701, 149, -204, -719, -719,
733 -704, -719, -719, -308, -349, -719, -719, -719, -240, -719,
734 -414, -410, -406, -719, -719, -719, -719, -719, -719, -150,
735 -21, -702
736 };
737
738 /* YYDEFGOTO[NTERM-NUM]. */
739 static const short yydefgoto[] =
740 {
741 -1, 709, 501, 169, 358, 640, 26, 27, 28, 29,
742 30, 86, 87, 88, 89, 364, 90, 91, 92, 319,
743 757, 758, 359, 360, 377, 686, 687, 31, 502, 503,
744 32, 96, 692, 693, 694, 33, 34, 35, 36, 37,
745 38, 39, 40, 41, 182, 409, 412, 185, 42, 188,
746 504, 43, 197, 807, 44, 45, 641, 642, 643, 46,
747 47, 48, 99, 420, 50, 421, 51, 422, 423, 424,
748 425, 505, 53, 54, 491, 492, 696, 817, 857, 101,
749 428, 429, 657, 507, 508, 679, 460, 56, 102, 103,
750 146, 654, 768, 387, 403, 519, 172, 447, 174, 175,
751 401, 57, 58, 717, 718, 658, 719, 153, 720, 721,
752 722, 437, 438, 439, 909, 910, 911, 796, 797, 798,
753 142, 892, 912, 841, 923, 924, 440, 668, 808, 441,
754 925, 660, 143, 846, 874, 442, 443, 444, 665, 666,
755 662, 160
756 };
757
758 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
759 positive, shift that token. If negative, reduce the rule whose
760 number is the opposite. If YYTABLE_NINF, syntax error. */
761 static const short yytable[] =
762 {
763 171, 159, 361, 52, 173, 141, 144, 145, 426, 419,
764 419, 55, 98, 68, 170, 445, 388, 659, 100, 375,
765 176, 522, 488, 489, 669, 661, 710, 52, 661, 520,
766 52, 781, 698, 318, 506, 452, 699, 799, 55, 800,
767 795, 97, 378, 365, 645, 518, 362, 453, 52, 49,
768 168, 193, 194, 195, 389, 818, 67, 390, 485, 49,
769 823, 671, 826, -447, -467, -393, -467, 746, -392, -393,
770 317, 22, -24, 49, 730, 158, 49, 109, 895, 399,
771 402, 376, 379, 381, 490, 155, 672, 461, 840, 487,
772 385, 186, 98, 464, 49, 398, 799, 166, 100, 844,
773 11, 858, 410, 156, 773, 411, 862, 884, 59, 814,
774 60, 1, 2, 3, 4, 5, 6, 7, 8, 815,
775 -458, 383, 196, -393, 9, 406, -392, 448, 677, 161,
776 187, 837, 838, 485, 671, 729, 11, 400, 781, 363,
777 189, 881, 485, 705, 706, 485, 644, 190, 177, 178,
778 179, 749, 506, 180, 750, 871, -519, -447, 65, 98,
779 386, -519, 405, 446, 52, 100, 181, 901, -387, -512,
780 135, 136, 137, 138, 139, 140, 191, 177, 178, 179,
781 427, 889, 180, 685, 192, 918, 198, 799, 97, 913,
782 162, 62, 63, 64, 65, 181, 163, -361, 320, -361,
783 -361, 840, 688, 689, 183, 4, 5, 67, 384, 799,
784 49, -458, 928, 939, 125, 126, 127, 128, 129, 130,
785 131, 132, 133, 799, -498, 913, -498, -498, 147, 386,
786 164, 148, 454, 456, 457, 149, 698, 150, 151, 458,
787 699, 698, -393, -393, 375, 699, 942, -512, 152, -388,
788 -512, 459, 1, 2, 3, 4, 5, 6, 7, 8,
789 391, 731, 392, 733, 393, 9, 736, 378, 647, 648,
790 61, 650, 651, 779, 780, 783, 784, 11, 394, 1,
791 2, 3, 4, 5, 6, 7, 8, 430, 431, 432,
792 433, 434, 9, 435, 436, 738, 375, 61, 786, 787,
793 848, 673, 375, 759, 11, 395, 376, 695, 380, 382,
794 397, 402, 455, 404, 408, 414, 449, 416, 417, 378,
795 704, 670, 487, 465, 486, 378, 511, 512, 509, 801,
796 513, 523, 62, 63, 64, 65, 450, 661, 646, 649,
797 652, 168, 681, 653, 864, 673, 674, 675, 677, 676,
798 782, 775, 776, 690, 707, 785, 740, 724, 376, 93,
799 94, 18, 65, 463, 376, 734, 485, 737, 711, 485,
800 485, 66, 741, 742, 743, 521, 430, 431, 432, 433,
801 434, 744, 435, 436, 794, 745, 171, 746, 747, 748,
802 173, 751, 375, 752, 760, 767, 95, 655, 761, 663,
803 170, 667, 831, 762, 833, 834, 819, 820, 763, 765,
804 777, 375, 375, 778, 788, 378, 821, 810, 789, 809,
805 827, 813, 664, 430, 431, 432, 433, 434, 816, 435,
806 436, 873, 824, 832, 378, 378, 405, 835, 842, 661,
807 843, 845, -609, 794, 678, 849, 853, 855, 854, 859,
808 865, 683, 866, 867, 376, 700, 701, 869, 876, 875,
809 880, 877, 878, 879, 732, 861, 419, 896, 882, 419,
810 506, 897, 883, 376, 376, 885, 891, 886, 888, 893,
811 915, 811, 812, 887, 98, 870, 894, 898, 661, 902,
812 100, 899, 485, 485, 904, 905, 906, 916, 697, 914,
813 661, 1, 2, 3, 4, 5, 6, 7, 8, 726,
814 745, 695, 917, 919, 9, 920, 695, 927, 929, 10,
815 931, 930, 944, 932, 933, 934, 11, 12, 13, 935,
816 661, 938, 936, 907, 794, 940, 167, 943, 14, 396,
817 945, 661, 947, 770, 948, 951, 952, 766, 147, 941,
818 413, 148, 728, 415, 184, 149, 794, 150, 151, 712,
819 713, 714, 715, 165, 950, 735, 493, 804, 860, 680,
820 794, 739, 157, 407, 825, 154, 510, 937, 716, 656,
821 15, 16, 17, 18, 19, 20, 21, 836, 22, 1,
822 2, 3, 4, 5, 6, 7, 8, 922, 949, 868,
823 805, 829, 9, 419, 0, 0, 0, 61, 0, 0,
824 0, 771, 772, 23, 11, 0, 0, 0, 24, 0,
825 25, 0, 769, 0, 0, 0, 0, 0, 1, 2,
826 3, 4, 5, 6, 7, 8, 0, 0, 0, 0,
827 754, 9, 427, 0, 837, 838, 61, 0, 0, 521,
828 0, 0, 0, 11, 0, 0, 0, 0, 0, 839,
829 0, 0, 171, 0, 0, 756, 173, 0, 0, 93,
830 94, 18, 65, 0, 0, 0, 170, 0, 0, 0,
831 0, 0, 0, 0, 0, 170, 385, 0, 98, 0,
832 375, 375, 0, 98, 100, 0, 521, 0, 0, 100,
833 0, 521, 697, 903, 0, 419, 691, 697, 93, 94,
834 18, 65, 802, 378, 378, 446, 0, 0, 446, 0,
835 0, 0, 921, 850, 419, 0, 803, 125, 126, 127,
836 128, 129, 130, 131, 132, 133, 0, 147, 0, 664,
837 148, 0, 0, 0, 149, 691, 150, 151, 712, 713,
838 714, 715, 376, 376, 0, 0, 0, 0, 946, 0,
839 419, 0, 1, 2, 3, 4, 5, 6, 7, 8,
840 847, 828, 69, 0, 726, 9, 0, 0, 0, 0,
841 61, 0, 0, 856, 456, 457, 700, 701, 0, 0,
842 0, 0, 0, 0, 0, 0, 0, 0, 0, 852,
843 0, 0, 459, 0, 0, 863, 446, 0, 70, 71,
844 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
845 0, 82, 83, 84, 85, 0, 0, 0, 0, 0,
846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
847 0, 0, 62, 63, 64, 0, 0, 0, 0, 900,
848 0, 0, 0, 0, 0, 0, 0, 0, 908, 0,
849 0, 0, 0, 0, 199, 0, 0, 200, 201, 202,
850 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
851 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
852 223, 224, 225, 226, 908, 227, 228, 229, 230, 231,
853 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
854 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
855 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
856 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
857 272, 273, 274, 275, 0, 276, 0, 277, 278, 279,
858 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
859 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
860 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
861 310, 0, 0, 311, 0, 312, 313, 314, 315, 316,
862 199, 0, 0, 321, 201, 202, 203, 204, 205, 206,
863 207, 208, 322, 323, 324, 325, 213, 326, 327, 216,
864 217, 218, 328, 220, 221, 222, 223, 224, 225, 226,
865 0, 227, 228, 229, 230, 231, 232, 233, 234, 235,
866 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
867 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
868 256, 257, 258, 259, 260, 261, 329, 330, 331, 332,
869 333, 267, 268, 269, 270, 271, 272, 273, 274, 275,
870 0, 276, 0, 277, 278, 279, 280, 281, 334, 283,
871 335, 336, 337, 338, 339, 340, 290, 341, 292, 293,
872 342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
873 352, 353, 354, 355, 356, 357, 310, 0, 0, 311,
874 0, 312, 313, 314, 315, 316, 524, 0, 0, 525,
875 526, 527, 528, 529, 530, 531, 532, 533, 534, 535,
876 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
877 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
878 555, 556, 414, 727, 557, 558, 559, 560, 561, 562,
879 563, 564, 565, 566, 567, 568, 569, 570, 571, 572,
880 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
881 583, 584, 585, 586, 587, 588, 589, 590, 591, 592,
882 593, 594, 595, 596, 597, 598, 0, 599, 0, 600,
883 601, 602, 603, 604, 605, 606, 607, 608, 609, 610,
884 611, 612, 613, 614, 615, 616, 617, 618, 619, 620,
885 621, 622, 623, 624, 625, 626, 627, 628, 629, 630,
886 631, 632, 633, 0, 0, 634, 0, 635, 636, 637,
887 638, 639, 524, 0, 0, 525, 526, 527, 528, 529,
888 530, 531, 532, 533, 534, 535, 536, 537, 538, 539,
889 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
890 550, 551, 0, 552, 553, 554, 555, 556, 414, 0,
891 557, 558, 559, 560, 561, 562, 563, 564, 565, 566,
892 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
893 577, 578, 579, 580, 581, 582, 583, 584, 585, 586,
894 587, 588, 589, 590, 591, 592, 593, 594, 595, 596,
895 597, 598, 0, 599, 0, 600, 601, 602, 603, 604,
896 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
897 615, 616, 617, 618, 619, 620, 621, 622, 623, 624,
898 625, 626, 627, 628, 629, 630, 631, 632, 633, -585,
899 0, 634, 0, 635, 636, 637, 638, 639, -585, -585,
900 -585, -585, 0, -585, -585, 0, 0, 0, -585, 0,
901 0, 0, 0, 0, 0, -585, -585, -585, -585, -585,
902 -585, -585, -585, -585, -585, -585, -585, 0, -585, -585,
903 -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
904 -585, -585, -585, -585, -585, -585, 0, 0, 0, 0,
905 0, -585, -585, -585, -585, -585, -585, 1, 2, 3,
906 4, 5, 6, 7, 8, 0, 0, 0, 0, 0,
907 9, 0, 0, -585, -585, 61, -585, -585, -585, -585,
908 -585, -585, 11, -585, 0, 0, -585, -585, -585, -585,
909 -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
910 -585, -585, 0, 104, 0, 0, 0, 0, 0, 0,
911 0, -585, 105, 106, 107, 108, 0, 109, 110, 514,
912 0, 0, 111, 497, 0, 498, 0, 499, 368, 515,
913 0, 0, 500, 0, 0, 0, 0, 62, 63, 64,
914 65, 0, 0, 0, 0, 0, 0, 370, 371, 168,
915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
916 372, 373, 0, 0, 0, 0, 112, 113, 114, 115,
917 116, 1, 2, 3, 4, 5, 6, 7, 8, 0,
918 0, 0, 0, 0, 9, 0, 0, 516, 117, 61,
919 118, 119, 120, 121, 122, 123, 11, 124, 0, 0,
920 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
921 135, 136, 137, 138, 139, 140, 104, 0, 0, 0,
922 0, 0, 0, 0, 517, 105, 106, 107, 108, 0,
923 109, 110, 0, 0, 0, 111, 0, 0, 366, 0,
924 367, 368, 0, 0, 0, 369, 0, 0, 0, 0,
925 0, 93, 94, 18, 65, 0, 0, 0, 0, 0,
926 370, 371, 0, 0, 0, 0, 0, 0, 0, 0,
927 0, 0, 0, 372, 373, 0, 0, 0, 0, 112,
928 113, 114, 115, 116, 0, 0, 0, 0, 0, 0,
929 0, 374, 0, 0, 0, 0, 0, 0, 0, 0,
930 0, 117, 0, 118, 119, 120, 121, 122, 123, 0,
931 124, 0, 0, 125, 126, 127, 128, 129, 130, 131,
932 132, 133, 134, 135, 136, 137, 138, 139, 140, -33,
933 0, 0, 684, 0, 0, 0, 0, 0, -33, -33,
934 -33, -33, 0, -33, -33, 0, 0, 0, -33, 0,
935 0, -33, -33, -33, -33, 0, 0, 0, -33, 0,
936 0, 0, 0, 0, 0, 1, 2, 3, 4, 5,
937 6, 7, 8, -33, -33, 0, 0, 0, 9, 0,
938 0, 0, 0, 61, 0, 0, -33, -33, 0, 0,
939 11, 0, -33, -33, -33, -33, -33, 0, 0, 0,
940 0, 0, 0, 0, -33, 0, 0, 0, 0, 0,
941 0, 0, 0, 0, -33, 0, -33, -33, -33, -33,
942 -33, -33, 0, -33, 0, 0, -33, -33, -33, -33,
943 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
944 -33, -33, -34, 0, -33, 62, 63, 64, 65, 0,
945 0, -34, -34, -34, -34, 0, -34, -34, 0, 0,
946 0, -34, 0, 0, -34, -34, -34, -34, 0, 0,
947 0, -34, 0, 0, 0, 0, 0, 0, 1, 2,
948 3, 4, 5, 6, 7, 8, -34, -34, 0, 0,
949 0, 418, 0, 0, 0, 0, 61, 0, 0, -34,
950 -34, 0, 0, 11, 0, -34, -34, -34, -34, -34,
951 0, 0, 0, 0, 0, 0, 0, -34, 0, 0,
952 0, 0, 0, 0, 0, 0, 0, -34, 0, -34,
953 -34, -34, -34, -34, -34, 0, -34, 0, 0, -34,
954 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
955 -34, -34, -34, -34, -34, -35, 0, -34, 62, 63,
956 64, 65, 0, 0, -35, -35, -35, -35, 0, -35,
957 -35, 0, 0, 0, -35, 0, 0, -35, -35, -35,
958 -35, 0, 0, 0, -35, 0, 0, 0, 0, 0,
959 0, 1, 2, 3, 4, 5, 6, 7, 8, -35,
960 -35, 0, 0, 0, 9, 0, 0, 0, 0, 61,
961 0, 0, -35, -35, 0, 0, 0, 0, -35, -35,
962 -35, -35, -35, 0, 0, 0, 0, 0, 0, 0,
963 -35, 0, 0, 0, 0, 0, 0, 0, 0, 0,
964 -35, 0, -35, -35, -35, -35, -35, -35, 0, -35,
965 0, 0, -35, -35, -35, -35, -35, -35, -35, -35,
966 -35, -35, -35, -35, -35, -35, -35, -35, -36, 0,
967 -35, 62, 63, 64, 0, 0, 0, -36, -36, -36,
968 -36, 0, -36, -36, 0, 0, 0, -36, 0, 0,
969 -36, -36, -36, -36, 0, 0, 0, -36, 0, 0,
970 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
971 0, 0, -36, -36, 0, 0, 0, 0, 0, 0,
972 0, 0, 0, 0, 0, -36, -36, 0, 0, 0,
973 0, -36, -36, -36, -36, -36, 0, 0, 0, 0,
974 0, 0, 0, -36, 0, 0, 0, 0, 0, 0,
975 0, 0, 0, -36, 0, -36, -36, -36, -36, -36,
976 -36, 0, -36, 0, 0, -36, -36, -36, -36, -36,
977 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
978 -36, -37, 0, -36, 0, 0, 0, 0, 0, 0,
979 -37, -37, -37, -37, 0, -37, -37, 0, 0, 0,
980 -37, 0, 0, -37, -37, -37, -37, 0, 0, 0,
981 -37, 0, 0, 0, 0, 0, 0, 0, 0, 0,
982 0, 0, 0, 0, 0, -37, -37, 0, 0, 0,
983 0, 0, 0, 0, 0, 0, 0, 0, -37, -37,
984 0, 0, 0, 0, -37, -37, -37, -37, -37, 0,
985 0, 0, 0, 0, 0, 0, -37, 0, 0, 0,
986 0, 0, 0, 0, 0, 0, -37, 0, -37, -37,
987 -37, -37, -37, -37, 0, -37, 0, 0, -37, -37,
988 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
989 -37, -37, -37, -37, -60, 0, -37, 0, 0, 0,
990 0, 0, 0, -60, -60, -60, -60, 0, -60, -60,
991 0, 0, 0, -60, 0, 0, -60, -60, -60, -60,
992 0, 0, 0, -60, 0, 0, 0, 0, 0, 0,
993 0, 0, 0, 0, 0, 0, 0, 0, -60, -60,
994 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
995 0, -60, -60, 0, 0, 0, 0, -60, -60, -60,
996 -60, -60, 0, 0, 0, 0, 0, 0, 0, -60,
997 0, 0, 0, 0, 0, 0, 0, 0, 0, -60,
998 0, -60, -60, -60, -60, -60, -60, 0, -60, 0,
999 0, -60, -60, -60, -60, -60, -60, -60, -60, -60,
1000 -60, -60, -60, -60, -60, -60, -60, -61, 0, -624,
1001 0, 0, 0, 0, 0, 0, -61, -61, -61, -61,
1002 0, -61, -61, 0, 0, 0, -61, 0, 0, -61,
1003 -61, -61, -61, 0, 0, 0, -61, 0, 0, 0,
1004 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1005 0, -61, -61, 0, 0, 0, 0, 0, 0, 0,
1006 0, 0, 0, 0, -61, -61, 0, 0, 0, 0,
1007 -61, -61, -61, -61, -61, 0, 0, 0, 0, 0,
1008 0, 0, -61, 0, 0, 0, 0, 0, 0, 0,
1009 0, 0, -61, 0, -61, -61, -61, -61, -61, -61,
1010 0, -61, 0, 0, -61, -61, -61, -61, -61, -61,
1011 -61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
1012 -24, 0, -585, 0, 0, 0, 0, 0, 0, -24,
1013 -24, -24, -24, 0, -24, -24, 0, 0, 0, -24,
1014 0, 0, -24, -24, -24, -24, 0, 0, 0, -24,
1015 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1016 0, 0, 0, 0, -24, -24, 0, 0, 0, 0,
1017 0, 0, 0, 0, 0, 0, 0, -24, -24, 0,
1018 0, 0, 0, -24, -24, -24, -24, -24, 0, 0,
1019 0, 0, 0, 0, 0, -24, 0, 0, 0, 0,
1020 0, 0, 0, 0, 0, -24, 0, -24, -24, -24,
1021 -24, -24, -24, 0, -24, 0, 0, -24, -24, -24,
1022 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
1023 -24, -24, -24, -42, 0, -24, 0, 0, 0, 0,
1024 0, 0, -42, -42, -42, -42, 0, -42, -42, 0,
1025 0, 0, -42, 0, 0, -42, -42, -42, -42, 0,
1026 0, 0, -42, 0, 0, 0, 0, 0, 0, 0,
1027 0, 0, 0, 0, 0, 0, 0, -42, -42, 0,
1028 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1029 -42, -42, 0, 0, 0, 0, -42, -42, -42, -42,
1030 -42, 0, 0, 0, 0, 0, 0, 0, -42, 0,
1031 0, 0, 0, 0, 0, 0, 0, 0, -42, 0,
1032 -42, -42, -42, -42, -42, -42, 0, -42, 0, 0,
1033 -42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
1034 -42, -42, -42, -42, -42, -42, -41, 0, -42, 0,
1035 0, 0, 0, 0, 0, -41, -41, -41, -41, 0,
1036 -41, -41, 0, 0, 0, -41, 0, 0, -41, -41,
1037 -41, -41, 0, 0, 0, -41, 0, 0, 0, 0,
1038 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1039 -41, -41, 0, 0, 0, 0, 0, 0, 0, 0,
1040 0, 0, 0, -41, -41, 0, 0, 0, 0, -41,
1041 -41, -41, -41, -41, 0, 0, 0, 0, 0, 0,
1042 0, -41, 0, 0, 0, 0, 0, 0, 0, 0,
1043 0, -41, 0, -41, -41, -41, -41, -41, -41, 0,
1044 -41, 0, 0, -41, -41, -41, -41, -41, -41, -41,
1045 -41, -41, -41, -41, -41, -41, -41, -41, -41, -40,
1046 0, -41, 0, 0, 0, 0, 0, 0, -40, -40,
1047 -40, -40, 0, -40, -40, 0, 0, 0, -40, 0,
1048 0, -40, -40, -40, -40, 0, 0, 0, -40, 0,
1049 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1050 0, 0, 0, -40, -40, 0, 0, 0, 0, 0,
1051 0, 0, 0, 0, 0, 0, -40, -40, 0, 0,
1052 0, 0, -40, -40, -40, -40, -40, 0, 0, 0,
1053 0, 0, 0, 0, -40, 0, 0, 0, 0, 0,
1054 0, 0, 0, 0, -40, 0, -40, -40, -40, -40,
1055 -40, -40, 0, -40, 0, 0, -40, -40, -40, -40,
1056 -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
1057 -40, -40, -38, 0, -40, 0, 0, 0, 0, 0,
1058 0, -38, -38, -38, -38, 0, -38, -38, 0, 0,
1059 0, -38, 0, 0, -38, -38, -38, -38, 0, 0,
1060 0, -38, 0, 0, 0, 0, 0, 0, 0, 0,
1061 0, 0, 0, 0, 0, 0, -38, -38, 0, 0,
1062 0, 0, 0, 0, 0, 0, 0, 0, 0, -38,
1063 -38, 0, 0, 0, 0, -38, -38, -38, -38, -38,
1064 0, 0, 0, 0, 0, 0, 0, -38, 0, 0,
1065 0, 0, 0, 0, 0, 0, 0, -38, 0, -38,
1066 -38, -38, -38, -38, -38, 0, -38, 0, 0, -38,
1067 -38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
1068 -38, -38, -38, -38, -38, -39, 0, -38, 0, 0,
1069 0, 0, 0, 0, -39, -39, -39, -39, 0, -39,
1070 -39, 0, 0, 0, -39, 0, 0, -39, -39, -39,
1071 -39, 0, 0, 0, -39, 0, 0, 0, 0, 0,
1072 0, 0, 0, 0, 0, 0, 0, 0, 0, -39,
1073 -39, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1074 0, 0, -39, -39, 0, 0, 0, 0, -39, -39,
1075 -39, -39, -39, 0, 0, 0, 0, 0, 0, 0,
1076 -39, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1077 -39, 0, -39, -39, -39, -39, -39, -39, 0, -39,
1078 0, 0, -39, -39, -39, -39, -39, -39, -39, -39,
1079 -39, -39, -39, -39, -39, -39, -39, -39, -32, 0,
1080 -39, 0, 0, 0, 0, 0, 0, -32, -32, -32,
1081 -32, 0, -32, -32, 0, 0, 0, -32, 0, 0,
1082 -32, -32, -32, -32, 0, 0, 0, -32, 0, 0,
1083 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1084 0, 0, -32, -32, 0, 0, 0, 0, 0, 0,
1085 0, 0, 0, 0, 0, -32, -32, 0, 0, 0,
1086 0, -32, -32, -32, -32, -32, 0, 0, 0, 0,
1087 0, 0, 0, -32, 0, 0, 0, 0, 0, 0,
1088 0, 0, 0, -32, 0, -32, -32, -32, -32, -32,
1089 -32, 0, -32, 0, 0, -32, -32, -32, -32, -32,
1090 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
1091 -32, -31, 0, -32, 0, 0, 0, 0, 0, 0,
1092 -31, -31, -31, -31, 0, -31, -31, 0, 0, 0,
1093 -31, 0, 0, -31, -31, -31, -31, 0, 0, 0,
1094 -31, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1095 0, 0, 0, 0, 0, -31, -31, 0, 0, 0,
1096 0, 0, 0, 0, 0, 0, 0, 0, -31, -31,
1097 0, 0, 0, 0, -31, -31, -31, -31, -31, 0,
1098 0, 0, 0, 0, 0, 0, -31, 0, 0, 0,
1099 0, 0, 0, 0, 0, 0, -31, 0, -31, -31,
1100 -31, -31, -31, -31, 0, -31, 0, 0, -31, -31,
1101 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
1102 -31, -31, -31, -31, -25, 0, -31, 0, 0, 0,
1103 0, 0, 0, -25, -25, -25, -25, 0, -25, -25,
1104 0, 0, 0, -25, 0, 0, -25, -25, -25, -25,
1105 0, 0, 0, -25, 0, 0, 0, 0, 0, 0,
1106 0, 0, 0, 0, 0, 0, 0, 0, -25, -25,
1107 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1108 0, -25, -25, 0, 0, 0, 0, -25, -25, -25,
1109 -25, -25, 0, 0, 0, 0, 0, 0, 0, -25,
1110 0, 0, 0, 0, 0, 0, 0, 0, 0, -25,
1111 0, -25, -25, -25, -25, -25, -25, 0, -25, 0,
1112 0, -25, -25, -25, -25, -25, -25, -25, -25, -25,
1113 -25, -25, -25, -25, -25, -25, -25, -29, 0, -25,
1114 0, 0, 0, 0, 0, 0, -29, -29, -29, -29,
1115 0, -29, -29, 0, 0, 0, -29, 0, 0, -29,
1116 -29, -29, -29, 0, 0, 0, -29, 0, 0, 0,
1117 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1118 0, -29, -29, 0, 0, 0, 0, 0, 0, 0,
1119 0, 0, 0, 0, -29, -29, 0, 0, 0, 0,
1120 -29, -29, -29, -29, -29, 0, 0, 0, 0, 0,
1121 0, 0, -29, 0, 0, 0, 0, 0, 0, 0,
1122 0, 0, -29, 0, -29, -29, -29, -29, -29, -29,
1123 0, -29, 0, 0, -29, -29, -29, -29, -29, -29,
1124 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
1125 -28, 0, -29, 0, 0, 0, 0, 0, 0, -28,
1126 -28, -28, -28, 0, -28, -28, 0, 0, 0, -28,
1127 0, 0, -28, -28, -28, -28, 0, 0, 0, -28,
1128 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1129 0, 0, 0, 0, -28, -28, 0, 0, 0, 0,
1130 0, 0, 0, 0, 0, 0, 0, -28, -28, 0,
1131 0, 0, 0, -28, -28, -28, -28, -28, 0, 0,
1132 0, 0, 0, 0, 0, -28, 0, 0, 0, 0,
1133 0, 0, 0, 0, 0, -28, 0, -28, -28, -28,
1134 -28, -28, -28, 0, -28, 0, 0, -28, -28, -28,
1135 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
1136 -28, -28, -28, -26, 0, -28, 0, 0, 0, 0,
1137 0, 0, -26, -26, -26, -26, 0, -26, -26, 0,
1138 0, 0, -26, 0, 0, -26, -26, -26, -26, 0,
1139 0, 0, -26, 0, 0, 0, 0, 0, 0, 0,
1140 0, 0, 0, 0, 0, 0, 0, -26, -26, 0,
1141 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1142 -26, -26, 0, 0, 0, 0, -26, -26, -26, -26,
1143 -26, 0, 0, 0, 0, 0, 0, 0, -26, 0,
1144 0, 0, 0, 0, 0, 0, 0, 0, -26, 0,
1145 -26, -26, -26, -26, -26, -26, 0, -26, 0, 0,
1146 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
1147 -26, -26, -26, -26, -26, -26, -27, 0, -26, 0,
1148 0, 0, 0, 0, 0, -27, -27, -27, -27, 0,
1149 -27, -27, 0, 0, 0, -27, 0, 0, -27, -27,
1150 -27, -27, 0, 0, 0, -27, 0, 0, 0, 0,
1151 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1152 -27, -27, 0, 0, 0, 0, 0, 0, 0, 0,
1153 0, 0, 0, -27, -27, 0, 0, 0, 0, -27,
1154 -27, -27, -27, -27, 0, 0, 0, 0, 0, 0,
1155 0, -27, 0, 0, 0, 0, 0, 0, 0, 0,
1156 0, -27, 0, -27, -27, -27, -27, -27, -27, 0,
1157 -27, 0, 0, -27, -27, -27, -27, -27, -27, -27,
1158 -27, -27, -27, -27, -27, -27, -27, -27, -27, -43,
1159 0, -27, 0, 0, 0, 0, 0, 0, -43, -43,
1160 -43, -43, 0, -43, -43, 0, 0, 0, -43, 0,
1161 0, -43, -43, -43, -43, 0, 0, 0, -43, 0,
1162 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1163 0, 0, 0, -43, -43, 0, 0, 0, 0, 0,
1164 0, 0, 0, 0, 0, 0, -43, -43, 0, 0,
1165 0, 0, -43, -43, -43, -43, -43, 0, 0, 0,
1166 0, 0, 0, 0, -43, 0, 0, 0, 0, 0,
1167 0, 0, 0, 0, -43, 0, -43, -43, -43, -43,
1168 -43, -43, 0, -43, 0, 0, -43, -43, -43, -43,
1169 -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
1170 -43, -43, -138, 0, -43, 0, 0, 0, 0, 0,
1171 0, -138, -138, -138, -138, 0, -138, -138, 0, 0,
1172 0, -138, 0, 0, -138, -138, -138, -138, 0, 0,
1173 0, -138, 0, 0, 0, 0, 0, 0, 0, 0,
1174 0, 0, 0, 0, 0, 0, -138, -138, 0, 0,
1175 0, 0, 0, 0, 0, 0, 0, 0, 0, -138,
1176 -138, 0, 0, 0, 0, -138, -138, -138, -138, -138,
1177 0, 0, 0, 0, 0, 0, 0, -138, 0, 0,
1178 0, 0, 0, 0, 0, 0, 0, -138, 0, -138,
1179 -138, -138, -138, -138, -138, 0, -138, 0, 0, -138,
1180 -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
1181 -138, -138, -138, -138, -138, -139, 0, -593, 0, 0,
1182 0, 0, 0, 0, -139, -139, -139, -139, 0, -139,
1183 -139, 0, 0, 0, -139, 0, 0, -139, -139, -139,
1184 -139, 0, 0, 0, -139, 0, 0, 0, 0, 0,
1185 0, 0, 0, 0, 0, 0, 0, 0, 0, -139,
1186 -139, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1187 0, 0, -139, -139, 0, 0, 0, 0, -139, -139,
1188 -139, -139, -139, 0, 0, 0, 0, 0, 0, 0,
1189 -139, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1190 -139, 0, -139, -139, -139, -139, -139, -139, 0, -139,
1191 0, 0, -139, -139, -139, -139, -139, -139, -139, -139,
1192 -139, -139, -139, -139, -139, -139, -139, -139, -140, 0,
1193 -592, 0, 0, 0, 0, 0, 0, -140, -140, -140,
1194 -140, 0, -140, -140, 0, 0, 0, -140, 0, 0,
1195 -140, -140, -140, -140, 0, 0, 0, -140, 0, 0,
1196 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1197 0, 0, -140, -140, 0, 0, 0, 0, 0, 0,
1198 0, 0, 0, 0, 0, -140, -140, 0, 0, 0,
1199 0, -140, -140, -140, -140, -140, 0, 0, 0, 0,
1200 0, 0, 0, -140, 0, 0, 0, 0, 0, 0,
1201 0, 0, 0, -140, 0, -140, -140, -140, -140, -140,
1202 -140, 0, -140, 0, 0, -140, -140, -140, -140, -140,
1203 -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
1204 -140, -141, 0, -590, 0, 0, 0, 0, 0, 0,
1205 -141, -141, -141, -141, 0, -141, -141, 0, 0, 0,
1206 -141, 0, 0, -141, -141, -141, -141, 0, 0, 0,
1207 -141, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1208 0, 0, 0, 0, 0, -141, -141, 0, 0, 0,
1209 0, 0, 0, 0, 0, 0, 0, 0, -141, -141,
1210 0, 0, 0, 0, -141, -141, -141, -141, -141, 0,
1211 0, 0, 0, 0, 0, 0, -141, 0, 0, 0,
1212 0, 0, 0, 0, 0, 0, -141, 0, -141, -141,
1213 -141, -141, -141, -141, 0, -141, 0, 0, -141, -141,
1214 -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
1215 -141, -141, -141, -141, -142, 0, -588, 0, 0, 0,
1216 0, 0, 0, -142, -142, -142, -142, 0, -142, -142,
1217 0, 0, 0, -142, 0, 0, -142, -142, -142, -142,
1218 0, 0, 0, -142, 0, 0, 0, 0, 0, 0,
1219 0, 0, 0, 0, 0, 0, 0, 0, -142, -142,
1220 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1221 0, -142, -142, 0, 0, 0, 0, -142, -142, -142,
1222 -142, -142, 0, 0, 0, 0, 0, 0, 0, -142,
1223 0, 0, 0, 0, 0, 0, 0, 0, 0, -142,
1224 0, -142, -142, -142, -142, -142, -142, 0, -142, 0,
1225 0, -142, -142, -142, -142, -142, -142, -142, -142, -142,
1226 -142, -142, -142, -142, -142, -142, -142, -143, 0, -589,
1227 0, 0, 0, 0, 0, 0, -143, -143, -143, -143,
1228 0, -143, -143, 0, 0, 0, -143, 0, 0, -143,
1229 -143, -143, -143, 0, 0, 0, -143, 0, 0, 0,
1230 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1231 0, -143, -143, 0, 0, 0, 0, 0, 0, 0,
1232 0, 0, 0, 0, -143, -143, 0, 0, 0, 0,
1233 -143, -143, -143, -143, -143, 0, 0, 0, 0, 0,
1234 0, 0, -143, 0, 0, 0, 0, 0, 0, 0,
1235 0, 0, -143, 0, -143, -143, -143, -143, -143, -143,
1236 0, -143, 0, 0, -143, -143, -143, -143, -143, -143,
1237 -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
1238 -144, 0, -591, 0, 0, 0, 0, 0, 0, -144,
1239 -144, -144, -144, 0, -144, -144, 0, 0, 0, -144,
1240 0, 0, -144, -144, -144, -144, 0, 0, 0, -144,
1241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1242 0, 0, 0, 0, -144, -144, 0, 0, 0, 0,
1243 0, 0, 0, 0, 0, 0, 0, -144, -144, 0,
1244 0, 0, 0, -144, -144, -144, -144, -144, 0, 0,
1245 0, 0, 0, 0, 0, -144, 0, 0, 0, 0,
1246 0, 0, 0, 0, 0, -144, 0, -144, -144, -144,
1247 -144, -144, -144, 0, -144, 0, 0, -144, -144, -144,
1248 -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
1249 -144, -144, -144, -145, 0, -587, 0, 0, 0, 0,
1250 0, 0, -145, -145, -145, -145, 0, -145, -145, 0,
1251 0, 0, -145, 0, 0, -145, -145, -145, -145, 0,
1252 0, 0, -145, 0, 0, 0, 0, 0, 0, 0,
1253 0, 0, 0, 0, 0, 0, 0, -145, -145, 0,
1254 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1255 -145, -145, 0, 0, 0, 0, -145, -145, -145, -145,
1256 -145, 0, 0, 0, 0, 0, 0, 0, -145, 0,
1257 0, 0, 0, 0, 0, 0, 0, 0, -145, 0,
1258 -145, -145, -145, -145, -145, -145, 0, -145, 0, 0,
1259 -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
1260 -145, -145, -145, -145, -145, -145, -146, 0, -586, 0,
1261 0, 0, 0, 0, 0, -146, -146, -146, -146, 0,
1262 -146, -146, 0, 0, 0, -146, 0, 0, -146, -146,
1263 -146, -146, 0, 0, 0, -146, 0, 0, 0, 0,
1264 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1265 -146, -146, 0, 0, 0, 0, 0, 0, 0, 0,
1266 0, 0, 0, -146, -146, 0, 0, 0, 0, -146,
1267 -146, -146, -146, -146, 0, 0, 0, 0, 0, 0,
1268 0, -146, 0, 0, 0, 0, 0, 0, 0, 0,
1269 0, -146, 0, -146, -146, -146, -146, -146, -146, 0,
1270 -146, 0, 0, -146, -146, -146, -146, -146, -146, -146,
1271 -146, -146, -146, -146, -146, -146, -146, -146, -146, -30,
1272 0, -594, 0, 0, 0, 0, 0, 0, -30, -30,
1273 -30, -30, 0, -30, -30, 0, 0, 0, -30, 0,
1274 0, -30, -30, -30, -30, 0, 0, 0, -30, 0,
1275 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1276 0, 0, 0, -30, -30, 0, 0, 0, 0, 0,
1277 0, 0, 0, 0, 0, 0, -30, -30, 0, 0,
1278 0, 0, -30, -30, -30, -30, -30, 0, 0, 0,
1279 0, 0, 0, 0, -30, 0, 0, 0, 0, 0,
1280 0, 0, 0, 0, -30, 0, -30, -30, -30, -30,
1281 -30, -30, 0, -30, 0, 0, -30, -30, -30, -30,
1282 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
1283 -30, -30, -148, 0, -30, 0, 0, 0, 0, 0,
1284 0, -148, -148, -148, -148, 0, -148, -148, 0, 0,
1285 0, -148, 0, 0, -148, -148, -148, -148, 0, 0,
1286 0, -148, 0, 0, 0, 0, 0, 0, 0, 0,
1287 0, 0, 0, 0, 0, 0, -148, -148, 0, 0,
1288 0, 0, 0, 0, 0, 0, 0, 0, 0, -148,
1289 -148, 0, 0, 0, 0, -148, -148, -148, -148, -148,
1290 0, 0, 0, 0, 0, 0, 0, -148, 0, 0,
1291 0, 0, 0, 0, 0, 0, 0, -148, 0, -148,
1292 -148, -148, -148, -148, -148, 0, -148, 0, 0, -148,
1293 -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
1294 -148, -148, -148, -148, -148, -149, 0, -622, 0, 0,
1295 0, 0, 0, 0, -149, -149, -149, -149, 0, -149,
1296 -149, 0, 0, 0, -149, 0, 0, -149, -149, -149,
1297 -149, 0, 0, 0, -149, 0, 0, 0, 0, 0,
1298 0, 0, 0, 0, 0, 0, 0, 0, 0, -149,
1299 -149, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1300 0, 0, -149, -149, 0, 0, 0, 0, -149, -149,
1301 -149, -149, -149, 0, 0, 0, 0, 0, 0, 0,
1302 -149, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1303 -149, 0, -149, -149, -149, -149, -149, -149, 0, -149,
1304 0, 0, -149, -149, -149, -149, -149, -149, -149, -149,
1305 -149, -149, -149, -149, -149, -149, -149, -149, -150, 0,
1306 -620, 0, 0, 0, 0, 0, 0, -150, -150, -150,
1307 -150, 0, -150, -150, 0, 0, 0, -150, 0, 0,
1308 -150, -150, -150, -150, 0, 0, 0, -150, 0, 0,
1309 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1310 0, 0, -150, -150, 0, 0, 0, 0, 0, 0,
1311 0, 0, 0, 0, 0, -150, -150, 0, 0, 0,
1312 0, -150, -150, -150, -150, -150, 0, 0, 0, 0,
1313 0, 0, 0, -150, 0, 0, 0, 0, 0, 0,
1314 0, 0, 0, -150, 0, -150, -150, -150, -150, -150,
1315 -150, 0, -150, 0, 0, -150, -150, -150, -150, -150,
1316 -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
1317 -150, -151, 0, -619, 0, 0, 0, 0, 0, 0,
1318 -151, -151, -151, -151, 0, -151, -151, 0, 0, 0,
1319 -151, 0, 0, -151, -151, -151, -151, 0, 0, 0,
1320 -151, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1321 0, 0, 0, 0, 0, -151, -151, 0, 0, 0,
1322 0, 0, 0, 0, 0, 0, 0, 0, -151, -151,
1323 0, 0, 0, 0, -151, -151, -151, -151, -151, 0,
1324 0, 0, 0, 0, 0, 0, -151, 0, 0, 0,
1325 0, 0, 0, 0, 0, 0, -151, 0, -151, -151,
1326 -151, -151, -151, -151, 0, -151, 0, 0, -151, -151,
1327 -151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
1328 -151, -151, -151, -151, -152, 0, -621, 0, 0, 0,
1329 0, 0, 0, -152, -152, -152, -152, 0, -152, -152,
1330 0, 0, 0, -152, 0, 0, -152, -152, -152, -152,
1331 0, 0, 0, -152, 0, 0, 0, 0, 0, 0,
1332 0, 0, 0, 0, 0, 0, 0, 0, -152, -152,
1333 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1334 0, -152, -152, 0, 0, 0, 0, -152, -152, -152,
1335 -152, -152, 0, 0, 0, 0, 0, 0, 0, -152,
1336 0, 0, 0, 0, 0, 0, 0, 0, 0, -152,
1337 0, -152, -152, -152, -152, -152, -152, 0, -152, 0,
1338 0, -152, -152, -152, -152, -152, -152, -152, -152, -152,
1339 -152, -152, -152, -152, -152, -152, -152, -153, 0, -618,
1340 0, 0, 0, 0, 0, 0, -153, -153, -153, -153,
1341 0, -153, -153, 0, 0, 0, -153, 0, 0, -153,
1342 -153, -153, -153, 0, 0, 0, -153, 0, 0, 0,
1343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1344 0, -153, -153, 0, 0, 0, 0, 0, 0, 0,
1345 0, 0, 0, 0, -153, -153, 0, 0, 0, 0,
1346 -153, -153, -153, -153, -153, 0, 0, 0, 0, 0,
1347 0, 0, -153, 0, 0, 0, 0, 0, 0, 0,
1348 0, 0, -153, 0, -153, -153, -153, -153, -153, -153,
1349 0, -153, 0, 0, -153, -153, -153, -153, -153, -153,
1350 -153, -153, -153, -153, -153, -153, -153, -153, -153, -153,
1351 104, 0, -617, 0, 0, 0, 0, 0, 0, 105,
1352 106, 107, 108, 0, 109, 110, 0, 0, 0, 111,
1353 0, 0, 366, 450, 367, 368, 0, 0, 0, 369,
1354 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1355 0, 0, 0, 0, 370, 371, 0, 0, 0, 0,
1356 0, 0, 0, 0, 0, 0, 0, 372, 373, 0,
1357 0, 0, 0, 112, 113, 114, 115, 116, 0, 0,
1358 0, 0, 0, 0, 0, 374, 0, 0, 0, 0,
1359 0, 0, 0, 0, 0, 117, 0, 118, 119, 120,
1360 121, 122, 123, 0, 124, 0, 0, 125, 126, 127,
1361 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1362 138, 139, 140, 0, 0, 451, 104, 1, 2, 3,
1363 4, 5, 6, 7, 8, 105, 106, 107, 108, 0,
1364 702, 110, 514, 0, 0, 703, 497, 0, 498, 0,
1365 499, 368, 11, 0, 0, 500, 0, 0, 0, 0,
1366 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1367 370, 371, 168, 0, 0, 0, 0, 0, 0, 0,
1368 0, 0, 0, 372, 373, 0, 0, 0, 0, 112,
1369 113, 114, 115, 116, 0, 0, 0, 0, 0, 0,
1370 0, 0, 0, 0, 0, 0, 0, 62, 63, 64,
1371 65, 117, 0, 118, 119, 120, 121, 122, 123, 0,
1372 124, 0, 0, 125, 126, 127, 128, 129, 130, 131,
1373 132, 133, 134, 135, 136, 137, 138, 139, 140, 104,
1374 0, 0, 0, 0, 0, 0, 0, 0, 105, 106,
1375 107, 108, 0, 109, 110, 494, 495, 496, 111, 497,
1376 0, 498, 450, 499, 368, 0, 0, 0, 500, 0,
1377 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1378 0, 0, 0, 370, 371, 168, 0, 0, 0, 0,
1379 0, 0, 0, 0, 0, 0, 372, 373, 0, 0,
1380 0, 0, 112, 113, 114, 115, 116, 0, 0, 0,
1381 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1382 0, 0, 0, 0, 117, 0, 118, 119, 120, 121,
1383 122, 123, 0, 124, 0, 0, 125, 126, 127, 128,
1384 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1385 139, 140, 104, 0, 0, 0, 0, 0, 0, 0,
1386 0, 105, 106, 107, 108, 0, 109, 110, 790, 0,
1387 0, 111, 497, 0, 498, 0, 499, 368, 0, 0,
1388 0, 500, 0, 0, 0, 0, 0, 0, 0, 0,
1389 0, 0, 0, 158, 0, 0, 370, 371, 168, 0,
1390 0, 0, 0, 0, 0, 0, 0, 0, 0, 372,
1391 373, 0, 0, 0, 0, 112, 113, 114, 115, 116,
1392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1393 0, 0, 0, 0, 0, 0, 0, 117, 791, 792,
1394 119, 120, 121, 122, 123, 0, 124, 0, 0, 125,
1395 126, 127, 128, 129, 130, 131, 132, 133, 793, 135,
1396 136, 137, 138, 139, 140, 104, 0, 0, 0, 0,
1397 0, 0, 0, 0, 105, 106, 107, 108, 0, 109,
1398 110, 514, 0, 0, 111, 497, 0, 498, 0, 499,
1399 368, 0, 0, 0, 500, 0, 0, 0, 0, 0,
1400 0, 0, 0, 0, 0, 0, 158, 0, 0, 370,
1401 371, 168, 0, 0, 0, 0, 0, 0, 0, 0,
1402 0, 0, 372, 373, 0, 0, 872, 0, 112, 113,
1403 114, 115, 116, 0, 0, 0, 0, 0, 0, 0,
1404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1405 117, 0, 118, 119, 120, 121, 122, 123, 0, 124,
1406 0, 0, 125, 126, 127, 128, 129, 130, 131, 132,
1407 133, 134, 135, 136, 137, 138, 139, 140, 104, 0,
1408 0, 0, 0, 0, 0, 0, 0, 105, 106, 107,
1409 108, 0, 109, 110, 514, 0, 0, 111, 497, -636,
1410 498, 0, 499, 368, 0, 0, 0, 500, 0, 0,
1411 0, 0, 0, 0, 0, 0, 0, 0, 0, 158,
1412 0, 0, 370, 371, 168, 0, 0, 0, 0, 0,
1413 0, 0, 0, 0, 0, 372, 373, 0, 0, 0,
1414 0, 112, 113, 114, 115, 116, 0, 0, 0, 0,
1415 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1416 0, 0, 0, 117, 0, 118, 119, 120, 121, 122,
1417 123, 0, 124, 0, 0, 125, 126, 127, 128, 129,
1418 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1419 140, 104, 0, 0, 0, 0, 0, 0, 0, 0,
1420 105, 106, 107, 108, 0, 109, 110, 514, 0, 0,
1421 111, 497, 0, 498, 0, 499, 368, 0, 0, 0,
1422 500, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1423 0, 0, 158, 0, 0, 370, 371, 168, 0, 0,
1424 0, 0, 0, 0, 0, 0, 0, 0, 372, 373,
1425 0, 0, 0, 0, 112, 113, 114, 115, 116, 0,
1426 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1427 0, 0, 0, 0, 0, 0, 117, 0, 118, 119,
1428 120, 121, 122, 123, 0, 124, 0, 0, 125, 126,
1429 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
1430 137, 138, 139, 140, 104, 0, 0, 0, 0, 0,
1431 0, 0, 0, 105, 106, 107, 108, 0, 109, 110,
1432 790, 0, 0, 111, 497, 0, 498, 0, 499, 368,
1433 0, 0, 0, 500, 0, 0, 0, 0, 0, 0,
1434 0, 0, 0, 0, 0, 0, 0, 0, 370, 371,
1435 168, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1436 0, 372, 373, 0, 0, 0, 0, 112, 113, 114,
1437 115, 116, 0, 0, 0, 0, 0, 0, 0, 0,
1438 0, 0, 0, 0, 0, 0, 0, 0, 0, 117,
1439 791, 792, 119, 120, 121, 122, 123, 0, 124, 0,
1440 0, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1441 793, 135, 136, 137, 138, 139, 140, 104, 0, 0,
1442 0, 0, 0, 0, 0, 0, 105, 106, 107, 108,
1443 0, 109, 110, 514, 0, 0, 111, 497, 0, 498,
1444 0, 499, 368, 0, 0, 0, 500, 0, 0, 0,
1445 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1446 0, 370, 371, 168, 0, 0, 0, 0, 0, 0,
1447 0, 0, 0, 0, 372, 373, 0, 0, 0, 0,
1448 112, 113, 114, 115, 116, 0, 0, 0, 0, 0,
1449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1450 0, 0, 117, 0, 118, 119, 120, 121, 122, 123,
1451 0, 124, 0, 0, 125, 126, 127, 128, 129, 130,
1452 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1453 104, 0, 0, 0, 0, 0, 0, 0, 0, 105,
1454 106, 107, 108, 0, 109, 110, 0, 0, 0, 111,
1455 0, 0, 366, 0, 367, 368, 0, 0, 0, 369,
1456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1457 0, 0, 0, 0, 370, 371, 0, 0, 0, 0,
1458 0, 0, 0, 0, 0, 0, 0, 372, 373, 0,
1459 0, 0, 0, 112, 113, 114, 115, 116, 0, 0,
1460 0, 0, 0, 0, 0, 374, 0, 0, 0, 0,
1461 0, 0, 0, 0, 0, 117, 0, 118, 119, 120,
1462 121, 122, 123, 0, 124, 0, 0, 125, 126, 127,
1463 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1464 138, 139, 140, 104, 0, 0, 0, 0, 0, 0,
1465 0, 0, 105, 106, 107, 108, 0, 109, 110, 0,
1466 0, 0, 111, 0, 0, 0, 0, 0, 0, 11,
1467 0, 0, -528, 0, 0, 0, 0, 0, 0, 0,
1468 0, 0, 0, 0, 0, 0, 0, 0, 0, 168,
1469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1470 0, 0, 0, 0, 0, 0, 112, 113, 114, 115,
1471 116, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1472 0, 0, 0, 0, 0, 0, 0, 65, 117, 0,
1473 118, 119, 120, 121, 122, 123, 0, 124, 0, 0,
1474 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1475 135, 136, 137, 138, 139, 140, 104, 0, 0, 0,
1476 0, 0, 0, 0, 0, 105, 106, 107, 108, 0,
1477 109, 110, 753, 0, 0, 111, 0, 0, 0, 0,
1478 0, 0, 11, 466, 467, 468, 469, 470, 471, 472,
1479 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
1480 483, 0, 168, 0, 0, 0, 708, 0, 0, 0,
1481 0, 0, 0, 0, 0, 0, 0, 0, 0, 112,
1482 113, 114, 115, 116, 0, 0, 0, 0, 0, 0,
1483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1484 65, 117, 0, 118, 119, 120, 121, 122, 123, 0,
1485 124, 0, 0, 125, 126, 127, 128, 129, 130, 131,
1486 132, 133, 134, 135, 136, 137, 138, 139, 140, 104,
1487 0, 0, 0, 0, 0, 0, 0, 0, 105, 106,
1488 107, 108, 0, 109, 110, 0, 0, 0, 111, 0,
1489 0, 682, 0, 0, 0, 0, 0, 0, 725, 830,
1490 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
1491 476, 477, 478, 479, 480, 481, 482, 483, 0, 0,
1492 0, 0, 0, 484, 0, 0, 0, 0, 0, 0,
1493 0, 0, 112, 113, 114, 115, 116, 0, 0, 0,
1494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1495 0, 0, 0, 0, 117, 0, 118, 119, 120, 121,
1496 122, 123, 0, 124, 0, 0, 125, 126, 127, 128,
1497 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1498 139, 140, 104, 0, 0, 0, 0, 0, 0, 0,
1499 0, 105, 106, 107, 108, 0, 109, 110, 0, 0,
1500 0, 111, 0, 0, 0, 0, 0, 0, 0, 0,
1501 0, 0, 0, 0, 767, 0, 0, 0, 0, 0,
1502 0, 0, 0, 0, 0, 0, 0, 0, 168, 0,
1503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1504 0, 0, 0, 0, 0, 112, 113, 114, 115, 116,
1505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1506 0, 0, 0, 0, 0, 0, 0, 117, 0, 118,
1507 119, 120, 121, 122, 123, 0, 124, 0, 0, 125,
1508 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1509 136, 137, 138, 139, 140, 104, 0, 0, 0, 0,
1510 0, 0, 0, 0, 105, 106, 107, 108, 774, 109,
1511 110, 0, 0, 0, 111, 0, 0, 466, 467, 468,
1512 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
1513 479, 480, 481, 482, 483, 0, 0, 0, 0, 0,
1514 708, 168, 0, 0, 0, 0, 0, 0, 0, 0,
1515 0, 0, 0, 0, 0, 0, 0, 0, 112, 113,
1516 114, 115, 116, 0, 0, 0, 0, 0, 0, 0,
1517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1518 117, 0, 118, 119, 120, 121, 122, 123, 0, 124,
1519 0, 0, 125, 126, 127, 128, 129, 130, 131, 132,
1520 133, 134, 135, 136, 137, 138, 139, 140, 104, 0,
1521 0, 0, 0, 0, 0, 0, 0, 105, 106, 107,
1522 108, 0, 109, 110, 0, 0, 0, 111, 0, 926,
1523 0, 0, 0, 0, 0, 0, 0, 462, 466, 467,
1524 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
1525 478, 479, 480, 481, 482, 483, 0, 0, 0, 0,
1526 0, 708, 0, 0, 0, 0, 0, 0, 0, 0,
1527 0, 112, 113, 114, 115, 116, 0, 0, 0, 0,
1528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1529 0, 0, 0, 117, 0, 118, 119, 120, 121, 122,
1530 123, 0, 124, 0, 0, 125, 126, 127, 128, 129,
1531 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1532 140, 104, 0, 0, 0, 0, 0, 0, 0, 0,
1533 105, 106, 107, 108, 0, 109, 110, 0, 0, 0,
1534 111, 0, 0, 890, 0, 0, 0, 0, 0, 0,
1535 725, 466, 467, 468, 469, 470, 471, 472, 473, 474,
1536 475, 476, 477, 478, 479, 480, 481, 482, 483, 0,
1537 0, 0, 0, 0, 708, 0, 0, 0, 0, 0,
1538 104, 0, 0, 0, 112, 113, 114, 115, 116, 105,
1539 106, 107, 108, 0, 109, 110, 0, 0, 0, 111,
1540 0, 0, 0, 0, 0, 0, 117, 0, 118, 119,
1541 120, 121, 122, 123, 0, 124, 0, 0, 125, 126,
1542 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
1543 137, 138, 139, 140, 0, 0, 0, 0, 0, 0,
1544 0, 755, 0, 112, 113, 114, 115, 116, 0, 0,
1545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1546 0, 0, 0, 0, 0, 117, 0, 118, 119, 120,
1547 121, 122, 123, 0, 124, 0, 0, 125, 126, 127,
1548 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1549 138, 139, 140, 104, 0, 0, 0, 0, 0, 0,
1550 0, 0, 105, 106, 107, 108, 764, 806, 110, 0,
1551 0, 0, 111, 466, 467, 468, 469, 470, 471, 472,
1552 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
1553 483, 0, 0, 0, 0, 0, 484, 0, 0, 168,
1554 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1555 0, 0, 104, 0, 0, 0, 112, 113, 114, 115,
1556 116, 105, 106, 107, 108, 0, 109, 110, 0, 0,
1557 0, 111, 0, 0, 0, 0, 0, 0, 117, 0,
1558 118, 119, 120, 121, 122, 123, 0, 124, 0, 0,
1559 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1560 135, 136, 137, 138, 139, 140, 0, 0, 0, 0,
1561 0, 104, 0, 851, 0, 112, 113, 114, 115, 116,
1562 105, 106, 107, 108, 0, 109, 110, 0, 0, 0,
1563 111, 0, 0, 0, 0, 0, 0, 117, 0, 118,
1564 119, 120, 121, 122, 123, 0, 124, 0, 0, 125,
1565 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1566 136, 137, 138, 139, 140, 0, 0, 0, 0, 0,
1567 0, 0, 0, 0, 112, 113, 114, 115, 116, 0,
1568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1569 0, 0, 0, 0, 0, 0, 117, 0, 118, 119,
1570 120, 121, 122, 123, 0, 124, 0, 0, 125, 126,
1571 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
1572 137, 138, 139, 140, 822, 0, 0, 0, 0, 0,
1573 0, 466, 467, 468, 469, 470, 471, 472, 473, 474,
1574 475, 476, 477, 478, 479, 480, 481, 482, 483, 0,
1575 0, 0, 723, 0, 708, 466, 467, 468, 469, 470,
1576 471, 472, 473, 474, 475, 476, 477, 478, 479, 480,
1577 481, 482, 483, 0, 0, 0, 0, 0, 708, 466,
1578 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
1579 477, 478, 479, 480, 481, 482, 483, 0, 0, 0,
1580 0, 0, 484, 466, 467, 468, 469, 470, 471, 472,
1581 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
1582 483, 0, 0, 0, 0, 0, 708, 466, 467, 468,
1583 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
1584 479, 480, 481, 482, 483, 0, 0, 0, 0, 0,
1585 484, 466, 467, 468, 469, 470, 471, 472, 473, 474,
1586 475, 476, 477, 478, 479, 480, 481, 482, 483, 0,
1587 0, 0, 0, 0, 708
1588 };
1589
1590 static const short yycheck[] =
1591 {
1592 33, 22, 88, 0, 33, 16, 17, 18, 190, 189,
1593 190, 0, 15, 10, 33, 196, 103, 431, 15, 92,
1594 34, 405, 387, 388, 434, 431, 509, 24, 434, 404,
1595 27, 719, 487, 81, 391, 317, 487, 741, 27, 741,
1596 741, 15, 92, 91, 419, 402, 26, 317, 45, 0,
1597 49, 62, 63, 64, 141, 770, 10, 144, 377, 10,
1598 778, 437, 780, 31, 32, 29, 34, 24, 29, 33,
1599 81, 91, 33, 24, 32, 44, 27, 17, 18, 29,
1600 38, 92, 93, 94, 31, 26, 443, 369, 792, 36,
1601 101, 45, 95, 375, 45, 165, 800, 0, 95, 800,
1602 29, 816, 6, 123, 33, 9, 824, 64, 9, 25,
1603 11, 4, 5, 6, 7, 8, 9, 10, 11, 35,
1604 32, 95, 34, 87, 17, 124, 87, 197, 26, 22,
1605 125, 17, 18, 452, 510, 33, 29, 87, 826, 119,
1606 32, 856, 461, 500, 501, 464, 416, 32, 4, 5,
1607 6, 31, 509, 9, 34, 843, 31, 125, 87, 162,
1608 35, 36, 173, 196, 161, 162, 22, 882, 35, 36,
1609 110, 111, 112, 113, 114, 115, 36, 4, 5, 6,
1610 191, 869, 9, 465, 36, 900, 88, 891, 162, 891,
1611 83, 84, 85, 86, 87, 22, 89, 31, 30, 33,
1612 34, 905, 484, 485, 6, 7, 8, 161, 31, 913,
1613 161, 32, 913, 931, 100, 101, 102, 103, 104, 105,
1614 106, 107, 108, 927, 31, 927, 33, 34, 3, 35,
1615 123, 6, 318, 26, 27, 10, 691, 12, 13, 32,
1616 691, 696, 33, 34, 317, 696, 934, 36, 23, 35,
1617 36, 44, 4, 5, 6, 7, 8, 9, 10, 11,
1618 40, 645, 23, 647, 31, 17, 650, 317, 33, 34,
1619 22, 33, 34, 33, 34, 32, 33, 29, 36, 4,
1620 5, 6, 7, 8, 9, 10, 11, 92, 93, 94,
1621 95, 96, 17, 98, 99, 652, 369, 22, 33, 34,
1622 33, 34, 375, 678, 29, 23, 317, 487, 93, 94,
1623 123, 38, 360, 32, 6, 36, 26, 32, 31, 369,
1624 500, 37, 36, 32, 35, 375, 32, 31, 40, 743,
1625 31, 6, 84, 85, 86, 87, 26, 743, 32, 34,
1626 40, 49, 22, 34, 827, 34, 31, 31, 26, 32,
1627 725, 708, 709, 32, 31, 730, 37, 39, 369, 84,
1628 85, 86, 87, 374, 375, 64, 685, 64, 37, 688,
1629 689, 123, 40, 31, 40, 404, 92, 93, 94, 95,
1630 96, 31, 98, 99, 741, 32, 419, 24, 40, 32,
1631 419, 32, 465, 31, 33, 35, 121, 430, 33, 432,
1632 419, 434, 786, 33, 788, 789, 771, 772, 34, 25,
1633 31, 484, 485, 35, 33, 465, 773, 34, 33, 33,
1634 40, 34, 433, 92, 93, 94, 95, 96, 34, 98,
1635 99, 845, 35, 64, 484, 485, 447, 109, 32, 845,
1636 32, 34, 33, 800, 458, 33, 25, 32, 35, 31,
1637 33, 462, 33, 33, 465, 488, 489, 32, 31, 33,
1638 25, 97, 33, 35, 646, 822, 646, 877, 34, 649,
1639 827, 877, 31, 484, 485, 32, 34, 33, 33, 33,
1640 894, 763, 764, 867, 487, 842, 34, 32, 894, 24,
1641 487, 34, 811, 812, 32, 97, 32, 25, 487, 33,
1642 906, 4, 5, 6, 7, 8, 9, 10, 11, 520,
1643 32, 691, 25, 33, 17, 33, 696, 34, 34, 22,
1644 35, 33, 936, 33, 33, 32, 29, 30, 31, 33,
1645 936, 25, 34, 890, 891, 32, 27, 33, 41, 162,
1646 33, 947, 32, 696, 33, 33, 33, 691, 3, 933,
1647 184, 6, 642, 186, 40, 10, 913, 12, 13, 14,
1648 15, 16, 17, 24, 948, 649, 390, 748, 818, 458,
1649 927, 653, 21, 174, 780, 19, 394, 927, 33, 430,
1650 83, 84, 85, 86, 87, 88, 89, 791, 91, 4,
1651 5, 6, 7, 8, 9, 10, 11, 905, 947, 839,
1652 750, 783, 17, 783, -1, -1, -1, 22, -1, -1,
1653 -1, 698, 699, 116, 29, -1, -1, -1, 121, -1,
1654 123, -1, 37, -1, -1, -1, -1, -1, 4, 5,
1655 6, 7, 8, 9, 10, 11, -1, -1, -1, -1,
1656 673, 17, 653, -1, 17, 18, 22, -1, -1, 678,
1657 -1, -1, -1, 29, -1, -1, -1, -1, -1, 32,
1658 -1, -1, 695, -1, -1, 676, 695, -1, -1, 84,
1659 85, 86, 87, -1, -1, -1, 695, -1, -1, -1,
1660 -1, -1, -1, -1, -1, 704, 697, -1, 691, -1,
1661 763, 764, -1, 696, 691, -1, 725, -1, -1, 696,
1662 -1, 730, 691, 885, -1, 885, 121, 696, 84, 85,
1663 86, 87, 745, 763, 764, 748, -1, -1, 751, -1,
1664 -1, -1, 904, 809, 904, -1, 747, 100, 101, 102,
1665 103, 104, 105, 106, 107, 108, -1, 3, -1, 750,
1666 6, -1, -1, -1, 10, 121, 12, 13, 14, 15,
1667 16, 17, 763, 764, -1, -1, -1, -1, 940, -1,
1668 940, -1, 4, 5, 6, 7, 8, 9, 10, 11,
1669 803, 782, 30, -1, 785, 17, -1, -1, -1, -1,
1670 22, -1, -1, 816, 26, 27, 819, 820, -1, -1,
1671 -1, -1, -1, -1, -1, -1, -1, -1, -1, 810,
1672 -1, -1, 44, -1, -1, 826, 839, -1, 66, 67,
1673 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1674 -1, 79, 80, 81, 82, -1, -1, -1, -1, -1,
1675 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1676 -1, -1, 84, 85, 86, -1, -1, -1, -1, 882,
1677 -1, -1, -1, -1, -1, -1, -1, -1, 891, -1,
1678 -1, -1, -1, -1, 0, -1, -1, 3, 4, 5,
1679 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1680 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1681 26, 27, 28, 29, 927, 31, 32, 33, 34, 35,
1682 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1683 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1684 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1685 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1686 76, 77, 78, 79, -1, 81, -1, 83, 84, 85,
1687 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1688 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1689 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1690 116, -1, -1, 119, -1, 121, 122, 123, 124, 125,
1691 0, -1, -1, 3, 4, 5, 6, 7, 8, 9,
1692 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1693 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1694 -1, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1695 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1696 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1697 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1698 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1699 -1, 81, -1, 83, 84, 85, 86, 87, 88, 89,
1700 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1701 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1702 110, 111, 112, 113, 114, 115, 116, -1, -1, 119,
1703 -1, 121, 122, 123, 124, 125, 0, -1, -1, 3,
1704 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1705 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1706 24, 25, 26, 27, 28, 29, -1, 31, 32, 33,
1707 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1708 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1709 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1710 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1711 74, 75, 76, 77, 78, 79, -1, 81, -1, 83,
1712 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
1713 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
1714 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1715 114, 115, 116, -1, -1, 119, -1, 121, 122, 123,
1716 124, 125, 0, -1, -1, 3, 4, 5, 6, 7,
1717 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
1718 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1719 28, 29, -1, 31, 32, 33, 34, 35, 36, -1,
1720 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1721 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1722 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1723 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1724 78, 79, -1, 81, -1, 83, 84, 85, 86, 87,
1725 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1726 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
1727 108, 109, 110, 111, 112, 113, 114, 115, 116, 3,
1728 -1, 119, -1, 121, 122, 123, 124, 125, 12, 13,
1729 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
1730 -1, -1, -1, -1, -1, 29, 30, 31, 32, 33,
1731 34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
1732 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1733 54, 55, 56, 57, 58, 59, -1, -1, -1, -1,
1734 -1, 65, 66, 67, 68, 69, 70, 4, 5, 6,
1735 7, 8, 9, 10, 11, -1, -1, -1, -1, -1,
1736 17, -1, -1, 87, 88, 22, 90, 91, 92, 93,
1737 94, 95, 29, 97, -1, -1, 100, 101, 102, 103,
1738 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1739 114, 115, -1, 3, -1, -1, -1, -1, -1, -1,
1740 -1, 125, 12, 13, 14, 15, -1, 17, 18, 19,
1741 -1, -1, 22, 23, -1, 25, -1, 27, 28, 29,
1742 -1, -1, 32, -1, -1, -1, -1, 84, 85, 86,
1743 87, -1, -1, -1, -1, -1, -1, 47, 48, 49,
1744 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1745 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
1746 70, 4, 5, 6, 7, 8, 9, 10, 11, -1,
1747 -1, -1, -1, -1, 17, -1, -1, 87, 88, 22,
1748 90, 91, 92, 93, 94, 95, 29, 97, -1, -1,
1749 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1750 110, 111, 112, 113, 114, 115, 3, -1, -1, -1,
1751 -1, -1, -1, -1, 124, 12, 13, 14, 15, -1,
1752 17, 18, -1, -1, -1, 22, -1, -1, 25, -1,
1753 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
1754 -1, 84, 85, 86, 87, -1, -1, -1, -1, -1,
1755 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
1756 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
1757 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1758 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
1759 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
1760 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1761 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
1762 -1, -1, 119, -1, -1, -1, -1, -1, 12, 13,
1763 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
1764 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
1765 -1, -1, -1, -1, -1, 4, 5, 6, 7, 8,
1766 9, 10, 11, 47, 48, -1, -1, -1, 17, -1,
1767 -1, -1, -1, 22, -1, -1, 60, 61, -1, -1,
1768 29, -1, 66, 67, 68, 69, 70, -1, -1, -1,
1769 -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
1770 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
1771 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
1772 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1773 114, 115, 3, -1, 118, 84, 85, 86, 87, -1,
1774 -1, 12, 13, 14, 15, -1, 17, 18, -1, -1,
1775 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
1776 -1, 32, -1, -1, -1, -1, -1, -1, 4, 5,
1777 6, 7, 8, 9, 10, 11, 47, 48, -1, -1,
1778 -1, 17, -1, -1, -1, -1, 22, -1, -1, 60,
1779 61, -1, -1, 29, -1, 66, 67, 68, 69, 70,
1780 -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
1781 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
1782 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
1783 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1784 111, 112, 113, 114, 115, 3, -1, 118, 84, 85,
1785 86, 87, -1, -1, 12, 13, 14, 15, -1, 17,
1786 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
1787 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
1788 -1, 4, 5, 6, 7, 8, 9, 10, 11, 47,
1789 48, -1, -1, -1, 17, -1, -1, -1, -1, 22,
1790 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
1791 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
1792 78, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1793 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
1794 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
1795 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
1796 118, 84, 85, 86, -1, -1, -1, 12, 13, 14,
1797 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
1798 25, 26, 27, 28, -1, -1, -1, 32, -1, -1,
1799 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1800 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
1801 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
1802 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
1803 -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
1804 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
1805 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
1806 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1807 115, 3, -1, 118, -1, -1, -1, -1, -1, -1,
1808 12, 13, 14, 15, -1, 17, 18, -1, -1, -1,
1809 22, -1, -1, 25, 26, 27, 28, -1, -1, -1,
1810 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1811 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
1812 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
1813 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
1814 -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
1815 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
1816 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
1817 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1818 112, 113, 114, 115, 3, -1, 118, -1, -1, -1,
1819 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
1820 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
1821 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
1822 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
1823 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1824 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
1825 69, 70, -1, -1, -1, -1, -1, -1, -1, 78,
1826 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
1827 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
1828 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1829 109, 110, 111, 112, 113, 114, 115, 3, -1, 118,
1830 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
1831 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
1832 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
1833 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1834 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
1835 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
1836 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
1837 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
1838 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
1839 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
1840 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1841 3, -1, 118, -1, -1, -1, -1, -1, -1, 12,
1842 13, 14, 15, -1, 17, 18, -1, -1, -1, 22,
1843 -1, -1, 25, 26, 27, 28, -1, -1, -1, 32,
1844 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1845 -1, -1, -1, -1, 47, 48, -1, -1, -1, -1,
1846 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
1847 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
1848 -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
1849 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
1850 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
1851 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1852 113, 114, 115, 3, -1, 118, -1, -1, -1, -1,
1853 -1, -1, 12, 13, 14, 15, -1, 17, 18, -1,
1854 -1, -1, 22, -1, -1, 25, 26, 27, 28, -1,
1855 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
1856 -1, -1, -1, -1, -1, -1, -1, 47, 48, -1,
1857 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1858 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
1859 70, -1, -1, -1, -1, -1, -1, -1, 78, -1,
1860 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
1861 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
1862 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1863 110, 111, 112, 113, 114, 115, 3, -1, 118, -1,
1864 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
1865 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
1866 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
1867 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1868 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
1869 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
1870 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1871 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
1872 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
1873 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1874 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
1875 -1, 118, -1, -1, -1, -1, -1, -1, 12, 13,
1876 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
1877 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
1878 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1879 -1, -1, -1, 47, 48, -1, -1, -1, -1, -1,
1880 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
1881 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
1882 -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
1883 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
1884 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
1885 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1886 114, 115, 3, -1, 118, -1, -1, -1, -1, -1,
1887 -1, 12, 13, 14, 15, -1, 17, 18, -1, -1,
1888 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
1889 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
1890 -1, -1, -1, -1, -1, -1, 47, 48, -1, -1,
1891 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
1892 61, -1, -1, -1, -1, 66, 67, 68, 69, 70,
1893 -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
1894 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
1895 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
1896 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1897 111, 112, 113, 114, 115, 3, -1, 118, -1, -1,
1898 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
1899 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
1900 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
1901 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
1902 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1903 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
1904 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
1905 78, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1906 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
1907 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
1908 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
1909 118, -1, -1, -1, -1, -1, -1, 12, 13, 14,
1910 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
1911 25, 26, 27, 28, -1, -1, -1, 32, -1, -1,
1912 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1913 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
1914 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
1915 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
1916 -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
1917 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
1918 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
1919 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1920 115, 3, -1, 118, -1, -1, -1, -1, -1, -1,
1921 12, 13, 14, 15, -1, 17, 18, -1, -1, -1,
1922 22, -1, -1, 25, 26, 27, 28, -1, -1, -1,
1923 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1924 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
1925 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
1926 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
1927 -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
1928 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
1929 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
1930 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1931 112, 113, 114, 115, 3, -1, 118, -1, -1, -1,
1932 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
1933 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
1934 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
1935 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
1936 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1937 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
1938 69, 70, -1, -1, -1, -1, -1, -1, -1, 78,
1939 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
1940 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
1941 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1942 109, 110, 111, 112, 113, 114, 115, 3, -1, 118,
1943 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
1944 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
1945 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
1946 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1947 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
1948 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
1949 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
1950 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
1951 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
1952 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
1953 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1954 3, -1, 118, -1, -1, -1, -1, -1, -1, 12,
1955 13, 14, 15, -1, 17, 18, -1, -1, -1, 22,
1956 -1, -1, 25, 26, 27, 28, -1, -1, -1, 32,
1957 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1958 -1, -1, -1, -1, 47, 48, -1, -1, -1, -1,
1959 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
1960 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
1961 -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
1962 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
1963 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
1964 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1965 113, 114, 115, 3, -1, 118, -1, -1, -1, -1,
1966 -1, -1, 12, 13, 14, 15, -1, 17, 18, -1,
1967 -1, -1, 22, -1, -1, 25, 26, 27, 28, -1,
1968 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
1969 -1, -1, -1, -1, -1, -1, -1, 47, 48, -1,
1970 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1971 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
1972 70, -1, -1, -1, -1, -1, -1, -1, 78, -1,
1973 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
1974 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
1975 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1976 110, 111, 112, 113, 114, 115, 3, -1, 118, -1,
1977 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
1978 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
1979 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
1980 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1981 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
1982 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
1983 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1984 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
1985 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
1986 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1987 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
1988 -1, 118, -1, -1, -1, -1, -1, -1, 12, 13,
1989 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
1990 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
1991 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1992 -1, -1, -1, 47, 48, -1, -1, -1, -1, -1,
1993 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
1994 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
1995 -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
1996 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
1997 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
1998 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1999 114, 115, 3, -1, 118, -1, -1, -1, -1, -1,
2000 -1, 12, 13, 14, 15, -1, 17, 18, -1, -1,
2001 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
2002 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
2003 -1, -1, -1, -1, -1, -1, 47, 48, -1, -1,
2004 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
2005 61, -1, -1, -1, -1, 66, 67, 68, 69, 70,
2006 -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
2007 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
2008 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
2009 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2010 111, 112, 113, 114, 115, 3, -1, 118, -1, -1,
2011 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
2012 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
2013 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
2014 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
2015 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2016 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
2017 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2018 78, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2019 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
2020 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
2021 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
2022 118, -1, -1, -1, -1, -1, -1, 12, 13, 14,
2023 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
2024 25, 26, 27, 28, -1, -1, -1, 32, -1, -1,
2025 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2026 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
2027 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
2028 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
2029 -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
2030 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
2031 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2032 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2033 115, 3, -1, 118, -1, -1, -1, -1, -1, -1,
2034 12, 13, 14, 15, -1, 17, 18, -1, -1, -1,
2035 22, -1, -1, 25, 26, 27, 28, -1, -1, -1,
2036 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2037 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
2038 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
2039 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
2040 -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
2041 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
2042 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
2043 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2044 112, 113, 114, 115, 3, -1, 118, -1, -1, -1,
2045 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
2046 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
2047 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
2048 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
2049 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2050 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
2051 69, 70, -1, -1, -1, -1, -1, -1, -1, 78,
2052 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
2053 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
2054 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2055 109, 110, 111, 112, 113, 114, 115, 3, -1, 118,
2056 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
2057 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
2058 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
2059 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2060 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2061 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
2062 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
2063 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
2064 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
2065 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
2066 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2067 3, -1, 118, -1, -1, -1, -1, -1, -1, 12,
2068 13, 14, 15, -1, 17, 18, -1, -1, -1, 22,
2069 -1, -1, 25, 26, 27, 28, -1, -1, -1, 32,
2070 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2071 -1, -1, -1, -1, 47, 48, -1, -1, -1, -1,
2072 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
2073 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
2074 -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
2075 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
2076 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
2077 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2078 113, 114, 115, 3, -1, 118, -1, -1, -1, -1,
2079 -1, -1, 12, 13, 14, 15, -1, 17, 18, -1,
2080 -1, -1, 22, -1, -1, 25, 26, 27, 28, -1,
2081 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
2082 -1, -1, -1, -1, -1, -1, -1, 47, 48, -1,
2083 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2084 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
2085 70, -1, -1, -1, -1, -1, -1, -1, 78, -1,
2086 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
2087 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
2088 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2089 110, 111, 112, 113, 114, 115, 3, -1, 118, -1,
2090 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
2091 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
2092 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
2093 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2094 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
2095 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
2096 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
2097 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
2098 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
2099 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
2100 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
2101 -1, 118, -1, -1, -1, -1, -1, -1, 12, 13,
2102 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
2103 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
2104 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2105 -1, -1, -1, 47, 48, -1, -1, -1, -1, -1,
2106 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
2107 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
2108 -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
2109 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
2110 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
2111 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2112 114, 115, 3, -1, 118, -1, -1, -1, -1, -1,
2113 -1, 12, 13, 14, 15, -1, 17, 18, -1, -1,
2114 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
2115 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
2116 -1, -1, -1, -1, -1, -1, 47, 48, -1, -1,
2117 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
2118 61, -1, -1, -1, -1, 66, 67, 68, 69, 70,
2119 -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
2120 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
2121 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
2122 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2123 111, 112, 113, 114, 115, 3, -1, 118, -1, -1,
2124 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
2125 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
2126 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
2127 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
2128 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2129 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
2130 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2131 78, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2132 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
2133 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
2134 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
2135 118, -1, -1, -1, -1, -1, -1, 12, 13, 14,
2136 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
2137 25, 26, 27, 28, -1, -1, -1, 32, -1, -1,
2138 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2139 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
2140 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
2141 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
2142 -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
2143 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
2144 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2145 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2146 115, 3, -1, 118, -1, -1, -1, -1, -1, -1,
2147 12, 13, 14, 15, -1, 17, 18, -1, -1, -1,
2148 22, -1, -1, 25, 26, 27, 28, -1, -1, -1,
2149 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2150 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
2151 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
2152 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
2153 -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
2154 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
2155 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
2156 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2157 112, 113, 114, 115, 3, -1, 118, -1, -1, -1,
2158 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
2159 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
2160 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
2161 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
2162 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2163 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
2164 69, 70, -1, -1, -1, -1, -1, -1, -1, 78,
2165 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
2166 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
2167 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2168 109, 110, 111, 112, 113, 114, 115, 3, -1, 118,
2169 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
2170 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
2171 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
2172 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2173 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2174 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
2175 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
2176 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
2177 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
2178 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
2179 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2180 3, -1, 118, -1, -1, -1, -1, -1, -1, 12,
2181 13, 14, 15, -1, 17, 18, -1, -1, -1, 22,
2182 -1, -1, 25, 26, 27, 28, -1, -1, -1, 32,
2183 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2184 -1, -1, -1, -1, 47, 48, -1, -1, -1, -1,
2185 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
2186 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
2187 -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
2188 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
2189 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
2190 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2191 113, 114, 115, -1, -1, 118, 3, 4, 5, 6,
2192 7, 8, 9, 10, 11, 12, 13, 14, 15, -1,
2193 17, 18, 19, -1, -1, 22, 23, -1, 25, -1,
2194 27, 28, 29, -1, -1, 32, -1, -1, -1, -1,
2195 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2196 47, 48, 49, -1, -1, -1, -1, -1, -1, -1,
2197 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
2198 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
2199 -1, -1, -1, -1, -1, -1, -1, 84, 85, 86,
2200 87, 88, -1, 90, 91, 92, 93, 94, 95, -1,
2201 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
2202 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
2203 -1, -1, -1, -1, -1, -1, -1, -1, 12, 13,
2204 14, 15, -1, 17, 18, 19, 20, 21, 22, 23,
2205 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
2206 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2207 -1, -1, -1, 47, 48, 49, -1, -1, -1, -1,
2208 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
2209 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
2210 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2211 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
2212 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
2213 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2214 114, 115, 3, -1, -1, -1, -1, -1, -1, -1,
2215 -1, 12, 13, 14, 15, -1, 17, 18, 19, -1,
2216 -1, 22, 23, -1, 25, -1, 27, 28, -1, -1,
2217 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
2218 -1, -1, -1, 44, -1, -1, 47, 48, 49, -1,
2219 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
2220 61, -1, -1, -1, -1, 66, 67, 68, 69, 70,
2221 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2222 -1, -1, -1, -1, -1, -1, -1, 88, 89, 90,
2223 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
2224 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2225 111, 112, 113, 114, 115, 3, -1, -1, -1, -1,
2226 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
2227 18, 19, -1, -1, 22, 23, -1, 25, -1, 27,
2228 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
2229 -1, -1, -1, -1, -1, -1, 44, -1, -1, 47,
2230 48, 49, -1, -1, -1, -1, -1, -1, -1, -1,
2231 -1, -1, 60, 61, -1, -1, 64, -1, 66, 67,
2232 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2233 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2234 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
2235 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
2236 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
2237 -1, -1, -1, -1, -1, -1, -1, 12, 13, 14,
2238 15, -1, 17, 18, 19, -1, -1, 22, 23, 24,
2239 25, -1, 27, 28, -1, -1, -1, 32, -1, -1,
2240 -1, -1, -1, -1, -1, -1, -1, -1, -1, 44,
2241 -1, -1, 47, 48, 49, -1, -1, -1, -1, -1,
2242 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
2243 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
2244 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2245 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
2246 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2247 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2248 115, 3, -1, -1, -1, -1, -1, -1, -1, -1,
2249 12, 13, 14, 15, -1, 17, 18, 19, -1, -1,
2250 22, 23, -1, 25, -1, 27, 28, -1, -1, -1,
2251 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2252 -1, -1, 44, -1, -1, 47, 48, 49, -1, -1,
2253 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
2254 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
2255 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2256 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
2257 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
2258 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2259 112, 113, 114, 115, 3, -1, -1, -1, -1, -1,
2260 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
2261 19, -1, -1, 22, 23, -1, 25, -1, 27, 28,
2262 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
2263 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
2264 49, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2265 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
2266 69, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2267 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
2268 89, 90, 91, 92, 93, 94, 95, -1, 97, -1,
2269 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2270 109, 110, 111, 112, 113, 114, 115, 3, -1, -1,
2271 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
2272 -1, 17, 18, 19, -1, -1, 22, 23, -1, 25,
2273 -1, 27, 28, -1, -1, -1, 32, -1, -1, -1,
2274 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2275 -1, 47, 48, 49, -1, -1, -1, -1, -1, -1,
2276 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
2277 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
2278 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2279 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
2280 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
2281 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2282 3, -1, -1, -1, -1, -1, -1, -1, -1, 12,
2283 13, 14, 15, -1, 17, 18, -1, -1, -1, 22,
2284 -1, -1, 25, -1, 27, 28, -1, -1, -1, 32,
2285 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2286 -1, -1, -1, -1, 47, 48, -1, -1, -1, -1,
2287 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
2288 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
2289 -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
2290 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
2291 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
2292 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2293 113, 114, 115, 3, -1, -1, -1, -1, -1, -1,
2294 -1, -1, 12, 13, 14, 15, -1, 17, 18, -1,
2295 -1, -1, 22, -1, -1, -1, -1, -1, -1, 29,
2296 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
2297 -1, -1, -1, -1, -1, -1, -1, -1, -1, 49,
2298 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2299 -1, -1, -1, -1, -1, -1, 66, 67, 68, 69,
2300 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2301 -1, -1, -1, -1, -1, -1, -1, 87, 88, -1,
2302 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
2303 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2304 110, 111, 112, 113, 114, 115, 3, -1, -1, -1,
2305 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
2306 17, 18, 31, -1, -1, 22, -1, -1, -1, -1,
2307 -1, -1, 29, 42, 43, 44, 45, 46, 47, 48,
2308 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
2309 59, -1, 49, -1, -1, -1, 65, -1, -1, -1,
2310 -1, -1, -1, -1, -1, -1, -1, -1, -1, 66,
2311 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
2312 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2313 87, 88, -1, 90, 91, 92, 93, 94, 95, -1,
2314 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
2315 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
2316 -1, -1, -1, -1, -1, -1, -1, -1, 12, 13,
2317 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
2318 -1, 33, -1, -1, -1, -1, -1, -1, 32, 33,
2319 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2320 52, 53, 54, 55, 56, 57, 58, 59, -1, -1,
2321 -1, -1, -1, 65, -1, -1, -1, -1, -1, -1,
2322 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
2323 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2324 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
2325 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
2326 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2327 114, 115, 3, -1, -1, -1, -1, -1, -1, -1,
2328 -1, 12, 13, 14, 15, -1, 17, 18, -1, -1,
2329 -1, 22, -1, -1, -1, -1, -1, -1, -1, -1,
2330 -1, -1, -1, -1, 35, -1, -1, -1, -1, -1,
2331 -1, -1, -1, -1, -1, -1, -1, -1, 49, -1,
2332 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2333 -1, -1, -1, -1, -1, 66, 67, 68, 69, 70,
2334 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2335 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
2336 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
2337 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2338 111, 112, 113, 114, 115, 3, -1, -1, -1, -1,
2339 -1, -1, -1, -1, 12, 13, 14, 15, 33, 17,
2340 18, -1, -1, -1, 22, -1, -1, 42, 43, 44,
2341 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2342 55, 56, 57, 58, 59, -1, -1, -1, -1, -1,
2343 65, 49, -1, -1, -1, -1, -1, -1, -1, -1,
2344 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
2345 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2346 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2347 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
2348 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
2349 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
2350 -1, -1, -1, -1, -1, -1, -1, 12, 13, 14,
2351 15, -1, 17, 18, -1, -1, -1, 22, -1, 33,
2352 -1, -1, -1, -1, -1, -1, -1, 32, 42, 43,
2353 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2354 54, 55, 56, 57, 58, 59, -1, -1, -1, -1,
2355 -1, 65, -1, -1, -1, -1, -1, -1, -1, -1,
2356 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
2357 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2358 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
2359 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2360 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2361 115, 3, -1, -1, -1, -1, -1, -1, -1, -1,
2362 12, 13, 14, 15, -1, 17, 18, -1, -1, -1,
2363 22, -1, -1, 34, -1, -1, -1, -1, -1, -1,
2364 32, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2365 51, 52, 53, 54, 55, 56, 57, 58, 59, -1,
2366 -1, -1, -1, -1, 65, -1, -1, -1, -1, -1,
2367 3, -1, -1, -1, 66, 67, 68, 69, 70, 12,
2368 13, 14, 15, -1, 17, 18, -1, -1, -1, 22,
2369 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
2370 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
2371 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2372 112, 113, 114, 115, -1, -1, -1, -1, -1, -1,
2373 -1, 64, -1, 66, 67, 68, 69, 70, -1, -1,
2374 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2375 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
2376 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
2377 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2378 113, 114, 115, 3, -1, -1, -1, -1, -1, -1,
2379 -1, -1, 12, 13, 14, 15, 35, 17, 18, -1,
2380 -1, -1, 22, 42, 43, 44, 45, 46, 47, 48,
2381 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
2382 59, -1, -1, -1, -1, -1, 65, -1, -1, 49,
2383 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2384 -1, -1, 3, -1, -1, -1, 66, 67, 68, 69,
2385 70, 12, 13, 14, 15, -1, 17, 18, -1, -1,
2386 -1, 22, -1, -1, -1, -1, -1, -1, 88, -1,
2387 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
2388 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2389 110, 111, 112, 113, 114, 115, -1, -1, -1, -1,
2390 -1, 3, -1, 64, -1, 66, 67, 68, 69, 70,
2391 12, 13, 14, 15, -1, 17, 18, -1, -1, -1,
2392 22, -1, -1, -1, -1, -1, -1, 88, -1, 90,
2393 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
2394 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2395 111, 112, 113, 114, 115, -1, -1, -1, -1, -1,
2396 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
2397 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2398 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
2399 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
2400 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2401 112, 113, 114, 115, 35, -1, -1, -1, -1, -1,
2402 -1, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2403 51, 52, 53, 54, 55, 56, 57, 58, 59, -1,
2404 -1, -1, 39, -1, 65, 42, 43, 44, 45, 46,
2405 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
2406 57, 58, 59, -1, -1, -1, -1, -1, 65, 42,
2407 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2408 53, 54, 55, 56, 57, 58, 59, -1, -1, -1,
2409 -1, -1, 65, 42, 43, 44, 45, 46, 47, 48,
2410 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
2411 59, -1, -1, -1, -1, -1, 65, 42, 43, 44,
2412 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2413 55, 56, 57, 58, 59, -1, -1, -1, -1, -1,
2414 65, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2415 51, 52, 53, 54, 55, 56, 57, 58, 59, -1,
2416 -1, -1, -1, -1, 65
2417 };
2418
2419 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2420 symbol of state STATE-NUM. */
2421 static const unsigned short yystos[] =
2422 {
2423 0, 4, 5, 6, 7, 8, 9, 10, 11, 17,
2424 22, 29, 30, 31, 41, 83, 84, 85, 86, 87,
2425 88, 89, 91, 116, 121, 123, 146, 147, 148, 149,
2426 150, 167, 170, 175, 176, 177, 178, 179, 180, 181,
2427 182, 183, 188, 191, 194, 195, 199, 200, 201, 202,
2428 204, 206, 210, 212, 213, 219, 227, 241, 242, 9,
2429 11, 22, 84, 85, 86, 87, 123, 200, 210, 30,
2430 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2431 76, 77, 79, 80, 81, 82, 151, 152, 153, 154,
2432 156, 157, 158, 84, 85, 121, 171, 173, 201, 202,
2433 210, 219, 228, 229, 3, 12, 13, 14, 15, 17,
2434 18, 22, 66, 67, 68, 69, 70, 88, 90, 91,
2435 92, 93, 94, 95, 97, 100, 101, 102, 103, 104,
2436 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2437 115, 143, 260, 272, 143, 143, 230, 3, 6, 10,
2438 12, 13, 23, 247, 249, 26, 123, 242, 44, 280,
2439 281, 22, 83, 89, 123, 199, 0, 148, 49, 143,
2440 176, 211, 236, 237, 238, 239, 177, 4, 5, 6,
2441 9, 22, 184, 6, 181, 187, 200, 125, 189, 32,
2442 32, 36, 36, 143, 143, 143, 34, 192, 88, 0,
2443 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
2444 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
2445 23, 24, 25, 26, 27, 28, 29, 31, 32, 33,
2446 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
2447 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2448 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
2449 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
2450 74, 75, 76, 77, 78, 79, 81, 83, 84, 85,
2451 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
2452 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
2453 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2454 116, 119, 121, 122, 123, 124, 125, 143, 144, 159,
2455 30, 3, 12, 13, 14, 15, 17, 18, 22, 66,
2456 67, 68, 69, 70, 88, 90, 91, 92, 93, 94,
2457 95, 97, 100, 101, 102, 103, 104, 105, 106, 107,
2458 108, 109, 110, 111, 112, 113, 114, 115, 144, 162,
2459 163, 162, 26, 119, 155, 144, 25, 27, 28, 32,
2460 47, 48, 60, 61, 78, 142, 143, 164, 224, 143,
2461 230, 143, 230, 173, 31, 143, 35, 233, 233, 233,
2462 233, 40, 23, 31, 36, 23, 171, 123, 189, 29,
2463 87, 240, 38, 234, 32, 143, 124, 239, 6, 185,
2464 6, 9, 186, 184, 36, 196, 32, 31, 17, 175,
2465 203, 205, 207, 208, 209, 210, 207, 143, 220, 221,
2466 92, 93, 94, 95, 96, 98, 99, 251, 252, 253,
2467 266, 269, 275, 276, 277, 193, 211, 237, 189, 26,
2468 26, 118, 164, 190, 162, 144, 26, 27, 32, 44,
2469 226, 164, 32, 143, 164, 32, 42, 43, 44, 45,
2470 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2471 56, 57, 58, 59, 65, 141, 35, 36, 215, 215,
2472 31, 214, 215, 214, 19, 20, 21, 23, 25, 27,
2473 32, 142, 168, 169, 190, 211, 222, 223, 224, 40,
2474 251, 32, 31, 31, 19, 29, 87, 124, 222, 235,
2475 236, 237, 234, 6, 0, 3, 4, 5, 6, 7,
2476 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
2477 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
2478 28, 29, 31, 32, 33, 34, 35, 38, 39, 40,
2479 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2480 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
2481 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
2482 71, 72, 73, 74, 75, 76, 77, 78, 79, 81,
2483 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
2484 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
2485 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2486 113, 114, 115, 116, 119, 121, 122, 123, 124, 125,
2487 145, 196, 197, 198, 190, 236, 32, 33, 34, 34,
2488 33, 34, 40, 34, 231, 211, 256, 222, 245, 270,
2489 271, 272, 280, 211, 143, 278, 279, 211, 267, 271,
2490 37, 252, 222, 34, 31, 31, 32, 26, 177, 225,
2491 226, 22, 33, 143, 119, 164, 165, 166, 164, 164,
2492 32, 121, 172, 173, 174, 175, 216, 219, 228, 229,
2493 211, 211, 17, 22, 175, 222, 222, 31, 65, 141,
2494 168, 37, 14, 15, 16, 17, 33, 243, 244, 246,
2495 248, 249, 250, 39, 39, 32, 143, 37, 198, 33,
2496 32, 234, 207, 234, 64, 209, 234, 64, 222, 221,
2497 37, 40, 31, 40, 31, 32, 24, 40, 32, 31,
2498 34, 32, 31, 31, 211, 64, 143, 160, 161, 236,
2499 33, 33, 33, 34, 35, 25, 174, 35, 232, 37,
2500 172, 233, 233, 33, 33, 222, 222, 31, 35, 33,
2501 34, 245, 236, 32, 33, 236, 33, 34, 33, 33,
2502 19, 89, 90, 109, 222, 255, 257, 258, 259, 260,
2503 281, 270, 211, 280, 193, 279, 17, 193, 268, 33,
2504 34, 164, 164, 34, 25, 35, 34, 217, 232, 215,
2505 215, 222, 35, 246, 35, 244, 246, 40, 143, 207,
2506 33, 234, 64, 234, 234, 109, 257, 17, 18, 32,
2507 260, 263, 32, 32, 255, 34, 273, 211, 33, 33,
2508 162, 64, 143, 25, 35, 32, 211, 218, 232, 31,
2509 217, 222, 246, 280, 168, 33, 33, 33, 268, 32,
2510 222, 245, 64, 270, 274, 33, 31, 97, 33, 35,
2511 25, 232, 34, 31, 64, 32, 33, 234, 33, 245,
2512 34, 34, 261, 33, 34, 18, 271, 272, 32, 34,
2513 211, 232, 24, 207, 32, 97, 32, 222, 211, 254,
2514 255, 256, 262, 281, 33, 270, 25, 25, 232, 33,
2515 33, 207, 263, 264, 265, 270, 33, 34, 255, 34,
2516 33, 35, 33, 33, 32, 33, 34, 254, 25, 246,
2517 32, 234, 245, 33, 270, 33, 207, 32, 33, 264,
2518 234, 33, 33
2519 };
2520
2521 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
2522 static const unsigned short yyr1[] =
2523 {
2524 0, 140, 141, 141, 141, 141, 141, 141, 141, 141,
2525 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
2526 142, 142, 142, 142, 143, 143, 143, 143, 143, 143,
2527 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
2528 143, 143, 143, 143, 143, 143, 144, 144, 144, 144,
2529 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2530 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2531 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2532 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2533 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2534 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2535 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2536 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2537 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2538 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2539 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2540 144, 144, 144, 144, 145, 145, 145, 145, 145, 145,
2541 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2542 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2543 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2544 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2545 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2546 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2547 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2548 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2549 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2550 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2551 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2552 146, 146, 147, 147, 148, 148, 148, 148, 148, 148,
2553 148, 148, 148, 148, 148, 148, 148, 148, 149, 149,
2554 150, 150, 151, 151, 151, 151, 151, 151, 151, 151,
2555 152, 152, 153, 153, 154, 154, 154, 155, 155, 156,
2556 156, 157, 157, 157, 158, 158, 159, 159, 159, 159,
2557 160, 160, 160, 160, 161, 161, 162, 162, 163, 163,
2558 164, 164, 164, 164, 164, 164, 164, 164, 164, 164,
2559 164, 165, 165, 166, 166, 166, 167, 167, 168, 168,
2560 168, 169, 169, 169, 170, 170, 171, 171, 172, 172,
2561 173, 173, 173, 173, 173, 174, 174, 174, 174, 174,
2562 175, 175, 175, 176, 176, 177, 177, 178, 178, 178,
2563 179, 179, 179, 179, 180, 180, 180, 181, 181, 182,
2564 182, 182, 183, 183, 183, 183, 184, 184, 184, 184,
2565 184, 184, 185, 185, 186, 186, 186, 186, 187, 187,
2566 187, 188, 188, 189, 189, 190, 190, 191, 192, 192,
2567 193, 193, 194, 195, 195, 195, 195, 195, 195, 196,
2568 197, 197, 198, 198, 199, 199, 200, 200, 201, 201,
2569 202, 202, 202, 202, 203, 203, 204, 205, 206, 207,
2570 207, 207, 208, 208, 209, 209, 209, 210, 210, 211,
2571 211, 212, 213, 214, 214, 215, 216, 216, 217, 217,
2572 218, 218, 218, 218, 219, 220, 220, 221, 221, 222,
2573 222, 222, 222, 222, 222, 223, 223, 223, 223, 223,
2574 223, 224, 224, 225, 225, 226, 226, 226, 227, 228,
2575 229, 230, 230, 231, 231, 232, 232, 232, 232, 233,
2576 233, 234, 234, 234, 235, 235, 235, 235, 236, 236,
2577 237, 237, 238, 238, 239, 239, 240, 240, 241, 241,
2578 242, 242, 242, 243, 243, 244, 244, 245, 246, 247,
2579 248, 248, 249, 249, 249, 249, 249, 250, 250, 250,
2580 250, 251, 251, 252, 252, 252, 252, 252, 253, 253,
2581 254, 254, 254, 255, 255, 255, 255, 255, 255, 256,
2582 256, 257, 258, 258, 259, 260, 260, 260, 260, 260,
2583 260, 260, 260, 260, 260, 261, 261, 262, 262, 263,
2584 263, 264, 264, 265, 265, 266, 267, 267, 268, 268,
2585 268, 269, 270, 270, 270, 271, 271, 272, 272, 272,
2586 272, 272, 272, 272, 272, 273, 273, 274, 274, 275,
2587 276, 276, 277, 278, 278, 279, 280, 280, 281
2588 };
2589
2590 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
2591 static const unsigned char yyr2[] =
2592 {
2593 0, 2, 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 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2609 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2610 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2611 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2612 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2613 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2614 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2615 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2616 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2617 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2618 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2619 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2620 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2621 0, 1, 1, 2, 1, 1, 1, 1, 1, 1,
2622 1, 1, 1, 1, 1, 1, 1, 1, 3, 5,
2623 2, 3, 2, 2, 1, 2, 2, 2, 1, 2,
2624 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2625 1, 1, 1, 1, 1, 1, 2, 6, 2, 2,
2626 0, 1, 1, 3, 1, 3, 0, 1, 1, 2,
2627 3, 2, 3, 5, 2, 4, 1, 1, 1, 1,
2628 4, 0, 1, 1, 1, 3, 6, 5, 1, 1,
2629 1, 1, 1, 1, 3, 4, 1, 2, 1, 2,
2630 1, 1, 2, 4, 4, 1, 1, 1, 3, 3,
2631 1, 2, 2, 1, 1, 1, 1, 2, 2, 2,
2632 1, 1, 1, 1, 1, 1, 2, 1, 1, 1,
2633 1, 2, 1, 1, 2, 2, 0, 1, 1, 2,
2634 1, 2, 0, 1, 0, 1, 1, 2, 0, 1,
2635 2, 3, 4, 0, 4, 1, 2, 5, 0, 2,
2636 1, 3, 3, 1, 2, 2, 3, 1, 2, 3,
2637 1, 2, 1, 1, 1, 2, 1, 1, 5, 7,
2638 5, 7, 13, 16, 5, 7, 6, 5, 1, 0,
2639 1, 1, 1, 3, 1, 1, 3, 1, 2, 3,
2640 2, 4, 4, 1, 1, 3, 4, 5, 0, 2,
2641 2, 4, 1, 3, 5, 1, 3, 1, 3, 1,
2642 4, 3, 3, 2, 5, 1, 1, 1, 1, 1,
2643 1, 4, 2, 1, 2, 2, 1, 1, 2, 2,
2644 2, 0, 1, 0, 1, 0, 2, 7, 9, 0,
2645 7, 0, 3, 3, 0, 1, 1, 1, 0, 1,
2646 1, 2, 1, 2, 1, 2, 1, 1, 4, 5,
2647 7, 8, 13, 1, 3, 2, 4, 2, 1, 1,
2648 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2649 1, 1, 2, 1, 1, 1, 1, 1, 3, 6,
2650 1, 2, 1, 1, 1, 1, 2, 1, 1, 3,
2651 4, 6, 8, 12, 5, 1, 1, 1, 1, 1,
2652 1, 1, 1, 1, 1, 0, 2, 1, 3, 1,
2653 1, 0, 1, 1, 3, 3, 6, 1, 0, 1,
2654 1, 3, 1, 1, 3, 5, 6, 1, 1, 1,
2655 1, 1, 1, 1, 1, 0, 2, 1, 3, 3,
2656 1, 1, 3, 1, 3, 4, 0, 1, 1
2657 };
2658
2659
2660 /* YYDPREC[RULE-NUM] -- Dynamic precedence of rule #RULE-NUM (0 if none). */
2661 static const unsigned char yydprec[] =
2662 {
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, 0, 0, 0, 0, 0,
2683 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2684 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2685 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2687 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2688 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2689 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2690 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 2, 2, 2,
2696 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2697 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2698 0, 0, 0, 0, 0, 0, 0, 0, 2, 1,
2699 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2700 0, 0, 0, 0, 0, 2, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0,
2708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2709 2, 1, 0, 0, 0, 2, 1, 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, 0, 0,
2714 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2715 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2717 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2720 0, 0, 0, 2, 1, 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
2727 };
2728
2729 /* YYMERGER[RULE-NUM] -- Index of merging function for rule #RULE-NUM. */
2730 static const unsigned char yymerger[] =
2731 {
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, 0, 0,
2783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2795 0, 0, 0, 0, 0, 0, 0, 0, 0
2796 };
2797
2798 /* YYIMMEDIATE[RULE-NUM] -- True iff rule #RULE-NUM is not to be deferred, as
2799 in the case of predicates. */
2800 static const yybool yyimmediate[] =
2801 {
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, 0, 0,
2853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2862 0, 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
2866 };
2867
2868 /* YYCONFLP[YYPACT[STATE-NUM]] -- Pointer into YYCONFL of start of
2869 list of conflicting reductions corresponding to action entry for
2870 state STATE-NUM in yytable. 0 means no conflicts. The list in
2871 yyconfl is terminated by a rule number of 0. */
2872 static const unsigned short yyconflp[] =
2873 {
2874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2876 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2877 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2878 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2879 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2880 0, 0, 0, 15, 0, 0, 0, 0, 0, 3716,
2881 0, 0, 3718, 0, 0, 0, 0, 0, 0, 0,
2882 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2883 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2886 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2887 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2888 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2889 0, 0, 0, 0, 0, 0, 0, 17, 0, 0,
2890 0, 0, 0, 0, 0, 0, 13, 0, 3698, 0,
2891 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2892 0, 0, 0, 0, 0, 0, 19, 0, 0, 0,
2893 0, 0, 0, 0, 0, 169, 0, 3708, 0, 3710,
2894 3712, 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, 3720, 0, 3722, 3724, 0, 0,
2897 0, 9, 0, 0, 0, 11, 0, 0, 0, 0,
2898 0, 0, 3702, 3704, 0, 0, 0, 0, 0, 3700,
2899 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2900 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
2901 3, 0, 0, 0, 0, 0, 0, 5, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2907 0, 0, 0, 0, 0, 7, 0, 0, 0, 3706,
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, 3714, 0, 0, 0, 0,
2913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2914 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2915 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 3726, 0, 0, 0, 0, 0, 0, 0,
2919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2921 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2922 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0,
2928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2930 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2931 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2932 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2935 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2936 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2938 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2940 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2941 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2942 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2944 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2945 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2946 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2947 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2949 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2950 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2951 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2952 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2953 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2954 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2955 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2956 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2957 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2958 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2959 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2960 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2961 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2962 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2963 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2964 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2965 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2966 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2967 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2968 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2969 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2970 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2971 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2972 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2973 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2975 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2976 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2977 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2978 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2979 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2980 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2981 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2982 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2983 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2984 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2985 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2986 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2987 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2988 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2989 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2990 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2991 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0,
2997 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2998 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2999 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3000 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3001 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3002 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3003 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3004 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3005 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3006 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3007 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3008 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3009 0, 0, 0, 0, 0, 0, 0, 0, 0, 21,
3010 0, 0, 0, 0, 0, 0, 0, 0, 23, 25,
3011 27, 29, 0, 31, 33, 0, 0, 0, 35, 0,
3012 0, 0, 0, 0, 0, 37, 39, 41, 43, 45,
3013 47, 49, 51, 53, 55, 57, 59, 0, 61, 63,
3014 65, 67, 69, 71, 73, 75, 77, 79, 81, 83,
3015 85, 87, 89, 91, 93, 95, 0, 0, 0, 0,
3016 0, 97, 99, 101, 103, 105, 107, 0, 0, 0,
3017 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3018 0, 0, 0, 109, 111, 0, 113, 115, 117, 119,
3019 121, 123, 0, 125, 0, 0, 127, 129, 131, 133,
3020 135, 137, 139, 141, 143, 145, 147, 149, 151, 153,
3021 155, 157, 0, 0, 0, 0, 0, 0, 0, 0,
3022 0, 159, 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, 0, 0, 0, 0,
3031 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3032 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3033 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3034 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3035 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3036 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3037 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3038 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3039 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3040 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3041 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3042 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3043 0, 0, 0, 0, 0, 0, 0, 0, 0, 171,
3044 0, 0, 0, 0, 0, 0, 0, 0, 173, 175,
3045 177, 179, 0, 181, 183, 0, 0, 0, 185, 0,
3046 0, 187, 189, 191, 193, 0, 0, 0, 195, 0,
3047 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3048 0, 0, 0, 197, 199, 0, 0, 0, 161, 0,
3049 0, 0, 0, 163, 0, 0, 201, 203, 0, 0,
3050 165, 0, 205, 207, 209, 211, 213, 0, 0, 0,
3051 0, 0, 0, 0, 215, 0, 0, 0, 0, 0,
3052 0, 0, 0, 0, 217, 0, 219, 221, 223, 225,
3053 227, 229, 0, 231, 0, 0, 233, 235, 237, 239,
3054 241, 243, 245, 247, 249, 251, 253, 255, 257, 259,
3055 261, 263, 265, 0, 0, 0, 0, 0, 167, 0,
3056 0, 267, 269, 271, 273, 0, 275, 277, 0, 0,
3057 0, 279, 0, 0, 281, 283, 285, 287, 0, 0,
3058 0, 289, 0, 0, 0, 0, 0, 0, 0, 0,
3059 0, 0, 0, 0, 0, 0, 291, 293, 0, 0,
3060 0, 0, 0, 0, 0, 0, 0, 0, 0, 295,
3061 297, 0, 0, 0, 0, 299, 301, 303, 305, 307,
3062 0, 0, 0, 0, 0, 0, 0, 309, 0, 0,
3063 0, 0, 0, 0, 0, 0, 0, 311, 0, 313,
3064 315, 317, 319, 321, 323, 0, 325, 0, 0, 327,
3065 329, 331, 333, 335, 337, 339, 341, 343, 345, 347,
3066 349, 351, 353, 355, 357, 359, 0, 0, 0, 0,
3067 0, 0, 0, 0, 361, 363, 365, 367, 0, 369,
3068 371, 0, 0, 0, 373, 0, 0, 375, 377, 379,
3069 381, 0, 0, 0, 383, 0, 0, 0, 0, 0,
3070 0, 0, 0, 0, 0, 0, 0, 0, 0, 385,
3071 387, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3072 0, 0, 389, 391, 0, 0, 0, 0, 393, 395,
3073 397, 399, 401, 0, 0, 0, 0, 0, 0, 0,
3074 403, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3075 405, 0, 407, 409, 411, 413, 415, 417, 0, 419,
3076 0, 0, 421, 423, 425, 427, 429, 431, 433, 435,
3077 437, 439, 441, 443, 445, 447, 449, 451, 453, 0,
3078 0, 0, 0, 0, 0, 0, 0, 455, 457, 459,
3079 461, 0, 463, 465, 0, 0, 0, 467, 0, 0,
3080 469, 471, 473, 475, 0, 0, 0, 477, 0, 0,
3081 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3082 0, 0, 479, 481, 0, 0, 0, 0, 0, 0,
3083 0, 0, 0, 0, 0, 483, 485, 0, 0, 0,
3084 0, 487, 489, 491, 493, 495, 0, 0, 0, 0,
3085 0, 0, 0, 497, 0, 0, 0, 0, 0, 0,
3086 0, 0, 0, 499, 0, 501, 503, 505, 507, 509,
3087 511, 0, 513, 0, 0, 515, 517, 519, 521, 523,
3088 525, 527, 529, 531, 533, 535, 537, 539, 541, 543,
3089 545, 547, 0, 0, 0, 0, 0, 0, 0, 0,
3090 549, 551, 553, 555, 0, 557, 559, 0, 0, 0,
3091 561, 0, 0, 563, 565, 567, 569, 0, 0, 0,
3092 571, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3093 0, 0, 0, 0, 0, 573, 575, 0, 0, 0,
3094 0, 0, 0, 0, 0, 0, 0, 0, 577, 579,
3095 0, 0, 0, 0, 581, 583, 585, 587, 589, 0,
3096 0, 0, 0, 0, 0, 0, 591, 0, 0, 0,
3097 0, 0, 0, 0, 0, 0, 593, 0, 595, 597,
3098 599, 601, 603, 605, 0, 607, 0, 0, 609, 611,
3099 613, 615, 617, 619, 621, 623, 625, 627, 629, 631,
3100 633, 635, 637, 639, 641, 0, 0, 0, 0, 0,
3101 0, 0, 0, 643, 645, 647, 649, 0, 651, 653,
3102 0, 0, 0, 655, 0, 0, 657, 659, 661, 663,
3103 0, 0, 0, 665, 0, 0, 0, 0, 0, 0,
3104 0, 0, 0, 0, 0, 0, 0, 0, 667, 669,
3105 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3106 0, 671, 673, 0, 0, 0, 0, 675, 677, 679,
3107 681, 683, 0, 0, 0, 0, 0, 0, 0, 685,
3108 0, 0, 0, 0, 0, 0, 0, 0, 0, 687,
3109 0, 689, 691, 693, 695, 697, 699, 0, 701, 0,
3110 0, 703, 705, 707, 709, 711, 713, 715, 717, 719,
3111 721, 723, 725, 727, 729, 731, 733, 735, 0, 0,
3112 0, 0, 0, 0, 0, 0, 738, 741, 744, 747,
3113 0, 750, 753, 0, 0, 0, 756, 0, 0, 759,
3114 762, 765, 768, 0, 0, 0, 771, 0, 0, 0,
3115 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3116 0, 774, 777, 0, 0, 0, 0, 0, 0, 0,
3117 0, 0, 0, 0, 780, 783, 0, 0, 0, 0,
3118 786, 789, 792, 795, 798, 0, 0, 0, 0, 0,
3119 0, 0, 801, 0, 0, 0, 0, 0, 0, 0,
3120 0, 0, 804, 0, 807, 810, 813, 816, 819, 822,
3121 0, 825, 0, 0, 828, 831, 834, 837, 840, 843,
3122 846, 849, 852, 855, 858, 861, 864, 867, 870, 873,
3123 878, 0, 876, 0, 0, 0, 0, 0, 0, 880,
3124 882, 884, 886, 0, 888, 890, 0, 0, 0, 892,
3125 0, 0, 894, 896, 898, 900, 0, 0, 0, 902,
3126 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3127 0, 0, 0, 0, 904, 906, 0, 0, 0, 0,
3128 0, 0, 0, 0, 0, 0, 0, 908, 910, 0,
3129 0, 0, 0, 912, 914, 916, 918, 920, 0, 0,
3130 0, 0, 0, 0, 0, 922, 0, 0, 0, 0,
3131 0, 0, 0, 0, 0, 924, 0, 926, 928, 930,
3132 932, 934, 936, 0, 938, 0, 0, 940, 942, 944,
3133 946, 948, 950, 952, 954, 956, 958, 960, 962, 964,
3134 966, 968, 970, 972, 0, 0, 0, 0, 0, 0,
3135 0, 0, 974, 976, 978, 980, 0, 982, 984, 0,
3136 0, 0, 986, 0, 0, 988, 990, 992, 994, 0,
3137 0, 0, 996, 0, 0, 0, 0, 0, 0, 0,
3138 0, 0, 0, 0, 0, 0, 0, 998, 1000, 0,
3139 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3140 1002, 1004, 0, 0, 0, 0, 1006, 1008, 1010, 1012,
3141 1014, 0, 0, 0, 0, 0, 0, 0, 1016, 0,
3142 0, 0, 0, 0, 0, 0, 0, 0, 1018, 0,
3143 1020, 1022, 1024, 1026, 1028, 1030, 0, 1032, 0, 0,
3144 1034, 1036, 1038, 1040, 1042, 1044, 1046, 1048, 1050, 1052,
3145 1054, 1056, 1058, 1060, 1062, 1064, 1066, 0, 0, 0,
3146 0, 0, 0, 0, 0, 1068, 1070, 1072, 1074, 0,
3147 1076, 1078, 0, 0, 0, 1080, 0, 0, 1082, 1084,
3148 1086, 1088, 0, 0, 0, 1090, 0, 0, 0, 0,
3149 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3150 1092, 1094, 0, 0, 0, 0, 0, 0, 0, 0,
3151 0, 0, 0, 1096, 1098, 0, 0, 0, 0, 1100,
3152 1102, 1104, 1106, 1108, 0, 0, 0, 0, 0, 0,
3153 0, 1110, 0, 0, 0, 0, 0, 0, 0, 0,
3154 0, 1112, 0, 1114, 1116, 1118, 1120, 1122, 1124, 0,
3155 1126, 0, 0, 1128, 1130, 1132, 1134, 1136, 1138, 1140,
3156 1142, 1144, 1146, 1148, 1150, 1152, 1154, 1156, 1158, 1160,
3157 0, 0, 0, 0, 0, 0, 0, 0, 1162, 1164,
3158 1166, 1168, 0, 1170, 1172, 0, 0, 0, 1174, 0,
3159 0, 1176, 1178, 1180, 1182, 0, 0, 0, 1184, 0,
3160 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3161 0, 0, 0, 1186, 1188, 0, 0, 0, 0, 0,
3162 0, 0, 0, 0, 0, 0, 1190, 1192, 0, 0,
3163 0, 0, 1194, 1196, 1198, 1200, 1202, 0, 0, 0,
3164 0, 0, 0, 0, 1204, 0, 0, 0, 0, 0,
3165 0, 0, 0, 0, 1206, 0, 1208, 1210, 1212, 1214,
3166 1216, 1218, 0, 1220, 0, 0, 1222, 1224, 1226, 1228,
3167 1230, 1232, 1234, 1236, 1238, 1240, 1242, 1244, 1246, 1248,
3168 1250, 1252, 1254, 0, 0, 0, 0, 0, 0, 0,
3169 0, 1256, 1258, 1260, 1262, 0, 1264, 1266, 0, 0,
3170 0, 1268, 0, 0, 1270, 1272, 1274, 1276, 0, 0,
3171 0, 1278, 0, 0, 0, 0, 0, 0, 0, 0,
3172 0, 0, 0, 0, 0, 0, 1280, 1282, 0, 0,
3173 0, 0, 0, 0, 0, 0, 0, 0, 0, 1284,
3174 1286, 0, 0, 0, 0, 1288, 1290, 1292, 1294, 1296,
3175 0, 0, 0, 0, 0, 0, 0, 1298, 0, 0,
3176 0, 0, 0, 0, 0, 0, 0, 1300, 0, 1302,
3177 1304, 1306, 1308, 1310, 1312, 0, 1314, 0, 0, 1316,
3178 1318, 1320, 1322, 1324, 1326, 1328, 1330, 1332, 1334, 1336,
3179 1338, 1340, 1342, 1344, 1346, 1348, 0, 0, 0, 0,
3180 0, 0, 0, 0, 1350, 1352, 1354, 1356, 0, 1358,
3181 1360, 0, 0, 0, 1362, 0, 0, 1364, 1366, 1368,
3182 1370, 0, 0, 0, 1372, 0, 0, 0, 0, 0,
3183 0, 0, 0, 0, 0, 0, 0, 0, 0, 1374,
3184 1376, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3185 0, 0, 1378, 1380, 0, 0, 0, 0, 1382, 1384,
3186 1386, 1388, 1390, 0, 0, 0, 0, 0, 0, 0,
3187 1392, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3188 1394, 0, 1396, 1398, 1400, 1402, 1404, 1406, 0, 1408,
3189 0, 0, 1410, 1412, 1414, 1416, 1418, 1420, 1422, 1424,
3190 1426, 1428, 1430, 1432, 1434, 1436, 1438, 1440, 1442, 0,
3191 0, 0, 0, 0, 0, 0, 0, 1444, 1446, 1448,
3192 1450, 0, 1452, 1454, 0, 0, 0, 1456, 0, 0,
3193 1458, 1460, 1462, 1464, 0, 0, 0, 1466, 0, 0,
3194 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3195 0, 0, 1468, 1470, 0, 0, 0, 0, 0, 0,
3196 0, 0, 0, 0, 0, 1472, 1474, 0, 0, 0,
3197 0, 1476, 1478, 1480, 1482, 1484, 0, 0, 0, 0,
3198 0, 0, 0, 1486, 0, 0, 0, 0, 0, 0,
3199 0, 0, 0, 1488, 0, 1490, 1492, 1494, 1496, 1498,
3200 1500, 0, 1502, 0, 0, 1504, 1506, 1508, 1510, 1512,
3201 1514, 1516, 1518, 1520, 1522, 1524, 1526, 1528, 1530, 1532,
3202 1534, 1536, 0, 0, 0, 0, 0, 0, 0, 0,
3203 1538, 1540, 1542, 1544, 0, 1546, 1548, 0, 0, 0,
3204 1550, 0, 0, 1552, 1554, 1556, 1558, 0, 0, 0,
3205 1560, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3206 0, 0, 0, 0, 0, 1562, 1564, 0, 0, 0,
3207 0, 0, 0, 0, 0, 0, 0, 0, 1566, 1568,
3208 0, 0, 0, 0, 1570, 1572, 1574, 1576, 1578, 0,
3209 0, 0, 0, 0, 0, 0, 1580, 0, 0, 0,
3210 0, 0, 0, 0, 0, 0, 1582, 0, 1584, 1586,
3211 1588, 1590, 1592, 1594, 0, 1596, 0, 0, 1598, 1600,
3212 1602, 1604, 1606, 1608, 1610, 1612, 1614, 1616, 1618, 1620,
3213 1622, 1624, 1626, 1628, 1630, 0, 0, 0, 0, 0,
3214 0, 0, 0, 1632, 1634, 1636, 1638, 0, 1640, 1642,
3215 0, 0, 0, 1644, 0, 0, 1646, 1648, 1650, 1652,
3216 0, 0, 0, 1654, 0, 0, 0, 0, 0, 0,
3217 0, 0, 0, 0, 0, 0, 0, 0, 1656, 1658,
3218 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3219 0, 1660, 1662, 0, 0, 0, 0, 1664, 1666, 1668,
3220 1670, 1672, 0, 0, 0, 0, 0, 0, 0, 1674,
3221 0, 0, 0, 0, 0, 0, 0, 0, 0, 1676,
3222 0, 1678, 1680, 1682, 1684, 1686, 1688, 0, 1690, 0,
3223 0, 1692, 1694, 1696, 1698, 1700, 1702, 1704, 1706, 1708,
3224 1710, 1712, 1714, 1716, 1718, 1720, 1722, 1724, 0, 0,
3225 0, 0, 0, 0, 0, 0, 1726, 1728, 1730, 1732,
3226 0, 1734, 1736, 0, 0, 0, 1738, 0, 0, 1740,
3227 1742, 1744, 1746, 0, 0, 0, 1748, 0, 0, 0,
3228 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3229 0, 1750, 1752, 0, 0, 0, 0, 0, 0, 0,
3230 0, 0, 0, 0, 1754, 1756, 0, 0, 0, 0,
3231 1758, 1760, 1762, 1764, 1766, 0, 0, 0, 0, 0,
3232 0, 0, 1768, 0, 0, 0, 0, 0, 0, 0,
3233 0, 0, 1770, 0, 1772, 1774, 1776, 1778, 1780, 1782,
3234 0, 1784, 0, 0, 1786, 1788, 1790, 1792, 1794, 1796,
3235 1798, 1800, 1802, 1804, 1806, 1808, 1810, 1812, 1814, 1816,
3236 1818, 0, 0, 0, 0, 0, 0, 0, 0, 1820,
3237 1822, 1824, 1826, 0, 1828, 1830, 0, 0, 0, 1832,
3238 0, 0, 1834, 1836, 1838, 1840, 0, 0, 0, 1842,
3239 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3240 0, 0, 0, 0, 1844, 1846, 0, 0, 0, 0,
3241 0, 0, 0, 0, 0, 0, 0, 1848, 1850, 0,
3242 0, 0, 0, 1852, 1854, 1856, 1858, 1860, 0, 0,
3243 0, 0, 0, 0, 0, 1862, 0, 0, 0, 0,
3244 0, 0, 0, 0, 0, 1864, 0, 1866, 1868, 1870,
3245 1872, 1874, 1876, 0, 1878, 0, 0, 1880, 1882, 1884,
3246 1886, 1888, 1890, 1892, 1894, 1896, 1898, 1900, 1902, 1904,
3247 1906, 1908, 1910, 1912, 0, 0, 0, 0, 0, 0,
3248 0, 0, 1914, 1916, 1918, 1920, 0, 1922, 1924, 0,
3249 0, 0, 1926, 0, 0, 1928, 1930, 1932, 1934, 0,
3250 0, 0, 1936, 0, 0, 0, 0, 0, 0, 0,
3251 0, 0, 0, 0, 0, 0, 0, 1938, 1940, 0,
3252 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3253 1942, 1944, 0, 0, 0, 0, 1946, 1948, 1950, 1952,
3254 1954, 0, 0, 0, 0, 0, 0, 0, 1956, 0,
3255 0, 0, 0, 0, 0, 0, 0, 0, 1958, 0,
3256 1960, 1962, 1964, 1966, 1968, 1970, 0, 1972, 0, 0,
3257 1974, 1976, 1978, 1980, 1982, 1984, 1986, 1988, 1990, 1992,
3258 1994, 1996, 1998, 2000, 2002, 2004, 2006, 0, 0, 0,
3259 0, 0, 0, 0, 0, 2008, 2010, 2012, 2014, 0,
3260 2016, 2018, 0, 0, 0, 2020, 0, 0, 2022, 2024,
3261 2026, 2028, 0, 0, 0, 2030, 0, 0, 0, 0,
3262 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3263 2032, 2034, 0, 0, 0, 0, 0, 0, 0, 0,
3264 0, 0, 0, 2036, 2038, 0, 0, 0, 0, 2040,
3265 2042, 2044, 2046, 2048, 0, 0, 0, 0, 0, 0,
3266 0, 2050, 0, 0, 0, 0, 0, 0, 0, 0,
3267 0, 2052, 0, 2054, 2056, 2058, 2060, 2062, 2064, 0,
3268 2066, 0, 0, 2068, 2070, 2072, 2074, 2076, 2078, 2080,
3269 2082, 2084, 2086, 2088, 2090, 2092, 2094, 2096, 2098, 2100,
3270 0, 0, 0, 0, 0, 0, 0, 0, 2102, 2104,
3271 2106, 2108, 0, 2110, 2112, 0, 0, 0, 2114, 0,
3272 0, 2116, 2118, 2120, 2122, 0, 0, 0, 2124, 0,
3273 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3274 0, 0, 0, 2126, 2128, 0, 0, 0, 0, 0,
3275 0, 0, 0, 0, 0, 0, 2130, 2132, 0, 0,
3276 0, 0, 2134, 2136, 2138, 2140, 2142, 0, 0, 0,
3277 0, 0, 0, 0, 2144, 0, 0, 0, 0, 0,
3278 0, 0, 0, 0, 2146, 0, 2148, 2150, 2152, 2154,
3279 2156, 2158, 0, 2160, 0, 0, 2162, 2164, 2166, 2168,
3280 2170, 2172, 2174, 2176, 2178, 2180, 2182, 2184, 2186, 2188,
3281 2190, 2192, 2194, 0, 0, 0, 0, 0, 0, 0,
3282 0, 2196, 2198, 2200, 2202, 0, 2204, 2206, 0, 0,
3283 0, 2208, 0, 0, 2210, 2212, 2214, 2216, 0, 0,
3284 0, 2218, 0, 0, 0, 0, 0, 0, 0, 0,
3285 0, 0, 0, 0, 0, 0, 2220, 2222, 0, 0,
3286 0, 0, 0, 0, 0, 0, 0, 0, 0, 2224,
3287 2226, 0, 0, 0, 0, 2228, 2230, 2232, 2234, 2236,
3288 0, 0, 0, 0, 0, 0, 0, 2238, 0, 0,
3289 0, 0, 0, 0, 0, 0, 0, 2240, 0, 2242,
3290 2244, 2246, 2248, 2250, 2252, 0, 2254, 0, 0, 2256,
3291 2258, 2260, 2262, 2264, 2266, 2268, 2270, 2272, 2274, 2276,
3292 2278, 2280, 2282, 2284, 2286, 2288, 0, 0, 0, 0,
3293 0, 0, 0, 0, 2290, 2292, 2294, 2296, 0, 2298,
3294 2300, 0, 0, 0, 2302, 0, 0, 2304, 2306, 2308,
3295 2310, 0, 0, 0, 2312, 0, 0, 0, 0, 0,
3296 0, 0, 0, 0, 0, 0, 0, 0, 0, 2314,
3297 2316, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3298 0, 0, 2318, 2320, 0, 0, 0, 0, 2322, 2324,
3299 2326, 2328, 2330, 0, 0, 0, 0, 0, 0, 0,
3300 2332, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3301 2334, 0, 2336, 2338, 2340, 2342, 2344, 2346, 0, 2348,
3302 0, 0, 2350, 2352, 2354, 2356, 2358, 2360, 2362, 2364,
3303 2366, 2368, 2370, 2372, 2374, 2376, 2378, 2380, 2382, 0,
3304 0, 0, 0, 0, 0, 0, 0, 2384, 2386, 2388,
3305 2390, 0, 2392, 2394, 0, 0, 0, 2396, 0, 0,
3306 2398, 2400, 2402, 2404, 0, 0, 0, 2406, 0, 0,
3307 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3308 0, 0, 2408, 2410, 0, 0, 0, 0, 0, 0,
3309 0, 0, 0, 0, 0, 2412, 2414, 0, 0, 0,
3310 0, 2416, 2418, 2420, 2422, 2424, 0, 0, 0, 0,
3311 0, 0, 0, 2426, 0, 0, 0, 0, 0, 0,
3312 0, 0, 0, 2428, 0, 2430, 2432, 2434, 2436, 2438,
3313 2440, 0, 2442, 0, 0, 2444, 2446, 2448, 2450, 2452,
3314 2454, 2456, 2458, 2460, 2462, 2464, 2466, 2468, 2470, 2472,
3315 2474, 2476, 0, 0, 0, 0, 0, 0, 0, 0,
3316 2478, 2480, 2482, 2484, 0, 2486, 2488, 0, 0, 0,
3317 2490, 0, 0, 2492, 2494, 2496, 2498, 0, 0, 0,
3318 2500, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3319 0, 0, 0, 0, 0, 2502, 2504, 0, 0, 0,
3320 0, 0, 0, 0, 0, 0, 0, 0, 2506, 2508,
3321 0, 0, 0, 0, 2510, 2512, 2514, 2516, 2518, 0,
3322 0, 0, 0, 0, 0, 0, 2520, 0, 0, 0,
3323 0, 0, 0, 0, 0, 0, 2522, 0, 2524, 2526,
3324 2528, 2530, 2532, 2534, 0, 2536, 0, 0, 2538, 2540,
3325 2542, 2544, 2546, 2548, 2550, 2552, 2554, 2556, 2558, 2560,
3326 2562, 2564, 2566, 2568, 2570, 0, 0, 0, 0, 0,
3327 0, 0, 0, 2572, 2574, 2576, 2578, 0, 2580, 2582,
3328 0, 0, 0, 2584, 0, 0, 2586, 2588, 2590, 2592,
3329 0, 0, 0, 2594, 0, 0, 0, 0, 0, 0,
3330 0, 0, 0, 0, 0, 0, 0, 0, 2596, 2598,
3331 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3332 0, 2600, 2602, 0, 0, 0, 0, 2604, 2606, 2608,
3333 2610, 2612, 0, 0, 0, 0, 0, 0, 0, 2614,
3334 0, 0, 0, 0, 0, 0, 0, 0, 0, 2616,
3335 0, 2618, 2620, 2622, 2624, 2626, 2628, 0, 2630, 0,
3336 0, 2632, 2634, 2636, 2638, 2640, 2642, 2644, 2646, 2648,
3337 2650, 2652, 2654, 2656, 2658, 2660, 2662, 2664, 0, 0,
3338 0, 0, 0, 0, 0, 0, 2666, 2668, 2670, 2672,
3339 0, 2674, 2676, 0, 0, 0, 2678, 0, 0, 2680,
3340 2682, 2684, 2686, 0, 0, 0, 2688, 0, 0, 0,
3341 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3342 0, 2690, 2692, 0, 0, 0, 0, 0, 0, 0,
3343 0, 0, 0, 0, 2694, 2696, 0, 0, 0, 0,
3344 2698, 2700, 2702, 2704, 2706, 0, 0, 0, 0, 0,
3345 0, 0, 2708, 0, 0, 0, 0, 0, 0, 0,
3346 0, 0, 2710, 0, 2712, 2714, 2716, 2718, 2720, 2722,
3347 0, 2724, 0, 0, 2726, 2728, 2730, 2732, 2734, 2736,
3348 2738, 2740, 2742, 2744, 2746, 2748, 2750, 2752, 2754, 2756,
3349 2758, 0, 0, 0, 0, 0, 0, 0, 0, 2760,
3350 2762, 2764, 2766, 0, 2768, 2770, 0, 0, 0, 2772,
3351 0, 0, 2774, 2776, 2778, 2780, 0, 0, 0, 2782,
3352 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3353 0, 0, 0, 0, 2784, 2786, 0, 0, 0, 0,
3354 0, 0, 0, 0, 0, 0, 0, 2788, 2790, 0,
3355 0, 0, 0, 2792, 2794, 2796, 2798, 2800, 0, 0,
3356 0, 0, 0, 0, 0, 2802, 0, 0, 0, 0,
3357 0, 0, 0, 0, 0, 2804, 0, 2806, 2808, 2810,
3358 2812, 2814, 2816, 0, 2818, 0, 0, 2820, 2822, 2824,
3359 2826, 2828, 2830, 2832, 2834, 2836, 2838, 2840, 2842, 2844,
3360 2846, 2848, 2850, 2852, 0, 0, 0, 0, 0, 0,
3361 0, 0, 2854, 2856, 2858, 2860, 0, 2862, 2864, 0,
3362 0, 0, 2866, 0, 0, 2868, 2870, 2872, 2874, 0,
3363 0, 0, 2876, 0, 0, 0, 0, 0, 0, 0,
3364 0, 0, 0, 0, 0, 0, 0, 2878, 2880, 0,
3365 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3366 2882, 2884, 0, 0, 0, 0, 2886, 2888, 2890, 2892,
3367 2894, 0, 0, 0, 0, 0, 0, 0, 2896, 0,
3368 0, 0, 0, 0, 0, 0, 0, 0, 2898, 0,
3369 2900, 2902, 2904, 2906, 2908, 2910, 0, 2912, 0, 0,
3370 2914, 2916, 2918, 2920, 2922, 2924, 2926, 2928, 2930, 2932,
3371 2934, 2936, 2938, 2940, 2942, 2944, 2946, 0, 0, 0,
3372 0, 0, 0, 0, 0, 2948, 2950, 2952, 2954, 0,
3373 2956, 2958, 0, 0, 0, 2960, 0, 0, 2962, 2964,
3374 2966, 2968, 0, 0, 0, 2970, 0, 0, 0, 0,
3375 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3376 2972, 2974, 0, 0, 0, 0, 0, 0, 0, 0,
3377 0, 0, 0, 2976, 2978, 0, 0, 0, 0, 2980,
3378 2982, 2984, 2986, 2988, 0, 0, 0, 0, 0, 0,
3379 0, 2990, 0, 0, 0, 0, 0, 0, 0, 0,
3380 0, 2992, 0, 2994, 2996, 2998, 3000, 3002, 3004, 0,
3381 3006, 0, 0, 3008, 3010, 3012, 3014, 3016, 3018, 3020,
3382 3022, 3024, 3026, 3028, 3030, 3032, 3034, 3036, 3038, 3040,
3383 0, 0, 0, 0, 0, 0, 0, 0, 3042, 3044,
3384 3046, 3048, 0, 3050, 3052, 0, 0, 0, 3054, 0,
3385 0, 3056, 3058, 3060, 3062, 0, 0, 0, 3064, 0,
3386 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3387 0, 0, 0, 3066, 3068, 0, 0, 0, 0, 0,
3388 0, 0, 0, 0, 0, 0, 3070, 3072, 0, 0,
3389 0, 0, 3074, 3076, 3078, 3080, 3082, 0, 0, 0,
3390 0, 0, 0, 0, 3084, 0, 0, 0, 0, 0,
3391 0, 0, 0, 0, 3086, 0, 3088, 3090, 3092, 3094,
3392 3096, 3098, 0, 3100, 0, 0, 3102, 3104, 3106, 3108,
3393 3110, 3112, 3114, 3116, 3118, 3120, 3122, 3124, 3126, 3128,
3394 3130, 3132, 3134, 0, 0, 0, 0, 0, 0, 0,
3395 0, 3136, 3138, 3140, 3142, 0, 3144, 3146, 0, 0,
3396 0, 3148, 0, 0, 3150, 3152, 3154, 3156, 0, 0,
3397 0, 3158, 0, 0, 0, 0, 0, 0, 0, 0,
3398 0, 0, 0, 0, 0, 0, 3160, 3162, 0, 0,
3399 0, 0, 0, 0, 0, 0, 0, 0, 0, 3164,
3400 3166, 0, 0, 0, 0, 3168, 3170, 3172, 3174, 3176,
3401 0, 0, 0, 0, 0, 0, 0, 3178, 0, 0,
3402 0, 0, 0, 0, 0, 0, 0, 3180, 0, 3182,
3403 3184, 3186, 3188, 3190, 3192, 0, 3194, 0, 0, 3196,
3404 3198, 3200, 3202, 3204, 3206, 3208, 3210, 3212, 3214, 3216,
3405 3218, 3220, 3222, 3224, 3226, 3228, 0, 0, 0, 0,
3406 0, 0, 0, 0, 3230, 3232, 3234, 3236, 0, 3238,
3407 3240, 0, 0, 0, 3242, 0, 0, 3244, 3246, 3248,
3408 3250, 0, 0, 0, 3252, 0, 0, 0, 0, 0,
3409 0, 0, 0, 0, 0, 0, 0, 0, 0, 3254,
3410 3256, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3411 0, 0, 3258, 3260, 0, 0, 0, 0, 3262, 3264,
3412 3266, 3268, 3270, 0, 0, 0, 0, 0, 0, 0,
3413 3272, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3414 3274, 0, 3276, 3278, 3280, 3282, 3284, 3286, 0, 3288,
3415 0, 0, 3290, 3292, 3294, 3296, 3298, 3300, 3302, 3304,
3416 3306, 3308, 3310, 3312, 3314, 3316, 3318, 3320, 3322, 0,
3417 0, 0, 0, 0, 0, 0, 0, 3324, 3326, 3328,
3418 3330, 0, 3332, 3334, 0, 0, 0, 3336, 0, 0,
3419 3338, 3340, 3342, 3344, 0, 0, 0, 3346, 0, 0,
3420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3421 0, 0, 3348, 3350, 0, 0, 0, 0, 0, 0,
3422 0, 0, 0, 0, 0, 3352, 3354, 0, 0, 0,
3423 0, 3356, 3358, 3360, 3362, 3364, 0, 0, 0, 0,
3424 0, 0, 0, 3366, 0, 0, 0, 0, 0, 0,
3425 0, 0, 0, 3368, 0, 3370, 3372, 3374, 3376, 3378,
3426 3380, 0, 3382, 0, 0, 3384, 3386, 3388, 3390, 3392,
3427 3394, 3396, 3398, 3400, 3402, 3404, 3406, 3408, 3410, 3412,
3428 3414, 3416, 0, 0, 0, 0, 0, 0, 0, 0,
3429 3418, 3420, 3422, 3424, 0, 3426, 3428, 0, 0, 0,
3430 3430, 0, 0, 3432, 3434, 3436, 3438, 0, 0, 0,
3431 3440, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3432 0, 0, 0, 0, 0, 3442, 3444, 0, 0, 0,
3433 0, 0, 0, 0, 0, 0, 0, 0, 3446, 3448,
3434 0, 0, 0, 0, 3450, 3452, 3454, 3456, 3458, 0,
3435 0, 0, 0, 0, 0, 0, 3460, 0, 0, 0,
3436 0, 0, 0, 0, 0, 0, 3462, 0, 3464, 3466,
3437 3468, 3470, 3472, 3474, 0, 3476, 0, 0, 3478, 3480,
3438 3482, 3484, 3486, 3488, 3490, 3492, 3494, 3496, 3498, 3500,
3439 3502, 3504, 3506, 3508, 3510, 0, 0, 0, 0, 0,
3440 0, 0, 0, 3512, 3514, 3516, 3518, 0, 3520, 3522,
3441 0, 0, 0, 3524, 0, 0, 3526, 3528, 3530, 3532,
3442 0, 0, 0, 3534, 0, 0, 0, 0, 0, 0,
3443 0, 0, 0, 0, 0, 0, 0, 0, 3536, 3538,
3444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3445 0, 3540, 3542, 0, 0, 0, 0, 3544, 3546, 3548,
3446 3550, 3552, 0, 0, 0, 0, 0, 0, 0, 3554,
3447 0, 0, 0, 0, 0, 0, 0, 0, 0, 3556,
3448 0, 3558, 3560, 3562, 3564, 3566, 3568, 0, 3570, 0,
3449 0, 3572, 3574, 3576, 3578, 3580, 3582, 3584, 3586, 3588,
3450 3590, 3592, 3594, 3596, 3598, 3600, 3602, 3604, 0, 0,
3451 0, 0, 0, 0, 0, 0, 3606, 3608, 3610, 3612,
3452 0, 3614, 3616, 0, 0, 0, 3618, 0, 0, 3620,
3453 3622, 3624, 3626, 0, 0, 0, 3628, 0, 0, 0,
3454 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3455 0, 3630, 3632, 0, 0, 0, 0, 0, 0, 0,
3456 0, 0, 0, 0, 3634, 3636, 0, 0, 0, 0,
3457 3638, 3640, 3642, 3644, 3646, 0, 0, 0, 0, 0,
3458 0, 0, 3648, 0, 0, 0, 0, 0, 0, 0,
3459 0, 0, 3650, 0, 3652, 3654, 3656, 3658, 3660, 3662,
3460 0, 3664, 0, 0, 3666, 3668, 3670, 3672, 3674, 3676,
3461 3678, 3680, 3682, 3684, 3686, 3688, 3690, 3692, 3694, 3696,
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, 0,
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, 0, 0, 0, 0, 0, 0, 0,
3683 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3684 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3685 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3687 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3688 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3689 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3690 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3691 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3692 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3693 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3694 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3695 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3696 3728, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3697 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3698 0, 0, 0, 0, 3730
3699 };
3700
3701 /* YYCONFL[I] -- lists of conflicting rule numbers, each terminated by
3702 0, pointed into by YYCONFLP. */
3703 static const short yyconfl[] =
3704 {
3705 0, 392, 0, 392, 0, 392, 0, 392, 0, 383,
3706 0, 383, 0, 406, 0, 467, 0, 467, 0, 311,
3707 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3708 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3709 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3710 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3711 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3712 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3713 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3714 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3715 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3716 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3717 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3718 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3719 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3720 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3721 0, 392, 0, 392, 0, 392, 0, 392, 0, 406,
3722 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3723 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3724 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3725 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3726 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3727 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3728 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3729 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3730 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3731 0, 46, 0, 46, 0, 55, 0, 55, 0, 55,
3732 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3733 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3734 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3735 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3736 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3737 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3738 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3739 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3740 0, 55, 0, 55, 0, 55, 0, 55, 0, 56,
3741 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3742 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3743 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3744 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3745 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3746 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3747 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3748 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3749 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3750 0, 56, 0, 57, 0, 57, 0, 57, 0, 57,
3751 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3752 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3753 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3754 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3755 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3756 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3757 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3758 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3759 0, 57, 0, 57, 0, 57, 0, 58, 0, 58,
3760 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3761 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3762 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3763 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3764 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3765 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3766 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3767 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3768 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3769 0, 624, 0, 624, 0, 624, 0, 624, 0, 624,
3770 0, 624, 0, 624, 0, 624, 0, 624, 0, 624,
3771 0, 624, 0, 624, 0, 624, 0, 624, 0, 624,
3772 0, 624, 0, 624, 0, 624, 0, 624, 0, 624,
3773 0, 624, 0, 624, 0, 624, 0, 624, 0, 624,
3774 0, 624, 0, 624, 0, 624, 0, 624, 0, 624,
3775 0, 624, 0, 624, 0, 624, 0, 624, 0, 624,
3776 0, 624, 0, 624, 0, 624, 0, 624, 0, 624,
3777 0, 624, 0, 624, 0, 624, 0, 624, 0, 624,
3778 0, 624, 0, 624, 0, 585, 623, 0, 585, 623,
3779 0, 585, 623, 0, 585, 623, 0, 585, 623, 0,
3780 585, 623, 0, 585, 623, 0, 585, 623, 0, 585,
3781 623, 0, 585, 623, 0, 585, 623, 0, 585, 623,
3782 0, 585, 623, 0, 585, 623, 0, 585, 623, 0,
3783 585, 623, 0, 585, 623, 0, 585, 623, 0, 585,
3784 623, 0, 585, 623, 0, 585, 623, 0, 585, 623,
3785 0, 585, 623, 0, 585, 623, 0, 585, 623, 0,
3786 585, 623, 0, 585, 623, 0, 585, 623, 0, 585,
3787 623, 0, 585, 623, 0, 585, 623, 0, 585, 623,
3788 0, 585, 623, 0, 585, 623, 0, 585, 623, 0,
3789 585, 623, 0, 585, 623, 0, 585, 623, 0, 585,
3790 623, 0, 585, 623, 0, 585, 623, 0, 585, 623,
3791 0, 585, 623, 0, 585, 623, 0, 585, 623, 0,
3792 585, 623, 0, 585, 623, 0, 623, 0, 65, 0,
3793 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3794 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3795 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3796 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3797 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3798 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3799 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3800 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3801 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3802 65, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3803 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3804 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3805 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3806 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3807 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3808 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3809 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3810 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3811 109, 0, 109, 0, 109, 0, 110, 0, 110, 0,
3812 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3813 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3814 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3815 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3816 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3817 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3818 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3819 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3820 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3821 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3822 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3823 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3824 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3825 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3826 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3827 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3828 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3829 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3830 108, 0, 108, 0, 106, 0, 106, 0, 106, 0,
3831 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3832 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3833 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3834 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3835 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3836 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3837 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3838 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3839 106, 0, 106, 0, 106, 0, 106, 0, 107, 0,
3840 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3841 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3842 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3843 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3844 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3845 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3846 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3847 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3848 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3849 107, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3850 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3851 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3852 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3853 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3854 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3855 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3856 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3857 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3858 127, 0, 127, 0, 127, 0, 129, 0, 129, 0,
3859 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3860 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3861 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3862 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3863 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3864 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3865 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3866 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3867 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3868 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3869 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3870 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3871 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3872 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3873 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3874 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3875 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3876 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3877 130, 0, 130, 0, 131, 0, 131, 0, 131, 0,
3878 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3879 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3880 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3881 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3882 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3883 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3884 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3885 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3886 131, 0, 131, 0, 131, 0, 131, 0, 132, 0,
3887 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3888 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3889 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3890 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3891 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3892 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3893 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3894 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3895 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3896 132, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3897 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3898 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3899 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3900 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3901 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3902 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3903 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3904 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3905 133, 0, 133, 0, 133, 0, 134, 0, 134, 0,
3906 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3907 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3908 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3909 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3910 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3911 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3912 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3913 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3914 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3915 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3916 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3917 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3918 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3919 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3920 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3921 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3922 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3923 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3924 163, 0, 163, 0, 593, 0, 593, 0, 593, 0,
3925 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3926 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3927 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3928 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3929 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3930 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3931 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3932 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3933 593, 0, 593, 0, 593, 0, 593, 0, 592, 0,
3934 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3935 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3936 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3937 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3938 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3939 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3940 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3941 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3942 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3943 592, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3944 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3945 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3946 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3947 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3948 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3949 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3950 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3951 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3952 590, 0, 590, 0, 590, 0, 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, 588, 0, 588, 0, 588, 0, 588, 0,
3956 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3957 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3958 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3959 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3960 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3961 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3962 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3963 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3964 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3965 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3966 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3967 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3968 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3969 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3970 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3971 589, 0, 589, 0, 591, 0, 591, 0, 591, 0,
3972 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3973 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3974 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3975 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3976 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3977 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3978 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3979 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3980 591, 0, 591, 0, 591, 0, 591, 0, 587, 0,
3981 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3982 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3983 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3984 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3985 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3986 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3987 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3988 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3989 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3990 587, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3991 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3992 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3993 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3994 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3995 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3996 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3997 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3998 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3999 586, 0, 586, 0, 586, 0, 594, 0, 594, 0,
4000 594, 0, 594, 0, 594, 0, 594, 0, 594, 0,
4001 594, 0, 594, 0, 594, 0, 594, 0, 594, 0,
4002 594, 0, 594, 0, 594, 0, 594, 0, 594, 0,
4003 594, 0, 594, 0, 594, 0, 594, 0, 594, 0,
4004 594, 0, 594, 0, 594, 0, 594, 0, 594, 0,
4005 594, 0, 594, 0, 594, 0, 594, 0, 594, 0,
4006 594, 0, 594, 0, 594, 0, 594, 0, 594, 0,
4007 594, 0, 594, 0, 594, 0, 594, 0, 594, 0,
4008 594, 0, 594, 0, 594, 0, 594, 0, 594, 0,
4009 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
4010 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
4011 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
4012 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
4013 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
4014 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
4015 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
4016 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
4017 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
4018 147, 0, 147, 0, 622, 0, 622, 0, 622, 0,
4019 622, 0, 622, 0, 622, 0, 622, 0, 622, 0,
4020 622, 0, 622, 0, 622, 0, 622, 0, 622, 0,
4021 622, 0, 622, 0, 622, 0, 622, 0, 622, 0,
4022 622, 0, 622, 0, 622, 0, 622, 0, 622, 0,
4023 622, 0, 622, 0, 622, 0, 622, 0, 622, 0,
4024 622, 0, 622, 0, 622, 0, 622, 0, 622, 0,
4025 622, 0, 622, 0, 622, 0, 622, 0, 622, 0,
4026 622, 0, 622, 0, 622, 0, 622, 0, 622, 0,
4027 622, 0, 622, 0, 622, 0, 622, 0, 620, 0,
4028 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4029 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4030 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4031 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4032 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4033 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4034 620, 0, 620, 0, 620, 0, 620, 0, 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, 619, 0, 619, 0, 619, 0, 619, 0,
4038 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4039 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4040 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4041 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4042 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4043 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4044 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4045 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4046 619, 0, 619, 0, 619, 0, 621, 0, 621, 0,
4047 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4048 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4049 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4050 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4051 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4052 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4053 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4054 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4055 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4056 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4057 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4058 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4059 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4060 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4061 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4062 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4063 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4064 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4065 618, 0, 618, 0, 617, 0, 617, 0, 617, 0,
4066 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4067 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4068 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4069 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4070 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4071 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4072 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4073 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4074 617, 0, 617, 0, 617, 0, 617, 0, 512, 0,
4075 512, 0, 460, 0, 460, 0, 461, 0, 498, 0,
4076 498, 0, 498, 0, 45, 0, 624, 0, 392, 0,
4077 573, 0, 573, 0, 573, 0, 624, 0, 343, 0,
4078 494, 0
4079 };
4080
4081 /* Error token number */
4082 #define YYTERROR 1
4083
4084
4085
4086
4087 #undef yynerrs
4088 #define yynerrs (yystackp->yyerrcnt)
4089 #undef yychar
4090 #define yychar (yystackp->yyrawchar)
4091 #undef yylval
4092 #define yylval (yystackp->yyval)
4093 #undef yylloc
4094 #define yylloc (yystackp->yyloc)
4095 #define psi_parser_proc_nerrs yynerrs
4096 #define psi_parser_proc_char yychar
4097 #define psi_parser_proc_lval yylval
4098 #define psi_parser_proc_lloc yylloc
4099
4100 static const int YYEOF = 0;
4101 static const int YYEMPTY = -2;
4102
4103 typedef enum { yyok, yyaccept, yyabort, yyerr } YYRESULTTAG;
4104
4105 #define YYCHK(YYE) \
4106 do { \
4107 YYRESULTTAG yychk_flag = YYE; \
4108 if (yychk_flag != yyok) \
4109 return yychk_flag; \
4110 } while (0)
4111
4112 #if YYDEBUG
4113
4114 # ifndef YYFPRINTF
4115 # define YYFPRINTF fprintf
4116 # endif
4117
4118 /* This macro is provided for backward compatibility. */
4119 #ifndef YY_LOCATION_PRINT
4120 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
4121 #endif
4122
4123
4124 # define YYDPRINTF(Args) \
4125 do { \
4126 if (yydebug) \
4127 YYFPRINTF Args; \
4128 } while (0)
4129
4130
4131 /*-----------------------------------.
4132 | Print this symbol's value on YYO. |
4133 `-----------------------------------*/
4134
4135 static void
4136 yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
4137 {
4138 FILE *yyoutput = yyo;
4139 YYUSE (yyoutput);
4140 YYUSE (P);
4141 YYUSE (tokens);
4142 YYUSE (index);
4143 if (!yyvaluep)
4144 return;
4145 YYUSE (yytype);
4146 }
4147
4148
4149 /*---------------------------.
4150 | Print this symbol on YYO. |
4151 `---------------------------*/
4152
4153 static void
4154 yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
4155 {
4156 YYFPRINTF (yyo, "%s %s (",
4157 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
4158
4159 yy_symbol_value_print (yyo, yytype, yyvaluep, P, tokens, index);
4160 YYFPRINTF (yyo, ")");
4161 }
4162
4163 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
4164 do { \
4165 if (yydebug) \
4166 { \
4167 YYFPRINTF (stderr, "%s ", Title); \
4168 yy_symbol_print (stderr, Type, Value, P, tokens, index); \
4169 YYFPRINTF (stderr, "\n"); \
4170 } \
4171 } while (0)
4172
4173 /* Nonzero means print parse trace. It is left uninitialized so that
4174 multiple parsers can coexist. */
4175 int yydebug;
4176
4177 struct yyGLRStack;
4178 static void yypstack (struct yyGLRStack* yystackp, size_t yyk)
4179 YY_ATTRIBUTE_UNUSED;
4180 static void yypdumpstack (struct yyGLRStack* yystackp)
4181 YY_ATTRIBUTE_UNUSED;
4182
4183 #else /* !YYDEBUG */
4184
4185 # define YYDPRINTF(Args)
4186 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
4187
4188 #endif /* !YYDEBUG */
4189
4190 /* YYINITDEPTH -- initial size of the parser's stacks. */
4191 #ifndef YYINITDEPTH
4192 # define YYINITDEPTH 200
4193 #endif
4194
4195 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
4196 if the built-in stack extension method is used).
4197
4198 Do not make this value too large; the results are undefined if
4199 SIZE_MAX < YYMAXDEPTH * sizeof (GLRStackItem)
4200 evaluated with infinite-precision integer arithmetic. */
4201
4202 #ifndef YYMAXDEPTH
4203 # define YYMAXDEPTH 10000
4204 #endif
4205
4206 /* Minimum number of free items on the stack allowed after an
4207 allocation. This is to allow allocation and initialization
4208 to be completed by functions that call yyexpandGLRStack before the
4209 stack is expanded, thus insuring that all necessary pointers get
4210 properly redirected to new data. */
4211 #define YYHEADROOM 2
4212
4213 #ifndef YYSTACKEXPANDABLE
4214 # define YYSTACKEXPANDABLE 1
4215 #endif
4216
4217 #if YYSTACKEXPANDABLE
4218 # define YY_RESERVE_GLRSTACK(Yystack) \
4219 do { \
4220 if (Yystack->yyspaceLeft < YYHEADROOM) \
4221 yyexpandGLRStack (Yystack); \
4222 } while (0)
4223 #else
4224 # define YY_RESERVE_GLRSTACK(Yystack) \
4225 do { \
4226 if (Yystack->yyspaceLeft < YYHEADROOM) \
4227 yyMemoryExhausted (Yystack); \
4228 } while (0)
4229 #endif
4230
4231
4232 #if YYERROR_VERBOSE
4233
4234 # ifndef yystpcpy
4235 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
4236 # define yystpcpy stpcpy
4237 # else
4238 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
4239 YYDEST. */
4240 static char *
4241 yystpcpy (char *yydest, const char *yysrc)
4242 {
4243 char *yyd = yydest;
4244 const char *yys = yysrc;
4245
4246 while ((*yyd++ = *yys++) != '\0')
4247 continue;
4248
4249 return yyd - 1;
4250 }
4251 # endif
4252 # endif
4253
4254 # ifndef yytnamerr
4255 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
4256 quotes and backslashes, so that it's suitable for yyerror. The
4257 heuristic is that double-quoting is unnecessary unless the string
4258 contains an apostrophe, a comma, or backslash (other than
4259 backslash-backslash). YYSTR is taken from yytname. If YYRES is
4260 null, do not copy; instead, return the length of what the result
4261 would have been. */
4262 static size_t
4263 yytnamerr (char *yyres, const char *yystr)
4264 {
4265 if (*yystr == '"')
4266 {
4267 size_t yyn = 0;
4268 char const *yyp = yystr;
4269
4270 for (;;)
4271 switch (*++yyp)
4272 {
4273 case '\'':
4274 case ',':
4275 goto do_not_strip_quotes;
4276
4277 case '\\':
4278 if (*++yyp != '\\')
4279 goto do_not_strip_quotes;
4280 /* Fall through. */
4281 default:
4282 if (yyres)
4283 yyres[yyn] = *yyp;
4284 yyn++;
4285 break;
4286
4287 case '"':
4288 if (yyres)
4289 yyres[yyn] = '\0';
4290 return yyn;
4291 }
4292 do_not_strip_quotes: ;
4293 }
4294
4295 if (! yyres)
4296 return strlen (yystr);
4297
4298 return (size_t) (yystpcpy (yyres, yystr) - yyres);
4299 }
4300 # endif
4301
4302 #endif /* !YYERROR_VERBOSE */
4303
4304 /** State numbers, as in LALR(1) machine */
4305 typedef int yyStateNum;
4306
4307 /** Rule numbers, as in LALR(1) machine */
4308 typedef int yyRuleNum;
4309
4310 /** Grammar symbol */
4311 typedef int yySymbol;
4312
4313 /** Item references, as in LALR(1) machine */
4314 typedef short yyItemNum;
4315
4316 typedef struct yyGLRState yyGLRState;
4317 typedef struct yyGLRStateSet yyGLRStateSet;
4318 typedef struct yySemanticOption yySemanticOption;
4319 typedef union yyGLRStackItem yyGLRStackItem;
4320 typedef struct yyGLRStack yyGLRStack;
4321
4322 struct yyGLRState {
4323 /** Type tag: always true. */
4324 yybool yyisState;
4325 /** Type tag for yysemantics. If true, yysval applies, otherwise
4326 * yyfirstVal applies. */
4327 yybool yyresolved;
4328 /** Number of corresponding LALR(1) machine state. */
4329 yyStateNum yylrState;
4330 /** Preceding state in this stack */
4331 yyGLRState* yypred;
4332 /** Source position of the last token produced by my symbol */
4333 size_t yyposn;
4334 union {
4335 /** First in a chain of alternative reductions producing the
4336 * non-terminal corresponding to this state, threaded through
4337 * yynext. */
4338 yySemanticOption* yyfirstVal;
4339 /** Semantic value for this state. */
4340 YYSTYPE yysval;
4341 } yysemantics;
4342 };
4343
4344 struct yyGLRStateSet {
4345 yyGLRState** yystates;
4346 /** During nondeterministic operation, yylookaheadNeeds tracks which
4347 * stacks have actually needed the current lookahead. During deterministic
4348 * operation, yylookaheadNeeds[0] is not maintained since it would merely
4349 * duplicate yychar != YYEMPTY. */
4350 yybool* yylookaheadNeeds;
4351 size_t yysize, yycapacity;
4352 };
4353
4354 struct yySemanticOption {
4355 /** Type tag: always false. */
4356 yybool yyisState;
4357 /** Rule number for this reduction */
4358 yyRuleNum yyrule;
4359 /** The last RHS state in the list of states to be reduced. */
4360 yyGLRState* yystate;
4361 /** The lookahead for this reduction. */
4362 int yyrawchar;
4363 YYSTYPE yyval;
4364 /** Next sibling in chain of options. To facilitate merging,
4365 * options are chained in decreasing order by address. */
4366 yySemanticOption* yynext;
4367 };
4368
4369 /** Type of the items in the GLR stack. The yyisState field
4370 * indicates which item of the union is valid. */
4371 union yyGLRStackItem {
4372 yyGLRState yystate;
4373 yySemanticOption yyoption;
4374 };
4375
4376 struct yyGLRStack {
4377 int yyerrState;
4378
4379
4380 int yyerrcnt;
4381 int yyrawchar;
4382 YYSTYPE yyval;
4383
4384 YYJMP_BUF yyexception_buffer;
4385 yyGLRStackItem* yyitems;
4386 yyGLRStackItem* yynextFree;
4387 size_t yyspaceLeft;
4388 yyGLRState* yysplitPoint;
4389 yyGLRState* yylastDeleted;
4390 yyGLRStateSet yytops;
4391 };
4392
4393 #if YYSTACKEXPANDABLE
4394 static void yyexpandGLRStack (yyGLRStack* yystackp);
4395 #endif
4396
4397 static _Noreturn void
4398 yyFail (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char* yymsg)
4399 {
4400 if (yymsg != YY_NULLPTR)
4401 yyerror (P, tokens, index, yymsg);
4402 YYLONGJMP (yystackp->yyexception_buffer, 1);
4403 }
4404
4405 static _Noreturn void
4406 yyMemoryExhausted (yyGLRStack* yystackp)
4407 {
4408 YYLONGJMP (yystackp->yyexception_buffer, 2);
4409 }
4410
4411 #if YYDEBUG || YYERROR_VERBOSE
4412 /** A printable representation of TOKEN. */
4413 static inline const char*
4414 yytokenName (yySymbol yytoken)
4415 {
4416 if (yytoken == YYEMPTY)
4417 return "";
4418
4419 return yytname[yytoken];
4420 }
4421 #endif
4422
4423 /** Fill in YYVSP[YYLOW1 .. YYLOW0-1] from the chain of states starting
4424 * at YYVSP[YYLOW0].yystate.yypred. Leaves YYVSP[YYLOW1].yystate.yypred
4425 * containing the pointer to the next state in the chain. */
4426 static void yyfillin (yyGLRStackItem *, int, int) YY_ATTRIBUTE_UNUSED;
4427 static void
4428 yyfillin (yyGLRStackItem *yyvsp, int yylow0, int yylow1)
4429 {
4430 int i;
4431 yyGLRState *s = yyvsp[yylow0].yystate.yypred;
4432 for (i = yylow0-1; i >= yylow1; i -= 1)
4433 {
4434 #if YYDEBUG
4435 yyvsp[i].yystate.yylrState = s->yylrState;
4436 #endif
4437 yyvsp[i].yystate.yyresolved = s->yyresolved;
4438 if (s->yyresolved)
4439 yyvsp[i].yystate.yysemantics.yysval = s->yysemantics.yysval;
4440 else
4441 /* The effect of using yysval or yyloc (in an immediate rule) is
4442 * undefined. */
4443 yyvsp[i].yystate.yysemantics.yyfirstVal = YY_NULLPTR;
4444 s = yyvsp[i].yystate.yypred = s->yypred;
4445 }
4446 }
4447
4448 /* Do nothing if YYNORMAL or if *YYLOW <= YYLOW1. Otherwise, fill in
4449 * YYVSP[YYLOW1 .. *YYLOW-1] as in yyfillin and set *YYLOW = YYLOW1.
4450 * For convenience, always return YYLOW1. */
4451 static inline int yyfill (yyGLRStackItem *, int *, int, yybool)
4452 YY_ATTRIBUTE_UNUSED;
4453 static inline int
4454 yyfill (yyGLRStackItem *yyvsp, int *yylow, int yylow1, yybool yynormal)
4455 {
4456 if (!yynormal && yylow1 < *yylow)
4457 {
4458 yyfillin (yyvsp, *yylow, yylow1);
4459 *yylow = yylow1;
4460 }
4461 return yylow1;
4462 }
4463
4464 /** Perform user action for rule number YYN, with RHS length YYRHSLEN,
4465 * and top stack item YYVSP. YYLVALP points to place to put semantic
4466 * value ($$), and yylocp points to place for location information
4467 * (@$). Returns yyok for normal return, yyaccept for YYACCEPT,
4468 * yyerr for YYERROR, yyabort for YYABORT. */
4469 static YYRESULTTAG
4470 yyuserAction (yyRuleNum yyn, int yyrhslen, yyGLRStackItem* yyvsp,
4471 yyGLRStack* yystackp,
4472 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
4473 {
4474 yybool yynormal YY_ATTRIBUTE_UNUSED = (yybool) (yystackp->yysplitPoint == YY_NULLPTR);
4475 int yylow;
4476 YYUSE (yyvalp);
4477 YYUSE (P);
4478 YYUSE (tokens);
4479 YYUSE (index);
4480 YYUSE (yyrhslen);
4481 # undef yyerrok
4482 # define yyerrok (yystackp->yyerrState = 0)
4483 # undef YYACCEPT
4484 # define YYACCEPT return yyaccept
4485 # undef YYABORT
4486 # define YYABORT return yyabort
4487 # undef YYERROR
4488 # define YYERROR return yyerrok, yyerr
4489 # undef YYRECOVERING
4490 # define YYRECOVERING() (yystackp->yyerrState != 0)
4491 # undef yyclearin
4492 # define yyclearin (yychar = YYEMPTY)
4493 # undef YYFILL
4494 # define YYFILL(N) yyfill (yyvsp, &yylow, (N), yynormal)
4495 # undef YYBACKUP
4496 # define YYBACKUP(Token, Value) \
4497 return yyerror (P, tokens, index, YY_("syntax error: cannot back up")), \
4498 yyerrok, yyerr
4499
4500 yylow = 1;
4501 if (yyrhslen == 0)
4502 *yyvalp = yyval_default;
4503 else
4504 *yyvalp = yyvsp[YYFILL (1-yyrhslen)].yystate.yysemantics.yysval;
4505 switch (yyn)
4506 {
4507 case 287:
4508 #line 435 "src/parser_proc_grammar.y" /* glr.c:821 */
4509 {
4510 if ((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4511 psi_cpp_exp_exec((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), P->preproc, PSI_DATA(P));
4512 psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4513 }
4514 }
4515 #line 4516 "src/parser_proc.c" /* glr.c:821 */
4516 break;
4517
4518 case 288:
4519 #line 441 "src/parser_proc_grammar.y" /* glr.c:821 */
4520 {
4521 psi_parser_proc_add_lib(P, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text);
4522 }
4523 #line 4524 "src/parser_proc.c" /* glr.c:821 */
4524 break;
4525
4526 case 289:
4527 #line 444 "src/parser_proc_grammar.y" /* glr.c:821 */
4528 {
4529 psi_parser_proc_add_const(P, (*(struct psi_const **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4530 }
4531 #line 4532 "src/parser_proc.c" /* glr.c:821 */
4532 break;
4533
4534 case 290:
4535 #line 447 "src/parser_proc_grammar.y" /* glr.c:821 */
4536 {
4537 psi_parser_proc_add_decl(P, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4538 }
4539 #line 4540 "src/parser_proc.c" /* glr.c:821 */
4540 break;
4541
4542 case 291:
4543 #line 450 "src/parser_proc_grammar.y" /* glr.c:821 */
4544 {
4545 psi_parser_proc_add_decl_extvars(P, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4546 }
4547 #line 4548 "src/parser_proc.c" /* glr.c:821 */
4548 break;
4549
4550 case 292:
4551 #line 453 "src/parser_proc_grammar.y" /* glr.c:821 */
4552 {
4553 if (P->flags & PSI_DEBUG) {
4554 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);
4555 }
4556 psi_decl_free(&(*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4557 }
4558 #line 4559 "src/parser_proc.c" /* glr.c:821 */
4559 break;
4560
4561 case 293:
4562 #line 459 "src/parser_proc_grammar.y" /* glr.c:821 */
4563 {
4564 psi_parser_proc_add_typedef(P, (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4565 }
4566 #line 4567 "src/parser_proc.c" /* glr.c:821 */
4567 break;
4568
4569 case 294:
4570 #line 462 "src/parser_proc_grammar.y" /* glr.c:821 */
4571 {
4572 psi_parser_proc_add_struct(P, (*(struct psi_decl_struct **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4573 }
4574 #line 4575 "src/parser_proc.c" /* glr.c:821 */
4575 break;
4576
4577 case 295:
4578 #line 465 "src/parser_proc_grammar.y" /* glr.c:821 */
4579 {
4580 psi_parser_proc_add_union(P, (*(struct psi_decl_union **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4581 }
4582 #line 4583 "src/parser_proc.c" /* glr.c:821 */
4583 break;
4584
4585 case 296:
4586 #line 468 "src/parser_proc_grammar.y" /* glr.c:821 */
4587 {
4588 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4589 }
4590 #line 4591 "src/parser_proc.c" /* glr.c:821 */
4591 break;
4592
4593 case 297:
4594 #line 471 "src/parser_proc_grammar.y" /* glr.c:821 */
4595 {
4596 psi_parser_proc_add_impl(P, (*(struct psi_impl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4597 }
4598 #line 4599 "src/parser_proc.c" /* glr.c:821 */
4599 break;
4600
4601 case 298:
4602 #line 477 "src/parser_proc_grammar.y" /* glr.c:821 */
4603 {
4604 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4605 }
4606 #line 4607 "src/parser_proc.c" /* glr.c:821 */
4607 break;
4608
4609 case 299:
4610 #line 480 "src/parser_proc_grammar.y" /* glr.c:821 */
4611 {
4612 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4613 }
4614 #line 4615 "src/parser_proc.c" /* glr.c:821 */
4615 break;
4616
4617 case 300:
4618 #line 486 "src/parser_proc_grammar.y" /* glr.c:821 */
4619 {
4620 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
4621 }
4622 #line 4623 "src/parser_proc.c" /* glr.c:821 */
4623 break;
4624
4625 case 301:
4626 #line 489 "src/parser_proc_grammar.y" /* glr.c:821 */
4627 {
4628 (*(struct psi_cpp_exp **)(&(*yyvalp))) = (*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4629 }
4630 #line 4631 "src/parser_proc.c" /* glr.c:821 */
4631 break;
4632
4633 case 302:
4634 #line 495 "src/parser_proc_grammar.y" /* glr.c:821 */
4635 {
4636 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4637 struct psi_token *msg = NULL;
4638
4639 if (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0, &msg)) {
4640 size_t index = 1;
4641 struct psi_token *next;
4642
4643 msg = psi_token_copy(msg);
4644 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), index++, &next)) {
4645 struct psi_token *old = msg;
4646 msg = psi_token_cat(" ", 2, msg, next);
4647 psi_token_free(&old);
4648 }
4649 }
4650 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4651
4652 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, msg);
4653 } else {
4654 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, NULL);
4655 }
4656 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4657 }
4658 #line 4659 "src/parser_proc.c" /* glr.c:821 */
4659 break;
4660
4661 case 303:
4662 #line 518 "src/parser_proc_grammar.y" /* glr.c:821 */
4663 {
4664 (*(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))));
4665 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4666 }
4667 #line 4668 "src/parser_proc.c" /* glr.c:821 */
4668 break;
4669
4670 case 304:
4671 #line 522 "src/parser_proc_grammar.y" /* glr.c:821 */
4672 {
4673 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL);
4674 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4675 }
4676 #line 4677 "src/parser_proc.c" /* glr.c:821 */
4677 break;
4678
4679 case 305:
4680 #line 526 "src/parser_proc_grammar.y" /* glr.c:821 */
4681 {
4682 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4683 (*(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))));
4684 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4685 }
4686 #line 4687 "src/parser_proc.c" /* glr.c:821 */
4687 break;
4688
4689 case 306:
4690 #line 531 "src/parser_proc_grammar.y" /* glr.c:821 */
4691 {
4692 (*(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)));
4693 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4694 }
4695 #line 4696 "src/parser_proc.c" /* glr.c:821 */
4696 break;
4697
4698 case 307:
4699 #line 535 "src/parser_proc_grammar.y" /* glr.c:821 */
4700 {
4701 (*(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)));
4702 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4703 }
4704 #line 4705 "src/parser_proc.c" /* glr.c:821 */
4705 break;
4706
4707 case 308:
4708 #line 539 "src/parser_proc_grammar.y" /* glr.c:821 */
4709 {
4710 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL);
4711 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4712 }
4713 #line 4714 "src/parser_proc.c" /* glr.c:821 */
4714 break;
4715
4716 case 309:
4717 #line 543 "src/parser_proc_grammar.y" /* glr.c:821 */
4718 {
4719 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4720 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
4721 }
4722 #line 4723 "src/parser_proc.c" /* glr.c:821 */
4723 break;
4724
4725 case 326:
4726 #line 587 "src/parser_proc_grammar.y" /* glr.c:821 */
4727 {
4728 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4729 (*(struct psi_cpp_macro_decl **)(&(*yyvalp))) = psi_cpp_macro_decl_init(NULL, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), NULL);
4730 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4731 }
4732 #line 4733 "src/parser_proc.c" /* glr.c:821 */
4733 break;
4734
4735 case 327:
4736 #line 592 "src/parser_proc_grammar.y" /* glr.c:821 */
4737 {
4738 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4739 (*(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);
4740 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4741 }
4742 #line 4743 "src/parser_proc.c" /* glr.c:821 */
4743 break;
4744
4745 case 328:
4746 #line 597 "src/parser_proc_grammar.y" /* glr.c:821 */
4747 {
4748 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4749 (*(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)));
4750 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4751 }
4752 #line 4753 "src/parser_proc.c" /* glr.c:821 */
4753 break;
4754
4755 case 329:
4756 #line 602 "src/parser_proc_grammar.y" /* glr.c:821 */
4757 {
4758 struct psi_plist *list = psi_plist_init((psi_plist_dtor) psi_token_free);
4759 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4760 (*(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);
4761 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4762 }
4763 #line 4764 "src/parser_proc.c" /* glr.c:821 */
4764 break;
4765
4766 case 330:
4767 #line 611 "src/parser_proc_grammar.y" /* glr.c:821 */
4768 {
4769 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL);
4770 }
4771 #line 4772 "src/parser_proc.c" /* glr.c:821 */
4772 break;
4773
4774 case 331:
4775 #line 614 "src/parser_proc_grammar.y" /* glr.c:821 */
4776 {
4777 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL); /* FIXME */
4778 }
4779 #line 4780 "src/parser_proc.c" /* glr.c:821 */
4780 break;
4781
4782 case 333:
4783 #line 618 "src/parser_proc_grammar.y" /* glr.c:821 */
4784 {
4785 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4786 }
4787 #line 4788 "src/parser_proc.c" /* glr.c:821 */
4788 break;
4789
4790 case 334:
4791 #line 624 "src/parser_proc_grammar.y" /* glr.c:821 */
4792 {
4793 (*(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)));
4794 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4795 (*(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)));
4796 }
4797 #line 4798 "src/parser_proc.c" /* glr.c:821 */
4798 break;
4799
4800 case 335:
4801 #line 629 "src/parser_proc_grammar.y" /* glr.c:821 */
4802 {
4803 (*(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)));
4804 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4805 (*(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)));
4806 }
4807 #line 4808 "src/parser_proc.c" /* glr.c:821 */
4808 break;
4809
4810 case 336:
4811 #line 637 "src/parser_proc_grammar.y" /* glr.c:821 */
4812 {
4813 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4814 }
4815 #line 4816 "src/parser_proc.c" /* glr.c:821 */
4816 break;
4817
4818 case 338:
4819 #line 644 "src/parser_proc_grammar.y" /* glr.c:821 */
4820 {
4821 (*(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)));
4822 (*(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)));
4823 }
4824 #line 4825 "src/parser_proc.c" /* glr.c:821 */
4825 break;
4826
4827 case 339:
4828 #line 648 "src/parser_proc_grammar.y" /* glr.c:821 */
4829 {
4830 (*(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)));
4831 (*(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)));
4832 }
4833 #line 4834 "src/parser_proc.c" /* glr.c:821 */
4834 break;
4835
4836 case 340:
4837 #line 655 "src/parser_proc_grammar.y" /* glr.c:821 */
4838 {
4839 (*(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)));
4840 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4841 }
4842 #line 4843 "src/parser_proc.c" /* glr.c:821 */
4843 break;
4844
4845 case 341:
4846 #line 659 "src/parser_proc_grammar.y" /* glr.c:821 */
4847 {
4848 (*(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)));
4849 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4850 }
4851 #line 4852 "src/parser_proc.c" /* glr.c:821 */
4852 break;
4853
4854 case 342:
4855 #line 663 "src/parser_proc_grammar.y" /* glr.c:821 */
4856 {
4857 (*(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)));
4858 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4859 }
4860 #line 4861 "src/parser_proc.c" /* glr.c:821 */
4861 break;
4862
4863 case 343:
4864 #line 667 "src/parser_proc_grammar.y" /* glr.c:821 */
4865 {
4866 (*(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)));
4867 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4868 }
4869 #line 4870 "src/parser_proc.c" /* glr.c:821 */
4870 break;
4871
4872 case 344:
4873 #line 672 "src/parser_proc_grammar.y" /* glr.c:821 */
4874 {
4875 {
4876 uint8_t exists;
4877
4878 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4879 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4880 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_DEFINED, &exists, 0));
4881 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4882 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4883 }
4884 }
4885 #line 4886 "src/parser_proc.c" /* glr.c:821 */
4886 break;
4887
4888 case 345:
4889 #line 683 "src/parser_proc_grammar.y" /* glr.c:821 */
4890 {
4891 {
4892 uint8_t exists;
4893
4894 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4895 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4896 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_DEFINED, &exists, 0));
4897 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4898 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4899 }
4900 }
4901 #line 4902 "src/parser_proc.c" /* glr.c:821 */
4902 break;
4903
4904 case 346:
4905 #line 694 "src/parser_proc_grammar.y" /* glr.c:821 */
4906 {
4907 (*(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));
4908 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4909 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4910 }
4911 #line 4912 "src/parser_proc.c" /* glr.c:821 */
4912 break;
4913
4914 case 347:
4915 #line 699 "src/parser_proc_grammar.y" /* glr.c:821 */
4916 {
4917 (*(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));
4918 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4919 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4920 }
4921 #line 4922 "src/parser_proc.c" /* glr.c:821 */
4922 break;
4923
4924 case 348:
4925 #line 704 "src/parser_proc_grammar.y" /* glr.c:821 */
4926 {
4927 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4928 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4929 }
4930 #line 4931 "src/parser_proc.c" /* glr.c:821 */
4931 break;
4932
4933 case 349:
4934 #line 708 "src/parser_proc_grammar.y" /* glr.c:821 */
4935 {
4936 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4937 (*(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));
4938 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4939 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4940 }
4941 #line 4942 "src/parser_proc.c" /* glr.c:821 */
4942 break;
4943
4944 case 350:
4945 #line 714 "src/parser_proc_grammar.y" /* glr.c:821 */
4946 {
4947 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4948 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_FUNCTION,
4949 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));
4950 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4951 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4952 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->data.call->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4953 }
4954 #line 4955 "src/parser_proc.c" /* glr.c:821 */
4955 break;
4956
4957 case 351:
4958 #line 725 "src/parser_proc_grammar.y" /* glr.c:821 */
4959 {
4960 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4961 }
4962 #line 4963 "src/parser_proc.c" /* glr.c:821 */
4963 break;
4964
4965 case 353:
4966 #line 732 "src/parser_proc_grammar.y" /* glr.c:821 */
4967 {
4968 /* TODO: clang include test macros */
4969 uint8_t no = 1;
4970 struct psi_num_exp *exp = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8, &no, 0));
4971 exp->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4972 exp->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4973 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_num_exp_free), &exp);
4974 }
4975 #line 4976 "src/parser_proc.c" /* glr.c:821 */
4976 break;
4977
4978 case 354:
4979 #line 740 "src/parser_proc_grammar.y" /* glr.c:821 */
4980 {
4981 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_num_exp_free),
4982 &(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4983 }
4984 #line 4985 "src/parser_proc.c" /* glr.c:821 */
4985 break;
4986
4987 case 355:
4988 #line 744 "src/parser_proc_grammar.y" /* glr.c:821 */
4989 {
4990 (*(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)));
4991 }
4992 #line 4993 "src/parser_proc.c" /* glr.c:821 */
4993 break;
4994
4995 case 356:
4996 #line 750 "src/parser_proc_grammar.y" /* glr.c:821 */
4997 {
4998 (*(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)));
4999 (*(struct psi_const **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5000 }
5001 #line 5002 "src/parser_proc.c" /* glr.c:821 */
5002 break;
5003
5004 case 357:
5005 #line 754 "src/parser_proc_grammar.y" /* glr.c:821 */
5006 {
5007 (*(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)));
5008 (*(struct psi_const **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5009 }
5010 #line 5011 "src/parser_proc.c" /* glr.c:821 */
5011 break;
5012
5013 case 358:
5014 #line 761 "src/parser_proc_grammar.y" /* glr.c:821 */
5015 {
5016 (*(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);
5017 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5018 }
5019 #line 5020 "src/parser_proc.c" /* glr.c:821 */
5020 break;
5021
5022 case 359:
5023 #line 765 "src/parser_proc_grammar.y" /* glr.c:821 */
5024 {
5025 (*(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)));
5026 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
5027 }
5028 #line 5029 "src/parser_proc.c" /* glr.c:821 */
5029 break;
5030
5031 case 360:
5032 #line 769 "src/parser_proc_grammar.y" /* glr.c:821 */
5033 {
5034 (*(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);
5035 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5036 }
5037 #line 5038 "src/parser_proc.c" /* glr.c:821 */
5038 break;
5039
5040 case 364:
5041 #line 782 "src/parser_proc_grammar.y" /* glr.c:821 */
5042 {
5043 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5044 }
5045 #line 5046 "src/parser_proc.c" /* glr.c:821 */
5046 break;
5047
5048 case 365:
5049 #line 796 "src/parser_proc_grammar.y" /* glr.c:821 */
5050 {
5051 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5052 }
5053 #line 5054 "src/parser_proc.c" /* glr.c:821 */
5054 break;
5055
5056 case 366:
5057 #line 802 "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 367:
5065 #line 805 "src/parser_proc_grammar.y" /* glr.c:821 */
5066 {
5067 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5068 }
5069 #line 5070 "src/parser_proc.c" /* glr.c:821 */
5070 break;
5071
5072 case 368:
5073 #line 811 "src/parser_proc_grammar.y" /* glr.c:821 */
5074 {
5075 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5076 }
5077 #line 5078 "src/parser_proc.c" /* glr.c:821 */
5078 break;
5079
5080 case 369:
5081 #line 814 "src/parser_proc_grammar.y" /* glr.c:821 */
5082 {
5083 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5084 }
5085 #line 5086 "src/parser_proc.c" /* glr.c:821 */
5086 break;
5087
5088 case 371:
5089 #line 821 "src/parser_proc_grammar.y" /* glr.c:821 */
5090 {
5091 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5092 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
5093 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
5094 );
5095 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
5096 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5097 }
5098 #line 5099 "src/parser_proc.c" /* glr.c:821 */
5099 break;
5100
5101 case 372:
5102 #line 829 "src/parser_proc_grammar.y" /* glr.c:821 */
5103 {
5104 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5105 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5106 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->name),
5107 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0, 0)
5108 );
5109 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5110 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->token);
5111 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5112 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5113 }
5114 #line 5115 "src/parser_proc.c" /* glr.c:821 */
5115 break;
5116
5117 case 373:
5118 #line 840 "src/parser_proc_grammar.y" /* glr.c:821 */
5119 {
5120 (*(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)));
5121 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
5122 (*(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)));
5123 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5124 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
5125 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
5126 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
5127 }
5128 #line 5129 "src/parser_proc.c" /* glr.c:821 */
5129 break;
5130
5131 case 374:
5132 #line 849 "src/parser_proc_grammar.y" /* glr.c:821 */
5133 {
5134 (*(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)));
5135 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
5136 (*(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)));
5137 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5138 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
5139 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
5140 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
5141 }
5142 #line 5143 "src/parser_proc.c" /* glr.c:821 */
5143 break;
5144
5145 case 376:
5146 #line 862 "src/parser_proc_grammar.y" /* glr.c:821 */
5147 {
5148 (*(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));
5149 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
5150 }
5151 #line 5152 "src/parser_proc.c" /* glr.c:821 */
5152 break;
5153
5154 case 377:
5155 #line 866 "src/parser_proc_grammar.y" /* glr.c:821 */
5156 {
5157 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5158 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->name),
5159 psi_decl_var_init(NULL, 0, 0)
5160 );
5161 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
5162 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
5163 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5164 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5165 }
5166 #line 5167 "src/parser_proc.c" /* glr.c:821 */
5167 break;
5168
5169 case 378:
5170 #line 876 "src/parser_proc_grammar.y" /* glr.c:821 */
5171 {
5172 (*(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));
5173 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5174 (*(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)));
5175 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5176 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
5177 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
5178 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
5179 }
5180 #line 5181 "src/parser_proc.c" /* glr.c:821 */
5181 break;
5182
5183 case 379:
5184 #line 885 "src/parser_proc_grammar.y" /* glr.c:821 */
5185 {
5186 (*(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));
5187 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5188 (*(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)));
5189 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5190 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
5191 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
5192 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
5193 }
5194 #line 5195 "src/parser_proc.c" /* glr.c:821 */
5195 break;
5196
5197 case 381:
5198 #line 898 "src/parser_proc_grammar.y" /* glr.c:821 */
5199 {
5200 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5201 }
5202 #line 5203 "src/parser_proc.c" /* glr.c:821 */
5203 break;
5204
5205 case 382:
5206 #line 901 "src/parser_proc_grammar.y" /* glr.c:821 */
5207 {
5208 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5209 }
5210 #line 5211 "src/parser_proc.c" /* glr.c:821 */
5211 break;
5212
5213 case 385:
5214 #line 912 "src/parser_proc_grammar.y" /* glr.c:821 */
5215 {
5216 (*(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);
5217 (*(struct psi_decl_type **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5218 }
5219 #line 5220 "src/parser_proc.c" /* glr.c:821 */
5220 break;
5221
5222 case 387:
5223 #line 920 "src/parser_proc_grammar.y" /* glr.c:821 */
5224 {
5225 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5226 (*(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);
5227 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5228 }
5229 #line 5230 "src/parser_proc.c" /* glr.c:821 */
5230 break;
5231
5232 case 388:
5233 #line 925 "src/parser_proc_grammar.y" /* glr.c:821 */
5234 {
5235 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5236 (*(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);
5237 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5238 }
5239 #line 5240 "src/parser_proc.c" /* glr.c:821 */
5240 break;
5241
5242 case 389:
5243 #line 930 "src/parser_proc_grammar.y" /* glr.c:821 */
5244 {
5245 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5246 (*(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);
5247 (*(struct psi_decl_type **)(&(*yyvalp)))->token = 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 392:
5253 #line 940 "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 393:
5261 #line 943 "src/parser_proc_grammar.y" /* glr.c:821 */
5262 {
5263 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(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 394:
5269 #line 949 "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 395:
5277 #line 952 "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 396:
5285 #line 955 "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 399:
5293 #line 966 "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 400:
5301 #line 969 "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 401:
5309 #line 972 "src/parser_proc_grammar.y" /* glr.c:821 */
5310 {
5311 (*(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)));
5312 }
5313 #line 5314 "src/parser_proc.c" /* glr.c:821 */
5314 break;
5315
5316 case 402:
5317 #line 978 "src/parser_proc_grammar.y" /* glr.c:821 */
5318 {
5319 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5320 }
5321 #line 5322 "src/parser_proc.c" /* glr.c:821 */
5322 break;
5323
5324 case 403:
5325 #line 981 "src/parser_proc_grammar.y" /* glr.c:821 */
5326 {
5327 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5328 }
5329 #line 5330 "src/parser_proc.c" /* glr.c:821 */
5330 break;
5331
5332 case 404:
5333 #line 984 "src/parser_proc_grammar.y" /* glr.c:821 */
5334 {
5335 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5336 (*(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)));
5337 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5338 } else {
5339 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5340 }
5341 }
5342 #line 5343 "src/parser_proc.c" /* glr.c:821 */
5343 break;
5344
5345 case 405:
5346 #line 992 "src/parser_proc_grammar.y" /* glr.c:821 */
5347 {
5348 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5349 (*(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)));
5350 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5351 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5352 } else {
5353 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5354 }
5355 }
5356 #line 5357 "src/parser_proc.c" /* glr.c:821 */
5357 break;
5358
5359 case 406:
5360 #line 1004 "src/parser_proc_grammar.y" /* glr.c:821 */
5361 {
5362 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5363 }
5364 #line 5365 "src/parser_proc.c" /* glr.c:821 */
5365 break;
5366
5367 case 407:
5368 #line 1007 "src/parser_proc_grammar.y" /* glr.c:821 */
5369 {
5370 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5371 }
5372 #line 5373 "src/parser_proc.c" /* glr.c:821 */
5373 break;
5374
5375 case 408:
5376 #line 1010 "src/parser_proc_grammar.y" /* glr.c:821 */
5377 {
5378 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5379 }
5380 #line 5381 "src/parser_proc.c" /* glr.c:821 */
5381 break;
5382
5383 case 409:
5384 #line 1013 "src/parser_proc_grammar.y" /* glr.c:821 */
5385 {
5386 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5387 (*(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)));
5388 } else {
5389 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5390 }
5391 }
5392 #line 5393 "src/parser_proc.c" /* glr.c:821 */
5393 break;
5394
5395 case 410:
5396 #line 1020 "src/parser_proc_grammar.y" /* glr.c:821 */
5397 {
5398 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5399 }
5400 #line 5401 "src/parser_proc.c" /* glr.c:821 */
5401 break;
5402
5403 case 411:
5404 #line 1023 "src/parser_proc_grammar.y" /* glr.c:821 */
5405 {
5406 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5407 (*(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)));
5408 } else {
5409 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5410 }
5411 }
5412 #line 5413 "src/parser_proc.c" /* glr.c:821 */
5413 break;
5414
5415 case 412:
5416 #line 1033 "src/parser_proc_grammar.y" /* glr.c:821 */
5417 {
5418 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5419 }
5420 #line 5421 "src/parser_proc.c" /* glr.c:821 */
5421 break;
5422
5423 case 414:
5424 #line 1039 "src/parser_proc_grammar.y" /* glr.c:821 */
5425 {
5426 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5427 }
5428 #line 5429 "src/parser_proc.c" /* glr.c:821 */
5429 break;
5430
5431 case 418:
5432 #line 1048 "src/parser_proc_grammar.y" /* glr.c:821 */
5433 {
5434 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5435 }
5436 #line 5437 "src/parser_proc.c" /* glr.c:821 */
5437 break;
5438
5439 case 419:
5440 #line 1051 "src/parser_proc_grammar.y" /* glr.c:821 */
5441 {
5442 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5443 }
5444 #line 5445 "src/parser_proc.c" /* glr.c:821 */
5445 break;
5446
5447 case 420:
5448 #line 1054 "src/parser_proc_grammar.y" /* glr.c:821 */
5449 {
5450 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5451 (*(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)));
5452 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5453 } else {
5454 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(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 421:
5461 #line 1065 "src/parser_proc_grammar.y" /* glr.c:821 */
5462 {
5463 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5464 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5465 (*(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);
5466 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5467 }
5468 }
5469 #line 5470 "src/parser_proc.c" /* glr.c:821 */
5470 break;
5471
5472 case 422:
5473 #line 1072 "src/parser_proc_grammar.y" /* glr.c:821 */
5474 {
5475 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5476 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5477 (*(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);
5478 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5479 }
5480 }
5481 #line 5482 "src/parser_proc.c" /* glr.c:821 */
5482 break;
5483
5484 case 423:
5485 #line 1082 "src/parser_proc_grammar.y" /* glr.c:821 */
5486 {
5487 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5488 }
5489 #line 5490 "src/parser_proc.c" /* glr.c:821 */
5490 break;
5491
5492 case 424:
5493 #line 1085 "src/parser_proc_grammar.y" /* glr.c:821 */
5494 {
5495 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5496 }
5497 #line 5498 "src/parser_proc.c" /* glr.c:821 */
5498 break;
5499
5500 case 425:
5501 #line 1091 "src/parser_proc_grammar.y" /* glr.c:821 */
5502 {
5503 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5504 }
5505 #line 5506 "src/parser_proc.c" /* glr.c:821 */
5506 break;
5507
5508 case 426:
5509 #line 1094 "src/parser_proc_grammar.y" /* glr.c:821 */
5510 {
5511 (*(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)));
5512 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5513 }
5514 #line 5515 "src/parser_proc.c" /* glr.c:821 */
5515 break;
5516
5517 case 427:
5518 #line 1101 "src/parser_proc_grammar.y" /* glr.c:821 */
5519 {
5520 struct psi_plist *list = psi_plist_init((psi_plist_dtor) psi_decl_extvar_free);
5521
5522 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))) {
5523 size_t i = 0;
5524 struct psi_decl_var *var;
5525
5526 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), i++, &var)) {
5527 if (psi_decl_extvar_is_blacklisted(var->name->val)) {
5528 psi_decl_var_free(&var);
5529 } else {
5530 struct psi_decl_extvar *evar = psi_decl_extvar_init(
5531 psi_decl_arg_init(psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type), var));
5532 list = psi_plist_add(list, &evar);
5533 }
5534 }
5535 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5536 }
5537
5538 if (psi_decl_extvar_is_blacklisted((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->var->name->val)) {
5539 psi_decl_arg_free(&(*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5540 } else {
5541 struct psi_decl_extvar *evar = psi_decl_extvar_init((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5542
5543 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5544 evar->redir = zend_string_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
5545 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5546 }
5547 list = psi_plist_add(list, &evar);
5548 }
5549
5550 (*(struct psi_plist **)(&(*yyvalp))) = list;
5551 }
5552 #line 5553 "src/parser_proc.c" /* glr.c:821 */
5553 break;
5554
5555 case 428:
5556 #line 1137 "src/parser_proc_grammar.y" /* glr.c:821 */
5557 {
5558 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5559 }
5560 #line 5561 "src/parser_proc.c" /* glr.c:821 */
5561 break;
5562
5563 case 429:
5564 #line 1140 "src/parser_proc_grammar.y" /* glr.c:821 */
5565 {
5566 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5567 }
5568 #line 5569 "src/parser_proc.c" /* glr.c:821 */
5569 break;
5570
5571 case 430:
5572 #line 1146 "src/parser_proc_grammar.y" /* glr.c:821 */
5573 {
5574 (*(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)));
5575 }
5576 #line 5577 "src/parser_proc.c" /* glr.c:821 */
5577 break;
5578
5579 case 431:
5580 #line 1149 "src/parser_proc_grammar.y" /* glr.c:821 */
5581 {
5582 (*(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)));
5583 }
5584 #line 5585 "src/parser_proc.c" /* glr.c:821 */
5585 break;
5586
5587 case 432:
5588 #line 1155 "src/parser_proc_grammar.y" /* glr.c:821 */
5589 {
5590 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5591 }
5592 #line 5593 "src/parser_proc.c" /* glr.c:821 */
5593 break;
5594
5595 case 445:
5596 #line 1185 "src/parser_proc_grammar.y" /* glr.c:821 */
5597 {
5598 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5599 (*(struct psi_decl **)(&(*yyvalp)))->abi = psi_decl_abi_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
5600 }
5601 #line 5602 "src/parser_proc.c" /* glr.c:821 */
5602 break;
5603
5604 case 448:
5605 #line 1197 "src/parser_proc_grammar.y" /* glr.c:821 */
5606 {
5607 (*(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)));
5608 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5609 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5610 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5611 }
5612 }
5613 #line 5614 "src/parser_proc.c" /* glr.c:821 */
5614 break;
5615
5616 case 449:
5617 #line 1204 "src/parser_proc_grammar.y" /* glr.c:821 */
5618 {
5619 (*(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)));
5620 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
5621 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5622 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5623 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5624 }
5625 }
5626 #line 5627 "src/parser_proc.c" /* glr.c:821 */
5627 break;
5628
5629 case 450:
5630 #line 1215 "src/parser_proc_grammar.y" /* glr.c:821 */
5631 {
5632 (*(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)));
5633 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5634 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5635 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5636 }
5637 }
5638 #line 5639 "src/parser_proc.c" /* glr.c:821 */
5639 break;
5640
5641 case 451:
5642 #line 1222 "src/parser_proc_grammar.y" /* glr.c:821 */
5643 {
5644 (*(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)));
5645 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
5646 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5647 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5648 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5649 }
5650 }
5651 #line 5652 "src/parser_proc.c" /* glr.c:821 */
5652 break;
5653
5654 case 452:
5655 #line 1230 "src/parser_proc_grammar.y" /* glr.c:821 */
5656 {
5657 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval));
5658 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5659
5660 struct psi_token *type_token = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval))), 1, "rval");
5661 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));
5662 struct psi_decl *rval_decl = psi_decl_init(rval_func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5663
5664 rval_func->var->token = psi_token_copy(type_token);
5665 rval_func->token = psi_token_copy(type_token);
5666 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5667 rval_func->var->pointer_level += 1;
5668 rval_func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5669 }
5670
5671 struct psi_decl_type *type = psi_decl_type_init(PSI_T_FUNCTION, type_token->text);
5672 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));
5673
5674 type->real.func = rval_decl;
5675 func->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval)));
5676 func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval)));
5677
5678 (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init(func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
5679 }
5680 #line 5681 "src/parser_proc.c" /* glr.c:821 */
5681 break;
5682
5683 case 453:
5684 #line 1254 "src/parser_proc_grammar.y" /* glr.c:821 */
5685 {
5686 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-12)].yystate.yysemantics.yysval));
5687 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval));
5688 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5689
5690 struct psi_token *type_token = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval))), 1, "rval");
5691 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));
5692 struct psi_decl *rval_decl = psi_decl_init(rval_func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5693
5694 rval_func->var->token = psi_token_copy(type_token);
5695 rval_func->token = psi_token_copy(type_token);
5696 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5697 rval_func->var->pointer_level += 1;
5698 rval_func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5699 }
5700
5701 struct psi_decl_type *type = psi_decl_type_init(PSI_T_FUNCTION, type_token->text);
5702 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));
5703
5704 type->real.func = rval_decl;
5705 func->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval)));
5706 func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval)));
5707 type->token = type_token;
5708
5709 (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init(func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
5710 }
5711 #line 5712 "src/parser_proc.c" /* glr.c:821 */
5712 break;
5713
5714 case 454:
5715 #line 1283 "src/parser_proc_grammar.y" /* glr.c:821 */
5716 {
5717 (*(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)));
5718 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5719 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5720 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5721 }
5722 }
5723 #line 5724 "src/parser_proc.c" /* glr.c:821 */
5724 break;
5725
5726 case 455:
5727 #line 1290 "src/parser_proc_grammar.y" /* glr.c:821 */
5728 {
5729 (*(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)));
5730 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
5731 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5732 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5733 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5734 }
5735 }
5736 #line 5737 "src/parser_proc.c" /* glr.c:821 */
5737 break;
5738
5739 case 456:
5740 #line 1301 "src/parser_proc_grammar.y" /* glr.c:821 */
5741 {
5742 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5743 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5744 (*(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));
5745 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5746 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5747 }
5748 #line 5749 "src/parser_proc.c" /* glr.c:821 */
5749 break;
5750
5751 case 457:
5752 #line 1347 "src/parser_proc_grammar.y" /* glr.c:821 */
5753 {
5754 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5755 (*(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));
5756 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5757 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5758 }
5759 #line 5760 "src/parser_proc.c" /* glr.c:821 */
5760 break;
5761
5762 case 459:
5763 #line 1403 "src/parser_proc_grammar.y" /* glr.c:821 */
5764 {
5765 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5766 }
5767 #line 5768 "src/parser_proc.c" /* glr.c:821 */
5768 break;
5769
5770 case 460:
5771 #line 1406 "src/parser_proc_grammar.y" /* glr.c:821 */
5772 {
5773 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5774 }
5775 #line 5776 "src/parser_proc.c" /* glr.c:821 */
5776 break;
5777
5778 case 461:
5779 #line 1409 "src/parser_proc_grammar.y" /* glr.c:821 */
5780 {
5781 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5782 }
5783 #line 5784 "src/parser_proc.c" /* glr.c:821 */
5784 break;
5785
5786 case 462:
5787 #line 1415 "src/parser_proc_grammar.y" /* glr.c:821 */
5788 {
5789 (*(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)));
5790 }
5791 #line 5792 "src/parser_proc.c" /* glr.c:821 */
5792 break;
5793
5794 case 463:
5795 #line 1418 "src/parser_proc_grammar.y" /* glr.c:821 */
5796 {
5797 (*(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)));
5798 }
5799 #line 5800 "src/parser_proc.c" /* glr.c:821 */
5800 break;
5801
5802 case 464:
5803 #line 1424 "src/parser_proc_grammar.y" /* glr.c:821 */
5804 {
5805 char digest[17];
5806 struct psi_token *name;
5807
5808 psi_token_hash((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token, digest);
5809 name = psi_token_append("@", psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token), 2, "funct", digest);
5810
5811 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5812 psi_decl_type_init(PSI_T_FUNCTION, name->text),
5813 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
5814 );
5815 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = name;
5816 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
5817 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5818 }
5819 #line 5820 "src/parser_proc.c" /* glr.c:821 */
5820 break;
5821
5822 case 465:
5823 #line 1439 "src/parser_proc_grammar.y" /* glr.c:821 */
5824 {
5825 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5826 }
5827 #line 5828 "src/parser_proc.c" /* glr.c:821 */
5828 break;
5829
5830 case 466:
5831 #line 1442 "src/parser_proc_grammar.y" /* glr.c:821 */
5832 {
5833 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5834 (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)),
5835 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)))
5836 );
5837 }
5838 #line 5839 "src/parser_proc.c" /* glr.c:821 */
5839 break;
5840
5841 case 467:
5842 #line 1471 "src/parser_proc_grammar.y" /* glr.c:821 */
5843 {
5844 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5845 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
5846 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
5847 );
5848 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
5849 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5850 }
5851 #line 5852 "src/parser_proc.c" /* glr.c:821 */
5852 break;
5853
5854 case 468:
5855 #line 1479 "src/parser_proc_grammar.y" /* glr.c:821 */
5856 {
5857 (*(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)));
5858 }
5859 #line 5860 "src/parser_proc.c" /* glr.c:821 */
5860 break;
5861
5862 case 469:
5863 #line 1507 "src/parser_proc_grammar.y" /* glr.c:821 */
5864 {
5865 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5866 (*(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)));
5867 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5868 }
5869 #line 5870 "src/parser_proc.c" /* glr.c:821 */
5870 break;
5871
5872 case 470:
5873 #line 1512 "src/parser_proc_grammar.y" /* glr.c:821 */
5874 {
5875 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5876 (*(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)));
5877 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5878 }
5879 #line 5880 "src/parser_proc.c" /* glr.c:821 */
5880 break;
5881
5882 case 471:
5883 #line 1520 "src/parser_proc_grammar.y" /* glr.c:821 */
5884 {
5885 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5886 (*(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)));
5887 (*(struct psi_decl_union **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
5888 (*(struct psi_decl_union **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
5889 (*(struct psi_decl_union **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5890 }
5891 #line 5892 "src/parser_proc.c" /* glr.c:821 */
5892 break;
5893
5894 case 472:
5895 #line 1530 "src/parser_proc_grammar.y" /* glr.c:821 */
5896 {
5897 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5898 (*(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)));
5899 (*(struct psi_decl_struct **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
5900 (*(struct psi_decl_struct **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
5901 (*(struct psi_decl_struct **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5902 }
5903 #line 5904 "src/parser_proc.c" /* glr.c:821 */
5904 break;
5905
5906 case 473:
5907 #line 1540 "src/parser_proc_grammar.y" /* glr.c:821 */
5908 {
5909 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5910 }
5911 #line 5912 "src/parser_proc.c" /* glr.c:821 */
5912 break;
5913
5914 case 475:
5915 #line 1547 "src/parser_proc_grammar.y" /* glr.c:821 */
5916 {
5917 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5918 }
5919 #line 5920 "src/parser_proc.c" /* glr.c:821 */
5920 break;
5921
5922 case 476:
5923 #line 1553 "src/parser_proc_grammar.y" /* glr.c:821 */
5924 {
5925 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5926 (*(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)));
5927 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5928 size_t i = 0;
5929 struct psi_decl_arg *arg;
5930
5931 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
5932 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
5933 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
5934 }
5935 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5936 }
5937 }
5938 #line 5939 "src/parser_proc.c" /* glr.c:821 */
5939 break;
5940
5941 case 477:
5942 #line 1567 "src/parser_proc_grammar.y" /* glr.c:821 */
5943 {
5944 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5945 (*(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)));
5946 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5947 size_t i = 0;
5948 struct psi_decl_arg *arg;
5949
5950 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
5951 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
5952 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
5953 }
5954 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5955 }
5956 }
5957 #line 5958 "src/parser_proc.c" /* glr.c:821 */
5958 break;
5959
5960 case 478:
5961 #line 1584 "src/parser_proc_grammar.y" /* glr.c:821 */
5962 {
5963 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5964 }
5965 #line 5966 "src/parser_proc.c" /* glr.c:821 */
5966 break;
5967
5968 case 479:
5969 #line 1587 "src/parser_proc_grammar.y" /* glr.c:821 */
5970 {
5971 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5972 }
5973 #line 5974 "src/parser_proc.c" /* glr.c:821 */
5974 break;
5975
5976 case 480:
5977 #line 1593 "src/parser_proc_grammar.y" /* glr.c:821 */
5978 {
5979 {
5980 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5981 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5982 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &arg);
5983 }
5984 }
5985 #line 5986 "src/parser_proc.c" /* glr.c:821 */
5986 break;
5987
5988 case 481:
5989 #line 1600 "src/parser_proc_grammar.y" /* glr.c:821 */
5990 {
5991 {
5992 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5993 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5994 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), &arg);
5995 }
5996 }
5997 #line 5998 "src/parser_proc.c" /* glr.c:821 */
5998 break;
5999
6000 case 482:
6001 #line 1607 "src/parser_proc_grammar.y" /* glr.c:821 */
6002 {
6003 {
6004 struct psi_decl_var *var = psi_decl_var_init(NULL, 0, 0);
6005 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, var);
6006 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6007 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &arg);
6008 }
6009 }
6010 #line 6011 "src/parser_proc.c" /* glr.c:821 */
6011 break;
6012
6013 case 483:
6014 #line 1615 "src/parser_proc_grammar.y" /* glr.c:821 */
6015 {
6016 {
6017 struct psi_decl_var *var = psi_decl_var_init(NULL, 0, 0);
6018 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, var);
6019 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6020 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &arg);
6021 }
6022 }
6023 #line 6024 "src/parser_proc.c" /* glr.c:821 */
6024 break;
6025
6026 case 484:
6027 #line 1626 "src/parser_proc_grammar.y" /* glr.c:821 */
6028 {
6029 (*(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)));
6030 (*(struct psi_decl_enum **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval));
6031 }
6032 #line 6033 "src/parser_proc.c" /* glr.c:821 */
6033 break;
6034
6035 case 485:
6036 #line 1633 "src/parser_proc_grammar.y" /* glr.c:821 */
6037 {
6038 (*(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)));
6039 }
6040 #line 6041 "src/parser_proc.c" /* glr.c:821 */
6041 break;
6042
6043 case 486:
6044 #line 1636 "src/parser_proc_grammar.y" /* glr.c:821 */
6045 {
6046 (*(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)));
6047 }
6048 #line 6049 "src/parser_proc.c" /* glr.c:821 */
6049 break;
6050
6051 case 487:
6052 #line 1642 "src/parser_proc_grammar.y" /* glr.c:821 */
6053 {
6054 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
6055 (*(struct psi_decl_enum_item **)(&(*yyvalp))) = psi_decl_enum_item_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, NULL);
6056 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6057 }
6058 #line 6059 "src/parser_proc.c" /* glr.c:821 */
6059 break;
6060
6061 case 488:
6062 #line 1647 "src/parser_proc_grammar.y" /* glr.c:821 */
6063 {
6064 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
6065 (*(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)));
6066 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6067 }
6068 #line 6069 "src/parser_proc.c" /* glr.c:821 */
6069 break;
6070
6071 case 489:
6072 #line 1655 "src/parser_proc_grammar.y" /* glr.c:821 */
6073 {
6074 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6075 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
6076 }
6077 #line 6078 "src/parser_proc.c" /* glr.c:821 */
6078 break;
6079
6080 case 490:
6081 #line 1659 "src/parser_proc_grammar.y" /* glr.c:821 */
6082 {
6083 (*(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)));
6084 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->token);
6085 }
6086 #line 6087 "src/parser_proc.c" /* glr.c:821 */
6087 break;
6088
6089 case 491:
6090 #line 1663 "src/parser_proc_grammar.y" /* glr.c:821 */
6091 {
6092 (*(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)));
6093 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6094 }
6095 #line 6096 "src/parser_proc.c" /* glr.c:821 */
6096 break;
6097
6098 case 492:
6099 #line 1667 "src/parser_proc_grammar.y" /* glr.c:821 */
6100 {
6101 (*(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)));
6102 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6103 }
6104 #line 6105 "src/parser_proc.c" /* glr.c:821 */
6105 break;
6106
6107 case 493:
6108 #line 1671 "src/parser_proc_grammar.y" /* glr.c:821 */
6109 {
6110 (*(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)));
6111 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6112 }
6113 #line 6114 "src/parser_proc.c" /* glr.c:821 */
6114 break;
6115
6116 case 494:
6117 #line 1675 "src/parser_proc_grammar.y" /* glr.c:821 */
6118 {
6119 (*(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)));
6120 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
6121 }
6122 #line 6123 "src/parser_proc.c" /* glr.c:821 */
6123 break;
6124
6125 case 495:
6126 #line 1682 "src/parser_proc_grammar.y" /* glr.c:821 */
6127 {
6128 (*(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);
6129 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6130 }
6131 #line 6132 "src/parser_proc.c" /* glr.c:821 */
6132 break;
6133
6134 case 496:
6135 #line 1686 "src/parser_proc_grammar.y" /* glr.c:821 */
6136 {
6137 (*(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);
6138 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6139 }
6140 #line 6141 "src/parser_proc.c" /* glr.c:821 */
6141 break;
6142
6143 case 497:
6144 #line 1690 "src/parser_proc_grammar.y" /* glr.c:821 */
6145 {
6146 (*(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);
6147 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6148 }
6149 #line 6150 "src/parser_proc.c" /* glr.c:821 */
6150 break;
6151
6152 case 498:
6153 #line 1694 "src/parser_proc_grammar.y" /* glr.c:821 */
6154 {
6155 (*(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);
6156 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6157 }
6158 #line 6159 "src/parser_proc.c" /* glr.c:821 */
6159 break;
6160
6161 case 499:
6162 #line 1698 "src/parser_proc_grammar.y" /* glr.c:821 */
6163 {
6164 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_NAME, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0);
6165 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
6166 }
6167 #line 6168 "src/parser_proc.c" /* glr.c:821 */
6168 break;
6169
6170 case 500:
6171 #line 1702 "src/parser_proc_grammar.y" /* glr.c:821 */
6172 {
6173 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6174 }
6175 #line 6176 "src/parser_proc.c" /* glr.c:821 */
6176 break;
6177
6178 case 501:
6179 #line 1708 "src/parser_proc_grammar.y" /* glr.c:821 */
6180 {
6181 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
6182 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
6183 }
6184 #line 6185 "src/parser_proc.c" /* glr.c:821 */
6185 break;
6186
6187 case 502:
6188 #line 1712 "src/parser_proc_grammar.y" /* glr.c:821 */
6189 {
6190 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6191 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6192 }
6193 #line 6194 "src/parser_proc.c" /* glr.c:821 */
6194 break;
6195
6196 case 503:
6197 #line 1719 "src/parser_proc_grammar.y" /* glr.c:821 */
6198 {
6199 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6200 }
6201 #line 6202 "src/parser_proc.c" /* glr.c:821 */
6202 break;
6203
6204 case 504:
6205 #line 1722 "src/parser_proc_grammar.y" /* glr.c:821 */
6206 {
6207 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
6208 int8_t sizeof_void_p = sizeof(void *);
6209 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0);
6210 psi_decl_type_free(&(*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6211 } else {
6212 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_SIZEOF, (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), 0);
6213 }
6214 }
6215 #line 6216 "src/parser_proc.c" /* glr.c:821 */
6216 break;
6217
6218 case 505:
6219 #line 1734 "src/parser_proc_grammar.y" /* glr.c:821 */
6220 {
6221 int8_t sizeof_void_p = sizeof(void *);
6222 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0);
6223 }
6224 #line 6225 "src/parser_proc.c" /* glr.c:821 */
6225 break;
6226
6227 case 506:
6228 #line 1738 "src/parser_proc_grammar.y" /* glr.c:821 */
6229 {
6230 int8_t sizeof_a = sizeof('a');
6231 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_a, 0);
6232 }
6233 #line 6234 "src/parser_proc.c" /* glr.c:821 */
6234 break;
6235
6236 case 507:
6237 #line 1742 "src/parser_proc_grammar.y" /* glr.c:821 */
6238 {
6239 uint64_t len = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text->len + 1;
6240 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_UINT64, &len, 0);
6241 }
6242 #line 6243 "src/parser_proc.c" /* glr.c:821 */
6243 break;
6244
6245 case 508:
6246 #line 1749 "src/parser_proc_grammar.y" /* glr.c:821 */
6247 {
6248 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
6249 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6250 } else {
6251 char digest[17];
6252
6253 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
6254 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
6255 }
6256 }
6257 #line 6258 "src/parser_proc.c" /* glr.c:821 */
6258 break;
6259
6260 case 509:
6261 #line 1762 "src/parser_proc_grammar.y" /* glr.c:821 */
6262 {
6263 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
6264 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6265 } else {
6266 char digest[17];
6267
6268 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
6269 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
6270 }
6271 }
6272 #line 6273 "src/parser_proc.c" /* glr.c:821 */
6273 break;
6274
6275 case 510:
6276 #line 1775 "src/parser_proc_grammar.y" /* glr.c:821 */
6277 {
6278 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
6279 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6280 } else {
6281 char digest[17];
6282
6283 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
6284 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
6285 }
6286 }
6287 #line 6288 "src/parser_proc.c" /* glr.c:821 */
6288 break;
6289
6290 case 511:
6291 #line 1788 "src/parser_proc_grammar.y" /* glr.c:821 */
6292 {
6293 (*(struct psi_token **)(&(*yyvalp))) = NULL;
6294 }
6295 #line 6296 "src/parser_proc.c" /* glr.c:821 */
6296 break;
6297
6298 case 512:
6299 #line 1791 "src/parser_proc_grammar.y" /* glr.c:821 */
6300 {
6301 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6302 (*(struct psi_token **)(&(*yyvalp)))->type = PSI_T_NAME;
6303 }
6304 #line 6305 "src/parser_proc.c" /* glr.c:821 */
6305 break;
6306
6307 case 515:
6308 #line 1803 "src/parser_proc_grammar.y" /* glr.c:821 */
6309 {
6310 (*(struct psi_layout **)(&(*yyvalp))) = NULL;
6311 }
6312 #line 6313 "src/parser_proc.c" /* glr.c:821 */
6313 break;
6314
6315 case 516:
6316 #line 1806 "src/parser_proc_grammar.y" /* glr.c:821 */
6317 {
6318 (*(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));
6319 }
6320 #line 6321 "src/parser_proc.c" /* glr.c:821 */
6321 break;
6322
6323 case 517:
6324 #line 1809 "src/parser_proc_grammar.y" /* glr.c:821 */
6325 {
6326 (*(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);
6327 }
6328 #line 6329 "src/parser_proc.c" /* glr.c:821 */
6329 break;
6330
6331 case 518:
6332 #line 1812 "src/parser_proc_grammar.y" /* glr.c:821 */
6333 {
6334 (*(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));
6335 }
6336 #line 6337 "src/parser_proc.c" /* glr.c:821 */
6337 break;
6338
6339 case 519:
6340 #line 1818 "src/parser_proc_grammar.y" /* glr.c:821 */
6341 {
6342 (*(struct psi_layout*)(&(*yyvalp))).pos = 0;
6343 (*(struct psi_layout*)(&(*yyvalp))).len = 0;
6344 }
6345 #line 6346 "src/parser_proc.c" /* glr.c:821 */
6346 break;
6347
6348 case 520:
6349 #line 1822 "src/parser_proc_grammar.y" /* glr.c:821 */
6350 {
6351 (*(struct psi_layout*)(&(*yyvalp))).pos = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text->val);
6352 (*(struct psi_layout*)(&(*yyvalp))).len = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text->val);
6353 }
6354 #line 6355 "src/parser_proc.c" /* glr.c:821 */
6355 break;
6356
6357 case 521:
6358 #line 1829 "src/parser_proc_grammar.y" /* glr.c:821 */
6359 {
6360 (*(size_t*)(&(*yyvalp))) = 0;
6361 }
6362 #line 6363 "src/parser_proc.c" /* glr.c:821 */
6363 break;
6364
6365 case 522:
6366 #line 1832 "src/parser_proc_grammar.y" /* glr.c:821 */
6367 {
6368 (*(size_t*)(&(*yyvalp))) = 0;
6369 }
6370 #line 6371 "src/parser_proc.c" /* glr.c:821 */
6371 break;
6372
6373 case 523:
6374 #line 1835 "src/parser_proc_grammar.y" /* glr.c:821 */
6375 {
6376 struct psi_validate_scope scope = {0};
6377 psi_validate_scope_ctor(&scope);
6378 scope.cpp = P->preproc;
6379 if (psi_num_exp_validate(PSI_DATA(P), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), &scope)) {
6380 (*(size_t*)(&(*yyvalp))) = psi_num_exp_get_long((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), NULL, P->preproc);
6381 } else {
6382 (*(size_t*)(&(*yyvalp))) = 0;
6383 }
6384 psi_num_exp_free(&(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6385 psi_validate_scope_dtor(&scope);
6386 }
6387 #line 6388 "src/parser_proc.c" /* glr.c:821 */
6388 break;
6389
6390 case 528:
6391 #line 1857 "src/parser_proc_grammar.y" /* glr.c:821 */
6392 {
6393 (*(size_t*)(&(*yyvalp))) = 0;
6394 }
6395 #line 6396 "src/parser_proc.c" /* glr.c:821 */
6396 break;
6397
6398 case 529:
6399 #line 1860 "src/parser_proc_grammar.y" /* glr.c:821 */
6400 {
6401 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6402 }
6403 #line 6404 "src/parser_proc.c" /* glr.c:821 */
6404 break;
6405
6406 case 531:
6407 #line 1867 "src/parser_proc_grammar.y" /* glr.c:821 */
6408 {
6409 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
6410 }
6411 #line 6412 "src/parser_proc.c" /* glr.c:821 */
6412 break;
6413
6414 case 532:
6415 #line 1873 "src/parser_proc_grammar.y" /* glr.c:821 */
6416 {
6417 (*(size_t*)(&(*yyvalp))) = 1;
6418 }
6419 #line 6420 "src/parser_proc.c" /* glr.c:821 */
6420 break;
6421
6422 case 533:
6423 #line 1876 "src/parser_proc_grammar.y" /* glr.c:821 */
6424 {
6425 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)) + 1;
6426 }
6427 #line 6428 "src/parser_proc.c" /* glr.c:821 */
6428 break;
6429
6430 case 538:
6431 #line 1898 "src/parser_proc_grammar.y" /* glr.c:821 */
6432 {
6433 (*(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)));
6434 }
6435 #line 6436 "src/parser_proc.c" /* glr.c:821 */
6436 break;
6437
6438 case 539:
6439 #line 1901 "src/parser_proc_grammar.y" /* glr.c:821 */
6440 {
6441 (*(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)));
6442 (*(struct psi_impl_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->static_memory = 1;
6443 }
6444 #line 6445 "src/parser_proc.c" /* glr.c:821 */
6445 break;
6446
6447 case 540:
6448 #line 1908 "src/parser_proc_grammar.y" /* glr.c:821 */
6449 {
6450 (*(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)));
6451 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
6452 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval));
6453 }
6454 #line 6455 "src/parser_proc.c" /* glr.c:821 */
6455 break;
6456
6457 case 541:
6458 #line 1913 "src/parser_proc_grammar.y" /* glr.c:821 */
6459 {
6460 (*(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)));
6461 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6462 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval));
6463 }
6464 #line 6465 "src/parser_proc.c" /* glr.c:821 */
6465 break;
6466
6467 case 542:
6468 #line 1918 "src/parser_proc_grammar.y" /* glr.c:821 */
6469 {
6470 (*(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)));
6471 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval)));
6472 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-11)].yystate.yysemantics.yysval));
6473 (*(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);
6474 (*(struct psi_impl_func **)(&(*yyvalp)))->vararg->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
6475 }
6476 #line 6477 "src/parser_proc.c" /* glr.c:821 */
6477 break;
6478
6479 case 543:
6480 #line 1928 "src/parser_proc_grammar.y" /* glr.c:821 */
6481 {
6482 (*(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)));
6483 }
6484 #line 6485 "src/parser_proc.c" /* glr.c:821 */
6485 break;
6486
6487 case 544:
6488 #line 1931 "src/parser_proc_grammar.y" /* glr.c:821 */
6489 {
6490 (*(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)));
6491 }
6492 #line 6493 "src/parser_proc.c" /* glr.c:821 */
6493 break;
6494
6495 case 545:
6496 #line 1937 "src/parser_proc_grammar.y" /* glr.c:821 */
6497 {
6498 (*(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);
6499 }
6500 #line 6501 "src/parser_proc.c" /* glr.c:821 */
6501 break;
6502
6503 case 546:
6504 #line 1940 "src/parser_proc_grammar.y" /* glr.c:821 */
6505 {
6506 (*(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)));
6507 }
6508 #line 6509 "src/parser_proc.c" /* glr.c:821 */
6509 break;
6510
6511 case 547:
6512 #line 1946 "src/parser_proc_grammar.y" /* glr.c:821 */
6513 {
6514 (*(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)));
6515 (*(struct psi_impl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6516 }
6517 #line 6518 "src/parser_proc.c" /* glr.c:821 */
6518 break;
6519
6520 case 548:
6521 #line 1953 "src/parser_proc_grammar.y" /* glr.c:821 */
6522 {
6523 (*(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);
6524 (*(struct psi_impl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6525 }
6526 #line 6527 "src/parser_proc.c" /* glr.c:821 */
6527 break;
6528
6529 case 549:
6530 #line 1960 "src/parser_proc_grammar.y" /* glr.c:821 */
6531 {
6532 (*(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);
6533 (*(struct psi_impl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6534 }
6535 #line 6536 "src/parser_proc.c" /* glr.c:821 */
6536 break;
6537
6538 case 561:
6539 #line 1987 "src/parser_proc_grammar.y" /* glr.c:821 */
6540 {
6541 (*(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)));
6542 }
6543 #line 6544 "src/parser_proc.c" /* glr.c:821 */
6544 break;
6545
6546 case 562:
6547 #line 1990 "src/parser_proc_grammar.y" /* glr.c:821 */
6548 {
6549 (*(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)));
6550 }
6551 #line 6552 "src/parser_proc.c" /* glr.c:821 */
6552 break;
6553
6554 case 563:
6555 #line 1996 "src/parser_proc_grammar.y" /* glr.c:821 */
6556 {
6557 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_return_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 564:
6563 #line 1999 "src/parser_proc_grammar.y" /* glr.c:821 */
6564 {
6565 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_let_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 565:
6571 #line 2002 "src/parser_proc_grammar.y" /* glr.c:821 */
6572 {
6573 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_set_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6574 }
6575 #line 6576 "src/parser_proc.c" /* glr.c:821 */
6576 break;
6577
6578 case 566:
6579 #line 2005 "src/parser_proc_grammar.y" /* glr.c:821 */
6580 {
6581 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_assert_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6582 }
6583 #line 6584 "src/parser_proc.c" /* glr.c:821 */
6584 break;
6585
6586 case 567:
6587 #line 2008 "src/parser_proc_grammar.y" /* glr.c:821 */
6588 {
6589 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_free_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6590 }
6591 #line 6592 "src/parser_proc.c" /* glr.c:821 */
6592 break;
6593
6594 case 568:
6595 #line 2014 "src/parser_proc_grammar.y" /* glr.c:821 */
6596 {
6597 (*(struct psi_let_stmt **)(&(*yyvalp))) = psi_let_stmt_init((*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6598 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6599 }
6600 #line 6601 "src/parser_proc.c" /* glr.c:821 */
6601 break;
6602
6603 case 569:
6604 #line 2018 "src/parser_proc_grammar.y" /* glr.c:821 */
6605 {
6606 (*(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))));
6607 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6608 (*(struct psi_let_stmt **)(&(*yyvalp)))->exp->is_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
6609 }
6610 #line 6611 "src/parser_proc.c" /* glr.c:821 */
6611 break;
6612
6613 case 571:
6614 #line 2027 "src/parser_proc_grammar.y" /* glr.c:821 */
6615 {
6616 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6617 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = true;
6618 }
6619 #line 6620 "src/parser_proc.c" /* glr.c:821 */
6620 break;
6621
6622 case 572:
6623 #line 2031 "src/parser_proc_grammar.y" /* glr.c:821 */
6624 {
6625 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6626 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = false;
6627 }
6628 #line 6629 "src/parser_proc.c" /* glr.c:821 */
6629 break;
6630
6631 case 573:
6632 #line 2038 "src/parser_proc_grammar.y" /* glr.c:821 */
6633 {
6634 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_NULL, NULL);
6635 }
6636 #line 6637 "src/parser_proc.c" /* glr.c:821 */
6637 break;
6638
6639 case 574:
6640 #line 2041 "src/parser_proc_grammar.y" /* glr.c:821 */
6641 {
6642 (*(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)));
6643 }
6644 #line 6645 "src/parser_proc.c" /* glr.c:821 */
6645 break;
6646
6647 case 575:
6648 #line 2044 "src/parser_proc_grammar.y" /* glr.c:821 */
6649 {
6650 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6651 }
6652 #line 6653 "src/parser_proc.c" /* glr.c:821 */
6653 break;
6654
6655 case 576:
6656 #line 2047 "src/parser_proc_grammar.y" /* glr.c:821 */
6657 {
6658 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6659 (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->static_memory = 1;
6660 }
6661 #line 6662 "src/parser_proc.c" /* glr.c:821 */
6662 break;
6663
6664 case 577:
6665 #line 2051 "src/parser_proc_grammar.y" /* glr.c:821 */
6666 {
6667 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLBACK, (*(struct psi_let_callback **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6668 }
6669 #line 6670 "src/parser_proc.c" /* glr.c:821 */
6670 break;
6671
6672 case 578:
6673 #line 2054 "src/parser_proc_grammar.y" /* glr.c:821 */
6674 {
6675 (*(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)));
6676 }
6677 #line 6678 "src/parser_proc.c" /* glr.c:821 */
6678 break;
6679
6680 case 579:
6681 #line 2060 "src/parser_proc_grammar.y" /* glr.c:821 */
6682 {
6683 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6684 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
6685 }
6686 #line 6687 "src/parser_proc.c" /* glr.c:821 */
6687 break;
6688
6689 case 580:
6690 #line 2064 "src/parser_proc_grammar.y" /* glr.c:821 */
6691 {
6692 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6693 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = 1;
6694 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
6695 }
6696 #line 6697 "src/parser_proc.c" /* glr.c:821 */
6697 break;
6698
6699 case 581:
6700 #line 2072 "src/parser_proc_grammar.y" /* glr.c:821 */
6701 {
6702 (*(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)));
6703 (*(struct psi_let_calloc **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6704 }
6705 #line 6706 "src/parser_proc.c" /* glr.c:821 */
6706 break;
6707
6708 case 582:
6709 #line 2079 "src/parser_proc_grammar.y" /* glr.c:821 */
6710 {
6711 (*(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);
6712 (*(struct psi_let_callback **)(&(*yyvalp)))->func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
6713 (*(struct psi_let_callback **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval)));
6714 }
6715 #line 6716 "src/parser_proc.c" /* glr.c:821 */
6716 break;
6717
6718 case 583:
6719 #line 2084 "src/parser_proc_grammar.y" /* glr.c:821 */
6720 {
6721 (*(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)));
6722 (*(struct psi_let_callback **)(&(*yyvalp)))->func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
6723 (*(struct psi_let_callback **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-11)].yystate.yysemantics.yysval)));
6724 }
6725 #line 6726 "src/parser_proc.c" /* glr.c:821 */
6726 break;
6727
6728 case 584:
6729 #line 2092 "src/parser_proc_grammar.y" /* glr.c:821 */
6730 {
6731 (*(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)));
6732 (*(struct psi_let_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
6733 (*(struct psi_let_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
6734 }
6735 #line 6736 "src/parser_proc.c" /* glr.c:821 */
6736 break;
6737
6738 case 595:
6739 #line 2113 "src/parser_proc_grammar.y" /* glr.c:821 */
6740 {
6741 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6742 }
6743 #line 6744 "src/parser_proc.c" /* glr.c:821 */
6744 break;
6745
6746 case 596:
6747 #line 2116 "src/parser_proc_grammar.y" /* glr.c:821 */
6748 {
6749 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6750 }
6751 #line 6752 "src/parser_proc.c" /* glr.c:821 */
6752 break;
6753
6754 case 597:
6755 #line 2122 "src/parser_proc_grammar.y" /* glr.c:821 */
6756 {
6757 (*(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)));
6758 }
6759 #line 6760 "src/parser_proc.c" /* glr.c:821 */
6760 break;
6761
6762 case 598:
6763 #line 2125 "src/parser_proc_grammar.y" /* glr.c:821 */
6764 {
6765 (*(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)));
6766 }
6767 #line 6768 "src/parser_proc.c" /* glr.c:821 */
6768 break;
6769
6770 case 601:
6771 #line 2136 "src/parser_proc_grammar.y" /* glr.c:821 */
6772 {
6773 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6774 }
6775 #line 6776 "src/parser_proc.c" /* glr.c:821 */
6776 break;
6777
6778 case 602:
6779 #line 2139 "src/parser_proc_grammar.y" /* glr.c:821 */
6780 {
6781 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6782 }
6783 #line 6784 "src/parser_proc.c" /* glr.c:821 */
6784 break;
6785
6786 case 603:
6787 #line 2145 "src/parser_proc_grammar.y" /* glr.c:821 */
6788 {
6789 (*(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)));
6790 }
6791 #line 6792 "src/parser_proc.c" /* glr.c:821 */
6792 break;
6793
6794 case 604:
6795 #line 2148 "src/parser_proc_grammar.y" /* glr.c:821 */
6796 {
6797 (*(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)));
6798 }
6799 #line 6800 "src/parser_proc.c" /* glr.c:821 */
6800 break;
6801
6802 case 605:
6803 #line 2154 "src/parser_proc_grammar.y" /* glr.c:821 */
6804 {
6805 (*(struct psi_return_stmt **)(&(*yyvalp))) = psi_return_stmt_init((*(struct psi_return_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6806 (*(struct psi_return_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6807 }
6808 #line 6809 "src/parser_proc.c" /* glr.c:821 */
6809 break;
6810
6811 case 606:
6812 #line 2161 "src/parser_proc_grammar.y" /* glr.c:821 */
6813 {
6814 (*(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))));
6815 (*(struct psi_return_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->token);
6816 }
6817 #line 6818 "src/parser_proc.c" /* glr.c:821 */
6818 break;
6819
6820 case 607:
6821 #line 2165 "src/parser_proc_grammar.y" /* glr.c:821 */
6822 {
6823 (*(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))));
6824 (*(struct psi_return_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
6825 }
6826 #line 6827 "src/parser_proc.c" /* glr.c:821 */
6827 break;
6828
6829 case 608:
6830 #line 2172 "src/parser_proc_grammar.y" /* glr.c:821 */
6831 {
6832 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6833 }
6834 #line 6835 "src/parser_proc.c" /* glr.c:821 */
6835 break;
6836
6837 case 609:
6838 #line 2175 "src/parser_proc_grammar.y" /* glr.c:821 */
6839 {
6840 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6841 }
6842 #line 6843 "src/parser_proc.c" /* glr.c:821 */
6843 break;
6844
6845 case 610:
6846 #line 2178 "src/parser_proc_grammar.y" /* glr.c:821 */
6847 {
6848 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6849 }
6850 #line 6851 "src/parser_proc.c" /* glr.c:821 */
6851 break;
6852
6853 case 611:
6854 #line 2184 "src/parser_proc_grammar.y" /* glr.c:821 */
6855 {
6856 (*(struct psi_set_stmt **)(&(*yyvalp))) = psi_set_stmt_init((*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6857 (*(struct psi_set_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6858 }
6859 #line 6860 "src/parser_proc.c" /* glr.c:821 */
6860 break;
6861
6862 case 612:
6863 #line 2191 "src/parser_proc_grammar.y" /* glr.c:821 */
6864 {
6865 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_FUNC, (*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6866 }
6867 #line 6868 "src/parser_proc.c" /* glr.c:821 */
6868 break;
6869
6870 case 613:
6871 #line 2194 "src/parser_proc_grammar.y" /* glr.c:821 */
6872 {
6873 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_NUMEXP, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6874 }
6875 #line 6876 "src/parser_proc.c" /* glr.c:821 */
6876 break;
6877
6878 case 614:
6879 #line 2197 "src/parser_proc_grammar.y" /* glr.c:821 */
6880 {
6881 (*(struct psi_set_exp **)(&(*yyvalp))) = (*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6882 (*(struct psi_set_exp **)(&(*yyvalp)))->var = (*(struct psi_impl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
6883 }
6884 #line 6885 "src/parser_proc.c" /* glr.c:821 */
6885 break;
6886
6887 case 615:
6888 #line 2204 "src/parser_proc_grammar.y" /* glr.c:821 */
6889 {
6890 (*(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)));
6891 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
6892 (*(struct psi_set_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
6893 }
6894 #line 6895 "src/parser_proc.c" /* glr.c:821 */
6895 break;
6896
6897 case 616:
6898 #line 2209 "src/parser_proc_grammar.y" /* glr.c:821 */
6899 {
6900 (*(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)));
6901 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6902 (*(struct psi_set_func **)(&(*yyvalp)))->recursive = 1;
6903 }
6904 #line 6905 "src/parser_proc.c" /* glr.c:821 */
6905 break;
6906
6907 case 625:
6908 #line 2228 "src/parser_proc_grammar.y" /* glr.c:821 */
6909 {
6910 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6911 }
6912 #line 6913 "src/parser_proc.c" /* glr.c:821 */
6913 break;
6914
6915 case 626:
6916 #line 2231 "src/parser_proc_grammar.y" /* glr.c:821 */
6917 {
6918 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6919 }
6920 #line 6921 "src/parser_proc.c" /* glr.c:821 */
6921 break;
6922
6923 case 627:
6924 #line 2237 "src/parser_proc_grammar.y" /* glr.c:821 */
6925 {
6926 (*(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)));
6927 }
6928 #line 6929 "src/parser_proc.c" /* glr.c:821 */
6929 break;
6930
6931 case 628:
6932 #line 2240 "src/parser_proc_grammar.y" /* glr.c:821 */
6933 {
6934 (*(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)));
6935 }
6936 #line 6937 "src/parser_proc.c" /* glr.c:821 */
6937 break;
6938
6939 case 629:
6940 #line 2246 "src/parser_proc_grammar.y" /* glr.c:821 */
6941 {
6942 (*(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)));
6943 (*(struct psi_assert_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6944 }
6945 #line 6946 "src/parser_proc.c" /* glr.c:821 */
6946 break;
6947
6948 case 632:
6949 #line 2258 "src/parser_proc_grammar.y" /* glr.c:821 */
6950 {
6951 (*(struct psi_free_stmt **)(&(*yyvalp))) = psi_free_stmt_init((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6952 (*(struct psi_free_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6953 }
6954 #line 6955 "src/parser_proc.c" /* glr.c:821 */
6955 break;
6956
6957 case 633:
6958 #line 2265 "src/parser_proc_grammar.y" /* glr.c:821 */
6959 {
6960 (*(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)));
6961 }
6962 #line 6963 "src/parser_proc.c" /* glr.c:821 */
6963 break;
6964
6965 case 634:
6966 #line 2268 "src/parser_proc_grammar.y" /* glr.c:821 */
6967 {
6968 (*(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)));
6969 }
6970 #line 6971 "src/parser_proc.c" /* glr.c:821 */
6971 break;
6972
6973 case 635:
6974 #line 2274 "src/parser_proc_grammar.y" /* glr.c:821 */
6975 {
6976 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
6977 (*(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)));
6978 (*(struct psi_free_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
6979 }
6980 #line 6981 "src/parser_proc.c" /* glr.c:821 */
6981 break;
6982
6983 case 636:
6984 #line 2282 "src/parser_proc_grammar.y" /* glr.c:821 */
6985 {
6986 (*(bool*)(&(*yyvalp))) = false;
6987 }
6988 #line 6989 "src/parser_proc.c" /* glr.c:821 */
6989 break;
6990
6991 case 637:
6992 #line 2285 "src/parser_proc_grammar.y" /* glr.c:821 */
6993 {
6994 (*(bool*)(&(*yyvalp))) = true;
6995 }
6996 #line 6997 "src/parser_proc.c" /* glr.c:821 */
6997 break;
6998
6999
7000 #line 7001 "src/parser_proc.c" /* glr.c:821 */
7001 default: break;
7002 }
7003
7004 return yyok;
7005 # undef yyerrok
7006 # undef YYABORT
7007 # undef YYACCEPT
7008 # undef YYERROR
7009 # undef YYBACKUP
7010 # undef yyclearin
7011 # undef YYRECOVERING
7012 }
7013
7014
7015 static void
7016 yyuserMerge (int yyn, YYSTYPE* yy0, YYSTYPE* yy1)
7017 {
7018 YYUSE (yy0);
7019 YYUSE (yy1);
7020
7021 switch (yyn)
7022 {
7023
7024 default: break;
7025 }
7026 }
7027
7028 /* Bison grammar-table manipulation. */
7029
7030 /*-----------------------------------------------.
7031 | Release the memory associated to this symbol. |
7032 `-----------------------------------------------*/
7033
7034 static void
7035 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7036 {
7037 YYUSE (yyvaluep);
7038 YYUSE (P);
7039 YYUSE (tokens);
7040 YYUSE (index);
7041 if (!yymsg)
7042 yymsg = "Deleting";
7043 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
7044
7045 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
7046 switch (yytype)
7047 {
7048 case 141: /* binary_op_token */
7049 #line 298 "src/parser_proc_grammar.y" /* glr.c:851 */
7050 {}
7051 #line 7052 "src/parser_proc.c" /* glr.c:851 */
7052 break;
7053
7054 case 142: /* unary_op_token */
7055 #line 298 "src/parser_proc_grammar.y" /* glr.c:851 */
7056 {}
7057 #line 7058 "src/parser_proc.c" /* glr.c:851 */
7058 break;
7059
7060 case 143: /* name_token */
7061 #line 298 "src/parser_proc_grammar.y" /* glr.c:851 */
7062 {}
7063 #line 7064 "src/parser_proc.c" /* glr.c:851 */
7064 break;
7065
7066 case 144: /* any_noeol_token */
7067 #line 298 "src/parser_proc_grammar.y" /* glr.c:851 */
7068 {}
7069 #line 7070 "src/parser_proc.c" /* glr.c:851 */
7070 break;
7071
7072 case 149: /* lib */
7073 #line 292 "src/parser_proc_grammar.y" /* glr.c:851 */
7074 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7075 #line 7076 "src/parser_proc.c" /* glr.c:851 */
7076 break;
7077
7078 case 150: /* cpp */
7079 #line 307 "src/parser_proc_grammar.y" /* glr.c:851 */
7080 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
7081 #line 7082 "src/parser_proc.c" /* glr.c:851 */
7082 break;
7083
7084 case 151: /* cpp_exp */
7085 #line 307 "src/parser_proc_grammar.y" /* glr.c:851 */
7086 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
7087 #line 7088 "src/parser_proc.c" /* glr.c:851 */
7088 break;
7089
7090 case 153: /* cpp_message_token */
7091 #line 295 "src/parser_proc_grammar.y" /* glr.c:851 */
7092 {}
7093 #line 7094 "src/parser_proc.c" /* glr.c:851 */
7094 break;
7095
7096 case 154: /* cpp_include_token */
7097 #line 295 "src/parser_proc_grammar.y" /* glr.c:851 */
7098 {}
7099 #line 7100 "src/parser_proc.c" /* glr.c:851 */
7100 break;
7101
7102 case 155: /* cpp_header_token */
7103 #line 295 "src/parser_proc_grammar.y" /* glr.c:851 */
7104 {}
7105 #line 7106 "src/parser_proc.c" /* glr.c:851 */
7106 break;
7107
7108 case 156: /* cpp_no_arg_token */
7109 #line 295 "src/parser_proc_grammar.y" /* glr.c:851 */
7110 {}
7111 #line 7112 "src/parser_proc.c" /* glr.c:851 */
7112 break;
7113
7114 case 157: /* cpp_name_arg_token */
7115 #line 295 "src/parser_proc_grammar.y" /* glr.c:851 */
7116 {}
7117 #line 7118 "src/parser_proc.c" /* glr.c:851 */
7118 break;
7119
7120 case 158: /* cpp_exp_arg_token */
7121 #line 295 "src/parser_proc_grammar.y" /* glr.c:851 */
7122 {}
7123 #line 7124 "src/parser_proc.c" /* glr.c:851 */
7124 break;
7125
7126 case 159: /* cpp_macro_decl */
7127 #line 309 "src/parser_proc_grammar.y" /* glr.c:851 */
7128 {psi_cpp_macro_decl_free(&(*(struct psi_cpp_macro_decl **)(&(*yyvaluep))));}
7129 #line 7130 "src/parser_proc.c" /* glr.c:851 */
7130 break;
7131
7132 case 160: /* cpp_macro_sig */
7133 #line 311 "src/parser_proc_grammar.y" /* glr.c:851 */
7134 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7135 #line 7136 "src/parser_proc.c" /* glr.c:851 */
7136 break;
7137
7138 case 161: /* cpp_macro_sig_args */
7139 #line 311 "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 162: /* cpp_macro_decl_tokens */
7145 #line 311 "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 163: /* cpp_macro_decl_token_list */
7151 #line 311 "src/parser_proc_grammar.y" /* glr.c:851 */
7152 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7153 #line 7154 "src/parser_proc.c" /* glr.c:851 */
7154 break;
7155
7156 case 164: /* cpp_macro_exp */
7157 #line 313 "src/parser_proc_grammar.y" /* glr.c:851 */
7158 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
7159 #line 7160 "src/parser_proc.c" /* glr.c:851 */
7160 break;
7161
7162 case 165: /* cpp_macro_call_args */
7163 #line 311 "src/parser_proc_grammar.y" /* glr.c:851 */
7164 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7165 #line 7166 "src/parser_proc.c" /* glr.c:851 */
7166 break;
7167
7168 case 166: /* cpp_macro_call_arg_list */
7169 #line 311 "src/parser_proc_grammar.y" /* glr.c:851 */
7170 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7171 #line 7172 "src/parser_proc.c" /* glr.c:851 */
7172 break;
7173
7174 case 167: /* constant */
7175 #line 319 "src/parser_proc_grammar.y" /* glr.c:851 */
7176 {psi_const_free(&(*(struct psi_const **)(&(*yyvaluep))));}
7177 #line 7178 "src/parser_proc.c" /* glr.c:851 */
7178 break;
7179
7180 case 168: /* impl_def_val */
7181 #line 321 "src/parser_proc_grammar.y" /* glr.c:851 */
7182 {psi_impl_def_val_free(&(*(struct psi_impl_def_val **)(&(*yyvaluep))));}
7183 #line 7184 "src/parser_proc.c" /* glr.c:851 */
7184 break;
7185
7186 case 169: /* impl_def_val_token */
7187 #line 316 "src/parser_proc_grammar.y" /* glr.c:851 */
7188 {}
7189 #line 7190 "src/parser_proc.c" /* glr.c:851 */
7190 break;
7191
7192 case 170: /* decl_typedef */
7193 #line 334 "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 171: /* typedef */
7199 #line 334 "src/parser_proc_grammar.y" /* glr.c:851 */
7200 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7201 #line 7202 "src/parser_proc.c" /* glr.c:851 */
7202 break;
7203
7204 case 172: /* typedef_anon */
7205 #line 334 "src/parser_proc_grammar.y" /* glr.c:851 */
7206 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7207 #line 7208 "src/parser_proc.c" /* glr.c:851 */
7208 break;
7209
7210 case 173: /* typedef_decl */
7211 #line 334 "src/parser_proc_grammar.y" /* glr.c:851 */
7212 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7213 #line 7214 "src/parser_proc.c" /* glr.c:851 */
7214 break;
7215
7216 case 174: /* typedef_anon_decl */
7217 #line 334 "src/parser_proc_grammar.y" /* glr.c:851 */
7218 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7219 #line 7220 "src/parser_proc.c" /* glr.c:851 */
7220 break;
7221
7222 case 175: /* qualified_decl_type */
7223 #line 330 "src/parser_proc_grammar.y" /* glr.c:851 */
7224 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
7225 #line 7226 "src/parser_proc.c" /* glr.c:851 */
7226 break;
7227
7228 case 177: /* decl_type */
7229 #line 330 "src/parser_proc_grammar.y" /* glr.c:851 */
7230 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
7231 #line 7232 "src/parser_proc.c" /* glr.c:851 */
7232 break;
7233
7234 case 178: /* decl_type_complex */
7235 #line 330 "src/parser_proc_grammar.y" /* glr.c:851 */
7236 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
7237 #line 7238 "src/parser_proc.c" /* glr.c:851 */
7238 break;
7239
7240 case 179: /* decl_type_simple */
7241 #line 324 "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 180: /* decl_real_type */
7247 #line 324 "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 181: /* int_signed */
7253 #line 304 "src/parser_proc_grammar.y" /* glr.c:851 */
7254 {}
7255 #line 7256 "src/parser_proc.c" /* glr.c:851 */
7256 break;
7257
7258 case 182: /* int_width */
7259 #line 301 "src/parser_proc_grammar.y" /* glr.c:851 */
7260 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7261 #line 7262 "src/parser_proc.c" /* glr.c:851 */
7262 break;
7263
7264 case 183: /* decl_int_type */
7265 #line 324 "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 184: /* int_signed_types */
7271 #line 301 "src/parser_proc_grammar.y" /* glr.c:851 */
7272 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7273 #line 7274 "src/parser_proc.c" /* glr.c:851 */
7274 break;
7275
7276 case 185: /* signed_short_types */
7277 #line 304 "src/parser_proc_grammar.y" /* glr.c:851 */
7278 {}
7279 #line 7280 "src/parser_proc.c" /* glr.c:851 */
7280 break;
7281
7282 case 186: /* signed_long_types */
7283 #line 304 "src/parser_proc_grammar.y" /* glr.c:851 */
7284 {}
7285 #line 7286 "src/parser_proc.c" /* glr.c:851 */
7286 break;
7287
7288 case 187: /* int_width_types */
7289 #line 301 "src/parser_proc_grammar.y" /* glr.c:851 */
7290 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7291 #line 7292 "src/parser_proc.c" /* glr.c:851 */
7292 break;
7293
7294 case 188: /* decl_stmt */
7295 #line 332 "src/parser_proc_grammar.y" /* glr.c:851 */
7296 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7297 #line 7298 "src/parser_proc.c" /* glr.c:851 */
7298 break;
7299
7300 case 189: /* decl_asm */
7301 #line 327 "src/parser_proc_grammar.y" /* glr.c:851 */
7302 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7303 #line 7304 "src/parser_proc.c" /* glr.c:851 */
7304 break;
7305
7306 case 190: /* quoted_strings */
7307 #line 327 "src/parser_proc_grammar.y" /* glr.c:851 */
7308 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7309 #line 7310 "src/parser_proc.c" /* glr.c:851 */
7310 break;
7311
7312 case 191: /* decl_extvar_stmt */
7313 #line 346 "src/parser_proc_grammar.y" /* glr.c:851 */
7314 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7315 #line 7316 "src/parser_proc.c" /* glr.c:851 */
7316 break;
7317
7318 case 192: /* decl_extvar_list */
7319 #line 346 "src/parser_proc_grammar.y" /* glr.c:851 */
7320 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7321 #line 7322 "src/parser_proc.c" /* glr.c:851 */
7322 break;
7323
7324 case 193: /* decl_vars */
7325 #line 346 "src/parser_proc_grammar.y" /* glr.c:851 */
7326 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7327 #line 7328 "src/parser_proc.c" /* glr.c:851 */
7328 break;
7329
7330 case 194: /* ignored_decl */
7331 #line 332 "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 199: /* decl */
7337 #line 332 "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 200: /* decl_body */
7343 #line 332 "src/parser_proc_grammar.y" /* glr.c:851 */
7344 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7345 #line 7346 "src/parser_proc.c" /* glr.c:851 */
7346 break;
7347
7348 case 201: /* decl_func_body */
7349 #line 332 "src/parser_proc_grammar.y" /* glr.c:851 */
7350 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7351 #line 7352 "src/parser_proc.c" /* glr.c:851 */
7352 break;
7353
7354 case 202: /* decl_functor_body */
7355 #line 332 "src/parser_proc_grammar.y" /* glr.c:851 */
7356 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7357 #line 7358 "src/parser_proc.c" /* glr.c:851 */
7358 break;
7359
7360 case 203: /* decl_anon_functor_body */
7361 #line 332 "src/parser_proc_grammar.y" /* glr.c:851 */
7362 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7363 #line 7364 "src/parser_proc.c" /* glr.c:851 */
7364 break;
7365
7366 case 204: /* decl_functor */
7367 #line 334 "src/parser_proc_grammar.y" /* glr.c:851 */
7368 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7369 #line 7370 "src/parser_proc.c" /* glr.c:851 */
7370 break;
7371
7372 case 205: /* decl_anon_functor */
7373 #line 334 "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 206: /* decl_func */
7379 #line 334 "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 207: /* decl_args */
7385 #line 346 "src/parser_proc_grammar.y" /* glr.c:851 */
7386 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7387 #line 7388 "src/parser_proc.c" /* glr.c:851 */
7388 break;
7389
7390 case 208: /* decl_arg_list */
7391 #line 346 "src/parser_proc_grammar.y" /* glr.c:851 */
7392 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7393 #line 7394 "src/parser_proc.c" /* glr.c:851 */
7394 break;
7395
7396 case 209: /* decl_anon_arg */
7397 #line 334 "src/parser_proc_grammar.y" /* glr.c:851 */
7398 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7399 #line 7400 "src/parser_proc.c" /* glr.c:851 */
7400 break;
7401
7402 case 210: /* decl_arg */
7403 #line 334 "src/parser_proc_grammar.y" /* glr.c:851 */
7404 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7405 #line 7406 "src/parser_proc.c" /* glr.c:851 */
7406 break;
7407
7408 case 211: /* decl_var */
7409 #line 336 "src/parser_proc_grammar.y" /* glr.c:851 */
7410 {psi_decl_var_free(&(*(struct psi_decl_var **)(&(*yyvaluep))));}
7411 #line 7412 "src/parser_proc.c" /* glr.c:851 */
7412 break;
7413
7414 case 212: /* decl_union */
7415 #line 340 "src/parser_proc_grammar.y" /* glr.c:851 */
7416 {psi_decl_union_free(&(*(struct psi_decl_union **)(&(*yyvaluep))));}
7417 #line 7418 "src/parser_proc.c" /* glr.c:851 */
7418 break;
7419
7420 case 213: /* decl_struct */
7421 #line 338 "src/parser_proc_grammar.y" /* glr.c:851 */
7422 {psi_decl_struct_free(&(*(struct psi_decl_struct **)(&(*yyvaluep))));}
7423 #line 7424 "src/parser_proc.c" /* glr.c:851 */
7424 break;
7425
7426 case 214: /* decl_struct_args */
7427 #line 346 "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 215: /* struct_args_block */
7433 #line 346 "src/parser_proc_grammar.y" /* glr.c:851 */
7434 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7435 #line 7436 "src/parser_proc.c" /* glr.c:851 */
7436 break;
7437
7438 case 216: /* struct_args */
7439 #line 346 "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 217: /* struct_arg_var_list */
7445 #line 346 "src/parser_proc_grammar.y" /* glr.c:851 */
7446 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7447 #line 7448 "src/parser_proc.c" /* glr.c:851 */
7448 break;
7449
7450 case 218: /* decl_vars_with_layout */
7451 #line 346 "src/parser_proc_grammar.y" /* glr.c:851 */
7452 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7453 #line 7454 "src/parser_proc.c" /* glr.c:851 */
7454 break;
7455
7456 case 219: /* decl_enum */
7457 #line 342 "src/parser_proc_grammar.y" /* glr.c:851 */
7458 {psi_decl_enum_free(&(*(struct psi_decl_enum **)(&(*yyvaluep))));}
7459 #line 7460 "src/parser_proc.c" /* glr.c:851 */
7460 break;
7461
7462 case 220: /* decl_enum_items */
7463 #line 346 "src/parser_proc_grammar.y" /* glr.c:851 */
7464 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7465 #line 7466 "src/parser_proc.c" /* glr.c:851 */
7466 break;
7467
7468 case 221: /* decl_enum_item */
7469 #line 344 "src/parser_proc_grammar.y" /* glr.c:851 */
7470 {psi_decl_enum_item_free(&(*(struct psi_decl_enum_item **)(&(*yyvaluep))));}
7471 #line 7472 "src/parser_proc.c" /* glr.c:851 */
7472 break;
7473
7474 case 222: /* num_exp */
7475 #line 402 "src/parser_proc_grammar.y" /* glr.c:851 */
7476 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
7477 #line 7478 "src/parser_proc.c" /* glr.c:851 */
7478 break;
7479
7480 case 223: /* number */
7481 #line 404 "src/parser_proc_grammar.y" /* glr.c:851 */
7482 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7483 #line 7484 "src/parser_proc.c" /* glr.c:851 */
7484 break;
7485
7486 case 224: /* sizeof */
7487 #line 354 "src/parser_proc_grammar.y" /* glr.c:851 */
7488 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7489 #line 7490 "src/parser_proc.c" /* glr.c:851 */
7490 break;
7491
7492 case 225: /* sizeof_body */
7493 #line 354 "src/parser_proc_grammar.y" /* glr.c:851 */
7494 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7495 #line 7496 "src/parser_proc.c" /* glr.c:851 */
7496 break;
7497
7498 case 226: /* sizeof_body_notypes */
7499 #line 354 "src/parser_proc_grammar.y" /* glr.c:851 */
7500 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7501 #line 7502 "src/parser_proc.c" /* glr.c:851 */
7502 break;
7503
7504 case 227: /* enum_name */
7505 #line 292 "src/parser_proc_grammar.y" /* glr.c:851 */
7506 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7507 #line 7508 "src/parser_proc.c" /* glr.c:851 */
7508 break;
7509
7510 case 228: /* union_name */
7511 #line 292 "src/parser_proc_grammar.y" /* glr.c:851 */
7512 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7513 #line 7514 "src/parser_proc.c" /* glr.c:851 */
7514 break;
7515
7516 case 229: /* struct_name */
7517 #line 292 "src/parser_proc_grammar.y" /* glr.c:851 */
7518 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7519 #line 7520 "src/parser_proc.c" /* glr.c:851 */
7520 break;
7521
7522 case 230: /* optional_name */
7523 #line 292 "src/parser_proc_grammar.y" /* glr.c:851 */
7524 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7525 #line 7526 "src/parser_proc.c" /* glr.c:851 */
7526 break;
7527
7528 case 232: /* decl_layout */
7529 #line 351 "src/parser_proc_grammar.y" /* glr.c:851 */
7530 {psi_layout_free(&(*(struct psi_layout **)(&(*yyvaluep))));}
7531 #line 7532 "src/parser_proc.c" /* glr.c:851 */
7532 break;
7533
7534 case 233: /* align_and_size */
7535 #line 349 "src/parser_proc_grammar.y" /* glr.c:851 */
7536 {}
7537 #line 7538 "src/parser_proc.c" /* glr.c:851 */
7538 break;
7539
7540 case 234: /* array_size */
7541 #line 407 "src/parser_proc_grammar.y" /* glr.c:851 */
7542 {}
7543 #line 7544 "src/parser_proc.c" /* glr.c:851 */
7544 break;
7545
7546 case 236: /* indirection */
7547 #line 407 "src/parser_proc_grammar.y" /* glr.c:851 */
7548 {}
7549 #line 7550 "src/parser_proc.c" /* glr.c:851 */
7550 break;
7551
7552 case 237: /* pointers */
7553 #line 407 "src/parser_proc_grammar.y" /* glr.c:851 */
7554 {}
7555 #line 7556 "src/parser_proc.c" /* glr.c:851 */
7556 break;
7557
7558 case 238: /* asterisks */
7559 #line 407 "src/parser_proc_grammar.y" /* glr.c:851 */
7560 {}
7561 #line 7562 "src/parser_proc.c" /* glr.c:851 */
7562 break;
7563
7564 case 241: /* impl */
7565 #line 357 "src/parser_proc_grammar.y" /* glr.c:851 */
7566 {psi_impl_free(&(*(struct psi_impl **)(&(*yyvaluep))));}
7567 #line 7568 "src/parser_proc.c" /* glr.c:851 */
7568 break;
7569
7570 case 242: /* impl_func */
7571 #line 359 "src/parser_proc_grammar.y" /* glr.c:851 */
7572 {psi_impl_func_free(&(*(struct psi_impl_func **)(&(*yyvaluep))));}
7573 #line 7574 "src/parser_proc.c" /* glr.c:851 */
7574 break;
7575
7576 case 243: /* impl_args */
7577 #line 399 "src/parser_proc_grammar.y" /* glr.c:851 */
7578 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7579 #line 7580 "src/parser_proc.c" /* glr.c:851 */
7580 break;
7581
7582 case 244: /* impl_arg */
7583 #line 361 "src/parser_proc_grammar.y" /* glr.c:851 */
7584 {psi_impl_arg_free(&(*(struct psi_impl_arg **)(&(*yyvaluep))));}
7585 #line 7586 "src/parser_proc.c" /* glr.c:851 */
7586 break;
7587
7588 case 245: /* impl_var */
7589 #line 365 "src/parser_proc_grammar.y" /* glr.c:851 */
7590 {psi_impl_var_free(&(*(struct psi_impl_var **)(&(*yyvaluep))));}
7591 #line 7592 "src/parser_proc.c" /* glr.c:851 */
7592 break;
7593
7594 case 246: /* impl_type */
7595 #line 363 "src/parser_proc_grammar.y" /* glr.c:851 */
7596 {psi_impl_type_free(&(*(struct psi_impl_type **)(&(*yyvaluep))));}
7597 #line 7598 "src/parser_proc.c" /* glr.c:851 */
7598 break;
7599
7600 case 247: /* impl_type_restricted */
7601 #line 363 "src/parser_proc_grammar.y" /* glr.c:851 */
7602 {psi_impl_type_free(&(*(struct psi_impl_type **)(&(*yyvaluep))));}
7603 #line 7604 "src/parser_proc.c" /* glr.c:851 */
7604 break;
7605
7606 case 248: /* impl_type_token */
7607 #line 397 "src/parser_proc_grammar.y" /* glr.c:851 */
7608 {}
7609 #line 7610 "src/parser_proc.c" /* glr.c:851 */
7610 break;
7611
7612 case 249: /* impl_type_restricted_token */
7613 #line 397 "src/parser_proc_grammar.y" /* glr.c:851 */
7614 {}
7615 #line 7616 "src/parser_proc.c" /* glr.c:851 */
7616 break;
7617
7618 case 250: /* impl_type_extended_token */
7619 #line 397 "src/parser_proc_grammar.y" /* glr.c:851 */
7620 {}
7621 #line 7622 "src/parser_proc.c" /* glr.c:851 */
7622 break;
7623
7624 case 251: /* impl_stmts */
7625 #line 399 "src/parser_proc_grammar.y" /* glr.c:851 */
7626 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7627 #line 7628 "src/parser_proc.c" /* glr.c:851 */
7628 break;
7629
7630 case 252: /* impl_stmt */
7631 #line 395 "src/parser_proc_grammar.y" /* glr.c:851 */
7632 {psi_impl_stmt_free(&(*(struct psi_token ***)(&(*yyvaluep))));}
7633 #line 7634 "src/parser_proc.c" /* glr.c:851 */
7634 break;
7635
7636 case 253: /* let_stmt */
7637 #line 368 "src/parser_proc_grammar.y" /* glr.c:851 */
7638 {psi_let_stmt_free(&(*(struct psi_let_stmt **)(&(*yyvaluep))));}
7639 #line 7640 "src/parser_proc.c" /* glr.c:851 */
7640 break;
7641
7642 case 254: /* let_exp */
7643 #line 370 "src/parser_proc_grammar.y" /* glr.c:851 */
7644 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
7645 #line 7646 "src/parser_proc.c" /* glr.c:851 */
7646 break;
7647
7648 case 255: /* let_exp_byref */
7649 #line 370 "src/parser_proc_grammar.y" /* glr.c:851 */
7650 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
7651 #line 7652 "src/parser_proc.c" /* glr.c:851 */
7652 break;
7653
7654 case 256: /* let_exp_assign */
7655 #line 370 "src/parser_proc_grammar.y" /* glr.c:851 */
7656 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
7657 #line 7658 "src/parser_proc.c" /* glr.c:851 */
7658 break;
7659
7660 case 257: /* let_calloc */
7661 #line 372 "src/parser_proc_grammar.y" /* glr.c:851 */
7662 {psi_let_calloc_free(&(*(struct psi_let_calloc **)(&(*yyvaluep))));}
7663 #line 7664 "src/parser_proc.c" /* glr.c:851 */
7664 break;
7665
7666 case 258: /* let_callback */
7667 #line 374 "src/parser_proc_grammar.y" /* glr.c:851 */
7668 {psi_let_callback_free(&(*(struct psi_let_callback **)(&(*yyvaluep))));}
7669 #line 7670 "src/parser_proc.c" /* glr.c:851 */
7670 break;
7671
7672 case 259: /* let_func */
7673 #line 376 "src/parser_proc_grammar.y" /* glr.c:851 */
7674 {psi_let_func_free(&(*(struct psi_let_func **)(&(*yyvaluep))));}
7675 #line 7676 "src/parser_proc.c" /* glr.c:851 */
7676 break;
7677
7678 case 260: /* let_func_token */
7679 #line 397 "src/parser_proc_grammar.y" /* glr.c:851 */
7680 {}
7681 #line 7682 "src/parser_proc.c" /* glr.c:851 */
7682 break;
7683
7684 case 261: /* let_func_exps */
7685 #line 399 "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 262: /* let_exps */
7691 #line 399 "src/parser_proc_grammar.y" /* glr.c:851 */
7692 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7693 #line 7694 "src/parser_proc.c" /* glr.c:851 */
7694 break;
7695
7696 case 263: /* callback_rval */
7697 #line 397 "src/parser_proc_grammar.y" /* glr.c:851 */
7698 {}
7699 #line 7700 "src/parser_proc.c" /* glr.c:851 */
7700 break;
7701
7702 case 264: /* callback_arg_list */
7703 #line 399 "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 265: /* callback_args */
7709 #line 399 "src/parser_proc_grammar.y" /* glr.c:851 */
7710 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7711 #line 7712 "src/parser_proc.c" /* glr.c:851 */
7712 break;
7713
7714 case 266: /* return_stmt */
7715 #line 386 "src/parser_proc_grammar.y" /* glr.c:851 */
7716 {psi_return_stmt_free(&(*(struct psi_return_stmt **)(&(*yyvaluep))));}
7717 #line 7718 "src/parser_proc.c" /* glr.c:851 */
7718 break;
7719
7720 case 267: /* return_exp */
7721 #line 388 "src/parser_proc_grammar.y" /* glr.c:851 */
7722 {psi_return_exp_free(&(*(struct psi_return_exp **)(&(*yyvaluep))));}
7723 #line 7724 "src/parser_proc.c" /* glr.c:851 */
7724 break;
7725
7726 case 268: /* call_decl_vars */
7727 #line 346 "src/parser_proc_grammar.y" /* glr.c:851 */
7728 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7729 #line 7730 "src/parser_proc.c" /* glr.c:851 */
7730 break;
7731
7732 case 269: /* set_stmt */
7733 #line 378 "src/parser_proc_grammar.y" /* glr.c:851 */
7734 {psi_set_stmt_free(&(*(struct psi_set_stmt **)(&(*yyvaluep))));}
7735 #line 7736 "src/parser_proc.c" /* glr.c:851 */
7736 break;
7737
7738 case 270: /* set_exp */
7739 #line 380 "src/parser_proc_grammar.y" /* glr.c:851 */
7740 {psi_set_exp_free(&(*(struct psi_set_exp **)(&(*yyvaluep))));}
7741 #line 7742 "src/parser_proc.c" /* glr.c:851 */
7742 break;
7743
7744 case 271: /* set_func */
7745 #line 382 "src/parser_proc_grammar.y" /* glr.c:851 */
7746 {psi_set_func_free(&(*(struct psi_set_func **)(&(*yyvaluep))));}
7747 #line 7748 "src/parser_proc.c" /* glr.c:851 */
7748 break;
7749
7750 case 272: /* set_func_token */
7751 #line 397 "src/parser_proc_grammar.y" /* glr.c:851 */
7752 {}
7753 #line 7754 "src/parser_proc.c" /* glr.c:851 */
7754 break;
7755
7756 case 273: /* set_func_exps */
7757 #line 399 "src/parser_proc_grammar.y" /* glr.c:851 */
7758 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7759 #line 7760 "src/parser_proc.c" /* glr.c:851 */
7760 break;
7761
7762 case 274: /* set_exps */
7763 #line 399 "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 275: /* assert_stmt */
7769 #line 384 "src/parser_proc_grammar.y" /* glr.c:851 */
7770 {psi_assert_stmt_free(&(*(struct psi_assert_stmt **)(&(*yyvaluep))));}
7771 #line 7772 "src/parser_proc.c" /* glr.c:851 */
7772 break;
7773
7774 case 276: /* assert_stmt_token */
7775 #line 397 "src/parser_proc_grammar.y" /* glr.c:851 */
7776 {}
7777 #line 7778 "src/parser_proc.c" /* glr.c:851 */
7778 break;
7779
7780 case 277: /* free_stmt */
7781 #line 390 "src/parser_proc_grammar.y" /* glr.c:851 */
7782 {psi_free_stmt_free(&(*(struct psi_free_stmt **)(&(*yyvaluep))));}
7783 #line 7784 "src/parser_proc.c" /* glr.c:851 */
7784 break;
7785
7786 case 278: /* free_exps */
7787 #line 399 "src/parser_proc_grammar.y" /* glr.c:851 */
7788 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7789 #line 7790 "src/parser_proc.c" /* glr.c:851 */
7790 break;
7791
7792 case 279: /* free_exp */
7793 #line 392 "src/parser_proc_grammar.y" /* glr.c:851 */
7794 {psi_free_exp_free(&(*(struct psi_free_exp **)(&(*yyvaluep))));}
7795 #line 7796 "src/parser_proc.c" /* glr.c:851 */
7796 break;
7797
7798 case 280: /* reference */
7799 #line 409 "src/parser_proc_grammar.y" /* glr.c:851 */
7800 {}
7801 #line 7802 "src/parser_proc.c" /* glr.c:851 */
7802 break;
7803
7804
7805 default:
7806 break;
7807 }
7808 YY_IGNORE_MAYBE_UNINITIALIZED_END
7809 }
7810
7811 /** Number of symbols composing the right hand side of rule #RULE. */
7812 static inline int
7813 yyrhsLength (yyRuleNum yyrule)
7814 {
7815 return yyr2[yyrule];
7816 }
7817
7818 static void
7819 yydestroyGLRState (char const *yymsg, yyGLRState *yys, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7820 {
7821 if (yys->yyresolved)
7822 yydestruct (yymsg, yystos[yys->yylrState],
7823 &yys->yysemantics.yysval, P, tokens, index);
7824 else
7825 {
7826 #if YYDEBUG
7827 if (yydebug)
7828 {
7829 if (yys->yysemantics.yyfirstVal)
7830 YYFPRINTF (stderr, "%s unresolved", yymsg);
7831 else
7832 YYFPRINTF (stderr, "%s incomplete", yymsg);
7833 YY_SYMBOL_PRINT ("", yystos[yys->yylrState], YY_NULLPTR, &yys->yyloc);
7834 }
7835 #endif
7836
7837 if (yys->yysemantics.yyfirstVal)
7838 {
7839 yySemanticOption *yyoption = yys->yysemantics.yyfirstVal;
7840 yyGLRState *yyrh;
7841 int yyn;
7842 for (yyrh = yyoption->yystate, yyn = yyrhsLength (yyoption->yyrule);
7843 yyn > 0;
7844 yyrh = yyrh->yypred, yyn -= 1)
7845 yydestroyGLRState (yymsg, yyrh, P, tokens, index);
7846 }
7847 }
7848 }
7849
7850 /** Left-hand-side symbol for rule #YYRULE. */
7851 static inline yySymbol
7852 yylhsNonterm (yyRuleNum yyrule)
7853 {
7854 return yyr1[yyrule];
7855 }
7856
7857 #define yypact_value_is_default(Yystate) \
7858 (!!((Yystate) == (-719)))
7859
7860 /** True iff LR state YYSTATE has only a default reduction (regardless
7861 * of token). */
7862 static inline yybool
7863 yyisDefaultedState (yyStateNum yystate)
7864 {
7865 return (yybool) yypact_value_is_default (yypact[yystate]);
7866 }
7867
7868 /** The default reduction for YYSTATE, assuming it has one. */
7869 static inline yyRuleNum
7870 yydefaultAction (yyStateNum yystate)
7871 {
7872 return yydefact[yystate];
7873 }
7874
7875 #define yytable_value_is_error(Yytable_value) \
7876 0
7877
7878 /** Set *YYACTION to the action to take in YYSTATE on seeing YYTOKEN.
7879 * Result R means
7880 * R < 0: Reduce on rule -R.
7881 * R = 0: Error.
7882 * R > 0: Shift to state R.
7883 * Set *YYCONFLICTS to a pointer into yyconfl to a 0-terminated list
7884 * of conflicting reductions.
7885 */
7886 static inline void
7887 yygetLRActions (yyStateNum yystate, int yytoken,
7888 int* yyaction, const short** yyconflicts)
7889 {
7890 int yyindex = yypact[yystate] + yytoken;
7891 if (yyisDefaultedState (yystate)
7892 || yyindex < 0 || YYLAST < yyindex || yycheck[yyindex] != yytoken)
7893 {
7894 *yyaction = -yydefact[yystate];
7895 *yyconflicts = yyconfl;
7896 }
7897 else if (! yytable_value_is_error (yytable[yyindex]))
7898 {
7899 *yyaction = yytable[yyindex];
7900 *yyconflicts = yyconfl + yyconflp[yyindex];
7901 }
7902 else
7903 {
7904 *yyaction = 0;
7905 *yyconflicts = yyconfl + yyconflp[yyindex];
7906 }
7907 }
7908
7909 /** Compute post-reduction state.
7910 * \param yystate the current state
7911 * \param yysym the nonterminal to push on the stack
7912 */
7913 static inline yyStateNum
7914 yyLRgotoState (yyStateNum yystate, yySymbol yysym)
7915 {
7916 int yyr = yypgoto[yysym - YYNTOKENS] + yystate;
7917 if (0 <= yyr && yyr <= YYLAST && yycheck[yyr] == yystate)
7918 return yytable[yyr];
7919 else
7920 return yydefgoto[yysym - YYNTOKENS];
7921 }
7922
7923 static inline yybool
7924 yyisShiftAction (int yyaction)
7925 {
7926 return (yybool) (0 < yyaction);
7927 }
7928
7929 static inline yybool
7930 yyisErrorAction (int yyaction)
7931 {
7932 return (yybool) (yyaction == 0);
7933 }
7934
7935 /* GLRStates */
7936
7937 /** Return a fresh GLRStackItem in YYSTACKP. The item is an LR state
7938 * if YYISSTATE, and otherwise a semantic option. Callers should call
7939 * YY_RESERVE_GLRSTACK afterwards to make sure there is sufficient
7940 * headroom. */
7941
7942 static inline yyGLRStackItem*
7943 yynewGLRStackItem (yyGLRStack* yystackp, yybool yyisState)
7944 {
7945 yyGLRStackItem* yynewItem = yystackp->yynextFree;
7946 yystackp->yyspaceLeft -= 1;
7947 yystackp->yynextFree += 1;
7948 yynewItem->yystate.yyisState = yyisState;
7949 return yynewItem;
7950 }
7951
7952 /** Add a new semantic action that will execute the action for rule
7953 * YYRULE on the semantic values in YYRHS to the list of
7954 * alternative actions for YYSTATE. Assumes that YYRHS comes from
7955 * stack #YYK of *YYSTACKP. */
7956 static void
7957 yyaddDeferredAction (yyGLRStack* yystackp, size_t yyk, yyGLRState* yystate,
7958 yyGLRState* yyrhs, yyRuleNum yyrule)
7959 {
7960 yySemanticOption* yynewOption =
7961 &yynewGLRStackItem (yystackp, yyfalse)->yyoption;
7962 YYASSERT (!yynewOption->yyisState);
7963 yynewOption->yystate = yyrhs;
7964 yynewOption->yyrule = yyrule;
7965 if (yystackp->yytops.yylookaheadNeeds[yyk])
7966 {
7967 yynewOption->yyrawchar = yychar;
7968 yynewOption->yyval = yylval;
7969 }
7970 else
7971 yynewOption->yyrawchar = YYEMPTY;
7972 yynewOption->yynext = yystate->yysemantics.yyfirstVal;
7973 yystate->yysemantics.yyfirstVal = yynewOption;
7974
7975 YY_RESERVE_GLRSTACK (yystackp);
7976 }
7977
7978 /* GLRStacks */
7979
7980 /** Initialize YYSET to a singleton set containing an empty stack. */
7981 static yybool
7982 yyinitStateSet (yyGLRStateSet* yyset)
7983 {
7984 yyset->yysize = 1;
7985 yyset->yycapacity = 16;
7986 yyset->yystates = (yyGLRState**) YYMALLOC (16 * sizeof yyset->yystates[0]);
7987 if (! yyset->yystates)
7988 return yyfalse;
7989 yyset->yystates[0] = YY_NULLPTR;
7990 yyset->yylookaheadNeeds =
7991 (yybool*) YYMALLOC (16 * sizeof yyset->yylookaheadNeeds[0]);
7992 if (! yyset->yylookaheadNeeds)
7993 {
7994 YYFREE (yyset->yystates);
7995 return yyfalse;
7996 }
7997 return yytrue;
7998 }
7999
8000 static void yyfreeStateSet (yyGLRStateSet* yyset)
8001 {
8002 YYFREE (yyset->yystates);
8003 YYFREE (yyset->yylookaheadNeeds);
8004 }
8005
8006 /** Initialize *YYSTACKP to a single empty stack, with total maximum
8007 * capacity for all stacks of YYSIZE. */
8008 static yybool
8009 yyinitGLRStack (yyGLRStack* yystackp, size_t yysize)
8010 {
8011 yystackp->yyerrState = 0;
8012 yynerrs = 0;
8013 yystackp->yyspaceLeft = yysize;
8014 yystackp->yyitems =
8015 (yyGLRStackItem*) YYMALLOC (yysize * sizeof yystackp->yynextFree[0]);
8016 if (!yystackp->yyitems)
8017 return yyfalse;
8018 yystackp->yynextFree = yystackp->yyitems;
8019 yystackp->yysplitPoint = YY_NULLPTR;
8020 yystackp->yylastDeleted = YY_NULLPTR;
8021 return yyinitStateSet (&yystackp->yytops);
8022 }
8023
8024
8025 #if YYSTACKEXPANDABLE
8026 # define YYRELOC(YYFROMITEMS,YYTOITEMS,YYX,YYTYPE) \
8027 &((YYTOITEMS) - ((YYFROMITEMS) - (yyGLRStackItem*) (YYX)))->YYTYPE
8028
8029 /** If *YYSTACKP is expandable, extend it. WARNING: Pointers into the
8030 stack from outside should be considered invalid after this call.
8031 We always expand when there are 1 or fewer items left AFTER an
8032 allocation, so that we can avoid having external pointers exist
8033 across an allocation. */
8034 static void
8035 yyexpandGLRStack (yyGLRStack* yystackp)
8036 {
8037 yyGLRStackItem* yynewItems;
8038 yyGLRStackItem* yyp0, *yyp1;
8039 size_t yynewSize;
8040 size_t yyn;
8041 size_t yysize = (size_t) (yystackp->yynextFree - yystackp->yyitems);
8042 if (YYMAXDEPTH - YYHEADROOM < yysize)
8043 yyMemoryExhausted (yystackp);
8044 yynewSize = 2*yysize;
8045 if (YYMAXDEPTH < yynewSize)
8046 yynewSize = YYMAXDEPTH;
8047 yynewItems = (yyGLRStackItem*) YYMALLOC (yynewSize * sizeof yynewItems[0]);
8048 if (! yynewItems)
8049 yyMemoryExhausted (yystackp);
8050 for (yyp0 = yystackp->yyitems, yyp1 = yynewItems, yyn = yysize;
8051 0 < yyn;
8052 yyn -= 1, yyp0 += 1, yyp1 += 1)
8053 {
8054 *yyp1 = *yyp0;
8055 if (*(yybool *) yyp0)
8056 {
8057 yyGLRState* yys0 = &yyp0->yystate;
8058 yyGLRState* yys1 = &yyp1->yystate;
8059 if (yys0->yypred != YY_NULLPTR)
8060 yys1->yypred =
8061 YYRELOC (yyp0, yyp1, yys0->yypred, yystate);
8062 if (! yys0->yyresolved && yys0->yysemantics.yyfirstVal != YY_NULLPTR)
8063 yys1->yysemantics.yyfirstVal =
8064 YYRELOC (yyp0, yyp1, yys0->yysemantics.yyfirstVal, yyoption);
8065 }
8066 else
8067 {
8068 yySemanticOption* yyv0 = &yyp0->yyoption;
8069 yySemanticOption* yyv1 = &yyp1->yyoption;
8070 if (yyv0->yystate != YY_NULLPTR)
8071 yyv1->yystate = YYRELOC (yyp0, yyp1, yyv0->yystate, yystate);
8072 if (yyv0->yynext != YY_NULLPTR)
8073 yyv1->yynext = YYRELOC (yyp0, yyp1, yyv0->yynext, yyoption);
8074 }
8075 }
8076 if (yystackp->yysplitPoint != YY_NULLPTR)
8077 yystackp->yysplitPoint = YYRELOC (yystackp->yyitems, yynewItems,
8078 yystackp->yysplitPoint, yystate);
8079
8080 for (yyn = 0; yyn < yystackp->yytops.yysize; yyn += 1)
8081 if (yystackp->yytops.yystates[yyn] != YY_NULLPTR)
8082 yystackp->yytops.yystates[yyn] =
8083 YYRELOC (yystackp->yyitems, yynewItems,
8084 yystackp->yytops.yystates[yyn], yystate);
8085 YYFREE (yystackp->yyitems);
8086 yystackp->yyitems = yynewItems;
8087 yystackp->yynextFree = yynewItems + yysize;
8088 yystackp->yyspaceLeft = yynewSize - yysize;
8089 }
8090 #endif
8091
8092 static void
8093 yyfreeGLRStack (yyGLRStack* yystackp)
8094 {
8095 YYFREE (yystackp->yyitems);
8096 yyfreeStateSet (&yystackp->yytops);
8097 }
8098
8099 /** Assuming that YYS is a GLRState somewhere on *YYSTACKP, update the
8100 * splitpoint of *YYSTACKP, if needed, so that it is at least as deep as
8101 * YYS. */
8102 static inline void
8103 yyupdateSplit (yyGLRStack* yystackp, yyGLRState* yys)
8104 {
8105 if (yystackp->yysplitPoint != YY_NULLPTR && yystackp->yysplitPoint > yys)
8106 yystackp->yysplitPoint = yys;
8107 }
8108
8109 /** Invalidate stack #YYK in *YYSTACKP. */
8110 static inline void
8111 yymarkStackDeleted (yyGLRStack* yystackp, size_t yyk)
8112 {
8113 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
8114 yystackp->yylastDeleted = yystackp->yytops.yystates[yyk];
8115 yystackp->yytops.yystates[yyk] = YY_NULLPTR;
8116 }
8117
8118 /** Undelete the last stack in *YYSTACKP that was marked as deleted. Can
8119 only be done once after a deletion, and only when all other stacks have
8120 been deleted. */
8121 static void
8122 yyundeleteLastStack (yyGLRStack* yystackp)
8123 {
8124 if (yystackp->yylastDeleted == YY_NULLPTR || yystackp->yytops.yysize != 0)
8125 return;
8126 yystackp->yytops.yystates[0] = yystackp->yylastDeleted;
8127 yystackp->yytops.yysize = 1;
8128 YYDPRINTF ((stderr, "Restoring last deleted stack as stack #0.\n"));
8129 yystackp->yylastDeleted = YY_NULLPTR;
8130 }
8131
8132 static inline void
8133 yyremoveDeletes (yyGLRStack* yystackp)
8134 {
8135 size_t yyi, yyj;
8136 yyi = yyj = 0;
8137 while (yyj < yystackp->yytops.yysize)
8138 {
8139 if (yystackp->yytops.yystates[yyi] == YY_NULLPTR)
8140 {
8141 if (yyi == yyj)
8142 {
8143 YYDPRINTF ((stderr, "Removing dead stacks.\n"));
8144 }
8145 yystackp->yytops.yysize -= 1;
8146 }
8147 else
8148 {
8149 yystackp->yytops.yystates[yyj] = yystackp->yytops.yystates[yyi];
8150 /* In the current implementation, it's unnecessary to copy
8151 yystackp->yytops.yylookaheadNeeds[yyi] since, after
8152 yyremoveDeletes returns, the parser immediately either enters
8153 deterministic operation or shifts a token. However, it doesn't
8154 hurt, and the code might evolve to need it. */
8155 yystackp->yytops.yylookaheadNeeds[yyj] =
8156 yystackp->yytops.yylookaheadNeeds[yyi];
8157 if (yyj != yyi)
8158 {
8159 YYDPRINTF ((stderr, "Rename stack %lu -> %lu.\n",
8160 (unsigned long) yyi, (unsigned long) yyj));
8161 }
8162 yyj += 1;
8163 }
8164 yyi += 1;
8165 }
8166 }
8167
8168 /** Shift to a new state on stack #YYK of *YYSTACKP, corresponding to LR
8169 * state YYLRSTATE, at input position YYPOSN, with (resolved) semantic
8170 * value *YYVALP and source location *YYLOCP. */
8171 static inline void
8172 yyglrShift (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
8173 size_t yyposn,
8174 YYSTYPE* yyvalp)
8175 {
8176 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
8177
8178 yynewState->yylrState = yylrState;
8179 yynewState->yyposn = yyposn;
8180 yynewState->yyresolved = yytrue;
8181 yynewState->yypred = yystackp->yytops.yystates[yyk];
8182 yynewState->yysemantics.yysval = *yyvalp;
8183 yystackp->yytops.yystates[yyk] = yynewState;
8184
8185 YY_RESERVE_GLRSTACK (yystackp);
8186 }
8187
8188 /** Shift stack #YYK of *YYSTACKP, to a new state corresponding to LR
8189 * state YYLRSTATE, at input position YYPOSN, with the (unresolved)
8190 * semantic value of YYRHS under the action for YYRULE. */
8191 static inline void
8192 yyglrShiftDefer (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
8193 size_t yyposn, yyGLRState* yyrhs, yyRuleNum yyrule)
8194 {
8195 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
8196 YYASSERT (yynewState->yyisState);
8197
8198 yynewState->yylrState = yylrState;
8199 yynewState->yyposn = yyposn;
8200 yynewState->yyresolved = yyfalse;
8201 yynewState->yypred = yystackp->yytops.yystates[yyk];
8202 yynewState->yysemantics.yyfirstVal = YY_NULLPTR;
8203 yystackp->yytops.yystates[yyk] = yynewState;
8204
8205 /* Invokes YY_RESERVE_GLRSTACK. */
8206 yyaddDeferredAction (yystackp, yyk, yynewState, yyrhs, yyrule);
8207 }
8208
8209 #if !YYDEBUG
8210 # define YY_REDUCE_PRINT(Args)
8211 #else
8212 # define YY_REDUCE_PRINT(Args) \
8213 do { \
8214 if (yydebug) \
8215 yy_reduce_print Args; \
8216 } while (0)
8217
8218 /*----------------------------------------------------------------------.
8219 | Report that stack #YYK of *YYSTACKP is going to be reduced by YYRULE. |
8220 `----------------------------------------------------------------------*/
8221
8222 static inline void
8223 yy_reduce_print (yybool yynormal, yyGLRStackItem* yyvsp, size_t yyk,
8224 yyRuleNum yyrule, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8225 {
8226 int yynrhs = yyrhsLength (yyrule);
8227 int yyi;
8228 YYFPRINTF (stderr, "Reducing stack %lu by rule %d (line %lu):\n",
8229 (unsigned long) yyk, yyrule - 1,
8230 (unsigned long) yyrline[yyrule]);
8231 if (! yynormal)
8232 yyfillin (yyvsp, 1, -yynrhs);
8233 /* The symbols being reduced. */
8234 for (yyi = 0; yyi < yynrhs; yyi++)
8235 {
8236 YYFPRINTF (stderr, " $%d = ", yyi + 1);
8237 yy_symbol_print (stderr,
8238 yystos[yyvsp[yyi - yynrhs + 1].yystate.yylrState],
8239 &yyvsp[yyi - yynrhs + 1].yystate.yysemantics.yysval , P, tokens, index);
8240 if (!yyvsp[yyi - yynrhs + 1].yystate.yyresolved)
8241 YYFPRINTF (stderr, " (unresolved)");
8242 YYFPRINTF (stderr, "\n");
8243 }
8244 }
8245 #endif
8246
8247 /** Pop the symbols consumed by reduction #YYRULE from the top of stack
8248 * #YYK of *YYSTACKP, and perform the appropriate semantic action on their
8249 * semantic values. Assumes that all ambiguities in semantic values
8250 * have been previously resolved. Set *YYVALP to the resulting value,
8251 * and *YYLOCP to the computed location (if any). Return value is as
8252 * for userAction. */
8253 static inline YYRESULTTAG
8254 yydoAction (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
8255 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8256 {
8257 int yynrhs = yyrhsLength (yyrule);
8258
8259 if (yystackp->yysplitPoint == YY_NULLPTR)
8260 {
8261 /* Standard special case: single stack. */
8262 yyGLRStackItem* yyrhs = (yyGLRStackItem*) yystackp->yytops.yystates[yyk];
8263 YYASSERT (yyk == 0);
8264 yystackp->yynextFree -= yynrhs;
8265 yystackp->yyspaceLeft += (size_t) yynrhs;
8266 yystackp->yytops.yystates[0] = & yystackp->yynextFree[-1].yystate;
8267 YY_REDUCE_PRINT ((yytrue, yyrhs, yyk, yyrule, P, tokens, index));
8268 return yyuserAction (yyrule, yynrhs, yyrhs, yystackp,
8269 yyvalp, P, tokens, index);
8270 }
8271 else
8272 {
8273 int yyi;
8274 yyGLRState* yys;
8275 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
8276 yys = yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred
8277 = yystackp->yytops.yystates[yyk];
8278 for (yyi = 0; yyi < yynrhs; yyi += 1)
8279 {
8280 yys = yys->yypred;
8281 YYASSERT (yys);
8282 }
8283 yyupdateSplit (yystackp, yys);
8284 yystackp->yytops.yystates[yyk] = yys;
8285 YY_REDUCE_PRINT ((yyfalse, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1, yyk, yyrule, P, tokens, index));
8286 return yyuserAction (yyrule, yynrhs, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
8287 yystackp, yyvalp, P, tokens, index);
8288 }
8289 }
8290
8291 /** Pop items off stack #YYK of *YYSTACKP according to grammar rule YYRULE,
8292 * and push back on the resulting nonterminal symbol. Perform the
8293 * semantic action associated with YYRULE and store its value with the
8294 * newly pushed state, if YYFORCEEVAL or if *YYSTACKP is currently
8295 * unambiguous. Otherwise, store the deferred semantic action with
8296 * the new state. If the new state would have an identical input
8297 * position, LR state, and predecessor to an existing state on the stack,
8298 * it is identified with that existing state, eliminating stack #YYK from
8299 * *YYSTACKP. In this case, the semantic value is
8300 * added to the options for the existing state's semantic value.
8301 */
8302 static inline YYRESULTTAG
8303 yyglrReduce (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
8304 yybool yyforceEval, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8305 {
8306 size_t yyposn = yystackp->yytops.yystates[yyk]->yyposn;
8307
8308 if (yyforceEval || yystackp->yysplitPoint == YY_NULLPTR)
8309 {
8310 YYSTYPE yysval;
8311
8312 YYRESULTTAG yyflag = yydoAction (yystackp, yyk, yyrule, &yysval, P, tokens, index);
8313 if (yyflag == yyerr && yystackp->yysplitPoint != YY_NULLPTR)
8314 {
8315 YYDPRINTF ((stderr, "Parse on stack %lu rejected by rule #%d.\n",
8316 (unsigned long) yyk, yyrule - 1));
8317 }
8318 if (yyflag != yyok)
8319 return yyflag;
8320 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyrule], &yysval, &yyloc);
8321 yyglrShift (yystackp, yyk,
8322 yyLRgotoState (yystackp->yytops.yystates[yyk]->yylrState,
8323 yylhsNonterm (yyrule)),
8324 yyposn, &yysval);
8325 }
8326 else
8327 {
8328 size_t yyi;
8329 int yyn;
8330 yyGLRState* yys, *yys0 = yystackp->yytops.yystates[yyk];
8331 yyStateNum yynewLRState;
8332
8333 for (yys = yystackp->yytops.yystates[yyk], yyn = yyrhsLength (yyrule);
8334 0 < yyn; yyn -= 1)
8335 {
8336 yys = yys->yypred;
8337 YYASSERT (yys);
8338 }
8339 yyupdateSplit (yystackp, yys);
8340 yynewLRState = yyLRgotoState (yys->yylrState, yylhsNonterm (yyrule));
8341 YYDPRINTF ((stderr,
8342 "Reduced stack %lu by rule #%d; action deferred. "
8343 "Now in state %d.\n",
8344 (unsigned long) yyk, yyrule - 1, yynewLRState));
8345 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
8346 if (yyi != yyk && yystackp->yytops.yystates[yyi] != YY_NULLPTR)
8347 {
8348 yyGLRState *yysplit = yystackp->yysplitPoint;
8349 yyGLRState *yyp = yystackp->yytops.yystates[yyi];
8350 while (yyp != yys && yyp != yysplit && yyp->yyposn >= yyposn)
8351 {
8352 if (yyp->yylrState == yynewLRState && yyp->yypred == yys)
8353 {
8354 yyaddDeferredAction (yystackp, yyk, yyp, yys0, yyrule);
8355 yymarkStackDeleted (yystackp, yyk);
8356 YYDPRINTF ((stderr, "Merging stack %lu into stack %lu.\n",
8357 (unsigned long) yyk,
8358 (unsigned long) yyi));
8359 return yyok;
8360 }
8361 yyp = yyp->yypred;
8362 }
8363 }
8364 yystackp->yytops.yystates[yyk] = yys;
8365 yyglrShiftDefer (yystackp, yyk, yynewLRState, yyposn, yys0, yyrule);
8366 }
8367 return yyok;
8368 }
8369
8370 static size_t
8371 yysplitStack (yyGLRStack* yystackp, size_t yyk)
8372 {
8373 if (yystackp->yysplitPoint == YY_NULLPTR)
8374 {
8375 YYASSERT (yyk == 0);
8376 yystackp->yysplitPoint = yystackp->yytops.yystates[yyk];
8377 }
8378 if (yystackp->yytops.yysize >= yystackp->yytops.yycapacity)
8379 {
8380 yyGLRState** yynewStates = YY_NULLPTR;
8381 yybool* yynewLookaheadNeeds;
8382
8383 if (yystackp->yytops.yycapacity
8384 > (YYSIZEMAX / (2 * sizeof yynewStates[0])))
8385 yyMemoryExhausted (yystackp);
8386 yystackp->yytops.yycapacity *= 2;
8387
8388 yynewStates =
8389 (yyGLRState**) YYREALLOC (yystackp->yytops.yystates,
8390 (yystackp->yytops.yycapacity
8391 * sizeof yynewStates[0]));
8392 if (yynewStates == YY_NULLPTR)
8393 yyMemoryExhausted (yystackp);
8394 yystackp->yytops.yystates = yynewStates;
8395
8396 yynewLookaheadNeeds =
8397 (yybool*) YYREALLOC (yystackp->yytops.yylookaheadNeeds,
8398 (yystackp->yytops.yycapacity
8399 * sizeof yynewLookaheadNeeds[0]));
8400 if (yynewLookaheadNeeds == YY_NULLPTR)
8401 yyMemoryExhausted (yystackp);
8402 yystackp->yytops.yylookaheadNeeds = yynewLookaheadNeeds;
8403 }
8404 yystackp->yytops.yystates[yystackp->yytops.yysize]
8405 = yystackp->yytops.yystates[yyk];
8406 yystackp->yytops.yylookaheadNeeds[yystackp->yytops.yysize]
8407 = yystackp->yytops.yylookaheadNeeds[yyk];
8408 yystackp->yytops.yysize += 1;
8409 return yystackp->yytops.yysize-1;
8410 }
8411
8412 /** True iff YYY0 and YYY1 represent identical options at the top level.
8413 * That is, they represent the same rule applied to RHS symbols
8414 * that produce the same terminal symbols. */
8415 static yybool
8416 yyidenticalOptions (yySemanticOption* yyy0, yySemanticOption* yyy1)
8417 {
8418 if (yyy0->yyrule == yyy1->yyrule)
8419 {
8420 yyGLRState *yys0, *yys1;
8421 int yyn;
8422 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
8423 yyn = yyrhsLength (yyy0->yyrule);
8424 yyn > 0;
8425 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
8426 if (yys0->yyposn != yys1->yyposn)
8427 return yyfalse;
8428 return yytrue;
8429 }
8430 else
8431 return yyfalse;
8432 }
8433
8434 /** Assuming identicalOptions (YYY0,YYY1), destructively merge the
8435 * alternative semantic values for the RHS-symbols of YYY1 and YYY0. */
8436 static void
8437 yymergeOptionSets (yySemanticOption* yyy0, yySemanticOption* yyy1)
8438 {
8439 yyGLRState *yys0, *yys1;
8440 int yyn;
8441 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
8442 yyn = yyrhsLength (yyy0->yyrule);
8443 yyn > 0;
8444 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
8445 {
8446 if (yys0 == yys1)
8447 break;
8448 else if (yys0->yyresolved)
8449 {
8450 yys1->yyresolved = yytrue;
8451 yys1->yysemantics.yysval = yys0->yysemantics.yysval;
8452 }
8453 else if (yys1->yyresolved)
8454 {
8455 yys0->yyresolved = yytrue;
8456 yys0->yysemantics.yysval = yys1->yysemantics.yysval;
8457 }
8458 else
8459 {
8460 yySemanticOption** yyz0p = &yys0->yysemantics.yyfirstVal;
8461 yySemanticOption* yyz1 = yys1->yysemantics.yyfirstVal;
8462 while (yytrue)
8463 {
8464 if (yyz1 == *yyz0p || yyz1 == YY_NULLPTR)
8465 break;
8466 else if (*yyz0p == YY_NULLPTR)
8467 {
8468 *yyz0p = yyz1;
8469 break;
8470 }
8471 else if (*yyz0p < yyz1)
8472 {
8473 yySemanticOption* yyz = *yyz0p;
8474 *yyz0p = yyz1;
8475 yyz1 = yyz1->yynext;
8476 (*yyz0p)->yynext = yyz;
8477 }
8478 yyz0p = &(*yyz0p)->yynext;
8479 }
8480 yys1->yysemantics.yyfirstVal = yys0->yysemantics.yyfirstVal;
8481 }
8482 }
8483 }
8484
8485 /** Y0 and Y1 represent two possible actions to take in a given
8486 * parsing state; return 0 if no combination is possible,
8487 * 1 if user-mergeable, 2 if Y0 is preferred, 3 if Y1 is preferred. */
8488 static int
8489 yypreference (yySemanticOption* y0, yySemanticOption* y1)
8490 {
8491 yyRuleNum r0 = y0->yyrule, r1 = y1->yyrule;
8492 int p0 = yydprec[r0], p1 = yydprec[r1];
8493
8494 if (p0 == p1)
8495 {
8496 if (yymerger[r0] == 0 || yymerger[r0] != yymerger[r1])
8497 return 0;
8498 else
8499 return 1;
8500 }
8501 if (p0 == 0 || p1 == 0)
8502 return 0;
8503 if (p0 < p1)
8504 return 3;
8505 if (p1 < p0)
8506 return 2;
8507 return 0;
8508 }
8509
8510 static YYRESULTTAG yyresolveValue (yyGLRState* yys,
8511 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index);
8512
8513
8514 /** Resolve the previous YYN states starting at and including state YYS
8515 * on *YYSTACKP. If result != yyok, some states may have been left
8516 * unresolved possibly with empty semantic option chains. Regardless
8517 * of whether result = yyok, each state has been left with consistent
8518 * data so that yydestroyGLRState can be invoked if necessary. */
8519 static YYRESULTTAG
8520 yyresolveStates (yyGLRState* yys, int yyn,
8521 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8522 {
8523 if (0 < yyn)
8524 {
8525 YYASSERT (yys->yypred);
8526 YYCHK (yyresolveStates (yys->yypred, yyn-1, yystackp, P, tokens, index));
8527 if (! yys->yyresolved)
8528 YYCHK (yyresolveValue (yys, yystackp, P, tokens, index));
8529 }
8530 return yyok;
8531 }
8532
8533 /** Resolve the states for the RHS of YYOPT on *YYSTACKP, perform its
8534 * user action, and return the semantic value and location in *YYVALP
8535 * and *YYLOCP. Regardless of whether result = yyok, all RHS states
8536 * have been destroyed (assuming the user action destroys all RHS
8537 * semantic values if invoked). */
8538 static YYRESULTTAG
8539 yyresolveAction (yySemanticOption* yyopt, yyGLRStack* yystackp,
8540 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8541 {
8542 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
8543 int yynrhs = yyrhsLength (yyopt->yyrule);
8544 YYRESULTTAG yyflag =
8545 yyresolveStates (yyopt->yystate, yynrhs, yystackp, P, tokens, index);
8546 if (yyflag != yyok)
8547 {
8548 yyGLRState *yys;
8549 for (yys = yyopt->yystate; yynrhs > 0; yys = yys->yypred, yynrhs -= 1)
8550 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
8551 return yyflag;
8552 }
8553
8554 yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred = yyopt->yystate;
8555 {
8556 int yychar_current = yychar;
8557 YYSTYPE yylval_current = yylval;
8558 yychar = yyopt->yyrawchar;
8559 yylval = yyopt->yyval;
8560 yyflag = yyuserAction (yyopt->yyrule, yynrhs,
8561 yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
8562 yystackp, yyvalp, P, tokens, index);
8563 yychar = yychar_current;
8564 yylval = yylval_current;
8565 }
8566 return yyflag;
8567 }
8568
8569 #if YYDEBUG
8570 static void
8571 yyreportTree (yySemanticOption* yyx, int yyindent)
8572 {
8573 int yynrhs = yyrhsLength (yyx->yyrule);
8574 int yyi;
8575 yyGLRState* yys;
8576 yyGLRState* yystates[1 + YYMAXRHS];
8577 yyGLRState yyleftmost_state;
8578
8579 for (yyi = yynrhs, yys = yyx->yystate; 0 < yyi; yyi -= 1, yys = yys->yypred)
8580 yystates[yyi] = yys;
8581 if (yys == YY_NULLPTR)
8582 {
8583 yyleftmost_state.yyposn = 0;
8584 yystates[0] = &yyleftmost_state;
8585 }
8586 else
8587 yystates[0] = yys;
8588
8589 if (yyx->yystate->yyposn < yys->yyposn + 1)
8590 YYFPRINTF (stderr, "%*s%s -> <Rule %d, empty>\n",
8591 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
8592 yyx->yyrule - 1);
8593 else
8594 YYFPRINTF (stderr, "%*s%s -> <Rule %d, tokens %lu .. %lu>\n",
8595 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
8596 yyx->yyrule - 1, (unsigned long) (yys->yyposn + 1),
8597 (unsigned long) yyx->yystate->yyposn);
8598 for (yyi = 1; yyi <= yynrhs; yyi += 1)
8599 {
8600 if (yystates[yyi]->yyresolved)
8601 {
8602 if (yystates[yyi-1]->yyposn+1 > yystates[yyi]->yyposn)
8603 YYFPRINTF (stderr, "%*s%s <empty>\n", yyindent+2, "",
8604 yytokenName (yystos[yystates[yyi]->yylrState]));
8605 else
8606 YYFPRINTF (stderr, "%*s%s <tokens %lu .. %lu>\n", yyindent+2, "",
8607 yytokenName (yystos[yystates[yyi]->yylrState]),
8608 (unsigned long) (yystates[yyi-1]->yyposn + 1),
8609 (unsigned long) yystates[yyi]->yyposn);
8610 }
8611 else
8612 yyreportTree (yystates[yyi]->yysemantics.yyfirstVal, yyindent+2);
8613 }
8614 }
8615 #endif
8616
8617 static YYRESULTTAG
8618 yyreportAmbiguity (yySemanticOption* yyx0,
8619 yySemanticOption* yyx1, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8620 {
8621 YYUSE (yyx0);
8622 YYUSE (yyx1);
8623
8624 #if YYDEBUG
8625 YYFPRINTF (stderr, "Ambiguity detected.\n");
8626 YYFPRINTF (stderr, "Option 1,\n");
8627 yyreportTree (yyx0, 2);
8628 YYFPRINTF (stderr, "\nOption 2,\n");
8629 yyreportTree (yyx1, 2);
8630 YYFPRINTF (stderr, "\n");
8631 #endif
8632
8633 yyerror (P, tokens, index, YY_("syntax is ambiguous"));
8634 return yyabort;
8635 }
8636
8637 /** Resolve the ambiguity represented in state YYS in *YYSTACKP,
8638 * perform the indicated actions, and set the semantic value of YYS.
8639 * If result != yyok, the chain of semantic options in YYS has been
8640 * cleared instead or it has been left unmodified except that
8641 * redundant options may have been removed. Regardless of whether
8642 * result = yyok, YYS has been left with consistent data so that
8643 * yydestroyGLRState can be invoked if necessary. */
8644 static YYRESULTTAG
8645 yyresolveValue (yyGLRState* yys, yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8646 {
8647 yySemanticOption* yyoptionList = yys->yysemantics.yyfirstVal;
8648 yySemanticOption* yybest = yyoptionList;
8649 yySemanticOption** yypp;
8650 yybool yymerge = yyfalse;
8651 YYSTYPE yysval;
8652 YYRESULTTAG yyflag;
8653
8654 for (yypp = &yyoptionList->yynext; *yypp != YY_NULLPTR; )
8655 {
8656 yySemanticOption* yyp = *yypp;
8657
8658 if (yyidenticalOptions (yybest, yyp))
8659 {
8660 yymergeOptionSets (yybest, yyp);
8661 *yypp = yyp->yynext;
8662 }
8663 else
8664 {
8665 switch (yypreference (yybest, yyp))
8666 {
8667 case 0:
8668 return yyreportAmbiguity (yybest, yyp, P, tokens, index);
8669 break;
8670 case 1:
8671 yymerge = yytrue;
8672 break;
8673 case 2:
8674 break;
8675 case 3:
8676 yybest = yyp;
8677 yymerge = yyfalse;
8678 break;
8679 default:
8680 /* This cannot happen so it is not worth a YYASSERT (yyfalse),
8681 but some compilers complain if the default case is
8682 omitted. */
8683 break;
8684 }
8685 yypp = &yyp->yynext;
8686 }
8687 }
8688
8689 if (yymerge)
8690 {
8691 yySemanticOption* yyp;
8692 int yyprec = yydprec[yybest->yyrule];
8693 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
8694 if (yyflag == yyok)
8695 for (yyp = yybest->yynext; yyp != YY_NULLPTR; yyp = yyp->yynext)
8696 {
8697 if (yyprec == yydprec[yyp->yyrule])
8698 {
8699 YYSTYPE yysval_other;
8700 yyflag = yyresolveAction (yyp, yystackp, &yysval_other, P, tokens, index);
8701 if (yyflag != yyok)
8702 {
8703 yydestruct ("Cleanup: discarding incompletely merged value for",
8704 yystos[yys->yylrState],
8705 &yysval, P, tokens, index);
8706 break;
8707 }
8708 yyuserMerge (yymerger[yyp->yyrule], &yysval, &yysval_other);
8709 }
8710 }
8711 }
8712 else
8713 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
8714
8715 if (yyflag == yyok)
8716 {
8717 yys->yyresolved = yytrue;
8718 yys->yysemantics.yysval = yysval;
8719 }
8720 else
8721 yys->yysemantics.yyfirstVal = YY_NULLPTR;
8722 return yyflag;
8723 }
8724
8725 static YYRESULTTAG
8726 yyresolveStack (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8727 {
8728 if (yystackp->yysplitPoint != YY_NULLPTR)
8729 {
8730 yyGLRState* yys;
8731 int yyn;
8732
8733 for (yyn = 0, yys = yystackp->yytops.yystates[0];
8734 yys != yystackp->yysplitPoint;
8735 yys = yys->yypred, yyn += 1)
8736 continue;
8737 YYCHK (yyresolveStates (yystackp->yytops.yystates[0], yyn, yystackp
8738 , P, tokens, index));
8739 }
8740 return yyok;
8741 }
8742
8743 static void
8744 yycompressStack (yyGLRStack* yystackp)
8745 {
8746 yyGLRState* yyp, *yyq, *yyr;
8747
8748 if (yystackp->yytops.yysize != 1 || yystackp->yysplitPoint == YY_NULLPTR)
8749 return;
8750
8751 for (yyp = yystackp->yytops.yystates[0], yyq = yyp->yypred, yyr = YY_NULLPTR;
8752 yyp != yystackp->yysplitPoint;
8753 yyr = yyp, yyp = yyq, yyq = yyp->yypred)
8754 yyp->yypred = yyr;
8755
8756 yystackp->yyspaceLeft += (size_t) (yystackp->yynextFree - yystackp->yyitems);
8757 yystackp->yynextFree = ((yyGLRStackItem*) yystackp->yysplitPoint) + 1;
8758 yystackp->yyspaceLeft -= (size_t) (yystackp->yynextFree - yystackp->yyitems);
8759 yystackp->yysplitPoint = YY_NULLPTR;
8760 yystackp->yylastDeleted = YY_NULLPTR;
8761
8762 while (yyr != YY_NULLPTR)
8763 {
8764 yystackp->yynextFree->yystate = *yyr;
8765 yyr = yyr->yypred;
8766 yystackp->yynextFree->yystate.yypred = &yystackp->yynextFree[-1].yystate;
8767 yystackp->yytops.yystates[0] = &yystackp->yynextFree->yystate;
8768 yystackp->yynextFree += 1;
8769 yystackp->yyspaceLeft -= 1;
8770 }
8771 }
8772
8773 static YYRESULTTAG
8774 yyprocessOneStack (yyGLRStack* yystackp, size_t yyk,
8775 size_t yyposn, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8776 {
8777 while (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
8778 {
8779 yyStateNum yystate = yystackp->yytops.yystates[yyk]->yylrState;
8780 YYDPRINTF ((stderr, "Stack %lu Entering state %d\n",
8781 (unsigned long) yyk, yystate));
8782
8783 YYASSERT (yystate != YYFINAL);
8784
8785 if (yyisDefaultedState (yystate))
8786 {
8787 YYRESULTTAG yyflag;
8788 yyRuleNum yyrule = yydefaultAction (yystate);
8789 if (yyrule == 0)
8790 {
8791 YYDPRINTF ((stderr, "Stack %lu dies.\n",
8792 (unsigned long) yyk));
8793 yymarkStackDeleted (yystackp, yyk);
8794 return yyok;
8795 }
8796 yyflag = yyglrReduce (yystackp, yyk, yyrule, yyimmediate[yyrule], P, tokens, index);
8797 if (yyflag == yyerr)
8798 {
8799 YYDPRINTF ((stderr,
8800 "Stack %lu dies "
8801 "(predicate failure or explicit user error).\n",
8802 (unsigned long) yyk));
8803 yymarkStackDeleted (yystackp, yyk);
8804 return yyok;
8805 }
8806 if (yyflag != yyok)
8807 return yyflag;
8808 }
8809 else
8810 {
8811 yySymbol yytoken;
8812 int yyaction;
8813 const short* yyconflicts;
8814
8815 yystackp->yytops.yylookaheadNeeds[yyk] = yytrue;
8816 if (yychar == YYEMPTY)
8817 {
8818 YYDPRINTF ((stderr, "Reading a token: "));
8819 yychar = yylex (&yylval, P, tokens, index);
8820 }
8821
8822 if (yychar <= YYEOF)
8823 {
8824 yychar = yytoken = YYEOF;
8825 YYDPRINTF ((stderr, "Now at end of input.\n"));
8826 }
8827 else
8828 {
8829 yytoken = YYTRANSLATE (yychar);
8830 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
8831 }
8832
8833 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
8834
8835 while (*yyconflicts != 0)
8836 {
8837 YYRESULTTAG yyflag;
8838 size_t yynewStack = yysplitStack (yystackp, yyk);
8839 YYDPRINTF ((stderr, "Splitting off stack %lu from %lu.\n",
8840 (unsigned long) yynewStack,
8841 (unsigned long) yyk));
8842 yyflag = yyglrReduce (yystackp, yynewStack,
8843 *yyconflicts,
8844 yyimmediate[*yyconflicts], P, tokens, index);
8845 if (yyflag == yyok)
8846 YYCHK (yyprocessOneStack (yystackp, yynewStack,
8847 yyposn, P, tokens, index));
8848 else if (yyflag == yyerr)
8849 {
8850 YYDPRINTF ((stderr, "Stack %lu dies.\n",
8851 (unsigned long) yynewStack));
8852 yymarkStackDeleted (yystackp, yynewStack);
8853 }
8854 else
8855 return yyflag;
8856 yyconflicts += 1;
8857 }
8858
8859 if (yyisShiftAction (yyaction))
8860 break;
8861 else if (yyisErrorAction (yyaction))
8862 {
8863 YYDPRINTF ((stderr, "Stack %lu dies.\n",
8864 (unsigned long) yyk));
8865 yymarkStackDeleted (yystackp, yyk);
8866 break;
8867 }
8868 else
8869 {
8870 YYRESULTTAG yyflag = yyglrReduce (yystackp, yyk, -yyaction,
8871 yyimmediate[-yyaction], P, tokens, index);
8872 if (yyflag == yyerr)
8873 {
8874 YYDPRINTF ((stderr,
8875 "Stack %lu dies "
8876 "(predicate failure or explicit user error).\n",
8877 (unsigned long) yyk));
8878 yymarkStackDeleted (yystackp, yyk);
8879 break;
8880 }
8881 else if (yyflag != yyok)
8882 return yyflag;
8883 }
8884 }
8885 }
8886 return yyok;
8887 }
8888
8889 static void
8890 yyreportSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8891 {
8892 if (yystackp->yyerrState != 0)
8893 return;
8894 #if ! YYERROR_VERBOSE
8895 yyerror (P, tokens, index, YY_("syntax error"));
8896 #else
8897 {
8898 yySymbol yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
8899 size_t yysize0 = yytnamerr (YY_NULLPTR, yytokenName (yytoken));
8900 size_t yysize = yysize0;
8901 yybool yysize_overflow = yyfalse;
8902 char* yymsg = YY_NULLPTR;
8903 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
8904 /* Internationalized format string. */
8905 const char *yyformat = YY_NULLPTR;
8906 /* Arguments of yyformat. */
8907 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
8908 /* Number of reported tokens (one for the "unexpected", one per
8909 "expected"). */
8910 int yycount = 0;
8911
8912 /* There are many possibilities here to consider:
8913 - If this state is a consistent state with a default action, then
8914 the only way this function was invoked is if the default action
8915 is an error action. In that case, don't check for expected
8916 tokens because there are none.
8917 - The only way there can be no lookahead present (in yychar) is if
8918 this state is a consistent state with a default action. Thus,
8919 detecting the absence of a lookahead is sufficient to determine
8920 that there is no unexpected or expected token to report. In that
8921 case, just report a simple "syntax error".
8922 - Don't assume there isn't a lookahead just because this state is a
8923 consistent state with a default action. There might have been a
8924 previous inconsistent state, consistent state with a non-default
8925 action, or user semantic action that manipulated yychar.
8926 - Of course, the expected token list depends on states to have
8927 correct lookahead information, and it depends on the parser not
8928 to perform extra reductions after fetching a lookahead from the
8929 scanner and before detecting a syntax error. Thus, state merging
8930 (from LALR or IELR) and default reductions corrupt the expected
8931 token list. However, the list is correct for canonical LR with
8932 one exception: it will still contain any token that will not be
8933 accepted due to an error action in a later state.
8934 */
8935 if (yytoken != YYEMPTY)
8936 {
8937 int yyn = yypact[yystackp->yytops.yystates[0]->yylrState];
8938 yyarg[yycount++] = yytokenName (yytoken);
8939 if (!yypact_value_is_default (yyn))
8940 {
8941 /* Start YYX at -YYN if negative to avoid negative indexes in
8942 YYCHECK. In other words, skip the first -YYN actions for this
8943 state because they are default actions. */
8944 int yyxbegin = yyn < 0 ? -yyn : 0;
8945 /* Stay within bounds of both yycheck and yytname. */
8946 int yychecklim = YYLAST - yyn + 1;
8947 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
8948 int yyx;
8949 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
8950 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
8951 && !yytable_value_is_error (yytable[yyx + yyn]))
8952 {
8953 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
8954 {
8955 yycount = 1;
8956 yysize = yysize0;
8957 break;
8958 }
8959 yyarg[yycount++] = yytokenName (yyx);
8960 {
8961 size_t yysz = yysize + yytnamerr (YY_NULLPTR, yytokenName (yyx));
8962 if (yysz < yysize)
8963 yysize_overflow = yytrue;
8964 yysize = yysz;
8965 }
8966 }
8967 }
8968 }
8969
8970 switch (yycount)
8971 {
8972 #define YYCASE_(N, S) \
8973 case N: \
8974 yyformat = S; \
8975 break
8976 default: /* Avoid compiler warnings. */
8977 YYCASE_(0, YY_("syntax error"));
8978 YYCASE_(1, YY_("syntax error, unexpected %s"));
8979 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
8980 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
8981 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
8982 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
8983 #undef YYCASE_
8984 }
8985
8986 {
8987 size_t yysz = yysize + strlen (yyformat);
8988 if (yysz < yysize)
8989 yysize_overflow = yytrue;
8990 yysize = yysz;
8991 }
8992
8993 if (!yysize_overflow)
8994 yymsg = (char *) YYMALLOC (yysize);
8995
8996 if (yymsg)
8997 {
8998 char *yyp = yymsg;
8999 int yyi = 0;
9000 while ((*yyp = *yyformat))
9001 {
9002 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
9003 {
9004 yyp += yytnamerr (yyp, yyarg[yyi++]);
9005 yyformat += 2;
9006 }
9007 else
9008 {
9009 yyp++;
9010 yyformat++;
9011 }
9012 }
9013 yyerror (P, tokens, index, yymsg);
9014 YYFREE (yymsg);
9015 }
9016 else
9017 {
9018 yyerror (P, tokens, index, YY_("syntax error"));
9019 yyMemoryExhausted (yystackp);
9020 }
9021 }
9022 #endif /* YYERROR_VERBOSE */
9023 yynerrs += 1;
9024 }
9025
9026 /* Recover from a syntax error on *YYSTACKP, assuming that *YYSTACKP->YYTOKENP,
9027 yylval, and yylloc are the syntactic category, semantic value, and location
9028 of the lookahead. */
9029 static void
9030 yyrecoverSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
9031 {
9032 size_t yyk;
9033 int yyj;
9034
9035 if (yystackp->yyerrState == 3)
9036 /* We just shifted the error token and (perhaps) took some
9037 reductions. Skip tokens until we can proceed. */
9038 while (yytrue)
9039 {
9040 yySymbol yytoken;
9041 if (yychar == YYEOF)
9042 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
9043 if (yychar != YYEMPTY)
9044 {
9045 yytoken = YYTRANSLATE (yychar);
9046 yydestruct ("Error: discarding",
9047 yytoken, &yylval, P, tokens, index);
9048 }
9049 YYDPRINTF ((stderr, "Reading a token: "));
9050 yychar = yylex (&yylval, P, tokens, index);
9051 if (yychar <= YYEOF)
9052 {
9053 yychar = yytoken = YYEOF;
9054 YYDPRINTF ((stderr, "Now at end of input.\n"));
9055 }
9056 else
9057 {
9058 yytoken = YYTRANSLATE (yychar);
9059 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
9060 }
9061 yyj = yypact[yystackp->yytops.yystates[0]->yylrState];
9062 if (yypact_value_is_default (yyj))
9063 return;
9064 yyj += yytoken;
9065 if (yyj < 0 || YYLAST < yyj || yycheck[yyj] != yytoken)
9066 {
9067 if (yydefact[yystackp->yytops.yystates[0]->yylrState] != 0)
9068 return;
9069 }
9070 else if (! yytable_value_is_error (yytable[yyj]))
9071 return;
9072 }
9073
9074 /* Reduce to one stack. */
9075 for (yyk = 0; yyk < yystackp->yytops.yysize; yyk += 1)
9076 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
9077 break;
9078 if (yyk >= yystackp->yytops.yysize)
9079 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
9080 for (yyk += 1; yyk < yystackp->yytops.yysize; yyk += 1)
9081 yymarkStackDeleted (yystackp, yyk);
9082 yyremoveDeletes (yystackp);
9083 yycompressStack (yystackp);
9084
9085 /* Now pop stack until we find a state that shifts the error token. */
9086 yystackp->yyerrState = 3;
9087 while (yystackp->yytops.yystates[0] != YY_NULLPTR)
9088 {
9089 yyGLRState *yys = yystackp->yytops.yystates[0];
9090 yyj = yypact[yys->yylrState];
9091 if (! yypact_value_is_default (yyj))
9092 {
9093 yyj += YYTERROR;
9094 if (0 <= yyj && yyj <= YYLAST && yycheck[yyj] == YYTERROR
9095 && yyisShiftAction (yytable[yyj]))
9096 {
9097 /* Shift the error token. */
9098 YY_SYMBOL_PRINT ("Shifting", yystos[yytable[yyj]],
9099 &yylval, &yyerrloc);
9100 yyglrShift (yystackp, 0, yytable[yyj],
9101 yys->yyposn, &yylval);
9102 yys = yystackp->yytops.yystates[0];
9103 break;
9104 }
9105 }
9106 if (yys->yypred != YY_NULLPTR)
9107 yydestroyGLRState ("Error: popping", yys, P, tokens, index);
9108 yystackp->yytops.yystates[0] = yys->yypred;
9109 yystackp->yynextFree -= 1;
9110 yystackp->yyspaceLeft += 1;
9111 }
9112 if (yystackp->yytops.yystates[0] == YY_NULLPTR)
9113 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
9114 }
9115
9116 #define YYCHK1(YYE) \
9117 do { \
9118 switch (YYE) { \
9119 case yyok: \
9120 break; \
9121 case yyabort: \
9122 goto yyabortlab; \
9123 case yyaccept: \
9124 goto yyacceptlab; \
9125 case yyerr: \
9126 goto yyuser_error; \
9127 default: \
9128 goto yybuglab; \
9129 } \
9130 } while (0)
9131
9132 /*----------.
9133 | yyparse. |
9134 `----------*/
9135
9136 int
9137 yyparse (struct psi_parser *P, struct psi_plist *tokens, size_t *index)
9138 {
9139 int yyresult;
9140 yyGLRStack yystack;
9141 yyGLRStack* const yystackp = &yystack;
9142 size_t yyposn;
9143
9144 YYDPRINTF ((stderr, "Starting parse\n"));
9145
9146 yychar = YYEMPTY;
9147 yylval = yyval_default;
9148
9149 /* User initialization code. */
9150 #line 127 "src/parser_proc_grammar.y" /* glr.c:2265 */
9151 {
9152 }
9153
9154 #line 9155 "src/parser_proc.c" /* glr.c:2265 */
9155
9156 if (! yyinitGLRStack (yystackp, YYINITDEPTH))
9157 goto yyexhaustedlab;
9158 switch (YYSETJMP (yystack.yyexception_buffer))
9159 {
9160 case 0: break;
9161 case 1: goto yyabortlab;
9162 case 2: goto yyexhaustedlab;
9163 default: goto yybuglab;
9164 }
9165 yyglrShift (&yystack, 0, 0, 0, &yylval);
9166 yyposn = 0;
9167
9168 while (yytrue)
9169 {
9170 /* For efficiency, we have two loops, the first of which is
9171 specialized to deterministic operation (single stack, no
9172 potential ambiguity). */
9173 /* Standard mode */
9174 while (yytrue)
9175 {
9176 yyRuleNum yyrule;
9177 int yyaction;
9178 const short* yyconflicts;
9179
9180 yyStateNum yystate = yystack.yytops.yystates[0]->yylrState;
9181 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
9182 if (yystate == YYFINAL)
9183 goto yyacceptlab;
9184 if (yyisDefaultedState (yystate))
9185 {
9186 yyrule = yydefaultAction (yystate);
9187 if (yyrule == 0)
9188 {
9189 yyreportSyntaxError (&yystack, P, tokens, index);
9190 goto yyuser_error;
9191 }
9192 YYCHK1 (yyglrReduce (&yystack, 0, yyrule, yytrue, P, tokens, index));
9193 }
9194 else
9195 {
9196 yySymbol yytoken;
9197 if (yychar == YYEMPTY)
9198 {
9199 YYDPRINTF ((stderr, "Reading a token: "));
9200 yychar = yylex (&yylval, P, tokens, index);
9201 }
9202
9203 if (yychar <= YYEOF)
9204 {
9205 yychar = yytoken = YYEOF;
9206 YYDPRINTF ((stderr, "Now at end of input.\n"));
9207 }
9208 else
9209 {
9210 yytoken = YYTRANSLATE (yychar);
9211 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
9212 }
9213
9214 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
9215 if (*yyconflicts != 0)
9216 break;
9217 if (yyisShiftAction (yyaction))
9218 {
9219 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
9220 yychar = YYEMPTY;
9221 yyposn += 1;
9222 yyglrShift (&yystack, 0, yyaction, yyposn, &yylval);
9223 if (0 < yystack.yyerrState)
9224 yystack.yyerrState -= 1;
9225 }
9226 else if (yyisErrorAction (yyaction))
9227 {
9228 yyreportSyntaxError (&yystack, P, tokens, index);
9229 goto yyuser_error;
9230 }
9231 else
9232 YYCHK1 (yyglrReduce (&yystack, 0, -yyaction, yytrue, P, tokens, index));
9233 }
9234 }
9235
9236 while (yytrue)
9237 {
9238 yySymbol yytoken_to_shift;
9239 size_t yys;
9240
9241 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
9242 yystackp->yytops.yylookaheadNeeds[yys] = (yybool) (yychar != YYEMPTY);
9243
9244 /* yyprocessOneStack returns one of three things:
9245
9246 - An error flag. If the caller is yyprocessOneStack, it
9247 immediately returns as well. When the caller is finally
9248 yyparse, it jumps to an error label via YYCHK1.
9249
9250 - yyok, but yyprocessOneStack has invoked yymarkStackDeleted
9251 (&yystack, yys), which sets the top state of yys to NULL. Thus,
9252 yyparse's following invocation of yyremoveDeletes will remove
9253 the stack.
9254
9255 - yyok, when ready to shift a token.
9256
9257 Except in the first case, yyparse will invoke yyremoveDeletes and
9258 then shift the next token onto all remaining stacks. This
9259 synchronization of the shift (that is, after all preceding
9260 reductions on all stacks) helps prevent double destructor calls
9261 on yylval in the event of memory exhaustion. */
9262
9263 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
9264 YYCHK1 (yyprocessOneStack (&yystack, yys, yyposn, P, tokens, index));
9265 yyremoveDeletes (&yystack);
9266 if (yystack.yytops.yysize == 0)
9267 {
9268 yyundeleteLastStack (&yystack);
9269 if (yystack.yytops.yysize == 0)
9270 yyFail (&yystack, P, tokens, index, YY_("syntax error"));
9271 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
9272 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
9273 yyreportSyntaxError (&yystack, P, tokens, index);
9274 goto yyuser_error;
9275 }
9276
9277 /* If any yyglrShift call fails, it will fail after shifting. Thus,
9278 a copy of yylval will already be on stack 0 in the event of a
9279 failure in the following loop. Thus, yychar is set to YYEMPTY
9280 before the loop to make sure the user destructor for yylval isn't
9281 called twice. */
9282 yytoken_to_shift = YYTRANSLATE (yychar);
9283 yychar = YYEMPTY;
9284 yyposn += 1;
9285 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
9286 {
9287 int yyaction;
9288 const short* yyconflicts;
9289 yyStateNum yystate = yystack.yytops.yystates[yys]->yylrState;
9290 yygetLRActions (yystate, yytoken_to_shift, &yyaction,
9291 &yyconflicts);
9292 /* Note that yyconflicts were handled by yyprocessOneStack. */
9293 YYDPRINTF ((stderr, "On stack %lu, ", (unsigned long) yys));
9294 YY_SYMBOL_PRINT ("shifting", yytoken_to_shift, &yylval, &yylloc);
9295 yyglrShift (&yystack, yys, yyaction, yyposn,
9296 &yylval);
9297 YYDPRINTF ((stderr, "Stack %lu now in state #%d\n",
9298 (unsigned long) yys,
9299 yystack.yytops.yystates[yys]->yylrState));
9300 }
9301
9302 if (yystack.yytops.yysize == 1)
9303 {
9304 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
9305 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
9306 yycompressStack (&yystack);
9307 break;
9308 }
9309 }
9310 continue;
9311 yyuser_error:
9312 yyrecoverSyntaxError (&yystack, P, tokens, index);
9313 yyposn = yystack.yytops.yystates[0]->yyposn;
9314 }
9315
9316 yyacceptlab:
9317 yyresult = 0;
9318 goto yyreturn;
9319
9320 yybuglab:
9321 YYASSERT (yyfalse);
9322 goto yyabortlab;
9323
9324 yyabortlab:
9325 yyresult = 1;
9326 goto yyreturn;
9327
9328 yyexhaustedlab:
9329 yyerror (P, tokens, index, YY_("memory exhausted"));
9330 yyresult = 2;
9331 goto yyreturn;
9332
9333 yyreturn:
9334 if (yychar != YYEMPTY)
9335 yydestruct ("Cleanup: discarding lookahead",
9336 YYTRANSLATE (yychar), &yylval, P, tokens, index);
9337
9338 /* If the stack is well-formed, pop the stack until it is empty,
9339 destroying its entries as we go. But free the stack regardless
9340 of whether it is well-formed. */
9341 if (yystack.yyitems)
9342 {
9343 yyGLRState** yystates = yystack.yytops.yystates;
9344 if (yystates)
9345 {
9346 size_t yysize = yystack.yytops.yysize;
9347 size_t yyk;
9348 for (yyk = 0; yyk < yysize; yyk += 1)
9349 if (yystates[yyk])
9350 {
9351 while (yystates[yyk])
9352 {
9353 yyGLRState *yys = yystates[yyk];
9354 if (yys->yypred != YY_NULLPTR)
9355 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
9356 yystates[yyk] = yys->yypred;
9357 yystack.yynextFree -= 1;
9358 yystack.yyspaceLeft += 1;
9359 }
9360 break;
9361 }
9362 }
9363 yyfreeGLRStack (&yystack);
9364 }
9365
9366 return yyresult;
9367 }
9368
9369 /* DEBUGGING ONLY */
9370 #if YYDEBUG
9371 static void
9372 yy_yypstack (yyGLRState* yys)
9373 {
9374 if (yys->yypred)
9375 {
9376 yy_yypstack (yys->yypred);
9377 YYFPRINTF (stderr, " -> ");
9378 }
9379 YYFPRINTF (stderr, "%d@%lu", yys->yylrState,
9380 (unsigned long) yys->yyposn);
9381 }
9382
9383 static void
9384 yypstates (yyGLRState* yyst)
9385 {
9386 if (yyst == YY_NULLPTR)
9387 YYFPRINTF (stderr, "<null>");
9388 else
9389 yy_yypstack (yyst);
9390 YYFPRINTF (stderr, "\n");
9391 }
9392
9393 static void
9394 yypstack (yyGLRStack* yystackp, size_t yyk)
9395 {
9396 yypstates (yystackp->yytops.yystates[yyk]);
9397 }
9398
9399 #define YYINDEX(YYX) \
9400 ((YYX) == YY_NULLPTR ? -1 : (yyGLRStackItem*) (YYX) - yystackp->yyitems)
9401
9402
9403 static void
9404 yypdumpstack (yyGLRStack* yystackp)
9405 {
9406 yyGLRStackItem* yyp;
9407 size_t yyi;
9408 for (yyp = yystackp->yyitems; yyp < yystackp->yynextFree; yyp += 1)
9409 {
9410 YYFPRINTF (stderr, "%3lu. ",
9411 (unsigned long) (yyp - yystackp->yyitems));
9412 if (*(yybool *) yyp)
9413 {
9414 YYASSERT (yyp->yystate.yyisState);
9415 YYASSERT (yyp->yyoption.yyisState);
9416 YYFPRINTF (stderr, "Res: %d, LR State: %d, posn: %lu, pred: %ld",
9417 yyp->yystate.yyresolved, yyp->yystate.yylrState,
9418 (unsigned long) yyp->yystate.yyposn,
9419 (long) YYINDEX (yyp->yystate.yypred));
9420 if (! yyp->yystate.yyresolved)
9421 YYFPRINTF (stderr, ", firstVal: %ld",
9422 (long) YYINDEX (yyp->yystate
9423 .yysemantics.yyfirstVal));
9424 }
9425 else
9426 {
9427 YYASSERT (!yyp->yystate.yyisState);
9428 YYASSERT (!yyp->yyoption.yyisState);
9429 YYFPRINTF (stderr, "Option. rule: %d, state: %ld, next: %ld",
9430 yyp->yyoption.yyrule - 1,
9431 (long) YYINDEX (yyp->yyoption.yystate),
9432 (long) YYINDEX (yyp->yyoption.yynext));
9433 }
9434 YYFPRINTF (stderr, "\n");
9435 }
9436 YYFPRINTF (stderr, "Tops:");
9437 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
9438 YYFPRINTF (stderr, "%lu: %ld; ", (unsigned long) yyi,
9439 (long) YYINDEX (yystackp->yytops.yystates[yyi]));
9440 YYFPRINTF (stderr, "\n");
9441 }
9442 #endif
9443
9444 #undef yylval
9445 #undef yychar
9446 #undef yynerrs
9447
9448 /* Substitute the variable and function names. */
9449 #define yyparse psi_parser_proc_parse
9450 #define yylex psi_parser_proc_lex
9451 #define yyerror psi_parser_proc_error
9452 #define yylval psi_parser_proc_lval
9453 #define yychar psi_parser_proc_char
9454 #define yydebug psi_parser_proc_debug
9455 #define yynerrs psi_parser_proc_nerrs
9456
9457 #line 2294 "src/parser_proc_grammar.y" /* glr.c:2578 */
9458
9459
9460 /* epilogue */
9461
9462 #define PSI_DEBUG_LEX 0
9463 static int psi_parser_proc_lex(YYSTYPE *lvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
9464 {
9465 struct psi_token *token;
9466 #if PSI_DEBUG_LEX
9467 PSI_DEBUG_PRINT(P, "PSI: LEX index %4zu ", *index);
9468 #endif
9469 if (psi_plist_get(tokens, (*index)++, &token) && token) {
9470 #if PSI_DEBUG_LEX
9471 PSI_DEBUG_DUMP(P, psi_token_dump, token);
9472 #endif
9473 *((struct psi_token **)lvalp) = token;
9474 return token->type;
9475 } else {
9476 #if PSI_DEBUG_LEX
9477 PSI_DEBUG_PRINT(P, "EOF\n");
9478 #endif
9479 (*index)--;
9480 }
9481
9482 return PSI_T_EOF;
9483 }
9484
9485 static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char *msg)
9486 {
9487 struct psi_token *T = NULL;
9488 size_t last;
9489
9490 if (*index == 0) {
9491 last = 0;
9492 } else {
9493 last = --(*index);
9494 }
9495
9496 psi_plist_get(tokens, last, &T);
9497 if (T) {
9498 size_t i = (last >= 5) ? last - 5 : 0;
9499
9500 P->error(PSI_DATA(P), T, PSI_WARNING, "PSI %s at col %u", msg, T->col);
9501 while (i <= last || T->type != PSI_T_EOS) {
9502 const char *pos;
9503
9504 if (!psi_plist_get(tokens, i++, &T)) {
9505 break;
9506 }
9507
9508 if (i < last + 1) {
9509 pos = "preceding";
9510 } else if (i > last + 1) {
9511 pos = "following";
9512 } else {
9513 pos = "offending";
9514 }
9515
9516 P->error(PSI_DATA(P), T, PSI_WARNING, "PSI %s token '%s' at col %u",
9517 pos, T ? T->text->val : "<deleted>", T ? T->col : 0);
9518 }
9519 } else {
9520 P->error(PSI_DATA(P), NULL, PSI_WARNING, "PSI %s", msg);
9521 }
9522 P->errors++;
9523 }
9524