travis: update
[m6w6/ext-psi] / src / parser_proc.c
1 /* A Bison parser, made by GNU Bison 3.2. */
2
3 /* Skeleton implementation for Bison GLR parsers in C
4
5 Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc.
6
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
20 /* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
29
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
32
33 /* C GLR parser skeleton written by Paul Hilfinger. */
34
35 /* Undocumented macros, especially those whose name start with YY_,
36 are private implementation details. Do not rely on them. */
37
38 /* Identify Bison output. */
39 #define YYBISON 1
40
41 /* Bison version. */
42 #define YYBISON_VERSION "3.2"
43
44 /* Skeleton name. */
45 #define YYSKELETON_NAME "glr.c"
46
47 /* Pure parsers. */
48 #define YYPURE 1
49
50
51 /* "%code top" blocks. */
52 #line 1 "src/parser_proc_grammar.y" /* glr.c:221 */
53
54 #ifdef HAVE_CONFIG_H
55 # include "config.h"
56 #else
57 # include "php_config.h"
58 #endif
59
60 #line 61 "src/parser_proc.c" /* glr.c:221 */
61
62
63 /* Substitute the variable and function names. */
64 #define yyparse psi_parser_proc_parse
65 #define yylex psi_parser_proc_lex
66 #define yyerror psi_parser_proc_error
67 #define yydebug psi_parser_proc_debug
68
69
70
71
72 # ifndef YY_NULLPTR
73 # if defined __cplusplus
74 # if 201103L <= __cplusplus
75 # define YY_NULLPTR nullptr
76 # else
77 # define YY_NULLPTR 0
78 # endif
79 # else
80 # define YY_NULLPTR ((void*)0)
81 # endif
82 # endif
83
84 #include "parser_proc.h"
85
86 /* Enabling verbose error messages. */
87 #ifdef YYERROR_VERBOSE
88 # undef YYERROR_VERBOSE
89 # define YYERROR_VERBOSE 1
90 #else
91 # define YYERROR_VERBOSE 1
92 #endif
93
94 /* Default (constant) value used for initialization for null
95 right-hand sides. Unlike the standard yacc.c template, here we set
96 the default value of $$ to a zeroed-out value. Since the default
97 value is undefined, this behavior is technically correct. */
98 static YYSTYPE yyval_default;
99
100
101 /* Unqualified %code blocks. */
102 #line 9 "src/parser_proc_grammar.y" /* glr.c:261 */
103
104 #include <assert.h>
105 #include <stdarg.h>
106
107 #include "plist.h"
108 #include "parser.h"
109
110 #define YYDEBUG 1
111 #define PSI_PARSER_PROC_DEBUG 1
112
113 static int psi_parser_proc_lex(YYSTYPE *u, struct psi_parser *P, struct psi_plist *tokens, size_t *index);
114 static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char *msg);
115
116 static inline void psi_parser_proc_add_struct(struct psi_parser *P, struct psi_decl_struct *strct)
117 {
118 assert(strct);
119 if (!P->structs) {
120 P->structs = psi_plist_init((psi_plist_dtor) psi_decl_struct_free);
121 }
122 P->structs = psi_plist_add(P->structs, &strct);
123 }
124 static inline void psi_parser_proc_add_union(struct psi_parser *P, struct psi_decl_union *u)
125 {
126 assert(u);
127 if (!P->unions) {
128 P->unions = psi_plist_init((psi_plist_dtor) psi_decl_union_free);
129 }
130 P->unions = psi_plist_add(P->unions, &u);
131 }
132 static inline void psi_parser_proc_add_enum(struct psi_parser *P, struct psi_decl_enum *e)
133 {
134 assert(e);
135 if (!P->enums) {
136 P->enums = psi_plist_init((psi_plist_dtor) psi_decl_enum_free);
137 }
138 P->enums = psi_plist_add(P->enums, &e);
139 }
140 static inline void psi_parser_proc_add_typedef(struct psi_parser *P, struct psi_decl_arg *def)
141 {
142 assert(def);
143 if (!P->types) {
144 P->types = psi_plist_init((psi_plist_dtor) psi_decl_arg_free);
145 }
146 P->types = psi_plist_add(P->types, &def);
147 }
148 static inline void psi_parser_proc_add_const(struct psi_parser *P, struct psi_const *cnst) {
149 assert(cnst);
150 if (!P->consts) {
151 P->consts = psi_plist_init((psi_plist_dtor) psi_const_free);
152 }
153 P->consts = psi_plist_add(P->consts, &cnst);
154
155 }
156 static inline void psi_parser_proc_add_decl(struct psi_parser *P, struct psi_decl *decl) {
157 assert(decl);
158
159 if (psi_decl_is_blacklisted(decl->func->var->name->val)) {
160 psi_decl_free(&decl);
161 return;
162 }
163
164 if (!P->decls) {
165 P->decls = psi_plist_init((psi_plist_dtor) psi_decl_free);
166 }
167 P->decls = psi_plist_add(P->decls, &decl);
168 }
169 static inline void psi_parser_proc_add_decl_extvars(struct psi_parser *P, struct psi_plist *list) {
170 assert(list);
171 if (!P->vars) {
172 P->vars = psi_plist_init((psi_plist_dtor) psi_decl_extvar_free);
173 }
174 P->vars = psi_plist_add_r(P->vars, psi_plist_count(list), psi_plist_eles(list));
175 free(list);
176 }
177 static inline void psi_parser_proc_add_impl(struct psi_parser *P, struct psi_impl *impl) {
178 assert(impl);
179 if (!P->impls) {
180 P->impls = psi_plist_init((psi_plist_dtor) psi_impl_free);
181 }
182 P->impls = psi_plist_add(P->impls, &impl);
183 }
184
185 /* end code */
186
187 #line 188 "src/parser_proc.c" /* glr.c:261 */
188
189 #include <stdio.h>
190 #include <stdlib.h>
191 #include <string.h>
192
193 #ifndef YY_
194 # if defined YYENABLE_NLS && YYENABLE_NLS
195 # if ENABLE_NLS
196 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
197 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
198 # endif
199 # endif
200 # ifndef YY_
201 # define YY_(Msgid) Msgid
202 # endif
203 #endif
204
205 #ifndef YYFREE
206 # define YYFREE free
207 #endif
208 #ifndef YYMALLOC
209 # define YYMALLOC malloc
210 #endif
211 #ifndef YYREALLOC
212 # define YYREALLOC realloc
213 #endif
214
215 #define YYSIZEMAX ((size_t) -1)
216
217 #ifdef __cplusplus
218 typedef bool yybool;
219 # define yytrue true
220 # define yyfalse false
221 #else
222 /* When we move to stdbool, get rid of the various casts to yybool. */
223 typedef unsigned char yybool;
224 # define yytrue 1
225 # define yyfalse 0
226 #endif
227
228 #ifndef YYSETJMP
229 # include <setjmp.h>
230 # define YYJMP_BUF jmp_buf
231 # define YYSETJMP(Env) setjmp (Env)
232 /* Pacify Clang and ICC. */
233 # define YYLONGJMP(Env, Val) \
234 do { \
235 longjmp (Env, Val); \
236 YYASSERT (0); \
237 } while (yyfalse)
238 #endif
239
240 #ifndef YY_ATTRIBUTE
241 # if (defined __GNUC__ \
242 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
243 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
244 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
245 # else
246 # define YY_ATTRIBUTE(Spec) /* empty */
247 # endif
248 #endif
249
250 #ifndef YY_ATTRIBUTE_PURE
251 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
252 #endif
253
254 #ifndef YY_ATTRIBUTE_UNUSED
255 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
256 #endif
257
258 #if !defined _Noreturn \
259 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
260 # if defined _MSC_VER && 1200 <= _MSC_VER
261 # define _Noreturn __declspec (noreturn)
262 # else
263 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
264 # endif
265 #endif
266
267 /* Suppress unused-variable warnings by "using" E. */
268 #if ! defined lint || defined __GNUC__
269 # define YYUSE(E) ((void) (E))
270 #else
271 # define YYUSE(E) /* empty */
272 #endif
273
274 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
275 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
276 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
277 _Pragma ("GCC diagnostic push") \
278 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
279 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
280 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
281 _Pragma ("GCC diagnostic pop")
282 #else
283 # define YY_INITIAL_VALUE(Value) Value
284 #endif
285 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
286 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
287 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
288 #endif
289 #ifndef YY_INITIAL_VALUE
290 # define YY_INITIAL_VALUE(Value) /* Nothing. */
291 #endif
292
293
294 #ifndef YYASSERT
295 # define YYASSERT(Condition) ((void) ((Condition) || (abort (), 0)))
296 #endif
297
298 /* YYFINAL -- State number of the termination state. */
299 #define YYFINAL 161
300 /* YYLAST -- Last index in YYTABLE. */
301 #define YYLAST 7875
302
303 /* YYNTOKENS -- Number of terminals. */
304 #define YYNTOKENS 138
305 /* YYNNTS -- Number of nonterminals. */
306 #define YYNNTS 142
307 /* YYNRULES -- Number of rules. */
308 #define YYNRULES 629
309 /* YYNRULES -- Number of states. */
310 #define YYNSTATES 938
311 /* YYMAXRHS -- Maximum number of symbols on right-hand side of rule. */
312 #define YYMAXRHS 16
313 /* YYMAXLEFT -- Maximum number of symbols to the left of a handle
314 accessed by $0, $-1, etc., in any rule. */
315 #define YYMAXLEFT 0
316
317 /* YYTRANSLATE(X) -- Bison symbol number corresponding to X. */
318 #define YYUNDEFTOK 2
319 #define YYMAXUTOK 392
320
321 #define YYTRANSLATE(YYX) \
322 ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
323
324 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
325 static const unsigned char yytranslate[] =
326 {
327 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
328 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
329 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
330 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
331 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
332 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
333 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
334 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
335 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
336 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
337 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
338 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
339 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
340 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
341 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
342 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
343 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
344 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
345 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
346 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
347 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
348 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
349 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
350 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
351 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
352 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
353 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
354 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
355 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
356 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
357 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
358 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
359 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
360 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
361 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
362 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
363 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
364 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
365 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
366 135, 136, 137
367 };
368
369 #if YYDEBUG
370 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
371 static const unsigned short yyrline[] =
372 {
373 0, 410, 410, 410, 410, 410, 410, 410, 410, 410,
374 410, 410, 410, 410, 410, 410, 410, 410, 410, 410,
375 411, 411, 411, 411, 412, 412, 412, 412, 412, 412,
376 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
377 412, 412, 412, 412, 413, 413, 413, 413, 413, 413,
378 413, 413, 413, 413, 413, 413, 413, 413, 413, 413,
379 413, 413, 413, 413, 413, 413, 413, 413, 413, 413,
380 413, 413, 413, 413, 413, 413, 413, 413, 413, 413,
381 413, 413, 413, 413, 413, 413, 413, 413, 413, 413,
382 413, 413, 413, 413, 413, 413, 413, 413, 413, 413,
383 413, 413, 413, 413, 413, 413, 413, 413, 413, 413,
384 413, 413, 413, 413, 413, 413, 413, 413, 413, 413,
385 413, 413, 413, 413, 413, 413, 413, 413, 413, 413,
386 413, 413, 413, 413, 413, 413, 413, 413, 413, 413,
387 413, 413, 413, 413, 413, 413, 413, 413, 413, 413,
388 413, 413, 413, 413, 413, 413, 413, 413, 413, 413,
389 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
390 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
391 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
392 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
393 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
394 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
395 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
396 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
397 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
398 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
399 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
400 414, 414, 414, 414, 418, 419, 422, 423, 426, 427,
401 428, 429, 435, 438, 441, 444, 450, 453, 456, 459,
402 462, 468, 471, 477, 500, 504, 508, 513, 517, 521,
403 528, 529, 533, 537, 538, 542, 543, 544, 548, 549,
404 553, 554, 558, 559, 560, 564, 565, 569, 574, 579,
405 584, 593, 596, 599, 600, 606, 611, 619, 622, 626,
406 630, 637, 641, 645, 649, 654, 665, 676, 681, 686,
407 690, 696, 707, 710, 714, 722, 726, 732, 736, 743,
408 747, 751, 758, 759, 760, 764, 778, 784, 787, 793,
409 796, 802, 803, 811, 822, 831, 843, 844, 848, 858,
410 867, 879, 880, 883, 889, 890, 894, 898, 902, 907,
411 912, 920, 921, 922, 925, 931, 934, 937, 943, 944,
412 948, 951, 954, 960, 963, 966, 974, 986, 989, 992,
413 995, 1002, 1005, 1015, 1018, 1021, 1024, 1025, 1026, 1030,
414 1033, 1036, 1047, 1054, 1064, 1067, 1073, 1076, 1083, 1119,
415 1122, 1128, 1131, 1137, 1143, 1144, 1145, 1146, 1147, 1148,
416 1152, 1156, 1157, 1161, 1162, 1166, 1167, 1174, 1175, 1179,
417 1186, 1197, 1204, 1212, 1236, 1265, 1272, 1283, 1329, 1370,
418 1385, 1388, 1391, 1397, 1400, 1406, 1421, 1424, 1453, 1461,
419 1489, 1494, 1502, 1512, 1522, 1525, 1529, 1535, 1549, 1566,
420 1569, 1575, 1582, 1589, 1597, 1608, 1615, 1618, 1624, 1629,
421 1637, 1641, 1645, 1649, 1653, 1657, 1664, 1668, 1672, 1676,
422 1680, 1684, 1690, 1694, 1701, 1704, 1716, 1720, 1724, 1731,
423 1744, 1757, 1770, 1773, 1780, 1781, 1785, 1788, 1791, 1794,
424 1800, 1804, 1811, 1814, 1817, 1832, 1833, 1834, 1835, 1839,
425 1842, 1848, 1849, 1855, 1858, 1864, 1865, 1869, 1870, 1880,
426 1883, 1890, 1895, 1900, 1910, 1913, 1919, 1922, 1928, 1935,
427 1942, 1949, 1950, 1954, 1955, 1956, 1957, 1958, 1962, 1963,
428 1964, 1965, 1969, 1972, 1978, 1981, 1984, 1987, 1990, 1996,
429 2000, 2008, 2009, 2013, 2020, 2023, 2026, 2029, 2033, 2036,
430 2042, 2046, 2054, 2061, 2066, 2074, 2082, 2083, 2084, 2085,
431 2086, 2087, 2088, 2089, 2090, 2091, 2095, 2098, 2104, 2107,
432 2113, 2114, 2118, 2121, 2127, 2130, 2136, 2143, 2147, 2154,
433 2157, 2160, 2166, 2173, 2176, 2179, 2186, 2191, 2199, 2200,
434 2201, 2202, 2203, 2204, 2205, 2206, 2210, 2213, 2219, 2222,
435 2228, 2235, 2236, 2240, 2247, 2250, 2256, 2264, 2267, 2273
436 };
437 #endif
438
439 #if YYDEBUG || YYERROR_VERBOSE || 1
440 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
441 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
442 static const char *const yytname[] =
443 {
444 "\"end of file\"", "error", "$undefined", "BOOL", "CHAR", "SHORT",
445 "INT", "SIGNED", "UNSIGNED", "LONG", "FLOAT", "DOUBLE", "STRING",
446 "MIXED", "ARRAY", "OBJECT", "CALLABLE", "VOID", "ZVAL", "NULL", "TRUE",
447 "FALSE", "NAME", "NSNAME", "DOLLAR_NAME", "NUMBER", "QUOTED_STRING",
448 "QUOTED_CHAR", "SIZEOF", "VOLATILE", "\"end of line\"", "\";\"", "\"(\"",
449 "\")\"", "\",\"", "\":\"", "\"{\"", "\"}\"", "\"[\"", "\"]\"", "\"=\"",
450 "\"#\"", "\"|\"", "\"^\"", "\"&\"", "\"<<\"", "\">>\"", "\"+\"", "\"-\"",
451 "\"*\"", "\"/\"", "\"%\"", "\"<\"", "\">\"", "\">=\"", "\"<=\"",
452 "\"||\"", "\"&&\"", "\"==\"", "\"!=\"", "\"~\"", "\"!\"", "\".\"",
453 "\"\\\\\"", "\"...\"", "\"?\"", "PRAGMA", "LINE", "ERROR", "WARNING",
454 "IF", "IFDEF", "IFNDEF", "ELSE", "ELIF", "ENDIF", "DEFINE", "DEFINED",
455 "UNDEF", "IMPORT", "INCLUDE", "INCLUDE_NEXT", "TYPEDEF", "STRUCT",
456 "UNION", "ENUM", "CONST", "STATIC", "CALLBACK", "FUNCTION", "LET", "SET",
457 "TEMP", "FREE", "RETURN", "AS", "PRE_ASSERT", "POST_ASSERT", "BOOLVAL",
458 "INTVAL", "STRVAL", "PATHVAL", "STRLEN", "FLOATVAL", "ARRVAL", "OBJVAL",
459 "COUNT", "CALLOC", "TO_BOOL", "TO_INT", "TO_STRING", "TO_FLOAT",
460 "TO_ARRAY", "TO_OBJECT", "COMMENT", "WHITESPACE", "NO_WHITESPACE",
461 "CPP_HEADER", "CPP_ATTRIBUTE", "CPP_EXTENSION", "CPP_PASTE",
462 "CPP_INLINE", "CPP_RESTRICT", "CPP_ASM", "BSLASH", "LONG_DOUBLE", "INT8",
463 "UINT8", "INT16", "UINT16", "INT32", "UINT32", "INT64", "UINT64",
464 "INT128", "UINT128", "BINARY", "UNARY", "$accept", "binary_op_token",
465 "unary_op_token", "name_token", "any_noeol_token", "any_nobrace_token",
466 "file", "blocks", "block", "cpp", "cpp_exp", "cpp_macro_decl_arg_token",
467 "cpp_ignored_token", "cpp_message_token", "cpp_include_token",
468 "cpp_header_token", "cpp_no_arg_token", "cpp_name_arg_token",
469 "cpp_exp_arg_token", "cpp_macro_decl", "cpp_macro_sig",
470 "cpp_macro_sig_args", "cpp_macro_decl_tokens",
471 "cpp_macro_decl_token_list", "cpp_macro_exp", "cpp_macro_call_args",
472 "cpp_macro_call_arg_list", "constant", "impl_def_val",
473 "impl_def_val_token", "decl_typedef", "typedef", "typedef_anon",
474 "typedef_decl", "typedef_anon_decl", "qualified_decl_type",
475 "decl_type_qualifier_token", "decl_type", "decl_type_complex",
476 "decl_type_simple", "decl_real_type", "int_signed", "int_width",
477 "decl_int_type", "int_signed_types", "signed_short_types",
478 "signed_long_types", "int_width_types", "decl_stmt", "decl_asm",
479 "quoted_strings", "decl_extvar_stmt", "decl_extvar_list", "decl_vars",
480 "ignored_decl", "ignored_decl_qualifiers", "ignored_decl_body",
481 "ignored_decl_body_stmts", "ignored_decl_body_stmt", "decl", "decl_body",
482 "decl_func_body", "decl_functor_body", "decl_anon_functor_body",
483 "decl_functor", "decl_anon_functor", "decl_func", "decl_args",
484 "decl_arg_list", "decl_anon_arg", "decl_arg", "decl_var", "decl_union",
485 "decl_struct", "decl_struct_args", "struct_args_block", "struct_args",
486 "struct_arg_var_list", "decl_vars_with_layout", "decl_enum",
487 "decl_enum_items", "decl_enum_item", "num_exp", "number", "sizeof",
488 "sizeof_body", "sizeof_body_notypes", "enum_name", "union_name",
489 "struct_name", "optional_name", "optional_comma", "decl_layout",
490 "align_and_size", "array_size", "array_qualifier_token", "indirection",
491 "pointers", "asterisks", "asterisk", "pointer_qualifier_token", "impl",
492 "impl_func", "impl_args", "impl_arg", "impl_var", "impl_type",
493 "impl_type_restricted", "impl_type_token", "impl_type_restricted_token",
494 "impl_type_extended_token", "impl_stmts", "impl_stmt", "let_stmt",
495 "let_exp", "let_exp_byref", "let_exp_assign", "let_calloc",
496 "let_callback", "let_func", "let_func_token", "let_func_exps",
497 "let_exps", "callback_rval", "callback_arg_list", "callback_args",
498 "return_stmt", "return_exp", "call_decl_vars", "set_stmt", "set_exp",
499 "set_func", "set_func_token", "set_func_exps", "set_exps", "assert_stmt",
500 "assert_stmt_token", "free_stmt", "free_exps", "free_exp", "reference",
501 "byref", YY_NULLPTR
502 };
503 #endif
504
505 #define YYPACT_NINF -710
506 #define YYTABLE_NINF -628
507
508 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
509 STATE-NUM. */
510 static const short yypact[] =
511 {
512 529, -710, -710, -710, -710, -710, 90, -710, -710, -710,
513 500, -710, -710, -710, 742, 1480, 7560, 7560, 7560, 158,
514 -25, 18, -710, 247, -710, 71, 529, -710, -710, -710,
515 -710, 6818, 570, -710, -710, -710, -710, 119, 192, -710,
516 -710, -710, -710, 758, -41, -710, -710, 35, 55, 117,
517 -710, -710, -710, -710, 59, -710, 104, -710, -710, -710,
518 7560, 7560, 7560, -710, -710, -710, 102, -710, -710, -710,
519 -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
520 -710, -710, -710, 133, 851, 975, 975, 31, -710, 975,
521 6596, 7560, 7560, 1743, 138, -710, -710, -710, 159, 7560,
522 171, 171, -710, -710, -710, -710, -710, -710, 1335, -710,
523 -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
524 -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
525 -710, -710, -710, -710, -710, -710, -710, 108, -710, -710,
526 108, 180, -710, -710, -710, -710, -710, -710, 184, 204,
527 -710, -710, 193, -710, 209, -710, 1854, 1480, 113, -710,
528 -41, -710, -710, 34, 198, -710, -710, 214, 7560, 9,
529 -710, -710, -710, 242, -710, 136, -710, -710, -710, 179,
530 -710, 229, 218, 231, 1965, 1965, 7560, 129, -710, -710,
531 -710, 7151, -41, -710, -710, 1709, -710, -710, -710, -710,
532 -710, -710, -710, -710, 1820, 1931, 2042, 2153, -710, 2264,
533 2375, -710, -710, -710, 2486, -710, -710, -710, -710, -710,
534 -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
535 -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
536 -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
537 -710, -710, -710, -710, -710, -710, -710, 2597, 2708, 2819,
538 2930, -710, -710, -710, -710, -710, -710, -710, -710, -710,
539 -710, -710, -710, -710, -710, -710, -710, 3041, 3152, 3263,
540 3374, 3485, 3596, -710, 3707, -710, -710, 3818, 3929, 4040,
541 4151, 4262, 4373, 4484, 4595, 4706, 4817, 4928, 5039, 5150,
542 5261, 5372, 5483, -710, -710, -710, -710, -710, -710, -710,
543 5594, 975, -710, -710, -710, -710, -710, -710, -710, -710,
544 -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
545 -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
546 -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
547 975, -710, -710, -710, -710, -710, -710, -710, 83, 6596,
548 -710, -710, -710, -710, 7213, 6596, 238, 7738, -710, 77,
549 -710, 121, -710, -710, -710, -710, 236, 237, 237, 43,
550 43, 5819, 232, 129, 243, 248, -710, 249, -710, -710,
551 -710, 1447, -710, 225, 198, -710, -710, -710, -710, -710,
552 275, -710, -710, 1223, -710, 256, -710, 96, 6818, -710,
553 251, 146, 255, -710, -710, 169, 245, 257, -710, 7151,
554 6263, 7151, 7560, 7151, -710, -710, 475, -710, -710, -710,
555 -710, -710, 6485, -710, 259, -710, 7560, 263, -710, 266,
556 7738, 269, -710, -710, -710, -710, 6628, 277, -710, 6921,
557 7560, -710, -710, 1598, -710, -710, -710, -710, -710, -710,
558 -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
559 -710, -710, 6596, 6596, 268, 1566, 7151, 7151, -710, -710,
560 -710, -710, 142, -710, -710, -710, -710, -710, 5708, 6485,
561 270, -710, 269, -710, 7762, -710, -710, 5819, 512, 623,
562 -710, -710, -710, -710, -710, -710, 7714, 264, 7275, -710,
563 -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
564 -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
565 -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
566 -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
567 -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
568 -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
569 -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
570 -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
571 -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
572 -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
573 -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
574 -710, -710, -710, -710, -710, -710, -710, -710, 1099, -710,
575 88, 94, 1965, 198, 240, 758, 198, 244, 6485, 7560,
576 265, 267, 278, 7762, 280, 290, -710, 274, 298, 283,
577 292, 131, -710, 293, 297, -710, -710, -710, 6806, 7151,
578 -710, 7333, -710, 225, 302, -710, -710, -710, 303, -710,
579 7738, 305, 312, 7665, -710, 314, 1743, 313, -710, -710,
580 6707, 721, 7560, 171, 171, -710, -710, 61, 64, 73,
581 7134, -710, -710, 6485, 6485, 316, -710, -710, -710, -710,
582 -710, 318, 181, -710, 18, -710, -710, -710, -710, -710,
583 225, 206, -710, -710, -710, 225, -710, 207, -710, 321,
584 -710, -710, 322, 7762, -710, -710, 5930, -710, 6263, -710,
585 7151, -710, 18, 7151, -710, 7560, 7444, -710, -710, -710,
586 -710, -710, 323, 315, -710, -710, -710, -710, 6596, 6596,
587 333, -710, 63, 335, -710, 313, 237, 237, 6485, -710,
588 7690, -710, -710, 782, 337, 782, 330, 7560, 1965, -710,
589 6929, 198, 309, 198, 198, 156, 272, 213, 342, 7762,
590 -710, -710, -710, -710, 344, 6374, -710, 347, 7151, 226,
591 -710, 349, 259, 350, 975, 7502, 7738, 7786, 359, 352,
592 353, 7040, 360, 335, 7151, 7151, -710, 6485, -710, 782,
593 -710, 18, 5819, 361, 362, -710, -710, 363, -710, -710,
594 342, -710, -710, -710, 7444, -710, 370, 6485, 18, -710,
595 6041, 372, 375, -710, 317, -710, -710, -710, 376, 358,
596 385, 313, 377, -710, -710, 382, 7810, -710, 44, -710,
597 383, 381, 198, 386, 18, 7640, 384, 387, -710, 389,
598 -710, -710, 100, -710, 392, 391, -710, 7040, -710, 397,
599 1965, 394, -710, 332, 398, 6485, 5930, 399, -710, 6263,
600 -710, -710, 401, 406, 410, 313, -710, 404, 405, 1965,
601 260, 6152, 7427, 267, -710, -710, -710, 407, 6374, -710,
602 -710, 408, 411, -710, 412, 415, 416, 418, 420, 409,
603 -710, -710, 5930, -710, 426, -710, 782, 423, 198, 18,
604 432, 6263, -710, 433, -710, 1965, -710, 435, -710, -710,
605 -710, 439, 6152, 198, 440, -710, 441, -710
606 };
607
608 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
609 Performed when YYTABLE does not specify something else to do. Zero
610 means the default is an error. */
611 static const unsigned short yydefact[] =
612 {
613 274, 393, 390, 394, 388, 389, 391, 385, 386, 384,
614 383, 375, 279, 278, 0, 0, 0, 0, 502, 374,
615 424, 627, 280, 0, 428, 0, 275, 276, 281, 282,
616 286, 519, 0, 371, 377, 376, 382, 397, 409, 381,
617 283, 284, 285, 0, 414, 435, 437, 438, 0, 0,
618 449, 288, 287, 289, 0, 290, 0, 392, 387, 383,
619 0, 0, 0, 374, 429, 436, 419, 291, 301, 302,
620 303, 304, 315, 312, 313, 310, 316, 311, 300, 314,
621 305, 306, 307, 0, 0, 327, 327, 0, 295, 0,
622 0, 502, 502, 0, 0, 357, 362, 458, 361, 0,
623 510, 510, 32, 33, 34, 35, 36, 615, 576, 24,
624 40, 39, 37, 38, 31, 25, 29, 28, 26, 27,
625 41, 584, 583, 581, 579, 580, 582, 578, 577, 585,
626 30, 613, 611, 610, 612, 609, 608, 378, 42, 43,
627 379, 380, 499, 543, 544, 545, 546, 547, 0, 0,
628 540, 425, 0, 629, 0, 628, 383, 0, 0, 426,
629 414, 1, 277, 525, 512, 373, 459, 0, 520, 521,
630 523, 372, 399, 403, 401, 405, 398, 395, 410, 397,
631 396, 0, 0, 0, 450, 450, 0, 0, 378, 379,
632 380, 0, 414, 292, 69, 44, 45, 46, 47, 48,
633 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
634 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
635 157, 158, 70, 71, 72, 73, 74, 75, 76, 77,
636 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
637 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
638 98, 99, 100, 101, 102, 103, 108, 107, 106, 104,
639 105, 109, 110, 111, 112, 113, 114, 115, 116, 117,
640 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
641 128, 129, 130, 131, 159, 132, 133, 134, 135, 136,
642 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
643 147, 148, 149, 150, 151, 155, 152, 153, 154, 156,
644 0, 327, 297, 44, 53, 54, 55, 56, 58, 59,
645 63, 107, 106, 104, 105, 125, 126, 127, 128, 129,
646 130, 159, 134, 135, 136, 137, 138, 139, 140, 141,
647 142, 143, 144, 145, 146, 147, 148, 149, 329, 299,
648 328, 293, 308, 309, 294, 296, 337, 338, 0, 0,
649 22, 23, 20, 21, 0, 0, 340, 298, 339, 378,
650 501, 379, 500, 358, 355, 363, 0, 0, 0, 0,
651 0, 0, 0, 0, 0, 0, 427, 0, 528, 527,
652 526, 515, 461, 519, 512, 522, 524, 404, 400, 406,
653 407, 402, 411, 0, 423, 0, 412, 384, 519, 455,
654 0, 0, 452, 453, 456, 0, 478, 504, 476, 0,
655 627, 0, 0, 0, 621, 622, 0, 552, 555, 554,
656 556, 557, 0, 558, 420, 421, 0, 0, 416, 0,
657 319, 320, 317, 330, 498, 497, 0, 0, 493, 0,
658 0, 335, 332, 342, 2, 3, 4, 5, 6, 7,
659 8, 9, 10, 11, 13, 12, 14, 15, 16, 17,
660 18, 19, 0, 0, 0, 0, 0, 0, 464, 463,
661 465, 462, 489, 353, 354, 487, 486, 488, 0, 0,
662 0, 349, 351, 490, 350, 480, 491, 0, 0, 0,
663 356, 413, 489, 517, 518, 516, 0, 0, 0, 520,
664 460, 408, 185, 160, 161, 162, 163, 164, 165, 166,
665 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
666 177, 178, 179, 180, 181, 182, 183, 184, 271, 272,
667 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
668 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
669 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
670 216, 217, 222, 221, 220, 218, 219, 223, 224, 225,
671 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
672 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
673 273, 246, 247, 248, 249, 250, 251, 252, 253, 254,
674 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
675 265, 269, 266, 267, 268, 270, 433, 434, 0, 431,
676 0, 512, 450, 512, 0, 0, 512, 0, 0, 505,
677 0, 0, 0, 604, 0, 0, 603, 43, 0, 0,
678 0, 0, 624, 0, 0, 598, 529, 553, 0, 0,
679 418, 321, 417, 519, 0, 494, 496, 331, 0, 344,
680 345, 0, 343, 0, 333, 0, 0, 506, 366, 359,
681 367, 0, 368, 510, 510, 365, 364, 615, 24, 0,
682 0, 484, 348, 0, 0, 0, 530, 549, 550, 551,
683 548, 0, 0, 534, 627, 539, 541, 542, 514, 513,
684 519, 0, 430, 432, 415, 519, 457, 0, 441, 0,
685 454, 439, 0, 479, 477, 475, 0, 559, 627, 602,
686 0, 538, 627, 0, 623, 0, 599, 596, 620, 422,
687 322, 325, 0, 323, 495, 492, 336, 341, 0, 0,
688 0, 360, 0, 469, 466, 506, 0, 0, 0, 482,
689 0, 483, 347, 0, 0, 0, 536, 0, 450, 447,
690 0, 512, 0, 512, 512, 489, 0, 31, 30, 565,
691 570, 566, 568, 569, 42, 0, 605, 616, 0, 0,
692 625, 615, 601, 0, 327, 0, 346, 334, 0, 507,
693 0, 506, 0, 469, 370, 369, 481, 0, 531, 0,
694 535, 627, 0, 0, 0, 448, 445, 0, 442, 440,
695 0, 567, 590, 576, 599, 591, 0, 0, 627, 571,
696 627, 0, 0, 626, 0, 318, 324, 326, 0, 0,
697 0, 506, 470, 473, 467, 0, 485, 532, 0, 537,
698 0, 0, 512, 0, 627, 0, 586, 0, 618, 617,
699 606, 560, 0, 511, 0, 0, 471, 506, 468, 0,
700 450, 0, 446, 0, 0, 0, 0, 0, 607, 627,
701 614, 597, 0, 0, 0, 506, 474, 0, 0, 450,
702 0, 592, 0, 490, 588, 563, 561, 587, 0, 575,
703 619, 0, 0, 472, 0, 0, 0, 0, 0, 593,
704 594, 572, 0, 562, 0, 508, 0, 0, 512, 627,
705 0, 627, 589, 0, 533, 450, 443, 0, 573, 595,
706 509, 0, 592, 512, 0, 444, 0, 574
707 };
708
709 /* YYPGOTO[NTERM-NUM]. */
710 static const short yypgoto[] =
711 {
712 -710, -333, -75, -14, -62, -710, -710, -710, 442, -710,
713 -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
714 -710, -710, -78, -710, -279, -710, -710, -710, -468, -710,
715 -710, 324, -206, 29, -197, -178, -19, -6, -710, -710,
716 -710, 445, -710, -710, 301, -710, -710, -710, -710, -87,
717 -250, -710, -710, -177, -710, -710, 306, -710, -144, 463,
718 41, -4, 49, -710, -710, -710, -710, -180, -710, -145,
719 10, -31, -710, -710, 111, -340, -710, -311, -710, 13,
720 -710, -146, -351, -710, -73, -710, 50, -710, -434, -432,
721 176, -710, -690, -85, -370, -710, -358, -22, -710, 326,
722 -710, -710, 477, -710, -266, -676, -709, -710, -710, 481,
723 -710, 118, -365, -710, -410, -681, 95, -263, -710, -710,
724 -694, -710, -710, -375, -416, -710, -710, -710, -306, -710,
725 -401, -400, -402, -710, -710, -710, -710, -710, -710, -214,
726 -20, -684
727 };
728
729 /* YYDEFGOTO[NTERM-NUM]. */
730 static const short yydefgoto[] =
731 {
732 -1, 694, 489, 164, 348, 626, 25, 26, 27, 28,
733 83, 84, 85, 86, 87, 354, 88, 89, 90, 312,
734 742, 743, 349, 350, 367, 671, 672, 29, 490, 491,
735 30, 94, 677, 678, 679, 31, 32, 33, 34, 35,
736 36, 37, 38, 39, 177, 398, 401, 180, 40, 183,
737 492, 41, 192, 792, 42, 43, 627, 628, 629, 44,
738 45, 46, 97, 409, 48, 410, 49, 411, 412, 413,
739 414, 493, 51, 52, 479, 480, 681, 802, 842, 99,
740 417, 418, 643, 495, 496, 664, 448, 54, 100, 101,
741 142, 640, 753, 377, 392, 507, 167, 436, 169, 170,
742 390, 55, 56, 702, 703, 644, 704, 149, 705, 706,
743 707, 426, 427, 428, 894, 895, 896, 781, 782, 783,
744 138, 877, 897, 826, 908, 909, 429, 654, 793, 430,
745 910, 646, 139, 831, 859, 431, 432, 433, 651, 652,
746 648, 155
747 };
748
749 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
750 positive, shift that token. If negative, reduce the rule whose
751 number is the opposite. If YYTABLE_NINF, syntax error. */
752 static const short yytable[] =
753 {
754 166, 154, 137, 140, 141, 415, 408, 408, 351, 168,
755 50, 96, 165, 53, 434, 365, 378, 368, 647, 645,
756 66, 647, 311, 655, 510, 98, 171, 355, 766, 695,
757 494, 440, 784, 50, 473, 508, 50, 476, 477, 53,
758 506, 683, 785, 684, 95, 780, 188, 189, 190, 47,
759 631, 65, 379, 50, 808, 380, 811, 352, 163, 47,
760 441, 657, 153, 388, 21, 803, -438, -458, 731, -458,
761 310, 161, 47, 387, 478, 47, 366, 369, 371, 475,
762 449, 658, 182, 825, 181, 375, 452, 184, 799, 96,
763 -384, 784, 47, -383, -384, 186, 151, -24, 800, 57,
764 847, 58, 11, 98, 829, 437, 758, 473, 869, 444,
765 445, 843, -378, -503, 662, 446, 473, 107, 880, 473,
766 389, 714, 373, 172, 173, 174, 715, 447, 175, -384,
767 -384, 395, 391, 657, -449, 766, 191, 690, 691, -510,
768 187, 176, 399, 376, -510, 400, 494, -384, 353, 185,
769 -383, 866, 856, 96, 394, 630, -379, -503, -438, 63,
770 435, 143, 734, 193, 144, 735, 50, 98, 145, 374,
771 146, 147, 416, -352, 670, -352, -352, 886, 874, 633,
772 634, 148, 784, 172, 173, 174, 95, -489, 175, -489,
773 -489, -449, 898, 673, 674, 903, 825, 65, 178, 4,
774 5, 176, 636, 637, 784, 47, 376, 924, 131, 132,
775 133, 134, 135, 136, 764, 765, -503, 913, 784, 419,
776 420, 421, 422, 423, 381, 424, 425, 382, 898, 383,
777 822, 823, 384, 442, 386, 365, 391, 368, 768, 769,
778 771, 772, 683, 927, 684, 824, 393, 683, 397, 684,
779 405, 1, 2, 3, 4, 5, 6, 7, 8, 833,
780 659, 716, 406, 718, 9, 403, 721, 370, 372, 156,
781 453, 474, 497, 475, 163, 499, 11, 822, 823, 500,
782 501, 511, 438, 632, 365, 638, 368, 723, 443, 635,
783 365, 639, 368, 659, 660, 662, 366, 680, 661, 666,
784 675, 692, 725, 709, 719, 744, 730, 726, 722, 727,
785 689, 121, 122, 123, 124, 125, 126, 127, 128, 129,
786 728, 729, 731, 732, 733, 736, 647, 786, 737, 157,
787 60, 61, 62, 63, 158, 745, 746, 473, 747, 750,
788 473, 473, 760, 761, 849, 366, 748, 762, 752, 795,
789 451, 366, 767, 763, 773, 774, 794, 770, 121, 122,
790 123, 124, 125, 126, 127, 128, 129, 798, 159, 801,
791 812, 509, 809, 817, 827, 779, 828, 166, 365, 820,
792 368, 830, -600, 834, 838, 840, 168, 839, 641, 165,
793 649, 844, 653, 864, 850, 851, 852, 365, 365, 368,
794 368, 816, 854, 818, 819, 860, 861, 806, 650, 863,
795 865, 867, 862, 868, 871, 870, 804, 805, 876, 873,
796 878, 887, 394, 879, 883, 884, 889, 890, 647, 858,
797 891, 901, 899, 730, 779, 902, 668, 904, 905, 366,
798 663, 912, 914, 921, 915, 685, 686, 916, 917, 918,
799 919, 923, 717, 920, 408, 925, 846, 408, 366, 366,
800 882, 494, 881, 473, 473, 928, 930, 932, 162, 796,
801 797, 96, 933, 936, 937, 755, 855, 647, 900, 751,
802 402, 385, 872, 179, 713, 98, 160, 404, 682, 647,
803 720, 481, 845, 724, 711, 396, 665, 152, 680, 810,
804 150, 498, 922, 680, 1, 2, 3, 4, 5, 6,
805 7, 8, 656, 821, 642, 907, 934, 9, 853, 647,
806 929, 790, 59, 0, 892, 779, 0, 0, 0, 11,
807 647, 0, 0, 1, 2, 3, 4, 5, 6, 7,
808 8, 0, 0, 0, 0, 0, 9, 779, 926, 696,
809 0, 10, 0, 0, 0, 0, 789, 0, 11, 12,
810 13, 779, 0, 935, 0, 419, 420, 421, 422, 423,
811 14, 424, 425, 0, 1, 2, 3, 4, 5, 6,
812 7, 8, 0, 60, 61, 62, 63, 9, 814, 0,
813 408, 0, 59, 0, 0, 0, 0, 0, 756, 757,
814 0, 0, 419, 420, 421, 422, 423, 0, 424, 425,
815 0, 15, 16, 17, 18, 19, 20, 0, 21, 0,
816 0, 64, 0, 0, 0, 416, 143, 0, 739, 144,
817 0, 0, 0, 145, 0, 146, 147, 697, 698, 699,
818 700, 509, 0, 22, 0, 0, 0, 741, 23, 166,
819 24, 0, 0, 60, 61, 62, 701, 0, 168, 0,
820 0, 165, 0, 0, 0, 0, 0, 0, 375, 0,
821 165, 0, 96, 365, 365, 368, 368, 96, 0, 0,
822 0, 0, 0, 0, 0, 0, 98, 0, 509, 682,
823 888, 98, 408, 509, 682, 0, 0, 0, 0, 787,
824 0, 0, 435, 0, 0, 435, 0, 0, 0, 906,
825 0, 408, 788, 0, 0, 0, 835, 0, 0, 0,
826 0, 650, 0, 0, 0, 1, 2, 3, 4, 5,
827 6, 7, 8, 0, 366, 366, 0, 0, 9, 0,
828 0, 0, 0, 59, 0, 931, 0, 408, 0, 0,
829 11, 0, 0, 813, 0, 0, 711, 832, 754, 0,
830 0, 0, 1, 2, 3, 4, 5, 6, 7, 8,
831 841, 0, 67, 685, 686, 9, 0, 0, 0, 0,
832 59, 837, 0, 0, 0, 143, 0, 11, 144, 0,
833 0, 848, 145, 435, 146, 147, 697, 698, 699, 700,
834 0, 0, 0, 0, 91, 92, 18, 63, 68, 69,
835 70, 71, 72, 73, 74, 75, 76, 77, 78, 0,
836 79, 80, 81, 82, 0, 0, 0, 0, 0, 0,
837 0, 0, 0, 0, 0, 0, 885, 0, 0, 0,
838 676, 60, 61, 62, 63, 893, 0, 0, 0, 0,
839 0, 194, 0, 0, 195, 196, 197, 198, 199, 200,
840 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
841 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
842 221, 893, 222, 223, 224, 225, 226, 227, 228, 229,
843 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
844 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
845 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
846 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
847 0, 270, 0, 271, 272, 273, 274, 275, 276, 277,
848 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
849 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
850 298, 299, 300, 301, 302, 303, 0, 0, 304, 0,
851 305, 306, 307, 308, 309, 194, 0, 0, 313, 196,
852 197, 198, 199, 200, 201, 202, 203, 314, 315, 316,
853 317, 208, 318, 319, 211, 212, 213, 320, 215, 216,
854 217, 218, 219, 220, 221, 0, 222, 223, 224, 225,
855 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
856 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
857 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
858 256, 321, 322, 323, 324, 261, 262, 263, 264, 265,
859 266, 267, 268, 269, 0, 270, 0, 271, 272, 273,
860 274, 275, 276, 325, 326, 327, 328, 329, 330, 283,
861 331, 285, 286, 332, 333, 334, 335, 336, 337, 338,
862 339, 340, 341, 342, 343, 344, 345, 346, 347, 303,
863 0, 0, 304, 0, 305, 306, 307, 308, 309, 512,
864 0, 0, 513, 514, 515, 516, 517, 518, 519, 520,
865 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
866 531, 532, 533, 534, 535, 536, 537, 538, 539, 0,
867 540, 541, 542, 543, 544, 403, 712, 545, 546, 547,
868 548, 549, 550, 551, 552, 553, 554, 555, 556, 557,
869 558, 559, 560, 561, 562, 563, 564, 565, 566, 567,
870 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
871 578, 579, 580, 581, 582, 583, 584, 585, 0, 586,
872 0, 587, 588, 589, 590, 591, 592, 593, 594, 595,
873 596, 597, 598, 599, 600, 601, 602, 603, 604, 605,
874 606, 607, 608, 609, 610, 611, 612, 613, 614, 615,
875 616, 617, 618, 619, 0, 0, 620, 0, 621, 622,
876 623, 624, 625, 512, 0, 0, 513, 514, 515, 516,
877 517, 518, 519, 520, 521, 522, 523, 524, 525, 526,
878 527, 528, 529, 530, 531, 532, 533, 534, 535, 536,
879 537, 538, 539, 0, 540, 541, 542, 543, 544, 403,
880 0, 545, 546, 547, 548, 549, 550, 551, 552, 553,
881 554, 555, 556, 557, 558, 559, 560, 561, 562, 563,
882 564, 565, 566, 567, 568, 569, 570, 571, 572, 573,
883 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
884 584, 585, 0, 586, 0, 587, 588, 589, 590, 591,
885 592, 593, 594, 595, 596, 597, 598, 599, 600, 601,
886 602, 603, 604, 605, 606, 607, 608, 609, 610, 611,
887 612, 613, 614, 615, 616, 617, 618, 619, -576, 0,
888 620, 0, 621, 622, 623, 624, 625, -576, -576, -576,
889 -576, 0, -576, -576, 0, 0, 0, -576, 0, 0,
890 0, 0, 0, 0, -576, -576, -576, -576, -576, -576,
891 -576, -576, -576, -576, -576, -576, 0, -576, -576, -576,
892 -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
893 -576, -576, -576, -576, -576, 0, 0, 0, 0, 0,
894 -576, -576, -576, -576, -576, 0, 0, 0, 0, 0,
895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
896 0, -576, 0, -576, -576, -576, -576, -576, -576, 0,
897 -576, 0, 0, -576, -576, -576, -576, -576, -576, -576,
898 -576, -576, -576, -576, -576, -576, -576, -576, -576, 0,
899 102, 0, 0, 0, 0, 0, 0, 0, -576, 103,
900 104, 105, 106, 0, 107, 108, 502, 0, 0, 109,
901 485, 0, 486, 0, 487, 358, 503, 0, 0, 488,
902 0, 0, 0, 0, 1, 2, 3, 4, 5, 6,
903 7, 8, 0, 0, 360, 361, 163, 9, 0, 0,
904 0, 0, 59, 0, 0, 0, 0, 362, 363, 11,
905 0, 0, 0, 110, 111, 112, 113, 0, 0, 0,
906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
907 0, 0, 0, 504, 0, 114, 115, 116, 117, 118,
908 119, 0, 120, 0, 0, 121, 122, 123, 124, 125,
909 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
910 136, 0, 0, 91, 92, 18, 63, 0, 0, 505,
911 1, 2, 3, 4, 5, 6, 7, 8, 0, 0,
912 0, 0, 0, 9, 0, 0, 0, 0, 59, 0,
913 0, 0, 0, 0, 0, 11, 0, 0, 0, 93,
914 0, 102, 0, 0, 0, 0, 0, 0, 0, 0,
915 103, 104, 105, 106, 0, 107, 108, 0, 0, 0,
916 109, 0, 0, 356, 0, 357, 358, 0, 0, 0,
917 359, 0, 0, 0, 0, 0, 0, 0, 0, 0,
918 0, 0, 0, 0, 0, 360, 361, 0, 0, 91,
919 92, 18, 63, 0, 0, 0, 0, 0, 362, 363,
920 0, 0, 0, 0, 110, 111, 112, 113, 0, 0,
921 0, 0, 0, 0, 0, 364, 0, 0, 0, 0,
922 0, 0, 0, 0, 0, 676, 114, 115, 116, 117,
923 118, 119, 0, 120, 0, 0, 121, 122, 123, 124,
924 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
925 135, 136, -32, 0, 0, 669, 0, 0, 0, 0,
926 0, -32, -32, -32, -32, 0, -32, -32, 0, 0,
927 0, -32, 0, 0, -32, -32, -32, -32, 0, 0,
928 0, -32, 0, 0, 0, 0, 0, 1, 2, 3,
929 4, 5, 6, 7, 8, 0, -32, -32, 0, 0,
930 9, 0, 0, 0, 0, 59, 0, 0, 0, -32,
931 -32, 0, 11, 0, 0, -32, -32, -32, -32, 0,
932 0, 0, 0, 0, 0, 0, -32, 0, 0, 0,
933 0, 0, 0, 0, 0, 0, 0, -32, -32, -32,
934 -32, -32, -32, 0, -32, 0, 0, -32, -32, -32,
935 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
936 -32, -32, -32, -33, 0, -32, 91, 92, 18, 63,
937 0, 0, -33, -33, -33, -33, 0, -33, -33, 0,
938 0, 0, -33, 0, 0, -33, -33, -33, -33, 0,
939 0, 0, -33, 0, 0, 0, 0, 0, 1, 2,
940 3, 4, 5, 6, 7, 8, 0, -33, -33, 0,
941 0, 9, 0, 0, 0, 0, 59, 0, 0, 0,
942 -33, -33, 0, 11, 0, 0, -33, -33, -33, -33,
943 0, 0, 0, 0, 0, 0, 0, -33, 0, 0,
944 0, 0, 0, 0, 0, 0, 0, 0, -33, -33,
945 -33, -33, -33, -33, 0, -33, 0, 0, -33, -33,
946 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
947 -33, -33, -33, -33, -34, 0, -33, 60, 61, 62,
948 63, 0, 0, -34, -34, -34, -34, 0, -34, -34,
949 0, 0, 0, -34, 0, 0, -34, -34, -34, -34,
950 0, 0, 0, -34, 0, 0, 0, 0, 0, 1,
951 2, 3, 4, 5, 6, 7, 8, 0, -34, -34,
952 0, 0, 407, 0, 0, 0, 0, 59, 0, 0,
953 0, -34, -34, 0, 11, 0, 0, -34, -34, -34,
954 -34, 0, 0, 0, 0, 0, 0, 0, -34, 0,
955 0, 0, 0, 0, 0, 0, 0, 0, 0, -34,
956 -34, -34, -34, -34, -34, 0, -34, 0, 0, -34,
957 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
958 -34, -34, -34, -34, -34, -35, 0, -34, 60, 61,
959 62, 63, 0, 0, -35, -35, -35, -35, 0, -35,
960 -35, 0, 0, 0, -35, 0, 0, -35, -35, -35,
961 -35, 0, 0, 0, -35, 0, 0, 0, 0, 0,
962 0, 0, 0, 0, 0, 0, 0, 0, 0, -35,
963 -35, 0, 0, 0, 0, 0, 0, 0, 0, 0,
964 0, 0, -35, -35, 0, 0, 0, 0, -35, -35,
965 -35, -35, 0, 0, 0, 0, 0, 0, 0, -35,
966 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
967 -35, -35, -35, -35, -35, -35, 0, -35, 0, 0,
968 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
969 -35, -35, -35, -35, -35, -35, -36, 0, -35, 0,
970 0, 0, 0, 0, 0, -36, -36, -36, -36, 0,
971 -36, -36, 0, 0, 0, -36, 0, 0, -36, -36,
972 -36, -36, 0, 0, 0, -36, 0, 0, 0, 0,
973 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
974 -36, -36, 0, 0, 0, 0, 0, 0, 0, 0,
975 0, 0, 0, -36, -36, 0, 0, 0, 0, -36,
976 -36, -36, -36, 0, 0, 0, 0, 0, 0, 0,
977 -36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
978 0, -36, -36, -36, -36, -36, -36, 0, -36, 0,
979 0, -36, -36, -36, -36, -36, -36, -36, -36, -36,
980 -36, -36, -36, -36, -36, -36, -36, -58, 0, -36,
981 0, 0, 0, 0, 0, 0, -58, -58, -58, -58,
982 0, -58, -58, 0, 0, 0, -58, 0, 0, -58,
983 -58, -58, -58, 0, 0, 0, -58, 0, 0, 0,
984 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
985 0, -58, -58, 0, 0, 0, 0, 0, 0, 0,
986 0, 0, 0, 0, -58, -58, 0, 0, 0, 0,
987 -58, -58, -58, -58, 0, 0, 0, 0, 0, 0,
988 0, -58, 0, 0, 0, 0, 0, 0, 0, 0,
989 0, 0, -58, -58, -58, -58, -58, -58, 0, -58,
990 0, 0, -58, -58, -58, -58, -58, -58, -58, -58,
991 -58, -58, -58, -58, -58, -58, -58, -58, -59, 0,
992 -615, 0, 0, 0, 0, 0, 0, -59, -59, -59,
993 -59, 0, -59, -59, 0, 0, 0, -59, 0, 0,
994 -59, -59, -59, -59, 0, 0, 0, -59, 0, 0,
995 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
996 0, 0, -59, -59, 0, 0, 0, 0, 0, 0,
997 0, 0, 0, 0, 0, -59, -59, 0, 0, 0,
998 0, -59, -59, -59, -59, 0, 0, 0, 0, 0,
999 0, 0, -59, 0, 0, 0, 0, 0, 0, 0,
1000 0, 0, 0, -59, -59, -59, -59, -59, -59, 0,
1001 -59, 0, 0, -59, -59, -59, -59, -59, -59, -59,
1002 -59, -59, -59, -59, -59, -59, -59, -59, -59, -24,
1003 0, -576, 0, 0, 0, 0, 0, 0, -24, -24,
1004 -24, -24, 0, -24, -24, 0, 0, 0, -24, 0,
1005 0, -24, -24, -24, -24, 0, 0, 0, -24, 0,
1006 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1007 0, 0, 0, -24, -24, 0, 0, 0, 0, 0,
1008 0, 0, 0, 0, 0, 0, -24, -24, 0, 0,
1009 0, 0, -24, -24, -24, -24, 0, 0, 0, 0,
1010 0, 0, 0, -24, 0, 0, 0, 0, 0, 0,
1011 0, 0, 0, 0, -24, -24, -24, -24, -24, -24,
1012 0, -24, 0, 0, -24, -24, -24, -24, -24, -24,
1013 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
1014 -40, 0, -24, 0, 0, 0, 0, 0, 0, -40,
1015 -40, -40, -40, 0, -40, -40, 0, 0, 0, -40,
1016 0, 0, -40, -40, -40, -40, 0, 0, 0, -40,
1017 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1018 0, 0, 0, 0, -40, -40, 0, 0, 0, 0,
1019 0, 0, 0, 0, 0, 0, 0, -40, -40, 0,
1020 0, 0, 0, -40, -40, -40, -40, 0, 0, 0,
1021 0, 0, 0, 0, -40, 0, 0, 0, 0, 0,
1022 0, 0, 0, 0, 0, -40, -40, -40, -40, -40,
1023 -40, 0, -40, 0, 0, -40, -40, -40, -40, -40,
1024 -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
1025 -40, -39, 0, -40, 0, 0, 0, 0, 0, 0,
1026 -39, -39, -39, -39, 0, -39, -39, 0, 0, 0,
1027 -39, 0, 0, -39, -39, -39, -39, 0, 0, 0,
1028 -39, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1029 0, 0, 0, 0, 0, -39, -39, 0, 0, 0,
1030 0, 0, 0, 0, 0, 0, 0, 0, -39, -39,
1031 0, 0, 0, 0, -39, -39, -39, -39, 0, 0,
1032 0, 0, 0, 0, 0, -39, 0, 0, 0, 0,
1033 0, 0, 0, 0, 0, 0, -39, -39, -39, -39,
1034 -39, -39, 0, -39, 0, 0, -39, -39, -39, -39,
1035 -39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
1036 -39, -39, -37, 0, -39, 0, 0, 0, 0, 0,
1037 0, -37, -37, -37, -37, 0, -37, -37, 0, 0,
1038 0, -37, 0, 0, -37, -37, -37, -37, 0, 0,
1039 0, -37, 0, 0, 0, 0, 0, 0, 0, 0,
1040 0, 0, 0, 0, 0, 0, -37, -37, 0, 0,
1041 0, 0, 0, 0, 0, 0, 0, 0, 0, -37,
1042 -37, 0, 0, 0, 0, -37, -37, -37, -37, 0,
1043 0, 0, 0, 0, 0, 0, -37, 0, 0, 0,
1044 0, 0, 0, 0, 0, 0, 0, -37, -37, -37,
1045 -37, -37, -37, 0, -37, 0, 0, -37, -37, -37,
1046 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
1047 -37, -37, -37, -38, 0, -37, 0, 0, 0, 0,
1048 0, 0, -38, -38, -38, -38, 0, -38, -38, 0,
1049 0, 0, -38, 0, 0, -38, -38, -38, -38, 0,
1050 0, 0, -38, 0, 0, 0, 0, 0, 0, 0,
1051 0, 0, 0, 0, 0, 0, 0, -38, -38, 0,
1052 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1053 -38, -38, 0, 0, 0, 0, -38, -38, -38, -38,
1054 0, 0, 0, 0, 0, 0, 0, -38, 0, 0,
1055 0, 0, 0, 0, 0, 0, 0, 0, -38, -38,
1056 -38, -38, -38, -38, 0, -38, 0, 0, -38, -38,
1057 -38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
1058 -38, -38, -38, -38, -31, 0, -38, 0, 0, 0,
1059 0, 0, 0, -31, -31, -31, -31, 0, -31, -31,
1060 0, 0, 0, -31, 0, 0, -31, -31, -31, -31,
1061 0, 0, 0, -31, 0, 0, 0, 0, 0, 0,
1062 0, 0, 0, 0, 0, 0, 0, 0, -31, -31,
1063 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1064 0, -31, -31, 0, 0, 0, 0, -31, -31, -31,
1065 -31, 0, 0, 0, 0, 0, 0, 0, -31, 0,
1066 0, 0, 0, 0, 0, 0, 0, 0, 0, -31,
1067 -31, -31, -31, -31, -31, 0, -31, 0, 0, -31,
1068 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
1069 -31, -31, -31, -31, -31, -25, 0, -31, 0, 0,
1070 0, 0, 0, 0, -25, -25, -25, -25, 0, -25,
1071 -25, 0, 0, 0, -25, 0, 0, -25, -25, -25,
1072 -25, 0, 0, 0, -25, 0, 0, 0, 0, 0,
1073 0, 0, 0, 0, 0, 0, 0, 0, 0, -25,
1074 -25, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1075 0, 0, -25, -25, 0, 0, 0, 0, -25, -25,
1076 -25, -25, 0, 0, 0, 0, 0, 0, 0, -25,
1077 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1078 -25, -25, -25, -25, -25, -25, 0, -25, 0, 0,
1079 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
1080 -25, -25, -25, -25, -25, -25, -29, 0, -25, 0,
1081 0, 0, 0, 0, 0, -29, -29, -29, -29, 0,
1082 -29, -29, 0, 0, 0, -29, 0, 0, -29, -29,
1083 -29, -29, 0, 0, 0, -29, 0, 0, 0, 0,
1084 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1085 -29, -29, 0, 0, 0, 0, 0, 0, 0, 0,
1086 0, 0, 0, -29, -29, 0, 0, 0, 0, -29,
1087 -29, -29, -29, 0, 0, 0, 0, 0, 0, 0,
1088 -29, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1089 0, -29, -29, -29, -29, -29, -29, 0, -29, 0,
1090 0, -29, -29, -29, -29, -29, -29, -29, -29, -29,
1091 -29, -29, -29, -29, -29, -29, -29, -28, 0, -29,
1092 0, 0, 0, 0, 0, 0, -28, -28, -28, -28,
1093 0, -28, -28, 0, 0, 0, -28, 0, 0, -28,
1094 -28, -28, -28, 0, 0, 0, -28, 0, 0, 0,
1095 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1096 0, -28, -28, 0, 0, 0, 0, 0, 0, 0,
1097 0, 0, 0, 0, -28, -28, 0, 0, 0, 0,
1098 -28, -28, -28, -28, 0, 0, 0, 0, 0, 0,
1099 0, -28, 0, 0, 0, 0, 0, 0, 0, 0,
1100 0, 0, -28, -28, -28, -28, -28, -28, 0, -28,
1101 0, 0, -28, -28, -28, -28, -28, -28, -28, -28,
1102 -28, -28, -28, -28, -28, -28, -28, -28, -26, 0,
1103 -28, 0, 0, 0, 0, 0, 0, -26, -26, -26,
1104 -26, 0, -26, -26, 0, 0, 0, -26, 0, 0,
1105 -26, -26, -26, -26, 0, 0, 0, -26, 0, 0,
1106 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1107 0, 0, -26, -26, 0, 0, 0, 0, 0, 0,
1108 0, 0, 0, 0, 0, -26, -26, 0, 0, 0,
1109 0, -26, -26, -26, -26, 0, 0, 0, 0, 0,
1110 0, 0, -26, 0, 0, 0, 0, 0, 0, 0,
1111 0, 0, 0, -26, -26, -26, -26, -26, -26, 0,
1112 -26, 0, 0, -26, -26, -26, -26, -26, -26, -26,
1113 -26, -26, -26, -26, -26, -26, -26, -26, -26, -27,
1114 0, -26, 0, 0, 0, 0, 0, 0, -27, -27,
1115 -27, -27, 0, -27, -27, 0, 0, 0, -27, 0,
1116 0, -27, -27, -27, -27, 0, 0, 0, -27, 0,
1117 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1118 0, 0, 0, -27, -27, 0, 0, 0, 0, 0,
1119 0, 0, 0, 0, 0, 0, -27, -27, 0, 0,
1120 0, 0, -27, -27, -27, -27, 0, 0, 0, 0,
1121 0, 0, 0, -27, 0, 0, 0, 0, 0, 0,
1122 0, 0, 0, 0, -27, -27, -27, -27, -27, -27,
1123 0, -27, 0, 0, -27, -27, -27, -27, -27, -27,
1124 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
1125 -41, 0, -27, 0, 0, 0, 0, 0, 0, -41,
1126 -41, -41, -41, 0, -41, -41, 0, 0, 0, -41,
1127 0, 0, -41, -41, -41, -41, 0, 0, 0, -41,
1128 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1129 0, 0, 0, 0, -41, -41, 0, 0, 0, 0,
1130 0, 0, 0, 0, 0, 0, 0, -41, -41, 0,
1131 0, 0, 0, -41, -41, -41, -41, 0, 0, 0,
1132 0, 0, 0, 0, -41, 0, 0, 0, 0, 0,
1133 0, 0, 0, 0, 0, -41, -41, -41, -41, -41,
1134 -41, 0, -41, 0, 0, -41, -41, -41, -41, -41,
1135 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
1136 -41, -134, 0, -41, 0, 0, 0, 0, 0, 0,
1137 -134, -134, -134, -134, 0, -134, -134, 0, 0, 0,
1138 -134, 0, 0, -134, -134, -134, -134, 0, 0, 0,
1139 -134, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1140 0, 0, 0, 0, 0, -134, -134, 0, 0, 0,
1141 0, 0, 0, 0, 0, 0, 0, 0, -134, -134,
1142 0, 0, 0, 0, -134, -134, -134, -134, 0, 0,
1143 0, 0, 0, 0, 0, -134, 0, 0, 0, 0,
1144 0, 0, 0, 0, 0, 0, -134, -134, -134, -134,
1145 -134, -134, 0, -134, 0, 0, -134, -134, -134, -134,
1146 -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
1147 -134, -134, -135, 0, -584, 0, 0, 0, 0, 0,
1148 0, -135, -135, -135, -135, 0, -135, -135, 0, 0,
1149 0, -135, 0, 0, -135, -135, -135, -135, 0, 0,
1150 0, -135, 0, 0, 0, 0, 0, 0, 0, 0,
1151 0, 0, 0, 0, 0, 0, -135, -135, 0, 0,
1152 0, 0, 0, 0, 0, 0, 0, 0, 0, -135,
1153 -135, 0, 0, 0, 0, -135, -135, -135, -135, 0,
1154 0, 0, 0, 0, 0, 0, -135, 0, 0, 0,
1155 0, 0, 0, 0, 0, 0, 0, -135, -135, -135,
1156 -135, -135, -135, 0, -135, 0, 0, -135, -135, -135,
1157 -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
1158 -135, -135, -135, -136, 0, -583, 0, 0, 0, 0,
1159 0, 0, -136, -136, -136, -136, 0, -136, -136, 0,
1160 0, 0, -136, 0, 0, -136, -136, -136, -136, 0,
1161 0, 0, -136, 0, 0, 0, 0, 0, 0, 0,
1162 0, 0, 0, 0, 0, 0, 0, -136, -136, 0,
1163 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1164 -136, -136, 0, 0, 0, 0, -136, -136, -136, -136,
1165 0, 0, 0, 0, 0, 0, 0, -136, 0, 0,
1166 0, 0, 0, 0, 0, 0, 0, 0, -136, -136,
1167 -136, -136, -136, -136, 0, -136, 0, 0, -136, -136,
1168 -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
1169 -136, -136, -136, -136, -137, 0, -581, 0, 0, 0,
1170 0, 0, 0, -137, -137, -137, -137, 0, -137, -137,
1171 0, 0, 0, -137, 0, 0, -137, -137, -137, -137,
1172 0, 0, 0, -137, 0, 0, 0, 0, 0, 0,
1173 0, 0, 0, 0, 0, 0, 0, 0, -137, -137,
1174 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1175 0, -137, -137, 0, 0, 0, 0, -137, -137, -137,
1176 -137, 0, 0, 0, 0, 0, 0, 0, -137, 0,
1177 0, 0, 0, 0, 0, 0, 0, 0, 0, -137,
1178 -137, -137, -137, -137, -137, 0, -137, 0, 0, -137,
1179 -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
1180 -137, -137, -137, -137, -137, -138, 0, -579, 0, 0,
1181 0, 0, 0, 0, -138, -138, -138, -138, 0, -138,
1182 -138, 0, 0, 0, -138, 0, 0, -138, -138, -138,
1183 -138, 0, 0, 0, -138, 0, 0, 0, 0, 0,
1184 0, 0, 0, 0, 0, 0, 0, 0, 0, -138,
1185 -138, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1186 0, 0, -138, -138, 0, 0, 0, 0, -138, -138,
1187 -138, -138, 0, 0, 0, 0, 0, 0, 0, -138,
1188 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1189 -138, -138, -138, -138, -138, -138, 0, -138, 0, 0,
1190 -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
1191 -138, -138, -138, -138, -138, -138, -139, 0, -580, 0,
1192 0, 0, 0, 0, 0, -139, -139, -139, -139, 0,
1193 -139, -139, 0, 0, 0, -139, 0, 0, -139, -139,
1194 -139, -139, 0, 0, 0, -139, 0, 0, 0, 0,
1195 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1196 -139, -139, 0, 0, 0, 0, 0, 0, 0, 0,
1197 0, 0, 0, -139, -139, 0, 0, 0, 0, -139,
1198 -139, -139, -139, 0, 0, 0, 0, 0, 0, 0,
1199 -139, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1200 0, -139, -139, -139, -139, -139, -139, 0, -139, 0,
1201 0, -139, -139, -139, -139, -139, -139, -139, -139, -139,
1202 -139, -139, -139, -139, -139, -139, -139, -140, 0, -582,
1203 0, 0, 0, 0, 0, 0, -140, -140, -140, -140,
1204 0, -140, -140, 0, 0, 0, -140, 0, 0, -140,
1205 -140, -140, -140, 0, 0, 0, -140, 0, 0, 0,
1206 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1207 0, -140, -140, 0, 0, 0, 0, 0, 0, 0,
1208 0, 0, 0, 0, -140, -140, 0, 0, 0, 0,
1209 -140, -140, -140, -140, 0, 0, 0, 0, 0, 0,
1210 0, -140, 0, 0, 0, 0, 0, 0, 0, 0,
1211 0, 0, -140, -140, -140, -140, -140, -140, 0, -140,
1212 0, 0, -140, -140, -140, -140, -140, -140, -140, -140,
1213 -140, -140, -140, -140, -140, -140, -140, -140, -141, 0,
1214 -578, 0, 0, 0, 0, 0, 0, -141, -141, -141,
1215 -141, 0, -141, -141, 0, 0, 0, -141, 0, 0,
1216 -141, -141, -141, -141, 0, 0, 0, -141, 0, 0,
1217 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1218 0, 0, -141, -141, 0, 0, 0, 0, 0, 0,
1219 0, 0, 0, 0, 0, -141, -141, 0, 0, 0,
1220 0, -141, -141, -141, -141, 0, 0, 0, 0, 0,
1221 0, 0, -141, 0, 0, 0, 0, 0, 0, 0,
1222 0, 0, 0, -141, -141, -141, -141, -141, -141, 0,
1223 -141, 0, 0, -141, -141, -141, -141, -141, -141, -141,
1224 -141, -141, -141, -141, -141, -141, -141, -141, -141, -142,
1225 0, -577, 0, 0, 0, 0, 0, 0, -142, -142,
1226 -142, -142, 0, -142, -142, 0, 0, 0, -142, 0,
1227 0, -142, -142, -142, -142, 0, 0, 0, -142, 0,
1228 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1229 0, 0, 0, -142, -142, 0, 0, 0, 0, 0,
1230 0, 0, 0, 0, 0, 0, -142, -142, 0, 0,
1231 0, 0, -142, -142, -142, -142, 0, 0, 0, 0,
1232 0, 0, 0, -142, 0, 0, 0, 0, 0, 0,
1233 0, 0, 0, 0, -142, -142, -142, -142, -142, -142,
1234 0, -142, 0, 0, -142, -142, -142, -142, -142, -142,
1235 -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
1236 -30, 0, -585, 0, 0, 0, 0, 0, 0, -30,
1237 -30, -30, -30, 0, -30, -30, 0, 0, 0, -30,
1238 0, 0, -30, -30, -30, -30, 0, 0, 0, -30,
1239 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1240 0, 0, 0, 0, -30, -30, 0, 0, 0, 0,
1241 0, 0, 0, 0, 0, 0, 0, -30, -30, 0,
1242 0, 0, 0, -30, -30, -30, -30, 0, 0, 0,
1243 0, 0, 0, 0, -30, 0, 0, 0, 0, 0,
1244 0, 0, 0, 0, 0, -30, -30, -30, -30, -30,
1245 -30, 0, -30, 0, 0, -30, -30, -30, -30, -30,
1246 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
1247 -30, -144, 0, -30, 0, 0, 0, 0, 0, 0,
1248 -144, -144, -144, -144, 0, -144, -144, 0, 0, 0,
1249 -144, 0, 0, -144, -144, -144, -144, 0, 0, 0,
1250 -144, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1251 0, 0, 0, 0, 0, -144, -144, 0, 0, 0,
1252 0, 0, 0, 0, 0, 0, 0, 0, -144, -144,
1253 0, 0, 0, 0, -144, -144, -144, -144, 0, 0,
1254 0, 0, 0, 0, 0, -144, 0, 0, 0, 0,
1255 0, 0, 0, 0, 0, 0, -144, -144, -144, -144,
1256 -144, -144, 0, -144, 0, 0, -144, -144, -144, -144,
1257 -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
1258 -144, -144, -145, 0, -613, 0, 0, 0, 0, 0,
1259 0, -145, -145, -145, -145, 0, -145, -145, 0, 0,
1260 0, -145, 0, 0, -145, -145, -145, -145, 0, 0,
1261 0, -145, 0, 0, 0, 0, 0, 0, 0, 0,
1262 0, 0, 0, 0, 0, 0, -145, -145, 0, 0,
1263 0, 0, 0, 0, 0, 0, 0, 0, 0, -145,
1264 -145, 0, 0, 0, 0, -145, -145, -145, -145, 0,
1265 0, 0, 0, 0, 0, 0, -145, 0, 0, 0,
1266 0, 0, 0, 0, 0, 0, 0, -145, -145, -145,
1267 -145, -145, -145, 0, -145, 0, 0, -145, -145, -145,
1268 -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
1269 -145, -145, -145, -146, 0, -611, 0, 0, 0, 0,
1270 0, 0, -146, -146, -146, -146, 0, -146, -146, 0,
1271 0, 0, -146, 0, 0, -146, -146, -146, -146, 0,
1272 0, 0, -146, 0, 0, 0, 0, 0, 0, 0,
1273 0, 0, 0, 0, 0, 0, 0, -146, -146, 0,
1274 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1275 -146, -146, 0, 0, 0, 0, -146, -146, -146, -146,
1276 0, 0, 0, 0, 0, 0, 0, -146, 0, 0,
1277 0, 0, 0, 0, 0, 0, 0, 0, -146, -146,
1278 -146, -146, -146, -146, 0, -146, 0, 0, -146, -146,
1279 -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
1280 -146, -146, -146, -146, -147, 0, -610, 0, 0, 0,
1281 0, 0, 0, -147, -147, -147, -147, 0, -147, -147,
1282 0, 0, 0, -147, 0, 0, -147, -147, -147, -147,
1283 0, 0, 0, -147, 0, 0, 0, 0, 0, 0,
1284 0, 0, 0, 0, 0, 0, 0, 0, -147, -147,
1285 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1286 0, -147, -147, 0, 0, 0, 0, -147, -147, -147,
1287 -147, 0, 0, 0, 0, 0, 0, 0, -147, 0,
1288 0, 0, 0, 0, 0, 0, 0, 0, 0, -147,
1289 -147, -147, -147, -147, -147, 0, -147, 0, 0, -147,
1290 -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
1291 -147, -147, -147, -147, -147, -148, 0, -612, 0, 0,
1292 0, 0, 0, 0, -148, -148, -148, -148, 0, -148,
1293 -148, 0, 0, 0, -148, 0, 0, -148, -148, -148,
1294 -148, 0, 0, 0, -148, 0, 0, 0, 0, 0,
1295 0, 0, 0, 0, 0, 0, 0, 0, 0, -148,
1296 -148, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1297 0, 0, -148, -148, 0, 0, 0, 0, -148, -148,
1298 -148, -148, 0, 0, 0, 0, 0, 0, 0, -148,
1299 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1300 -148, -148, -148, -148, -148, -148, 0, -148, 0, 0,
1301 -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
1302 -148, -148, -148, -148, -148, -148, -149, 0, -609, 0,
1303 0, 0, 0, 0, 0, -149, -149, -149, -149, 0,
1304 -149, -149, 0, 0, 0, -149, 0, 0, -149, -149,
1305 -149, -149, 0, 0, 0, -149, 0, 0, 0, 0,
1306 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1307 -149, -149, 0, 0, 0, 0, 0, 0, 0, 0,
1308 0, 0, 0, -149, -149, 0, 0, 0, 0, -149,
1309 -149, -149, -149, 0, 0, 0, 0, 0, 0, 0,
1310 -149, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1311 0, -149, -149, -149, -149, -149, -149, 0, -149, 0,
1312 0, -149, -149, -149, -149, -149, -149, -149, -149, -149,
1313 -149, -149, -149, -149, -149, -149, -149, 102, 0, -608,
1314 0, 0, 0, 0, 0, 0, 103, 104, 105, 106,
1315 0, 107, 108, 0, 0, 0, 109, 0, 0, 356,
1316 438, 357, 358, 0, 0, 0, 359, 0, 0, 0,
1317 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1318 0, 360, 361, 0, 0, 0, 0, 0, 0, 0,
1319 0, 0, 0, 0, 362, 363, 0, 0, 0, 0,
1320 110, 111, 112, 113, 0, 0, 0, 0, 0, 0,
1321 0, 364, 0, 0, 0, 0, 0, 0, 0, 0,
1322 0, 0, 114, 115, 116, 117, 118, 119, 0, 120,
1323 0, 0, 121, 122, 123, 124, 125, 126, 127, 128,
1324 129, 130, 131, 132, 133, 134, 135, 136, 0, 0,
1325 439, 102, 1, 2, 3, 4, 5, 6, 7, 8,
1326 103, 104, 105, 106, 0, 687, 108, 502, 0, 0,
1327 688, 485, 0, 486, 0, 487, 358, 11, 0, 0,
1328 488, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1329 0, 0, 0, 0, 0, 360, 361, 163, 0, 0,
1330 0, 0, 0, 0, 0, 0, 0, 0, 362, 363,
1331 0, 0, 0, 0, 110, 111, 112, 113, 0, 0,
1332 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1333 0, 60, 61, 62, 63, 0, 114, 115, 116, 117,
1334 118, 119, 0, 120, 0, 0, 121, 122, 123, 124,
1335 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1336 135, 136, 102, 0, 0, 0, 0, 0, 0, 0,
1337 0, 103, 104, 105, 106, 0, 107, 108, 482, 483,
1338 484, 109, 485, 0, 486, 438, 487, 358, 0, 0,
1339 0, 488, 0, 0, 0, 0, 0, 0, 0, 0,
1340 0, 0, 0, 0, 0, 0, 360, 361, 163, 0,
1341 0, 0, 0, 0, 0, 0, 0, 0, 0, 362,
1342 363, 0, 0, 0, 0, 110, 111, 112, 113, 0,
1343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1344 0, 0, 0, 0, 0, 0, 0, 114, 115, 116,
1345 117, 118, 119, 0, 120, 0, 0, 121, 122, 123,
1346 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1347 134, 135, 136, 102, 0, 0, 0, 0, 0, 0,
1348 0, 0, 103, 104, 105, 106, 0, 107, 108, 775,
1349 0, 0, 109, 485, 0, 486, 0, 487, 358, 0,
1350 0, 0, 488, 0, 0, 0, 0, 0, 0, 0,
1351 0, 0, 0, 0, 153, 0, 0, 360, 361, 163,
1352 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1353 362, 363, 0, 0, 0, 0, 110, 111, 112, 113,
1354 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1355 0, 0, 0, 0, 0, 0, 0, 776, 777, 115,
1356 116, 117, 118, 119, 0, 120, 0, 0, 121, 122,
1357 123, 124, 125, 126, 127, 128, 129, 778, 131, 132,
1358 133, 134, 135, 136, 102, 0, 0, 0, 0, 0,
1359 0, 0, 0, 103, 104, 105, 106, 0, 107, 108,
1360 502, 0, 0, 109, 485, 0, 486, 0, 487, 358,
1361 0, 0, 0, 488, 0, 0, 0, 0, 0, 0,
1362 0, 0, 0, 0, 0, 153, 0, 0, 360, 361,
1363 163, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1364 0, 362, 363, 0, 0, 857, 0, 110, 111, 112,
1365 113, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1366 0, 0, 0, 0, 0, 0, 0, 0, 0, 114,
1367 115, 116, 117, 118, 119, 0, 120, 0, 0, 121,
1368 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
1369 132, 133, 134, 135, 136, 102, 0, 0, 0, 0,
1370 0, 0, 0, 0, 103, 104, 105, 106, 0, 107,
1371 108, 502, 0, 0, 109, 485, -627, 486, 0, 487,
1372 358, 0, 0, 0, 488, 0, 0, 0, 0, 0,
1373 0, 0, 0, 0, 0, 0, 153, 0, 0, 360,
1374 361, 163, 0, 0, 0, 0, 0, 0, 0, 0,
1375 0, 0, 362, 363, 0, 0, 0, 0, 110, 111,
1376 112, 113, 0, 0, 0, 0, 0, 0, 0, 0,
1377 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1378 114, 115, 116, 117, 118, 119, 0, 120, 0, 0,
1379 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
1380 131, 132, 133, 134, 135, 136, 102, 0, 0, 0,
1381 0, 0, 0, 0, 0, 103, 104, 105, 106, 0,
1382 107, 108, 502, 0, 0, 109, 485, 0, 486, 0,
1383 487, 358, 0, 0, 0, 488, 0, 0, 0, 0,
1384 0, 0, 0, 0, 0, 0, 0, 153, 0, 0,
1385 360, 361, 163, 0, 0, 0, 0, 0, 0, 0,
1386 0, 0, 0, 362, 363, 0, 0, 0, 0, 110,
1387 111, 112, 113, 0, 0, 0, 0, 0, 0, 0,
1388 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1389 0, 114, 115, 116, 117, 118, 119, 0, 120, 0,
1390 0, 121, 122, 123, 124, 125, 126, 127, 128, 129,
1391 130, 131, 132, 133, 134, 135, 136, 102, 0, 0,
1392 0, 0, 0, 0, 0, 0, 103, 104, 105, 106,
1393 0, 107, 108, 775, 0, 0, 109, 485, 0, 486,
1394 0, 487, 358, 0, 0, 0, 488, 0, 0, 0,
1395 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1396 0, 360, 361, 163, 0, 0, 0, 0, 0, 0,
1397 0, 0, 0, 0, 362, 363, 0, 0, 0, 0,
1398 110, 111, 112, 113, 0, 0, 0, 0, 0, 0,
1399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1400 0, 776, 777, 115, 116, 117, 118, 119, 0, 120,
1401 0, 0, 121, 122, 123, 124, 125, 126, 127, 128,
1402 129, 778, 131, 132, 133, 134, 135, 136, 102, 0,
1403 0, 0, 0, 0, 0, 0, 0, 103, 104, 105,
1404 106, 0, 107, 108, 502, 0, 0, 109, 485, 0,
1405 486, 0, 487, 358, 0, 0, 0, 488, 0, 0,
1406 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1407 0, 0, 360, 361, 163, 0, 0, 0, 0, 0,
1408 0, 0, 0, 0, 0, 362, 363, 0, 0, 0,
1409 0, 110, 111, 112, 113, 0, 0, 0, 0, 0,
1410 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1411 0, 0, 0, 114, 115, 116, 117, 118, 119, 0,
1412 120, 0, 0, 121, 122, 123, 124, 125, 126, 127,
1413 128, 129, 130, 131, 132, 133, 134, 135, 136, 102,
1414 0, 0, 0, 0, 0, 0, 0, 0, 103, 104,
1415 105, 106, 0, 107, 108, 0, 0, 0, 109, 0,
1416 0, 356, 0, 357, 358, 0, 0, 0, 359, 0,
1417 0, 0, 1, 2, 3, 4, 5, 6, 7, 8,
1418 0, 0, 0, 360, 361, 9, 0, 0, 0, 0,
1419 59, 0, 0, 0, 444, 445, 362, 363, 0, 0,
1420 0, 0, 110, 111, 112, 113, 0, 0, 0, 0,
1421 0, 0, 447, 364, 0, 0, 0, 0, 0, 0,
1422 0, 0, 0, 0, 114, 115, 116, 117, 118, 119,
1423 0, 120, 0, 0, 121, 122, 123, 124, 125, 126,
1424 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
1425 102, 60, 61, 62, 0, 0, 0, 0, 0, 103,
1426 104, 105, 106, 0, 107, 108, 0, 0, 0, 109,
1427 0, 0, 0, 0, 0, 0, 11, 0, 0, -519,
1428 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1429 0, 0, 0, 0, 0, 0, 163, 0, 0, 0,
1430 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1431 0, 0, 0, 110, 111, 112, 113, 0, 0, 0,
1432 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1433 0, 0, 0, 63, 0, 114, 115, 116, 117, 118,
1434 119, 0, 120, 0, 0, 121, 122, 123, 124, 125,
1435 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1436 136, 102, 0, 0, 0, 0, 0, 0, 0, 0,
1437 103, 104, 105, 106, 0, 107, 108, 738, 0, 0,
1438 109, 0, 0, 0, 0, 0, 0, 11, 454, 455,
1439 456, 457, 458, 459, 460, 461, 462, 463, 464, 465,
1440 466, 467, 468, 469, 470, 471, 0, 163, 0, 0,
1441 0, 693, 0, 0, 0, 0, 0, 0, 0, 0,
1442 0, 0, 0, 0, 110, 111, 112, 113, 0, 0,
1443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1444 0, 0, 0, 0, 63, 0, 114, 115, 116, 117,
1445 118, 119, 0, 120, 0, 0, 121, 122, 123, 124,
1446 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1447 135, 136, 102, 0, 0, 0, 0, 0, 0, 0,
1448 0, 103, 104, 105, 106, 0, 107, 108, 0, 0,
1449 0, 109, 0, 0, 667, 0, 0, 0, 0, 0,
1450 0, 710, 815, 454, 455, 456, 457, 458, 459, 460,
1451 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
1452 471, 0, 0, 0, 0, 0, 472, 0, 0, 0,
1453 0, 0, 0, 0, 0, 110, 111, 112, 113, 0,
1454 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1455 0, 0, 0, 0, 0, 0, 0, 114, 115, 116,
1456 117, 118, 119, 0, 120, 0, 0, 121, 122, 123,
1457 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1458 134, 135, 136, 102, 0, 0, 0, 0, 0, 0,
1459 0, 0, 103, 104, 105, 106, 0, 107, 108, 0,
1460 0, 0, 109, 0, 0, 0, 0, 0, 0, 0,
1461 0, 0, 0, 0, 0, 752, 0, 0, 0, 0,
1462 0, 0, 0, 0, 0, 0, 0, 0, 0, 163,
1463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1464 0, 0, 0, 0, 0, 0, 110, 111, 112, 113,
1465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1466 0, 0, 0, 0, 0, 0, 0, 0, 114, 115,
1467 116, 117, 118, 119, 0, 120, 0, 0, 121, 122,
1468 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
1469 133, 134, 135, 136, 102, 0, 0, 0, 0, 0,
1470 0, 0, 0, 103, 104, 105, 106, 759, 107, 108,
1471 0, 0, 0, 109, 0, 0, 454, 455, 456, 457,
1472 458, 459, 460, 461, 462, 463, 464, 465, 466, 467,
1473 468, 469, 470, 471, 0, 0, 0, 0, 0, 693,
1474 163, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1475 0, 0, 0, 0, 0, 0, 102, 110, 111, 112,
1476 113, 0, 0, 0, 0, 103, 104, 105, 106, 0,
1477 107, 108, 0, 0, 0, 109, 0, 0, 0, 114,
1478 115, 116, 117, 118, 119, 450, 120, 0, 0, 121,
1479 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
1480 132, 133, 134, 135, 136, 0, 0, 0, 0, 0,
1481 0, 0, 0, 0, 0, 0, 0, 0, 102, 110,
1482 111, 112, 113, 0, 0, 0, 0, 103, 104, 105,
1483 106, 0, 107, 108, 0, 0, 0, 109, 0, 0,
1484 0, 114, 115, 116, 117, 118, 119, 710, 120, 0,
1485 0, 121, 122, 123, 124, 125, 126, 127, 128, 129,
1486 130, 131, 132, 133, 134, 135, 136, 0, 0, 0,
1487 0, 0, 0, 0, 0, 0, 102, 0, 0, 0,
1488 0, 110, 111, 112, 113, 103, 104, 105, 106, 0,
1489 107, 108, 0, 0, 0, 109, 0, 0, 0, 0,
1490 0, 0, 0, 114, 115, 116, 117, 118, 119, 0,
1491 120, 0, 0, 121, 122, 123, 124, 125, 126, 127,
1492 128, 129, 130, 131, 132, 133, 134, 135, 136, 0,
1493 0, 0, 0, 0, 0, 0, 0, 740, 0, 110,
1494 111, 112, 113, 0, 0, 0, 0, 0, 0, 0,
1495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1496 0, 114, 115, 116, 117, 118, 119, 0, 120, 0,
1497 0, 121, 122, 123, 124, 125, 126, 127, 128, 129,
1498 130, 131, 132, 133, 134, 135, 136, 102, 0, 0,
1499 0, 0, 0, 0, 0, 0, 103, 104, 105, 106,
1500 911, 791, 108, 0, 0, 0, 109, 0, 0, 454,
1501 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
1502 465, 466, 467, 468, 469, 470, 471, 0, 0, 0,
1503 0, 0, 693, 163, 0, 0, 0, 0, 0, 0,
1504 0, 0, 0, 0, 0, 102, 0, 0, 0, 0,
1505 110, 111, 112, 113, 103, 104, 105, 106, 0, 107,
1506 108, 0, 0, 0, 109, 0, 0, 0, 0, 0,
1507 0, 0, 114, 115, 116, 117, 118, 119, 0, 120,
1508 0, 0, 121, 122, 123, 124, 125, 126, 127, 128,
1509 129, 130, 131, 132, 133, 134, 135, 136, 0, 0,
1510 0, 0, 0, 102, 0, 0, 836, 0, 110, 111,
1511 112, 113, 103, 104, 105, 106, 0, 107, 108, 0,
1512 0, 0, 109, 0, 0, 0, 0, 0, 0, 0,
1513 114, 115, 116, 117, 118, 119, 0, 120, 0, 0,
1514 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
1515 131, 132, 133, 134, 135, 136, 0, 0, 0, 0,
1516 0, 0, 0, 0, 0, 0, 110, 111, 112, 113,
1517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1518 0, 0, 0, 0, 0, 0, 0, 0, 114, 115,
1519 116, 117, 118, 119, 0, 120, 0, 0, 121, 122,
1520 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
1521 133, 134, 135, 136, 875, 0, 0, 0, 0, 0,
1522 0, 0, 454, 455, 456, 457, 458, 459, 460, 461,
1523 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
1524 749, 0, 0, 0, 0, 693, 0, 454, 455, 456,
1525 457, 458, 459, 460, 461, 462, 463, 464, 465, 466,
1526 467, 468, 469, 470, 471, 807, 0, 0, 0, 0,
1527 472, 0, 454, 455, 456, 457, 458, 459, 460, 461,
1528 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
1529 0, 0, 0, 708, 0, 693, 454, 455, 456, 457,
1530 458, 459, 460, 461, 462, 463, 464, 465, 466, 467,
1531 468, 469, 470, 471, 0, 0, 0, 0, 0, 693,
1532 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
1533 464, 465, 466, 467, 468, 469, 470, 471, 0, 0,
1534 0, 0, 0, 472, 454, 455, 456, 457, 458, 459,
1535 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
1536 470, 471, 0, 0, 0, 0, 0, 693, 454, 455,
1537 456, 457, 458, 459, 460, 461, 462, 463, 464, 465,
1538 466, 467, 468, 469, 470, 471, 0, 0, 0, 0,
1539 0, 472, 454, 455, 456, 457, 458, 459, 460, 461,
1540 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
1541 0, 0, 0, 0, 0, 693
1542 };
1543
1544 static const short yycheck[] =
1545 {
1546 31, 21, 16, 17, 18, 185, 184, 185, 86, 31,
1547 0, 15, 31, 0, 191, 90, 101, 90, 420, 420,
1548 10, 423, 84, 423, 394, 15, 32, 89, 704, 497,
1549 381, 310, 726, 23, 367, 393, 26, 377, 378, 26,
1550 391, 475, 726, 475, 15, 726, 60, 61, 62, 0,
1551 408, 10, 137, 43, 763, 140, 765, 26, 49, 10,
1552 310, 426, 44, 29, 89, 755, 31, 32, 24, 34,
1553 84, 0, 23, 160, 31, 26, 90, 91, 92, 36,
1554 359, 432, 123, 777, 43, 99, 365, 32, 25, 93,
1555 29, 785, 43, 29, 33, 36, 121, 33, 35, 9,
1556 809, 11, 29, 93, 785, 192, 33, 440, 64, 26,
1557 27, 801, 35, 36, 26, 32, 449, 17, 18, 452,
1558 86, 33, 93, 4, 5, 6, 32, 44, 9, 33,
1559 34, 122, 38, 498, 32, 811, 34, 488, 489, 31,
1560 36, 22, 6, 35, 36, 9, 497, 86, 117, 32,
1561 86, 841, 828, 157, 168, 405, 35, 36, 123, 86,
1562 191, 3, 31, 30, 6, 34, 156, 157, 10, 31,
1563 12, 13, 186, 31, 453, 33, 34, 867, 854, 33,
1564 34, 23, 876, 4, 5, 6, 157, 31, 9, 33,
1565 34, 32, 876, 472, 473, 885, 890, 156, 6, 7,
1566 8, 22, 33, 34, 898, 156, 35, 916, 108, 109,
1567 110, 111, 112, 113, 33, 34, 36, 898, 912, 90,
1568 91, 92, 93, 94, 40, 96, 97, 23, 912, 36,
1569 17, 18, 23, 311, 121, 310, 38, 310, 32, 33,
1570 33, 34, 676, 919, 676, 32, 32, 681, 6, 681,
1571 32, 4, 5, 6, 7, 8, 9, 10, 11, 33,
1572 34, 631, 31, 633, 17, 36, 636, 91, 92, 22,
1573 32, 35, 40, 36, 49, 32, 29, 17, 18, 31,
1574 31, 6, 26, 32, 359, 40, 359, 638, 350, 34,
1575 365, 34, 365, 34, 31, 26, 310, 475, 32, 22,
1576 32, 31, 37, 39, 64, 663, 32, 40, 64, 31,
1577 488, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1578 40, 31, 24, 40, 32, 32, 728, 728, 31, 82,
1579 83, 84, 85, 86, 87, 33, 33, 670, 33, 25,
1580 673, 674, 693, 694, 812, 359, 34, 31, 35, 34,
1581 364, 365, 710, 35, 33, 33, 33, 715, 98, 99,
1582 100, 101, 102, 103, 104, 105, 106, 34, 121, 34,
1583 40, 393, 35, 64, 32, 726, 32, 408, 453, 107,
1584 453, 34, 33, 33, 25, 32, 408, 35, 419, 408,
1585 421, 31, 423, 35, 33, 33, 33, 472, 473, 472,
1586 473, 771, 32, 773, 774, 33, 31, 758, 422, 33,
1587 25, 34, 95, 31, 33, 32, 756, 757, 34, 33,
1588 33, 24, 436, 34, 32, 34, 32, 95, 830, 830,
1589 32, 25, 33, 32, 785, 25, 450, 33, 33, 453,
1590 446, 34, 34, 34, 33, 476, 477, 35, 33, 33,
1591 32, 25, 632, 33, 632, 32, 807, 635, 472, 473,
1592 862, 812, 862, 796, 797, 33, 33, 32, 26, 748,
1593 749, 475, 33, 33, 33, 681, 827, 879, 879, 676,
1594 179, 157, 852, 38, 628, 475, 23, 181, 475, 891,
1595 635, 380, 803, 639, 508, 169, 446, 20, 676, 765,
1596 19, 383, 912, 681, 4, 5, 6, 7, 8, 9,
1597 10, 11, 37, 776, 419, 890, 932, 17, 824, 921,
1598 921, 735, 22, -1, 875, 876, -1, -1, -1, 29,
1599 932, -1, -1, 4, 5, 6, 7, 8, 9, 10,
1600 11, -1, -1, -1, -1, -1, 17, 898, 918, 37,
1601 -1, 22, -1, -1, -1, -1, 733, -1, 29, 30,
1602 31, 912, -1, 933, -1, 90, 91, 92, 93, 94,
1603 41, 96, 97, -1, 4, 5, 6, 7, 8, 9,
1604 10, 11, -1, 83, 84, 85, 86, 17, 768, -1,
1605 768, -1, 22, -1, -1, -1, -1, -1, 683, 684,
1606 -1, -1, 90, 91, 92, 93, 94, -1, 96, 97,
1607 -1, 82, 83, 84, 85, 86, 87, -1, 89, -1,
1608 -1, 121, -1, -1, -1, 639, 3, -1, 659, 6,
1609 -1, -1, -1, 10, -1, 12, 13, 14, 15, 16,
1610 17, 663, -1, 114, -1, -1, -1, 661, 119, 680,
1611 121, -1, -1, 83, 84, 85, 33, -1, 680, -1,
1612 -1, 680, -1, -1, -1, -1, -1, -1, 682, -1,
1613 689, -1, 676, 748, 749, 748, 749, 681, -1, -1,
1614 -1, -1, -1, -1, -1, -1, 676, -1, 710, 676,
1615 870, 681, 870, 715, 681, -1, -1, -1, -1, 730,
1616 -1, -1, 733, -1, -1, 736, -1, -1, -1, 889,
1617 -1, 889, 732, -1, -1, -1, 794, -1, -1, -1,
1618 -1, 735, -1, -1, -1, 4, 5, 6, 7, 8,
1619 9, 10, 11, -1, 748, 749, -1, -1, 17, -1,
1620 -1, -1, -1, 22, -1, 925, -1, 925, -1, -1,
1621 29, -1, -1, 767, -1, -1, 770, 788, 37, -1,
1622 -1, -1, 4, 5, 6, 7, 8, 9, 10, 11,
1623 801, -1, 30, 804, 805, 17, -1, -1, -1, -1,
1624 22, 795, -1, -1, -1, 3, -1, 29, 6, -1,
1625 -1, 811, 10, 824, 12, 13, 14, 15, 16, 17,
1626 -1, -1, -1, -1, 83, 84, 85, 86, 66, 67,
1627 68, 69, 70, 71, 72, 73, 74, 75, 76, -1,
1628 78, 79, 80, 81, -1, -1, -1, -1, -1, -1,
1629 -1, -1, -1, -1, -1, -1, 867, -1, -1, -1,
1630 119, 83, 84, 85, 86, 876, -1, -1, -1, -1,
1631 -1, 0, -1, -1, 3, 4, 5, 6, 7, 8,
1632 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
1633 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1634 29, 912, 31, 32, 33, 34, 35, 36, 37, 38,
1635 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1636 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1637 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1638 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1639 -1, 80, -1, 82, 83, 84, 85, 86, 87, 88,
1640 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1641 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1642 109, 110, 111, 112, 113, 114, -1, -1, 117, -1,
1643 119, 120, 121, 122, 123, 0, -1, -1, 3, 4,
1644 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1645 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1646 25, 26, 27, 28, 29, -1, 31, 32, 33, 34,
1647 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1648 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1649 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1650 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1651 75, 76, 77, 78, -1, 80, -1, 82, 83, 84,
1652 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1653 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1654 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1655 -1, -1, 117, -1, 119, 120, 121, 122, 123, 0,
1656 -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
1657 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1658 21, 22, 23, 24, 25, 26, 27, 28, 29, -1,
1659 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1660 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1661 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1662 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1663 71, 72, 73, 74, 75, 76, 77, 78, -1, 80,
1664 -1, 82, 83, 84, 85, 86, 87, 88, 89, 90,
1665 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1666 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1667 111, 112, 113, 114, -1, -1, 117, -1, 119, 120,
1668 121, 122, 123, 0, -1, -1, 3, 4, 5, 6,
1669 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1670 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1671 27, 28, 29, -1, 31, 32, 33, 34, 35, 36,
1672 -1, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1673 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1674 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1675 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1676 77, 78, -1, 80, -1, 82, 83, 84, 85, 86,
1677 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1678 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1679 107, 108, 109, 110, 111, 112, 113, 114, 3, -1,
1680 117, -1, 119, 120, 121, 122, 123, 12, 13, 14,
1681 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
1682 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
1683 35, 36, 37, 38, 39, 40, -1, 42, 43, 44,
1684 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1685 55, 56, 57, 58, 59, -1, -1, -1, -1, -1,
1686 65, 66, 67, 68, 69, -1, -1, -1, -1, -1,
1687 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1688 -1, 86, -1, 88, 89, 90, 91, 92, 93, -1,
1689 95, -1, -1, 98, 99, 100, 101, 102, 103, 104,
1690 105, 106, 107, 108, 109, 110, 111, 112, 113, -1,
1691 3, -1, -1, -1, -1, -1, -1, -1, 123, 12,
1692 13, 14, 15, -1, 17, 18, 19, -1, -1, 22,
1693 23, -1, 25, -1, 27, 28, 29, -1, -1, 32,
1694 -1, -1, -1, -1, 4, 5, 6, 7, 8, 9,
1695 10, 11, -1, -1, 47, 48, 49, 17, -1, -1,
1696 -1, -1, 22, -1, -1, -1, -1, 60, 61, 29,
1697 -1, -1, -1, 66, 67, 68, 69, -1, -1, -1,
1698 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1699 -1, -1, -1, 86, -1, 88, 89, 90, 91, 92,
1700 93, -1, 95, -1, -1, 98, 99, 100, 101, 102,
1701 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1702 113, -1, -1, 83, 84, 85, 86, -1, -1, 122,
1703 4, 5, 6, 7, 8, 9, 10, 11, -1, -1,
1704 -1, -1, -1, 17, -1, -1, -1, -1, 22, -1,
1705 -1, -1, -1, -1, -1, 29, -1, -1, -1, 119,
1706 -1, 3, -1, -1, -1, -1, -1, -1, -1, -1,
1707 12, 13, 14, 15, -1, 17, 18, -1, -1, -1,
1708 22, -1, -1, 25, -1, 27, 28, -1, -1, -1,
1709 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1710 -1, -1, -1, -1, -1, 47, 48, -1, -1, 83,
1711 84, 85, 86, -1, -1, -1, -1, -1, 60, 61,
1712 -1, -1, -1, -1, 66, 67, 68, 69, -1, -1,
1713 -1, -1, -1, -1, -1, 77, -1, -1, -1, -1,
1714 -1, -1, -1, -1, -1, 119, 88, 89, 90, 91,
1715 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
1716 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1717 112, 113, 3, -1, -1, 117, -1, -1, -1, -1,
1718 -1, 12, 13, 14, 15, -1, 17, 18, -1, -1,
1719 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
1720 -1, 32, -1, -1, -1, -1, -1, 4, 5, 6,
1721 7, 8, 9, 10, 11, -1, 47, 48, -1, -1,
1722 17, -1, -1, -1, -1, 22, -1, -1, -1, 60,
1723 61, -1, 29, -1, -1, 66, 67, 68, 69, -1,
1724 -1, -1, -1, -1, -1, -1, 77, -1, -1, -1,
1725 -1, -1, -1, -1, -1, -1, -1, 88, 89, 90,
1726 91, 92, 93, -1, 95, -1, -1, 98, 99, 100,
1727 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1728 111, 112, 113, 3, -1, 116, 83, 84, 85, 86,
1729 -1, -1, 12, 13, 14, 15, -1, 17, 18, -1,
1730 -1, -1, 22, -1, -1, 25, 26, 27, 28, -1,
1731 -1, -1, 32, -1, -1, -1, -1, -1, 4, 5,
1732 6, 7, 8, 9, 10, 11, -1, 47, 48, -1,
1733 -1, 17, -1, -1, -1, -1, 22, -1, -1, -1,
1734 60, 61, -1, 29, -1, -1, 66, 67, 68, 69,
1735 -1, -1, -1, -1, -1, -1, -1, 77, -1, -1,
1736 -1, -1, -1, -1, -1, -1, -1, -1, 88, 89,
1737 90, 91, 92, 93, -1, 95, -1, -1, 98, 99,
1738 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1739 110, 111, 112, 113, 3, -1, 116, 83, 84, 85,
1740 86, -1, -1, 12, 13, 14, 15, -1, 17, 18,
1741 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
1742 -1, -1, -1, 32, -1, -1, -1, -1, -1, 4,
1743 5, 6, 7, 8, 9, 10, 11, -1, 47, 48,
1744 -1, -1, 17, -1, -1, -1, -1, 22, -1, -1,
1745 -1, 60, 61, -1, 29, -1, -1, 66, 67, 68,
1746 69, -1, -1, -1, -1, -1, -1, -1, 77, -1,
1747 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
1748 89, 90, 91, 92, 93, -1, 95, -1, -1, 98,
1749 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1750 109, 110, 111, 112, 113, 3, -1, 116, 83, 84,
1751 85, 86, -1, -1, 12, 13, 14, 15, -1, 17,
1752 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
1753 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
1754 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
1755 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1756 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
1757 68, 69, -1, -1, -1, -1, -1, -1, -1, 77,
1758 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1759 88, 89, 90, 91, 92, 93, -1, 95, -1, -1,
1760 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
1761 108, 109, 110, 111, 112, 113, 3, -1, 116, -1,
1762 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
1763 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
1764 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
1765 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1766 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
1767 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
1768 67, 68, 69, -1, -1, -1, -1, -1, -1, -1,
1769 77, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1770 -1, 88, 89, 90, 91, 92, 93, -1, 95, -1,
1771 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1772 107, 108, 109, 110, 111, 112, 113, 3, -1, 116,
1773 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
1774 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
1775 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
1776 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1777 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
1778 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
1779 66, 67, 68, 69, -1, -1, -1, -1, -1, -1,
1780 -1, 77, -1, -1, -1, -1, -1, -1, -1, -1,
1781 -1, -1, 88, 89, 90, 91, 92, 93, -1, 95,
1782 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
1783 106, 107, 108, 109, 110, 111, 112, 113, 3, -1,
1784 116, -1, -1, -1, -1, -1, -1, 12, 13, 14,
1785 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
1786 25, 26, 27, 28, -1, -1, -1, 32, -1, -1,
1787 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1788 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
1789 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
1790 -1, 66, 67, 68, 69, -1, -1, -1, -1, -1,
1791 -1, -1, 77, -1, -1, -1, -1, -1, -1, -1,
1792 -1, -1, -1, 88, 89, 90, 91, 92, 93, -1,
1793 95, -1, -1, 98, 99, 100, 101, 102, 103, 104,
1794 105, 106, 107, 108, 109, 110, 111, 112, 113, 3,
1795 -1, 116, -1, -1, -1, -1, -1, -1, 12, 13,
1796 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
1797 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
1798 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1799 -1, -1, -1, 47, 48, -1, -1, -1, -1, -1,
1800 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
1801 -1, -1, 66, 67, 68, 69, -1, -1, -1, -1,
1802 -1, -1, -1, 77, -1, -1, -1, -1, -1, -1,
1803 -1, -1, -1, -1, 88, 89, 90, 91, 92, 93,
1804 -1, 95, -1, -1, 98, 99, 100, 101, 102, 103,
1805 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1806 3, -1, 116, -1, -1, -1, -1, -1, -1, 12,
1807 13, 14, 15, -1, 17, 18, -1, -1, -1, 22,
1808 -1, -1, 25, 26, 27, 28, -1, -1, -1, 32,
1809 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1810 -1, -1, -1, -1, 47, 48, -1, -1, -1, -1,
1811 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
1812 -1, -1, -1, 66, 67, 68, 69, -1, -1, -1,
1813 -1, -1, -1, -1, 77, -1, -1, -1, -1, -1,
1814 -1, -1, -1, -1, -1, 88, 89, 90, 91, 92,
1815 93, -1, 95, -1, -1, 98, 99, 100, 101, 102,
1816 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1817 113, 3, -1, 116, -1, -1, -1, -1, -1, -1,
1818 12, 13, 14, 15, -1, 17, 18, -1, -1, -1,
1819 22, -1, -1, 25, 26, 27, 28, -1, -1, -1,
1820 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1821 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
1822 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
1823 -1, -1, -1, -1, 66, 67, 68, 69, -1, -1,
1824 -1, -1, -1, -1, -1, 77, -1, -1, -1, -1,
1825 -1, -1, -1, -1, -1, -1, 88, 89, 90, 91,
1826 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
1827 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1828 112, 113, 3, -1, 116, -1, -1, -1, -1, -1,
1829 -1, 12, 13, 14, 15, -1, 17, 18, -1, -1,
1830 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
1831 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
1832 -1, -1, -1, -1, -1, -1, 47, 48, -1, -1,
1833 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
1834 61, -1, -1, -1, -1, 66, 67, 68, 69, -1,
1835 -1, -1, -1, -1, -1, -1, 77, -1, -1, -1,
1836 -1, -1, -1, -1, -1, -1, -1, 88, 89, 90,
1837 91, 92, 93, -1, 95, -1, -1, 98, 99, 100,
1838 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1839 111, 112, 113, 3, -1, 116, -1, -1, -1, -1,
1840 -1, -1, 12, 13, 14, 15, -1, 17, 18, -1,
1841 -1, -1, 22, -1, -1, 25, 26, 27, 28, -1,
1842 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
1843 -1, -1, -1, -1, -1, -1, -1, 47, 48, -1,
1844 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1845 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
1846 -1, -1, -1, -1, -1, -1, -1, 77, -1, -1,
1847 -1, -1, -1, -1, -1, -1, -1, -1, 88, 89,
1848 90, 91, 92, 93, -1, 95, -1, -1, 98, 99,
1849 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1850 110, 111, 112, 113, 3, -1, 116, -1, -1, -1,
1851 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
1852 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
1853 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
1854 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
1855 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1856 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
1857 69, -1, -1, -1, -1, -1, -1, -1, 77, -1,
1858 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
1859 89, 90, 91, 92, 93, -1, 95, -1, -1, 98,
1860 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1861 109, 110, 111, 112, 113, 3, -1, 116, -1, -1,
1862 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
1863 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
1864 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
1865 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
1866 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1867 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
1868 68, 69, -1, -1, -1, -1, -1, -1, -1, 77,
1869 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1870 88, 89, 90, 91, 92, 93, -1, 95, -1, -1,
1871 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
1872 108, 109, 110, 111, 112, 113, 3, -1, 116, -1,
1873 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
1874 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
1875 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
1876 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1877 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
1878 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
1879 67, 68, 69, -1, -1, -1, -1, -1, -1, -1,
1880 77, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1881 -1, 88, 89, 90, 91, 92, 93, -1, 95, -1,
1882 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1883 107, 108, 109, 110, 111, 112, 113, 3, -1, 116,
1884 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
1885 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
1886 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
1887 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1888 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
1889 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
1890 66, 67, 68, 69, -1, -1, -1, -1, -1, -1,
1891 -1, 77, -1, -1, -1, -1, -1, -1, -1, -1,
1892 -1, -1, 88, 89, 90, 91, 92, 93, -1, 95,
1893 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
1894 106, 107, 108, 109, 110, 111, 112, 113, 3, -1,
1895 116, -1, -1, -1, -1, -1, -1, 12, 13, 14,
1896 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
1897 25, 26, 27, 28, -1, -1, -1, 32, -1, -1,
1898 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1899 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
1900 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
1901 -1, 66, 67, 68, 69, -1, -1, -1, -1, -1,
1902 -1, -1, 77, -1, -1, -1, -1, -1, -1, -1,
1903 -1, -1, -1, 88, 89, 90, 91, 92, 93, -1,
1904 95, -1, -1, 98, 99, 100, 101, 102, 103, 104,
1905 105, 106, 107, 108, 109, 110, 111, 112, 113, 3,
1906 -1, 116, -1, -1, -1, -1, -1, -1, 12, 13,
1907 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
1908 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
1909 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1910 -1, -1, -1, 47, 48, -1, -1, -1, -1, -1,
1911 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
1912 -1, -1, 66, 67, 68, 69, -1, -1, -1, -1,
1913 -1, -1, -1, 77, -1, -1, -1, -1, -1, -1,
1914 -1, -1, -1, -1, 88, 89, 90, 91, 92, 93,
1915 -1, 95, -1, -1, 98, 99, 100, 101, 102, 103,
1916 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1917 3, -1, 116, -1, -1, -1, -1, -1, -1, 12,
1918 13, 14, 15, -1, 17, 18, -1, -1, -1, 22,
1919 -1, -1, 25, 26, 27, 28, -1, -1, -1, 32,
1920 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1921 -1, -1, -1, -1, 47, 48, -1, -1, -1, -1,
1922 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
1923 -1, -1, -1, 66, 67, 68, 69, -1, -1, -1,
1924 -1, -1, -1, -1, 77, -1, -1, -1, -1, -1,
1925 -1, -1, -1, -1, -1, 88, 89, 90, 91, 92,
1926 93, -1, 95, -1, -1, 98, 99, 100, 101, 102,
1927 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1928 113, 3, -1, 116, -1, -1, -1, -1, -1, -1,
1929 12, 13, 14, 15, -1, 17, 18, -1, -1, -1,
1930 22, -1, -1, 25, 26, 27, 28, -1, -1, -1,
1931 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1932 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
1933 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
1934 -1, -1, -1, -1, 66, 67, 68, 69, -1, -1,
1935 -1, -1, -1, -1, -1, 77, -1, -1, -1, -1,
1936 -1, -1, -1, -1, -1, -1, 88, 89, 90, 91,
1937 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
1938 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1939 112, 113, 3, -1, 116, -1, -1, -1, -1, -1,
1940 -1, 12, 13, 14, 15, -1, 17, 18, -1, -1,
1941 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
1942 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
1943 -1, -1, -1, -1, -1, -1, 47, 48, -1, -1,
1944 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
1945 61, -1, -1, -1, -1, 66, 67, 68, 69, -1,
1946 -1, -1, -1, -1, -1, -1, 77, -1, -1, -1,
1947 -1, -1, -1, -1, -1, -1, -1, 88, 89, 90,
1948 91, 92, 93, -1, 95, -1, -1, 98, 99, 100,
1949 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1950 111, 112, 113, 3, -1, 116, -1, -1, -1, -1,
1951 -1, -1, 12, 13, 14, 15, -1, 17, 18, -1,
1952 -1, -1, 22, -1, -1, 25, 26, 27, 28, -1,
1953 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
1954 -1, -1, -1, -1, -1, -1, -1, 47, 48, -1,
1955 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1956 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
1957 -1, -1, -1, -1, -1, -1, -1, 77, -1, -1,
1958 -1, -1, -1, -1, -1, -1, -1, -1, 88, 89,
1959 90, 91, 92, 93, -1, 95, -1, -1, 98, 99,
1960 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1961 110, 111, 112, 113, 3, -1, 116, -1, -1, -1,
1962 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
1963 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
1964 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
1965 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
1966 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1967 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
1968 69, -1, -1, -1, -1, -1, -1, -1, 77, -1,
1969 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
1970 89, 90, 91, 92, 93, -1, 95, -1, -1, 98,
1971 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1972 109, 110, 111, 112, 113, 3, -1, 116, -1, -1,
1973 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
1974 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
1975 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
1976 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
1977 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1978 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
1979 68, 69, -1, -1, -1, -1, -1, -1, -1, 77,
1980 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1981 88, 89, 90, 91, 92, 93, -1, 95, -1, -1,
1982 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
1983 108, 109, 110, 111, 112, 113, 3, -1, 116, -1,
1984 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
1985 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
1986 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
1987 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1988 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
1989 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
1990 67, 68, 69, -1, -1, -1, -1, -1, -1, -1,
1991 77, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1992 -1, 88, 89, 90, 91, 92, 93, -1, 95, -1,
1993 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1994 107, 108, 109, 110, 111, 112, 113, 3, -1, 116,
1995 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
1996 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
1997 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
1998 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1999 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2000 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
2001 66, 67, 68, 69, -1, -1, -1, -1, -1, -1,
2002 -1, 77, -1, -1, -1, -1, -1, -1, -1, -1,
2003 -1, -1, 88, 89, 90, 91, 92, 93, -1, 95,
2004 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
2005 106, 107, 108, 109, 110, 111, 112, 113, 3, -1,
2006 116, -1, -1, -1, -1, -1, -1, 12, 13, 14,
2007 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
2008 25, 26, 27, 28, -1, -1, -1, 32, -1, -1,
2009 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2010 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
2011 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
2012 -1, 66, 67, 68, 69, -1, -1, -1, -1, -1,
2013 -1, -1, 77, -1, -1, -1, -1, -1, -1, -1,
2014 -1, -1, -1, 88, 89, 90, 91, 92, 93, -1,
2015 95, -1, -1, 98, 99, 100, 101, 102, 103, 104,
2016 105, 106, 107, 108, 109, 110, 111, 112, 113, 3,
2017 -1, 116, -1, -1, -1, -1, -1, -1, 12, 13,
2018 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
2019 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
2020 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2021 -1, -1, -1, 47, 48, -1, -1, -1, -1, -1,
2022 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
2023 -1, -1, 66, 67, 68, 69, -1, -1, -1, -1,
2024 -1, -1, -1, 77, -1, -1, -1, -1, -1, -1,
2025 -1, -1, -1, -1, 88, 89, 90, 91, 92, 93,
2026 -1, 95, -1, -1, 98, 99, 100, 101, 102, 103,
2027 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2028 3, -1, 116, -1, -1, -1, -1, -1, -1, 12,
2029 13, 14, 15, -1, 17, 18, -1, -1, -1, 22,
2030 -1, -1, 25, 26, 27, 28, -1, -1, -1, 32,
2031 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2032 -1, -1, -1, -1, 47, 48, -1, -1, -1, -1,
2033 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
2034 -1, -1, -1, 66, 67, 68, 69, -1, -1, -1,
2035 -1, -1, -1, -1, 77, -1, -1, -1, -1, -1,
2036 -1, -1, -1, -1, -1, 88, 89, 90, 91, 92,
2037 93, -1, 95, -1, -1, 98, 99, 100, 101, 102,
2038 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2039 113, 3, -1, 116, -1, -1, -1, -1, -1, -1,
2040 12, 13, 14, 15, -1, 17, 18, -1, -1, -1,
2041 22, -1, -1, 25, 26, 27, 28, -1, -1, -1,
2042 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2043 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
2044 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
2045 -1, -1, -1, -1, 66, 67, 68, 69, -1, -1,
2046 -1, -1, -1, -1, -1, 77, -1, -1, -1, -1,
2047 -1, -1, -1, -1, -1, -1, 88, 89, 90, 91,
2048 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
2049 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2050 112, 113, 3, -1, 116, -1, -1, -1, -1, -1,
2051 -1, 12, 13, 14, 15, -1, 17, 18, -1, -1,
2052 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
2053 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
2054 -1, -1, -1, -1, -1, -1, 47, 48, -1, -1,
2055 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
2056 61, -1, -1, -1, -1, 66, 67, 68, 69, -1,
2057 -1, -1, -1, -1, -1, -1, 77, -1, -1, -1,
2058 -1, -1, -1, -1, -1, -1, -1, 88, 89, 90,
2059 91, 92, 93, -1, 95, -1, -1, 98, 99, 100,
2060 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2061 111, 112, 113, 3, -1, 116, -1, -1, -1, -1,
2062 -1, -1, 12, 13, 14, 15, -1, 17, 18, -1,
2063 -1, -1, 22, -1, -1, 25, 26, 27, 28, -1,
2064 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
2065 -1, -1, -1, -1, -1, -1, -1, 47, 48, -1,
2066 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2067 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
2068 -1, -1, -1, -1, -1, -1, -1, 77, -1, -1,
2069 -1, -1, -1, -1, -1, -1, -1, -1, 88, 89,
2070 90, 91, 92, 93, -1, 95, -1, -1, 98, 99,
2071 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2072 110, 111, 112, 113, 3, -1, 116, -1, -1, -1,
2073 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
2074 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
2075 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
2076 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
2077 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2078 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
2079 69, -1, -1, -1, -1, -1, -1, -1, 77, -1,
2080 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
2081 89, 90, 91, 92, 93, -1, 95, -1, -1, 98,
2082 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2083 109, 110, 111, 112, 113, 3, -1, 116, -1, -1,
2084 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
2085 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
2086 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
2087 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
2088 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2089 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
2090 68, 69, -1, -1, -1, -1, -1, -1, -1, 77,
2091 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2092 88, 89, 90, 91, 92, 93, -1, 95, -1, -1,
2093 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
2094 108, 109, 110, 111, 112, 113, 3, -1, 116, -1,
2095 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
2096 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
2097 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
2098 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2099 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
2100 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
2101 67, 68, 69, -1, -1, -1, -1, -1, -1, -1,
2102 77, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2103 -1, 88, 89, 90, 91, 92, 93, -1, 95, -1,
2104 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
2105 107, 108, 109, 110, 111, 112, 113, 3, -1, 116,
2106 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
2107 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
2108 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
2109 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2110 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2111 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
2112 66, 67, 68, 69, -1, -1, -1, -1, -1, -1,
2113 -1, 77, -1, -1, -1, -1, -1, -1, -1, -1,
2114 -1, -1, 88, 89, 90, 91, 92, 93, -1, 95,
2115 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
2116 106, 107, 108, 109, 110, 111, 112, 113, -1, -1,
2117 116, 3, 4, 5, 6, 7, 8, 9, 10, 11,
2118 12, 13, 14, 15, -1, 17, 18, 19, -1, -1,
2119 22, 23, -1, 25, -1, 27, 28, 29, -1, -1,
2120 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2121 -1, -1, -1, -1, -1, 47, 48, 49, -1, -1,
2122 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
2123 -1, -1, -1, -1, 66, 67, 68, 69, -1, -1,
2124 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2125 -1, 83, 84, 85, 86, -1, 88, 89, 90, 91,
2126 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
2127 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2128 112, 113, 3, -1, -1, -1, -1, -1, -1, -1,
2129 -1, 12, 13, 14, 15, -1, 17, 18, 19, 20,
2130 21, 22, 23, -1, 25, 26, 27, 28, -1, -1,
2131 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
2132 -1, -1, -1, -1, -1, -1, 47, 48, 49, -1,
2133 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
2134 61, -1, -1, -1, -1, 66, 67, 68, 69, -1,
2135 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2136 -1, -1, -1, -1, -1, -1, -1, 88, 89, 90,
2137 91, 92, 93, -1, 95, -1, -1, 98, 99, 100,
2138 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2139 111, 112, 113, 3, -1, -1, -1, -1, -1, -1,
2140 -1, -1, 12, 13, 14, 15, -1, 17, 18, 19,
2141 -1, -1, 22, 23, -1, 25, -1, 27, 28, -1,
2142 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
2143 -1, -1, -1, -1, 44, -1, -1, 47, 48, 49,
2144 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2145 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
2146 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2147 -1, -1, -1, -1, -1, -1, -1, 87, 88, 89,
2148 90, 91, 92, 93, -1, 95, -1, -1, 98, 99,
2149 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2150 110, 111, 112, 113, 3, -1, -1, -1, -1, -1,
2151 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
2152 19, -1, -1, 22, 23, -1, 25, -1, 27, 28,
2153 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
2154 -1, -1, -1, -1, -1, 44, -1, -1, 47, 48,
2155 49, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2156 -1, 60, 61, -1, -1, 64, -1, 66, 67, 68,
2157 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2158 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
2159 89, 90, 91, 92, 93, -1, 95, -1, -1, 98,
2160 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2161 109, 110, 111, 112, 113, 3, -1, -1, -1, -1,
2162 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
2163 18, 19, -1, -1, 22, 23, 24, 25, -1, 27,
2164 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
2165 -1, -1, -1, -1, -1, -1, 44, -1, -1, 47,
2166 48, 49, -1, -1, -1, -1, -1, -1, -1, -1,
2167 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
2168 68, 69, -1, -1, -1, -1, -1, -1, -1, -1,
2169 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2170 88, 89, 90, 91, 92, 93, -1, 95, -1, -1,
2171 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
2172 108, 109, 110, 111, 112, 113, 3, -1, -1, -1,
2173 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
2174 17, 18, 19, -1, -1, 22, 23, -1, 25, -1,
2175 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
2176 -1, -1, -1, -1, -1, -1, -1, 44, -1, -1,
2177 47, 48, 49, -1, -1, -1, -1, -1, -1, -1,
2178 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
2179 67, 68, 69, -1, -1, -1, -1, -1, -1, -1,
2180 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2181 -1, 88, 89, 90, 91, 92, 93, -1, 95, -1,
2182 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
2183 107, 108, 109, 110, 111, 112, 113, 3, -1, -1,
2184 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
2185 -1, 17, 18, 19, -1, -1, 22, 23, -1, 25,
2186 -1, 27, 28, -1, -1, -1, 32, -1, -1, -1,
2187 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2188 -1, 47, 48, 49, -1, -1, -1, -1, -1, -1,
2189 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
2190 66, 67, 68, 69, -1, -1, -1, -1, -1, -1,
2191 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2192 -1, 87, 88, 89, 90, 91, 92, 93, -1, 95,
2193 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
2194 106, 107, 108, 109, 110, 111, 112, 113, 3, -1,
2195 -1, -1, -1, -1, -1, -1, -1, 12, 13, 14,
2196 15, -1, 17, 18, 19, -1, -1, 22, 23, -1,
2197 25, -1, 27, 28, -1, -1, -1, 32, -1, -1,
2198 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2199 -1, -1, 47, 48, 49, -1, -1, -1, -1, -1,
2200 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
2201 -1, 66, 67, 68, 69, -1, -1, -1, -1, -1,
2202 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2203 -1, -1, -1, 88, 89, 90, 91, 92, 93, -1,
2204 95, -1, -1, 98, 99, 100, 101, 102, 103, 104,
2205 105, 106, 107, 108, 109, 110, 111, 112, 113, 3,
2206 -1, -1, -1, -1, -1, -1, -1, -1, 12, 13,
2207 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
2208 -1, 25, -1, 27, 28, -1, -1, -1, 32, -1,
2209 -1, -1, 4, 5, 6, 7, 8, 9, 10, 11,
2210 -1, -1, -1, 47, 48, 17, -1, -1, -1, -1,
2211 22, -1, -1, -1, 26, 27, 60, 61, -1, -1,
2212 -1, -1, 66, 67, 68, 69, -1, -1, -1, -1,
2213 -1, -1, 44, 77, -1, -1, -1, -1, -1, -1,
2214 -1, -1, -1, -1, 88, 89, 90, 91, 92, 93,
2215 -1, 95, -1, -1, 98, 99, 100, 101, 102, 103,
2216 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2217 3, 83, 84, 85, -1, -1, -1, -1, -1, 12,
2218 13, 14, 15, -1, 17, 18, -1, -1, -1, 22,
2219 -1, -1, -1, -1, -1, -1, 29, -1, -1, 32,
2220 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2221 -1, -1, -1, -1, -1, -1, 49, -1, -1, -1,
2222 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2223 -1, -1, -1, 66, 67, 68, 69, -1, -1, -1,
2224 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2225 -1, -1, -1, 86, -1, 88, 89, 90, 91, 92,
2226 93, -1, 95, -1, -1, 98, 99, 100, 101, 102,
2227 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2228 113, 3, -1, -1, -1, -1, -1, -1, -1, -1,
2229 12, 13, 14, 15, -1, 17, 18, 31, -1, -1,
2230 22, -1, -1, -1, -1, -1, -1, 29, 42, 43,
2231 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2232 54, 55, 56, 57, 58, 59, -1, 49, -1, -1,
2233 -1, 65, -1, -1, -1, -1, -1, -1, -1, -1,
2234 -1, -1, -1, -1, 66, 67, 68, 69, -1, -1,
2235 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2236 -1, -1, -1, -1, 86, -1, 88, 89, 90, 91,
2237 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
2238 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2239 112, 113, 3, -1, -1, -1, -1, -1, -1, -1,
2240 -1, 12, 13, 14, 15, -1, 17, 18, -1, -1,
2241 -1, 22, -1, -1, 33, -1, -1, -1, -1, -1,
2242 -1, 32, 33, 42, 43, 44, 45, 46, 47, 48,
2243 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
2244 59, -1, -1, -1, -1, -1, 65, -1, -1, -1,
2245 -1, -1, -1, -1, -1, 66, 67, 68, 69, -1,
2246 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2247 -1, -1, -1, -1, -1, -1, -1, 88, 89, 90,
2248 91, 92, 93, -1, 95, -1, -1, 98, 99, 100,
2249 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2250 111, 112, 113, 3, -1, -1, -1, -1, -1, -1,
2251 -1, -1, 12, 13, 14, 15, -1, 17, 18, -1,
2252 -1, -1, 22, -1, -1, -1, -1, -1, -1, -1,
2253 -1, -1, -1, -1, -1, 35, -1, -1, -1, -1,
2254 -1, -1, -1, -1, -1, -1, -1, -1, -1, 49,
2255 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2256 -1, -1, -1, -1, -1, -1, 66, 67, 68, 69,
2257 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2258 -1, -1, -1, -1, -1, -1, -1, -1, 88, 89,
2259 90, 91, 92, 93, -1, 95, -1, -1, 98, 99,
2260 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2261 110, 111, 112, 113, 3, -1, -1, -1, -1, -1,
2262 -1, -1, -1, 12, 13, 14, 15, 33, 17, 18,
2263 -1, -1, -1, 22, -1, -1, 42, 43, 44, 45,
2264 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2265 56, 57, 58, 59, -1, -1, -1, -1, -1, 65,
2266 49, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2267 -1, -1, -1, -1, -1, -1, 3, 66, 67, 68,
2268 69, -1, -1, -1, -1, 12, 13, 14, 15, -1,
2269 17, 18, -1, -1, -1, 22, -1, -1, -1, 88,
2270 89, 90, 91, 92, 93, 32, 95, -1, -1, 98,
2271 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2272 109, 110, 111, 112, 113, -1, -1, -1, -1, -1,
2273 -1, -1, -1, -1, -1, -1, -1, -1, 3, 66,
2274 67, 68, 69, -1, -1, -1, -1, 12, 13, 14,
2275 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
2276 -1, 88, 89, 90, 91, 92, 93, 32, 95, -1,
2277 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
2278 107, 108, 109, 110, 111, 112, 113, -1, -1, -1,
2279 -1, -1, -1, -1, -1, -1, 3, -1, -1, -1,
2280 -1, 66, 67, 68, 69, 12, 13, 14, 15, -1,
2281 17, 18, -1, -1, -1, 22, -1, -1, -1, -1,
2282 -1, -1, -1, 88, 89, 90, 91, 92, 93, -1,
2283 95, -1, -1, 98, 99, 100, 101, 102, 103, 104,
2284 105, 106, 107, 108, 109, 110, 111, 112, 113, -1,
2285 -1, -1, -1, -1, -1, -1, -1, 64, -1, 66,
2286 67, 68, 69, -1, -1, -1, -1, -1, -1, -1,
2287 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2288 -1, 88, 89, 90, 91, 92, 93, -1, 95, -1,
2289 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
2290 107, 108, 109, 110, 111, 112, 113, 3, -1, -1,
2291 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
2292 33, 17, 18, -1, -1, -1, 22, -1, -1, 42,
2293 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2294 53, 54, 55, 56, 57, 58, 59, -1, -1, -1,
2295 -1, -1, 65, 49, -1, -1, -1, -1, -1, -1,
2296 -1, -1, -1, -1, -1, 3, -1, -1, -1, -1,
2297 66, 67, 68, 69, 12, 13, 14, 15, -1, 17,
2298 18, -1, -1, -1, 22, -1, -1, -1, -1, -1,
2299 -1, -1, 88, 89, 90, 91, 92, 93, -1, 95,
2300 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
2301 106, 107, 108, 109, 110, 111, 112, 113, -1, -1,
2302 -1, -1, -1, 3, -1, -1, 64, -1, 66, 67,
2303 68, 69, 12, 13, 14, 15, -1, 17, 18, -1,
2304 -1, -1, 22, -1, -1, -1, -1, -1, -1, -1,
2305 88, 89, 90, 91, 92, 93, -1, 95, -1, -1,
2306 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
2307 108, 109, 110, 111, 112, 113, -1, -1, -1, -1,
2308 -1, -1, -1, -1, -1, -1, 66, 67, 68, 69,
2309 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2310 -1, -1, -1, -1, -1, -1, -1, -1, 88, 89,
2311 90, 91, 92, 93, -1, 95, -1, -1, 98, 99,
2312 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2313 110, 111, 112, 113, 34, -1, -1, -1, -1, -1,
2314 -1, -1, 42, 43, 44, 45, 46, 47, 48, 49,
2315 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2316 35, -1, -1, -1, -1, 65, -1, 42, 43, 44,
2317 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2318 55, 56, 57, 58, 59, 35, -1, -1, -1, -1,
2319 65, -1, 42, 43, 44, 45, 46, 47, 48, 49,
2320 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2321 -1, -1, -1, 39, -1, 65, 42, 43, 44, 45,
2322 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2323 56, 57, 58, 59, -1, -1, -1, -1, -1, 65,
2324 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2325 52, 53, 54, 55, 56, 57, 58, 59, -1, -1,
2326 -1, -1, -1, 65, 42, 43, 44, 45, 46, 47,
2327 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2328 58, 59, -1, -1, -1, -1, -1, 65, 42, 43,
2329 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2330 54, 55, 56, 57, 58, 59, -1, -1, -1, -1,
2331 -1, 65, 42, 43, 44, 45, 46, 47, 48, 49,
2332 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2333 -1, -1, -1, -1, -1, 65
2334 };
2335
2336 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2337 symbol of state STATE-NUM. */
2338 static const unsigned short yystos[] =
2339 {
2340 0, 4, 5, 6, 7, 8, 9, 10, 11, 17,
2341 22, 29, 30, 31, 41, 82, 83, 84, 85, 86,
2342 87, 89, 114, 119, 121, 144, 145, 146, 147, 165,
2343 168, 173, 174, 175, 176, 177, 178, 179, 180, 181,
2344 186, 189, 192, 193, 197, 198, 199, 200, 202, 204,
2345 208, 210, 211, 217, 225, 239, 240, 9, 11, 22,
2346 83, 84, 85, 86, 121, 198, 208, 30, 66, 67,
2347 68, 69, 70, 71, 72, 73, 74, 75, 76, 78,
2348 79, 80, 81, 148, 149, 150, 151, 152, 154, 155,
2349 156, 83, 84, 119, 169, 171, 199, 200, 208, 217,
2350 226, 227, 3, 12, 13, 14, 15, 17, 18, 22,
2351 66, 67, 68, 69, 88, 89, 90, 91, 92, 93,
2352 95, 98, 99, 100, 101, 102, 103, 104, 105, 106,
2353 107, 108, 109, 110, 111, 112, 113, 141, 258, 270,
2354 141, 141, 228, 3, 6, 10, 12, 13, 23, 245,
2355 247, 121, 240, 44, 278, 279, 22, 82, 87, 121,
2356 197, 0, 146, 49, 141, 174, 209, 234, 235, 236,
2357 237, 175, 4, 5, 6, 9, 22, 182, 6, 179,
2358 185, 198, 123, 187, 32, 32, 36, 36, 141, 141,
2359 141, 34, 190, 30, 0, 3, 4, 5, 6, 7,
2360 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
2361 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
2362 28, 29, 31, 32, 33, 34, 35, 36, 37, 38,
2363 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
2364 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
2365 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
2366 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
2367 80, 82, 83, 84, 85, 86, 87, 88, 89, 90,
2368 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
2369 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2370 111, 112, 113, 114, 117, 119, 120, 121, 122, 123,
2371 141, 142, 157, 3, 12, 13, 14, 15, 17, 18,
2372 22, 66, 67, 68, 69, 88, 89, 90, 91, 92,
2373 93, 95, 98, 99, 100, 101, 102, 103, 104, 105,
2374 106, 107, 108, 109, 110, 111, 112, 113, 142, 160,
2375 161, 160, 26, 117, 153, 142, 25, 27, 28, 32,
2376 47, 48, 60, 61, 77, 140, 141, 162, 222, 141,
2377 228, 141, 228, 171, 31, 141, 35, 231, 231, 231,
2378 231, 40, 23, 36, 23, 169, 121, 187, 29, 86,
2379 238, 38, 232, 32, 141, 122, 237, 6, 183, 6,
2380 9, 184, 182, 36, 194, 32, 31, 17, 173, 201,
2381 203, 205, 206, 207, 208, 205, 141, 218, 219, 90,
2382 91, 92, 93, 94, 96, 97, 249, 250, 251, 264,
2383 267, 273, 274, 275, 191, 209, 235, 187, 26, 116,
2384 162, 188, 160, 142, 26, 27, 32, 44, 224, 162,
2385 32, 141, 162, 32, 42, 43, 44, 45, 46, 47,
2386 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2387 58, 59, 65, 139, 35, 36, 213, 213, 31, 212,
2388 213, 212, 19, 20, 21, 23, 25, 27, 32, 140,
2389 166, 167, 188, 209, 220, 221, 222, 40, 249, 32,
2390 31, 31, 19, 29, 86, 122, 220, 233, 234, 235,
2391 232, 6, 0, 3, 4, 5, 6, 7, 8, 9,
2392 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2393 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2394 31, 32, 33, 34, 35, 38, 39, 40, 41, 42,
2395 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2396 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2397 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
2398 73, 74, 75, 76, 77, 78, 80, 82, 83, 84,
2399 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2400 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2401 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2402 117, 119, 120, 121, 122, 123, 143, 194, 195, 196,
2403 188, 234, 32, 33, 34, 34, 33, 34, 40, 34,
2404 229, 209, 254, 220, 243, 268, 269, 270, 278, 209,
2405 141, 276, 277, 209, 265, 269, 37, 250, 220, 34,
2406 31, 32, 26, 175, 223, 224, 22, 33, 141, 117,
2407 162, 163, 164, 162, 162, 32, 119, 170, 171, 172,
2408 173, 214, 217, 226, 227, 209, 209, 17, 22, 173,
2409 220, 220, 31, 65, 139, 166, 37, 14, 15, 16,
2410 17, 33, 241, 242, 244, 246, 247, 248, 39, 39,
2411 32, 141, 37, 196, 33, 32, 232, 205, 232, 64,
2412 207, 232, 64, 220, 219, 37, 40, 31, 40, 31,
2413 32, 24, 40, 32, 31, 34, 32, 31, 31, 209,
2414 64, 141, 158, 159, 234, 33, 33, 33, 34, 35,
2415 25, 172, 35, 230, 37, 170, 231, 231, 33, 33,
2416 220, 220, 31, 35, 33, 34, 243, 234, 32, 33,
2417 234, 33, 34, 33, 33, 19, 87, 88, 107, 220,
2418 253, 255, 256, 257, 258, 279, 268, 209, 278, 191,
2419 277, 17, 191, 266, 33, 34, 162, 162, 34, 25,
2420 35, 34, 215, 230, 213, 213, 220, 35, 244, 35,
2421 242, 244, 40, 141, 205, 33, 232, 64, 232, 232,
2422 107, 255, 17, 18, 32, 258, 261, 32, 32, 253,
2423 34, 271, 209, 33, 33, 160, 64, 141, 25, 35,
2424 32, 209, 216, 230, 31, 215, 220, 244, 278, 166,
2425 33, 33, 33, 266, 32, 220, 243, 64, 268, 272,
2426 33, 31, 95, 33, 35, 25, 230, 34, 31, 64,
2427 32, 33, 232, 33, 243, 34, 34, 259, 33, 34,
2428 18, 269, 270, 32, 34, 209, 230, 24, 205, 32,
2429 95, 32, 220, 209, 252, 253, 254, 260, 279, 33,
2430 268, 25, 25, 230, 33, 33, 205, 261, 262, 263,
2431 268, 33, 34, 253, 34, 33, 35, 33, 33, 32,
2432 33, 34, 252, 25, 244, 32, 232, 243, 33, 268,
2433 33, 205, 32, 33, 262, 232, 33, 33
2434 };
2435
2436 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
2437 static const unsigned short yyr1[] =
2438 {
2439 0, 138, 139, 139, 139, 139, 139, 139, 139, 139,
2440 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
2441 140, 140, 140, 140, 141, 141, 141, 141, 141, 141,
2442 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
2443 141, 141, 141, 141, 142, 142, 142, 142, 142, 142,
2444 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
2445 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
2446 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
2447 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
2448 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
2449 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
2450 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
2451 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
2452 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
2453 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
2454 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
2455 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
2456 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
2457 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
2458 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
2459 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
2460 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
2461 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
2462 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
2463 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
2464 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
2465 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
2466 143, 143, 143, 143, 144, 144, 145, 145, 146, 146,
2467 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
2468 146, 147, 147, 148, 148, 148, 148, 148, 148, 148,
2469 149, 149, 150, 151, 151, 152, 152, 152, 153, 153,
2470 154, 154, 155, 155, 155, 156, 156, 157, 157, 157,
2471 157, 158, 158, 158, 158, 159, 159, 160, 160, 161,
2472 161, 162, 162, 162, 162, 162, 162, 162, 162, 162,
2473 162, 162, 163, 163, 164, 164, 164, 165, 165, 166,
2474 166, 166, 167, 167, 167, 168, 168, 169, 169, 170,
2475 170, 171, 171, 171, 171, 171, 172, 172, 172, 172,
2476 172, 173, 173, 173, 174, 174, 175, 175, 176, 176,
2477 176, 177, 177, 177, 177, 178, 178, 178, 179, 179,
2478 180, 180, 180, 181, 181, 181, 181, 182, 182, 182,
2479 182, 182, 182, 183, 183, 184, 184, 184, 184, 185,
2480 185, 185, 186, 186, 187, 187, 188, 188, 189, 190,
2481 190, 191, 191, 192, 193, 193, 193, 193, 193, 193,
2482 194, 195, 195, 196, 196, 197, 197, 198, 198, 199,
2483 199, 200, 200, 200, 200, 201, 201, 202, 203, 204,
2484 205, 205, 205, 206, 206, 207, 207, 207, 208, 208,
2485 209, 209, 210, 211, 212, 212, 213, 214, 214, 215,
2486 215, 216, 216, 216, 216, 217, 218, 218, 219, 219,
2487 220, 220, 220, 220, 220, 220, 221, 221, 221, 221,
2488 221, 221, 222, 222, 223, 223, 224, 224, 224, 225,
2489 226, 227, 228, 228, 229, 229, 230, 230, 230, 230,
2490 231, 231, 232, 232, 232, 233, 233, 233, 233, 234,
2491 234, 235, 235, 236, 236, 237, 237, 238, 238, 239,
2492 239, 240, 240, 240, 241, 241, 242, 242, 243, 244,
2493 245, 246, 246, 247, 247, 247, 247, 247, 248, 248,
2494 248, 248, 249, 249, 250, 250, 250, 250, 250, 251,
2495 251, 252, 252, 252, 253, 253, 253, 253, 253, 253,
2496 254, 254, 255, 256, 256, 257, 258, 258, 258, 258,
2497 258, 258, 258, 258, 258, 258, 259, 259, 260, 260,
2498 261, 261, 262, 262, 263, 263, 264, 265, 265, 266,
2499 266, 266, 267, 268, 268, 268, 269, 269, 270, 270,
2500 270, 270, 270, 270, 270, 270, 271, 271, 272, 272,
2501 273, 274, 274, 275, 276, 276, 277, 278, 278, 279
2502 };
2503
2504 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
2505 static const unsigned char yyr2[] =
2506 {
2507 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
2508 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2509 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2510 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2511 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2512 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2513 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2514 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2515 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2516 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2517 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2518 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2519 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2520 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2521 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2522 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2523 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2524 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2525 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2526 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2527 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2528 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2529 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2530 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2531 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2532 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2533 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2534 1, 1, 1, 1, 0, 1, 1, 2, 1, 1,
2535 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2536 1, 2, 3, 2, 2, 1, 2, 2, 2, 2,
2537 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2538 1, 1, 1, 1, 1, 1, 1, 2, 6, 2,
2539 2, 0, 1, 1, 3, 1, 3, 0, 1, 1,
2540 2, 3, 2, 3, 5, 2, 4, 1, 1, 1,
2541 1, 4, 0, 1, 1, 1, 3, 6, 5, 1,
2542 1, 1, 1, 1, 1, 3, 4, 1, 2, 1,
2543 2, 1, 1, 2, 4, 4, 1, 1, 1, 3,
2544 3, 1, 2, 2, 1, 1, 1, 1, 2, 2,
2545 2, 1, 1, 1, 1, 1, 1, 2, 1, 1,
2546 1, 1, 2, 1, 1, 2, 2, 0, 1, 1,
2547 2, 1, 2, 0, 1, 0, 1, 1, 2, 0,
2548 1, 2, 3, 4, 0, 4, 1, 2, 5, 0,
2549 2, 1, 3, 3, 1, 2, 2, 3, 1, 2,
2550 3, 1, 2, 1, 1, 1, 2, 1, 1, 5,
2551 7, 5, 7, 13, 16, 5, 7, 6, 5, 1,
2552 0, 1, 1, 1, 3, 1, 1, 3, 1, 2,
2553 3, 2, 4, 4, 1, 1, 3, 4, 5, 0,
2554 2, 2, 4, 1, 3, 5, 1, 3, 1, 3,
2555 1, 4, 3, 3, 2, 5, 1, 1, 1, 1,
2556 1, 1, 4, 2, 1, 2, 2, 1, 1, 2,
2557 2, 2, 0, 1, 0, 1, 0, 2, 7, 9,
2558 0, 7, 0, 3, 3, 0, 1, 1, 1, 0,
2559 1, 1, 2, 1, 2, 1, 2, 1, 1, 4,
2560 5, 7, 8, 13, 1, 3, 2, 4, 2, 1,
2561 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2562 1, 1, 1, 2, 1, 1, 1, 1, 1, 3,
2563 6, 1, 2, 1, 1, 1, 1, 2, 1, 1,
2564 3, 4, 6, 8, 12, 5, 1, 1, 1, 1,
2565 1, 1, 1, 1, 1, 1, 0, 2, 1, 3,
2566 1, 1, 0, 1, 1, 3, 3, 6, 1, 0,
2567 1, 1, 3, 1, 1, 3, 5, 6, 1, 1,
2568 1, 1, 1, 1, 1, 1, 0, 2, 1, 3,
2569 3, 1, 1, 3, 1, 3, 4, 0, 1, 1
2570 };
2571
2572
2573 /* YYDPREC[RULE-NUM] -- Dynamic precedence of rule #RULE-NUM (0 if none). */
2574 static const unsigned char yydprec[] =
2575 {
2576 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2577 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2578 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2579 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2582 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2583 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2584 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2585 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2586 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2587 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2588 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2589 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2590 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2593 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2595 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2596 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2598 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2600 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2601 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2602 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2603 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2604 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2605 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2606 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2607 0, 0, 0, 0, 0, 0, 0, 1, 2, 2,
2608 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2609 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2610 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
2611 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2612 0, 0, 0, 0, 0, 0, 2, 1, 0, 0,
2613 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2614 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2615 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2616 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2617 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2618 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2619 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2620 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2621 0, 2, 1, 0, 0, 0, 2, 1, 0, 0,
2622 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2623 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2624 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2625 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2626 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2627 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2632 0, 0, 0, 0, 2, 1, 0, 0, 0, 0,
2633 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2634 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2635 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2636 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2637 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2638 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
2639 };
2640
2641 /* YYMERGER[RULE-NUM] -- Index of merging function for rule #RULE-NUM. */
2642 static const unsigned char yymerger[] =
2643 {
2644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2647 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2648 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2649 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2650 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2654 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2656 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2657 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2658 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2659 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2662 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2667 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2668 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2670 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2671 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2673 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2674 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2676 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2677 0, 0, 0, 0, 0, 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, 0, 0, 0, 0,
2696 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2697 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2698 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2699 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2700 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2701 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2702 0, 0, 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 };
2708
2709 /* YYIMMEDIATE[RULE-NUM] -- True iff rule #RULE-NUM is not to be deferred, as
2710 in the case of predicates. */
2711 static const yybool yyimmediate[] =
2712 {
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, 0, 0, 0, 0, 0, 0, 0,
2721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2725 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2726 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2728 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2734 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2737 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2740 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2743 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2748 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2759 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2762 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2763 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2766 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2767 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2769 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2770 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
2776 };
2777
2778 /* YYCONFLP[YYPACT[STATE-NUM]] -- Pointer into YYCONFL of start of
2779 list of conflicting reductions corresponding to action entry for
2780 state STATE-NUM in yytable. 0 means no conflicts. The list in
2781 yyconfl is terminated by a rule number of 0. */
2782 static const unsigned short yyconflp[] =
2783 {
2784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2790 0, 0, 0, 0, 0, 0, 15, 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, 3380, 0, 0, 3382, 0, 0,
2794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2795 0, 0, 3362, 0, 0, 0, 0, 0, 0, 0,
2796 0, 0, 0, 0, 0, 0, 0, 0, 0, 3366,
2797 3368, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2798 0, 13, 0, 0, 0, 0, 0, 0, 0, 0,
2799 0, 0, 0, 0, 0, 0, 3364, 0, 17, 0,
2800 0, 0, 0, 0, 9, 0, 0, 0, 11, 0,
2801 0, 0, 0, 3372, 0, 3374, 3376, 0, 0, 0,
2802 0, 0, 0, 0, 0, 0, 0, 3384, 0, 3386,
2803 3388, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2804 0, 163, 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, 3370,
2813 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2814 0, 0, 0, 0, 0, 0, 3378, 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, 3390, 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, 1, 0, 0,
2836 0, 0, 3, 0, 0, 0, 0, 0, 0, 5,
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, 7, 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, 0,
2866 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2870 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2875 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0,
2881 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2882 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2883 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2886 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2887 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2888 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2889 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2890 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2891 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2893 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2894 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2897 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2898 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2899 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2902 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0,
2908 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2911 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2912 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2913 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 19, 0,
2918 0, 0, 0, 0, 0, 0, 0, 21, 23, 25,
2919 27, 0, 29, 31, 0, 0, 0, 33, 0, 0,
2920 0, 0, 0, 0, 35, 37, 39, 41, 43, 45,
2921 47, 49, 51, 53, 55, 57, 0, 59, 61, 63,
2922 65, 67, 69, 71, 73, 75, 77, 79, 81, 83,
2923 85, 87, 89, 91, 93, 0, 0, 0, 0, 0,
2924 95, 97, 99, 101, 103, 0, 0, 0, 0, 0,
2925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2926 0, 105, 0, 107, 109, 111, 113, 115, 117, 0,
2927 119, 0, 0, 121, 123, 125, 127, 129, 131, 133,
2928 135, 137, 139, 141, 143, 145, 147, 149, 151, 0,
2929 0, 0, 0, 0, 0, 0, 0, 0, 153, 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, 165, 0, 0, 0, 0, 0, 0, 0,
2956 0, 167, 169, 171, 173, 0, 175, 177, 0, 0,
2957 0, 179, 0, 0, 181, 183, 185, 187, 0, 0,
2958 0, 189, 0, 0, 0, 0, 0, 0, 0, 0,
2959 0, 0, 0, 0, 0, 0, 191, 193, 0, 0,
2960 0, 0, 0, 0, 0, 0, 0, 0, 0, 195,
2961 197, 0, 0, 0, 0, 199, 201, 203, 205, 0,
2962 0, 0, 0, 0, 0, 0, 207, 0, 0, 0,
2963 0, 0, 0, 0, 0, 0, 0, 209, 211, 213,
2964 215, 217, 219, 0, 221, 0, 0, 223, 225, 227,
2965 229, 231, 233, 235, 237, 239, 241, 243, 245, 247,
2966 249, 251, 253, 255, 0, 0, 0, 0, 0, 0,
2967 0, 0, 257, 259, 261, 263, 0, 265, 267, 0,
2968 0, 0, 269, 0, 0, 271, 273, 275, 277, 0,
2969 0, 0, 279, 0, 0, 0, 0, 0, 0, 0,
2970 0, 0, 0, 0, 0, 0, 0, 281, 283, 0,
2971 0, 155, 0, 0, 0, 0, 157, 0, 0, 0,
2972 285, 287, 0, 159, 0, 0, 289, 291, 293, 295,
2973 0, 0, 0, 0, 0, 0, 0, 297, 0, 0,
2974 0, 0, 0, 0, 0, 0, 0, 0, 299, 301,
2975 303, 305, 307, 309, 0, 311, 0, 0, 313, 315,
2976 317, 319, 321, 323, 325, 327, 329, 331, 333, 335,
2977 337, 339, 341, 343, 345, 0, 0, 0, 0, 0,
2978 161, 0, 0, 347, 349, 351, 353, 0, 355, 357,
2979 0, 0, 0, 359, 0, 0, 361, 363, 365, 367,
2980 0, 0, 0, 369, 0, 0, 0, 0, 0, 0,
2981 0, 0, 0, 0, 0, 0, 0, 0, 371, 373,
2982 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2983 0, 375, 377, 0, 0, 0, 0, 379, 381, 383,
2984 385, 0, 0, 0, 0, 0, 0, 0, 387, 0,
2985 0, 0, 0, 0, 0, 0, 0, 0, 0, 389,
2986 391, 393, 395, 397, 399, 0, 401, 0, 0, 403,
2987 405, 407, 409, 411, 413, 415, 417, 419, 421, 423,
2988 425, 427, 429, 431, 433, 435, 0, 0, 0, 0,
2989 0, 0, 0, 0, 437, 439, 441, 443, 0, 445,
2990 447, 0, 0, 0, 449, 0, 0, 451, 453, 455,
2991 457, 0, 0, 0, 459, 0, 0, 0, 0, 0,
2992 0, 0, 0, 0, 0, 0, 0, 0, 0, 461,
2993 463, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2994 0, 0, 465, 467, 0, 0, 0, 0, 469, 471,
2995 473, 475, 0, 0, 0, 0, 0, 0, 0, 477,
2996 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2997 479, 481, 483, 485, 487, 489, 0, 491, 0, 0,
2998 493, 495, 497, 499, 501, 503, 505, 507, 509, 511,
2999 513, 515, 517, 519, 521, 523, 525, 0, 0, 0,
3000 0, 0, 0, 0, 0, 527, 529, 531, 533, 0,
3001 535, 537, 0, 0, 0, 539, 0, 0, 541, 543,
3002 545, 547, 0, 0, 0, 549, 0, 0, 0, 0,
3003 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3004 551, 553, 0, 0, 0, 0, 0, 0, 0, 0,
3005 0, 0, 0, 555, 557, 0, 0, 0, 0, 559,
3006 561, 563, 565, 0, 0, 0, 0, 0, 0, 0,
3007 567, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3008 0, 569, 571, 573, 575, 577, 579, 0, 581, 0,
3009 0, 583, 585, 587, 589, 591, 593, 595, 597, 599,
3010 601, 603, 605, 607, 609, 611, 613, 615, 0, 0,
3011 0, 0, 0, 0, 0, 0, 617, 619, 621, 623,
3012 0, 625, 627, 0, 0, 0, 629, 0, 0, 631,
3013 633, 635, 637, 0, 0, 0, 639, 0, 0, 0,
3014 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3015 0, 641, 643, 0, 0, 0, 0, 0, 0, 0,
3016 0, 0, 0, 0, 645, 647, 0, 0, 0, 0,
3017 649, 651, 653, 655, 0, 0, 0, 0, 0, 0,
3018 0, 657, 0, 0, 0, 0, 0, 0, 0, 0,
3019 0, 0, 659, 661, 663, 665, 667, 669, 0, 671,
3020 0, 0, 673, 675, 677, 679, 681, 683, 685, 687,
3021 689, 691, 693, 695, 697, 699, 701, 703, 705, 0,
3022 0, 0, 0, 0, 0, 0, 0, 708, 711, 714,
3023 717, 0, 720, 723, 0, 0, 0, 726, 0, 0,
3024 729, 732, 735, 738, 0, 0, 0, 741, 0, 0,
3025 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3026 0, 0, 744, 747, 0, 0, 0, 0, 0, 0,
3027 0, 0, 0, 0, 0, 750, 753, 0, 0, 0,
3028 0, 756, 759, 762, 765, 0, 0, 0, 0, 0,
3029 0, 0, 768, 0, 0, 0, 0, 0, 0, 0,
3030 0, 0, 0, 771, 774, 777, 780, 783, 786, 0,
3031 789, 0, 0, 792, 795, 798, 801, 804, 807, 810,
3032 813, 816, 819, 822, 825, 828, 831, 834, 837, 842,
3033 0, 840, 0, 0, 0, 0, 0, 0, 844, 846,
3034 848, 850, 0, 852, 854, 0, 0, 0, 856, 0,
3035 0, 858, 860, 862, 864, 0, 0, 0, 866, 0,
3036 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3037 0, 0, 0, 868, 870, 0, 0, 0, 0, 0,
3038 0, 0, 0, 0, 0, 0, 872, 874, 0, 0,
3039 0, 0, 876, 878, 880, 882, 0, 0, 0, 0,
3040 0, 0, 0, 884, 0, 0, 0, 0, 0, 0,
3041 0, 0, 0, 0, 886, 888, 890, 892, 894, 896,
3042 0, 898, 0, 0, 900, 902, 904, 906, 908, 910,
3043 912, 914, 916, 918, 920, 922, 924, 926, 928, 930,
3044 932, 0, 0, 0, 0, 0, 0, 0, 0, 934,
3045 936, 938, 940, 0, 942, 944, 0, 0, 0, 946,
3046 0, 0, 948, 950, 952, 954, 0, 0, 0, 956,
3047 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3048 0, 0, 0, 0, 958, 960, 0, 0, 0, 0,
3049 0, 0, 0, 0, 0, 0, 0, 962, 964, 0,
3050 0, 0, 0, 966, 968, 970, 972, 0, 0, 0,
3051 0, 0, 0, 0, 974, 0, 0, 0, 0, 0,
3052 0, 0, 0, 0, 0, 976, 978, 980, 982, 984,
3053 986, 0, 988, 0, 0, 990, 992, 994, 996, 998,
3054 1000, 1002, 1004, 1006, 1008, 1010, 1012, 1014, 1016, 1018,
3055 1020, 1022, 0, 0, 0, 0, 0, 0, 0, 0,
3056 1024, 1026, 1028, 1030, 0, 1032, 1034, 0, 0, 0,
3057 1036, 0, 0, 1038, 1040, 1042, 1044, 0, 0, 0,
3058 1046, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3059 0, 0, 0, 0, 0, 1048, 1050, 0, 0, 0,
3060 0, 0, 0, 0, 0, 0, 0, 0, 1052, 1054,
3061 0, 0, 0, 0, 1056, 1058, 1060, 1062, 0, 0,
3062 0, 0, 0, 0, 0, 1064, 0, 0, 0, 0,
3063 0, 0, 0, 0, 0, 0, 1066, 1068, 1070, 1072,
3064 1074, 1076, 0, 1078, 0, 0, 1080, 1082, 1084, 1086,
3065 1088, 1090, 1092, 1094, 1096, 1098, 1100, 1102, 1104, 1106,
3066 1108, 1110, 1112, 0, 0, 0, 0, 0, 0, 0,
3067 0, 1114, 1116, 1118, 1120, 0, 1122, 1124, 0, 0,
3068 0, 1126, 0, 0, 1128, 1130, 1132, 1134, 0, 0,
3069 0, 1136, 0, 0, 0, 0, 0, 0, 0, 0,
3070 0, 0, 0, 0, 0, 0, 1138, 1140, 0, 0,
3071 0, 0, 0, 0, 0, 0, 0, 0, 0, 1142,
3072 1144, 0, 0, 0, 0, 1146, 1148, 1150, 1152, 0,
3073 0, 0, 0, 0, 0, 0, 1154, 0, 0, 0,
3074 0, 0, 0, 0, 0, 0, 0, 1156, 1158, 1160,
3075 1162, 1164, 1166, 0, 1168, 0, 0, 1170, 1172, 1174,
3076 1176, 1178, 1180, 1182, 1184, 1186, 1188, 1190, 1192, 1194,
3077 1196, 1198, 1200, 1202, 0, 0, 0, 0, 0, 0,
3078 0, 0, 1204, 1206, 1208, 1210, 0, 1212, 1214, 0,
3079 0, 0, 1216, 0, 0, 1218, 1220, 1222, 1224, 0,
3080 0, 0, 1226, 0, 0, 0, 0, 0, 0, 0,
3081 0, 0, 0, 0, 0, 0, 0, 1228, 1230, 0,
3082 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3083 1232, 1234, 0, 0, 0, 0, 1236, 1238, 1240, 1242,
3084 0, 0, 0, 0, 0, 0, 0, 1244, 0, 0,
3085 0, 0, 0, 0, 0, 0, 0, 0, 1246, 1248,
3086 1250, 1252, 1254, 1256, 0, 1258, 0, 0, 1260, 1262,
3087 1264, 1266, 1268, 1270, 1272, 1274, 1276, 1278, 1280, 1282,
3088 1284, 1286, 1288, 1290, 1292, 0, 0, 0, 0, 0,
3089 0, 0, 0, 1294, 1296, 1298, 1300, 0, 1302, 1304,
3090 0, 0, 0, 1306, 0, 0, 1308, 1310, 1312, 1314,
3091 0, 0, 0, 1316, 0, 0, 0, 0, 0, 0,
3092 0, 0, 0, 0, 0, 0, 0, 0, 1318, 1320,
3093 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3094 0, 1322, 1324, 0, 0, 0, 0, 1326, 1328, 1330,
3095 1332, 0, 0, 0, 0, 0, 0, 0, 1334, 0,
3096 0, 0, 0, 0, 0, 0, 0, 0, 0, 1336,
3097 1338, 1340, 1342, 1344, 1346, 0, 1348, 0, 0, 1350,
3098 1352, 1354, 1356, 1358, 1360, 1362, 1364, 1366, 1368, 1370,
3099 1372, 1374, 1376, 1378, 1380, 1382, 0, 0, 0, 0,
3100 0, 0, 0, 0, 1384, 1386, 1388, 1390, 0, 1392,
3101 1394, 0, 0, 0, 1396, 0, 0, 1398, 1400, 1402,
3102 1404, 0, 0, 0, 1406, 0, 0, 0, 0, 0,
3103 0, 0, 0, 0, 0, 0, 0, 0, 0, 1408,
3104 1410, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3105 0, 0, 1412, 1414, 0, 0, 0, 0, 1416, 1418,
3106 1420, 1422, 0, 0, 0, 0, 0, 0, 0, 1424,
3107 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3108 1426, 1428, 1430, 1432, 1434, 1436, 0, 1438, 0, 0,
3109 1440, 1442, 1444, 1446, 1448, 1450, 1452, 1454, 1456, 1458,
3110 1460, 1462, 1464, 1466, 1468, 1470, 1472, 0, 0, 0,
3111 0, 0, 0, 0, 0, 1474, 1476, 1478, 1480, 0,
3112 1482, 1484, 0, 0, 0, 1486, 0, 0, 1488, 1490,
3113 1492, 1494, 0, 0, 0, 1496, 0, 0, 0, 0,
3114 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3115 1498, 1500, 0, 0, 0, 0, 0, 0, 0, 0,
3116 0, 0, 0, 1502, 1504, 0, 0, 0, 0, 1506,
3117 1508, 1510, 1512, 0, 0, 0, 0, 0, 0, 0,
3118 1514, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3119 0, 1516, 1518, 1520, 1522, 1524, 1526, 0, 1528, 0,
3120 0, 1530, 1532, 1534, 1536, 1538, 1540, 1542, 1544, 1546,
3121 1548, 1550, 1552, 1554, 1556, 1558, 1560, 1562, 0, 0,
3122 0, 0, 0, 0, 0, 0, 1564, 1566, 1568, 1570,
3123 0, 1572, 1574, 0, 0, 0, 1576, 0, 0, 1578,
3124 1580, 1582, 1584, 0, 0, 0, 1586, 0, 0, 0,
3125 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3126 0, 1588, 1590, 0, 0, 0, 0, 0, 0, 0,
3127 0, 0, 0, 0, 1592, 1594, 0, 0, 0, 0,
3128 1596, 1598, 1600, 1602, 0, 0, 0, 0, 0, 0,
3129 0, 1604, 0, 0, 0, 0, 0, 0, 0, 0,
3130 0, 0, 1606, 1608, 1610, 1612, 1614, 1616, 0, 1618,
3131 0, 0, 1620, 1622, 1624, 1626, 1628, 1630, 1632, 1634,
3132 1636, 1638, 1640, 1642, 1644, 1646, 1648, 1650, 1652, 0,
3133 0, 0, 0, 0, 0, 0, 0, 1654, 1656, 1658,
3134 1660, 0, 1662, 1664, 0, 0, 0, 1666, 0, 0,
3135 1668, 1670, 1672, 1674, 0, 0, 0, 1676, 0, 0,
3136 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3137 0, 0, 1678, 1680, 0, 0, 0, 0, 0, 0,
3138 0, 0, 0, 0, 0, 1682, 1684, 0, 0, 0,
3139 0, 1686, 1688, 1690, 1692, 0, 0, 0, 0, 0,
3140 0, 0, 1694, 0, 0, 0, 0, 0, 0, 0,
3141 0, 0, 0, 1696, 1698, 1700, 1702, 1704, 1706, 0,
3142 1708, 0, 0, 1710, 1712, 1714, 1716, 1718, 1720, 1722,
3143 1724, 1726, 1728, 1730, 1732, 1734, 1736, 1738, 1740, 1742,
3144 0, 0, 0, 0, 0, 0, 0, 0, 1744, 1746,
3145 1748, 1750, 0, 1752, 1754, 0, 0, 0, 1756, 0,
3146 0, 1758, 1760, 1762, 1764, 0, 0, 0, 1766, 0,
3147 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3148 0, 0, 0, 1768, 1770, 0, 0, 0, 0, 0,
3149 0, 0, 0, 0, 0, 0, 1772, 1774, 0, 0,
3150 0, 0, 1776, 1778, 1780, 1782, 0, 0, 0, 0,
3151 0, 0, 0, 1784, 0, 0, 0, 0, 0, 0,
3152 0, 0, 0, 0, 1786, 1788, 1790, 1792, 1794, 1796,
3153 0, 1798, 0, 0, 1800, 1802, 1804, 1806, 1808, 1810,
3154 1812, 1814, 1816, 1818, 1820, 1822, 1824, 1826, 1828, 1830,
3155 1832, 0, 0, 0, 0, 0, 0, 0, 0, 1834,
3156 1836, 1838, 1840, 0, 1842, 1844, 0, 0, 0, 1846,
3157 0, 0, 1848, 1850, 1852, 1854, 0, 0, 0, 1856,
3158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3159 0, 0, 0, 0, 1858, 1860, 0, 0, 0, 0,
3160 0, 0, 0, 0, 0, 0, 0, 1862, 1864, 0,
3161 0, 0, 0, 1866, 1868, 1870, 1872, 0, 0, 0,
3162 0, 0, 0, 0, 1874, 0, 0, 0, 0, 0,
3163 0, 0, 0, 0, 0, 1876, 1878, 1880, 1882, 1884,
3164 1886, 0, 1888, 0, 0, 1890, 1892, 1894, 1896, 1898,
3165 1900, 1902, 1904, 1906, 1908, 1910, 1912, 1914, 1916, 1918,
3166 1920, 1922, 0, 0, 0, 0, 0, 0, 0, 0,
3167 1924, 1926, 1928, 1930, 0, 1932, 1934, 0, 0, 0,
3168 1936, 0, 0, 1938, 1940, 1942, 1944, 0, 0, 0,
3169 1946, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3170 0, 0, 0, 0, 0, 1948, 1950, 0, 0, 0,
3171 0, 0, 0, 0, 0, 0, 0, 0, 1952, 1954,
3172 0, 0, 0, 0, 1956, 1958, 1960, 1962, 0, 0,
3173 0, 0, 0, 0, 0, 1964, 0, 0, 0, 0,
3174 0, 0, 0, 0, 0, 0, 1966, 1968, 1970, 1972,
3175 1974, 1976, 0, 1978, 0, 0, 1980, 1982, 1984, 1986,
3176 1988, 1990, 1992, 1994, 1996, 1998, 2000, 2002, 2004, 2006,
3177 2008, 2010, 2012, 0, 0, 0, 0, 0, 0, 0,
3178 0, 2014, 2016, 2018, 2020, 0, 2022, 2024, 0, 0,
3179 0, 2026, 0, 0, 2028, 2030, 2032, 2034, 0, 0,
3180 0, 2036, 0, 0, 0, 0, 0, 0, 0, 0,
3181 0, 0, 0, 0, 0, 0, 2038, 2040, 0, 0,
3182 0, 0, 0, 0, 0, 0, 0, 0, 0, 2042,
3183 2044, 0, 0, 0, 0, 2046, 2048, 2050, 2052, 0,
3184 0, 0, 0, 0, 0, 0, 2054, 0, 0, 0,
3185 0, 0, 0, 0, 0, 0, 0, 2056, 2058, 2060,
3186 2062, 2064, 2066, 0, 2068, 0, 0, 2070, 2072, 2074,
3187 2076, 2078, 2080, 2082, 2084, 2086, 2088, 2090, 2092, 2094,
3188 2096, 2098, 2100, 2102, 0, 0, 0, 0, 0, 0,
3189 0, 0, 2104, 2106, 2108, 2110, 0, 2112, 2114, 0,
3190 0, 0, 2116, 0, 0, 2118, 2120, 2122, 2124, 0,
3191 0, 0, 2126, 0, 0, 0, 0, 0, 0, 0,
3192 0, 0, 0, 0, 0, 0, 0, 2128, 2130, 0,
3193 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3194 2132, 2134, 0, 0, 0, 0, 2136, 2138, 2140, 2142,
3195 0, 0, 0, 0, 0, 0, 0, 2144, 0, 0,
3196 0, 0, 0, 0, 0, 0, 0, 0, 2146, 2148,
3197 2150, 2152, 2154, 2156, 0, 2158, 0, 0, 2160, 2162,
3198 2164, 2166, 2168, 2170, 2172, 2174, 2176, 2178, 2180, 2182,
3199 2184, 2186, 2188, 2190, 2192, 0, 0, 0, 0, 0,
3200 0, 0, 0, 2194, 2196, 2198, 2200, 0, 2202, 2204,
3201 0, 0, 0, 2206, 0, 0, 2208, 2210, 2212, 2214,
3202 0, 0, 0, 2216, 0, 0, 0, 0, 0, 0,
3203 0, 0, 0, 0, 0, 0, 0, 0, 2218, 2220,
3204 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3205 0, 2222, 2224, 0, 0, 0, 0, 2226, 2228, 2230,
3206 2232, 0, 0, 0, 0, 0, 0, 0, 2234, 0,
3207 0, 0, 0, 0, 0, 0, 0, 0, 0, 2236,
3208 2238, 2240, 2242, 2244, 2246, 0, 2248, 0, 0, 2250,
3209 2252, 2254, 2256, 2258, 2260, 2262, 2264, 2266, 2268, 2270,
3210 2272, 2274, 2276, 2278, 2280, 2282, 0, 0, 0, 0,
3211 0, 0, 0, 0, 2284, 2286, 2288, 2290, 0, 2292,
3212 2294, 0, 0, 0, 2296, 0, 0, 2298, 2300, 2302,
3213 2304, 0, 0, 0, 2306, 0, 0, 0, 0, 0,
3214 0, 0, 0, 0, 0, 0, 0, 0, 0, 2308,
3215 2310, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3216 0, 0, 2312, 2314, 0, 0, 0, 0, 2316, 2318,
3217 2320, 2322, 0, 0, 0, 0, 0, 0, 0, 2324,
3218 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3219 2326, 2328, 2330, 2332, 2334, 2336, 0, 2338, 0, 0,
3220 2340, 2342, 2344, 2346, 2348, 2350, 2352, 2354, 2356, 2358,
3221 2360, 2362, 2364, 2366, 2368, 2370, 2372, 0, 0, 0,
3222 0, 0, 0, 0, 0, 2374, 2376, 2378, 2380, 0,
3223 2382, 2384, 0, 0, 0, 2386, 0, 0, 2388, 2390,
3224 2392, 2394, 0, 0, 0, 2396, 0, 0, 0, 0,
3225 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3226 2398, 2400, 0, 0, 0, 0, 0, 0, 0, 0,
3227 0, 0, 0, 2402, 2404, 0, 0, 0, 0, 2406,
3228 2408, 2410, 2412, 0, 0, 0, 0, 0, 0, 0,
3229 2414, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3230 0, 2416, 2418, 2420, 2422, 2424, 2426, 0, 2428, 0,
3231 0, 2430, 2432, 2434, 2436, 2438, 2440, 2442, 2444, 2446,
3232 2448, 2450, 2452, 2454, 2456, 2458, 2460, 2462, 0, 0,
3233 0, 0, 0, 0, 0, 0, 2464, 2466, 2468, 2470,
3234 0, 2472, 2474, 0, 0, 0, 2476, 0, 0, 2478,
3235 2480, 2482, 2484, 0, 0, 0, 2486, 0, 0, 0,
3236 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3237 0, 2488, 2490, 0, 0, 0, 0, 0, 0, 0,
3238 0, 0, 0, 0, 2492, 2494, 0, 0, 0, 0,
3239 2496, 2498, 2500, 2502, 0, 0, 0, 0, 0, 0,
3240 0, 2504, 0, 0, 0, 0, 0, 0, 0, 0,
3241 0, 0, 2506, 2508, 2510, 2512, 2514, 2516, 0, 2518,
3242 0, 0, 2520, 2522, 2524, 2526, 2528, 2530, 2532, 2534,
3243 2536, 2538, 2540, 2542, 2544, 2546, 2548, 2550, 2552, 0,
3244 0, 0, 0, 0, 0, 0, 0, 2554, 2556, 2558,
3245 2560, 0, 2562, 2564, 0, 0, 0, 2566, 0, 0,
3246 2568, 2570, 2572, 2574, 0, 0, 0, 2576, 0, 0,
3247 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3248 0, 0, 2578, 2580, 0, 0, 0, 0, 0, 0,
3249 0, 0, 0, 0, 0, 2582, 2584, 0, 0, 0,
3250 0, 2586, 2588, 2590, 2592, 0, 0, 0, 0, 0,
3251 0, 0, 2594, 0, 0, 0, 0, 0, 0, 0,
3252 0, 0, 0, 2596, 2598, 2600, 2602, 2604, 2606, 0,
3253 2608, 0, 0, 2610, 2612, 2614, 2616, 2618, 2620, 2622,
3254 2624, 2626, 2628, 2630, 2632, 2634, 2636, 2638, 2640, 2642,
3255 0, 0, 0, 0, 0, 0, 0, 0, 2644, 2646,
3256 2648, 2650, 0, 2652, 2654, 0, 0, 0, 2656, 0,
3257 0, 2658, 2660, 2662, 2664, 0, 0, 0, 2666, 0,
3258 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3259 0, 0, 0, 2668, 2670, 0, 0, 0, 0, 0,
3260 0, 0, 0, 0, 0, 0, 2672, 2674, 0, 0,
3261 0, 0, 2676, 2678, 2680, 2682, 0, 0, 0, 0,
3262 0, 0, 0, 2684, 0, 0, 0, 0, 0, 0,
3263 0, 0, 0, 0, 2686, 2688, 2690, 2692, 2694, 2696,
3264 0, 2698, 0, 0, 2700, 2702, 2704, 2706, 2708, 2710,
3265 2712, 2714, 2716, 2718, 2720, 2722, 2724, 2726, 2728, 2730,
3266 2732, 0, 0, 0, 0, 0, 0, 0, 0, 2734,
3267 2736, 2738, 2740, 0, 2742, 2744, 0, 0, 0, 2746,
3268 0, 0, 2748, 2750, 2752, 2754, 0, 0, 0, 2756,
3269 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3270 0, 0, 0, 0, 2758, 2760, 0, 0, 0, 0,
3271 0, 0, 0, 0, 0, 0, 0, 2762, 2764, 0,
3272 0, 0, 0, 2766, 2768, 2770, 2772, 0, 0, 0,
3273 0, 0, 0, 0, 2774, 0, 0, 0, 0, 0,
3274 0, 0, 0, 0, 0, 2776, 2778, 2780, 2782, 2784,
3275 2786, 0, 2788, 0, 0, 2790, 2792, 2794, 2796, 2798,
3276 2800, 2802, 2804, 2806, 2808, 2810, 2812, 2814, 2816, 2818,
3277 2820, 2822, 0, 0, 0, 0, 0, 0, 0, 0,
3278 2824, 2826, 2828, 2830, 0, 2832, 2834, 0, 0, 0,
3279 2836, 0, 0, 2838, 2840, 2842, 2844, 0, 0, 0,
3280 2846, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3281 0, 0, 0, 0, 0, 2848, 2850, 0, 0, 0,
3282 0, 0, 0, 0, 0, 0, 0, 0, 2852, 2854,
3283 0, 0, 0, 0, 2856, 2858, 2860, 2862, 0, 0,
3284 0, 0, 0, 0, 0, 2864, 0, 0, 0, 0,
3285 0, 0, 0, 0, 0, 0, 2866, 2868, 2870, 2872,
3286 2874, 2876, 0, 2878, 0, 0, 2880, 2882, 2884, 2886,
3287 2888, 2890, 2892, 2894, 2896, 2898, 2900, 2902, 2904, 2906,
3288 2908, 2910, 2912, 0, 0, 0, 0, 0, 0, 0,
3289 0, 2914, 2916, 2918, 2920, 0, 2922, 2924, 0, 0,
3290 0, 2926, 0, 0, 2928, 2930, 2932, 2934, 0, 0,
3291 0, 2936, 0, 0, 0, 0, 0, 0, 0, 0,
3292 0, 0, 0, 0, 0, 0, 2938, 2940, 0, 0,
3293 0, 0, 0, 0, 0, 0, 0, 0, 0, 2942,
3294 2944, 0, 0, 0, 0, 2946, 2948, 2950, 2952, 0,
3295 0, 0, 0, 0, 0, 0, 2954, 0, 0, 0,
3296 0, 0, 0, 0, 0, 0, 0, 2956, 2958, 2960,
3297 2962, 2964, 2966, 0, 2968, 0, 0, 2970, 2972, 2974,
3298 2976, 2978, 2980, 2982, 2984, 2986, 2988, 2990, 2992, 2994,
3299 2996, 2998, 3000, 3002, 0, 0, 0, 0, 0, 0,
3300 0, 0, 3004, 3006, 3008, 3010, 0, 3012, 3014, 0,
3301 0, 0, 3016, 0, 0, 3018, 3020, 3022, 3024, 0,
3302 0, 0, 3026, 0, 0, 0, 0, 0, 0, 0,
3303 0, 0, 0, 0, 0, 0, 0, 3028, 3030, 0,
3304 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3305 3032, 3034, 0, 0, 0, 0, 3036, 3038, 3040, 3042,
3306 0, 0, 0, 0, 0, 0, 0, 3044, 0, 0,
3307 0, 0, 0, 0, 0, 0, 0, 0, 3046, 3048,
3308 3050, 3052, 3054, 3056, 0, 3058, 0, 0, 3060, 3062,
3309 3064, 3066, 3068, 3070, 3072, 3074, 3076, 3078, 3080, 3082,
3310 3084, 3086, 3088, 3090, 3092, 0, 0, 0, 0, 0,
3311 0, 0, 0, 3094, 3096, 3098, 3100, 0, 3102, 3104,
3312 0, 0, 0, 3106, 0, 0, 3108, 3110, 3112, 3114,
3313 0, 0, 0, 3116, 0, 0, 0, 0, 0, 0,
3314 0, 0, 0, 0, 0, 0, 0, 0, 3118, 3120,
3315 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3316 0, 3122, 3124, 0, 0, 0, 0, 3126, 3128, 3130,
3317 3132, 0, 0, 0, 0, 0, 0, 0, 3134, 0,
3318 0, 0, 0, 0, 0, 0, 0, 0, 0, 3136,
3319 3138, 3140, 3142, 3144, 3146, 0, 3148, 0, 0, 3150,
3320 3152, 3154, 3156, 3158, 3160, 3162, 3164, 3166, 3168, 3170,
3321 3172, 3174, 3176, 3178, 3180, 3182, 0, 0, 0, 0,
3322 0, 0, 0, 0, 3184, 3186, 3188, 3190, 0, 3192,
3323 3194, 0, 0, 0, 3196, 0, 0, 3198, 3200, 3202,
3324 3204, 0, 0, 0, 3206, 0, 0, 0, 0, 0,
3325 0, 0, 0, 0, 0, 0, 0, 0, 0, 3208,
3326 3210, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3327 0, 0, 3212, 3214, 0, 0, 0, 0, 3216, 3218,
3328 3220, 3222, 0, 0, 0, 0, 0, 0, 0, 3224,
3329 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3330 3226, 3228, 3230, 3232, 3234, 3236, 0, 3238, 0, 0,
3331 3240, 3242, 3244, 3246, 3248, 3250, 3252, 3254, 3256, 3258,
3332 3260, 3262, 3264, 3266, 3268, 3270, 3272, 0, 0, 0,
3333 0, 0, 0, 0, 0, 3274, 3276, 3278, 3280, 0,
3334 3282, 3284, 0, 0, 0, 3286, 0, 0, 3288, 3290,
3335 3292, 3294, 0, 0, 0, 3296, 0, 0, 0, 0,
3336 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3337 3298, 3300, 0, 0, 0, 0, 0, 0, 0, 0,
3338 0, 0, 0, 3302, 3304, 0, 0, 0, 0, 3306,
3339 3308, 3310, 3312, 0, 0, 0, 0, 0, 0, 0,
3340 3314, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3341 0, 3316, 3318, 3320, 3322, 3324, 3326, 0, 3328, 0,
3342 0, 3330, 3332, 3334, 3336, 3338, 3340, 3342, 3344, 3346,
3343 3348, 3350, 3352, 3354, 3356, 3358, 3360, 0, 0, 0,
3344 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3345 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3346 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3347 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3348 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3349 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3350 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3351 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3352 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3353 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3354 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3355 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3356 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3357 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3358 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3359 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3360 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3361 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3362 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3363 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3364 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3365 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3366 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3367 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3368 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3369 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3370 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3371 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3372 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3373 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3374 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3375 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3376 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3377 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3378 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3379 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3380 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3381 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3382 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3384 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3385 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3386 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3387 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3388 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3389 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3390 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3391 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3393 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3394 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3395 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3400 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3401 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3402 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3403 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3405 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3406 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3408 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3409 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3410 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3411 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3412 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3413 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3414 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3415 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3416 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3417 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3418 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3423 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3424 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3425 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3426 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3427 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3428 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3429 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3430 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3431 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3432 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3433 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3434 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3436 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3437 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3438 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3442 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3445 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3454 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3457 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3459 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3466 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3467 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3470 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3471 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3472 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3473 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3506 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3513 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3524 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3527 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3530 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3531 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3534 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3541 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3546 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3548 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3550 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3551 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3552 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3553 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3554 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3555 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3559 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3560 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3563 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3565 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3567 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3569 0, 3392, 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, 3394
3572 };
3573
3574 /* YYCONFL[I] -- lists of conflicting rule numbers, each terminated by
3575 0, pointed into by YYCONFLP. */
3576 static const short yyconfl[] =
3577 {
3578 0, 383, 0, 383, 0, 383, 0, 383, 0, 374,
3579 0, 374, 0, 397, 0, 458, 0, 458, 0, 614,
3580 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
3581 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
3582 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
3583 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
3584 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
3585 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
3586 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
3587 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
3588 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
3589 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
3590 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
3591 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
3592 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
3593 0, 614, 0, 614, 0, 383, 0, 383, 0, 383,
3594 0, 383, 0, 397, 0, 44, 0, 44, 0, 44,
3595 0, 44, 0, 44, 0, 44, 0, 44, 0, 44,
3596 0, 44, 0, 44, 0, 44, 0, 44, 0, 44,
3597 0, 44, 0, 44, 0, 44, 0, 44, 0, 44,
3598 0, 44, 0, 44, 0, 44, 0, 44, 0, 44,
3599 0, 44, 0, 44, 0, 44, 0, 44, 0, 44,
3600 0, 44, 0, 44, 0, 44, 0, 44, 0, 44,
3601 0, 44, 0, 44, 0, 44, 0, 44, 0, 44,
3602 0, 44, 0, 44, 0, 44, 0, 44, 0, 44,
3603 0, 44, 0, 44, 0, 53, 0, 53, 0, 53,
3604 0, 53, 0, 53, 0, 53, 0, 53, 0, 53,
3605 0, 53, 0, 53, 0, 53, 0, 53, 0, 53,
3606 0, 53, 0, 53, 0, 53, 0, 53, 0, 53,
3607 0, 53, 0, 53, 0, 53, 0, 53, 0, 53,
3608 0, 53, 0, 53, 0, 53, 0, 53, 0, 53,
3609 0, 53, 0, 53, 0, 53, 0, 53, 0, 53,
3610 0, 53, 0, 53, 0, 53, 0, 53, 0, 53,
3611 0, 53, 0, 53, 0, 53, 0, 53, 0, 53,
3612 0, 53, 0, 53, 0, 54, 0, 54, 0, 54,
3613 0, 54, 0, 54, 0, 54, 0, 54, 0, 54,
3614 0, 54, 0, 54, 0, 54, 0, 54, 0, 54,
3615 0, 54, 0, 54, 0, 54, 0, 54, 0, 54,
3616 0, 54, 0, 54, 0, 54, 0, 54, 0, 54,
3617 0, 54, 0, 54, 0, 54, 0, 54, 0, 54,
3618 0, 54, 0, 54, 0, 54, 0, 54, 0, 54,
3619 0, 54, 0, 54, 0, 54, 0, 54, 0, 54,
3620 0, 54, 0, 54, 0, 54, 0, 54, 0, 54,
3621 0, 54, 0, 54, 0, 55, 0, 55, 0, 55,
3622 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3623 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3624 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3625 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3626 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3627 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3628 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3629 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3630 0, 55, 0, 55, 0, 56, 0, 56, 0, 56,
3631 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3632 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3633 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3634 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3635 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3636 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3637 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3638 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3639 0, 56, 0, 56, 0, 615, 0, 615, 0, 615,
3640 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
3641 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
3642 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
3643 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
3644 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
3645 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
3646 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
3647 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
3648 0, 615, 0, 615, 0, 576, 614, 0, 576, 614,
3649 0, 576, 614, 0, 576, 614, 0, 576, 614, 0,
3650 576, 614, 0, 576, 614, 0, 576, 614, 0, 576,
3651 614, 0, 576, 614, 0, 576, 614, 0, 576, 614,
3652 0, 576, 614, 0, 576, 614, 0, 576, 614, 0,
3653 576, 614, 0, 576, 614, 0, 576, 614, 0, 576,
3654 614, 0, 576, 614, 0, 576, 614, 0, 576, 614,
3655 0, 576, 614, 0, 576, 614, 0, 576, 614, 0,
3656 576, 614, 0, 576, 614, 0, 576, 614, 0, 576,
3657 614, 0, 576, 614, 0, 576, 614, 0, 576, 614,
3658 0, 576, 614, 0, 576, 614, 0, 576, 614, 0,
3659 576, 614, 0, 576, 614, 0, 576, 614, 0, 576,
3660 614, 0, 576, 614, 0, 576, 614, 0, 576, 614,
3661 0, 576, 614, 0, 576, 614, 0, 576, 614, 0,
3662 614, 0, 63, 0, 63, 0, 63, 0, 63, 0,
3663 63, 0, 63, 0, 63, 0, 63, 0, 63, 0,
3664 63, 0, 63, 0, 63, 0, 63, 0, 63, 0,
3665 63, 0, 63, 0, 63, 0, 63, 0, 63, 0,
3666 63, 0, 63, 0, 63, 0, 63, 0, 63, 0,
3667 63, 0, 63, 0, 63, 0, 63, 0, 63, 0,
3668 63, 0, 63, 0, 63, 0, 63, 0, 63, 0,
3669 63, 0, 63, 0, 63, 0, 63, 0, 63, 0,
3670 63, 0, 63, 0, 63, 0, 63, 0, 63, 0,
3671 63, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3672 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3673 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3674 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3675 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3676 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3677 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3678 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3679 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3680 107, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3681 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3682 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3683 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3684 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3685 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3686 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3687 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3688 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3689 106, 0, 104, 0, 104, 0, 104, 0, 104, 0,
3690 104, 0, 104, 0, 104, 0, 104, 0, 104, 0,
3691 104, 0, 104, 0, 104, 0, 104, 0, 104, 0,
3692 104, 0, 104, 0, 104, 0, 104, 0, 104, 0,
3693 104, 0, 104, 0, 104, 0, 104, 0, 104, 0,
3694 104, 0, 104, 0, 104, 0, 104, 0, 104, 0,
3695 104, 0, 104, 0, 104, 0, 104, 0, 104, 0,
3696 104, 0, 104, 0, 104, 0, 104, 0, 104, 0,
3697 104, 0, 104, 0, 104, 0, 104, 0, 104, 0,
3698 104, 0, 105, 0, 105, 0, 105, 0, 105, 0,
3699 105, 0, 105, 0, 105, 0, 105, 0, 105, 0,
3700 105, 0, 105, 0, 105, 0, 105, 0, 105, 0,
3701 105, 0, 105, 0, 105, 0, 105, 0, 105, 0,
3702 105, 0, 105, 0, 105, 0, 105, 0, 105, 0,
3703 105, 0, 105, 0, 105, 0, 105, 0, 105, 0,
3704 105, 0, 105, 0, 105, 0, 105, 0, 105, 0,
3705 105, 0, 105, 0, 105, 0, 105, 0, 105, 0,
3706 105, 0, 105, 0, 105, 0, 105, 0, 105, 0,
3707 105, 0, 125, 0, 125, 0, 125, 0, 125, 0,
3708 125, 0, 125, 0, 125, 0, 125, 0, 125, 0,
3709 125, 0, 125, 0, 125, 0, 125, 0, 125, 0,
3710 125, 0, 125, 0, 125, 0, 125, 0, 125, 0,
3711 125, 0, 125, 0, 125, 0, 125, 0, 125, 0,
3712 125, 0, 125, 0, 125, 0, 125, 0, 125, 0,
3713 125, 0, 125, 0, 125, 0, 125, 0, 125, 0,
3714 125, 0, 125, 0, 125, 0, 125, 0, 125, 0,
3715 125, 0, 125, 0, 125, 0, 125, 0, 125, 0,
3716 125, 0, 126, 0, 126, 0, 126, 0, 126, 0,
3717 126, 0, 126, 0, 126, 0, 126, 0, 126, 0,
3718 126, 0, 126, 0, 126, 0, 126, 0, 126, 0,
3719 126, 0, 126, 0, 126, 0, 126, 0, 126, 0,
3720 126, 0, 126, 0, 126, 0, 126, 0, 126, 0,
3721 126, 0, 126, 0, 126, 0, 126, 0, 126, 0,
3722 126, 0, 126, 0, 126, 0, 126, 0, 126, 0,
3723 126, 0, 126, 0, 126, 0, 126, 0, 126, 0,
3724 126, 0, 126, 0, 126, 0, 126, 0, 126, 0,
3725 126, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3726 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3727 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3728 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3729 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3730 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3731 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3732 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3733 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3734 127, 0, 128, 0, 128, 0, 128, 0, 128, 0,
3735 128, 0, 128, 0, 128, 0, 128, 0, 128, 0,
3736 128, 0, 128, 0, 128, 0, 128, 0, 128, 0,
3737 128, 0, 128, 0, 128, 0, 128, 0, 128, 0,
3738 128, 0, 128, 0, 128, 0, 128, 0, 128, 0,
3739 128, 0, 128, 0, 128, 0, 128, 0, 128, 0,
3740 128, 0, 128, 0, 128, 0, 128, 0, 128, 0,
3741 128, 0, 128, 0, 128, 0, 128, 0, 128, 0,
3742 128, 0, 128, 0, 128, 0, 128, 0, 128, 0,
3743 128, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3744 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3745 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3746 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3747 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3748 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3749 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3750 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3751 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3752 129, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3753 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3754 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3755 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3756 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3757 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3758 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3759 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3760 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3761 130, 0, 159, 0, 159, 0, 159, 0, 159, 0,
3762 159, 0, 159, 0, 159, 0, 159, 0, 159, 0,
3763 159, 0, 159, 0, 159, 0, 159, 0, 159, 0,
3764 159, 0, 159, 0, 159, 0, 159, 0, 159, 0,
3765 159, 0, 159, 0, 159, 0, 159, 0, 159, 0,
3766 159, 0, 159, 0, 159, 0, 159, 0, 159, 0,
3767 159, 0, 159, 0, 159, 0, 159, 0, 159, 0,
3768 159, 0, 159, 0, 159, 0, 159, 0, 159, 0,
3769 159, 0, 159, 0, 159, 0, 159, 0, 159, 0,
3770 159, 0, 584, 0, 584, 0, 584, 0, 584, 0,
3771 584, 0, 584, 0, 584, 0, 584, 0, 584, 0,
3772 584, 0, 584, 0, 584, 0, 584, 0, 584, 0,
3773 584, 0, 584, 0, 584, 0, 584, 0, 584, 0,
3774 584, 0, 584, 0, 584, 0, 584, 0, 584, 0,
3775 584, 0, 584, 0, 584, 0, 584, 0, 584, 0,
3776 584, 0, 584, 0, 584, 0, 584, 0, 584, 0,
3777 584, 0, 584, 0, 584, 0, 584, 0, 584, 0,
3778 584, 0, 584, 0, 584, 0, 584, 0, 584, 0,
3779 584, 0, 583, 0, 583, 0, 583, 0, 583, 0,
3780 583, 0, 583, 0, 583, 0, 583, 0, 583, 0,
3781 583, 0, 583, 0, 583, 0, 583, 0, 583, 0,
3782 583, 0, 583, 0, 583, 0, 583, 0, 583, 0,
3783 583, 0, 583, 0, 583, 0, 583, 0, 583, 0,
3784 583, 0, 583, 0, 583, 0, 583, 0, 583, 0,
3785 583, 0, 583, 0, 583, 0, 583, 0, 583, 0,
3786 583, 0, 583, 0, 583, 0, 583, 0, 583, 0,
3787 583, 0, 583, 0, 583, 0, 583, 0, 583, 0,
3788 583, 0, 581, 0, 581, 0, 581, 0, 581, 0,
3789 581, 0, 581, 0, 581, 0, 581, 0, 581, 0,
3790 581, 0, 581, 0, 581, 0, 581, 0, 581, 0,
3791 581, 0, 581, 0, 581, 0, 581, 0, 581, 0,
3792 581, 0, 581, 0, 581, 0, 581, 0, 581, 0,
3793 581, 0, 581, 0, 581, 0, 581, 0, 581, 0,
3794 581, 0, 581, 0, 581, 0, 581, 0, 581, 0,
3795 581, 0, 581, 0, 581, 0, 581, 0, 581, 0,
3796 581, 0, 581, 0, 581, 0, 581, 0, 581, 0,
3797 581, 0, 579, 0, 579, 0, 579, 0, 579, 0,
3798 579, 0, 579, 0, 579, 0, 579, 0, 579, 0,
3799 579, 0, 579, 0, 579, 0, 579, 0, 579, 0,
3800 579, 0, 579, 0, 579, 0, 579, 0, 579, 0,
3801 579, 0, 579, 0, 579, 0, 579, 0, 579, 0,
3802 579, 0, 579, 0, 579, 0, 579, 0, 579, 0,
3803 579, 0, 579, 0, 579, 0, 579, 0, 579, 0,
3804 579, 0, 579, 0, 579, 0, 579, 0, 579, 0,
3805 579, 0, 579, 0, 579, 0, 579, 0, 579, 0,
3806 579, 0, 580, 0, 580, 0, 580, 0, 580, 0,
3807 580, 0, 580, 0, 580, 0, 580, 0, 580, 0,
3808 580, 0, 580, 0, 580, 0, 580, 0, 580, 0,
3809 580, 0, 580, 0, 580, 0, 580, 0, 580, 0,
3810 580, 0, 580, 0, 580, 0, 580, 0, 580, 0,
3811 580, 0, 580, 0, 580, 0, 580, 0, 580, 0,
3812 580, 0, 580, 0, 580, 0, 580, 0, 580, 0,
3813 580, 0, 580, 0, 580, 0, 580, 0, 580, 0,
3814 580, 0, 580, 0, 580, 0, 580, 0, 580, 0,
3815 580, 0, 582, 0, 582, 0, 582, 0, 582, 0,
3816 582, 0, 582, 0, 582, 0, 582, 0, 582, 0,
3817 582, 0, 582, 0, 582, 0, 582, 0, 582, 0,
3818 582, 0, 582, 0, 582, 0, 582, 0, 582, 0,
3819 582, 0, 582, 0, 582, 0, 582, 0, 582, 0,
3820 582, 0, 582, 0, 582, 0, 582, 0, 582, 0,
3821 582, 0, 582, 0, 582, 0, 582, 0, 582, 0,
3822 582, 0, 582, 0, 582, 0, 582, 0, 582, 0,
3823 582, 0, 582, 0, 582, 0, 582, 0, 582, 0,
3824 582, 0, 578, 0, 578, 0, 578, 0, 578, 0,
3825 578, 0, 578, 0, 578, 0, 578, 0, 578, 0,
3826 578, 0, 578, 0, 578, 0, 578, 0, 578, 0,
3827 578, 0, 578, 0, 578, 0, 578, 0, 578, 0,
3828 578, 0, 578, 0, 578, 0, 578, 0, 578, 0,
3829 578, 0, 578, 0, 578, 0, 578, 0, 578, 0,
3830 578, 0, 578, 0, 578, 0, 578, 0, 578, 0,
3831 578, 0, 578, 0, 578, 0, 578, 0, 578, 0,
3832 578, 0, 578, 0, 578, 0, 578, 0, 578, 0,
3833 578, 0, 577, 0, 577, 0, 577, 0, 577, 0,
3834 577, 0, 577, 0, 577, 0, 577, 0, 577, 0,
3835 577, 0, 577, 0, 577, 0, 577, 0, 577, 0,
3836 577, 0, 577, 0, 577, 0, 577, 0, 577, 0,
3837 577, 0, 577, 0, 577, 0, 577, 0, 577, 0,
3838 577, 0, 577, 0, 577, 0, 577, 0, 577, 0,
3839 577, 0, 577, 0, 577, 0, 577, 0, 577, 0,
3840 577, 0, 577, 0, 577, 0, 577, 0, 577, 0,
3841 577, 0, 577, 0, 577, 0, 577, 0, 577, 0,
3842 577, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3843 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3844 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3845 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3846 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3847 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3848 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3849 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3850 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3851 585, 0, 143, 0, 143, 0, 143, 0, 143, 0,
3852 143, 0, 143, 0, 143, 0, 143, 0, 143, 0,
3853 143, 0, 143, 0, 143, 0, 143, 0, 143, 0,
3854 143, 0, 143, 0, 143, 0, 143, 0, 143, 0,
3855 143, 0, 143, 0, 143, 0, 143, 0, 143, 0,
3856 143, 0, 143, 0, 143, 0, 143, 0, 143, 0,
3857 143, 0, 143, 0, 143, 0, 143, 0, 143, 0,
3858 143, 0, 143, 0, 143, 0, 143, 0, 143, 0,
3859 143, 0, 143, 0, 143, 0, 143, 0, 143, 0,
3860 143, 0, 613, 0, 613, 0, 613, 0, 613, 0,
3861 613, 0, 613, 0, 613, 0, 613, 0, 613, 0,
3862 613, 0, 613, 0, 613, 0, 613, 0, 613, 0,
3863 613, 0, 613, 0, 613, 0, 613, 0, 613, 0,
3864 613, 0, 613, 0, 613, 0, 613, 0, 613, 0,
3865 613, 0, 613, 0, 613, 0, 613, 0, 613, 0,
3866 613, 0, 613, 0, 613, 0, 613, 0, 613, 0,
3867 613, 0, 613, 0, 613, 0, 613, 0, 613, 0,
3868 613, 0, 613, 0, 613, 0, 613, 0, 613, 0,
3869 613, 0, 611, 0, 611, 0, 611, 0, 611, 0,
3870 611, 0, 611, 0, 611, 0, 611, 0, 611, 0,
3871 611, 0, 611, 0, 611, 0, 611, 0, 611, 0,
3872 611, 0, 611, 0, 611, 0, 611, 0, 611, 0,
3873 611, 0, 611, 0, 611, 0, 611, 0, 611, 0,
3874 611, 0, 611, 0, 611, 0, 611, 0, 611, 0,
3875 611, 0, 611, 0, 611, 0, 611, 0, 611, 0,
3876 611, 0, 611, 0, 611, 0, 611, 0, 611, 0,
3877 611, 0, 611, 0, 611, 0, 611, 0, 611, 0,
3878 611, 0, 610, 0, 610, 0, 610, 0, 610, 0,
3879 610, 0, 610, 0, 610, 0, 610, 0, 610, 0,
3880 610, 0, 610, 0, 610, 0, 610, 0, 610, 0,
3881 610, 0, 610, 0, 610, 0, 610, 0, 610, 0,
3882 610, 0, 610, 0, 610, 0, 610, 0, 610, 0,
3883 610, 0, 610, 0, 610, 0, 610, 0, 610, 0,
3884 610, 0, 610, 0, 610, 0, 610, 0, 610, 0,
3885 610, 0, 610, 0, 610, 0, 610, 0, 610, 0,
3886 610, 0, 610, 0, 610, 0, 610, 0, 610, 0,
3887 610, 0, 612, 0, 612, 0, 612, 0, 612, 0,
3888 612, 0, 612, 0, 612, 0, 612, 0, 612, 0,
3889 612, 0, 612, 0, 612, 0, 612, 0, 612, 0,
3890 612, 0, 612, 0, 612, 0, 612, 0, 612, 0,
3891 612, 0, 612, 0, 612, 0, 612, 0, 612, 0,
3892 612, 0, 612, 0, 612, 0, 612, 0, 612, 0,
3893 612, 0, 612, 0, 612, 0, 612, 0, 612, 0,
3894 612, 0, 612, 0, 612, 0, 612, 0, 612, 0,
3895 612, 0, 612, 0, 612, 0, 612, 0, 612, 0,
3896 612, 0, 609, 0, 609, 0, 609, 0, 609, 0,
3897 609, 0, 609, 0, 609, 0, 609, 0, 609, 0,
3898 609, 0, 609, 0, 609, 0, 609, 0, 609, 0,
3899 609, 0, 609, 0, 609, 0, 609, 0, 609, 0,
3900 609, 0, 609, 0, 609, 0, 609, 0, 609, 0,
3901 609, 0, 609, 0, 609, 0, 609, 0, 609, 0,
3902 609, 0, 609, 0, 609, 0, 609, 0, 609, 0,
3903 609, 0, 609, 0, 609, 0, 609, 0, 609, 0,
3904 609, 0, 609, 0, 609, 0, 609, 0, 609, 0,
3905 609, 0, 608, 0, 608, 0, 608, 0, 608, 0,
3906 608, 0, 608, 0, 608, 0, 608, 0, 608, 0,
3907 608, 0, 608, 0, 608, 0, 608, 0, 608, 0,
3908 608, 0, 608, 0, 608, 0, 608, 0, 608, 0,
3909 608, 0, 608, 0, 608, 0, 608, 0, 608, 0,
3910 608, 0, 608, 0, 608, 0, 608, 0, 608, 0,
3911 608, 0, 608, 0, 608, 0, 608, 0, 608, 0,
3912 608, 0, 608, 0, 608, 0, 608, 0, 608, 0,
3913 608, 0, 608, 0, 608, 0, 608, 0, 608, 0,
3914 608, 0, 503, 0, 503, 0, 451, 0, 451, 0,
3915 452, 0, 489, 0, 489, 0, 489, 0, 43, 0,
3916 615, 0, 383, 0, 564, 0, 564, 0, 564, 0,
3917 615, 0, 334, 0, 485, 0
3918 };
3919
3920 /* Error token number */
3921 #define YYTERROR 1
3922
3923
3924
3925
3926 #undef yynerrs
3927 #define yynerrs (yystackp->yyerrcnt)
3928 #undef yychar
3929 #define yychar (yystackp->yyrawchar)
3930 #undef yylval
3931 #define yylval (yystackp->yyval)
3932 #undef yylloc
3933 #define yylloc (yystackp->yyloc)
3934 #define psi_parser_proc_nerrs yynerrs
3935 #define psi_parser_proc_char yychar
3936 #define psi_parser_proc_lval yylval
3937 #define psi_parser_proc_lloc yylloc
3938
3939 static const int YYEOF = 0;
3940 static const int YYEMPTY = -2;
3941
3942 typedef enum { yyok, yyaccept, yyabort, yyerr } YYRESULTTAG;
3943
3944 #define YYCHK(YYE) \
3945 do { \
3946 YYRESULTTAG yychk_flag = YYE; \
3947 if (yychk_flag != yyok) \
3948 return yychk_flag; \
3949 } while (0)
3950
3951 #if YYDEBUG
3952
3953 # ifndef YYFPRINTF
3954 # define YYFPRINTF fprintf
3955 # endif
3956
3957 /* This macro is provided for backward compatibility. */
3958 #ifndef YY_LOCATION_PRINT
3959 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
3960 #endif
3961
3962
3963 # define YYDPRINTF(Args) \
3964 do { \
3965 if (yydebug) \
3966 YYFPRINTF Args; \
3967 } while (0)
3968
3969
3970 /*-----------------------------------.
3971 | Print this symbol's value on YYO. |
3972 `-----------------------------------*/
3973
3974 static void
3975 yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
3976 {
3977 FILE *yyoutput = yyo;
3978 YYUSE (yyoutput);
3979 YYUSE (P);
3980 YYUSE (tokens);
3981 YYUSE (index);
3982 if (!yyvaluep)
3983 return;
3984 YYUSE (yytype);
3985 }
3986
3987
3988 /*---------------------------.
3989 | Print this symbol on YYO. |
3990 `---------------------------*/
3991
3992 static void
3993 yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
3994 {
3995 YYFPRINTF (yyo, "%s %s (",
3996 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
3997
3998 yy_symbol_value_print (yyo, yytype, yyvaluep, P, tokens, index);
3999 YYFPRINTF (yyo, ")");
4000 }
4001
4002 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
4003 do { \
4004 if (yydebug) \
4005 { \
4006 YYFPRINTF (stderr, "%s ", Title); \
4007 yy_symbol_print (stderr, Type, Value, P, tokens, index); \
4008 YYFPRINTF (stderr, "\n"); \
4009 } \
4010 } while (0)
4011
4012 /* Nonzero means print parse trace. It is left uninitialized so that
4013 multiple parsers can coexist. */
4014 int yydebug;
4015
4016 struct yyGLRStack;
4017 static void yypstack (struct yyGLRStack* yystackp, size_t yyk)
4018 YY_ATTRIBUTE_UNUSED;
4019 static void yypdumpstack (struct yyGLRStack* yystackp)
4020 YY_ATTRIBUTE_UNUSED;
4021
4022 #else /* !YYDEBUG */
4023
4024 # define YYDPRINTF(Args)
4025 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
4026
4027 #endif /* !YYDEBUG */
4028
4029 /* YYINITDEPTH -- initial size of the parser's stacks. */
4030 #ifndef YYINITDEPTH
4031 # define YYINITDEPTH 200
4032 #endif
4033
4034 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
4035 if the built-in stack extension method is used).
4036
4037 Do not make this value too large; the results are undefined if
4038 SIZE_MAX < YYMAXDEPTH * sizeof (GLRStackItem)
4039 evaluated with infinite-precision integer arithmetic. */
4040
4041 #ifndef YYMAXDEPTH
4042 # define YYMAXDEPTH 10000
4043 #endif
4044
4045 /* Minimum number of free items on the stack allowed after an
4046 allocation. This is to allow allocation and initialization
4047 to be completed by functions that call yyexpandGLRStack before the
4048 stack is expanded, thus insuring that all necessary pointers get
4049 properly redirected to new data. */
4050 #define YYHEADROOM 2
4051
4052 #ifndef YYSTACKEXPANDABLE
4053 # define YYSTACKEXPANDABLE 1
4054 #endif
4055
4056 #if YYSTACKEXPANDABLE
4057 # define YY_RESERVE_GLRSTACK(Yystack) \
4058 do { \
4059 if (Yystack->yyspaceLeft < YYHEADROOM) \
4060 yyexpandGLRStack (Yystack); \
4061 } while (0)
4062 #else
4063 # define YY_RESERVE_GLRSTACK(Yystack) \
4064 do { \
4065 if (Yystack->yyspaceLeft < YYHEADROOM) \
4066 yyMemoryExhausted (Yystack); \
4067 } while (0)
4068 #endif
4069
4070
4071 #if YYERROR_VERBOSE
4072
4073 # ifndef yystpcpy
4074 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
4075 # define yystpcpy stpcpy
4076 # else
4077 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
4078 YYDEST. */
4079 static char *
4080 yystpcpy (char *yydest, const char *yysrc)
4081 {
4082 char *yyd = yydest;
4083 const char *yys = yysrc;
4084
4085 while ((*yyd++ = *yys++) != '\0')
4086 continue;
4087
4088 return yyd - 1;
4089 }
4090 # endif
4091 # endif
4092
4093 # ifndef yytnamerr
4094 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
4095 quotes and backslashes, so that it's suitable for yyerror. The
4096 heuristic is that double-quoting is unnecessary unless the string
4097 contains an apostrophe, a comma, or backslash (other than
4098 backslash-backslash). YYSTR is taken from yytname. If YYRES is
4099 null, do not copy; instead, return the length of what the result
4100 would have been. */
4101 static size_t
4102 yytnamerr (char *yyres, const char *yystr)
4103 {
4104 if (*yystr == '"')
4105 {
4106 size_t yyn = 0;
4107 char const *yyp = yystr;
4108
4109 for (;;)
4110 switch (*++yyp)
4111 {
4112 case '\'':
4113 case ',':
4114 goto do_not_strip_quotes;
4115
4116 case '\\':
4117 if (*++yyp != '\\')
4118 goto do_not_strip_quotes;
4119 /* Fall through. */
4120 default:
4121 if (yyres)
4122 yyres[yyn] = *yyp;
4123 yyn++;
4124 break;
4125
4126 case '"':
4127 if (yyres)
4128 yyres[yyn] = '\0';
4129 return yyn;
4130 }
4131 do_not_strip_quotes: ;
4132 }
4133
4134 if (! yyres)
4135 return strlen (yystr);
4136
4137 return (size_t) (yystpcpy (yyres, yystr) - yyres);
4138 }
4139 # endif
4140
4141 #endif /* !YYERROR_VERBOSE */
4142
4143 /** State numbers, as in LALR(1) machine */
4144 typedef int yyStateNum;
4145
4146 /** Rule numbers, as in LALR(1) machine */
4147 typedef int yyRuleNum;
4148
4149 /** Grammar symbol */
4150 typedef int yySymbol;
4151
4152 /** Item references, as in LALR(1) machine */
4153 typedef short yyItemNum;
4154
4155 typedef struct yyGLRState yyGLRState;
4156 typedef struct yyGLRStateSet yyGLRStateSet;
4157 typedef struct yySemanticOption yySemanticOption;
4158 typedef union yyGLRStackItem yyGLRStackItem;
4159 typedef struct yyGLRStack yyGLRStack;
4160
4161 struct yyGLRState {
4162 /** Type tag: always true. */
4163 yybool yyisState;
4164 /** Type tag for yysemantics. If true, yysval applies, otherwise
4165 * yyfirstVal applies. */
4166 yybool yyresolved;
4167 /** Number of corresponding LALR(1) machine state. */
4168 yyStateNum yylrState;
4169 /** Preceding state in this stack */
4170 yyGLRState* yypred;
4171 /** Source position of the last token produced by my symbol */
4172 size_t yyposn;
4173 union {
4174 /** First in a chain of alternative reductions producing the
4175 * non-terminal corresponding to this state, threaded through
4176 * yynext. */
4177 yySemanticOption* yyfirstVal;
4178 /** Semantic value for this state. */
4179 YYSTYPE yysval;
4180 } yysemantics;
4181 };
4182
4183 struct yyGLRStateSet {
4184 yyGLRState** yystates;
4185 /** During nondeterministic operation, yylookaheadNeeds tracks which
4186 * stacks have actually needed the current lookahead. During deterministic
4187 * operation, yylookaheadNeeds[0] is not maintained since it would merely
4188 * duplicate yychar != YYEMPTY. */
4189 yybool* yylookaheadNeeds;
4190 size_t yysize, yycapacity;
4191 };
4192
4193 struct yySemanticOption {
4194 /** Type tag: always false. */
4195 yybool yyisState;
4196 /** Rule number for this reduction */
4197 yyRuleNum yyrule;
4198 /** The last RHS state in the list of states to be reduced. */
4199 yyGLRState* yystate;
4200 /** The lookahead for this reduction. */
4201 int yyrawchar;
4202 YYSTYPE yyval;
4203 /** Next sibling in chain of options. To facilitate merging,
4204 * options are chained in decreasing order by address. */
4205 yySemanticOption* yynext;
4206 };
4207
4208 /** Type of the items in the GLR stack. The yyisState field
4209 * indicates which item of the union is valid. */
4210 union yyGLRStackItem {
4211 yyGLRState yystate;
4212 yySemanticOption yyoption;
4213 };
4214
4215 struct yyGLRStack {
4216 int yyerrState;
4217
4218
4219 int yyerrcnt;
4220 int yyrawchar;
4221 YYSTYPE yyval;
4222
4223 YYJMP_BUF yyexception_buffer;
4224 yyGLRStackItem* yyitems;
4225 yyGLRStackItem* yynextFree;
4226 size_t yyspaceLeft;
4227 yyGLRState* yysplitPoint;
4228 yyGLRState* yylastDeleted;
4229 yyGLRStateSet yytops;
4230 };
4231
4232 #if YYSTACKEXPANDABLE
4233 static void yyexpandGLRStack (yyGLRStack* yystackp);
4234 #endif
4235
4236 static _Noreturn void
4237 yyFail (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char* yymsg)
4238 {
4239 if (yymsg != YY_NULLPTR)
4240 yyerror (P, tokens, index, yymsg);
4241 YYLONGJMP (yystackp->yyexception_buffer, 1);
4242 }
4243
4244 static _Noreturn void
4245 yyMemoryExhausted (yyGLRStack* yystackp)
4246 {
4247 YYLONGJMP (yystackp->yyexception_buffer, 2);
4248 }
4249
4250 #if YYDEBUG || YYERROR_VERBOSE
4251 /** A printable representation of TOKEN. */
4252 static inline const char*
4253 yytokenName (yySymbol yytoken)
4254 {
4255 if (yytoken == YYEMPTY)
4256 return "";
4257
4258 return yytname[yytoken];
4259 }
4260 #endif
4261
4262 /** Fill in YYVSP[YYLOW1 .. YYLOW0-1] from the chain of states starting
4263 * at YYVSP[YYLOW0].yystate.yypred. Leaves YYVSP[YYLOW1].yystate.yypred
4264 * containing the pointer to the next state in the chain. */
4265 static void yyfillin (yyGLRStackItem *, int, int) YY_ATTRIBUTE_UNUSED;
4266 static void
4267 yyfillin (yyGLRStackItem *yyvsp, int yylow0, int yylow1)
4268 {
4269 int i;
4270 yyGLRState *s = yyvsp[yylow0].yystate.yypred;
4271 for (i = yylow0-1; i >= yylow1; i -= 1)
4272 {
4273 #if YYDEBUG
4274 yyvsp[i].yystate.yylrState = s->yylrState;
4275 #endif
4276 yyvsp[i].yystate.yyresolved = s->yyresolved;
4277 if (s->yyresolved)
4278 yyvsp[i].yystate.yysemantics.yysval = s->yysemantics.yysval;
4279 else
4280 /* The effect of using yysval or yyloc (in an immediate rule) is
4281 * undefined. */
4282 yyvsp[i].yystate.yysemantics.yyfirstVal = YY_NULLPTR;
4283 s = yyvsp[i].yystate.yypred = s->yypred;
4284 }
4285 }
4286
4287 /* Do nothing if YYNORMAL or if *YYLOW <= YYLOW1. Otherwise, fill in
4288 * YYVSP[YYLOW1 .. *YYLOW-1] as in yyfillin and set *YYLOW = YYLOW1.
4289 * For convenience, always return YYLOW1. */
4290 static inline int yyfill (yyGLRStackItem *, int *, int, yybool)
4291 YY_ATTRIBUTE_UNUSED;
4292 static inline int
4293 yyfill (yyGLRStackItem *yyvsp, int *yylow, int yylow1, yybool yynormal)
4294 {
4295 if (!yynormal && yylow1 < *yylow)
4296 {
4297 yyfillin (yyvsp, *yylow, yylow1);
4298 *yylow = yylow1;
4299 }
4300 return yylow1;
4301 }
4302
4303 /** Perform user action for rule number YYN, with RHS length YYRHSLEN,
4304 * and top stack item YYVSP. YYLVALP points to place to put semantic
4305 * value ($$), and yylocp points to place for location information
4306 * (@$). Returns yyok for normal return, yyaccept for YYACCEPT,
4307 * yyerr for YYERROR, yyabort for YYABORT. */
4308 static YYRESULTTAG
4309 yyuserAction (yyRuleNum yyn, int yyrhslen, yyGLRStackItem* yyvsp,
4310 yyGLRStack* yystackp,
4311 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
4312 {
4313 yybool yynormal YY_ATTRIBUTE_UNUSED = (yybool) (yystackp->yysplitPoint == YY_NULLPTR);
4314 int yylow;
4315 YYUSE (yyvalp);
4316 YYUSE (P);
4317 YYUSE (tokens);
4318 YYUSE (index);
4319 YYUSE (yyrhslen);
4320 # undef yyerrok
4321 # define yyerrok (yystackp->yyerrState = 0)
4322 # undef YYACCEPT
4323 # define YYACCEPT return yyaccept
4324 # undef YYABORT
4325 # define YYABORT return yyabort
4326 # undef YYERROR
4327 # define YYERROR return yyerrok, yyerr
4328 # undef YYRECOVERING
4329 # define YYRECOVERING() (yystackp->yyerrState != 0)
4330 # undef yyclearin
4331 # define yyclearin (yychar = YYEMPTY)
4332 # undef YYFILL
4333 # define YYFILL(N) yyfill (yyvsp, &yylow, (N), yynormal)
4334 # undef YYBACKUP
4335 # define YYBACKUP(Token, Value) \
4336 return yyerror (P, tokens, index, YY_("syntax error: cannot back up")), \
4337 yyerrok, yyerr
4338
4339 yylow = 1;
4340 if (yyrhslen == 0)
4341 *yyvalp = yyval_default;
4342 else
4343 *yyvalp = yyvsp[YYFILL (1-yyrhslen)].yystate.yysemantics.yysval;
4344 switch (yyn)
4345 {
4346 case 281:
4347 #line 429 "src/parser_proc_grammar.y" /* glr.c:821 */
4348 {
4349 if ((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4350 psi_cpp_exp_exec((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), P->preproc, PSI_DATA(P));
4351 psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4352 }
4353 }
4354 #line 4355 "src/parser_proc.c" /* glr.c:821 */
4355 break;
4356
4357 case 282:
4358 #line 435 "src/parser_proc_grammar.y" /* glr.c:821 */
4359 {
4360 psi_parser_proc_add_const(P, (*(struct psi_const **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4361 }
4362 #line 4363 "src/parser_proc.c" /* glr.c:821 */
4363 break;
4364
4365 case 283:
4366 #line 438 "src/parser_proc_grammar.y" /* glr.c:821 */
4367 {
4368 psi_parser_proc_add_decl(P, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4369 }
4370 #line 4371 "src/parser_proc.c" /* glr.c:821 */
4371 break;
4372
4373 case 284:
4374 #line 441 "src/parser_proc_grammar.y" /* glr.c:821 */
4375 {
4376 psi_parser_proc_add_decl_extvars(P, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4377 }
4378 #line 4379 "src/parser_proc.c" /* glr.c:821 */
4379 break;
4380
4381 case 285:
4382 #line 444 "src/parser_proc_grammar.y" /* glr.c:821 */
4383 {
4384 if (P->flags & PSI_DEBUG) {
4385 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);
4386 }
4387 psi_decl_free(&(*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4388 }
4389 #line 4390 "src/parser_proc.c" /* glr.c:821 */
4390 break;
4391
4392 case 286:
4393 #line 450 "src/parser_proc_grammar.y" /* glr.c:821 */
4394 {
4395 psi_parser_proc_add_typedef(P, (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4396 }
4397 #line 4398 "src/parser_proc.c" /* glr.c:821 */
4398 break;
4399
4400 case 287:
4401 #line 453 "src/parser_proc_grammar.y" /* glr.c:821 */
4402 {
4403 psi_parser_proc_add_struct(P, (*(struct psi_decl_struct **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4404 }
4405 #line 4406 "src/parser_proc.c" /* glr.c:821 */
4406 break;
4407
4408 case 288:
4409 #line 456 "src/parser_proc_grammar.y" /* glr.c:821 */
4410 {
4411 psi_parser_proc_add_union(P, (*(struct psi_decl_union **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4412 }
4413 #line 4414 "src/parser_proc.c" /* glr.c:821 */
4414 break;
4415
4416 case 289:
4417 #line 459 "src/parser_proc_grammar.y" /* glr.c:821 */
4418 {
4419 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4420 }
4421 #line 4422 "src/parser_proc.c" /* glr.c:821 */
4422 break;
4423
4424 case 290:
4425 #line 462 "src/parser_proc_grammar.y" /* glr.c:821 */
4426 {
4427 psi_parser_proc_add_impl(P, (*(struct psi_impl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4428 }
4429 #line 4430 "src/parser_proc.c" /* glr.c:821 */
4430 break;
4431
4432 case 291:
4433 #line 468 "src/parser_proc_grammar.y" /* glr.c:821 */
4434 {
4435 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
4436 }
4437 #line 4438 "src/parser_proc.c" /* glr.c:821 */
4438 break;
4439
4440 case 292:
4441 #line 471 "src/parser_proc_grammar.y" /* glr.c:821 */
4442 {
4443 (*(struct psi_cpp_exp **)(&(*yyvalp))) = (*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4444 }
4445 #line 4446 "src/parser_proc.c" /* glr.c:821 */
4446 break;
4447
4448 case 293:
4449 #line 477 "src/parser_proc_grammar.y" /* glr.c:821 */
4450 {
4451 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4452 struct psi_token *msg = NULL;
4453
4454 if (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0, &msg)) {
4455 size_t index = 1;
4456 struct psi_token *next;
4457
4458 msg = psi_token_copy(msg);
4459 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), index++, &next)) {
4460 struct psi_token *old = msg;
4461 msg = psi_token_cat(" ", 2, msg, next);
4462 psi_token_free(&old);
4463 }
4464 }
4465 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4466
4467 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, msg);
4468 } else {
4469 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, NULL);
4470 }
4471 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4472 }
4473 #line 4474 "src/parser_proc.c" /* glr.c:821 */
4474 break;
4475
4476 case 294:
4477 #line 500 "src/parser_proc_grammar.y" /* glr.c:821 */
4478 {
4479 (*(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))));
4480 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4481 }
4482 #line 4483 "src/parser_proc.c" /* glr.c:821 */
4483 break;
4484
4485 case 295:
4486 #line 504 "src/parser_proc_grammar.y" /* glr.c:821 */
4487 {
4488 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL);
4489 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4490 }
4491 #line 4492 "src/parser_proc.c" /* glr.c:821 */
4492 break;
4493
4494 case 296:
4495 #line 508 "src/parser_proc_grammar.y" /* glr.c:821 */
4496 {
4497 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4498 (*(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))));
4499 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4500 }
4501 #line 4502 "src/parser_proc.c" /* glr.c:821 */
4502 break;
4503
4504 case 297:
4505 #line 513 "src/parser_proc_grammar.y" /* glr.c:821 */
4506 {
4507 (*(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)));
4508 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4509 }
4510 #line 4511 "src/parser_proc.c" /* glr.c:821 */
4511 break;
4512
4513 case 298:
4514 #line 517 "src/parser_proc_grammar.y" /* glr.c:821 */
4515 {
4516 (*(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)));
4517 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4518 }
4519 #line 4520 "src/parser_proc.c" /* glr.c:821 */
4520 break;
4521
4522 case 299:
4523 #line 521 "src/parser_proc_grammar.y" /* glr.c:821 */
4524 {
4525 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4526 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
4527 }
4528 #line 4529 "src/parser_proc.c" /* glr.c:821 */
4529 break;
4530
4531 case 317:
4532 #line 569 "src/parser_proc_grammar.y" /* glr.c:821 */
4533 {
4534 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4535 (*(struct psi_cpp_macro_decl **)(&(*yyvalp))) = psi_cpp_macro_decl_init(NULL, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), NULL);
4536 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4537 }
4538 #line 4539 "src/parser_proc.c" /* glr.c:821 */
4539 break;
4540
4541 case 318:
4542 #line 574 "src/parser_proc_grammar.y" /* glr.c:821 */
4543 {
4544 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4545 (*(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);
4546 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4547 }
4548 #line 4549 "src/parser_proc.c" /* glr.c:821 */
4549 break;
4550
4551 case 319:
4552 #line 579 "src/parser_proc_grammar.y" /* glr.c:821 */
4553 {
4554 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4555 (*(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)));
4556 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4557 }
4558 #line 4559 "src/parser_proc.c" /* glr.c:821 */
4559 break;
4560
4561 case 320:
4562 #line 584 "src/parser_proc_grammar.y" /* glr.c:821 */
4563 {
4564 struct psi_plist *list = psi_plist_init((psi_plist_dtor) psi_token_free);
4565 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4566 (*(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);
4567 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4568 }
4569 #line 4570 "src/parser_proc.c" /* glr.c:821 */
4570 break;
4571
4572 case 321:
4573 #line 593 "src/parser_proc_grammar.y" /* glr.c:821 */
4574 {
4575 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL);
4576 }
4577 #line 4578 "src/parser_proc.c" /* glr.c:821 */
4578 break;
4579
4580 case 322:
4581 #line 596 "src/parser_proc_grammar.y" /* glr.c:821 */
4582 {
4583 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL); /* FIXME */
4584 }
4585 #line 4586 "src/parser_proc.c" /* glr.c:821 */
4586 break;
4587
4588 case 324:
4589 #line 600 "src/parser_proc_grammar.y" /* glr.c:821 */
4590 {
4591 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4592 }
4593 #line 4594 "src/parser_proc.c" /* glr.c:821 */
4594 break;
4595
4596 case 325:
4597 #line 606 "src/parser_proc_grammar.y" /* glr.c:821 */
4598 {
4599 (*(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)));
4600 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4601 (*(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)));
4602 }
4603 #line 4604 "src/parser_proc.c" /* glr.c:821 */
4604 break;
4605
4606 case 326:
4607 #line 611 "src/parser_proc_grammar.y" /* glr.c:821 */
4608 {
4609 (*(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)));
4610 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4611 (*(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)));
4612 }
4613 #line 4614 "src/parser_proc.c" /* glr.c:821 */
4614 break;
4615
4616 case 327:
4617 #line 619 "src/parser_proc_grammar.y" /* glr.c:821 */
4618 {
4619 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4620 }
4621 #line 4622 "src/parser_proc.c" /* glr.c:821 */
4622 break;
4623
4624 case 329:
4625 #line 626 "src/parser_proc_grammar.y" /* glr.c:821 */
4626 {
4627 (*(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)));
4628 (*(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)));
4629 }
4630 #line 4631 "src/parser_proc.c" /* glr.c:821 */
4631 break;
4632
4633 case 330:
4634 #line 630 "src/parser_proc_grammar.y" /* glr.c:821 */
4635 {
4636 (*(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)));
4637 (*(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)));
4638 }
4639 #line 4640 "src/parser_proc.c" /* glr.c:821 */
4640 break;
4641
4642 case 331:
4643 #line 637 "src/parser_proc_grammar.y" /* glr.c:821 */
4644 {
4645 (*(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)));
4646 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4647 }
4648 #line 4649 "src/parser_proc.c" /* glr.c:821 */
4649 break;
4650
4651 case 332:
4652 #line 641 "src/parser_proc_grammar.y" /* glr.c:821 */
4653 {
4654 (*(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)));
4655 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4656 }
4657 #line 4658 "src/parser_proc.c" /* glr.c:821 */
4658 break;
4659
4660 case 333:
4661 #line 645 "src/parser_proc_grammar.y" /* glr.c:821 */
4662 {
4663 (*(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)));
4664 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4665 }
4666 #line 4667 "src/parser_proc.c" /* glr.c:821 */
4667 break;
4668
4669 case 334:
4670 #line 649 "src/parser_proc_grammar.y" /* glr.c:821 */
4671 {
4672 (*(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)));
4673 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4674 }
4675 #line 4676 "src/parser_proc.c" /* glr.c:821 */
4676 break;
4677
4678 case 335:
4679 #line 654 "src/parser_proc_grammar.y" /* glr.c:821 */
4680 {
4681 {
4682 uint8_t exists;
4683
4684 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4685 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4686 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_DEFINED, &exists, 0));
4687 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4688 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4689 }
4690 }
4691 #line 4692 "src/parser_proc.c" /* glr.c:821 */
4692 break;
4693
4694 case 336:
4695 #line 665 "src/parser_proc_grammar.y" /* glr.c:821 */
4696 {
4697 {
4698 uint8_t exists;
4699
4700 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4701 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4702 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_DEFINED, &exists, 0));
4703 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4704 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4705 }
4706 }
4707 #line 4708 "src/parser_proc.c" /* glr.c:821 */
4708 break;
4709
4710 case 337:
4711 #line 676 "src/parser_proc_grammar.y" /* glr.c:821 */
4712 {
4713 (*(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));
4714 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4715 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4716 }
4717 #line 4718 "src/parser_proc.c" /* glr.c:821 */
4718 break;
4719
4720 case 338:
4721 #line 681 "src/parser_proc_grammar.y" /* glr.c:821 */
4722 {
4723 (*(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));
4724 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4725 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4726 }
4727 #line 4728 "src/parser_proc.c" /* glr.c:821 */
4728 break;
4729
4730 case 339:
4731 #line 686 "src/parser_proc_grammar.y" /* glr.c:821 */
4732 {
4733 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4734 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4735 }
4736 #line 4737 "src/parser_proc.c" /* glr.c:821 */
4737 break;
4738
4739 case 340:
4740 #line 690 "src/parser_proc_grammar.y" /* glr.c:821 */
4741 {
4742 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4743 (*(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));
4744 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4745 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4746 }
4747 #line 4748 "src/parser_proc.c" /* glr.c:821 */
4748 break;
4749
4750 case 341:
4751 #line 696 "src/parser_proc_grammar.y" /* glr.c:821 */
4752 {
4753 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4754 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_FUNCTION,
4755 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));
4756 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4757 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4758 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->data.call->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4759 }
4760 #line 4761 "src/parser_proc.c" /* glr.c:821 */
4761 break;
4762
4763 case 342:
4764 #line 707 "src/parser_proc_grammar.y" /* glr.c:821 */
4765 {
4766 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4767 }
4768 #line 4769 "src/parser_proc.c" /* glr.c:821 */
4769 break;
4770
4771 case 344:
4772 #line 714 "src/parser_proc_grammar.y" /* glr.c:821 */
4773 {
4774 /* TODO: clang include test macros */
4775 uint8_t no = 1;
4776 struct psi_num_exp *exp = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8, &no, 0));
4777 exp->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4778 exp->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4779 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_num_exp_free), &exp);
4780 }
4781 #line 4782 "src/parser_proc.c" /* glr.c:821 */
4782 break;
4783
4784 case 345:
4785 #line 722 "src/parser_proc_grammar.y" /* glr.c:821 */
4786 {
4787 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_num_exp_free),
4788 &(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4789 }
4790 #line 4791 "src/parser_proc.c" /* glr.c:821 */
4791 break;
4792
4793 case 346:
4794 #line 726 "src/parser_proc_grammar.y" /* glr.c:821 */
4795 {
4796 (*(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)));
4797 }
4798 #line 4799 "src/parser_proc.c" /* glr.c:821 */
4799 break;
4800
4801 case 347:
4802 #line 732 "src/parser_proc_grammar.y" /* glr.c:821 */
4803 {
4804 (*(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)));
4805 (*(struct psi_const **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4806 }
4807 #line 4808 "src/parser_proc.c" /* glr.c:821 */
4808 break;
4809
4810 case 348:
4811 #line 736 "src/parser_proc_grammar.y" /* glr.c:821 */
4812 {
4813 (*(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)));
4814 (*(struct psi_const **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4815 }
4816 #line 4817 "src/parser_proc.c" /* glr.c:821 */
4817 break;
4818
4819 case 349:
4820 #line 743 "src/parser_proc_grammar.y" /* glr.c:821 */
4821 {
4822 (*(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);
4823 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4824 }
4825 #line 4826 "src/parser_proc.c" /* glr.c:821 */
4826 break;
4827
4828 case 350:
4829 #line 747 "src/parser_proc_grammar.y" /* glr.c:821 */
4830 {
4831 (*(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)));
4832 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4833 }
4834 #line 4835 "src/parser_proc.c" /* glr.c:821 */
4835 break;
4836
4837 case 351:
4838 #line 751 "src/parser_proc_grammar.y" /* glr.c:821 */
4839 {
4840 (*(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);
4841 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4842 }
4843 #line 4844 "src/parser_proc.c" /* glr.c:821 */
4844 break;
4845
4846 case 355:
4847 #line 764 "src/parser_proc_grammar.y" /* glr.c:821 */
4848 {
4849 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4850 }
4851 #line 4852 "src/parser_proc.c" /* glr.c:821 */
4852 break;
4853
4854 case 356:
4855 #line 778 "src/parser_proc_grammar.y" /* glr.c:821 */
4856 {
4857 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4858 }
4859 #line 4860 "src/parser_proc.c" /* glr.c:821 */
4860 break;
4861
4862 case 357:
4863 #line 784 "src/parser_proc_grammar.y" /* glr.c:821 */
4864 {
4865 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4866 }
4867 #line 4868 "src/parser_proc.c" /* glr.c:821 */
4868 break;
4869
4870 case 358:
4871 #line 787 "src/parser_proc_grammar.y" /* glr.c:821 */
4872 {
4873 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4874 }
4875 #line 4876 "src/parser_proc.c" /* glr.c:821 */
4876 break;
4877
4878 case 359:
4879 #line 793 "src/parser_proc_grammar.y" /* glr.c:821 */
4880 {
4881 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4882 }
4883 #line 4884 "src/parser_proc.c" /* glr.c:821 */
4884 break;
4885
4886 case 360:
4887 #line 796 "src/parser_proc_grammar.y" /* glr.c:821 */
4888 {
4889 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4890 }
4891 #line 4892 "src/parser_proc.c" /* glr.c:821 */
4892 break;
4893
4894 case 362:
4895 #line 803 "src/parser_proc_grammar.y" /* glr.c:821 */
4896 {
4897 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
4898 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
4899 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
4900 );
4901 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
4902 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4903 }
4904 #line 4905 "src/parser_proc.c" /* glr.c:821 */
4905 break;
4906
4907 case 363:
4908 #line 811 "src/parser_proc_grammar.y" /* glr.c:821 */
4909 {
4910 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4911 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
4912 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->name),
4913 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0, 0)
4914 );
4915 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4916 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->token);
4917 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4918 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4919 }
4920 #line 4921 "src/parser_proc.c" /* glr.c:821 */
4921 break;
4922
4923 case 364:
4924 #line 822 "src/parser_proc_grammar.y" /* glr.c:821 */
4925 {
4926 (*(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)));
4927 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
4928 (*(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)));
4929 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4930 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
4931 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
4932 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
4933 }
4934 #line 4935 "src/parser_proc.c" /* glr.c:821 */
4935 break;
4936
4937 case 365:
4938 #line 831 "src/parser_proc_grammar.y" /* glr.c:821 */
4939 {
4940 (*(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)));
4941 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
4942 (*(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)));
4943 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4944 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
4945 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
4946 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
4947 }
4948 #line 4949 "src/parser_proc.c" /* glr.c:821 */
4949 break;
4950
4951 case 367:
4952 #line 844 "src/parser_proc_grammar.y" /* glr.c:821 */
4953 {
4954 (*(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));
4955 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4956 }
4957 #line 4958 "src/parser_proc.c" /* glr.c:821 */
4958 break;
4959
4960 case 368:
4961 #line 848 "src/parser_proc_grammar.y" /* glr.c:821 */
4962 {
4963 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
4964 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->name),
4965 psi_decl_var_init(NULL, 0, 0)
4966 );
4967 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4968 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4969 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4970 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4971 }
4972 #line 4973 "src/parser_proc.c" /* glr.c:821 */
4973 break;
4974
4975 case 369:
4976 #line 858 "src/parser_proc_grammar.y" /* glr.c:821 */
4977 {
4978 (*(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));
4979 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4980 (*(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)));
4981 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4982 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
4983 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
4984 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
4985 }
4986 #line 4987 "src/parser_proc.c" /* glr.c:821 */
4987 break;
4988
4989 case 370:
4990 #line 867 "src/parser_proc_grammar.y" /* glr.c:821 */
4991 {
4992 (*(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));
4993 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4994 (*(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)));
4995 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4996 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
4997 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
4998 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
4999 }
5000 #line 5001 "src/parser_proc.c" /* glr.c:821 */
5001 break;
5002
5003 case 372:
5004 #line 880 "src/parser_proc_grammar.y" /* glr.c:821 */
5005 {
5006 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5007 }
5008 #line 5009 "src/parser_proc.c" /* glr.c:821 */
5009 break;
5010
5011 case 373:
5012 #line 883 "src/parser_proc_grammar.y" /* glr.c:821 */
5013 {
5014 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5015 }
5016 #line 5017 "src/parser_proc.c" /* glr.c:821 */
5017 break;
5018
5019 case 376:
5020 #line 894 "src/parser_proc_grammar.y" /* glr.c:821 */
5021 {
5022 (*(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);
5023 (*(struct psi_decl_type **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5024 }
5025 #line 5026 "src/parser_proc.c" /* glr.c:821 */
5026 break;
5027
5028 case 378:
5029 #line 902 "src/parser_proc_grammar.y" /* glr.c:821 */
5030 {
5031 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5032 (*(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);
5033 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5034 }
5035 #line 5036 "src/parser_proc.c" /* glr.c:821 */
5036 break;
5037
5038 case 379:
5039 #line 907 "src/parser_proc_grammar.y" /* glr.c:821 */
5040 {
5041 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5042 (*(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);
5043 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5044 }
5045 #line 5046 "src/parser_proc.c" /* glr.c:821 */
5046 break;
5047
5048 case 380:
5049 #line 912 "src/parser_proc_grammar.y" /* glr.c:821 */
5050 {
5051 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5052 (*(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);
5053 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5054 }
5055 #line 5056 "src/parser_proc.c" /* glr.c:821 */
5056 break;
5057
5058 case 383:
5059 #line 922 "src/parser_proc_grammar.y" /* glr.c:821 */
5060 {
5061 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5062 }
5063 #line 5064 "src/parser_proc.c" /* glr.c:821 */
5064 break;
5065
5066 case 384:
5067 #line 925 "src/parser_proc_grammar.y" /* glr.c:821 */
5068 {
5069 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5070 }
5071 #line 5072 "src/parser_proc.c" /* glr.c:821 */
5072 break;
5073
5074 case 385:
5075 #line 931 "src/parser_proc_grammar.y" /* glr.c:821 */
5076 {
5077 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5078 }
5079 #line 5080 "src/parser_proc.c" /* glr.c:821 */
5080 break;
5081
5082 case 386:
5083 #line 934 "src/parser_proc_grammar.y" /* glr.c:821 */
5084 {
5085 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5086 }
5087 #line 5088 "src/parser_proc.c" /* glr.c:821 */
5088 break;
5089
5090 case 387:
5091 #line 937 "src/parser_proc_grammar.y" /* glr.c:821 */
5092 {
5093 (*(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)));
5094 }
5095 #line 5096 "src/parser_proc.c" /* glr.c:821 */
5096 break;
5097
5098 case 390:
5099 #line 948 "src/parser_proc_grammar.y" /* glr.c:821 */
5100 {
5101 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5102 }
5103 #line 5104 "src/parser_proc.c" /* glr.c:821 */
5104 break;
5105
5106 case 391:
5107 #line 951 "src/parser_proc_grammar.y" /* glr.c:821 */
5108 {
5109 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5110 }
5111 #line 5112 "src/parser_proc.c" /* glr.c:821 */
5112 break;
5113
5114 case 392:
5115 #line 954 "src/parser_proc_grammar.y" /* glr.c:821 */
5116 {
5117 (*(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)));
5118 }
5119 #line 5120 "src/parser_proc.c" /* glr.c:821 */
5120 break;
5121
5122 case 393:
5123 #line 960 "src/parser_proc_grammar.y" /* glr.c:821 */
5124 {
5125 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5126 }
5127 #line 5128 "src/parser_proc.c" /* glr.c:821 */
5128 break;
5129
5130 case 394:
5131 #line 963 "src/parser_proc_grammar.y" /* glr.c:821 */
5132 {
5133 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5134 }
5135 #line 5136 "src/parser_proc.c" /* glr.c:821 */
5136 break;
5137
5138 case 395:
5139 #line 966 "src/parser_proc_grammar.y" /* glr.c:821 */
5140 {
5141 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5142 (*(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)));
5143 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5144 } else {
5145 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5146 }
5147 }
5148 #line 5149 "src/parser_proc.c" /* glr.c:821 */
5149 break;
5150
5151 case 396:
5152 #line 974 "src/parser_proc_grammar.y" /* glr.c:821 */
5153 {
5154 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5155 (*(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)));
5156 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5157 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5158 } else {
5159 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5160 }
5161 }
5162 #line 5163 "src/parser_proc.c" /* glr.c:821 */
5163 break;
5164
5165 case 397:
5166 #line 986 "src/parser_proc_grammar.y" /* glr.c:821 */
5167 {
5168 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5169 }
5170 #line 5171 "src/parser_proc.c" /* glr.c:821 */
5171 break;
5172
5173 case 398:
5174 #line 989 "src/parser_proc_grammar.y" /* glr.c:821 */
5175 {
5176 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5177 }
5178 #line 5179 "src/parser_proc.c" /* glr.c:821 */
5179 break;
5180
5181 case 399:
5182 #line 992 "src/parser_proc_grammar.y" /* glr.c:821 */
5183 {
5184 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5185 }
5186 #line 5187 "src/parser_proc.c" /* glr.c:821 */
5187 break;
5188
5189 case 400:
5190 #line 995 "src/parser_proc_grammar.y" /* glr.c:821 */
5191 {
5192 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5193 (*(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)));
5194 } else {
5195 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5196 }
5197 }
5198 #line 5199 "src/parser_proc.c" /* glr.c:821 */
5199 break;
5200
5201 case 401:
5202 #line 1002 "src/parser_proc_grammar.y" /* glr.c:821 */
5203 {
5204 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5205 }
5206 #line 5207 "src/parser_proc.c" /* glr.c:821 */
5207 break;
5208
5209 case 402:
5210 #line 1005 "src/parser_proc_grammar.y" /* glr.c:821 */
5211 {
5212 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5213 (*(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)));
5214 } else {
5215 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5216 }
5217 }
5218 #line 5219 "src/parser_proc.c" /* glr.c:821 */
5219 break;
5220
5221 case 403:
5222 #line 1015 "src/parser_proc_grammar.y" /* glr.c:821 */
5223 {
5224 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5225 }
5226 #line 5227 "src/parser_proc.c" /* glr.c:821 */
5227 break;
5228
5229 case 405:
5230 #line 1021 "src/parser_proc_grammar.y" /* glr.c:821 */
5231 {
5232 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5233 }
5234 #line 5235 "src/parser_proc.c" /* glr.c:821 */
5235 break;
5236
5237 case 409:
5238 #line 1030 "src/parser_proc_grammar.y" /* glr.c:821 */
5239 {
5240 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5241 }
5242 #line 5243 "src/parser_proc.c" /* glr.c:821 */
5243 break;
5244
5245 case 410:
5246 #line 1033 "src/parser_proc_grammar.y" /* glr.c:821 */
5247 {
5248 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5249 }
5250 #line 5251 "src/parser_proc.c" /* glr.c:821 */
5251 break;
5252
5253 case 411:
5254 #line 1036 "src/parser_proc_grammar.y" /* glr.c:821 */
5255 {
5256 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5257 (*(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)));
5258 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5259 } else {
5260 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5261 }
5262 }
5263 #line 5264 "src/parser_proc.c" /* glr.c:821 */
5264 break;
5265
5266 case 412:
5267 #line 1047 "src/parser_proc_grammar.y" /* glr.c:821 */
5268 {
5269 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5270 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5271 (*(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);
5272 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5273 }
5274 }
5275 #line 5276 "src/parser_proc.c" /* glr.c:821 */
5276 break;
5277
5278 case 413:
5279 #line 1054 "src/parser_proc_grammar.y" /* glr.c:821 */
5280 {
5281 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5282 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5283 (*(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);
5284 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5285 }
5286 }
5287 #line 5288 "src/parser_proc.c" /* glr.c:821 */
5288 break;
5289
5290 case 414:
5291 #line 1064 "src/parser_proc_grammar.y" /* glr.c:821 */
5292 {
5293 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5294 }
5295 #line 5296 "src/parser_proc.c" /* glr.c:821 */
5296 break;
5297
5298 case 415:
5299 #line 1067 "src/parser_proc_grammar.y" /* glr.c:821 */
5300 {
5301 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5302 }
5303 #line 5304 "src/parser_proc.c" /* glr.c:821 */
5304 break;
5305
5306 case 416:
5307 #line 1073 "src/parser_proc_grammar.y" /* glr.c:821 */
5308 {
5309 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5310 }
5311 #line 5312 "src/parser_proc.c" /* glr.c:821 */
5312 break;
5313
5314 case 417:
5315 #line 1076 "src/parser_proc_grammar.y" /* glr.c:821 */
5316 {
5317 (*(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)));
5318 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5319 }
5320 #line 5321 "src/parser_proc.c" /* glr.c:821 */
5321 break;
5322
5323 case 418:
5324 #line 1083 "src/parser_proc_grammar.y" /* glr.c:821 */
5325 {
5326 struct psi_plist *list = psi_plist_init((psi_plist_dtor) psi_decl_extvar_free);
5327
5328 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))) {
5329 size_t i = 0;
5330 struct psi_decl_var *var;
5331
5332 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), i++, &var)) {
5333 if (psi_decl_extvar_is_blacklisted(var->name->val)) {
5334 psi_decl_var_free(&var);
5335 } else {
5336 struct psi_decl_extvar *evar = psi_decl_extvar_init(
5337 psi_decl_arg_init(psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type), var));
5338 list = psi_plist_add(list, &evar);
5339 }
5340 }
5341 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5342 }
5343
5344 if (psi_decl_extvar_is_blacklisted((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->var->name->val)) {
5345 psi_decl_arg_free(&(*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5346 } else {
5347 struct psi_decl_extvar *evar = psi_decl_extvar_init((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5348
5349 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5350 evar->redir = zend_string_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
5351 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5352 }
5353 list = psi_plist_add(list, &evar);
5354 }
5355
5356 (*(struct psi_plist **)(&(*yyvalp))) = list;
5357 }
5358 #line 5359 "src/parser_proc.c" /* glr.c:821 */
5359 break;
5360
5361 case 419:
5362 #line 1119 "src/parser_proc_grammar.y" /* glr.c:821 */
5363 {
5364 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5365 }
5366 #line 5367 "src/parser_proc.c" /* glr.c:821 */
5367 break;
5368
5369 case 420:
5370 #line 1122 "src/parser_proc_grammar.y" /* glr.c:821 */
5371 {
5372 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5373 }
5374 #line 5375 "src/parser_proc.c" /* glr.c:821 */
5375 break;
5376
5377 case 421:
5378 #line 1128 "src/parser_proc_grammar.y" /* glr.c:821 */
5379 {
5380 (*(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)));
5381 }
5382 #line 5383 "src/parser_proc.c" /* glr.c:821 */
5383 break;
5384
5385 case 422:
5386 #line 1131 "src/parser_proc_grammar.y" /* glr.c:821 */
5387 {
5388 (*(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)));
5389 }
5390 #line 5391 "src/parser_proc.c" /* glr.c:821 */
5391 break;
5392
5393 case 423:
5394 #line 1137 "src/parser_proc_grammar.y" /* glr.c:821 */
5395 {
5396 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5397 }
5398 #line 5399 "src/parser_proc.c" /* glr.c:821 */
5399 break;
5400
5401 case 436:
5402 #line 1167 "src/parser_proc_grammar.y" /* glr.c:821 */
5403 {
5404 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5405 (*(struct psi_decl **)(&(*yyvalp)))->abi = psi_decl_abi_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
5406 }
5407 #line 5408 "src/parser_proc.c" /* glr.c:821 */
5408 break;
5409
5410 case 439:
5411 #line 1179 "src/parser_proc_grammar.y" /* glr.c:821 */
5412 {
5413 (*(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)));
5414 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5415 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5416 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5417 }
5418 }
5419 #line 5420 "src/parser_proc.c" /* glr.c:821 */
5420 break;
5421
5422 case 440:
5423 #line 1186 "src/parser_proc_grammar.y" /* glr.c:821 */
5424 {
5425 (*(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)));
5426 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
5427 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5428 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5429 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5430 }
5431 }
5432 #line 5433 "src/parser_proc.c" /* glr.c:821 */
5433 break;
5434
5435 case 441:
5436 #line 1197 "src/parser_proc_grammar.y" /* glr.c:821 */
5437 {
5438 (*(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)));
5439 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5440 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5441 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5442 }
5443 }
5444 #line 5445 "src/parser_proc.c" /* glr.c:821 */
5445 break;
5446
5447 case 442:
5448 #line 1204 "src/parser_proc_grammar.y" /* glr.c:821 */
5449 {
5450 (*(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)));
5451 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
5452 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5453 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5454 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5455 }
5456 }
5457 #line 5458 "src/parser_proc.c" /* glr.c:821 */
5458 break;
5459
5460 case 443:
5461 #line 1212 "src/parser_proc_grammar.y" /* glr.c:821 */
5462 {
5463 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval));
5464 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5465
5466 struct psi_token *type_token = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval))), 1, "rval");
5467 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));
5468 struct psi_decl *rval_decl = psi_decl_init(rval_func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5469
5470 rval_func->var->token = psi_token_copy(type_token);
5471 rval_func->token = psi_token_copy(type_token);
5472 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5473 rval_func->var->pointer_level += 1;
5474 rval_func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5475 }
5476
5477 struct psi_decl_type *type = psi_decl_type_init(PSI_T_FUNCTION, type_token->text);
5478 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));
5479
5480 type->real.func = rval_decl;
5481 func->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval)));
5482 func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval)));
5483
5484 (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init(func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
5485 }
5486 #line 5487 "src/parser_proc.c" /* glr.c:821 */
5487 break;
5488
5489 case 444:
5490 #line 1236 "src/parser_proc_grammar.y" /* glr.c:821 */
5491 {
5492 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-12)].yystate.yysemantics.yysval));
5493 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval));
5494 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5495
5496 struct psi_token *type_token = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval))), 1, "rval");
5497 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));
5498 struct psi_decl *rval_decl = psi_decl_init(rval_func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5499
5500 rval_func->var->token = psi_token_copy(type_token);
5501 rval_func->token = psi_token_copy(type_token);
5502 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5503 rval_func->var->pointer_level += 1;
5504 rval_func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5505 }
5506
5507 struct psi_decl_type *type = psi_decl_type_init(PSI_T_FUNCTION, type_token->text);
5508 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));
5509
5510 type->real.func = rval_decl;
5511 func->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval)));
5512 func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval)));
5513 type->token = type_token;
5514
5515 (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init(func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
5516 }
5517 #line 5518 "src/parser_proc.c" /* glr.c:821 */
5518 break;
5519
5520 case 445:
5521 #line 1265 "src/parser_proc_grammar.y" /* glr.c:821 */
5522 {
5523 (*(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)));
5524 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5525 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5526 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5527 }
5528 }
5529 #line 5530 "src/parser_proc.c" /* glr.c:821 */
5530 break;
5531
5532 case 446:
5533 #line 1272 "src/parser_proc_grammar.y" /* glr.c:821 */
5534 {
5535 (*(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)));
5536 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
5537 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5538 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5539 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5540 }
5541 }
5542 #line 5543 "src/parser_proc.c" /* glr.c:821 */
5543 break;
5544
5545 case 447:
5546 #line 1283 "src/parser_proc_grammar.y" /* glr.c:821 */
5547 {
5548 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5549 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5550 (*(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));
5551 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5552 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5553 }
5554 #line 5555 "src/parser_proc.c" /* glr.c:821 */
5555 break;
5556
5557 case 448:
5558 #line 1329 "src/parser_proc_grammar.y" /* glr.c:821 */
5559 {
5560 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5561 (*(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));
5562 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5563 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5564 }
5565 #line 5566 "src/parser_proc.c" /* glr.c:821 */
5566 break;
5567
5568 case 450:
5569 #line 1385 "src/parser_proc_grammar.y" /* glr.c:821 */
5570 {
5571 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5572 }
5573 #line 5574 "src/parser_proc.c" /* glr.c:821 */
5574 break;
5575
5576 case 451:
5577 #line 1388 "src/parser_proc_grammar.y" /* glr.c:821 */
5578 {
5579 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5580 }
5581 #line 5582 "src/parser_proc.c" /* glr.c:821 */
5582 break;
5583
5584 case 452:
5585 #line 1391 "src/parser_proc_grammar.y" /* glr.c:821 */
5586 {
5587 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5588 }
5589 #line 5590 "src/parser_proc.c" /* glr.c:821 */
5590 break;
5591
5592 case 453:
5593 #line 1397 "src/parser_proc_grammar.y" /* glr.c:821 */
5594 {
5595 (*(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)));
5596 }
5597 #line 5598 "src/parser_proc.c" /* glr.c:821 */
5598 break;
5599
5600 case 454:
5601 #line 1400 "src/parser_proc_grammar.y" /* glr.c:821 */
5602 {
5603 (*(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)));
5604 }
5605 #line 5606 "src/parser_proc.c" /* glr.c:821 */
5606 break;
5607
5608 case 455:
5609 #line 1406 "src/parser_proc_grammar.y" /* glr.c:821 */
5610 {
5611 char digest[17];
5612 struct psi_token *name;
5613
5614 psi_token_hash((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token, digest);
5615 name = psi_token_append("@", psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token), 2, "funct", digest);
5616
5617 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5618 psi_decl_type_init(PSI_T_FUNCTION, name->text),
5619 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
5620 );
5621 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = name;
5622 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
5623 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5624 }
5625 #line 5626 "src/parser_proc.c" /* glr.c:821 */
5626 break;
5627
5628 case 456:
5629 #line 1421 "src/parser_proc_grammar.y" /* glr.c:821 */
5630 {
5631 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5632 }
5633 #line 5634 "src/parser_proc.c" /* glr.c:821 */
5634 break;
5635
5636 case 457:
5637 #line 1424 "src/parser_proc_grammar.y" /* glr.c:821 */
5638 {
5639 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5640 (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)),
5641 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)))
5642 );
5643 }
5644 #line 5645 "src/parser_proc.c" /* glr.c:821 */
5645 break;
5646
5647 case 458:
5648 #line 1453 "src/parser_proc_grammar.y" /* glr.c:821 */
5649 {
5650 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5651 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
5652 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
5653 );
5654 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
5655 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5656 }
5657 #line 5658 "src/parser_proc.c" /* glr.c:821 */
5658 break;
5659
5660 case 459:
5661 #line 1461 "src/parser_proc_grammar.y" /* glr.c:821 */
5662 {
5663 (*(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)));
5664 }
5665 #line 5666 "src/parser_proc.c" /* glr.c:821 */
5666 break;
5667
5668 case 460:
5669 #line 1489 "src/parser_proc_grammar.y" /* glr.c:821 */
5670 {
5671 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5672 (*(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)));
5673 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5674 }
5675 #line 5676 "src/parser_proc.c" /* glr.c:821 */
5676 break;
5677
5678 case 461:
5679 #line 1494 "src/parser_proc_grammar.y" /* glr.c:821 */
5680 {
5681 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5682 (*(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)));
5683 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5684 }
5685 #line 5686 "src/parser_proc.c" /* glr.c:821 */
5686 break;
5687
5688 case 462:
5689 #line 1502 "src/parser_proc_grammar.y" /* glr.c:821 */
5690 {
5691 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5692 (*(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)));
5693 (*(struct psi_decl_union **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
5694 (*(struct psi_decl_union **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
5695 (*(struct psi_decl_union **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5696 }
5697 #line 5698 "src/parser_proc.c" /* glr.c:821 */
5698 break;
5699
5700 case 463:
5701 #line 1512 "src/parser_proc_grammar.y" /* glr.c:821 */
5702 {
5703 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5704 (*(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)));
5705 (*(struct psi_decl_struct **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
5706 (*(struct psi_decl_struct **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
5707 (*(struct psi_decl_struct **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5708 }
5709 #line 5710 "src/parser_proc.c" /* glr.c:821 */
5710 break;
5711
5712 case 464:
5713 #line 1522 "src/parser_proc_grammar.y" /* glr.c:821 */
5714 {
5715 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5716 }
5717 #line 5718 "src/parser_proc.c" /* glr.c:821 */
5718 break;
5719
5720 case 466:
5721 #line 1529 "src/parser_proc_grammar.y" /* glr.c:821 */
5722 {
5723 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5724 }
5725 #line 5726 "src/parser_proc.c" /* glr.c:821 */
5726 break;
5727
5728 case 467:
5729 #line 1535 "src/parser_proc_grammar.y" /* glr.c:821 */
5730 {
5731 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5732 (*(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)));
5733 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5734 size_t i = 0;
5735 struct psi_decl_arg *arg;
5736
5737 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
5738 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
5739 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
5740 }
5741 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5742 }
5743 }
5744 #line 5745 "src/parser_proc.c" /* glr.c:821 */
5745 break;
5746
5747 case 468:
5748 #line 1549 "src/parser_proc_grammar.y" /* glr.c:821 */
5749 {
5750 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5751 (*(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)));
5752 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5753 size_t i = 0;
5754 struct psi_decl_arg *arg;
5755
5756 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
5757 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
5758 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
5759 }
5760 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5761 }
5762 }
5763 #line 5764 "src/parser_proc.c" /* glr.c:821 */
5764 break;
5765
5766 case 469:
5767 #line 1566 "src/parser_proc_grammar.y" /* glr.c:821 */
5768 {
5769 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5770 }
5771 #line 5772 "src/parser_proc.c" /* glr.c:821 */
5772 break;
5773
5774 case 470:
5775 #line 1569 "src/parser_proc_grammar.y" /* glr.c:821 */
5776 {
5777 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5778 }
5779 #line 5780 "src/parser_proc.c" /* glr.c:821 */
5780 break;
5781
5782 case 471:
5783 #line 1575 "src/parser_proc_grammar.y" /* glr.c:821 */
5784 {
5785 {
5786 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5787 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5788 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &arg);
5789 }
5790 }
5791 #line 5792 "src/parser_proc.c" /* glr.c:821 */
5792 break;
5793
5794 case 472:
5795 #line 1582 "src/parser_proc_grammar.y" /* glr.c:821 */
5796 {
5797 {
5798 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5799 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5800 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), &arg);
5801 }
5802 }
5803 #line 5804 "src/parser_proc.c" /* glr.c:821 */
5804 break;
5805
5806 case 473:
5807 #line 1589 "src/parser_proc_grammar.y" /* glr.c:821 */
5808 {
5809 {
5810 struct psi_decl_var *var = psi_decl_var_init(NULL, 0, 0);
5811 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, var);
5812 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5813 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &arg);
5814 }
5815 }
5816 #line 5817 "src/parser_proc.c" /* glr.c:821 */
5817 break;
5818
5819 case 474:
5820 #line 1597 "src/parser_proc_grammar.y" /* glr.c:821 */
5821 {
5822 {
5823 struct psi_decl_var *var = psi_decl_var_init(NULL, 0, 0);
5824 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, var);
5825 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5826 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &arg);
5827 }
5828 }
5829 #line 5830 "src/parser_proc.c" /* glr.c:821 */
5830 break;
5831
5832 case 475:
5833 #line 1608 "src/parser_proc_grammar.y" /* glr.c:821 */
5834 {
5835 (*(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)));
5836 (*(struct psi_decl_enum **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval));
5837 }
5838 #line 5839 "src/parser_proc.c" /* glr.c:821 */
5839 break;
5840
5841 case 476:
5842 #line 1615 "src/parser_proc_grammar.y" /* glr.c:821 */
5843 {
5844 (*(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)));
5845 }
5846 #line 5847 "src/parser_proc.c" /* glr.c:821 */
5847 break;
5848
5849 case 477:
5850 #line 1618 "src/parser_proc_grammar.y" /* glr.c:821 */
5851 {
5852 (*(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)));
5853 }
5854 #line 5855 "src/parser_proc.c" /* glr.c:821 */
5855 break;
5856
5857 case 478:
5858 #line 1624 "src/parser_proc_grammar.y" /* glr.c:821 */
5859 {
5860 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5861 (*(struct psi_decl_enum_item **)(&(*yyvalp))) = psi_decl_enum_item_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, NULL);
5862 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5863 }
5864 #line 5865 "src/parser_proc.c" /* glr.c:821 */
5865 break;
5866
5867 case 479:
5868 #line 1629 "src/parser_proc_grammar.y" /* glr.c:821 */
5869 {
5870 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5871 (*(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)));
5872 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5873 }
5874 #line 5875 "src/parser_proc.c" /* glr.c:821 */
5875 break;
5876
5877 case 480:
5878 #line 1637 "src/parser_proc_grammar.y" /* glr.c:821 */
5879 {
5880 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5881 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
5882 }
5883 #line 5884 "src/parser_proc.c" /* glr.c:821 */
5884 break;
5885
5886 case 481:
5887 #line 1641 "src/parser_proc_grammar.y" /* glr.c:821 */
5888 {
5889 (*(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)));
5890 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->token);
5891 }
5892 #line 5893 "src/parser_proc.c" /* glr.c:821 */
5893 break;
5894
5895 case 482:
5896 #line 1645 "src/parser_proc_grammar.y" /* glr.c:821 */
5897 {
5898 (*(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)));
5899 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5900 }
5901 #line 5902 "src/parser_proc.c" /* glr.c:821 */
5902 break;
5903
5904 case 483:
5905 #line 1649 "src/parser_proc_grammar.y" /* glr.c:821 */
5906 {
5907 (*(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)));
5908 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5909 }
5910 #line 5911 "src/parser_proc.c" /* glr.c:821 */
5911 break;
5912
5913 case 484:
5914 #line 1653 "src/parser_proc_grammar.y" /* glr.c:821 */
5915 {
5916 (*(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)));
5917 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5918 }
5919 #line 5920 "src/parser_proc.c" /* glr.c:821 */
5920 break;
5921
5922 case 485:
5923 #line 1657 "src/parser_proc_grammar.y" /* glr.c:821 */
5924 {
5925 (*(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)));
5926 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5927 }
5928 #line 5929 "src/parser_proc.c" /* glr.c:821 */
5929 break;
5930
5931 case 486:
5932 #line 1664 "src/parser_proc_grammar.y" /* glr.c:821 */
5933 {
5934 (*(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);
5935 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5936 }
5937 #line 5938 "src/parser_proc.c" /* glr.c:821 */
5938 break;
5939
5940 case 487:
5941 #line 1668 "src/parser_proc_grammar.y" /* glr.c:821 */
5942 {
5943 (*(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);
5944 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5945 }
5946 #line 5947 "src/parser_proc.c" /* glr.c:821 */
5947 break;
5948
5949 case 488:
5950 #line 1672 "src/parser_proc_grammar.y" /* glr.c:821 */
5951 {
5952 (*(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);
5953 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5954 }
5955 #line 5956 "src/parser_proc.c" /* glr.c:821 */
5956 break;
5957
5958 case 489:
5959 #line 1676 "src/parser_proc_grammar.y" /* glr.c:821 */
5960 {
5961 (*(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);
5962 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5963 }
5964 #line 5965 "src/parser_proc.c" /* glr.c:821 */
5965 break;
5966
5967 case 490:
5968 #line 1680 "src/parser_proc_grammar.y" /* glr.c:821 */
5969 {
5970 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_NAME, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0);
5971 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
5972 }
5973 #line 5974 "src/parser_proc.c" /* glr.c:821 */
5974 break;
5975
5976 case 491:
5977 #line 1684 "src/parser_proc_grammar.y" /* glr.c:821 */
5978 {
5979 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5980 }
5981 #line 5982 "src/parser_proc.c" /* glr.c:821 */
5982 break;
5983
5984 case 492:
5985 #line 1690 "src/parser_proc_grammar.y" /* glr.c:821 */
5986 {
5987 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5988 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5989 }
5990 #line 5991 "src/parser_proc.c" /* glr.c:821 */
5991 break;
5992
5993 case 493:
5994 #line 1694 "src/parser_proc_grammar.y" /* glr.c:821 */
5995 {
5996 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5997 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5998 }
5999 #line 6000 "src/parser_proc.c" /* glr.c:821 */
6000 break;
6001
6002 case 494:
6003 #line 1701 "src/parser_proc_grammar.y" /* glr.c:821 */
6004 {
6005 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6006 }
6007 #line 6008 "src/parser_proc.c" /* glr.c:821 */
6008 break;
6009
6010 case 495:
6011 #line 1704 "src/parser_proc_grammar.y" /* glr.c:821 */
6012 {
6013 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
6014 int8_t sizeof_void_p = sizeof(void *);
6015 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0);
6016 psi_decl_type_free(&(*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6017 } else {
6018 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_SIZEOF, (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), 0);
6019 }
6020 }
6021 #line 6022 "src/parser_proc.c" /* glr.c:821 */
6022 break;
6023
6024 case 496:
6025 #line 1716 "src/parser_proc_grammar.y" /* glr.c:821 */
6026 {
6027 int8_t sizeof_void_p = sizeof(void *);
6028 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0);
6029 }
6030 #line 6031 "src/parser_proc.c" /* glr.c:821 */
6031 break;
6032
6033 case 497:
6034 #line 1720 "src/parser_proc_grammar.y" /* glr.c:821 */
6035 {
6036 int8_t sizeof_a = sizeof('a');
6037 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_a, 0);
6038 }
6039 #line 6040 "src/parser_proc.c" /* glr.c:821 */
6040 break;
6041
6042 case 498:
6043 #line 1724 "src/parser_proc_grammar.y" /* glr.c:821 */
6044 {
6045 uint64_t len = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text->len + 1;
6046 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_UINT64, &len, 0);
6047 }
6048 #line 6049 "src/parser_proc.c" /* glr.c:821 */
6049 break;
6050
6051 case 499:
6052 #line 1731 "src/parser_proc_grammar.y" /* glr.c:821 */
6053 {
6054 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
6055 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6056 } else {
6057 char digest[17];
6058
6059 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
6060 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
6061 }
6062 }
6063 #line 6064 "src/parser_proc.c" /* glr.c:821 */
6064 break;
6065
6066 case 500:
6067 #line 1744 "src/parser_proc_grammar.y" /* glr.c:821 */
6068 {
6069 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
6070 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6071 } else {
6072 char digest[17];
6073
6074 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
6075 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
6076 }
6077 }
6078 #line 6079 "src/parser_proc.c" /* glr.c:821 */
6079 break;
6080
6081 case 501:
6082 #line 1757 "src/parser_proc_grammar.y" /* glr.c:821 */
6083 {
6084 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
6085 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6086 } else {
6087 char digest[17];
6088
6089 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
6090 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
6091 }
6092 }
6093 #line 6094 "src/parser_proc.c" /* glr.c:821 */
6094 break;
6095
6096 case 502:
6097 #line 1770 "src/parser_proc_grammar.y" /* glr.c:821 */
6098 {
6099 (*(struct psi_token **)(&(*yyvalp))) = NULL;
6100 }
6101 #line 6102 "src/parser_proc.c" /* glr.c:821 */
6102 break;
6103
6104 case 503:
6105 #line 1773 "src/parser_proc_grammar.y" /* glr.c:821 */
6106 {
6107 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6108 (*(struct psi_token **)(&(*yyvalp)))->type = PSI_T_NAME;
6109 }
6110 #line 6111 "src/parser_proc.c" /* glr.c:821 */
6111 break;
6112
6113 case 506:
6114 #line 1785 "src/parser_proc_grammar.y" /* glr.c:821 */
6115 {
6116 (*(struct psi_layout **)(&(*yyvalp))) = NULL;
6117 }
6118 #line 6119 "src/parser_proc.c" /* glr.c:821 */
6119 break;
6120
6121 case 507:
6122 #line 1788 "src/parser_proc_grammar.y" /* glr.c:821 */
6123 {
6124 (*(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));
6125 }
6126 #line 6127 "src/parser_proc.c" /* glr.c:821 */
6127 break;
6128
6129 case 508:
6130 #line 1791 "src/parser_proc_grammar.y" /* glr.c:821 */
6131 {
6132 (*(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);
6133 }
6134 #line 6135 "src/parser_proc.c" /* glr.c:821 */
6135 break;
6136
6137 case 509:
6138 #line 1794 "src/parser_proc_grammar.y" /* glr.c:821 */
6139 {
6140 (*(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));
6141 }
6142 #line 6143 "src/parser_proc.c" /* glr.c:821 */
6143 break;
6144
6145 case 510:
6146 #line 1800 "src/parser_proc_grammar.y" /* glr.c:821 */
6147 {
6148 (*(struct psi_layout*)(&(*yyvalp))).pos = 0;
6149 (*(struct psi_layout*)(&(*yyvalp))).len = 0;
6150 }
6151 #line 6152 "src/parser_proc.c" /* glr.c:821 */
6152 break;
6153
6154 case 511:
6155 #line 1804 "src/parser_proc_grammar.y" /* glr.c:821 */
6156 {
6157 (*(struct psi_layout*)(&(*yyvalp))).pos = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text->val);
6158 (*(struct psi_layout*)(&(*yyvalp))).len = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text->val);
6159 }
6160 #line 6161 "src/parser_proc.c" /* glr.c:821 */
6161 break;
6162
6163 case 512:
6164 #line 1811 "src/parser_proc_grammar.y" /* glr.c:821 */
6165 {
6166 (*(size_t*)(&(*yyvalp))) = 0;
6167 }
6168 #line 6169 "src/parser_proc.c" /* glr.c:821 */
6169 break;
6170
6171 case 513:
6172 #line 1814 "src/parser_proc_grammar.y" /* glr.c:821 */
6173 {
6174 (*(size_t*)(&(*yyvalp))) = 0;
6175 }
6176 #line 6177 "src/parser_proc.c" /* glr.c:821 */
6177 break;
6178
6179 case 514:
6180 #line 1817 "src/parser_proc_grammar.y" /* glr.c:821 */
6181 {
6182 struct psi_validate_scope scope = {0};
6183 psi_validate_scope_ctor(&scope);
6184 scope.cpp = P->preproc;
6185 if (psi_num_exp_validate(PSI_DATA(P), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), &scope)) {
6186 (*(size_t*)(&(*yyvalp))) = psi_num_exp_get_long((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), NULL, P->preproc);
6187 } else {
6188 (*(size_t*)(&(*yyvalp))) = 0;
6189 }
6190 psi_num_exp_free(&(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6191 psi_validate_scope_dtor(&scope);
6192 }
6193 #line 6194 "src/parser_proc.c" /* glr.c:821 */
6194 break;
6195
6196 case 519:
6197 #line 1839 "src/parser_proc_grammar.y" /* glr.c:821 */
6198 {
6199 (*(size_t*)(&(*yyvalp))) = 0;
6200 }
6201 #line 6202 "src/parser_proc.c" /* glr.c:821 */
6202 break;
6203
6204 case 520:
6205 #line 1842 "src/parser_proc_grammar.y" /* glr.c:821 */
6206 {
6207 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6208 }
6209 #line 6210 "src/parser_proc.c" /* glr.c:821 */
6210 break;
6211
6212 case 522:
6213 #line 1849 "src/parser_proc_grammar.y" /* glr.c:821 */
6214 {
6215 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
6216 }
6217 #line 6218 "src/parser_proc.c" /* glr.c:821 */
6218 break;
6219
6220 case 523:
6221 #line 1855 "src/parser_proc_grammar.y" /* glr.c:821 */
6222 {
6223 (*(size_t*)(&(*yyvalp))) = 1;
6224 }
6225 #line 6226 "src/parser_proc.c" /* glr.c:821 */
6226 break;
6227
6228 case 524:
6229 #line 1858 "src/parser_proc_grammar.y" /* glr.c:821 */
6230 {
6231 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)) + 1;
6232 }
6233 #line 6234 "src/parser_proc.c" /* glr.c:821 */
6234 break;
6235
6236 case 529:
6237 #line 1880 "src/parser_proc_grammar.y" /* glr.c:821 */
6238 {
6239 (*(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)));
6240 }
6241 #line 6242 "src/parser_proc.c" /* glr.c:821 */
6242 break;
6243
6244 case 530:
6245 #line 1883 "src/parser_proc_grammar.y" /* glr.c:821 */
6246 {
6247 (*(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)));
6248 (*(struct psi_impl_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->static_memory = 1;
6249 }
6250 #line 6251 "src/parser_proc.c" /* glr.c:821 */
6251 break;
6252
6253 case 531:
6254 #line 1890 "src/parser_proc_grammar.y" /* glr.c:821 */
6255 {
6256 (*(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)));
6257 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
6258 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval));
6259 }
6260 #line 6261 "src/parser_proc.c" /* glr.c:821 */
6261 break;
6262
6263 case 532:
6264 #line 1895 "src/parser_proc_grammar.y" /* glr.c:821 */
6265 {
6266 (*(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)));
6267 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6268 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval));
6269 }
6270 #line 6271 "src/parser_proc.c" /* glr.c:821 */
6271 break;
6272
6273 case 533:
6274 #line 1900 "src/parser_proc_grammar.y" /* glr.c:821 */
6275 {
6276 (*(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)));
6277 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval)));
6278 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-11)].yystate.yysemantics.yysval));
6279 (*(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);
6280 (*(struct psi_impl_func **)(&(*yyvalp)))->vararg->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
6281 }
6282 #line 6283 "src/parser_proc.c" /* glr.c:821 */
6283 break;
6284
6285 case 534:
6286 #line 1910 "src/parser_proc_grammar.y" /* glr.c:821 */
6287 {
6288 (*(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)));
6289 }
6290 #line 6291 "src/parser_proc.c" /* glr.c:821 */
6291 break;
6292
6293 case 535:
6294 #line 1913 "src/parser_proc_grammar.y" /* glr.c:821 */
6295 {
6296 (*(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)));
6297 }
6298 #line 6299 "src/parser_proc.c" /* glr.c:821 */
6299 break;
6300
6301 case 536:
6302 #line 1919 "src/parser_proc_grammar.y" /* glr.c:821 */
6303 {
6304 (*(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);
6305 }
6306 #line 6307 "src/parser_proc.c" /* glr.c:821 */
6307 break;
6308
6309 case 537:
6310 #line 1922 "src/parser_proc_grammar.y" /* glr.c:821 */
6311 {
6312 (*(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)));
6313 }
6314 #line 6315 "src/parser_proc.c" /* glr.c:821 */
6315 break;
6316
6317 case 538:
6318 #line 1928 "src/parser_proc_grammar.y" /* glr.c:821 */
6319 {
6320 (*(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)));
6321 (*(struct psi_impl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6322 }
6323 #line 6324 "src/parser_proc.c" /* glr.c:821 */
6324 break;
6325
6326 case 539:
6327 #line 1935 "src/parser_proc_grammar.y" /* glr.c:821 */
6328 {
6329 (*(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);
6330 (*(struct psi_impl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6331 }
6332 #line 6333 "src/parser_proc.c" /* glr.c:821 */
6333 break;
6334
6335 case 540:
6336 #line 1942 "src/parser_proc_grammar.y" /* glr.c:821 */
6337 {
6338 (*(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);
6339 (*(struct psi_impl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6340 }
6341 #line 6342 "src/parser_proc.c" /* glr.c:821 */
6342 break;
6343
6344 case 552:
6345 #line 1969 "src/parser_proc_grammar.y" /* glr.c:821 */
6346 {
6347 (*(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)));
6348 }
6349 #line 6350 "src/parser_proc.c" /* glr.c:821 */
6350 break;
6351
6352 case 553:
6353 #line 1972 "src/parser_proc_grammar.y" /* glr.c:821 */
6354 {
6355 (*(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)));
6356 }
6357 #line 6358 "src/parser_proc.c" /* glr.c:821 */
6358 break;
6359
6360 case 554:
6361 #line 1978 "src/parser_proc_grammar.y" /* glr.c:821 */
6362 {
6363 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_return_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6364 }
6365 #line 6366 "src/parser_proc.c" /* glr.c:821 */
6366 break;
6367
6368 case 555:
6369 #line 1981 "src/parser_proc_grammar.y" /* glr.c:821 */
6370 {
6371 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_let_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6372 }
6373 #line 6374 "src/parser_proc.c" /* glr.c:821 */
6374 break;
6375
6376 case 556:
6377 #line 1984 "src/parser_proc_grammar.y" /* glr.c:821 */
6378 {
6379 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_set_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6380 }
6381 #line 6382 "src/parser_proc.c" /* glr.c:821 */
6382 break;
6383
6384 case 557:
6385 #line 1987 "src/parser_proc_grammar.y" /* glr.c:821 */
6386 {
6387 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_assert_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6388 }
6389 #line 6390 "src/parser_proc.c" /* glr.c:821 */
6390 break;
6391
6392 case 558:
6393 #line 1990 "src/parser_proc_grammar.y" /* glr.c:821 */
6394 {
6395 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_free_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6396 }
6397 #line 6398 "src/parser_proc.c" /* glr.c:821 */
6398 break;
6399
6400 case 559:
6401 #line 1996 "src/parser_proc_grammar.y" /* glr.c:821 */
6402 {
6403 (*(struct psi_let_stmt **)(&(*yyvalp))) = psi_let_stmt_init((*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6404 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6405 }
6406 #line 6407 "src/parser_proc.c" /* glr.c:821 */
6407 break;
6408
6409 case 560:
6410 #line 2000 "src/parser_proc_grammar.y" /* glr.c:821 */
6411 {
6412 (*(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))));
6413 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6414 (*(struct psi_let_stmt **)(&(*yyvalp)))->exp->is_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
6415 }
6416 #line 6417 "src/parser_proc.c" /* glr.c:821 */
6417 break;
6418
6419 case 562:
6420 #line 2009 "src/parser_proc_grammar.y" /* glr.c:821 */
6421 {
6422 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6423 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = true;
6424 }
6425 #line 6426 "src/parser_proc.c" /* glr.c:821 */
6426 break;
6427
6428 case 563:
6429 #line 2013 "src/parser_proc_grammar.y" /* glr.c:821 */
6430 {
6431 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6432 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = false;
6433 }
6434 #line 6435 "src/parser_proc.c" /* glr.c:821 */
6435 break;
6436
6437 case 564:
6438 #line 2020 "src/parser_proc_grammar.y" /* glr.c:821 */
6439 {
6440 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_NULL, NULL);
6441 }
6442 #line 6443 "src/parser_proc.c" /* glr.c:821 */
6443 break;
6444
6445 case 565:
6446 #line 2023 "src/parser_proc_grammar.y" /* glr.c:821 */
6447 {
6448 (*(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)));
6449 }
6450 #line 6451 "src/parser_proc.c" /* glr.c:821 */
6451 break;
6452
6453 case 566:
6454 #line 2026 "src/parser_proc_grammar.y" /* glr.c:821 */
6455 {
6456 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6457 }
6458 #line 6459 "src/parser_proc.c" /* glr.c:821 */
6459 break;
6460
6461 case 567:
6462 #line 2029 "src/parser_proc_grammar.y" /* glr.c:821 */
6463 {
6464 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6465 (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->static_memory = 1;
6466 }
6467 #line 6468 "src/parser_proc.c" /* glr.c:821 */
6468 break;
6469
6470 case 568:
6471 #line 2033 "src/parser_proc_grammar.y" /* glr.c:821 */
6472 {
6473 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLBACK, (*(struct psi_let_callback **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6474 }
6475 #line 6476 "src/parser_proc.c" /* glr.c:821 */
6476 break;
6477
6478 case 569:
6479 #line 2036 "src/parser_proc_grammar.y" /* glr.c:821 */
6480 {
6481 (*(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)));
6482 }
6483 #line 6484 "src/parser_proc.c" /* glr.c:821 */
6484 break;
6485
6486 case 570:
6487 #line 2042 "src/parser_proc_grammar.y" /* glr.c:821 */
6488 {
6489 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6490 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
6491 }
6492 #line 6493 "src/parser_proc.c" /* glr.c:821 */
6493 break;
6494
6495 case 571:
6496 #line 2046 "src/parser_proc_grammar.y" /* glr.c:821 */
6497 {
6498 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6499 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = 1;
6500 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
6501 }
6502 #line 6503 "src/parser_proc.c" /* glr.c:821 */
6503 break;
6504
6505 case 572:
6506 #line 2054 "src/parser_proc_grammar.y" /* glr.c:821 */
6507 {
6508 (*(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)));
6509 (*(struct psi_let_calloc **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6510 }
6511 #line 6512 "src/parser_proc.c" /* glr.c:821 */
6512 break;
6513
6514 case 573:
6515 #line 2061 "src/parser_proc_grammar.y" /* glr.c:821 */
6516 {
6517 (*(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);
6518 (*(struct psi_let_callback **)(&(*yyvalp)))->func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
6519 (*(struct psi_let_callback **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval)));
6520 }
6521 #line 6522 "src/parser_proc.c" /* glr.c:821 */
6522 break;
6523
6524 case 574:
6525 #line 2066 "src/parser_proc_grammar.y" /* glr.c:821 */
6526 {
6527 (*(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)));
6528 (*(struct psi_let_callback **)(&(*yyvalp)))->func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
6529 (*(struct psi_let_callback **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-11)].yystate.yysemantics.yysval)));
6530 }
6531 #line 6532 "src/parser_proc.c" /* glr.c:821 */
6532 break;
6533
6534 case 575:
6535 #line 2074 "src/parser_proc_grammar.y" /* glr.c:821 */
6536 {
6537 (*(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)));
6538 (*(struct psi_let_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
6539 (*(struct psi_let_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
6540 }
6541 #line 6542 "src/parser_proc.c" /* glr.c:821 */
6542 break;
6543
6544 case 586:
6545 #line 2095 "src/parser_proc_grammar.y" /* glr.c:821 */
6546 {
6547 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6548 }
6549 #line 6550 "src/parser_proc.c" /* glr.c:821 */
6550 break;
6551
6552 case 587:
6553 #line 2098 "src/parser_proc_grammar.y" /* glr.c:821 */
6554 {
6555 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6556 }
6557 #line 6558 "src/parser_proc.c" /* glr.c:821 */
6558 break;
6559
6560 case 588:
6561 #line 2104 "src/parser_proc_grammar.y" /* glr.c:821 */
6562 {
6563 (*(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)));
6564 }
6565 #line 6566 "src/parser_proc.c" /* glr.c:821 */
6566 break;
6567
6568 case 589:
6569 #line 2107 "src/parser_proc_grammar.y" /* glr.c:821 */
6570 {
6571 (*(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)));
6572 }
6573 #line 6574 "src/parser_proc.c" /* glr.c:821 */
6574 break;
6575
6576 case 592:
6577 #line 2118 "src/parser_proc_grammar.y" /* glr.c:821 */
6578 {
6579 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6580 }
6581 #line 6582 "src/parser_proc.c" /* glr.c:821 */
6582 break;
6583
6584 case 593:
6585 #line 2121 "src/parser_proc_grammar.y" /* glr.c:821 */
6586 {
6587 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6588 }
6589 #line 6590 "src/parser_proc.c" /* glr.c:821 */
6590 break;
6591
6592 case 594:
6593 #line 2127 "src/parser_proc_grammar.y" /* glr.c:821 */
6594 {
6595 (*(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)));
6596 }
6597 #line 6598 "src/parser_proc.c" /* glr.c:821 */
6598 break;
6599
6600 case 595:
6601 #line 2130 "src/parser_proc_grammar.y" /* glr.c:821 */
6602 {
6603 (*(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)));
6604 }
6605 #line 6606 "src/parser_proc.c" /* glr.c:821 */
6606 break;
6607
6608 case 596:
6609 #line 2136 "src/parser_proc_grammar.y" /* glr.c:821 */
6610 {
6611 (*(struct psi_return_stmt **)(&(*yyvalp))) = psi_return_stmt_init((*(struct psi_return_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6612 (*(struct psi_return_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6613 }
6614 #line 6615 "src/parser_proc.c" /* glr.c:821 */
6615 break;
6616
6617 case 597:
6618 #line 2143 "src/parser_proc_grammar.y" /* glr.c:821 */
6619 {
6620 (*(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))));
6621 (*(struct psi_return_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->token);
6622 }
6623 #line 6624 "src/parser_proc.c" /* glr.c:821 */
6624 break;
6625
6626 case 598:
6627 #line 2147 "src/parser_proc_grammar.y" /* glr.c:821 */
6628 {
6629 (*(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))));
6630 (*(struct psi_return_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
6631 }
6632 #line 6633 "src/parser_proc.c" /* glr.c:821 */
6633 break;
6634
6635 case 599:
6636 #line 2154 "src/parser_proc_grammar.y" /* glr.c:821 */
6637 {
6638 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6639 }
6640 #line 6641 "src/parser_proc.c" /* glr.c:821 */
6641 break;
6642
6643 case 600:
6644 #line 2157 "src/parser_proc_grammar.y" /* glr.c:821 */
6645 {
6646 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6647 }
6648 #line 6649 "src/parser_proc.c" /* glr.c:821 */
6649 break;
6650
6651 case 601:
6652 #line 2160 "src/parser_proc_grammar.y" /* glr.c:821 */
6653 {
6654 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6655 }
6656 #line 6657 "src/parser_proc.c" /* glr.c:821 */
6657 break;
6658
6659 case 602:
6660 #line 2166 "src/parser_proc_grammar.y" /* glr.c:821 */
6661 {
6662 (*(struct psi_set_stmt **)(&(*yyvalp))) = psi_set_stmt_init((*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6663 (*(struct psi_set_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6664 }
6665 #line 6666 "src/parser_proc.c" /* glr.c:821 */
6666 break;
6667
6668 case 603:
6669 #line 2173 "src/parser_proc_grammar.y" /* glr.c:821 */
6670 {
6671 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_FUNC, (*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6672 }
6673 #line 6674 "src/parser_proc.c" /* glr.c:821 */
6674 break;
6675
6676 case 604:
6677 #line 2176 "src/parser_proc_grammar.y" /* glr.c:821 */
6678 {
6679 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_NUMEXP, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6680 }
6681 #line 6682 "src/parser_proc.c" /* glr.c:821 */
6682 break;
6683
6684 case 605:
6685 #line 2179 "src/parser_proc_grammar.y" /* glr.c:821 */
6686 {
6687 (*(struct psi_set_exp **)(&(*yyvalp))) = (*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6688 (*(struct psi_set_exp **)(&(*yyvalp)))->var = (*(struct psi_impl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
6689 }
6690 #line 6691 "src/parser_proc.c" /* glr.c:821 */
6691 break;
6692
6693 case 606:
6694 #line 2186 "src/parser_proc_grammar.y" /* glr.c:821 */
6695 {
6696 (*(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)));
6697 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
6698 (*(struct psi_set_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
6699 }
6700 #line 6701 "src/parser_proc.c" /* glr.c:821 */
6701 break;
6702
6703 case 607:
6704 #line 2191 "src/parser_proc_grammar.y" /* glr.c:821 */
6705 {
6706 (*(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)));
6707 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6708 (*(struct psi_set_func **)(&(*yyvalp)))->recursive = 1;
6709 }
6710 #line 6711 "src/parser_proc.c" /* glr.c:821 */
6711 break;
6712
6713 case 616:
6714 #line 2210 "src/parser_proc_grammar.y" /* glr.c:821 */
6715 {
6716 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6717 }
6718 #line 6719 "src/parser_proc.c" /* glr.c:821 */
6719 break;
6720
6721 case 617:
6722 #line 2213 "src/parser_proc_grammar.y" /* glr.c:821 */
6723 {
6724 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6725 }
6726 #line 6727 "src/parser_proc.c" /* glr.c:821 */
6727 break;
6728
6729 case 618:
6730 #line 2219 "src/parser_proc_grammar.y" /* glr.c:821 */
6731 {
6732 (*(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)));
6733 }
6734 #line 6735 "src/parser_proc.c" /* glr.c:821 */
6735 break;
6736
6737 case 619:
6738 #line 2222 "src/parser_proc_grammar.y" /* glr.c:821 */
6739 {
6740 (*(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)));
6741 }
6742 #line 6743 "src/parser_proc.c" /* glr.c:821 */
6743 break;
6744
6745 case 620:
6746 #line 2228 "src/parser_proc_grammar.y" /* glr.c:821 */
6747 {
6748 (*(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)));
6749 (*(struct psi_assert_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6750 }
6751 #line 6752 "src/parser_proc.c" /* glr.c:821 */
6752 break;
6753
6754 case 623:
6755 #line 2240 "src/parser_proc_grammar.y" /* glr.c:821 */
6756 {
6757 (*(struct psi_free_stmt **)(&(*yyvalp))) = psi_free_stmt_init((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6758 (*(struct psi_free_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6759 }
6760 #line 6761 "src/parser_proc.c" /* glr.c:821 */
6761 break;
6762
6763 case 624:
6764 #line 2247 "src/parser_proc_grammar.y" /* glr.c:821 */
6765 {
6766 (*(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)));
6767 }
6768 #line 6769 "src/parser_proc.c" /* glr.c:821 */
6769 break;
6770
6771 case 625:
6772 #line 2250 "src/parser_proc_grammar.y" /* glr.c:821 */
6773 {
6774 (*(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)));
6775 }
6776 #line 6777 "src/parser_proc.c" /* glr.c:821 */
6777 break;
6778
6779 case 626:
6780 #line 2256 "src/parser_proc_grammar.y" /* glr.c:821 */
6781 {
6782 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
6783 (*(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)));
6784 (*(struct psi_free_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
6785 }
6786 #line 6787 "src/parser_proc.c" /* glr.c:821 */
6787 break;
6788
6789 case 627:
6790 #line 2264 "src/parser_proc_grammar.y" /* glr.c:821 */
6791 {
6792 (*(bool*)(&(*yyvalp))) = false;
6793 }
6794 #line 6795 "src/parser_proc.c" /* glr.c:821 */
6795 break;
6796
6797 case 628:
6798 #line 2267 "src/parser_proc_grammar.y" /* glr.c:821 */
6799 {
6800 (*(bool*)(&(*yyvalp))) = true;
6801 }
6802 #line 6803 "src/parser_proc.c" /* glr.c:821 */
6803 break;
6804
6805
6806 #line 6807 "src/parser_proc.c" /* glr.c:821 */
6807 default: break;
6808 }
6809
6810 return yyok;
6811 # undef yyerrok
6812 # undef YYABORT
6813 # undef YYACCEPT
6814 # undef YYERROR
6815 # undef YYBACKUP
6816 # undef yyclearin
6817 # undef YYRECOVERING
6818 }
6819
6820
6821 static void
6822 yyuserMerge (int yyn, YYSTYPE* yy0, YYSTYPE* yy1)
6823 {
6824 YYUSE (yy0);
6825 YYUSE (yy1);
6826
6827 switch (yyn)
6828 {
6829
6830 default: break;
6831 }
6832 }
6833
6834 /* Bison grammar-table manipulation. */
6835
6836 /*-----------------------------------------------.
6837 | Release the memory associated to this symbol. |
6838 `-----------------------------------------------*/
6839
6840 static void
6841 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6842 {
6843 YYUSE (yyvaluep);
6844 YYUSE (P);
6845 YYUSE (tokens);
6846 YYUSE (index);
6847 if (!yymsg)
6848 yymsg = "Deleting";
6849 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
6850
6851 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6852 switch (yytype)
6853 {
6854 case 139: /* binary_op_token */
6855 #line 292 "src/parser_proc_grammar.y" /* glr.c:851 */
6856 {}
6857 #line 6858 "src/parser_proc.c" /* glr.c:851 */
6858 break;
6859
6860 case 140: /* unary_op_token */
6861 #line 292 "src/parser_proc_grammar.y" /* glr.c:851 */
6862 {}
6863 #line 6864 "src/parser_proc.c" /* glr.c:851 */
6864 break;
6865
6866 case 141: /* name_token */
6867 #line 292 "src/parser_proc_grammar.y" /* glr.c:851 */
6868 {}
6869 #line 6870 "src/parser_proc.c" /* glr.c:851 */
6870 break;
6871
6872 case 142: /* any_noeol_token */
6873 #line 292 "src/parser_proc_grammar.y" /* glr.c:851 */
6874 {}
6875 #line 6876 "src/parser_proc.c" /* glr.c:851 */
6876 break;
6877
6878 case 147: /* cpp */
6879 #line 301 "src/parser_proc_grammar.y" /* glr.c:851 */
6880 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
6881 #line 6882 "src/parser_proc.c" /* glr.c:851 */
6882 break;
6883
6884 case 148: /* cpp_exp */
6885 #line 301 "src/parser_proc_grammar.y" /* glr.c:851 */
6886 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
6887 #line 6888 "src/parser_proc.c" /* glr.c:851 */
6888 break;
6889
6890 case 149: /* cpp_macro_decl_arg_token */
6891 #line 289 "src/parser_proc_grammar.y" /* glr.c:851 */
6892 {}
6893 #line 6894 "src/parser_proc.c" /* glr.c:851 */
6894 break;
6895
6896 case 151: /* cpp_message_token */
6897 #line 289 "src/parser_proc_grammar.y" /* glr.c:851 */
6898 {}
6899 #line 6900 "src/parser_proc.c" /* glr.c:851 */
6900 break;
6901
6902 case 152: /* cpp_include_token */
6903 #line 289 "src/parser_proc_grammar.y" /* glr.c:851 */
6904 {}
6905 #line 6906 "src/parser_proc.c" /* glr.c:851 */
6906 break;
6907
6908 case 153: /* cpp_header_token */
6909 #line 289 "src/parser_proc_grammar.y" /* glr.c:851 */
6910 {}
6911 #line 6912 "src/parser_proc.c" /* glr.c:851 */
6912 break;
6913
6914 case 154: /* cpp_no_arg_token */
6915 #line 289 "src/parser_proc_grammar.y" /* glr.c:851 */
6916 {}
6917 #line 6918 "src/parser_proc.c" /* glr.c:851 */
6918 break;
6919
6920 case 155: /* cpp_name_arg_token */
6921 #line 289 "src/parser_proc_grammar.y" /* glr.c:851 */
6922 {}
6923 #line 6924 "src/parser_proc.c" /* glr.c:851 */
6924 break;
6925
6926 case 156: /* cpp_exp_arg_token */
6927 #line 289 "src/parser_proc_grammar.y" /* glr.c:851 */
6928 {}
6929 #line 6930 "src/parser_proc.c" /* glr.c:851 */
6930 break;
6931
6932 case 157: /* cpp_macro_decl */
6933 #line 303 "src/parser_proc_grammar.y" /* glr.c:851 */
6934 {psi_cpp_macro_decl_free(&(*(struct psi_cpp_macro_decl **)(&(*yyvaluep))));}
6935 #line 6936 "src/parser_proc.c" /* glr.c:851 */
6936 break;
6937
6938 case 158: /* cpp_macro_sig */
6939 #line 305 "src/parser_proc_grammar.y" /* glr.c:851 */
6940 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
6941 #line 6942 "src/parser_proc.c" /* glr.c:851 */
6942 break;
6943
6944 case 159: /* cpp_macro_sig_args */
6945 #line 305 "src/parser_proc_grammar.y" /* glr.c:851 */
6946 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
6947 #line 6948 "src/parser_proc.c" /* glr.c:851 */
6948 break;
6949
6950 case 160: /* cpp_macro_decl_tokens */
6951 #line 305 "src/parser_proc_grammar.y" /* glr.c:851 */
6952 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
6953 #line 6954 "src/parser_proc.c" /* glr.c:851 */
6954 break;
6955
6956 case 161: /* cpp_macro_decl_token_list */
6957 #line 305 "src/parser_proc_grammar.y" /* glr.c:851 */
6958 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
6959 #line 6960 "src/parser_proc.c" /* glr.c:851 */
6960 break;
6961
6962 case 162: /* cpp_macro_exp */
6963 #line 307 "src/parser_proc_grammar.y" /* glr.c:851 */
6964 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
6965 #line 6966 "src/parser_proc.c" /* glr.c:851 */
6966 break;
6967
6968 case 163: /* cpp_macro_call_args */
6969 #line 305 "src/parser_proc_grammar.y" /* glr.c:851 */
6970 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
6971 #line 6972 "src/parser_proc.c" /* glr.c:851 */
6972 break;
6973
6974 case 164: /* cpp_macro_call_arg_list */
6975 #line 305 "src/parser_proc_grammar.y" /* glr.c:851 */
6976 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
6977 #line 6978 "src/parser_proc.c" /* glr.c:851 */
6978 break;
6979
6980 case 165: /* constant */
6981 #line 313 "src/parser_proc_grammar.y" /* glr.c:851 */
6982 {psi_const_free(&(*(struct psi_const **)(&(*yyvaluep))));}
6983 #line 6984 "src/parser_proc.c" /* glr.c:851 */
6984 break;
6985
6986 case 166: /* impl_def_val */
6987 #line 315 "src/parser_proc_grammar.y" /* glr.c:851 */
6988 {psi_impl_def_val_free(&(*(struct psi_impl_def_val **)(&(*yyvaluep))));}
6989 #line 6990 "src/parser_proc.c" /* glr.c:851 */
6990 break;
6991
6992 case 167: /* impl_def_val_token */
6993 #line 310 "src/parser_proc_grammar.y" /* glr.c:851 */
6994 {}
6995 #line 6996 "src/parser_proc.c" /* glr.c:851 */
6996 break;
6997
6998 case 168: /* decl_typedef */
6999 #line 328 "src/parser_proc_grammar.y" /* glr.c:851 */
7000 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7001 #line 7002 "src/parser_proc.c" /* glr.c:851 */
7002 break;
7003
7004 case 169: /* typedef */
7005 #line 328 "src/parser_proc_grammar.y" /* glr.c:851 */
7006 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7007 #line 7008 "src/parser_proc.c" /* glr.c:851 */
7008 break;
7009
7010 case 170: /* typedef_anon */
7011 #line 328 "src/parser_proc_grammar.y" /* glr.c:851 */
7012 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7013 #line 7014 "src/parser_proc.c" /* glr.c:851 */
7014 break;
7015
7016 case 171: /* typedef_decl */
7017 #line 328 "src/parser_proc_grammar.y" /* glr.c:851 */
7018 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7019 #line 7020 "src/parser_proc.c" /* glr.c:851 */
7020 break;
7021
7022 case 172: /* typedef_anon_decl */
7023 #line 328 "src/parser_proc_grammar.y" /* glr.c:851 */
7024 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7025 #line 7026 "src/parser_proc.c" /* glr.c:851 */
7026 break;
7027
7028 case 173: /* qualified_decl_type */
7029 #line 324 "src/parser_proc_grammar.y" /* glr.c:851 */
7030 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
7031 #line 7032 "src/parser_proc.c" /* glr.c:851 */
7032 break;
7033
7034 case 175: /* decl_type */
7035 #line 324 "src/parser_proc_grammar.y" /* glr.c:851 */
7036 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
7037 #line 7038 "src/parser_proc.c" /* glr.c:851 */
7038 break;
7039
7040 case 176: /* decl_type_complex */
7041 #line 324 "src/parser_proc_grammar.y" /* glr.c:851 */
7042 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
7043 #line 7044 "src/parser_proc.c" /* glr.c:851 */
7044 break;
7045
7046 case 177: /* decl_type_simple */
7047 #line 318 "src/parser_proc_grammar.y" /* glr.c:851 */
7048 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7049 #line 7050 "src/parser_proc.c" /* glr.c:851 */
7050 break;
7051
7052 case 178: /* decl_real_type */
7053 #line 318 "src/parser_proc_grammar.y" /* glr.c:851 */
7054 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7055 #line 7056 "src/parser_proc.c" /* glr.c:851 */
7056 break;
7057
7058 case 179: /* int_signed */
7059 #line 298 "src/parser_proc_grammar.y" /* glr.c:851 */
7060 {}
7061 #line 7062 "src/parser_proc.c" /* glr.c:851 */
7062 break;
7063
7064 case 180: /* int_width */
7065 #line 295 "src/parser_proc_grammar.y" /* glr.c:851 */
7066 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7067 #line 7068 "src/parser_proc.c" /* glr.c:851 */
7068 break;
7069
7070 case 181: /* decl_int_type */
7071 #line 318 "src/parser_proc_grammar.y" /* glr.c:851 */
7072 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7073 #line 7074 "src/parser_proc.c" /* glr.c:851 */
7074 break;
7075
7076 case 182: /* int_signed_types */
7077 #line 295 "src/parser_proc_grammar.y" /* glr.c:851 */
7078 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7079 #line 7080 "src/parser_proc.c" /* glr.c:851 */
7080 break;
7081
7082 case 183: /* signed_short_types */
7083 #line 298 "src/parser_proc_grammar.y" /* glr.c:851 */
7084 {}
7085 #line 7086 "src/parser_proc.c" /* glr.c:851 */
7086 break;
7087
7088 case 184: /* signed_long_types */
7089 #line 298 "src/parser_proc_grammar.y" /* glr.c:851 */
7090 {}
7091 #line 7092 "src/parser_proc.c" /* glr.c:851 */
7092 break;
7093
7094 case 185: /* int_width_types */
7095 #line 295 "src/parser_proc_grammar.y" /* glr.c:851 */
7096 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7097 #line 7098 "src/parser_proc.c" /* glr.c:851 */
7098 break;
7099
7100 case 186: /* decl_stmt */
7101 #line 326 "src/parser_proc_grammar.y" /* glr.c:851 */
7102 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7103 #line 7104 "src/parser_proc.c" /* glr.c:851 */
7104 break;
7105
7106 case 187: /* decl_asm */
7107 #line 321 "src/parser_proc_grammar.y" /* glr.c:851 */
7108 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7109 #line 7110 "src/parser_proc.c" /* glr.c:851 */
7110 break;
7111
7112 case 188: /* quoted_strings */
7113 #line 321 "src/parser_proc_grammar.y" /* glr.c:851 */
7114 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7115 #line 7116 "src/parser_proc.c" /* glr.c:851 */
7116 break;
7117
7118 case 189: /* decl_extvar_stmt */
7119 #line 340 "src/parser_proc_grammar.y" /* glr.c:851 */
7120 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7121 #line 7122 "src/parser_proc.c" /* glr.c:851 */
7122 break;
7123
7124 case 190: /* decl_extvar_list */
7125 #line 340 "src/parser_proc_grammar.y" /* glr.c:851 */
7126 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7127 #line 7128 "src/parser_proc.c" /* glr.c:851 */
7128 break;
7129
7130 case 191: /* decl_vars */
7131 #line 340 "src/parser_proc_grammar.y" /* glr.c:851 */
7132 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7133 #line 7134 "src/parser_proc.c" /* glr.c:851 */
7134 break;
7135
7136 case 192: /* ignored_decl */
7137 #line 326 "src/parser_proc_grammar.y" /* glr.c:851 */
7138 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7139 #line 7140 "src/parser_proc.c" /* glr.c:851 */
7140 break;
7141
7142 case 197: /* decl */
7143 #line 326 "src/parser_proc_grammar.y" /* glr.c:851 */
7144 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7145 #line 7146 "src/parser_proc.c" /* glr.c:851 */
7146 break;
7147
7148 case 198: /* decl_body */
7149 #line 326 "src/parser_proc_grammar.y" /* glr.c:851 */
7150 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7151 #line 7152 "src/parser_proc.c" /* glr.c:851 */
7152 break;
7153
7154 case 199: /* decl_func_body */
7155 #line 326 "src/parser_proc_grammar.y" /* glr.c:851 */
7156 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7157 #line 7158 "src/parser_proc.c" /* glr.c:851 */
7158 break;
7159
7160 case 200: /* decl_functor_body */
7161 #line 326 "src/parser_proc_grammar.y" /* glr.c:851 */
7162 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7163 #line 7164 "src/parser_proc.c" /* glr.c:851 */
7164 break;
7165
7166 case 201: /* decl_anon_functor_body */
7167 #line 326 "src/parser_proc_grammar.y" /* glr.c:851 */
7168 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7169 #line 7170 "src/parser_proc.c" /* glr.c:851 */
7170 break;
7171
7172 case 202: /* decl_functor */
7173 #line 328 "src/parser_proc_grammar.y" /* glr.c:851 */
7174 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7175 #line 7176 "src/parser_proc.c" /* glr.c:851 */
7176 break;
7177
7178 case 203: /* decl_anon_functor */
7179 #line 328 "src/parser_proc_grammar.y" /* glr.c:851 */
7180 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7181 #line 7182 "src/parser_proc.c" /* glr.c:851 */
7182 break;
7183
7184 case 204: /* decl_func */
7185 #line 328 "src/parser_proc_grammar.y" /* glr.c:851 */
7186 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7187 #line 7188 "src/parser_proc.c" /* glr.c:851 */
7188 break;
7189
7190 case 205: /* decl_args */
7191 #line 340 "src/parser_proc_grammar.y" /* glr.c:851 */
7192 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7193 #line 7194 "src/parser_proc.c" /* glr.c:851 */
7194 break;
7195
7196 case 206: /* decl_arg_list */
7197 #line 340 "src/parser_proc_grammar.y" /* glr.c:851 */
7198 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7199 #line 7200 "src/parser_proc.c" /* glr.c:851 */
7200 break;
7201
7202 case 207: /* decl_anon_arg */
7203 #line 328 "src/parser_proc_grammar.y" /* glr.c:851 */
7204 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7205 #line 7206 "src/parser_proc.c" /* glr.c:851 */
7206 break;
7207
7208 case 208: /* decl_arg */
7209 #line 328 "src/parser_proc_grammar.y" /* glr.c:851 */
7210 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7211 #line 7212 "src/parser_proc.c" /* glr.c:851 */
7212 break;
7213
7214 case 209: /* decl_var */
7215 #line 330 "src/parser_proc_grammar.y" /* glr.c:851 */
7216 {psi_decl_var_free(&(*(struct psi_decl_var **)(&(*yyvaluep))));}
7217 #line 7218 "src/parser_proc.c" /* glr.c:851 */
7218 break;
7219
7220 case 210: /* decl_union */
7221 #line 334 "src/parser_proc_grammar.y" /* glr.c:851 */
7222 {psi_decl_union_free(&(*(struct psi_decl_union **)(&(*yyvaluep))));}
7223 #line 7224 "src/parser_proc.c" /* glr.c:851 */
7224 break;
7225
7226 case 211: /* decl_struct */
7227 #line 332 "src/parser_proc_grammar.y" /* glr.c:851 */
7228 {psi_decl_struct_free(&(*(struct psi_decl_struct **)(&(*yyvaluep))));}
7229 #line 7230 "src/parser_proc.c" /* glr.c:851 */
7230 break;
7231
7232 case 212: /* decl_struct_args */
7233 #line 340 "src/parser_proc_grammar.y" /* glr.c:851 */
7234 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7235 #line 7236 "src/parser_proc.c" /* glr.c:851 */
7236 break;
7237
7238 case 213: /* struct_args_block */
7239 #line 340 "src/parser_proc_grammar.y" /* glr.c:851 */
7240 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7241 #line 7242 "src/parser_proc.c" /* glr.c:851 */
7242 break;
7243
7244 case 214: /* struct_args */
7245 #line 340 "src/parser_proc_grammar.y" /* glr.c:851 */
7246 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7247 #line 7248 "src/parser_proc.c" /* glr.c:851 */
7248 break;
7249
7250 case 215: /* struct_arg_var_list */
7251 #line 340 "src/parser_proc_grammar.y" /* glr.c:851 */
7252 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7253 #line 7254 "src/parser_proc.c" /* glr.c:851 */
7254 break;
7255
7256 case 216: /* decl_vars_with_layout */
7257 #line 340 "src/parser_proc_grammar.y" /* glr.c:851 */
7258 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7259 #line 7260 "src/parser_proc.c" /* glr.c:851 */
7260 break;
7261
7262 case 217: /* decl_enum */
7263 #line 336 "src/parser_proc_grammar.y" /* glr.c:851 */
7264 {psi_decl_enum_free(&(*(struct psi_decl_enum **)(&(*yyvaluep))));}
7265 #line 7266 "src/parser_proc.c" /* glr.c:851 */
7266 break;
7267
7268 case 218: /* decl_enum_items */
7269 #line 340 "src/parser_proc_grammar.y" /* glr.c:851 */
7270 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7271 #line 7272 "src/parser_proc.c" /* glr.c:851 */
7272 break;
7273
7274 case 219: /* decl_enum_item */
7275 #line 338 "src/parser_proc_grammar.y" /* glr.c:851 */
7276 {psi_decl_enum_item_free(&(*(struct psi_decl_enum_item **)(&(*yyvaluep))));}
7277 #line 7278 "src/parser_proc.c" /* glr.c:851 */
7278 break;
7279
7280 case 220: /* num_exp */
7281 #line 396 "src/parser_proc_grammar.y" /* glr.c:851 */
7282 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
7283 #line 7284 "src/parser_proc.c" /* glr.c:851 */
7284 break;
7285
7286 case 221: /* number */
7287 #line 398 "src/parser_proc_grammar.y" /* glr.c:851 */
7288 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7289 #line 7290 "src/parser_proc.c" /* glr.c:851 */
7290 break;
7291
7292 case 222: /* sizeof */
7293 #line 348 "src/parser_proc_grammar.y" /* glr.c:851 */
7294 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7295 #line 7296 "src/parser_proc.c" /* glr.c:851 */
7296 break;
7297
7298 case 223: /* sizeof_body */
7299 #line 348 "src/parser_proc_grammar.y" /* glr.c:851 */
7300 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7301 #line 7302 "src/parser_proc.c" /* glr.c:851 */
7302 break;
7303
7304 case 224: /* sizeof_body_notypes */
7305 #line 348 "src/parser_proc_grammar.y" /* glr.c:851 */
7306 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7307 #line 7308 "src/parser_proc.c" /* glr.c:851 */
7308 break;
7309
7310 case 225: /* enum_name */
7311 #line 286 "src/parser_proc_grammar.y" /* glr.c:851 */
7312 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7313 #line 7314 "src/parser_proc.c" /* glr.c:851 */
7314 break;
7315
7316 case 226: /* union_name */
7317 #line 286 "src/parser_proc_grammar.y" /* glr.c:851 */
7318 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7319 #line 7320 "src/parser_proc.c" /* glr.c:851 */
7320 break;
7321
7322 case 227: /* struct_name */
7323 #line 286 "src/parser_proc_grammar.y" /* glr.c:851 */
7324 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7325 #line 7326 "src/parser_proc.c" /* glr.c:851 */
7326 break;
7327
7328 case 228: /* optional_name */
7329 #line 286 "src/parser_proc_grammar.y" /* glr.c:851 */
7330 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7331 #line 7332 "src/parser_proc.c" /* glr.c:851 */
7332 break;
7333
7334 case 230: /* decl_layout */
7335 #line 345 "src/parser_proc_grammar.y" /* glr.c:851 */
7336 {psi_layout_free(&(*(struct psi_layout **)(&(*yyvaluep))));}
7337 #line 7338 "src/parser_proc.c" /* glr.c:851 */
7338 break;
7339
7340 case 231: /* align_and_size */
7341 #line 343 "src/parser_proc_grammar.y" /* glr.c:851 */
7342 {}
7343 #line 7344 "src/parser_proc.c" /* glr.c:851 */
7344 break;
7345
7346 case 232: /* array_size */
7347 #line 401 "src/parser_proc_grammar.y" /* glr.c:851 */
7348 {}
7349 #line 7350 "src/parser_proc.c" /* glr.c:851 */
7350 break;
7351
7352 case 234: /* indirection */
7353 #line 401 "src/parser_proc_grammar.y" /* glr.c:851 */
7354 {}
7355 #line 7356 "src/parser_proc.c" /* glr.c:851 */
7356 break;
7357
7358 case 235: /* pointers */
7359 #line 401 "src/parser_proc_grammar.y" /* glr.c:851 */
7360 {}
7361 #line 7362 "src/parser_proc.c" /* glr.c:851 */
7362 break;
7363
7364 case 236: /* asterisks */
7365 #line 401 "src/parser_proc_grammar.y" /* glr.c:851 */
7366 {}
7367 #line 7368 "src/parser_proc.c" /* glr.c:851 */
7368 break;
7369
7370 case 239: /* impl */
7371 #line 351 "src/parser_proc_grammar.y" /* glr.c:851 */
7372 {psi_impl_free(&(*(struct psi_impl **)(&(*yyvaluep))));}
7373 #line 7374 "src/parser_proc.c" /* glr.c:851 */
7374 break;
7375
7376 case 240: /* impl_func */
7377 #line 353 "src/parser_proc_grammar.y" /* glr.c:851 */
7378 {psi_impl_func_free(&(*(struct psi_impl_func **)(&(*yyvaluep))));}
7379 #line 7380 "src/parser_proc.c" /* glr.c:851 */
7380 break;
7381
7382 case 241: /* impl_args */
7383 #line 393 "src/parser_proc_grammar.y" /* glr.c:851 */
7384 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7385 #line 7386 "src/parser_proc.c" /* glr.c:851 */
7386 break;
7387
7388 case 242: /* impl_arg */
7389 #line 355 "src/parser_proc_grammar.y" /* glr.c:851 */
7390 {psi_impl_arg_free(&(*(struct psi_impl_arg **)(&(*yyvaluep))));}
7391 #line 7392 "src/parser_proc.c" /* glr.c:851 */
7392 break;
7393
7394 case 243: /* impl_var */
7395 #line 359 "src/parser_proc_grammar.y" /* glr.c:851 */
7396 {psi_impl_var_free(&(*(struct psi_impl_var **)(&(*yyvaluep))));}
7397 #line 7398 "src/parser_proc.c" /* glr.c:851 */
7398 break;
7399
7400 case 244: /* impl_type */
7401 #line 357 "src/parser_proc_grammar.y" /* glr.c:851 */
7402 {psi_impl_type_free(&(*(struct psi_impl_type **)(&(*yyvaluep))));}
7403 #line 7404 "src/parser_proc.c" /* glr.c:851 */
7404 break;
7405
7406 case 245: /* impl_type_restricted */
7407 #line 357 "src/parser_proc_grammar.y" /* glr.c:851 */
7408 {psi_impl_type_free(&(*(struct psi_impl_type **)(&(*yyvaluep))));}
7409 #line 7410 "src/parser_proc.c" /* glr.c:851 */
7410 break;
7411
7412 case 246: /* impl_type_token */
7413 #line 391 "src/parser_proc_grammar.y" /* glr.c:851 */
7414 {}
7415 #line 7416 "src/parser_proc.c" /* glr.c:851 */
7416 break;
7417
7418 case 247: /* impl_type_restricted_token */
7419 #line 391 "src/parser_proc_grammar.y" /* glr.c:851 */
7420 {}
7421 #line 7422 "src/parser_proc.c" /* glr.c:851 */
7422 break;
7423
7424 case 248: /* impl_type_extended_token */
7425 #line 391 "src/parser_proc_grammar.y" /* glr.c:851 */
7426 {}
7427 #line 7428 "src/parser_proc.c" /* glr.c:851 */
7428 break;
7429
7430 case 249: /* impl_stmts */
7431 #line 393 "src/parser_proc_grammar.y" /* glr.c:851 */
7432 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7433 #line 7434 "src/parser_proc.c" /* glr.c:851 */
7434 break;
7435
7436 case 250: /* impl_stmt */
7437 #line 389 "src/parser_proc_grammar.y" /* glr.c:851 */
7438 {psi_impl_stmt_free(&(*(struct psi_token ***)(&(*yyvaluep))));}
7439 #line 7440 "src/parser_proc.c" /* glr.c:851 */
7440 break;
7441
7442 case 251: /* let_stmt */
7443 #line 362 "src/parser_proc_grammar.y" /* glr.c:851 */
7444 {psi_let_stmt_free(&(*(struct psi_let_stmt **)(&(*yyvaluep))));}
7445 #line 7446 "src/parser_proc.c" /* glr.c:851 */
7446 break;
7447
7448 case 252: /* let_exp */
7449 #line 364 "src/parser_proc_grammar.y" /* glr.c:851 */
7450 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
7451 #line 7452 "src/parser_proc.c" /* glr.c:851 */
7452 break;
7453
7454 case 253: /* let_exp_byref */
7455 #line 364 "src/parser_proc_grammar.y" /* glr.c:851 */
7456 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
7457 #line 7458 "src/parser_proc.c" /* glr.c:851 */
7458 break;
7459
7460 case 254: /* let_exp_assign */
7461 #line 364 "src/parser_proc_grammar.y" /* glr.c:851 */
7462 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
7463 #line 7464 "src/parser_proc.c" /* glr.c:851 */
7464 break;
7465
7466 case 255: /* let_calloc */
7467 #line 366 "src/parser_proc_grammar.y" /* glr.c:851 */
7468 {psi_let_calloc_free(&(*(struct psi_let_calloc **)(&(*yyvaluep))));}
7469 #line 7470 "src/parser_proc.c" /* glr.c:851 */
7470 break;
7471
7472 case 256: /* let_callback */
7473 #line 368 "src/parser_proc_grammar.y" /* glr.c:851 */
7474 {psi_let_callback_free(&(*(struct psi_let_callback **)(&(*yyvaluep))));}
7475 #line 7476 "src/parser_proc.c" /* glr.c:851 */
7476 break;
7477
7478 case 257: /* let_func */
7479 #line 370 "src/parser_proc_grammar.y" /* glr.c:851 */
7480 {psi_let_func_free(&(*(struct psi_let_func **)(&(*yyvaluep))));}
7481 #line 7482 "src/parser_proc.c" /* glr.c:851 */
7482 break;
7483
7484 case 258: /* let_func_token */
7485 #line 391 "src/parser_proc_grammar.y" /* glr.c:851 */
7486 {}
7487 #line 7488 "src/parser_proc.c" /* glr.c:851 */
7488 break;
7489
7490 case 259: /* let_func_exps */
7491 #line 393 "src/parser_proc_grammar.y" /* glr.c:851 */
7492 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7493 #line 7494 "src/parser_proc.c" /* glr.c:851 */
7494 break;
7495
7496 case 260: /* let_exps */
7497 #line 393 "src/parser_proc_grammar.y" /* glr.c:851 */
7498 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7499 #line 7500 "src/parser_proc.c" /* glr.c:851 */
7500 break;
7501
7502 case 261: /* callback_rval */
7503 #line 391 "src/parser_proc_grammar.y" /* glr.c:851 */
7504 {}
7505 #line 7506 "src/parser_proc.c" /* glr.c:851 */
7506 break;
7507
7508 case 262: /* callback_arg_list */
7509 #line 393 "src/parser_proc_grammar.y" /* glr.c:851 */
7510 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7511 #line 7512 "src/parser_proc.c" /* glr.c:851 */
7512 break;
7513
7514 case 263: /* callback_args */
7515 #line 393 "src/parser_proc_grammar.y" /* glr.c:851 */
7516 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7517 #line 7518 "src/parser_proc.c" /* glr.c:851 */
7518 break;
7519
7520 case 264: /* return_stmt */
7521 #line 380 "src/parser_proc_grammar.y" /* glr.c:851 */
7522 {psi_return_stmt_free(&(*(struct psi_return_stmt **)(&(*yyvaluep))));}
7523 #line 7524 "src/parser_proc.c" /* glr.c:851 */
7524 break;
7525
7526 case 265: /* return_exp */
7527 #line 382 "src/parser_proc_grammar.y" /* glr.c:851 */
7528 {psi_return_exp_free(&(*(struct psi_return_exp **)(&(*yyvaluep))));}
7529 #line 7530 "src/parser_proc.c" /* glr.c:851 */
7530 break;
7531
7532 case 266: /* call_decl_vars */
7533 #line 340 "src/parser_proc_grammar.y" /* glr.c:851 */
7534 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7535 #line 7536 "src/parser_proc.c" /* glr.c:851 */
7536 break;
7537
7538 case 267: /* set_stmt */
7539 #line 372 "src/parser_proc_grammar.y" /* glr.c:851 */
7540 {psi_set_stmt_free(&(*(struct psi_set_stmt **)(&(*yyvaluep))));}
7541 #line 7542 "src/parser_proc.c" /* glr.c:851 */
7542 break;
7543
7544 case 268: /* set_exp */
7545 #line 374 "src/parser_proc_grammar.y" /* glr.c:851 */
7546 {psi_set_exp_free(&(*(struct psi_set_exp **)(&(*yyvaluep))));}
7547 #line 7548 "src/parser_proc.c" /* glr.c:851 */
7548 break;
7549
7550 case 269: /* set_func */
7551 #line 376 "src/parser_proc_grammar.y" /* glr.c:851 */
7552 {psi_set_func_free(&(*(struct psi_set_func **)(&(*yyvaluep))));}
7553 #line 7554 "src/parser_proc.c" /* glr.c:851 */
7554 break;
7555
7556 case 270: /* set_func_token */
7557 #line 391 "src/parser_proc_grammar.y" /* glr.c:851 */
7558 {}
7559 #line 7560 "src/parser_proc.c" /* glr.c:851 */
7560 break;
7561
7562 case 271: /* set_func_exps */
7563 #line 393 "src/parser_proc_grammar.y" /* glr.c:851 */
7564 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7565 #line 7566 "src/parser_proc.c" /* glr.c:851 */
7566 break;
7567
7568 case 272: /* set_exps */
7569 #line 393 "src/parser_proc_grammar.y" /* glr.c:851 */
7570 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7571 #line 7572 "src/parser_proc.c" /* glr.c:851 */
7572 break;
7573
7574 case 273: /* assert_stmt */
7575 #line 378 "src/parser_proc_grammar.y" /* glr.c:851 */
7576 {psi_assert_stmt_free(&(*(struct psi_assert_stmt **)(&(*yyvaluep))));}
7577 #line 7578 "src/parser_proc.c" /* glr.c:851 */
7578 break;
7579
7580 case 274: /* assert_stmt_token */
7581 #line 391 "src/parser_proc_grammar.y" /* glr.c:851 */
7582 {}
7583 #line 7584 "src/parser_proc.c" /* glr.c:851 */
7584 break;
7585
7586 case 275: /* free_stmt */
7587 #line 384 "src/parser_proc_grammar.y" /* glr.c:851 */
7588 {psi_free_stmt_free(&(*(struct psi_free_stmt **)(&(*yyvaluep))));}
7589 #line 7590 "src/parser_proc.c" /* glr.c:851 */
7590 break;
7591
7592 case 276: /* free_exps */
7593 #line 393 "src/parser_proc_grammar.y" /* glr.c:851 */
7594 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7595 #line 7596 "src/parser_proc.c" /* glr.c:851 */
7596 break;
7597
7598 case 277: /* free_exp */
7599 #line 386 "src/parser_proc_grammar.y" /* glr.c:851 */
7600 {psi_free_exp_free(&(*(struct psi_free_exp **)(&(*yyvaluep))));}
7601 #line 7602 "src/parser_proc.c" /* glr.c:851 */
7602 break;
7603
7604 case 278: /* reference */
7605 #line 403 "src/parser_proc_grammar.y" /* glr.c:851 */
7606 {}
7607 #line 7608 "src/parser_proc.c" /* glr.c:851 */
7608 break;
7609
7610
7611 default:
7612 break;
7613 }
7614 YY_IGNORE_MAYBE_UNINITIALIZED_END
7615 }
7616
7617 /** Number of symbols composing the right hand side of rule #RULE. */
7618 static inline int
7619 yyrhsLength (yyRuleNum yyrule)
7620 {
7621 return yyr2[yyrule];
7622 }
7623
7624 static void
7625 yydestroyGLRState (char const *yymsg, yyGLRState *yys, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7626 {
7627 if (yys->yyresolved)
7628 yydestruct (yymsg, yystos[yys->yylrState],
7629 &yys->yysemantics.yysval, P, tokens, index);
7630 else
7631 {
7632 #if YYDEBUG
7633 if (yydebug)
7634 {
7635 if (yys->yysemantics.yyfirstVal)
7636 YYFPRINTF (stderr, "%s unresolved", yymsg);
7637 else
7638 YYFPRINTF (stderr, "%s incomplete", yymsg);
7639 YY_SYMBOL_PRINT ("", yystos[yys->yylrState], YY_NULLPTR, &yys->yyloc);
7640 }
7641 #endif
7642
7643 if (yys->yysemantics.yyfirstVal)
7644 {
7645 yySemanticOption *yyoption = yys->yysemantics.yyfirstVal;
7646 yyGLRState *yyrh;
7647 int yyn;
7648 for (yyrh = yyoption->yystate, yyn = yyrhsLength (yyoption->yyrule);
7649 yyn > 0;
7650 yyrh = yyrh->yypred, yyn -= 1)
7651 yydestroyGLRState (yymsg, yyrh, P, tokens, index);
7652 }
7653 }
7654 }
7655
7656 /** Left-hand-side symbol for rule #YYRULE. */
7657 static inline yySymbol
7658 yylhsNonterm (yyRuleNum yyrule)
7659 {
7660 return yyr1[yyrule];
7661 }
7662
7663 #define yypact_value_is_default(Yystate) \
7664 (!!((Yystate) == (-710)))
7665
7666 /** True iff LR state YYSTATE has only a default reduction (regardless
7667 * of token). */
7668 static inline yybool
7669 yyisDefaultedState (yyStateNum yystate)
7670 {
7671 return (yybool) yypact_value_is_default (yypact[yystate]);
7672 }
7673
7674 /** The default reduction for YYSTATE, assuming it has one. */
7675 static inline yyRuleNum
7676 yydefaultAction (yyStateNum yystate)
7677 {
7678 return yydefact[yystate];
7679 }
7680
7681 #define yytable_value_is_error(Yytable_value) \
7682 0
7683
7684 /** Set *YYACTION to the action to take in YYSTATE on seeing YYTOKEN.
7685 * Result R means
7686 * R < 0: Reduce on rule -R.
7687 * R = 0: Error.
7688 * R > 0: Shift to state R.
7689 * Set *YYCONFLICTS to a pointer into yyconfl to a 0-terminated list
7690 * of conflicting reductions.
7691 */
7692 static inline void
7693 yygetLRActions (yyStateNum yystate, int yytoken,
7694 int* yyaction, const short** yyconflicts)
7695 {
7696 int yyindex = yypact[yystate] + yytoken;
7697 if (yyisDefaultedState (yystate)
7698 || yyindex < 0 || YYLAST < yyindex || yycheck[yyindex] != yytoken)
7699 {
7700 *yyaction = -yydefact[yystate];
7701 *yyconflicts = yyconfl;
7702 }
7703 else if (! yytable_value_is_error (yytable[yyindex]))
7704 {
7705 *yyaction = yytable[yyindex];
7706 *yyconflicts = yyconfl + yyconflp[yyindex];
7707 }
7708 else
7709 {
7710 *yyaction = 0;
7711 *yyconflicts = yyconfl + yyconflp[yyindex];
7712 }
7713 }
7714
7715 /** Compute post-reduction state.
7716 * \param yystate the current state
7717 * \param yysym the nonterminal to push on the stack
7718 */
7719 static inline yyStateNum
7720 yyLRgotoState (yyStateNum yystate, yySymbol yysym)
7721 {
7722 int yyr = yypgoto[yysym - YYNTOKENS] + yystate;
7723 if (0 <= yyr && yyr <= YYLAST && yycheck[yyr] == yystate)
7724 return yytable[yyr];
7725 else
7726 return yydefgoto[yysym - YYNTOKENS];
7727 }
7728
7729 static inline yybool
7730 yyisShiftAction (int yyaction)
7731 {
7732 return (yybool) (0 < yyaction);
7733 }
7734
7735 static inline yybool
7736 yyisErrorAction (int yyaction)
7737 {
7738 return (yybool) (yyaction == 0);
7739 }
7740
7741 /* GLRStates */
7742
7743 /** Return a fresh GLRStackItem in YYSTACKP. The item is an LR state
7744 * if YYISSTATE, and otherwise a semantic option. Callers should call
7745 * YY_RESERVE_GLRSTACK afterwards to make sure there is sufficient
7746 * headroom. */
7747
7748 static inline yyGLRStackItem*
7749 yynewGLRStackItem (yyGLRStack* yystackp, yybool yyisState)
7750 {
7751 yyGLRStackItem* yynewItem = yystackp->yynextFree;
7752 yystackp->yyspaceLeft -= 1;
7753 yystackp->yynextFree += 1;
7754 yynewItem->yystate.yyisState = yyisState;
7755 return yynewItem;
7756 }
7757
7758 /** Add a new semantic action that will execute the action for rule
7759 * YYRULE on the semantic values in YYRHS to the list of
7760 * alternative actions for YYSTATE. Assumes that YYRHS comes from
7761 * stack #YYK of *YYSTACKP. */
7762 static void
7763 yyaddDeferredAction (yyGLRStack* yystackp, size_t yyk, yyGLRState* yystate,
7764 yyGLRState* yyrhs, yyRuleNum yyrule)
7765 {
7766 yySemanticOption* yynewOption =
7767 &yynewGLRStackItem (yystackp, yyfalse)->yyoption;
7768 YYASSERT (!yynewOption->yyisState);
7769 yynewOption->yystate = yyrhs;
7770 yynewOption->yyrule = yyrule;
7771 if (yystackp->yytops.yylookaheadNeeds[yyk])
7772 {
7773 yynewOption->yyrawchar = yychar;
7774 yynewOption->yyval = yylval;
7775 }
7776 else
7777 yynewOption->yyrawchar = YYEMPTY;
7778 yynewOption->yynext = yystate->yysemantics.yyfirstVal;
7779 yystate->yysemantics.yyfirstVal = yynewOption;
7780
7781 YY_RESERVE_GLRSTACK (yystackp);
7782 }
7783
7784 /* GLRStacks */
7785
7786 /** Initialize YYSET to a singleton set containing an empty stack. */
7787 static yybool
7788 yyinitStateSet (yyGLRStateSet* yyset)
7789 {
7790 yyset->yysize = 1;
7791 yyset->yycapacity = 16;
7792 yyset->yystates = (yyGLRState**) YYMALLOC (16 * sizeof yyset->yystates[0]);
7793 if (! yyset->yystates)
7794 return yyfalse;
7795 yyset->yystates[0] = YY_NULLPTR;
7796 yyset->yylookaheadNeeds =
7797 (yybool*) YYMALLOC (16 * sizeof yyset->yylookaheadNeeds[0]);
7798 if (! yyset->yylookaheadNeeds)
7799 {
7800 YYFREE (yyset->yystates);
7801 return yyfalse;
7802 }
7803 return yytrue;
7804 }
7805
7806 static void yyfreeStateSet (yyGLRStateSet* yyset)
7807 {
7808 YYFREE (yyset->yystates);
7809 YYFREE (yyset->yylookaheadNeeds);
7810 }
7811
7812 /** Initialize *YYSTACKP to a single empty stack, with total maximum
7813 * capacity for all stacks of YYSIZE. */
7814 static yybool
7815 yyinitGLRStack (yyGLRStack* yystackp, size_t yysize)
7816 {
7817 yystackp->yyerrState = 0;
7818 yynerrs = 0;
7819 yystackp->yyspaceLeft = yysize;
7820 yystackp->yyitems =
7821 (yyGLRStackItem*) YYMALLOC (yysize * sizeof yystackp->yynextFree[0]);
7822 if (!yystackp->yyitems)
7823 return yyfalse;
7824 yystackp->yynextFree = yystackp->yyitems;
7825 yystackp->yysplitPoint = YY_NULLPTR;
7826 yystackp->yylastDeleted = YY_NULLPTR;
7827 return yyinitStateSet (&yystackp->yytops);
7828 }
7829
7830
7831 #if YYSTACKEXPANDABLE
7832 # define YYRELOC(YYFROMITEMS,YYTOITEMS,YYX,YYTYPE) \
7833 &((YYTOITEMS) - ((YYFROMITEMS) - (yyGLRStackItem*) (YYX)))->YYTYPE
7834
7835 /** If *YYSTACKP is expandable, extend it. WARNING: Pointers into the
7836 stack from outside should be considered invalid after this call.
7837 We always expand when there are 1 or fewer items left AFTER an
7838 allocation, so that we can avoid having external pointers exist
7839 across an allocation. */
7840 static void
7841 yyexpandGLRStack (yyGLRStack* yystackp)
7842 {
7843 yyGLRStackItem* yynewItems;
7844 yyGLRStackItem* yyp0, *yyp1;
7845 size_t yynewSize;
7846 size_t yyn;
7847 size_t yysize = (size_t) (yystackp->yynextFree - yystackp->yyitems);
7848 if (YYMAXDEPTH - YYHEADROOM < yysize)
7849 yyMemoryExhausted (yystackp);
7850 yynewSize = 2*yysize;
7851 if (YYMAXDEPTH < yynewSize)
7852 yynewSize = YYMAXDEPTH;
7853 yynewItems = (yyGLRStackItem*) YYMALLOC (yynewSize * sizeof yynewItems[0]);
7854 if (! yynewItems)
7855 yyMemoryExhausted (yystackp);
7856 for (yyp0 = yystackp->yyitems, yyp1 = yynewItems, yyn = yysize;
7857 0 < yyn;
7858 yyn -= 1, yyp0 += 1, yyp1 += 1)
7859 {
7860 *yyp1 = *yyp0;
7861 if (*(yybool *) yyp0)
7862 {
7863 yyGLRState* yys0 = &yyp0->yystate;
7864 yyGLRState* yys1 = &yyp1->yystate;
7865 if (yys0->yypred != YY_NULLPTR)
7866 yys1->yypred =
7867 YYRELOC (yyp0, yyp1, yys0->yypred, yystate);
7868 if (! yys0->yyresolved && yys0->yysemantics.yyfirstVal != YY_NULLPTR)
7869 yys1->yysemantics.yyfirstVal =
7870 YYRELOC (yyp0, yyp1, yys0->yysemantics.yyfirstVal, yyoption);
7871 }
7872 else
7873 {
7874 yySemanticOption* yyv0 = &yyp0->yyoption;
7875 yySemanticOption* yyv1 = &yyp1->yyoption;
7876 if (yyv0->yystate != YY_NULLPTR)
7877 yyv1->yystate = YYRELOC (yyp0, yyp1, yyv0->yystate, yystate);
7878 if (yyv0->yynext != YY_NULLPTR)
7879 yyv1->yynext = YYRELOC (yyp0, yyp1, yyv0->yynext, yyoption);
7880 }
7881 }
7882 if (yystackp->yysplitPoint != YY_NULLPTR)
7883 yystackp->yysplitPoint = YYRELOC (yystackp->yyitems, yynewItems,
7884 yystackp->yysplitPoint, yystate);
7885
7886 for (yyn = 0; yyn < yystackp->yytops.yysize; yyn += 1)
7887 if (yystackp->yytops.yystates[yyn] != YY_NULLPTR)
7888 yystackp->yytops.yystates[yyn] =
7889 YYRELOC (yystackp->yyitems, yynewItems,
7890 yystackp->yytops.yystates[yyn], yystate);
7891 YYFREE (yystackp->yyitems);
7892 yystackp->yyitems = yynewItems;
7893 yystackp->yynextFree = yynewItems + yysize;
7894 yystackp->yyspaceLeft = yynewSize - yysize;
7895 }
7896 #endif
7897
7898 static void
7899 yyfreeGLRStack (yyGLRStack* yystackp)
7900 {
7901 YYFREE (yystackp->yyitems);
7902 yyfreeStateSet (&yystackp->yytops);
7903 }
7904
7905 /** Assuming that YYS is a GLRState somewhere on *YYSTACKP, update the
7906 * splitpoint of *YYSTACKP, if needed, so that it is at least as deep as
7907 * YYS. */
7908 static inline void
7909 yyupdateSplit (yyGLRStack* yystackp, yyGLRState* yys)
7910 {
7911 if (yystackp->yysplitPoint != YY_NULLPTR && yystackp->yysplitPoint > yys)
7912 yystackp->yysplitPoint = yys;
7913 }
7914
7915 /** Invalidate stack #YYK in *YYSTACKP. */
7916 static inline void
7917 yymarkStackDeleted (yyGLRStack* yystackp, size_t yyk)
7918 {
7919 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
7920 yystackp->yylastDeleted = yystackp->yytops.yystates[yyk];
7921 yystackp->yytops.yystates[yyk] = YY_NULLPTR;
7922 }
7923
7924 /** Undelete the last stack in *YYSTACKP that was marked as deleted. Can
7925 only be done once after a deletion, and only when all other stacks have
7926 been deleted. */
7927 static void
7928 yyundeleteLastStack (yyGLRStack* yystackp)
7929 {
7930 if (yystackp->yylastDeleted == YY_NULLPTR || yystackp->yytops.yysize != 0)
7931 return;
7932 yystackp->yytops.yystates[0] = yystackp->yylastDeleted;
7933 yystackp->yytops.yysize = 1;
7934 YYDPRINTF ((stderr, "Restoring last deleted stack as stack #0.\n"));
7935 yystackp->yylastDeleted = YY_NULLPTR;
7936 }
7937
7938 static inline void
7939 yyremoveDeletes (yyGLRStack* yystackp)
7940 {
7941 size_t yyi, yyj;
7942 yyi = yyj = 0;
7943 while (yyj < yystackp->yytops.yysize)
7944 {
7945 if (yystackp->yytops.yystates[yyi] == YY_NULLPTR)
7946 {
7947 if (yyi == yyj)
7948 {
7949 YYDPRINTF ((stderr, "Removing dead stacks.\n"));
7950 }
7951 yystackp->yytops.yysize -= 1;
7952 }
7953 else
7954 {
7955 yystackp->yytops.yystates[yyj] = yystackp->yytops.yystates[yyi];
7956 /* In the current implementation, it's unnecessary to copy
7957 yystackp->yytops.yylookaheadNeeds[yyi] since, after
7958 yyremoveDeletes returns, the parser immediately either enters
7959 deterministic operation or shifts a token. However, it doesn't
7960 hurt, and the code might evolve to need it. */
7961 yystackp->yytops.yylookaheadNeeds[yyj] =
7962 yystackp->yytops.yylookaheadNeeds[yyi];
7963 if (yyj != yyi)
7964 {
7965 YYDPRINTF ((stderr, "Rename stack %lu -> %lu.\n",
7966 (unsigned long) yyi, (unsigned long) yyj));
7967 }
7968 yyj += 1;
7969 }
7970 yyi += 1;
7971 }
7972 }
7973
7974 /** Shift to a new state on stack #YYK of *YYSTACKP, corresponding to LR
7975 * state YYLRSTATE, at input position YYPOSN, with (resolved) semantic
7976 * value *YYVALP and source location *YYLOCP. */
7977 static inline void
7978 yyglrShift (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
7979 size_t yyposn,
7980 YYSTYPE* yyvalp)
7981 {
7982 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
7983
7984 yynewState->yylrState = yylrState;
7985 yynewState->yyposn = yyposn;
7986 yynewState->yyresolved = yytrue;
7987 yynewState->yypred = yystackp->yytops.yystates[yyk];
7988 yynewState->yysemantics.yysval = *yyvalp;
7989 yystackp->yytops.yystates[yyk] = yynewState;
7990
7991 YY_RESERVE_GLRSTACK (yystackp);
7992 }
7993
7994 /** Shift stack #YYK of *YYSTACKP, to a new state corresponding to LR
7995 * state YYLRSTATE, at input position YYPOSN, with the (unresolved)
7996 * semantic value of YYRHS under the action for YYRULE. */
7997 static inline void
7998 yyglrShiftDefer (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
7999 size_t yyposn, yyGLRState* yyrhs, yyRuleNum yyrule)
8000 {
8001 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
8002 YYASSERT (yynewState->yyisState);
8003
8004 yynewState->yylrState = yylrState;
8005 yynewState->yyposn = yyposn;
8006 yynewState->yyresolved = yyfalse;
8007 yynewState->yypred = yystackp->yytops.yystates[yyk];
8008 yynewState->yysemantics.yyfirstVal = YY_NULLPTR;
8009 yystackp->yytops.yystates[yyk] = yynewState;
8010
8011 /* Invokes YY_RESERVE_GLRSTACK. */
8012 yyaddDeferredAction (yystackp, yyk, yynewState, yyrhs, yyrule);
8013 }
8014
8015 #if !YYDEBUG
8016 # define YY_REDUCE_PRINT(Args)
8017 #else
8018 # define YY_REDUCE_PRINT(Args) \
8019 do { \
8020 if (yydebug) \
8021 yy_reduce_print Args; \
8022 } while (0)
8023
8024 /*----------------------------------------------------------------------.
8025 | Report that stack #YYK of *YYSTACKP is going to be reduced by YYRULE. |
8026 `----------------------------------------------------------------------*/
8027
8028 static inline void
8029 yy_reduce_print (yybool yynormal, yyGLRStackItem* yyvsp, size_t yyk,
8030 yyRuleNum yyrule, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8031 {
8032 int yynrhs = yyrhsLength (yyrule);
8033 int yyi;
8034 YYFPRINTF (stderr, "Reducing stack %lu by rule %d (line %lu):\n",
8035 (unsigned long) yyk, yyrule - 1,
8036 (unsigned long) yyrline[yyrule]);
8037 if (! yynormal)
8038 yyfillin (yyvsp, 1, -yynrhs);
8039 /* The symbols being reduced. */
8040 for (yyi = 0; yyi < yynrhs; yyi++)
8041 {
8042 YYFPRINTF (stderr, " $%d = ", yyi + 1);
8043 yy_symbol_print (stderr,
8044 yystos[yyvsp[yyi - yynrhs + 1].yystate.yylrState],
8045 &yyvsp[yyi - yynrhs + 1].yystate.yysemantics.yysval , P, tokens, index);
8046 if (!yyvsp[yyi - yynrhs + 1].yystate.yyresolved)
8047 YYFPRINTF (stderr, " (unresolved)");
8048 YYFPRINTF (stderr, "\n");
8049 }
8050 }
8051 #endif
8052
8053 /** Pop the symbols consumed by reduction #YYRULE from the top of stack
8054 * #YYK of *YYSTACKP, and perform the appropriate semantic action on their
8055 * semantic values. Assumes that all ambiguities in semantic values
8056 * have been previously resolved. Set *YYVALP to the resulting value,
8057 * and *YYLOCP to the computed location (if any). Return value is as
8058 * for userAction. */
8059 static inline YYRESULTTAG
8060 yydoAction (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
8061 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8062 {
8063 int yynrhs = yyrhsLength (yyrule);
8064
8065 if (yystackp->yysplitPoint == YY_NULLPTR)
8066 {
8067 /* Standard special case: single stack. */
8068 yyGLRStackItem* yyrhs = (yyGLRStackItem*) yystackp->yytops.yystates[yyk];
8069 YYASSERT (yyk == 0);
8070 yystackp->yynextFree -= yynrhs;
8071 yystackp->yyspaceLeft += (size_t) yynrhs;
8072 yystackp->yytops.yystates[0] = & yystackp->yynextFree[-1].yystate;
8073 YY_REDUCE_PRINT ((yytrue, yyrhs, yyk, yyrule, P, tokens, index));
8074 return yyuserAction (yyrule, yynrhs, yyrhs, yystackp,
8075 yyvalp, P, tokens, index);
8076 }
8077 else
8078 {
8079 int yyi;
8080 yyGLRState* yys;
8081 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
8082 yys = yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred
8083 = yystackp->yytops.yystates[yyk];
8084 for (yyi = 0; yyi < yynrhs; yyi += 1)
8085 {
8086 yys = yys->yypred;
8087 YYASSERT (yys);
8088 }
8089 yyupdateSplit (yystackp, yys);
8090 yystackp->yytops.yystates[yyk] = yys;
8091 YY_REDUCE_PRINT ((yyfalse, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1, yyk, yyrule, P, tokens, index));
8092 return yyuserAction (yyrule, yynrhs, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
8093 yystackp, yyvalp, P, tokens, index);
8094 }
8095 }
8096
8097 /** Pop items off stack #YYK of *YYSTACKP according to grammar rule YYRULE,
8098 * and push back on the resulting nonterminal symbol. Perform the
8099 * semantic action associated with YYRULE and store its value with the
8100 * newly pushed state, if YYFORCEEVAL or if *YYSTACKP is currently
8101 * unambiguous. Otherwise, store the deferred semantic action with
8102 * the new state. If the new state would have an identical input
8103 * position, LR state, and predecessor to an existing state on the stack,
8104 * it is identified with that existing state, eliminating stack #YYK from
8105 * *YYSTACKP. In this case, the semantic value is
8106 * added to the options for the existing state's semantic value.
8107 */
8108 static inline YYRESULTTAG
8109 yyglrReduce (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
8110 yybool yyforceEval, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8111 {
8112 size_t yyposn = yystackp->yytops.yystates[yyk]->yyposn;
8113
8114 if (yyforceEval || yystackp->yysplitPoint == YY_NULLPTR)
8115 {
8116 YYSTYPE yysval;
8117
8118 YYRESULTTAG yyflag = yydoAction (yystackp, yyk, yyrule, &yysval, P, tokens, index);
8119 if (yyflag == yyerr && yystackp->yysplitPoint != YY_NULLPTR)
8120 {
8121 YYDPRINTF ((stderr, "Parse on stack %lu rejected by rule #%d.\n",
8122 (unsigned long) yyk, yyrule - 1));
8123 }
8124 if (yyflag != yyok)
8125 return yyflag;
8126 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyrule], &yysval, &yyloc);
8127 yyglrShift (yystackp, yyk,
8128 yyLRgotoState (yystackp->yytops.yystates[yyk]->yylrState,
8129 yylhsNonterm (yyrule)),
8130 yyposn, &yysval);
8131 }
8132 else
8133 {
8134 size_t yyi;
8135 int yyn;
8136 yyGLRState* yys, *yys0 = yystackp->yytops.yystates[yyk];
8137 yyStateNum yynewLRState;
8138
8139 for (yys = yystackp->yytops.yystates[yyk], yyn = yyrhsLength (yyrule);
8140 0 < yyn; yyn -= 1)
8141 {
8142 yys = yys->yypred;
8143 YYASSERT (yys);
8144 }
8145 yyupdateSplit (yystackp, yys);
8146 yynewLRState = yyLRgotoState (yys->yylrState, yylhsNonterm (yyrule));
8147 YYDPRINTF ((stderr,
8148 "Reduced stack %lu by rule #%d; action deferred. "
8149 "Now in state %d.\n",
8150 (unsigned long) yyk, yyrule - 1, yynewLRState));
8151 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
8152 if (yyi != yyk && yystackp->yytops.yystates[yyi] != YY_NULLPTR)
8153 {
8154 yyGLRState *yysplit = yystackp->yysplitPoint;
8155 yyGLRState *yyp = yystackp->yytops.yystates[yyi];
8156 while (yyp != yys && yyp != yysplit && yyp->yyposn >= yyposn)
8157 {
8158 if (yyp->yylrState == yynewLRState && yyp->yypred == yys)
8159 {
8160 yyaddDeferredAction (yystackp, yyk, yyp, yys0, yyrule);
8161 yymarkStackDeleted (yystackp, yyk);
8162 YYDPRINTF ((stderr, "Merging stack %lu into stack %lu.\n",
8163 (unsigned long) yyk,
8164 (unsigned long) yyi));
8165 return yyok;
8166 }
8167 yyp = yyp->yypred;
8168 }
8169 }
8170 yystackp->yytops.yystates[yyk] = yys;
8171 yyglrShiftDefer (yystackp, yyk, yynewLRState, yyposn, yys0, yyrule);
8172 }
8173 return yyok;
8174 }
8175
8176 static size_t
8177 yysplitStack (yyGLRStack* yystackp, size_t yyk)
8178 {
8179 if (yystackp->yysplitPoint == YY_NULLPTR)
8180 {
8181 YYASSERT (yyk == 0);
8182 yystackp->yysplitPoint = yystackp->yytops.yystates[yyk];
8183 }
8184 if (yystackp->yytops.yysize >= yystackp->yytops.yycapacity)
8185 {
8186 yyGLRState** yynewStates = YY_NULLPTR;
8187 yybool* yynewLookaheadNeeds;
8188
8189 if (yystackp->yytops.yycapacity
8190 > (YYSIZEMAX / (2 * sizeof yynewStates[0])))
8191 yyMemoryExhausted (yystackp);
8192 yystackp->yytops.yycapacity *= 2;
8193
8194 yynewStates =
8195 (yyGLRState**) YYREALLOC (yystackp->yytops.yystates,
8196 (yystackp->yytops.yycapacity
8197 * sizeof yynewStates[0]));
8198 if (yynewStates == YY_NULLPTR)
8199 yyMemoryExhausted (yystackp);
8200 yystackp->yytops.yystates = yynewStates;
8201
8202 yynewLookaheadNeeds =
8203 (yybool*) YYREALLOC (yystackp->yytops.yylookaheadNeeds,
8204 (yystackp->yytops.yycapacity
8205 * sizeof yynewLookaheadNeeds[0]));
8206 if (yynewLookaheadNeeds == YY_NULLPTR)
8207 yyMemoryExhausted (yystackp);
8208 yystackp->yytops.yylookaheadNeeds = yynewLookaheadNeeds;
8209 }
8210 yystackp->yytops.yystates[yystackp->yytops.yysize]
8211 = yystackp->yytops.yystates[yyk];
8212 yystackp->yytops.yylookaheadNeeds[yystackp->yytops.yysize]
8213 = yystackp->yytops.yylookaheadNeeds[yyk];
8214 yystackp->yytops.yysize += 1;
8215 return yystackp->yytops.yysize-1;
8216 }
8217
8218 /** True iff YYY0 and YYY1 represent identical options at the top level.
8219 * That is, they represent the same rule applied to RHS symbols
8220 * that produce the same terminal symbols. */
8221 static yybool
8222 yyidenticalOptions (yySemanticOption* yyy0, yySemanticOption* yyy1)
8223 {
8224 if (yyy0->yyrule == yyy1->yyrule)
8225 {
8226 yyGLRState *yys0, *yys1;
8227 int yyn;
8228 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
8229 yyn = yyrhsLength (yyy0->yyrule);
8230 yyn > 0;
8231 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
8232 if (yys0->yyposn != yys1->yyposn)
8233 return yyfalse;
8234 return yytrue;
8235 }
8236 else
8237 return yyfalse;
8238 }
8239
8240 /** Assuming identicalOptions (YYY0,YYY1), destructively merge the
8241 * alternative semantic values for the RHS-symbols of YYY1 and YYY0. */
8242 static void
8243 yymergeOptionSets (yySemanticOption* yyy0, yySemanticOption* yyy1)
8244 {
8245 yyGLRState *yys0, *yys1;
8246 int yyn;
8247 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
8248 yyn = yyrhsLength (yyy0->yyrule);
8249 yyn > 0;
8250 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
8251 {
8252 if (yys0 == yys1)
8253 break;
8254 else if (yys0->yyresolved)
8255 {
8256 yys1->yyresolved = yytrue;
8257 yys1->yysemantics.yysval = yys0->yysemantics.yysval;
8258 }
8259 else if (yys1->yyresolved)
8260 {
8261 yys0->yyresolved = yytrue;
8262 yys0->yysemantics.yysval = yys1->yysemantics.yysval;
8263 }
8264 else
8265 {
8266 yySemanticOption** yyz0p = &yys0->yysemantics.yyfirstVal;
8267 yySemanticOption* yyz1 = yys1->yysemantics.yyfirstVal;
8268 while (yytrue)
8269 {
8270 if (yyz1 == *yyz0p || yyz1 == YY_NULLPTR)
8271 break;
8272 else if (*yyz0p == YY_NULLPTR)
8273 {
8274 *yyz0p = yyz1;
8275 break;
8276 }
8277 else if (*yyz0p < yyz1)
8278 {
8279 yySemanticOption* yyz = *yyz0p;
8280 *yyz0p = yyz1;
8281 yyz1 = yyz1->yynext;
8282 (*yyz0p)->yynext = yyz;
8283 }
8284 yyz0p = &(*yyz0p)->yynext;
8285 }
8286 yys1->yysemantics.yyfirstVal = yys0->yysemantics.yyfirstVal;
8287 }
8288 }
8289 }
8290
8291 /** Y0 and Y1 represent two possible actions to take in a given
8292 * parsing state; return 0 if no combination is possible,
8293 * 1 if user-mergeable, 2 if Y0 is preferred, 3 if Y1 is preferred. */
8294 static int
8295 yypreference (yySemanticOption* y0, yySemanticOption* y1)
8296 {
8297 yyRuleNum r0 = y0->yyrule, r1 = y1->yyrule;
8298 int p0 = yydprec[r0], p1 = yydprec[r1];
8299
8300 if (p0 == p1)
8301 {
8302 if (yymerger[r0] == 0 || yymerger[r0] != yymerger[r1])
8303 return 0;
8304 else
8305 return 1;
8306 }
8307 if (p0 == 0 || p1 == 0)
8308 return 0;
8309 if (p0 < p1)
8310 return 3;
8311 if (p1 < p0)
8312 return 2;
8313 return 0;
8314 }
8315
8316 static YYRESULTTAG yyresolveValue (yyGLRState* yys,
8317 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index);
8318
8319
8320 /** Resolve the previous YYN states starting at and including state YYS
8321 * on *YYSTACKP. If result != yyok, some states may have been left
8322 * unresolved possibly with empty semantic option chains. Regardless
8323 * of whether result = yyok, each state has been left with consistent
8324 * data so that yydestroyGLRState can be invoked if necessary. */
8325 static YYRESULTTAG
8326 yyresolveStates (yyGLRState* yys, int yyn,
8327 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8328 {
8329 if (0 < yyn)
8330 {
8331 YYASSERT (yys->yypred);
8332 YYCHK (yyresolveStates (yys->yypred, yyn-1, yystackp, P, tokens, index));
8333 if (! yys->yyresolved)
8334 YYCHK (yyresolveValue (yys, yystackp, P, tokens, index));
8335 }
8336 return yyok;
8337 }
8338
8339 /** Resolve the states for the RHS of YYOPT on *YYSTACKP, perform its
8340 * user action, and return the semantic value and location in *YYVALP
8341 * and *YYLOCP. Regardless of whether result = yyok, all RHS states
8342 * have been destroyed (assuming the user action destroys all RHS
8343 * semantic values if invoked). */
8344 static YYRESULTTAG
8345 yyresolveAction (yySemanticOption* yyopt, yyGLRStack* yystackp,
8346 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8347 {
8348 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
8349 int yynrhs = yyrhsLength (yyopt->yyrule);
8350 YYRESULTTAG yyflag =
8351 yyresolveStates (yyopt->yystate, yynrhs, yystackp, P, tokens, index);
8352 if (yyflag != yyok)
8353 {
8354 yyGLRState *yys;
8355 for (yys = yyopt->yystate; yynrhs > 0; yys = yys->yypred, yynrhs -= 1)
8356 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
8357 return yyflag;
8358 }
8359
8360 yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred = yyopt->yystate;
8361 {
8362 int yychar_current = yychar;
8363 YYSTYPE yylval_current = yylval;
8364 yychar = yyopt->yyrawchar;
8365 yylval = yyopt->yyval;
8366 yyflag = yyuserAction (yyopt->yyrule, yynrhs,
8367 yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
8368 yystackp, yyvalp, P, tokens, index);
8369 yychar = yychar_current;
8370 yylval = yylval_current;
8371 }
8372 return yyflag;
8373 }
8374
8375 #if YYDEBUG
8376 static void
8377 yyreportTree (yySemanticOption* yyx, int yyindent)
8378 {
8379 int yynrhs = yyrhsLength (yyx->yyrule);
8380 int yyi;
8381 yyGLRState* yys;
8382 yyGLRState* yystates[1 + YYMAXRHS];
8383 yyGLRState yyleftmost_state;
8384
8385 for (yyi = yynrhs, yys = yyx->yystate; 0 < yyi; yyi -= 1, yys = yys->yypred)
8386 yystates[yyi] = yys;
8387 if (yys == YY_NULLPTR)
8388 {
8389 yyleftmost_state.yyposn = 0;
8390 yystates[0] = &yyleftmost_state;
8391 }
8392 else
8393 yystates[0] = yys;
8394
8395 if (yyx->yystate->yyposn < yys->yyposn + 1)
8396 YYFPRINTF (stderr, "%*s%s -> <Rule %d, empty>\n",
8397 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
8398 yyx->yyrule - 1);
8399 else
8400 YYFPRINTF (stderr, "%*s%s -> <Rule %d, tokens %lu .. %lu>\n",
8401 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
8402 yyx->yyrule - 1, (unsigned long) (yys->yyposn + 1),
8403 (unsigned long) yyx->yystate->yyposn);
8404 for (yyi = 1; yyi <= yynrhs; yyi += 1)
8405 {
8406 if (yystates[yyi]->yyresolved)
8407 {
8408 if (yystates[yyi-1]->yyposn+1 > yystates[yyi]->yyposn)
8409 YYFPRINTF (stderr, "%*s%s <empty>\n", yyindent+2, "",
8410 yytokenName (yystos[yystates[yyi]->yylrState]));
8411 else
8412 YYFPRINTF (stderr, "%*s%s <tokens %lu .. %lu>\n", yyindent+2, "",
8413 yytokenName (yystos[yystates[yyi]->yylrState]),
8414 (unsigned long) (yystates[yyi-1]->yyposn + 1),
8415 (unsigned long) yystates[yyi]->yyposn);
8416 }
8417 else
8418 yyreportTree (yystates[yyi]->yysemantics.yyfirstVal, yyindent+2);
8419 }
8420 }
8421 #endif
8422
8423 static YYRESULTTAG
8424 yyreportAmbiguity (yySemanticOption* yyx0,
8425 yySemanticOption* yyx1, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8426 {
8427 YYUSE (yyx0);
8428 YYUSE (yyx1);
8429
8430 #if YYDEBUG
8431 YYFPRINTF (stderr, "Ambiguity detected.\n");
8432 YYFPRINTF (stderr, "Option 1,\n");
8433 yyreportTree (yyx0, 2);
8434 YYFPRINTF (stderr, "\nOption 2,\n");
8435 yyreportTree (yyx1, 2);
8436 YYFPRINTF (stderr, "\n");
8437 #endif
8438
8439 yyerror (P, tokens, index, YY_("syntax is ambiguous"));
8440 return yyabort;
8441 }
8442
8443 /** Resolve the ambiguity represented in state YYS in *YYSTACKP,
8444 * perform the indicated actions, and set the semantic value of YYS.
8445 * If result != yyok, the chain of semantic options in YYS has been
8446 * cleared instead or it has been left unmodified except that
8447 * redundant options may have been removed. Regardless of whether
8448 * result = yyok, YYS has been left with consistent data so that
8449 * yydestroyGLRState can be invoked if necessary. */
8450 static YYRESULTTAG
8451 yyresolveValue (yyGLRState* yys, yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8452 {
8453 yySemanticOption* yyoptionList = yys->yysemantics.yyfirstVal;
8454 yySemanticOption* yybest = yyoptionList;
8455 yySemanticOption** yypp;
8456 yybool yymerge = yyfalse;
8457 YYSTYPE yysval;
8458 YYRESULTTAG yyflag;
8459
8460 for (yypp = &yyoptionList->yynext; *yypp != YY_NULLPTR; )
8461 {
8462 yySemanticOption* yyp = *yypp;
8463
8464 if (yyidenticalOptions (yybest, yyp))
8465 {
8466 yymergeOptionSets (yybest, yyp);
8467 *yypp = yyp->yynext;
8468 }
8469 else
8470 {
8471 switch (yypreference (yybest, yyp))
8472 {
8473 case 0:
8474 return yyreportAmbiguity (yybest, yyp, P, tokens, index);
8475 break;
8476 case 1:
8477 yymerge = yytrue;
8478 break;
8479 case 2:
8480 break;
8481 case 3:
8482 yybest = yyp;
8483 yymerge = yyfalse;
8484 break;
8485 default:
8486 /* This cannot happen so it is not worth a YYASSERT (yyfalse),
8487 but some compilers complain if the default case is
8488 omitted. */
8489 break;
8490 }
8491 yypp = &yyp->yynext;
8492 }
8493 }
8494
8495 if (yymerge)
8496 {
8497 yySemanticOption* yyp;
8498 int yyprec = yydprec[yybest->yyrule];
8499 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
8500 if (yyflag == yyok)
8501 for (yyp = yybest->yynext; yyp != YY_NULLPTR; yyp = yyp->yynext)
8502 {
8503 if (yyprec == yydprec[yyp->yyrule])
8504 {
8505 YYSTYPE yysval_other;
8506 yyflag = yyresolveAction (yyp, yystackp, &yysval_other, P, tokens, index);
8507 if (yyflag != yyok)
8508 {
8509 yydestruct ("Cleanup: discarding incompletely merged value for",
8510 yystos[yys->yylrState],
8511 &yysval, P, tokens, index);
8512 break;
8513 }
8514 yyuserMerge (yymerger[yyp->yyrule], &yysval, &yysval_other);
8515 }
8516 }
8517 }
8518 else
8519 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
8520
8521 if (yyflag == yyok)
8522 {
8523 yys->yyresolved = yytrue;
8524 yys->yysemantics.yysval = yysval;
8525 }
8526 else
8527 yys->yysemantics.yyfirstVal = YY_NULLPTR;
8528 return yyflag;
8529 }
8530
8531 static YYRESULTTAG
8532 yyresolveStack (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8533 {
8534 if (yystackp->yysplitPoint != YY_NULLPTR)
8535 {
8536 yyGLRState* yys;
8537 int yyn;
8538
8539 for (yyn = 0, yys = yystackp->yytops.yystates[0];
8540 yys != yystackp->yysplitPoint;
8541 yys = yys->yypred, yyn += 1)
8542 continue;
8543 YYCHK (yyresolveStates (yystackp->yytops.yystates[0], yyn, yystackp
8544 , P, tokens, index));
8545 }
8546 return yyok;
8547 }
8548
8549 static void
8550 yycompressStack (yyGLRStack* yystackp)
8551 {
8552 yyGLRState* yyp, *yyq, *yyr;
8553
8554 if (yystackp->yytops.yysize != 1 || yystackp->yysplitPoint == YY_NULLPTR)
8555 return;
8556
8557 for (yyp = yystackp->yytops.yystates[0], yyq = yyp->yypred, yyr = YY_NULLPTR;
8558 yyp != yystackp->yysplitPoint;
8559 yyr = yyp, yyp = yyq, yyq = yyp->yypred)
8560 yyp->yypred = yyr;
8561
8562 yystackp->yyspaceLeft += (size_t) (yystackp->yynextFree - yystackp->yyitems);
8563 yystackp->yynextFree = ((yyGLRStackItem*) yystackp->yysplitPoint) + 1;
8564 yystackp->yyspaceLeft -= (size_t) (yystackp->yynextFree - yystackp->yyitems);
8565 yystackp->yysplitPoint = YY_NULLPTR;
8566 yystackp->yylastDeleted = YY_NULLPTR;
8567
8568 while (yyr != YY_NULLPTR)
8569 {
8570 yystackp->yynextFree->yystate = *yyr;
8571 yyr = yyr->yypred;
8572 yystackp->yynextFree->yystate.yypred = &yystackp->yynextFree[-1].yystate;
8573 yystackp->yytops.yystates[0] = &yystackp->yynextFree->yystate;
8574 yystackp->yynextFree += 1;
8575 yystackp->yyspaceLeft -= 1;
8576 }
8577 }
8578
8579 static YYRESULTTAG
8580 yyprocessOneStack (yyGLRStack* yystackp, size_t yyk,
8581 size_t yyposn, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8582 {
8583 while (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
8584 {
8585 yyStateNum yystate = yystackp->yytops.yystates[yyk]->yylrState;
8586 YYDPRINTF ((stderr, "Stack %lu Entering state %d\n",
8587 (unsigned long) yyk, yystate));
8588
8589 YYASSERT (yystate != YYFINAL);
8590
8591 if (yyisDefaultedState (yystate))
8592 {
8593 YYRESULTTAG yyflag;
8594 yyRuleNum yyrule = yydefaultAction (yystate);
8595 if (yyrule == 0)
8596 {
8597 YYDPRINTF ((stderr, "Stack %lu dies.\n",
8598 (unsigned long) yyk));
8599 yymarkStackDeleted (yystackp, yyk);
8600 return yyok;
8601 }
8602 yyflag = yyglrReduce (yystackp, yyk, yyrule, yyimmediate[yyrule], P, tokens, index);
8603 if (yyflag == yyerr)
8604 {
8605 YYDPRINTF ((stderr,
8606 "Stack %lu dies "
8607 "(predicate failure or explicit user error).\n",
8608 (unsigned long) yyk));
8609 yymarkStackDeleted (yystackp, yyk);
8610 return yyok;
8611 }
8612 if (yyflag != yyok)
8613 return yyflag;
8614 }
8615 else
8616 {
8617 yySymbol yytoken;
8618 int yyaction;
8619 const short* yyconflicts;
8620
8621 yystackp->yytops.yylookaheadNeeds[yyk] = yytrue;
8622 if (yychar == YYEMPTY)
8623 {
8624 YYDPRINTF ((stderr, "Reading a token: "));
8625 yychar = yylex (&yylval, P, tokens, index);
8626 }
8627
8628 if (yychar <= YYEOF)
8629 {
8630 yychar = yytoken = YYEOF;
8631 YYDPRINTF ((stderr, "Now at end of input.\n"));
8632 }
8633 else
8634 {
8635 yytoken = YYTRANSLATE (yychar);
8636 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
8637 }
8638
8639 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
8640
8641 while (*yyconflicts != 0)
8642 {
8643 YYRESULTTAG yyflag;
8644 size_t yynewStack = yysplitStack (yystackp, yyk);
8645 YYDPRINTF ((stderr, "Splitting off stack %lu from %lu.\n",
8646 (unsigned long) yynewStack,
8647 (unsigned long) yyk));
8648 yyflag = yyglrReduce (yystackp, yynewStack,
8649 *yyconflicts,
8650 yyimmediate[*yyconflicts], P, tokens, index);
8651 if (yyflag == yyok)
8652 YYCHK (yyprocessOneStack (yystackp, yynewStack,
8653 yyposn, P, tokens, index));
8654 else if (yyflag == yyerr)
8655 {
8656 YYDPRINTF ((stderr, "Stack %lu dies.\n",
8657 (unsigned long) yynewStack));
8658 yymarkStackDeleted (yystackp, yynewStack);
8659 }
8660 else
8661 return yyflag;
8662 yyconflicts += 1;
8663 }
8664
8665 if (yyisShiftAction (yyaction))
8666 break;
8667 else if (yyisErrorAction (yyaction))
8668 {
8669 YYDPRINTF ((stderr, "Stack %lu dies.\n",
8670 (unsigned long) yyk));
8671 yymarkStackDeleted (yystackp, yyk);
8672 break;
8673 }
8674 else
8675 {
8676 YYRESULTTAG yyflag = yyglrReduce (yystackp, yyk, -yyaction,
8677 yyimmediate[-yyaction], P, tokens, index);
8678 if (yyflag == yyerr)
8679 {
8680 YYDPRINTF ((stderr,
8681 "Stack %lu dies "
8682 "(predicate failure or explicit user error).\n",
8683 (unsigned long) yyk));
8684 yymarkStackDeleted (yystackp, yyk);
8685 break;
8686 }
8687 else if (yyflag != yyok)
8688 return yyflag;
8689 }
8690 }
8691 }
8692 return yyok;
8693 }
8694
8695 static void
8696 yyreportSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8697 {
8698 if (yystackp->yyerrState != 0)
8699 return;
8700 #if ! YYERROR_VERBOSE
8701 yyerror (P, tokens, index, YY_("syntax error"));
8702 #else
8703 {
8704 yySymbol yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
8705 size_t yysize0 = yytnamerr (YY_NULLPTR, yytokenName (yytoken));
8706 size_t yysize = yysize0;
8707 yybool yysize_overflow = yyfalse;
8708 char* yymsg = YY_NULLPTR;
8709 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
8710 /* Internationalized format string. */
8711 const char *yyformat = YY_NULLPTR;
8712 /* Arguments of yyformat. */
8713 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
8714 /* Number of reported tokens (one for the "unexpected", one per
8715 "expected"). */
8716 int yycount = 0;
8717
8718 /* There are many possibilities here to consider:
8719 - If this state is a consistent state with a default action, then
8720 the only way this function was invoked is if the default action
8721 is an error action. In that case, don't check for expected
8722 tokens because there are none.
8723 - The only way there can be no lookahead present (in yychar) is if
8724 this state is a consistent state with a default action. Thus,
8725 detecting the absence of a lookahead is sufficient to determine
8726 that there is no unexpected or expected token to report. In that
8727 case, just report a simple "syntax error".
8728 - Don't assume there isn't a lookahead just because this state is a
8729 consistent state with a default action. There might have been a
8730 previous inconsistent state, consistent state with a non-default
8731 action, or user semantic action that manipulated yychar.
8732 - Of course, the expected token list depends on states to have
8733 correct lookahead information, and it depends on the parser not
8734 to perform extra reductions after fetching a lookahead from the
8735 scanner and before detecting a syntax error. Thus, state merging
8736 (from LALR or IELR) and default reductions corrupt the expected
8737 token list. However, the list is correct for canonical LR with
8738 one exception: it will still contain any token that will not be
8739 accepted due to an error action in a later state.
8740 */
8741 if (yytoken != YYEMPTY)
8742 {
8743 int yyn = yypact[yystackp->yytops.yystates[0]->yylrState];
8744 yyarg[yycount++] = yytokenName (yytoken);
8745 if (!yypact_value_is_default (yyn))
8746 {
8747 /* Start YYX at -YYN if negative to avoid negative indexes in
8748 YYCHECK. In other words, skip the first -YYN actions for this
8749 state because they are default actions. */
8750 int yyxbegin = yyn < 0 ? -yyn : 0;
8751 /* Stay within bounds of both yycheck and yytname. */
8752 int yychecklim = YYLAST - yyn + 1;
8753 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
8754 int yyx;
8755 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
8756 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
8757 && !yytable_value_is_error (yytable[yyx + yyn]))
8758 {
8759 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
8760 {
8761 yycount = 1;
8762 yysize = yysize0;
8763 break;
8764 }
8765 yyarg[yycount++] = yytokenName (yyx);
8766 {
8767 size_t yysz = yysize + yytnamerr (YY_NULLPTR, yytokenName (yyx));
8768 if (yysz < yysize)
8769 yysize_overflow = yytrue;
8770 yysize = yysz;
8771 }
8772 }
8773 }
8774 }
8775
8776 switch (yycount)
8777 {
8778 #define YYCASE_(N, S) \
8779 case N: \
8780 yyformat = S; \
8781 break
8782 default: /* Avoid compiler warnings. */
8783 YYCASE_(0, YY_("syntax error"));
8784 YYCASE_(1, YY_("syntax error, unexpected %s"));
8785 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
8786 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
8787 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
8788 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
8789 #undef YYCASE_
8790 }
8791
8792 {
8793 size_t yysz = yysize + strlen (yyformat);
8794 if (yysz < yysize)
8795 yysize_overflow = yytrue;
8796 yysize = yysz;
8797 }
8798
8799 if (!yysize_overflow)
8800 yymsg = (char *) YYMALLOC (yysize);
8801
8802 if (yymsg)
8803 {
8804 char *yyp = yymsg;
8805 int yyi = 0;
8806 while ((*yyp = *yyformat))
8807 {
8808 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
8809 {
8810 yyp += yytnamerr (yyp, yyarg[yyi++]);
8811 yyformat += 2;
8812 }
8813 else
8814 {
8815 yyp++;
8816 yyformat++;
8817 }
8818 }
8819 yyerror (P, tokens, index, yymsg);
8820 YYFREE (yymsg);
8821 }
8822 else
8823 {
8824 yyerror (P, tokens, index, YY_("syntax error"));
8825 yyMemoryExhausted (yystackp);
8826 }
8827 }
8828 #endif /* YYERROR_VERBOSE */
8829 yynerrs += 1;
8830 }
8831
8832 /* Recover from a syntax error on *YYSTACKP, assuming that *YYSTACKP->YYTOKENP,
8833 yylval, and yylloc are the syntactic category, semantic value, and location
8834 of the lookahead. */
8835 static void
8836 yyrecoverSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8837 {
8838 size_t yyk;
8839 int yyj;
8840
8841 if (yystackp->yyerrState == 3)
8842 /* We just shifted the error token and (perhaps) took some
8843 reductions. Skip tokens until we can proceed. */
8844 while (yytrue)
8845 {
8846 yySymbol yytoken;
8847 if (yychar == YYEOF)
8848 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
8849 if (yychar != YYEMPTY)
8850 {
8851 yytoken = YYTRANSLATE (yychar);
8852 yydestruct ("Error: discarding",
8853 yytoken, &yylval, P, tokens, index);
8854 }
8855 YYDPRINTF ((stderr, "Reading a token: "));
8856 yychar = yylex (&yylval, P, tokens, index);
8857 if (yychar <= YYEOF)
8858 {
8859 yychar = yytoken = YYEOF;
8860 YYDPRINTF ((stderr, "Now at end of input.\n"));
8861 }
8862 else
8863 {
8864 yytoken = YYTRANSLATE (yychar);
8865 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
8866 }
8867 yyj = yypact[yystackp->yytops.yystates[0]->yylrState];
8868 if (yypact_value_is_default (yyj))
8869 return;
8870 yyj += yytoken;
8871 if (yyj < 0 || YYLAST < yyj || yycheck[yyj] != yytoken)
8872 {
8873 if (yydefact[yystackp->yytops.yystates[0]->yylrState] != 0)
8874 return;
8875 }
8876 else if (! yytable_value_is_error (yytable[yyj]))
8877 return;
8878 }
8879
8880 /* Reduce to one stack. */
8881 for (yyk = 0; yyk < yystackp->yytops.yysize; yyk += 1)
8882 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
8883 break;
8884 if (yyk >= yystackp->yytops.yysize)
8885 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
8886 for (yyk += 1; yyk < yystackp->yytops.yysize; yyk += 1)
8887 yymarkStackDeleted (yystackp, yyk);
8888 yyremoveDeletes (yystackp);
8889 yycompressStack (yystackp);
8890
8891 /* Now pop stack until we find a state that shifts the error token. */
8892 yystackp->yyerrState = 3;
8893 while (yystackp->yytops.yystates[0] != YY_NULLPTR)
8894 {
8895 yyGLRState *yys = yystackp->yytops.yystates[0];
8896 yyj = yypact[yys->yylrState];
8897 if (! yypact_value_is_default (yyj))
8898 {
8899 yyj += YYTERROR;
8900 if (0 <= yyj && yyj <= YYLAST && yycheck[yyj] == YYTERROR
8901 && yyisShiftAction (yytable[yyj]))
8902 {
8903 /* Shift the error token. */
8904 YY_SYMBOL_PRINT ("Shifting", yystos[yytable[yyj]],
8905 &yylval, &yyerrloc);
8906 yyglrShift (yystackp, 0, yytable[yyj],
8907 yys->yyposn, &yylval);
8908 yys = yystackp->yytops.yystates[0];
8909 break;
8910 }
8911 }
8912 if (yys->yypred != YY_NULLPTR)
8913 yydestroyGLRState ("Error: popping", yys, P, tokens, index);
8914 yystackp->yytops.yystates[0] = yys->yypred;
8915 yystackp->yynextFree -= 1;
8916 yystackp->yyspaceLeft += 1;
8917 }
8918 if (yystackp->yytops.yystates[0] == YY_NULLPTR)
8919 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
8920 }
8921
8922 #define YYCHK1(YYE) \
8923 do { \
8924 switch (YYE) { \
8925 case yyok: \
8926 break; \
8927 case yyabort: \
8928 goto yyabortlab; \
8929 case yyaccept: \
8930 goto yyacceptlab; \
8931 case yyerr: \
8932 goto yyuser_error; \
8933 default: \
8934 goto yybuglab; \
8935 } \
8936 } while (0)
8937
8938 /*----------.
8939 | yyparse. |
8940 `----------*/
8941
8942 int
8943 yyparse (struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8944 {
8945 int yyresult;
8946 yyGLRStack yystack;
8947 yyGLRStack* const yystackp = &yystack;
8948 size_t yyposn;
8949
8950 YYDPRINTF ((stderr, "Starting parse\n"));
8951
8952 yychar = YYEMPTY;
8953 yylval = yyval_default;
8954
8955 /* User initialization code. */
8956 #line 123 "src/parser_proc_grammar.y" /* glr.c:2265 */
8957 {
8958 }
8959
8960 #line 8961 "src/parser_proc.c" /* glr.c:2265 */
8961
8962 if (! yyinitGLRStack (yystackp, YYINITDEPTH))
8963 goto yyexhaustedlab;
8964 switch (YYSETJMP (yystack.yyexception_buffer))
8965 {
8966 case 0: break;
8967 case 1: goto yyabortlab;
8968 case 2: goto yyexhaustedlab;
8969 default: goto yybuglab;
8970 }
8971 yyglrShift (&yystack, 0, 0, 0, &yylval);
8972 yyposn = 0;
8973
8974 while (yytrue)
8975 {
8976 /* For efficiency, we have two loops, the first of which is
8977 specialized to deterministic operation (single stack, no
8978 potential ambiguity). */
8979 /* Standard mode */
8980 while (yytrue)
8981 {
8982 yyRuleNum yyrule;
8983 int yyaction;
8984 const short* yyconflicts;
8985
8986 yyStateNum yystate = yystack.yytops.yystates[0]->yylrState;
8987 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
8988 if (yystate == YYFINAL)
8989 goto yyacceptlab;
8990 if (yyisDefaultedState (yystate))
8991 {
8992 yyrule = yydefaultAction (yystate);
8993 if (yyrule == 0)
8994 {
8995 yyreportSyntaxError (&yystack, P, tokens, index);
8996 goto yyuser_error;
8997 }
8998 YYCHK1 (yyglrReduce (&yystack, 0, yyrule, yytrue, P, tokens, index));
8999 }
9000 else
9001 {
9002 yySymbol yytoken;
9003 if (yychar == YYEMPTY)
9004 {
9005 YYDPRINTF ((stderr, "Reading a token: "));
9006 yychar = yylex (&yylval, P, tokens, index);
9007 }
9008
9009 if (yychar <= YYEOF)
9010 {
9011 yychar = yytoken = YYEOF;
9012 YYDPRINTF ((stderr, "Now at end of input.\n"));
9013 }
9014 else
9015 {
9016 yytoken = YYTRANSLATE (yychar);
9017 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
9018 }
9019
9020 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
9021 if (*yyconflicts != 0)
9022 break;
9023 if (yyisShiftAction (yyaction))
9024 {
9025 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
9026 yychar = YYEMPTY;
9027 yyposn += 1;
9028 yyglrShift (&yystack, 0, yyaction, yyposn, &yylval);
9029 if (0 < yystack.yyerrState)
9030 yystack.yyerrState -= 1;
9031 }
9032 else if (yyisErrorAction (yyaction))
9033 {
9034 yyreportSyntaxError (&yystack, P, tokens, index);
9035 goto yyuser_error;
9036 }
9037 else
9038 YYCHK1 (yyglrReduce (&yystack, 0, -yyaction, yytrue, P, tokens, index));
9039 }
9040 }
9041
9042 while (yytrue)
9043 {
9044 yySymbol yytoken_to_shift;
9045 size_t yys;
9046
9047 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
9048 yystackp->yytops.yylookaheadNeeds[yys] = (yybool) (yychar != YYEMPTY);
9049
9050 /* yyprocessOneStack returns one of three things:
9051
9052 - An error flag. If the caller is yyprocessOneStack, it
9053 immediately returns as well. When the caller is finally
9054 yyparse, it jumps to an error label via YYCHK1.
9055
9056 - yyok, but yyprocessOneStack has invoked yymarkStackDeleted
9057 (&yystack, yys), which sets the top state of yys to NULL. Thus,
9058 yyparse's following invocation of yyremoveDeletes will remove
9059 the stack.
9060
9061 - yyok, when ready to shift a token.
9062
9063 Except in the first case, yyparse will invoke yyremoveDeletes and
9064 then shift the next token onto all remaining stacks. This
9065 synchronization of the shift (that is, after all preceding
9066 reductions on all stacks) helps prevent double destructor calls
9067 on yylval in the event of memory exhaustion. */
9068
9069 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
9070 YYCHK1 (yyprocessOneStack (&yystack, yys, yyposn, P, tokens, index));
9071 yyremoveDeletes (&yystack);
9072 if (yystack.yytops.yysize == 0)
9073 {
9074 yyundeleteLastStack (&yystack);
9075 if (yystack.yytops.yysize == 0)
9076 yyFail (&yystack, P, tokens, index, YY_("syntax error"));
9077 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
9078 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
9079 yyreportSyntaxError (&yystack, P, tokens, index);
9080 goto yyuser_error;
9081 }
9082
9083 /* If any yyglrShift call fails, it will fail after shifting. Thus,
9084 a copy of yylval will already be on stack 0 in the event of a
9085 failure in the following loop. Thus, yychar is set to YYEMPTY
9086 before the loop to make sure the user destructor for yylval isn't
9087 called twice. */
9088 yytoken_to_shift = YYTRANSLATE (yychar);
9089 yychar = YYEMPTY;
9090 yyposn += 1;
9091 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
9092 {
9093 int yyaction;
9094 const short* yyconflicts;
9095 yyStateNum yystate = yystack.yytops.yystates[yys]->yylrState;
9096 yygetLRActions (yystate, yytoken_to_shift, &yyaction,
9097 &yyconflicts);
9098 /* Note that yyconflicts were handled by yyprocessOneStack. */
9099 YYDPRINTF ((stderr, "On stack %lu, ", (unsigned long) yys));
9100 YY_SYMBOL_PRINT ("shifting", yytoken_to_shift, &yylval, &yylloc);
9101 yyglrShift (&yystack, yys, yyaction, yyposn,
9102 &yylval);
9103 YYDPRINTF ((stderr, "Stack %lu now in state #%d\n",
9104 (unsigned long) yys,
9105 yystack.yytops.yystates[yys]->yylrState));
9106 }
9107
9108 if (yystack.yytops.yysize == 1)
9109 {
9110 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
9111 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
9112 yycompressStack (&yystack);
9113 break;
9114 }
9115 }
9116 continue;
9117 yyuser_error:
9118 yyrecoverSyntaxError (&yystack, P, tokens, index);
9119 yyposn = yystack.yytops.yystates[0]->yyposn;
9120 }
9121
9122 yyacceptlab:
9123 yyresult = 0;
9124 goto yyreturn;
9125
9126 yybuglab:
9127 YYASSERT (yyfalse);
9128 goto yyabortlab;
9129
9130 yyabortlab:
9131 yyresult = 1;
9132 goto yyreturn;
9133
9134 yyexhaustedlab:
9135 yyerror (P, tokens, index, YY_("memory exhausted"));
9136 yyresult = 2;
9137 goto yyreturn;
9138
9139 yyreturn:
9140 if (yychar != YYEMPTY)
9141 yydestruct ("Cleanup: discarding lookahead",
9142 YYTRANSLATE (yychar), &yylval, P, tokens, index);
9143
9144 /* If the stack is well-formed, pop the stack until it is empty,
9145 destroying its entries as we go. But free the stack regardless
9146 of whether it is well-formed. */
9147 if (yystack.yyitems)
9148 {
9149 yyGLRState** yystates = yystack.yytops.yystates;
9150 if (yystates)
9151 {
9152 size_t yysize = yystack.yytops.yysize;
9153 size_t yyk;
9154 for (yyk = 0; yyk < yysize; yyk += 1)
9155 if (yystates[yyk])
9156 {
9157 while (yystates[yyk])
9158 {
9159 yyGLRState *yys = yystates[yyk];
9160 if (yys->yypred != YY_NULLPTR)
9161 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
9162 yystates[yyk] = yys->yypred;
9163 yystack.yynextFree -= 1;
9164 yystack.yyspaceLeft += 1;
9165 }
9166 break;
9167 }
9168 }
9169 yyfreeGLRStack (&yystack);
9170 }
9171
9172 return yyresult;
9173 }
9174
9175 /* DEBUGGING ONLY */
9176 #if YYDEBUG
9177 static void
9178 yy_yypstack (yyGLRState* yys)
9179 {
9180 if (yys->yypred)
9181 {
9182 yy_yypstack (yys->yypred);
9183 YYFPRINTF (stderr, " -> ");
9184 }
9185 YYFPRINTF (stderr, "%d@%lu", yys->yylrState,
9186 (unsigned long) yys->yyposn);
9187 }
9188
9189 static void
9190 yypstates (yyGLRState* yyst)
9191 {
9192 if (yyst == YY_NULLPTR)
9193 YYFPRINTF (stderr, "<null>");
9194 else
9195 yy_yypstack (yyst);
9196 YYFPRINTF (stderr, "\n");
9197 }
9198
9199 static void
9200 yypstack (yyGLRStack* yystackp, size_t yyk)
9201 {
9202 yypstates (yystackp->yytops.yystates[yyk]);
9203 }
9204
9205 #define YYINDEX(YYX) \
9206 ((YYX) == YY_NULLPTR ? -1 : (yyGLRStackItem*) (YYX) - yystackp->yyitems)
9207
9208
9209 static void
9210 yypdumpstack (yyGLRStack* yystackp)
9211 {
9212 yyGLRStackItem* yyp;
9213 size_t yyi;
9214 for (yyp = yystackp->yyitems; yyp < yystackp->yynextFree; yyp += 1)
9215 {
9216 YYFPRINTF (stderr, "%3lu. ",
9217 (unsigned long) (yyp - yystackp->yyitems));
9218 if (*(yybool *) yyp)
9219 {
9220 YYASSERT (yyp->yystate.yyisState);
9221 YYASSERT (yyp->yyoption.yyisState);
9222 YYFPRINTF (stderr, "Res: %d, LR State: %d, posn: %lu, pred: %ld",
9223 yyp->yystate.yyresolved, yyp->yystate.yylrState,
9224 (unsigned long) yyp->yystate.yyposn,
9225 (long) YYINDEX (yyp->yystate.yypred));
9226 if (! yyp->yystate.yyresolved)
9227 YYFPRINTF (stderr, ", firstVal: %ld",
9228 (long) YYINDEX (yyp->yystate
9229 .yysemantics.yyfirstVal));
9230 }
9231 else
9232 {
9233 YYASSERT (!yyp->yystate.yyisState);
9234 YYASSERT (!yyp->yyoption.yyisState);
9235 YYFPRINTF (stderr, "Option. rule: %d, state: %ld, next: %ld",
9236 yyp->yyoption.yyrule - 1,
9237 (long) YYINDEX (yyp->yyoption.yystate),
9238 (long) YYINDEX (yyp->yyoption.yynext));
9239 }
9240 YYFPRINTF (stderr, "\n");
9241 }
9242 YYFPRINTF (stderr, "Tops:");
9243 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
9244 YYFPRINTF (stderr, "%lu: %ld; ", (unsigned long) yyi,
9245 (long) YYINDEX (yystackp->yytops.yystates[yyi]));
9246 YYFPRINTF (stderr, "\n");
9247 }
9248 #endif
9249
9250 #undef yylval
9251 #undef yychar
9252 #undef yynerrs
9253
9254 /* Substitute the variable and function names. */
9255 #define yyparse psi_parser_proc_parse
9256 #define yylex psi_parser_proc_lex
9257 #define yyerror psi_parser_proc_error
9258 #define yylval psi_parser_proc_lval
9259 #define yychar psi_parser_proc_char
9260 #define yydebug psi_parser_proc_debug
9261 #define yynerrs psi_parser_proc_nerrs
9262
9263 #line 2276 "src/parser_proc_grammar.y" /* glr.c:2578 */
9264
9265
9266 /* epilogue */
9267
9268 #define PSI_DEBUG_LEX 0
9269 static int psi_parser_proc_lex(YYSTYPE *lvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
9270 {
9271 struct psi_token *token;
9272 #if PSI_DEBUG_LEX
9273 PSI_DEBUG_PRINT(P, "PSI: LEX index %4zu ", *index);
9274 #endif
9275 if (psi_plist_get(tokens, (*index)++, &token) && token) {
9276 #if PSI_DEBUG_LEX
9277 PSI_DEBUG_DUMP(P, psi_token_dump, token);
9278 #endif
9279 *((struct psi_token **)lvalp) = token;
9280 return token->type;
9281 } else {
9282 #if PSI_DEBUG_LEX
9283 PSI_DEBUG_PRINT(P, "EOF\n");
9284 #endif
9285 (*index)--;
9286 }
9287
9288 return PSI_T_EOF;
9289 }
9290
9291 static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char *msg)
9292 {
9293 struct psi_token *T = NULL;
9294 size_t last;
9295
9296 if (*index == 0) {
9297 last = 0;
9298 } else {
9299 last = --(*index);
9300 }
9301
9302 psi_plist_get(tokens, last, &T);
9303 if (T) {
9304 size_t i = (last >= 5) ? last - 5 : 0;
9305
9306 P->error(PSI_DATA(P), T, PSI_WARNING, "PSI %s at col %u", msg, T->col);
9307 while (i <= last || T->type != PSI_T_EOS) {
9308 const char *pos;
9309
9310 if (!psi_plist_get(tokens, i++, &T)) {
9311 break;
9312 }
9313
9314 if (i < last + 1) {
9315 pos = "preceding";
9316 } else if (i > last + 1) {
9317 pos = "following";
9318 } else {
9319 pos = "offending";
9320 }
9321
9322 P->error(PSI_DATA(P), T, PSI_WARNING, "PSI %s token '%s' at col %u",
9323 pos, T ? T->text->val : "<deleted>", T ? T->col : 0);
9324 }
9325 } else {
9326 P->error(PSI_DATA(P), NULL, PSI_WARNING, "PSI %s", msg);
9327 }
9328 P->errors++;
9329 }
9330