build cleanup
[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 #include "php_psi_stdinc.h"
55
56 #line 57 "src/parser_proc.c" /* glr.c:221 */
57
58
59 /* Substitute the variable and function names. */
60 #define yyparse psi_parser_proc_parse
61 #define yylex psi_parser_proc_lex
62 #define yyerror psi_parser_proc_error
63 #define yydebug psi_parser_proc_debug
64
65
66
67
68 # ifndef YY_NULLPTR
69 # if defined __cplusplus
70 # if 201103L <= __cplusplus
71 # define YY_NULLPTR nullptr
72 # else
73 # define YY_NULLPTR 0
74 # endif
75 # else
76 # define YY_NULLPTR ((void*)0)
77 # endif
78 # endif
79
80 #include "parser_proc.h"
81
82 /* Enabling verbose error messages. */
83 #ifdef YYERROR_VERBOSE
84 # undef YYERROR_VERBOSE
85 # define YYERROR_VERBOSE 1
86 #else
87 # define YYERROR_VERBOSE 1
88 #endif
89
90 /* Default (constant) value used for initialization for null
91 right-hand sides. Unlike the standard yacc.c template, here we set
92 the default value of $$ to a zeroed-out value. Since the default
93 value is undefined, this behavior is technically correct. */
94 static YYSTYPE yyval_default;
95
96
97 /* Unqualified %code blocks. */
98 #line 5 "src/parser_proc_grammar.y" /* glr.c:261 */
99
100 #include <assert.h>
101 #include <stdarg.h>
102
103 #include "plist.h"
104 #include "parser.h"
105
106 #define YYDEBUG 1
107 #define PSI_PARSER_PROC_DEBUG 1
108
109 static int psi_parser_proc_lex(YYSTYPE *u, struct psi_parser *P, struct psi_plist *tokens, size_t *index);
110 static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char *msg);
111
112 static inline void psi_parser_proc_add_struct(struct psi_parser *P, struct psi_decl_struct *strct)
113 {
114 assert(strct);
115 if (!P->structs) {
116 P->structs = psi_plist_init((psi_plist_dtor) psi_decl_struct_free);
117 }
118 P->structs = psi_plist_add(P->structs, &strct);
119 }
120 static inline void psi_parser_proc_add_union(struct psi_parser *P, struct psi_decl_union *u)
121 {
122 assert(u);
123 if (!P->unions) {
124 P->unions = psi_plist_init((psi_plist_dtor) psi_decl_union_free);
125 }
126 P->unions = psi_plist_add(P->unions, &u);
127 }
128 static inline void psi_parser_proc_add_enum(struct psi_parser *P, struct psi_decl_enum *e)
129 {
130 assert(e);
131 if (!P->enums) {
132 P->enums = psi_plist_init((psi_plist_dtor) psi_decl_enum_free);
133 }
134 P->enums = psi_plist_add(P->enums, &e);
135 }
136 static inline void psi_parser_proc_add_typedef(struct psi_parser *P, struct psi_decl_arg *def)
137 {
138 assert(def);
139 if (!P->types) {
140 P->types = psi_plist_init((psi_plist_dtor) psi_decl_arg_free);
141 }
142 P->types = psi_plist_add(P->types, &def);
143 }
144 static inline void psi_parser_proc_add_const(struct psi_parser *P, struct psi_const *cnst) {
145 assert(cnst);
146 if (!P->consts) {
147 P->consts = psi_plist_init((psi_plist_dtor) psi_const_free);
148 }
149 P->consts = psi_plist_add(P->consts, &cnst);
150
151 }
152 static inline void psi_parser_proc_add_decl(struct psi_parser *P, struct psi_decl *decl) {
153 assert(decl);
154
155 if (psi_decl_is_blacklisted(decl->func->var->name->val)) {
156 psi_decl_free(&decl);
157 return;
158 }
159
160 if (!P->decls) {
161 P->decls = psi_plist_init((psi_plist_dtor) psi_decl_free);
162 }
163 P->decls = psi_plist_add(P->decls, &decl);
164 }
165 static inline void psi_parser_proc_add_decl_extvars(struct psi_parser *P, struct psi_plist *list) {
166 assert(list);
167 if (!P->vars) {
168 P->vars = psi_plist_init((psi_plist_dtor) psi_decl_extvar_free);
169 }
170 P->vars = psi_plist_add_r(P->vars, psi_plist_count(list), psi_plist_eles(list));
171 free(list);
172 }
173 static inline void psi_parser_proc_add_impl(struct psi_parser *P, struct psi_impl *impl) {
174 assert(impl);
175 if (!P->impls) {
176 P->impls = psi_plist_init((psi_plist_dtor) psi_impl_free);
177 }
178 P->impls = psi_plist_add(P->impls, &impl);
179 }
180
181 /* end code */
182
183 #line 184 "src/parser_proc.c" /* glr.c:261 */
184
185 #include <stdio.h>
186 #include <stdlib.h>
187 #include <string.h>
188
189 #ifndef YY_
190 # if defined YYENABLE_NLS && YYENABLE_NLS
191 # if ENABLE_NLS
192 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
193 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
194 # endif
195 # endif
196 # ifndef YY_
197 # define YY_(Msgid) Msgid
198 # endif
199 #endif
200
201 #ifndef YYFREE
202 # define YYFREE free
203 #endif
204 #ifndef YYMALLOC
205 # define YYMALLOC malloc
206 #endif
207 #ifndef YYREALLOC
208 # define YYREALLOC realloc
209 #endif
210
211 #define YYSIZEMAX ((size_t) -1)
212
213 #ifdef __cplusplus
214 typedef bool yybool;
215 # define yytrue true
216 # define yyfalse false
217 #else
218 /* When we move to stdbool, get rid of the various casts to yybool. */
219 typedef unsigned char yybool;
220 # define yytrue 1
221 # define yyfalse 0
222 #endif
223
224 #ifndef YYSETJMP
225 # include <setjmp.h>
226 # define YYJMP_BUF jmp_buf
227 # define YYSETJMP(Env) setjmp (Env)
228 /* Pacify Clang and ICC. */
229 # define YYLONGJMP(Env, Val) \
230 do { \
231 longjmp (Env, Val); \
232 YYASSERT (0); \
233 } while (yyfalse)
234 #endif
235
236 #ifndef YY_ATTRIBUTE
237 # if (defined __GNUC__ \
238 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
239 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
240 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
241 # else
242 # define YY_ATTRIBUTE(Spec) /* empty */
243 # endif
244 #endif
245
246 #ifndef YY_ATTRIBUTE_PURE
247 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
248 #endif
249
250 #ifndef YY_ATTRIBUTE_UNUSED
251 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
252 #endif
253
254 #if !defined _Noreturn \
255 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
256 # if defined _MSC_VER && 1200 <= _MSC_VER
257 # define _Noreturn __declspec (noreturn)
258 # else
259 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
260 # endif
261 #endif
262
263 /* Suppress unused-variable warnings by "using" E. */
264 #if ! defined lint || defined __GNUC__
265 # define YYUSE(E) ((void) (E))
266 #else
267 # define YYUSE(E) /* empty */
268 #endif
269
270 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
271 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
272 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
273 _Pragma ("GCC diagnostic push") \
274 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
275 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
276 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
277 _Pragma ("GCC diagnostic pop")
278 #else
279 # define YY_INITIAL_VALUE(Value) Value
280 #endif
281 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
282 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
283 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
284 #endif
285 #ifndef YY_INITIAL_VALUE
286 # define YY_INITIAL_VALUE(Value) /* Nothing. */
287 #endif
288
289
290 #ifndef YYASSERT
291 # define YYASSERT(Condition) ((void) ((Condition) || (abort (), 0)))
292 #endif
293
294 /* YYFINAL -- State number of the termination state. */
295 #define YYFINAL 166
296 /* YYLAST -- Last index in YYTABLE. */
297 #define YYLAST 8213
298
299 /* YYNTOKENS -- Number of terminals. */
300 #define YYNTOKENS 140
301 /* YYNNTS -- Number of nonterminals. */
302 #define YYNNTS 142
303 /* YYNRULES -- Number of rules. */
304 #define YYNRULES 637
305 /* YYNRULES -- Number of states. */
306 #define YYNSTATES 950
307 /* YYMAXRHS -- Maximum number of symbols on right-hand side of rule. */
308 #define YYMAXRHS 16
309 /* YYMAXLEFT -- Maximum number of symbols to the left of a handle
310 accessed by $0, $-1, etc., in any rule. */
311 #define YYMAXLEFT 0
312
313 /* YYTRANSLATE(X) -- Bison symbol number corresponding to X. */
314 #define YYUNDEFTOK 2
315 #define YYMAXUTOK 394
316
317 #define YYTRANSLATE(YYX) \
318 ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
319
320 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
321 static const unsigned char yytranslate[] =
322 {
323 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
324 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
325 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
326 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
327 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
328 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
329 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
330 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
331 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
332 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
333 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
334 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
335 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
336 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
337 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
338 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
339 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
340 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
341 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
342 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
343 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
344 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
345 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
346 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
347 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
348 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
349 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
350 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
351 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
352 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
353 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
354 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
355 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
356 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
357 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
358 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
359 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
360 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
361 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
362 135, 136, 137, 138, 139
363 };
364
365 #if YYDEBUG
366 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
367 static const unsigned short yyrline[] =
368 {
369 0, 408, 408, 408, 408, 408, 408, 408, 408, 408,
370 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
371 409, 409, 409, 409, 410, 410, 410, 410, 410, 410,
372 410, 410, 410, 410, 410, 410, 410, 410, 410, 410,
373 410, 410, 410, 410, 410, 410, 411, 411, 411, 411,
374 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
375 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
376 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
377 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
378 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
379 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
380 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
381 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
382 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
383 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
384 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
385 411, 411, 411, 411, 412, 412, 412, 412, 412, 412,
386 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
387 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
388 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
389 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
390 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
391 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
392 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
393 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
394 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
395 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
396 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
397 416, 417, 420, 421, 424, 425, 426, 427, 433, 437,
398 440, 443, 446, 452, 455, 458, 461, 464, 470, 476,
399 479, 485, 508, 512, 516, 521, 525, 529, 533, 540,
400 541, 545, 546, 550, 551, 552, 556, 557, 561, 562,
401 566, 567, 568, 572, 573, 577, 582, 587, 592, 601,
402 604, 607, 608, 614, 619, 627, 630, 634, 638, 645,
403 649, 653, 657, 662, 673, 684, 689, 694, 698, 704,
404 715, 718, 722, 730, 734, 740, 744, 751, 755, 759,
405 766, 767, 768, 772, 786, 792, 795, 801, 804, 810,
406 811, 819, 830, 839, 851, 852, 856, 866, 875, 887,
407 888, 891, 897, 898, 902, 906, 910, 915, 920, 928,
408 929, 930, 933, 939, 942, 945, 951, 952, 956, 959,
409 962, 968, 971, 974, 982, 994, 997, 1000, 1003, 1010,
410 1013, 1023, 1026, 1029, 1032, 1033, 1034, 1038, 1041, 1044,
411 1055, 1062, 1072, 1075, 1081, 1084, 1091, 1127, 1130, 1136,
412 1139, 1145, 1151, 1152, 1153, 1154, 1155, 1156, 1160, 1164,
413 1165, 1169, 1170, 1174, 1175, 1182, 1183, 1187, 1194, 1205,
414 1212, 1220, 1244, 1273, 1280, 1291, 1337, 1378, 1393, 1396,
415 1399, 1405, 1408, 1414, 1429, 1432, 1461, 1469, 1497, 1502,
416 1510, 1520, 1530, 1533, 1537, 1543, 1557, 1574, 1577, 1583,
417 1590, 1597, 1605, 1616, 1623, 1626, 1632, 1637, 1645, 1649,
418 1653, 1657, 1661, 1665, 1672, 1676, 1680, 1684, 1688, 1692,
419 1698, 1702, 1709, 1712, 1724, 1728, 1732, 1739, 1752, 1765,
420 1778, 1781, 1788, 1789, 1793, 1796, 1799, 1802, 1808, 1812,
421 1819, 1822, 1825, 1840, 1841, 1842, 1843, 1847, 1850, 1856,
422 1857, 1863, 1866, 1872, 1873, 1877, 1878, 1888, 1891, 1898,
423 1903, 1908, 1918, 1921, 1927, 1930, 1936, 1943, 1950, 1957,
424 1958, 1962, 1963, 1964, 1965, 1966, 1970, 1971, 1972, 1973,
425 1977, 1980, 1986, 1989, 1992, 1995, 1998, 2004, 2008, 2016,
426 2017, 2021, 2028, 2031, 2034, 2037, 2041, 2044, 2050, 2054,
427 2062, 2069, 2074, 2082, 2090, 2091, 2092, 2093, 2094, 2095,
428 2096, 2097, 2098, 2099, 2103, 2106, 2112, 2115, 2121, 2122,
429 2126, 2129, 2135, 2138, 2144, 2151, 2155, 2162, 2165, 2168,
430 2174, 2181, 2184, 2187, 2194, 2199, 2207, 2208, 2209, 2210,
431 2211, 2212, 2213, 2214, 2218, 2221, 2227, 2230, 2236, 2243,
432 2244, 2248, 2255, 2258, 2264, 2272, 2275, 2281
433 };
434 #endif
435
436 #if YYDEBUG || YYERROR_VERBOSE || 1
437 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
438 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
439 static const char *const yytname[] =
440 {
441 "\"end of file\"", "error", "$undefined", "BOOL", "CHAR", "SHORT",
442 "INT", "SIGNED", "UNSIGNED", "LONG", "FLOAT", "DOUBLE", "STRING",
443 "MIXED", "ARRAY", "OBJECT", "CALLABLE", "VOID", "ZVAL", "NULL", "TRUE",
444 "FALSE", "NAME", "NSNAME", "DOLLAR_NAME", "NUMBER", "QUOTED_STRING",
445 "QUOTED_CHAR", "SIZEOF", "VOLATILE", "\"end of line\"", "\";\"", "\"(\"",
446 "\")\"", "\",\"", "\":\"", "\"{\"", "\"}\"", "\"[\"", "\"]\"", "\"=\"",
447 "\"#\"", "\"|\"", "\"^\"", "\"&\"", "\"<<\"", "\">>\"", "\"+\"", "\"-\"",
448 "\"*\"", "\"/\"", "\"%\"", "\"<\"", "\">\"", "\">=\"", "\"<=\"",
449 "\"||\"", "\"&&\"", "\"==\"", "\"!=\"", "\"~\"", "\"!\"", "\".\"",
450 "\"\\\\\"", "\"...\"", "\"?\"", "PRAGMA", "PRAGMA_ONCE", "LINE", "ERROR",
451 "WARNING", "IF", "IFDEF", "IFNDEF", "ELSE", "ELIF", "ENDIF", "DEFINE",
452 "DEFINED", "UNDEF", "IMPORT", "INCLUDE", "INCLUDE_NEXT", "TYPEDEF",
453 "STRUCT", "UNION", "ENUM", "CONST", "LIB", "STATIC", "CALLBACK",
454 "FUNCTION", "LET", "SET", "TEMP", "FREE", "RETURN", "AS", "PRE_ASSERT",
455 "POST_ASSERT", "BOOLVAL", "INTVAL", "STRVAL", "PATHVAL", "STRLEN",
456 "FLOATVAL", "ARRVAL", "OBJVAL", "COUNT", "CALLOC", "TO_BOOL", "TO_INT",
457 "TO_STRING", "TO_FLOAT", "TO_ARRAY", "TO_OBJECT", "COMMENT",
458 "WHITESPACE", "NO_WHITESPACE", "CPP_HEADER", "CPP_ATTRIBUTE",
459 "CPP_EXTENSION", "CPP_PASTE", "CPP_INLINE", "CPP_RESTRICT", "CPP_ASM",
460 "BSLASH", "LONG_DOUBLE", "INT8", "UINT8", "INT16", "UINT16", "INT32",
461 "UINT32", "INT64", "UINT64", "INT128", "UINT128", "BINARY", "UNARY",
462 "$accept", "binary_op_token", "unary_op_token", "name_token",
463 "any_noeol_token", "any_nobrace_token", "file", "blocks", "block", "lib",
464 "cpp", "cpp_exp", "cpp_ignored_token", "cpp_message_token",
465 "cpp_include_token", "cpp_header_token", "cpp_no_arg_token",
466 "cpp_name_arg_token", "cpp_exp_arg_token", "cpp_macro_decl",
467 "cpp_macro_sig", "cpp_macro_sig_args", "cpp_macro_decl_tokens",
468 "cpp_macro_decl_token_list", "cpp_macro_exp", "cpp_macro_call_args",
469 "cpp_macro_call_arg_list", "constant", "impl_def_val",
470 "impl_def_val_token", "decl_typedef", "typedef", "typedef_anon",
471 "typedef_decl", "typedef_anon_decl", "qualified_decl_type",
472 "decl_type_qualifier_token", "decl_type", "decl_type_complex",
473 "decl_type_simple", "decl_real_type", "int_signed", "int_width",
474 "decl_int_type", "int_signed_types", "signed_short_types",
475 "signed_long_types", "int_width_types", "decl_stmt", "decl_asm",
476 "quoted_strings", "decl_extvar_stmt", "decl_extvar_list", "decl_vars",
477 "ignored_decl", "ignored_decl_qualifiers", "ignored_decl_body",
478 "ignored_decl_body_stmts", "ignored_decl_body_stmt", "decl", "decl_body",
479 "decl_func_body", "decl_functor_body", "decl_anon_functor_body",
480 "decl_functor", "decl_anon_functor", "decl_func", "decl_args",
481 "decl_arg_list", "decl_anon_arg", "decl_arg", "decl_var", "decl_union",
482 "decl_struct", "decl_struct_args", "struct_args_block", "struct_args",
483 "struct_arg_var_list", "decl_vars_with_layout", "decl_enum",
484 "decl_enum_items", "decl_enum_item", "num_exp", "number", "sizeof",
485 "sizeof_body", "sizeof_body_notypes", "enum_name", "union_name",
486 "struct_name", "optional_name", "optional_comma", "decl_layout",
487 "align_and_size", "array_size", "array_qualifier_token", "indirection",
488 "pointers", "asterisks", "asterisk", "pointer_qualifier_token", "impl",
489 "impl_func", "impl_args", "impl_arg", "impl_var", "impl_type",
490 "impl_type_restricted", "impl_type_token", "impl_type_restricted_token",
491 "impl_type_extended_token", "impl_stmts", "impl_stmt", "let_stmt",
492 "let_exp", "let_exp_byref", "let_exp_assign", "let_calloc",
493 "let_callback", "let_func", "let_func_token", "let_func_exps",
494 "let_exps", "callback_rval", "callback_arg_list", "callback_args",
495 "return_stmt", "return_exp", "call_decl_vars", "set_stmt", "set_exp",
496 "set_func", "set_func_token", "set_func_exps", "set_exps", "assert_stmt",
497 "assert_stmt_token", "free_stmt", "free_exps", "free_exp", "reference",
498 "byref", YY_NULLPTR
499 };
500 #endif
501
502 #define YYPACT_NINF -731
503 #define YYTABLE_NINF -636
504
505 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
506 STATE-NUM. */
507 static const short yypact[] =
508 {
509 529, -731, -731, -731, -731, -731, 128, -731, -731, -731,
510 582, -731, -731, -731, 555, 722, 7975, 7975, 7975, 348,
511 77, -23, 80, -731, 281, -731, 132, 529, -731, -731,
512 -731, -731, -731, 7120, 109, -731, -731, -731, -731, 409,
513 161, -731, -731, -731, -731, 493, 26, -731, -731, 30,
514 96, 126, -731, -731, -731, -731, 125, -731, 142, -731,
515 -731, -731, 7975, 7975, 7975, -731, -731, -731, 145, -731,
516 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
517 -731, 861, -731, -731, -731, -731, 151, 987, 987, 33,
518 -731, 987, 6894, 7975, 7975, 1728, 154, -731, -731, -731,
519 165, 7975, 164, 164, -731, -731, -731, -731, -731, -731,
520 1353, -731, -731, -731, -731, -731, -731, -731, -731, -731,
521 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
522 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
523 -731, 114, -731, -731, 114, 181, -731, -731, -731, -731,
524 -731, -731, 201, 192, -731, 214, -731, 218, -731, 234,
525 -731, 1841, 722, 138, -731, 26, -731, -731, 46, 224,
526 -731, -731, 232, 7975, 17, -731, -731, -731, 261, -731,
527 101, -731, -731, -731, 507, -731, 233, 244, 248, 1954,
528 1954, 7975, 230, -731, -731, -731, 7459, 26, -731, 1693,
529 -731, -731, -731, -731, -731, -731, -731, -731, 1806, 1919,
530 2032, 2145, -731, 2258, 2371, -731, -731, -731, 2484, -731,
531 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
532 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
533 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
534 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
535 -731, 2597, 2710, 2823, 2936, 3049, -731, -731, -731, -731,
536 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
537 -731, 3162, -731, 3275, 3388, 3501, 3614, 3727, 3840, -731,
538 3953, -731, -731, 4066, 4179, 4292, 4405, 4518, 4631, 4744,
539 4857, 4970, 5083, 5196, 5309, 5422, 5535, 5648, 5761, -731,
540 -731, -731, -731, -731, -731, -731, 5874, 987, -731, -731,
541 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
542 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
543 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
544 -731, -731, -731, -731, -731, -731, -731, -731, -731, 987,
545 -731, -731, -731, -731, -731, -731, -731, 116, 6894, -731,
546 -731, -731, -731, 7572, 6894, 250, 8076, -731, 111, -731,
547 169, -731, -731, -731, -731, 245, 247, 247, 91, 91,
548 6103, 256, -731, 230, 252, 266, -731, 268, -731, -731,
549 -731, 1467, -731, 255, 224, -731, -731, -731, -731, -731,
550 301, -731, -731, 1239, -731, 283, -731, 52, 7120, -731,
551 279, 173, 284, -731, -731, 175, 277, 286, -731, 7459,
552 6555, 7459, 7975, 7459, -731, -731, 129, -731, -731, -731,
553 -731, -731, 6781, -731, 287, -731, 7975, 299, -731, 317,
554 8076, 307, -731, -731, -731, -731, 755, 331, -731, 7108,
555 7975, -731, -731, 1580, -731, -731, -731, -731, -731, -731,
556 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
557 -731, -731, 6894, 6894, 323, 1420, 7459, 7459, -731, -731,
558 -731, -731, 153, -731, -731, -731, -731, -731, 5990, 6781,
559 325, -731, 307, -731, 8100, -731, -731, 6103, 179, 427,
560 -731, -731, -731, -731, -731, -731, 8052, 320, 7685, -731,
561 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
562 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
563 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
564 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
565 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
566 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
567 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
568 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
569 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
570 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
571 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
572 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
573 1113, -731, 76, 56, 1954, 224, 308, 493, 224, 309,
574 6781, 7975, 338, 346, 356, 8100, 351, 357, -731, 360,
575 369, 354, 363, 122, -731, 370, 376, -731, -731, -731,
576 769, 7459, -731, 7744, -731, 255, 375, -731, -731, -731,
577 378, -731, 8076, 379, 388, 7676, -731, 398, 1728, 389,
578 -731, -731, 7007, 229, 7975, 164, 164, -731, -731, 36,
579 38, 47, 7225, -731, -731, 6781, 6781, 394, -731, -731,
580 -731, -731, -731, 391, 186, -731, 80, -731, -731, -731,
581 -731, -731, 255, 180, -731, -731, -731, 255, -731, 196,
582 -731, 399, -731, -731, 403, 8100, -731, -731, 6216, -731,
583 6555, -731, 7459, -731, 80, 7459, -731, 7975, 7857, -731,
584 -731, -731, -731, -731, 405, 393, -731, -731, -731, -731,
585 6894, 6894, 411, -731, 71, 412, -731, 389, 247, 247,
586 6781, -731, 7838, -731, -731, 641, 413, 641, 407, 7975,
587 1954, -731, 7233, 224, 392, 224, 224, 158, 350, 238,
588 431, 8100, -731, -731, -731, -731, 434, 6668, -731, 433,
589 7459, 219, -731, 436, 287, 440, 987, 7916, 8076, 8124,
590 449, 441, 443, 7346, 446, 412, 7459, 7459, -731, 6781,
591 -731, 641, -731, 80, 6103, 448, 452, -731, -731, 453,
592 -731, -731, 431, -731, -731, -731, 7857, -731, 455, 6781,
593 80, -731, 6329, 456, 460, -731, 395, -731, -731, -731,
594 462, 458, 471, 389, 472, -731, -731, 474, 8148, -731,
595 48, -731, 476, 484, 224, 488, 80, 7563, 489, 491,
596 -731, 492, -731, -731, 61, -731, 495, 494, -731, 7346,
597 -731, 506, 1954, 500, -731, 445, 511, 6781, 6216, 512,
598 -731, 6555, -731, -731, 515, 519, 523, 389, -731, 516,
599 520, 1954, 276, 6442, 7442, 346, -731, -731, -731, 518,
600 6668, -731, -731, 522, 521, -731, 526, 524, 530, 534,
601 535, 528, -731, -731, 6216, -731, 542, -731, 641, 537,
602 224, 80, 538, 6555, -731, 539, -731, 1954, -731, 541,
603 -731, -731, -731, 543, 6442, 224, 548, -731, 549, -731
604 };
605
606 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
607 Performed when YYTABLE does not specify something else to do. Zero
608 means the default is an error. */
609 static const unsigned short yydefact[] =
610 {
611 280, 401, 398, 402, 396, 397, 399, 393, 394, 392,
612 391, 383, 285, 284, 0, 0, 0, 0, 510, 382,
613 0, 432, 635, 286, 0, 436, 0, 281, 282, 288,
614 287, 289, 293, 527, 0, 379, 385, 384, 390, 405,
615 417, 389, 290, 291, 292, 0, 422, 443, 445, 446,
616 0, 0, 457, 295, 294, 296, 0, 297, 0, 400,
617 395, 391, 0, 0, 0, 382, 437, 444, 427, 299,
618 310, 307, 309, 311, 312, 323, 320, 321, 318, 324,
619 319, 0, 322, 313, 314, 315, 0, 335, 335, 0,
620 303, 0, 0, 510, 510, 0, 0, 365, 370, 466,
621 369, 0, 518, 518, 33, 34, 35, 36, 37, 623,
622 584, 24, 42, 41, 40, 38, 39, 32, 31, 25,
623 29, 28, 26, 27, 43, 592, 591, 589, 587, 588,
624 590, 586, 585, 593, 30, 621, 619, 618, 620, 617,
625 616, 386, 44, 45, 387, 388, 507, 551, 552, 553,
626 554, 555, 0, 0, 548, 0, 433, 0, 637, 0,
627 636, 391, 0, 0, 434, 422, 1, 283, 533, 520,
628 381, 467, 0, 528, 529, 531, 380, 407, 411, 409,
629 413, 406, 403, 418, 405, 404, 0, 0, 0, 458,
630 458, 0, 0, 386, 387, 388, 0, 422, 71, 46,
631 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
632 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
633 67, 68, 69, 70, 161, 162, 72, 73, 74, 75,
634 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
635 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
636 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
637 111, 109, 110, 108, 106, 107, 112, 113, 114, 115,
638 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
639 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
640 163, 136, 137, 138, 139, 140, 141, 142, 143, 144,
641 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
642 155, 159, 156, 157, 158, 160, 0, 335, 305, 300,
643 46, 55, 56, 57, 58, 60, 61, 65, 109, 110,
644 108, 106, 107, 127, 129, 130, 131, 132, 133, 134,
645 163, 138, 139, 140, 141, 142, 143, 144, 145, 146,
646 147, 148, 149, 150, 151, 152, 153, 337, 308, 336,
647 301, 316, 317, 302, 304, 345, 346, 0, 0, 22,
648 23, 20, 21, 0, 0, 348, 306, 347, 386, 509,
649 387, 508, 366, 363, 371, 0, 0, 0, 0, 0,
650 0, 0, 298, 0, 0, 0, 435, 0, 536, 535,
651 534, 523, 469, 527, 520, 530, 532, 412, 408, 414,
652 415, 410, 419, 0, 431, 0, 420, 392, 527, 463,
653 0, 0, 460, 461, 464, 0, 486, 512, 484, 0,
654 635, 0, 0, 0, 629, 630, 0, 560, 563, 562,
655 564, 565, 0, 566, 428, 429, 0, 0, 424, 0,
656 327, 328, 325, 338, 506, 505, 0, 0, 501, 0,
657 0, 343, 340, 350, 2, 3, 4, 5, 6, 7,
658 8, 9, 10, 11, 13, 12, 14, 15, 16, 17,
659 18, 19, 0, 0, 0, 0, 0, 0, 472, 471,
660 473, 470, 497, 361, 362, 495, 494, 496, 0, 0,
661 0, 357, 359, 498, 358, 488, 499, 0, 0, 0,
662 364, 421, 497, 525, 526, 524, 0, 0, 0, 528,
663 468, 416, 189, 164, 165, 166, 167, 168, 169, 170,
664 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
665 181, 182, 183, 184, 185, 186, 187, 188, 277, 278,
666 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
667 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
668 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
669 220, 221, 227, 225, 226, 224, 222, 223, 228, 229,
670 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
671 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
672 250, 251, 279, 252, 253, 254, 255, 256, 257, 258,
673 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
674 269, 270, 271, 275, 272, 273, 274, 276, 441, 442,
675 0, 439, 0, 520, 458, 520, 0, 0, 520, 0,
676 0, 513, 0, 0, 0, 612, 0, 0, 611, 45,
677 0, 0, 0, 0, 632, 0, 0, 606, 537, 561,
678 0, 0, 426, 329, 425, 527, 0, 502, 504, 339,
679 0, 352, 353, 0, 351, 0, 341, 0, 0, 514,
680 374, 367, 375, 0, 376, 518, 518, 373, 372, 623,
681 24, 0, 0, 492, 356, 0, 0, 0, 538, 557,
682 558, 559, 556, 0, 0, 542, 635, 547, 549, 550,
683 522, 521, 527, 0, 438, 440, 423, 527, 465, 0,
684 449, 0, 462, 447, 0, 487, 485, 483, 0, 567,
685 635, 610, 0, 546, 635, 0, 631, 0, 607, 604,
686 628, 430, 330, 333, 0, 331, 503, 500, 344, 349,
687 0, 0, 0, 368, 0, 477, 474, 514, 0, 0,
688 0, 490, 0, 491, 355, 0, 0, 0, 544, 0,
689 458, 455, 0, 520, 0, 520, 520, 497, 0, 31,
690 30, 573, 578, 574, 576, 577, 44, 0, 613, 624,
691 0, 0, 633, 623, 609, 0, 335, 0, 354, 342,
692 0, 515, 0, 514, 0, 477, 378, 377, 489, 0,
693 539, 0, 543, 635, 0, 0, 0, 456, 453, 0,
694 450, 448, 0, 575, 598, 584, 607, 599, 0, 0,
695 635, 579, 635, 0, 0, 634, 0, 326, 332, 334,
696 0, 0, 0, 514, 478, 481, 475, 0, 493, 540,
697 0, 545, 0, 0, 520, 0, 635, 0, 594, 0,
698 626, 625, 614, 568, 0, 519, 0, 0, 479, 514,
699 476, 0, 458, 0, 454, 0, 0, 0, 0, 0,
700 615, 635, 622, 605, 0, 0, 0, 514, 482, 0,
701 0, 458, 0, 600, 0, 498, 596, 571, 569, 595,
702 0, 583, 627, 0, 0, 480, 0, 0, 0, 0,
703 0, 601, 602, 580, 0, 570, 0, 516, 0, 0,
704 520, 635, 0, 635, 597, 0, 541, 458, 451, 0,
705 581, 603, 517, 0, 600, 520, 0, 452, 0, 582
706 };
707
708 /* YYPGOTO[NTERM-NUM]. */
709 static const short yypgoto[] =
710 {
711 -731, -351, -73, -11, -47, -731, -731, -731, 547, -731,
712 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
713 -731, -731, -86, -731, -281, -731, -731, -731, -476, -731,
714 -731, 421, -118, 41, -104, -179, -19, -5, -731, -731,
715 -731, 554, -731, -731, 416, -731, -731, -731, -731, -76,
716 -261, -731, -731, -181, -731, -731, 410, -731, -45, 573,
717 39, -3, 50, -731, -731, -731, -731, -182, -731, -44,
718 3, -33, -731, -731, 213, -349, -731, -210, -731, 9,
719 -731, -41, -369, -731, -66, -731, 150, -731, -446, -444,
720 166, -731, -709, -87, -380, -731, -375, -29, -731, 459,
721 -731, -731, 586, -731, -158, -683, -730, -731, -731, 620,
722 -731, 249, -373, -731, -283, -696, 220, -145, -731, -731,
723 -692, -731, -731, -254, -284, -731, -731, -731, -175, -731,
724 -408, -410, -413, -731, -731, -731, -731, -731, -731, -83,
725 -21, -698
726 };
727
728 /* YYDEFGOTO[NTERM-NUM]. */
729 static const short yydefgoto[] =
730 {
731 -1, 706, 499, 169, 357, 638, 26, 27, 28, 29,
732 30, 86, 87, 88, 89, 363, 90, 91, 92, 318,
733 754, 755, 358, 359, 376, 683, 684, 31, 500, 501,
734 32, 96, 689, 690, 691, 33, 34, 35, 36, 37,
735 38, 39, 40, 41, 182, 408, 411, 185, 42, 188,
736 502, 43, 197, 804, 44, 45, 639, 640, 641, 46,
737 47, 48, 99, 419, 50, 420, 51, 421, 422, 423,
738 424, 503, 53, 54, 489, 490, 693, 814, 854, 101,
739 427, 428, 655, 505, 506, 676, 458, 56, 102, 103,
740 146, 652, 765, 386, 402, 517, 172, 446, 174, 175,
741 400, 57, 58, 714, 715, 656, 716, 153, 717, 718,
742 719, 436, 437, 438, 906, 907, 908, 793, 794, 795,
743 142, 889, 909, 838, 920, 921, 439, 666, 805, 440,
744 922, 658, 143, 843, 871, 441, 442, 443, 663, 664,
745 660, 160
746 };
747
748 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
749 positive, shift that token. If negative, reduce the rule whose
750 number is the opposite. If YYTABLE_NINF, syntax error. */
751 static const short yytable[] =
752 {
753 171, 159, 360, 52, 173, 141, 144, 145, 425, 55,
754 418, 418, 98, 68, 170, 444, 387, 659, 100, 374,
755 659, 504, 657, 667, 520, 483, 377, 52, 518, 176,
756 52, 707, 516, 778, 317, 450, 55, 486, 487, 695,
757 797, 696, 792, 643, 364, 820, 796, 823, 52, 67,
758 49, 193, 194, 195, 388, 451, 97, 389, 815, 361,
759 49, -446, -466, 669, -466, -392, 168, -391, 22, -392,
760 316, -24, 743, 670, 49, 398, 11, 49, 109, 892,
761 770, 375, 378, 380, 186, -392, -392, 459, 727, 397,
762 384, 859, 98, 462, 401, 49, 811, 837, 100, 483,
763 156, 841, 674, 155, 855, 796, 812, 409, 483, 726,
764 410, 483, 881, 1, 2, 3, 4, 5, 6, 7,
765 8, 447, 488, -392, 158, -391, 9, 485, 189, 702,
766 703, 61, 166, 399, 65, 669, 382, 59, 504, 60,
767 778, 405, 454, 455, 878, -518, -386, -511, 456, 385,
768 -518, 187, 362, 746, 642, -446, 747, 868, 190, 98,
769 457, 191, 404, 445, 52, 100, 668, 183, 4, 5,
770 898, 135, 136, 137, 138, 139, 140, -457, 192, 196,
771 426, 319, 682, 886, -360, 383, -360, -360, 915, -497,
772 910, -497, -497, 62, 63, 64, 796, -457, 936, 385,
773 67, 685, 686, 97, -387, -511, 645, 646, 648, 649,
774 837, 49, 780, 781, 925, 391, 708, -511, 796, 776,
775 777, 429, 430, 431, 432, 433, 910, 434, 435, 783,
776 784, 452, 796, 1, 2, 3, 4, 5, 6, 7,
777 8, 390, 695, 374, 696, 392, 9, 695, 939, 696,
778 377, 61, 845, 671, 393, 834, 835, 394, 11, 379,
779 381, 396, 401, 728, 403, 730, 766, 407, 733, 413,
780 836, 429, 430, 431, 432, 433, 415, 434, 435, 416,
781 484, 735, 463, 485, 509, 1, 2, 3, 4, 5,
782 6, 7, 8, 834, 835, 374, 507, 510, 9, 511,
783 756, 374, 377, 161, 168, 375, 692, 521, 377, 448,
784 11, 644, 453, 93, 94, 18, 65, 650, 647, 701,
785 651, 671, 429, 430, 431, 432, 433, 659, 434, 435,
786 672, 483, 798, 674, 483, 483, 772, 773, 125, 126,
787 127, 128, 129, 130, 131, 132, 133, 779, 861, 673,
788 688, 147, 782, 678, 148, 687, 704, 375, 149, 721,
789 150, 151, 461, 375, 162, 62, 63, 64, 65, 791,
790 163, 152, 731, 734, 519, 737, 125, 126, 127, 128,
791 129, 130, 131, 132, 133, 171, 738, 739, 741, 173,
792 374, 740, 742, 743, 744, 745, 653, 377, 661, 170,
793 665, 818, 748, 828, 164, 830, 831, 749, 757, 374,
794 374, 758, 759, 177, 178, 179, 377, 377, 180, 816,
795 817, 662, 760, 762, 764, 774, 775, 807, 791, 659,
796 147, 181, 785, 148, 870, 404, 786, 149, 806, 150,
797 151, 709, 710, 711, 712, 810, 813, 824, 821, 680,
798 858, 675, 375, 697, 698, 504, 829, 483, 483, 832,
799 713, 894, 729, 839, 893, 418, 840, 842, 418, -608,
800 867, 375, 375, 846, 850, 852, 851, 856, 659, 808,
801 809, 862, 98, 912, 884, 863, 864, 866, 100, 872,
802 659, 873, 874, 876, 694, 875, 877, 1, 2, 3,
803 4, 5, 6, 7, 8, 880, 879, 723, 882, 692,
804 9, 177, 178, 179, 692, 61, 180, 883, 904, 791,
805 659, 885, 11, 888, 890, 941, 891, 895, 896, 181,
806 899, 659, 901, 1, 2, 3, 4, 5, 6, 7,
807 8, 791, 902, 903, 913, 911, 9, 742, 914, 916,
808 938, 10, 924, 917, 927, 791, 926, 929, 11, 12,
809 13, 928, 933, 930, 801, 947, 931, 935, 932, 937,
810 14, 940, 942, 944, 167, 767, 945, 62, 63, 64,
811 65, 948, 949, 395, 763, 69, 1, 2, 3, 4,
812 5, 6, 7, 8, 184, 725, 414, 165, 826, 9,
813 412, 418, 491, 732, 61, 857, 677, 157, 768, 769,
814 736, 11, 15, 16, 17, 18, 19, 20, 21, 822,
815 22, 70, 71, 72, 73, 74, 75, 76, 77, 78,
816 79, 80, 81, 406, 82, 83, 84, 85, 751, 154,
817 426, 934, 508, 833, 147, 23, 519, 148, 919, 654,
818 24, 149, 25, 150, 151, 709, 710, 711, 712, 171,
819 946, 865, 753, 173, 802, 0, 62, 63, 64, 65,
820 0, 0, 0, 170, 0, 0, 0, 0, 0, 0,
821 0, 0, 170, 384, 0, 98, 0, 374, 374, 0,
822 98, 100, 0, 519, 377, 377, 100, 694, 519, 0,
823 900, 0, 694, 418, 0, 66, 0, 0, 0, 799,
824 0, 0, 445, 0, 0, 445, 0, 0, 0, 918,
825 847, 0, 418, 800, 0, 0, 1, 2, 3, 4,
826 5, 6, 7, 8, 0, 0, 662, 0, 0, 9,
827 0, 0, 0, 0, 61, 0, 0, 0, 0, 375,
828 375, 11, 0, 0, 0, 943, 0, 0, 418, 1,
829 2, 3, 4, 5, 6, 7, 8, 844, 825, 0,
830 0, 723, 9, 0, 0, 0, 0, 61, 0, 0,
831 853, 454, 455, 697, 698, 0, 0, 0, 0, 0,
832 0, 0, 0, 0, 0, 0, 849, 0, 0, 457,
833 750, 0, 860, 445, 0, 0, 93, 94, 18, 65,
834 0, 464, 465, 466, 467, 468, 469, 470, 471, 472,
835 473, 474, 475, 476, 477, 478, 479, 480, 481, 0,
836 0, 0, 0, 0, 705, 0, 0, 0, 0, 62,
837 63, 64, 0, 95, 0, 0, 897, 0, 0, 0,
838 0, 0, 0, 0, 0, 905, 0, 0, 0, 0,
839 0, 198, 0, 0, 199, 200, 201, 202, 203, 204,
840 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
841 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
842 225, 905, 226, 227, 228, 229, 230, 231, 232, 233,
843 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
844 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
845 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
846 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
847 274, 0, 275, 0, 276, 277, 278, 279, 280, 281,
848 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
849 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
850 302, 303, 304, 305, 306, 307, 308, 309, 0, 0,
851 310, 0, 311, 312, 313, 314, 315, 198, 0, 0,
852 320, 200, 201, 202, 203, 204, 205, 206, 207, 321,
853 322, 323, 324, 212, 325, 326, 215, 216, 217, 327,
854 219, 220, 221, 222, 223, 224, 225, 0, 226, 227,
855 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
856 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
857 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
858 258, 259, 260, 328, 329, 330, 331, 332, 266, 267,
859 268, 269, 270, 271, 272, 273, 274, 0, 275, 0,
860 276, 277, 278, 279, 280, 333, 282, 334, 335, 336,
861 337, 338, 339, 289, 340, 291, 292, 341, 342, 343,
862 344, 345, 346, 347, 348, 349, 350, 351, 352, 353,
863 354, 355, 356, 309, 0, 0, 310, 0, 311, 312,
864 313, 314, 315, 522, 0, 0, 523, 524, 525, 526,
865 527, 528, 529, 530, 531, 532, 533, 534, 535, 536,
866 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
867 547, 548, 549, 0, 550, 551, 552, 553, 554, 413,
868 724, 555, 556, 557, 558, 559, 560, 561, 562, 563,
869 564, 565, 566, 567, 568, 569, 570, 571, 572, 573,
870 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
871 584, 585, 586, 587, 588, 589, 590, 591, 592, 593,
872 594, 595, 596, 0, 597, 0, 598, 599, 600, 601,
873 602, 603, 604, 605, 606, 607, 608, 609, 610, 611,
874 612, 613, 614, 615, 616, 617, 618, 619, 620, 621,
875 622, 623, 624, 625, 626, 627, 628, 629, 630, 631,
876 0, 0, 632, 0, 633, 634, 635, 636, 637, 522,
877 0, 0, 523, 524, 525, 526, 527, 528, 529, 530,
878 531, 532, 533, 534, 535, 536, 537, 538, 539, 540,
879 541, 542, 543, 544, 545, 546, 547, 548, 549, 0,
880 550, 551, 552, 553, 554, 413, 0, 555, 556, 557,
881 558, 559, 560, 561, 562, 563, 564, 565, 566, 567,
882 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
883 578, 579, 580, 581, 582, 583, 584, 585, 586, 587,
884 588, 589, 590, 591, 592, 593, 594, 595, 596, 0,
885 597, 0, 598, 599, 600, 601, 602, 603, 604, 605,
886 606, 607, 608, 609, 610, 611, 612, 613, 614, 615,
887 616, 617, 618, 619, 620, 621, 622, 623, 624, 625,
888 626, 627, 628, 629, 630, 631, -584, 0, 632, 0,
889 633, 634, 635, 636, 637, -584, -584, -584, -584, 0,
890 -584, -584, 0, 0, 0, -584, 0, 0, 0, 0,
891 0, 0, -584, -584, -584, -584, -584, -584, -584, -584,
892 -584, -584, -584, -584, 0, -584, -584, -584, -584, -584,
893 -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
894 -584, -584, -584, 0, 0, 0, 0, 0, -584, -584,
895 -584, -584, -584, -584, 1, 2, 3, 4, 5, 6,
896 7, 8, 0, 0, 0, 0, 0, 9, 0, 0,
897 -584, -584, 61, -584, -584, -584, -584, -584, -584, 11,
898 -584, 0, 0, -584, -584, -584, -584, -584, -584, -584,
899 -584, -584, -584, -584, -584, -584, -584, -584, -584, 0,
900 104, 0, 0, 0, 0, 0, 0, 0, -584, 105,
901 106, 107, 108, 0, 109, 110, 512, 0, 0, 111,
902 495, 0, 496, 0, 497, 367, 513, 0, 0, 498,
903 0, 0, 0, 0, 93, 94, 18, 65, 0, 0,
904 0, 0, 0, 0, 369, 370, 168, 0, 0, 0,
905 0, 0, 0, 0, 0, 0, 0, 371, 372, 0,
906 0, 0, 0, 112, 113, 114, 115, 116, 0, 0,
907 0, 688, 0, 0, 0, 0, 0, 0, 0, 0,
908 0, 0, 0, 0, 514, 117, 0, 118, 119, 120,
909 121, 122, 123, 0, 124, 0, 0, 125, 126, 127,
910 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
911 138, 139, 140, 104, 0, 0, 0, 0, 0, 0,
912 0, 515, 105, 106, 107, 108, 0, 109, 110, 0,
913 0, 0, 111, 0, 0, 365, 0, 366, 367, 0,
914 0, 0, 368, 0, 0, 0, 0, 0, 0, 0,
915 0, 0, 0, 0, 0, 0, 0, 369, 370, 0,
916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
917 371, 372, 0, 0, 0, 0, 112, 113, 114, 115,
918 116, 0, 0, 0, 0, 0, 0, 0, 373, 0,
919 0, 0, 0, 0, 0, 0, 0, 0, 117, 0,
920 118, 119, 120, 121, 122, 123, 0, 124, 0, 0,
921 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
922 135, 136, 137, 138, 139, 140, -33, 0, 0, 681,
923 0, 0, 0, 0, 0, -33, -33, -33, -33, 0,
924 -33, -33, 0, 0, 0, -33, 0, 0, -33, -33,
925 -33, -33, 0, 0, 0, -33, 0, 0, 0, 0,
926 0, 0, 1, 2, 3, 4, 5, 6, 7, 8,
927 -33, -33, 0, 0, 0, 9, 0, 0, 0, 0,
928 61, 0, 0, -33, -33, 0, 0, 11, 0, -33,
929 -33, -33, -33, -33, 0, 0, 0, 0, 0, 0,
930 0, -33, 0, 0, 0, 0, 0, 0, 0, 0,
931 0, -33, 0, -33, -33, -33, -33, -33, -33, 0,
932 -33, 0, 0, -33, -33, -33, -33, -33, -33, -33,
933 -33, -33, -33, -33, -33, -33, -33, -33, -33, -34,
934 0, -33, 93, 94, 18, 65, 0, 0, -34, -34,
935 -34, -34, 0, -34, -34, 0, 0, 0, -34, 0,
936 0, -34, -34, -34, -34, 0, 0, 0, -34, 0,
937 0, 0, 0, 0, 0, 1, 2, 3, 4, 5,
938 6, 7, 8, -34, -34, 0, 0, 0, 9, 0,
939 0, 0, 0, 61, 0, 0, -34, -34, 0, 0,
940 11, 0, -34, -34, -34, -34, -34, 0, 0, 0,
941 0, 0, 0, 0, -34, 0, 0, 0, 0, 0,
942 0, 0, 0, 0, -34, 0, -34, -34, -34, -34,
943 -34, -34, 0, -34, 0, 0, -34, -34, -34, -34,
944 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
945 -34, -34, -35, 0, -34, 62, 63, 64, 65, 0,
946 0, -35, -35, -35, -35, 0, -35, -35, 0, 0,
947 0, -35, 0, 0, -35, -35, -35, -35, 0, 0,
948 0, -35, 0, 0, 0, 0, 0, 0, 1, 2,
949 3, 4, 5, 6, 7, 8, -35, -35, 0, 0,
950 0, 417, 0, 0, 0, 0, 61, 0, 0, -35,
951 -35, 0, 0, 11, 0, -35, -35, -35, -35, -35,
952 0, 0, 0, 0, 0, 0, 0, -35, 0, 0,
953 0, 0, 0, 0, 0, 0, 0, -35, 0, -35,
954 -35, -35, -35, -35, -35, 0, -35, 0, 0, -35,
955 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
956 -35, -35, -35, -35, -35, -36, 0, -35, 62, 63,
957 64, 65, 0, 0, -36, -36, -36, -36, 0, -36,
958 -36, 0, 0, 0, -36, 0, 0, -36, -36, -36,
959 -36, 0, 0, 0, -36, 0, 0, 0, 0, 0,
960 0, 0, 0, 0, 0, 0, 0, 0, 0, -36,
961 -36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
962 0, 0, -36, -36, 0, 0, 0, 0, -36, -36,
963 -36, -36, -36, 0, 0, 0, 0, 0, 0, 0,
964 -36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
965 -36, 0, -36, -36, -36, -36, -36, -36, 0, -36,
966 0, 0, -36, -36, -36, -36, -36, -36, -36, -36,
967 -36, -36, -36, -36, -36, -36, -36, -36, -37, 0,
968 -36, 0, 0, 0, 0, 0, 0, -37, -37, -37,
969 -37, 0, -37, -37, 0, 0, 0, -37, 0, 0,
970 -37, -37, -37, -37, 0, 0, 0, -37, 0, 0,
971 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
972 0, 0, -37, -37, 0, 0, 0, 0, 0, 0,
973 0, 0, 0, 0, 0, -37, -37, 0, 0, 0,
974 0, -37, -37, -37, -37, -37, 0, 0, 0, 0,
975 0, 0, 0, -37, 0, 0, 0, 0, 0, 0,
976 0, 0, 0, -37, 0, -37, -37, -37, -37, -37,
977 -37, 0, -37, 0, 0, -37, -37, -37, -37, -37,
978 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
979 -37, -60, 0, -37, 0, 0, 0, 0, 0, 0,
980 -60, -60, -60, -60, 0, -60, -60, 0, 0, 0,
981 -60, 0, 0, -60, -60, -60, -60, 0, 0, 0,
982 -60, 0, 0, 0, 0, 0, 0, 0, 0, 0,
983 0, 0, 0, 0, 0, -60, -60, 0, 0, 0,
984 0, 0, 0, 0, 0, 0, 0, 0, -60, -60,
985 0, 0, 0, 0, -60, -60, -60, -60, -60, 0,
986 0, 0, 0, 0, 0, 0, -60, 0, 0, 0,
987 0, 0, 0, 0, 0, 0, -60, 0, -60, -60,
988 -60, -60, -60, -60, 0, -60, 0, 0, -60, -60,
989 -60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
990 -60, -60, -60, -60, -61, 0, -623, 0, 0, 0,
991 0, 0, 0, -61, -61, -61, -61, 0, -61, -61,
992 0, 0, 0, -61, 0, 0, -61, -61, -61, -61,
993 0, 0, 0, -61, 0, 0, 0, 0, 0, 0,
994 0, 0, 0, 0, 0, 0, 0, 0, -61, -61,
995 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
996 0, -61, -61, 0, 0, 0, 0, -61, -61, -61,
997 -61, -61, 0, 0, 0, 0, 0, 0, 0, -61,
998 0, 0, 0, 0, 0, 0, 0, 0, 0, -61,
999 0, -61, -61, -61, -61, -61, -61, 0, -61, 0,
1000 0, -61, -61, -61, -61, -61, -61, -61, -61, -61,
1001 -61, -61, -61, -61, -61, -61, -61, -24, 0, -584,
1002 0, 0, 0, 0, 0, 0, -24, -24, -24, -24,
1003 0, -24, -24, 0, 0, 0, -24, 0, 0, -24,
1004 -24, -24, -24, 0, 0, 0, -24, 0, 0, 0,
1005 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1006 0, -24, -24, 0, 0, 0, 0, 0, 0, 0,
1007 0, 0, 0, 0, -24, -24, 0, 0, 0, 0,
1008 -24, -24, -24, -24, -24, 0, 0, 0, 0, 0,
1009 0, 0, -24, 0, 0, 0, 0, 0, 0, 0,
1010 0, 0, -24, 0, -24, -24, -24, -24, -24, -24,
1011 0, -24, 0, 0, -24, -24, -24, -24, -24, -24,
1012 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
1013 -42, 0, -24, 0, 0, 0, 0, 0, 0, -42,
1014 -42, -42, -42, 0, -42, -42, 0, 0, 0, -42,
1015 0, 0, -42, -42, -42, -42, 0, 0, 0, -42,
1016 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1017 0, 0, 0, 0, -42, -42, 0, 0, 0, 0,
1018 0, 0, 0, 0, 0, 0, 0, -42, -42, 0,
1019 0, 0, 0, -42, -42, -42, -42, -42, 0, 0,
1020 0, 0, 0, 0, 0, -42, 0, 0, 0, 0,
1021 0, 0, 0, 0, 0, -42, 0, -42, -42, -42,
1022 -42, -42, -42, 0, -42, 0, 0, -42, -42, -42,
1023 -42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
1024 -42, -42, -42, -41, 0, -42, 0, 0, 0, 0,
1025 0, 0, -41, -41, -41, -41, 0, -41, -41, 0,
1026 0, 0, -41, 0, 0, -41, -41, -41, -41, 0,
1027 0, 0, -41, 0, 0, 0, 0, 0, 0, 0,
1028 0, 0, 0, 0, 0, 0, 0, -41, -41, 0,
1029 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1030 -41, -41, 0, 0, 0, 0, -41, -41, -41, -41,
1031 -41, 0, 0, 0, 0, 0, 0, 0, -41, 0,
1032 0, 0, 0, 0, 0, 0, 0, 0, -41, 0,
1033 -41, -41, -41, -41, -41, -41, 0, -41, 0, 0,
1034 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
1035 -41, -41, -41, -41, -41, -41, -40, 0, -41, 0,
1036 0, 0, 0, 0, 0, -40, -40, -40, -40, 0,
1037 -40, -40, 0, 0, 0, -40, 0, 0, -40, -40,
1038 -40, -40, 0, 0, 0, -40, 0, 0, 0, 0,
1039 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1040 -40, -40, 0, 0, 0, 0, 0, 0, 0, 0,
1041 0, 0, 0, -40, -40, 0, 0, 0, 0, -40,
1042 -40, -40, -40, -40, 0, 0, 0, 0, 0, 0,
1043 0, -40, 0, 0, 0, 0, 0, 0, 0, 0,
1044 0, -40, 0, -40, -40, -40, -40, -40, -40, 0,
1045 -40, 0, 0, -40, -40, -40, -40, -40, -40, -40,
1046 -40, -40, -40, -40, -40, -40, -40, -40, -40, -38,
1047 0, -40, 0, 0, 0, 0, 0, 0, -38, -38,
1048 -38, -38, 0, -38, -38, 0, 0, 0, -38, 0,
1049 0, -38, -38, -38, -38, 0, 0, 0, -38, 0,
1050 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1051 0, 0, 0, -38, -38, 0, 0, 0, 0, 0,
1052 0, 0, 0, 0, 0, 0, -38, -38, 0, 0,
1053 0, 0, -38, -38, -38, -38, -38, 0, 0, 0,
1054 0, 0, 0, 0, -38, 0, 0, 0, 0, 0,
1055 0, 0, 0, 0, -38, 0, -38, -38, -38, -38,
1056 -38, -38, 0, -38, 0, 0, -38, -38, -38, -38,
1057 -38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
1058 -38, -38, -39, 0, -38, 0, 0, 0, 0, 0,
1059 0, -39, -39, -39, -39, 0, -39, -39, 0, 0,
1060 0, -39, 0, 0, -39, -39, -39, -39, 0, 0,
1061 0, -39, 0, 0, 0, 0, 0, 0, 0, 0,
1062 0, 0, 0, 0, 0, 0, -39, -39, 0, 0,
1063 0, 0, 0, 0, 0, 0, 0, 0, 0, -39,
1064 -39, 0, 0, 0, 0, -39, -39, -39, -39, -39,
1065 0, 0, 0, 0, 0, 0, 0, -39, 0, 0,
1066 0, 0, 0, 0, 0, 0, 0, -39, 0, -39,
1067 -39, -39, -39, -39, -39, 0, -39, 0, 0, -39,
1068 -39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
1069 -39, -39, -39, -39, -39, -32, 0, -39, 0, 0,
1070 0, 0, 0, 0, -32, -32, -32, -32, 0, -32,
1071 -32, 0, 0, 0, -32, 0, 0, -32, -32, -32,
1072 -32, 0, 0, 0, -32, 0, 0, 0, 0, 0,
1073 0, 0, 0, 0, 0, 0, 0, 0, 0, -32,
1074 -32, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1075 0, 0, -32, -32, 0, 0, 0, 0, -32, -32,
1076 -32, -32, -32, 0, 0, 0, 0, 0, 0, 0,
1077 -32, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1078 -32, 0, -32, -32, -32, -32, -32, -32, 0, -32,
1079 0, 0, -32, -32, -32, -32, -32, -32, -32, -32,
1080 -32, -32, -32, -32, -32, -32, -32, -32, -31, 0,
1081 -32, 0, 0, 0, 0, 0, 0, -31, -31, -31,
1082 -31, 0, -31, -31, 0, 0, 0, -31, 0, 0,
1083 -31, -31, -31, -31, 0, 0, 0, -31, 0, 0,
1084 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1085 0, 0, -31, -31, 0, 0, 0, 0, 0, 0,
1086 0, 0, 0, 0, 0, -31, -31, 0, 0, 0,
1087 0, -31, -31, -31, -31, -31, 0, 0, 0, 0,
1088 0, 0, 0, -31, 0, 0, 0, 0, 0, 0,
1089 0, 0, 0, -31, 0, -31, -31, -31, -31, -31,
1090 -31, 0, -31, 0, 0, -31, -31, -31, -31, -31,
1091 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
1092 -31, -25, 0, -31, 0, 0, 0, 0, 0, 0,
1093 -25, -25, -25, -25, 0, -25, -25, 0, 0, 0,
1094 -25, 0, 0, -25, -25, -25, -25, 0, 0, 0,
1095 -25, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1096 0, 0, 0, 0, 0, -25, -25, 0, 0, 0,
1097 0, 0, 0, 0, 0, 0, 0, 0, -25, -25,
1098 0, 0, 0, 0, -25, -25, -25, -25, -25, 0,
1099 0, 0, 0, 0, 0, 0, -25, 0, 0, 0,
1100 0, 0, 0, 0, 0, 0, -25, 0, -25, -25,
1101 -25, -25, -25, -25, 0, -25, 0, 0, -25, -25,
1102 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
1103 -25, -25, -25, -25, -29, 0, -25, 0, 0, 0,
1104 0, 0, 0, -29, -29, -29, -29, 0, -29, -29,
1105 0, 0, 0, -29, 0, 0, -29, -29, -29, -29,
1106 0, 0, 0, -29, 0, 0, 0, 0, 0, 0,
1107 0, 0, 0, 0, 0, 0, 0, 0, -29, -29,
1108 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1109 0, -29, -29, 0, 0, 0, 0, -29, -29, -29,
1110 -29, -29, 0, 0, 0, 0, 0, 0, 0, -29,
1111 0, 0, 0, 0, 0, 0, 0, 0, 0, -29,
1112 0, -29, -29, -29, -29, -29, -29, 0, -29, 0,
1113 0, -29, -29, -29, -29, -29, -29, -29, -29, -29,
1114 -29, -29, -29, -29, -29, -29, -29, -28, 0, -29,
1115 0, 0, 0, 0, 0, 0, -28, -28, -28, -28,
1116 0, -28, -28, 0, 0, 0, -28, 0, 0, -28,
1117 -28, -28, -28, 0, 0, 0, -28, 0, 0, 0,
1118 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1119 0, -28, -28, 0, 0, 0, 0, 0, 0, 0,
1120 0, 0, 0, 0, -28, -28, 0, 0, 0, 0,
1121 -28, -28, -28, -28, -28, 0, 0, 0, 0, 0,
1122 0, 0, -28, 0, 0, 0, 0, 0, 0, 0,
1123 0, 0, -28, 0, -28, -28, -28, -28, -28, -28,
1124 0, -28, 0, 0, -28, -28, -28, -28, -28, -28,
1125 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
1126 -26, 0, -28, 0, 0, 0, 0, 0, 0, -26,
1127 -26, -26, -26, 0, -26, -26, 0, 0, 0, -26,
1128 0, 0, -26, -26, -26, -26, 0, 0, 0, -26,
1129 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1130 0, 0, 0, 0, -26, -26, 0, 0, 0, 0,
1131 0, 0, 0, 0, 0, 0, 0, -26, -26, 0,
1132 0, 0, 0, -26, -26, -26, -26, -26, 0, 0,
1133 0, 0, 0, 0, 0, -26, 0, 0, 0, 0,
1134 0, 0, 0, 0, 0, -26, 0, -26, -26, -26,
1135 -26, -26, -26, 0, -26, 0, 0, -26, -26, -26,
1136 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
1137 -26, -26, -26, -27, 0, -26, 0, 0, 0, 0,
1138 0, 0, -27, -27, -27, -27, 0, -27, -27, 0,
1139 0, 0, -27, 0, 0, -27, -27, -27, -27, 0,
1140 0, 0, -27, 0, 0, 0, 0, 0, 0, 0,
1141 0, 0, 0, 0, 0, 0, 0, -27, -27, 0,
1142 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1143 -27, -27, 0, 0, 0, 0, -27, -27, -27, -27,
1144 -27, 0, 0, 0, 0, 0, 0, 0, -27, 0,
1145 0, 0, 0, 0, 0, 0, 0, 0, -27, 0,
1146 -27, -27, -27, -27, -27, -27, 0, -27, 0, 0,
1147 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
1148 -27, -27, -27, -27, -27, -27, -43, 0, -27, 0,
1149 0, 0, 0, 0, 0, -43, -43, -43, -43, 0,
1150 -43, -43, 0, 0, 0, -43, 0, 0, -43, -43,
1151 -43, -43, 0, 0, 0, -43, 0, 0, 0, 0,
1152 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1153 -43, -43, 0, 0, 0, 0, 0, 0, 0, 0,
1154 0, 0, 0, -43, -43, 0, 0, 0, 0, -43,
1155 -43, -43, -43, -43, 0, 0, 0, 0, 0, 0,
1156 0, -43, 0, 0, 0, 0, 0, 0, 0, 0,
1157 0, -43, 0, -43, -43, -43, -43, -43, -43, 0,
1158 -43, 0, 0, -43, -43, -43, -43, -43, -43, -43,
1159 -43, -43, -43, -43, -43, -43, -43, -43, -43, -138,
1160 0, -43, 0, 0, 0, 0, 0, 0, -138, -138,
1161 -138, -138, 0, -138, -138, 0, 0, 0, -138, 0,
1162 0, -138, -138, -138, -138, 0, 0, 0, -138, 0,
1163 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1164 0, 0, 0, -138, -138, 0, 0, 0, 0, 0,
1165 0, 0, 0, 0, 0, 0, -138, -138, 0, 0,
1166 0, 0, -138, -138, -138, -138, -138, 0, 0, 0,
1167 0, 0, 0, 0, -138, 0, 0, 0, 0, 0,
1168 0, 0, 0, 0, -138, 0, -138, -138, -138, -138,
1169 -138, -138, 0, -138, 0, 0, -138, -138, -138, -138,
1170 -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
1171 -138, -138, -139, 0, -592, 0, 0, 0, 0, 0,
1172 0, -139, -139, -139, -139, 0, -139, -139, 0, 0,
1173 0, -139, 0, 0, -139, -139, -139, -139, 0, 0,
1174 0, -139, 0, 0, 0, 0, 0, 0, 0, 0,
1175 0, 0, 0, 0, 0, 0, -139, -139, 0, 0,
1176 0, 0, 0, 0, 0, 0, 0, 0, 0, -139,
1177 -139, 0, 0, 0, 0, -139, -139, -139, -139, -139,
1178 0, 0, 0, 0, 0, 0, 0, -139, 0, 0,
1179 0, 0, 0, 0, 0, 0, 0, -139, 0, -139,
1180 -139, -139, -139, -139, -139, 0, -139, 0, 0, -139,
1181 -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
1182 -139, -139, -139, -139, -139, -140, 0, -591, 0, 0,
1183 0, 0, 0, 0, -140, -140, -140, -140, 0, -140,
1184 -140, 0, 0, 0, -140, 0, 0, -140, -140, -140,
1185 -140, 0, 0, 0, -140, 0, 0, 0, 0, 0,
1186 0, 0, 0, 0, 0, 0, 0, 0, 0, -140,
1187 -140, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1188 0, 0, -140, -140, 0, 0, 0, 0, -140, -140,
1189 -140, -140, -140, 0, 0, 0, 0, 0, 0, 0,
1190 -140, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1191 -140, 0, -140, -140, -140, -140, -140, -140, 0, -140,
1192 0, 0, -140, -140, -140, -140, -140, -140, -140, -140,
1193 -140, -140, -140, -140, -140, -140, -140, -140, -141, 0,
1194 -589, 0, 0, 0, 0, 0, 0, -141, -141, -141,
1195 -141, 0, -141, -141, 0, 0, 0, -141, 0, 0,
1196 -141, -141, -141, -141, 0, 0, 0, -141, 0, 0,
1197 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1198 0, 0, -141, -141, 0, 0, 0, 0, 0, 0,
1199 0, 0, 0, 0, 0, -141, -141, 0, 0, 0,
1200 0, -141, -141, -141, -141, -141, 0, 0, 0, 0,
1201 0, 0, 0, -141, 0, 0, 0, 0, 0, 0,
1202 0, 0, 0, -141, 0, -141, -141, -141, -141, -141,
1203 -141, 0, -141, 0, 0, -141, -141, -141, -141, -141,
1204 -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
1205 -141, -142, 0, -587, 0, 0, 0, 0, 0, 0,
1206 -142, -142, -142, -142, 0, -142, -142, 0, 0, 0,
1207 -142, 0, 0, -142, -142, -142, -142, 0, 0, 0,
1208 -142, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1209 0, 0, 0, 0, 0, -142, -142, 0, 0, 0,
1210 0, 0, 0, 0, 0, 0, 0, 0, -142, -142,
1211 0, 0, 0, 0, -142, -142, -142, -142, -142, 0,
1212 0, 0, 0, 0, 0, 0, -142, 0, 0, 0,
1213 0, 0, 0, 0, 0, 0, -142, 0, -142, -142,
1214 -142, -142, -142, -142, 0, -142, 0, 0, -142, -142,
1215 -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
1216 -142, -142, -142, -142, -143, 0, -588, 0, 0, 0,
1217 0, 0, 0, -143, -143, -143, -143, 0, -143, -143,
1218 0, 0, 0, -143, 0, 0, -143, -143, -143, -143,
1219 0, 0, 0, -143, 0, 0, 0, 0, 0, 0,
1220 0, 0, 0, 0, 0, 0, 0, 0, -143, -143,
1221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1222 0, -143, -143, 0, 0, 0, 0, -143, -143, -143,
1223 -143, -143, 0, 0, 0, 0, 0, 0, 0, -143,
1224 0, 0, 0, 0, 0, 0, 0, 0, 0, -143,
1225 0, -143, -143, -143, -143, -143, -143, 0, -143, 0,
1226 0, -143, -143, -143, -143, -143, -143, -143, -143, -143,
1227 -143, -143, -143, -143, -143, -143, -143, -144, 0, -590,
1228 0, 0, 0, 0, 0, 0, -144, -144, -144, -144,
1229 0, -144, -144, 0, 0, 0, -144, 0, 0, -144,
1230 -144, -144, -144, 0, 0, 0, -144, 0, 0, 0,
1231 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1232 0, -144, -144, 0, 0, 0, 0, 0, 0, 0,
1233 0, 0, 0, 0, -144, -144, 0, 0, 0, 0,
1234 -144, -144, -144, -144, -144, 0, 0, 0, 0, 0,
1235 0, 0, -144, 0, 0, 0, 0, 0, 0, 0,
1236 0, 0, -144, 0, -144, -144, -144, -144, -144, -144,
1237 0, -144, 0, 0, -144, -144, -144, -144, -144, -144,
1238 -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
1239 -145, 0, -586, 0, 0, 0, 0, 0, 0, -145,
1240 -145, -145, -145, 0, -145, -145, 0, 0, 0, -145,
1241 0, 0, -145, -145, -145, -145, 0, 0, 0, -145,
1242 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1243 0, 0, 0, 0, -145, -145, 0, 0, 0, 0,
1244 0, 0, 0, 0, 0, 0, 0, -145, -145, 0,
1245 0, 0, 0, -145, -145, -145, -145, -145, 0, 0,
1246 0, 0, 0, 0, 0, -145, 0, 0, 0, 0,
1247 0, 0, 0, 0, 0, -145, 0, -145, -145, -145,
1248 -145, -145, -145, 0, -145, 0, 0, -145, -145, -145,
1249 -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
1250 -145, -145, -145, -146, 0, -585, 0, 0, 0, 0,
1251 0, 0, -146, -146, -146, -146, 0, -146, -146, 0,
1252 0, 0, -146, 0, 0, -146, -146, -146, -146, 0,
1253 0, 0, -146, 0, 0, 0, 0, 0, 0, 0,
1254 0, 0, 0, 0, 0, 0, 0, -146, -146, 0,
1255 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1256 -146, -146, 0, 0, 0, 0, -146, -146, -146, -146,
1257 -146, 0, 0, 0, 0, 0, 0, 0, -146, 0,
1258 0, 0, 0, 0, 0, 0, 0, 0, -146, 0,
1259 -146, -146, -146, -146, -146, -146, 0, -146, 0, 0,
1260 -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
1261 -146, -146, -146, -146, -146, -146, -30, 0, -593, 0,
1262 0, 0, 0, 0, 0, -30, -30, -30, -30, 0,
1263 -30, -30, 0, 0, 0, -30, 0, 0, -30, -30,
1264 -30, -30, 0, 0, 0, -30, 0, 0, 0, 0,
1265 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1266 -30, -30, 0, 0, 0, 0, 0, 0, 0, 0,
1267 0, 0, 0, -30, -30, 0, 0, 0, 0, -30,
1268 -30, -30, -30, -30, 0, 0, 0, 0, 0, 0,
1269 0, -30, 0, 0, 0, 0, 0, 0, 0, 0,
1270 0, -30, 0, -30, -30, -30, -30, -30, -30, 0,
1271 -30, 0, 0, -30, -30, -30, -30, -30, -30, -30,
1272 -30, -30, -30, -30, -30, -30, -30, -30, -30, -148,
1273 0, -30, 0, 0, 0, 0, 0, 0, -148, -148,
1274 -148, -148, 0, -148, -148, 0, 0, 0, -148, 0,
1275 0, -148, -148, -148, -148, 0, 0, 0, -148, 0,
1276 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1277 0, 0, 0, -148, -148, 0, 0, 0, 0, 0,
1278 0, 0, 0, 0, 0, 0, -148, -148, 0, 0,
1279 0, 0, -148, -148, -148, -148, -148, 0, 0, 0,
1280 0, 0, 0, 0, -148, 0, 0, 0, 0, 0,
1281 0, 0, 0, 0, -148, 0, -148, -148, -148, -148,
1282 -148, -148, 0, -148, 0, 0, -148, -148, -148, -148,
1283 -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
1284 -148, -148, -149, 0, -621, 0, 0, 0, 0, 0,
1285 0, -149, -149, -149, -149, 0, -149, -149, 0, 0,
1286 0, -149, 0, 0, -149, -149, -149, -149, 0, 0,
1287 0, -149, 0, 0, 0, 0, 0, 0, 0, 0,
1288 0, 0, 0, 0, 0, 0, -149, -149, 0, 0,
1289 0, 0, 0, 0, 0, 0, 0, 0, 0, -149,
1290 -149, 0, 0, 0, 0, -149, -149, -149, -149, -149,
1291 0, 0, 0, 0, 0, 0, 0, -149, 0, 0,
1292 0, 0, 0, 0, 0, 0, 0, -149, 0, -149,
1293 -149, -149, -149, -149, -149, 0, -149, 0, 0, -149,
1294 -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
1295 -149, -149, -149, -149, -149, -150, 0, -619, 0, 0,
1296 0, 0, 0, 0, -150, -150, -150, -150, 0, -150,
1297 -150, 0, 0, 0, -150, 0, 0, -150, -150, -150,
1298 -150, 0, 0, 0, -150, 0, 0, 0, 0, 0,
1299 0, 0, 0, 0, 0, 0, 0, 0, 0, -150,
1300 -150, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1301 0, 0, -150, -150, 0, 0, 0, 0, -150, -150,
1302 -150, -150, -150, 0, 0, 0, 0, 0, 0, 0,
1303 -150, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1304 -150, 0, -150, -150, -150, -150, -150, -150, 0, -150,
1305 0, 0, -150, -150, -150, -150, -150, -150, -150, -150,
1306 -150, -150, -150, -150, -150, -150, -150, -150, -151, 0,
1307 -618, 0, 0, 0, 0, 0, 0, -151, -151, -151,
1308 -151, 0, -151, -151, 0, 0, 0, -151, 0, 0,
1309 -151, -151, -151, -151, 0, 0, 0, -151, 0, 0,
1310 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1311 0, 0, -151, -151, 0, 0, 0, 0, 0, 0,
1312 0, 0, 0, 0, 0, -151, -151, 0, 0, 0,
1313 0, -151, -151, -151, -151, -151, 0, 0, 0, 0,
1314 0, 0, 0, -151, 0, 0, 0, 0, 0, 0,
1315 0, 0, 0, -151, 0, -151, -151, -151, -151, -151,
1316 -151, 0, -151, 0, 0, -151, -151, -151, -151, -151,
1317 -151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
1318 -151, -152, 0, -620, 0, 0, 0, 0, 0, 0,
1319 -152, -152, -152, -152, 0, -152, -152, 0, 0, 0,
1320 -152, 0, 0, -152, -152, -152, -152, 0, 0, 0,
1321 -152, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1322 0, 0, 0, 0, 0, -152, -152, 0, 0, 0,
1323 0, 0, 0, 0, 0, 0, 0, 0, -152, -152,
1324 0, 0, 0, 0, -152, -152, -152, -152, -152, 0,
1325 0, 0, 0, 0, 0, 0, -152, 0, 0, 0,
1326 0, 0, 0, 0, 0, 0, -152, 0, -152, -152,
1327 -152, -152, -152, -152, 0, -152, 0, 0, -152, -152,
1328 -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
1329 -152, -152, -152, -152, -153, 0, -617, 0, 0, 0,
1330 0, 0, 0, -153, -153, -153, -153, 0, -153, -153,
1331 0, 0, 0, -153, 0, 0, -153, -153, -153, -153,
1332 0, 0, 0, -153, 0, 0, 0, 0, 0, 0,
1333 0, 0, 0, 0, 0, 0, 0, 0, -153, -153,
1334 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1335 0, -153, -153, 0, 0, 0, 0, -153, -153, -153,
1336 -153, -153, 0, 0, 0, 0, 0, 0, 0, -153,
1337 0, 0, 0, 0, 0, 0, 0, 0, 0, -153,
1338 0, -153, -153, -153, -153, -153, -153, 0, -153, 0,
1339 0, -153, -153, -153, -153, -153, -153, -153, -153, -153,
1340 -153, -153, -153, -153, -153, -153, -153, 104, 0, -616,
1341 0, 0, 0, 0, 0, 0, 105, 106, 107, 108,
1342 0, 109, 110, 0, 0, 0, 111, 0, 0, 365,
1343 448, 366, 367, 0, 0, 0, 368, 0, 0, 0,
1344 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1345 0, 369, 370, 0, 0, 0, 0, 0, 0, 0,
1346 0, 0, 0, 0, 371, 372, 0, 0, 0, 0,
1347 112, 113, 114, 115, 116, 0, 0, 0, 0, 0,
1348 0, 0, 373, 0, 0, 0, 0, 0, 0, 0,
1349 0, 0, 117, 0, 118, 119, 120, 121, 122, 123,
1350 0, 124, 0, 0, 125, 126, 127, 128, 129, 130,
1351 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1352 0, 0, 449, 104, 1, 2, 3, 4, 5, 6,
1353 7, 8, 105, 106, 107, 108, 0, 699, 110, 512,
1354 0, 0, 700, 495, 0, 496, 0, 497, 367, 11,
1355 0, 0, 498, 0, 0, 0, 0, 0, 0, 0,
1356 0, 0, 0, 0, 0, 0, 0, 369, 370, 168,
1357 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1358 371, 372, 0, 0, 0, 0, 112, 113, 114, 115,
1359 116, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1360 0, 0, 0, 0, 62, 63, 64, 65, 117, 0,
1361 118, 119, 120, 121, 122, 123, 0, 124, 0, 0,
1362 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1363 135, 136, 137, 138, 139, 140, 104, 0, 0, 0,
1364 0, 0, 0, 0, 0, 105, 106, 107, 108, 0,
1365 109, 110, 492, 493, 494, 111, 495, 0, 496, 448,
1366 497, 367, 0, 0, 0, 498, 0, 0, 0, 0,
1367 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1368 369, 370, 168, 0, 0, 0, 0, 0, 0, 0,
1369 0, 0, 0, 371, 372, 0, 0, 0, 0, 112,
1370 113, 114, 115, 116, 0, 0, 0, 0, 0, 0,
1371 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1372 0, 117, 0, 118, 119, 120, 121, 122, 123, 0,
1373 124, 0, 0, 125, 126, 127, 128, 129, 130, 131,
1374 132, 133, 134, 135, 136, 137, 138, 139, 140, 104,
1375 0, 0, 0, 0, 0, 0, 0, 0, 105, 106,
1376 107, 108, 0, 109, 110, 787, 0, 0, 111, 495,
1377 0, 496, 0, 497, 367, 0, 0, 0, 498, 0,
1378 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1379 158, 0, 0, 369, 370, 168, 0, 0, 0, 0,
1380 0, 0, 0, 0, 0, 0, 371, 372, 0, 0,
1381 0, 0, 112, 113, 114, 115, 116, 0, 0, 0,
1382 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1383 0, 0, 0, 0, 117, 788, 789, 119, 120, 121,
1384 122, 123, 0, 124, 0, 0, 125, 126, 127, 128,
1385 129, 130, 131, 132, 133, 790, 135, 136, 137, 138,
1386 139, 140, 104, 0, 0, 0, 0, 0, 0, 0,
1387 0, 105, 106, 107, 108, 0, 109, 110, 512, 0,
1388 0, 111, 495, 0, 496, 0, 497, 367, 0, 0,
1389 0, 498, 0, 0, 0, 0, 0, 0, 0, 0,
1390 0, 0, 0, 158, 0, 0, 369, 370, 168, 0,
1391 0, 0, 0, 0, 0, 0, 0, 0, 0, 371,
1392 372, 0, 0, 869, 0, 112, 113, 114, 115, 116,
1393 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1394 0, 0, 0, 0, 0, 0, 0, 117, 0, 118,
1395 119, 120, 121, 122, 123, 0, 124, 0, 0, 125,
1396 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1397 136, 137, 138, 139, 140, 104, 0, 0, 0, 0,
1398 0, 0, 0, 0, 105, 106, 107, 108, 0, 109,
1399 110, 512, 0, 0, 111, 495, -635, 496, 0, 497,
1400 367, 0, 0, 0, 498, 0, 0, 0, 0, 0,
1401 0, 0, 0, 0, 0, 0, 158, 0, 0, 369,
1402 370, 168, 0, 0, 0, 0, 0, 0, 0, 0,
1403 0, 0, 371, 372, 0, 0, 0, 0, 112, 113,
1404 114, 115, 116, 0, 0, 0, 0, 0, 0, 0,
1405 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1406 117, 0, 118, 119, 120, 121, 122, 123, 0, 124,
1407 0, 0, 125, 126, 127, 128, 129, 130, 131, 132,
1408 133, 134, 135, 136, 137, 138, 139, 140, 104, 0,
1409 0, 0, 0, 0, 0, 0, 0, 105, 106, 107,
1410 108, 0, 109, 110, 512, 0, 0, 111, 495, 0,
1411 496, 0, 497, 367, 0, 0, 0, 498, 0, 0,
1412 0, 0, 0, 0, 0, 0, 0, 0, 0, 158,
1413 0, 0, 369, 370, 168, 0, 0, 0, 0, 0,
1414 0, 0, 0, 0, 0, 371, 372, 0, 0, 0,
1415 0, 112, 113, 114, 115, 116, 0, 0, 0, 0,
1416 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1417 0, 0, 0, 117, 0, 118, 119, 120, 121, 122,
1418 123, 0, 124, 0, 0, 125, 126, 127, 128, 129,
1419 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1420 140, 104, 0, 0, 0, 0, 0, 0, 0, 0,
1421 105, 106, 107, 108, 0, 109, 110, 787, 0, 0,
1422 111, 495, 0, 496, 0, 497, 367, 0, 0, 0,
1423 498, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1424 0, 0, 0, 0, 0, 369, 370, 168, 0, 0,
1425 0, 0, 0, 0, 0, 0, 0, 0, 371, 372,
1426 0, 0, 0, 0, 112, 113, 114, 115, 116, 0,
1427 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1428 0, 0, 0, 0, 0, 0, 117, 788, 789, 119,
1429 120, 121, 122, 123, 0, 124, 0, 0, 125, 126,
1430 127, 128, 129, 130, 131, 132, 133, 790, 135, 136,
1431 137, 138, 139, 140, 104, 0, 0, 0, 0, 0,
1432 0, 0, 0, 105, 106, 107, 108, 0, 109, 110,
1433 512, 0, 0, 111, 495, 0, 496, 0, 497, 367,
1434 0, 0, 0, 498, 0, 0, 0, 0, 0, 0,
1435 0, 0, 0, 0, 0, 0, 0, 0, 369, 370,
1436 168, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1437 0, 371, 372, 0, 0, 0, 0, 112, 113, 114,
1438 115, 116, 0, 0, 0, 0, 0, 0, 0, 0,
1439 0, 0, 0, 0, 0, 0, 0, 0, 0, 117,
1440 0, 118, 119, 120, 121, 122, 123, 0, 124, 0,
1441 0, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1442 134, 135, 136, 137, 138, 139, 140, 104, 0, 0,
1443 0, 0, 0, 0, 0, 0, 105, 106, 107, 108,
1444 0, 109, 110, 0, 0, 0, 111, 0, 0, 365,
1445 0, 366, 367, 0, 0, 0, 368, 0, 0, 0,
1446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1447 0, 369, 370, 0, 0, 0, 0, 0, 0, 0,
1448 0, 0, 0, 0, 371, 372, 0, 0, 0, 0,
1449 112, 113, 114, 115, 116, 0, 0, 0, 0, 0,
1450 0, 0, 373, 0, 0, 0, 0, 0, 0, 0,
1451 0, 0, 117, 0, 118, 119, 120, 121, 122, 123,
1452 0, 124, 0, 0, 125, 126, 127, 128, 129, 130,
1453 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1454 104, 0, 0, 0, 0, 0, 0, 0, 0, 105,
1455 106, 107, 108, 0, 109, 110, 0, 0, 0, 111,
1456 0, 0, 0, 0, 0, 0, 11, 0, 0, -527,
1457 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1458 0, 0, 0, 0, 0, 0, 168, 0, 0, 0,
1459 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1460 0, 0, 0, 112, 113, 114, 115, 116, 0, 0,
1461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1462 0, 0, 0, 0, 65, 117, 0, 118, 119, 120,
1463 121, 122, 123, 0, 124, 0, 0, 125, 126, 127,
1464 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1465 138, 139, 140, 104, 0, 0, 0, 0, 0, 0,
1466 0, 0, 105, 106, 107, 108, 0, 109, 110, 0,
1467 0, 679, 111, 0, 0, 0, 0, 0, 0, 11,
1468 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
1469 474, 475, 476, 477, 478, 479, 480, 481, 0, 168,
1470 0, 0, 0, 482, 0, 0, 0, 0, 0, 0,
1471 0, 0, 0, 0, 0, 0, 112, 113, 114, 115,
1472 116, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1473 0, 0, 0, 0, 0, 0, 0, 65, 117, 0,
1474 118, 119, 120, 121, 122, 123, 0, 124, 0, 0,
1475 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1476 135, 136, 137, 138, 139, 140, 104, 0, 0, 0,
1477 0, 0, 0, 0, 0, 105, 106, 107, 108, 0,
1478 109, 110, 0, 0, 0, 111, 0, 0, 771, 0,
1479 0, 0, 0, 0, 0, 722, 827, 464, 465, 466,
1480 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
1481 477, 478, 479, 480, 481, 0, 0, 0, 0, 0,
1482 705, 0, 0, 0, 0, 0, 0, 0, 0, 112,
1483 113, 114, 115, 116, 0, 0, 0, 0, 0, 0,
1484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1485 0, 117, 0, 118, 119, 120, 121, 122, 123, 0,
1486 124, 0, 0, 125, 126, 127, 128, 129, 130, 131,
1487 132, 133, 134, 135, 136, 137, 138, 139, 140, 104,
1488 0, 0, 0, 0, 0, 0, 0, 0, 105, 106,
1489 107, 108, 0, 109, 110, 0, 0, 0, 111, 0,
1490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1491 0, 764, 0, 0, 0, 0, 0, 0, 0, 0,
1492 0, 0, 0, 0, 0, 168, 0, 0, 0, 0,
1493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1494 0, 0, 112, 113, 114, 115, 116, 0, 0, 0,
1495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1496 0, 0, 0, 0, 117, 0, 118, 119, 120, 121,
1497 122, 123, 0, 124, 0, 0, 125, 126, 127, 128,
1498 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1499 139, 140, 104, 0, 0, 0, 0, 0, 0, 0,
1500 0, 105, 106, 107, 108, 923, 109, 110, 0, 0,
1501 0, 111, 0, 0, 464, 465, 466, 467, 468, 469,
1502 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
1503 480, 481, 0, 0, 0, 0, 0, 705, 168, 0,
1504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1505 0, 0, 0, 0, 0, 112, 113, 114, 115, 116,
1506 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1507 0, 0, 0, 0, 0, 0, 0, 117, 0, 118,
1508 119, 120, 121, 122, 123, 0, 124, 0, 0, 125,
1509 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1510 136, 137, 138, 139, 140, 104, 0, 0, 0, 0,
1511 0, 0, 0, 0, 105, 106, 107, 108, 0, 109,
1512 110, 0, 0, 0, 111, 0, 0, 887, 0, 0,
1513 0, 0, 0, 0, 460, 464, 465, 466, 467, 468,
1514 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
1515 479, 480, 481, 0, 0, 0, 0, 0, 705, 0,
1516 0, 0, 0, 0, 0, 0, 0, 0, 112, 113,
1517 114, 115, 116, 0, 0, 0, 0, 0, 0, 0,
1518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1519 117, 0, 118, 119, 120, 121, 122, 123, 0, 124,
1520 0, 0, 125, 126, 127, 128, 129, 130, 131, 132,
1521 133, 134, 135, 136, 137, 138, 139, 140, 104, 0,
1522 0, 0, 0, 0, 0, 0, 0, 105, 106, 107,
1523 108, 0, 109, 110, 0, 0, 0, 111, 0, 0,
1524 0, 761, 0, 0, 0, 0, 0, 722, 464, 465,
1525 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
1526 476, 477, 478, 479, 480, 481, 0, 0, 0, 0,
1527 0, 482, 0, 0, 0, 0, 0, 104, 0, 0,
1528 0, 112, 113, 114, 115, 116, 105, 106, 107, 108,
1529 0, 109, 110, 0, 0, 0, 111, 0, 0, 0,
1530 0, 0, 0, 117, 0, 118, 119, 120, 121, 122,
1531 123, 0, 124, 0, 0, 125, 126, 127, 128, 129,
1532 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1533 140, 0, 0, 0, 0, 0, 0, 0, 752, 0,
1534 112, 113, 114, 115, 116, 0, 0, 0, 0, 0,
1535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1536 0, 0, 117, 0, 118, 119, 120, 121, 122, 123,
1537 0, 124, 0, 0, 125, 126, 127, 128, 129, 130,
1538 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1539 104, 0, 0, 0, 0, 0, 0, 0, 0, 105,
1540 106, 107, 108, 819, 803, 110, 0, 0, 0, 111,
1541 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
1542 474, 475, 476, 477, 478, 479, 480, 481, 0, 0,
1543 0, 0, 0, 705, 0, 0, 168, 0, 0, 0,
1544 0, 0, 0, 0, 0, 0, 0, 0, 0, 104,
1545 0, 0, 0, 112, 113, 114, 115, 116, 105, 106,
1546 107, 108, 0, 109, 110, 0, 0, 0, 111, 0,
1547 0, 0, 0, 0, 0, 117, 0, 118, 119, 120,
1548 121, 122, 123, 0, 124, 0, 0, 125, 126, 127,
1549 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1550 138, 139, 140, 0, 0, 0, 0, 0, 104, 0,
1551 848, 0, 112, 113, 114, 115, 116, 105, 106, 107,
1552 108, 0, 109, 110, 0, 0, 0, 111, 0, 0,
1553 0, 0, 0, 0, 117, 0, 118, 119, 120, 121,
1554 122, 123, 0, 124, 0, 0, 125, 126, 127, 128,
1555 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1556 139, 140, 0, 0, 0, 0, 0, 0, 0, 0,
1557 0, 112, 113, 114, 115, 116, 0, 0, 0, 0,
1558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1559 0, 0, 0, 117, 0, 118, 119, 120, 121, 122,
1560 123, 0, 124, 0, 0, 125, 126, 127, 128, 129,
1561 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1562 140, 720, 0, 0, 464, 465, 466, 467, 468, 469,
1563 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
1564 480, 481, 0, 0, 0, 0, 0, 705, 464, 465,
1565 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
1566 476, 477, 478, 479, 480, 481, 0, 0, 0, 0,
1567 0, 482, 464, 465, 466, 467, 468, 469, 470, 471,
1568 472, 473, 474, 475, 476, 477, 478, 479, 480, 481,
1569 0, 0, 0, 0, 0, 705, 464, 465, 466, 467,
1570 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
1571 478, 479, 480, 481, 0, 0, 0, 0, 0, 482,
1572 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
1573 474, 475, 476, 477, 478, 479, 480, 481, 0, 0,
1574 0, 0, 0, 705
1575 };
1576
1577 static const short yycheck[] =
1578 {
1579 33, 22, 88, 0, 33, 16, 17, 18, 190, 0,
1580 189, 190, 15, 10, 33, 196, 103, 430, 15, 92,
1581 433, 390, 430, 433, 404, 376, 92, 24, 403, 34,
1582 27, 507, 401, 716, 81, 316, 27, 386, 387, 485,
1583 738, 485, 738, 418, 91, 775, 738, 777, 45, 10,
1584 0, 62, 63, 64, 141, 316, 15, 144, 767, 26,
1585 10, 31, 32, 436, 34, 29, 49, 29, 91, 33,
1586 81, 33, 24, 442, 24, 29, 29, 27, 17, 18,
1587 33, 92, 93, 94, 45, 33, 34, 368, 32, 165,
1588 101, 821, 95, 374, 38, 45, 25, 789, 95, 450,
1589 123, 797, 26, 26, 813, 797, 35, 6, 459, 33,
1590 9, 462, 64, 4, 5, 6, 7, 8, 9, 10,
1591 11, 197, 31, 87, 44, 87, 17, 36, 32, 498,
1592 499, 22, 0, 87, 87, 508, 95, 9, 507, 11,
1593 823, 124, 26, 27, 853, 31, 35, 36, 32, 35,
1594 36, 125, 119, 31, 415, 125, 34, 840, 32, 162,
1595 44, 36, 173, 196, 161, 162, 37, 6, 7, 8,
1596 879, 110, 111, 112, 113, 114, 115, 32, 36, 34,
1597 191, 30, 463, 866, 31, 31, 33, 34, 897, 31,
1598 888, 33, 34, 84, 85, 86, 888, 32, 928, 35,
1599 161, 482, 483, 162, 35, 36, 33, 34, 33, 34,
1600 902, 161, 32, 33, 910, 23, 37, 36, 910, 33,
1601 34, 92, 93, 94, 95, 96, 924, 98, 99, 33,
1602 34, 317, 924, 4, 5, 6, 7, 8, 9, 10,
1603 11, 40, 688, 316, 688, 31, 17, 693, 931, 693,
1604 316, 22, 33, 34, 36, 17, 18, 23, 29, 93,
1605 94, 123, 38, 643, 32, 645, 37, 6, 648, 36,
1606 32, 92, 93, 94, 95, 96, 32, 98, 99, 31,
1607 35, 650, 32, 36, 32, 4, 5, 6, 7, 8,
1608 9, 10, 11, 17, 18, 368, 40, 31, 17, 31,
1609 675, 374, 368, 22, 49, 316, 485, 6, 374, 26,
1610 29, 32, 359, 84, 85, 86, 87, 40, 34, 498,
1611 34, 34, 92, 93, 94, 95, 96, 740, 98, 99,
1612 31, 682, 740, 26, 685, 686, 705, 706, 100, 101,
1613 102, 103, 104, 105, 106, 107, 108, 722, 824, 32,
1614 121, 3, 727, 22, 6, 32, 31, 368, 10, 39,
1615 12, 13, 373, 374, 83, 84, 85, 86, 87, 738,
1616 89, 23, 64, 64, 403, 37, 100, 101, 102, 103,
1617 104, 105, 106, 107, 108, 418, 40, 31, 31, 418,
1618 463, 40, 32, 24, 40, 32, 429, 463, 431, 418,
1619 433, 770, 32, 783, 123, 785, 786, 31, 33, 482,
1620 483, 33, 33, 4, 5, 6, 482, 483, 9, 768,
1621 769, 432, 34, 25, 35, 31, 35, 34, 797, 842,
1622 3, 22, 33, 6, 842, 446, 33, 10, 33, 12,
1623 13, 14, 15, 16, 17, 34, 34, 40, 35, 460,
1624 819, 456, 463, 486, 487, 824, 64, 808, 809, 109,
1625 33, 874, 644, 32, 874, 644, 32, 34, 647, 33,
1626 839, 482, 483, 33, 25, 32, 35, 31, 891, 760,
1627 761, 33, 485, 891, 864, 33, 33, 32, 485, 33,
1628 903, 31, 97, 35, 485, 33, 25, 4, 5, 6,
1629 7, 8, 9, 10, 11, 31, 34, 518, 32, 688,
1630 17, 4, 5, 6, 693, 22, 9, 33, 887, 888,
1631 933, 33, 29, 34, 33, 933, 34, 32, 34, 22,
1632 24, 944, 32, 4, 5, 6, 7, 8, 9, 10,
1633 11, 910, 97, 32, 25, 33, 17, 32, 25, 33,
1634 930, 22, 34, 33, 33, 924, 34, 33, 29, 30,
1635 31, 35, 34, 33, 745, 945, 32, 25, 33, 32,
1636 41, 33, 33, 32, 27, 693, 33, 84, 85, 86,
1637 87, 33, 33, 162, 688, 30, 4, 5, 6, 7,
1638 8, 9, 10, 11, 40, 640, 186, 24, 780, 17,
1639 184, 780, 389, 647, 22, 815, 456, 21, 695, 696,
1640 651, 29, 83, 84, 85, 86, 87, 88, 89, 777,
1641 91, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1642 75, 76, 77, 174, 79, 80, 81, 82, 671, 19,
1643 651, 924, 393, 788, 3, 116, 675, 6, 902, 429,
1644 121, 10, 123, 12, 13, 14, 15, 16, 17, 692,
1645 944, 836, 673, 692, 747, -1, 84, 85, 86, 87,
1646 -1, -1, -1, 692, -1, -1, -1, -1, -1, -1,
1647 -1, -1, 701, 694, -1, 688, -1, 760, 761, -1,
1648 693, 688, -1, 722, 760, 761, 693, 688, 727, -1,
1649 882, -1, 693, 882, -1, 123, -1, -1, -1, 742,
1650 -1, -1, 745, -1, -1, 748, -1, -1, -1, 901,
1651 806, -1, 901, 744, -1, -1, 4, 5, 6, 7,
1652 8, 9, 10, 11, -1, -1, 747, -1, -1, 17,
1653 -1, -1, -1, -1, 22, -1, -1, -1, -1, 760,
1654 761, 29, -1, -1, -1, 937, -1, -1, 937, 4,
1655 5, 6, 7, 8, 9, 10, 11, 800, 779, -1,
1656 -1, 782, 17, -1, -1, -1, -1, 22, -1, -1,
1657 813, 26, 27, 816, 817, -1, -1, -1, -1, -1,
1658 -1, -1, -1, -1, -1, -1, 807, -1, -1, 44,
1659 31, -1, 823, 836, -1, -1, 84, 85, 86, 87,
1660 -1, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1661 51, 52, 53, 54, 55, 56, 57, 58, 59, -1,
1662 -1, -1, -1, -1, 65, -1, -1, -1, -1, 84,
1663 85, 86, -1, 121, -1, -1, 879, -1, -1, -1,
1664 -1, -1, -1, -1, -1, 888, -1, -1, -1, -1,
1665 -1, 0, -1, -1, 3, 4, 5, 6, 7, 8,
1666 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
1667 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1668 29, 924, 31, 32, 33, 34, 35, 36, 37, 38,
1669 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1670 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1671 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1672 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1673 79, -1, 81, -1, 83, 84, 85, 86, 87, 88,
1674 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1675 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1676 109, 110, 111, 112, 113, 114, 115, 116, -1, -1,
1677 119, -1, 121, 122, 123, 124, 125, 0, -1, -1,
1678 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
1679 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1680 23, 24, 25, 26, 27, 28, 29, -1, 31, 32,
1681 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1682 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1683 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1684 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1685 73, 74, 75, 76, 77, 78, 79, -1, 81, -1,
1686 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
1687 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1688 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1689 113, 114, 115, 116, -1, -1, 119, -1, 121, 122,
1690 123, 124, 125, 0, -1, -1, 3, 4, 5, 6,
1691 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1692 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1693 27, 28, 29, -1, 31, 32, 33, 34, 35, 36,
1694 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1695 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1696 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1697 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1698 77, 78, 79, -1, 81, -1, 83, 84, 85, 86,
1699 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1700 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1701 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1702 -1, -1, 119, -1, 121, 122, 123, 124, 125, 0,
1703 -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
1704 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1705 21, 22, 23, 24, 25, 26, 27, 28, 29, -1,
1706 31, 32, 33, 34, 35, 36, -1, 38, 39, 40,
1707 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1708 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1709 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1710 71, 72, 73, 74, 75, 76, 77, 78, 79, -1,
1711 81, -1, 83, 84, 85, 86, 87, 88, 89, 90,
1712 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1713 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1714 111, 112, 113, 114, 115, 116, 3, -1, 119, -1,
1715 121, 122, 123, 124, 125, 12, 13, 14, 15, -1,
1716 17, 18, -1, -1, -1, 22, -1, -1, -1, -1,
1717 -1, -1, 29, 30, 31, 32, 33, 34, 35, 36,
1718 37, 38, 39, 40, -1, 42, 43, 44, 45, 46,
1719 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1720 57, 58, 59, -1, -1, -1, -1, -1, 65, 66,
1721 67, 68, 69, 70, 4, 5, 6, 7, 8, 9,
1722 10, 11, -1, -1, -1, -1, -1, 17, -1, -1,
1723 87, 88, 22, 90, 91, 92, 93, 94, 95, 29,
1724 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1725 107, 108, 109, 110, 111, 112, 113, 114, 115, -1,
1726 3, -1, -1, -1, -1, -1, -1, -1, 125, 12,
1727 13, 14, 15, -1, 17, 18, 19, -1, -1, 22,
1728 23, -1, 25, -1, 27, 28, 29, -1, -1, 32,
1729 -1, -1, -1, -1, 84, 85, 86, 87, -1, -1,
1730 -1, -1, -1, -1, 47, 48, 49, -1, -1, -1,
1731 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
1732 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
1733 -1, 121, -1, -1, -1, -1, -1, -1, -1, -1,
1734 -1, -1, -1, -1, 87, 88, -1, 90, 91, 92,
1735 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
1736 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1737 113, 114, 115, 3, -1, -1, -1, -1, -1, -1,
1738 -1, 124, 12, 13, 14, 15, -1, 17, 18, -1,
1739 -1, -1, 22, -1, -1, 25, -1, 27, 28, -1,
1740 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
1741 -1, -1, -1, -1, -1, -1, -1, 47, 48, -1,
1742 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1743 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
1744 70, -1, -1, -1, -1, -1, -1, -1, 78, -1,
1745 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
1746 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
1747 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1748 110, 111, 112, 113, 114, 115, 3, -1, -1, 119,
1749 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
1750 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
1751 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
1752 -1, -1, 4, 5, 6, 7, 8, 9, 10, 11,
1753 47, 48, -1, -1, -1, 17, -1, -1, -1, -1,
1754 22, -1, -1, 60, 61, -1, -1, 29, -1, 66,
1755 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1756 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
1757 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
1758 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1759 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
1760 -1, 118, 84, 85, 86, 87, -1, -1, 12, 13,
1761 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
1762 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
1763 -1, -1, -1, -1, -1, 4, 5, 6, 7, 8,
1764 9, 10, 11, 47, 48, -1, -1, -1, 17, -1,
1765 -1, -1, -1, 22, -1, -1, 60, 61, -1, -1,
1766 29, -1, 66, 67, 68, 69, 70, -1, -1, -1,
1767 -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
1768 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
1769 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
1770 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1771 114, 115, 3, -1, 118, 84, 85, 86, 87, -1,
1772 -1, 12, 13, 14, 15, -1, 17, 18, -1, -1,
1773 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
1774 -1, 32, -1, -1, -1, -1, -1, -1, 4, 5,
1775 6, 7, 8, 9, 10, 11, 47, 48, -1, -1,
1776 -1, 17, -1, -1, -1, -1, 22, -1, -1, 60,
1777 61, -1, -1, 29, -1, 66, 67, 68, 69, 70,
1778 -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
1779 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
1780 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
1781 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1782 111, 112, 113, 114, 115, 3, -1, 118, 84, 85,
1783 86, 87, -1, -1, 12, 13, 14, 15, -1, 17,
1784 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
1785 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
1786 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
1787 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1788 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
1789 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
1790 78, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1791 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
1792 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
1793 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
1794 118, -1, -1, -1, -1, -1, -1, 12, 13, 14,
1795 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
1796 25, 26, 27, 28, -1, -1, -1, 32, -1, -1,
1797 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1798 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
1799 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
1800 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
1801 -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
1802 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
1803 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
1804 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1805 115, 3, -1, 118, -1, -1, -1, -1, -1, -1,
1806 12, 13, 14, 15, -1, 17, 18, -1, -1, -1,
1807 22, -1, -1, 25, 26, 27, 28, -1, -1, -1,
1808 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1809 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
1810 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
1811 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
1812 -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
1813 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
1814 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
1815 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1816 112, 113, 114, 115, 3, -1, 118, -1, -1, -1,
1817 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
1818 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
1819 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
1820 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
1821 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1822 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
1823 69, 70, -1, -1, -1, -1, -1, -1, -1, 78,
1824 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
1825 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
1826 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1827 109, 110, 111, 112, 113, 114, 115, 3, -1, 118,
1828 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
1829 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
1830 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
1831 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1832 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
1833 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
1834 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
1835 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
1836 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
1837 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
1838 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1839 3, -1, 118, -1, -1, -1, -1, -1, -1, 12,
1840 13, 14, 15, -1, 17, 18, -1, -1, -1, 22,
1841 -1, -1, 25, 26, 27, 28, -1, -1, -1, 32,
1842 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1843 -1, -1, -1, -1, 47, 48, -1, -1, -1, -1,
1844 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
1845 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
1846 -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
1847 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
1848 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
1849 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1850 113, 114, 115, 3, -1, 118, -1, -1, -1, -1,
1851 -1, -1, 12, 13, 14, 15, -1, 17, 18, -1,
1852 -1, -1, 22, -1, -1, 25, 26, 27, 28, -1,
1853 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
1854 -1, -1, -1, -1, -1, -1, -1, 47, 48, -1,
1855 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1856 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
1857 70, -1, -1, -1, -1, -1, -1, -1, 78, -1,
1858 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
1859 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
1860 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1861 110, 111, 112, 113, 114, 115, 3, -1, 118, -1,
1862 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
1863 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
1864 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
1865 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1866 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
1867 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
1868 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1869 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
1870 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
1871 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1872 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
1873 -1, 118, -1, -1, -1, -1, -1, -1, 12, 13,
1874 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
1875 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
1876 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1877 -1, -1, -1, 47, 48, -1, -1, -1, -1, -1,
1878 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
1879 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
1880 -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
1881 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
1882 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
1883 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1884 114, 115, 3, -1, 118, -1, -1, -1, -1, -1,
1885 -1, 12, 13, 14, 15, -1, 17, 18, -1, -1,
1886 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
1887 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
1888 -1, -1, -1, -1, -1, -1, 47, 48, -1, -1,
1889 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
1890 61, -1, -1, -1, -1, 66, 67, 68, 69, 70,
1891 -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
1892 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
1893 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
1894 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1895 111, 112, 113, 114, 115, 3, -1, 118, -1, -1,
1896 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
1897 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
1898 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
1899 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
1900 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1901 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
1902 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
1903 78, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1904 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
1905 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
1906 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
1907 118, -1, -1, -1, -1, -1, -1, 12, 13, 14,
1908 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
1909 25, 26, 27, 28, -1, -1, -1, 32, -1, -1,
1910 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1911 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
1912 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
1913 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
1914 -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
1915 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
1916 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
1917 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1918 115, 3, -1, 118, -1, -1, -1, -1, -1, -1,
1919 12, 13, 14, 15, -1, 17, 18, -1, -1, -1,
1920 22, -1, -1, 25, 26, 27, 28, -1, -1, -1,
1921 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1922 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
1923 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
1924 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
1925 -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
1926 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
1927 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
1928 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1929 112, 113, 114, 115, 3, -1, 118, -1, -1, -1,
1930 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
1931 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
1932 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
1933 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
1934 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1935 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
1936 69, 70, -1, -1, -1, -1, -1, -1, -1, 78,
1937 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
1938 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
1939 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1940 109, 110, 111, 112, 113, 114, 115, 3, -1, 118,
1941 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
1942 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
1943 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
1944 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1945 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
1946 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
1947 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
1948 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
1949 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
1950 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
1951 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1952 3, -1, 118, -1, -1, -1, -1, -1, -1, 12,
1953 13, 14, 15, -1, 17, 18, -1, -1, -1, 22,
1954 -1, -1, 25, 26, 27, 28, -1, -1, -1, 32,
1955 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1956 -1, -1, -1, -1, 47, 48, -1, -1, -1, -1,
1957 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
1958 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
1959 -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
1960 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
1961 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
1962 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1963 113, 114, 115, 3, -1, 118, -1, -1, -1, -1,
1964 -1, -1, 12, 13, 14, 15, -1, 17, 18, -1,
1965 -1, -1, 22, -1, -1, 25, 26, 27, 28, -1,
1966 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
1967 -1, -1, -1, -1, -1, -1, -1, 47, 48, -1,
1968 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1969 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
1970 70, -1, -1, -1, -1, -1, -1, -1, 78, -1,
1971 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
1972 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
1973 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1974 110, 111, 112, 113, 114, 115, 3, -1, 118, -1,
1975 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
1976 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
1977 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
1978 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1979 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
1980 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
1981 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1982 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
1983 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
1984 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1985 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
1986 -1, 118, -1, -1, -1, -1, -1, -1, 12, 13,
1987 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
1988 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
1989 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1990 -1, -1, -1, 47, 48, -1, -1, -1, -1, -1,
1991 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
1992 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
1993 -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
1994 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
1995 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
1996 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1997 114, 115, 3, -1, 118, -1, -1, -1, -1, -1,
1998 -1, 12, 13, 14, 15, -1, 17, 18, -1, -1,
1999 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
2000 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
2001 -1, -1, -1, -1, -1, -1, 47, 48, -1, -1,
2002 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
2003 61, -1, -1, -1, -1, 66, 67, 68, 69, 70,
2004 -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
2005 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
2006 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
2007 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2008 111, 112, 113, 114, 115, 3, -1, 118, -1, -1,
2009 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
2010 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
2011 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
2012 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
2013 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2014 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
2015 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2016 78, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2017 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
2018 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
2019 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
2020 118, -1, -1, -1, -1, -1, -1, 12, 13, 14,
2021 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
2022 25, 26, 27, 28, -1, -1, -1, 32, -1, -1,
2023 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2024 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
2025 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
2026 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
2027 -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
2028 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
2029 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2030 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2031 115, 3, -1, 118, -1, -1, -1, -1, -1, -1,
2032 12, 13, 14, 15, -1, 17, 18, -1, -1, -1,
2033 22, -1, -1, 25, 26, 27, 28, -1, -1, -1,
2034 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2035 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
2036 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
2037 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
2038 -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
2039 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
2040 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
2041 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2042 112, 113, 114, 115, 3, -1, 118, -1, -1, -1,
2043 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
2044 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
2045 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
2046 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
2047 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2048 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
2049 69, 70, -1, -1, -1, -1, -1, -1, -1, 78,
2050 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
2051 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
2052 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2053 109, 110, 111, 112, 113, 114, 115, 3, -1, 118,
2054 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
2055 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
2056 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
2057 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2058 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2059 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
2060 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
2061 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
2062 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
2063 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
2064 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2065 3, -1, 118, -1, -1, -1, -1, -1, -1, 12,
2066 13, 14, 15, -1, 17, 18, -1, -1, -1, 22,
2067 -1, -1, 25, 26, 27, 28, -1, -1, -1, 32,
2068 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2069 -1, -1, -1, -1, 47, 48, -1, -1, -1, -1,
2070 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
2071 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
2072 -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
2073 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
2074 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
2075 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2076 113, 114, 115, 3, -1, 118, -1, -1, -1, -1,
2077 -1, -1, 12, 13, 14, 15, -1, 17, 18, -1,
2078 -1, -1, 22, -1, -1, 25, 26, 27, 28, -1,
2079 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
2080 -1, -1, -1, -1, -1, -1, -1, 47, 48, -1,
2081 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2082 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
2083 70, -1, -1, -1, -1, -1, -1, -1, 78, -1,
2084 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
2085 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
2086 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2087 110, 111, 112, 113, 114, 115, 3, -1, 118, -1,
2088 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
2089 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
2090 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
2091 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2092 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
2093 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
2094 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
2095 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
2096 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
2097 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
2098 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
2099 -1, 118, -1, -1, -1, -1, -1, -1, 12, 13,
2100 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
2101 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
2102 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2103 -1, -1, -1, 47, 48, -1, -1, -1, -1, -1,
2104 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
2105 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
2106 -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
2107 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
2108 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
2109 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2110 114, 115, 3, -1, 118, -1, -1, -1, -1, -1,
2111 -1, 12, 13, 14, 15, -1, 17, 18, -1, -1,
2112 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
2113 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
2114 -1, -1, -1, -1, -1, -1, 47, 48, -1, -1,
2115 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
2116 61, -1, -1, -1, -1, 66, 67, 68, 69, 70,
2117 -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
2118 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
2119 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
2120 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2121 111, 112, 113, 114, 115, 3, -1, 118, -1, -1,
2122 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
2123 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
2124 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
2125 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
2126 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2127 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
2128 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2129 78, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2130 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
2131 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
2132 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
2133 118, -1, -1, -1, -1, -1, -1, 12, 13, 14,
2134 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
2135 25, 26, 27, 28, -1, -1, -1, 32, -1, -1,
2136 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2137 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
2138 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
2139 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
2140 -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
2141 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
2142 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2143 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2144 115, 3, -1, 118, -1, -1, -1, -1, -1, -1,
2145 12, 13, 14, 15, -1, 17, 18, -1, -1, -1,
2146 22, -1, -1, 25, 26, 27, 28, -1, -1, -1,
2147 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2148 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
2149 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
2150 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
2151 -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
2152 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
2153 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
2154 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2155 112, 113, 114, 115, 3, -1, 118, -1, -1, -1,
2156 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
2157 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
2158 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
2159 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
2160 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2161 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
2162 69, 70, -1, -1, -1, -1, -1, -1, -1, 78,
2163 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
2164 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
2165 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2166 109, 110, 111, 112, 113, 114, 115, 3, -1, 118,
2167 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
2168 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
2169 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
2170 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2171 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2172 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
2173 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
2174 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
2175 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
2176 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
2177 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2178 -1, -1, 118, 3, 4, 5, 6, 7, 8, 9,
2179 10, 11, 12, 13, 14, 15, -1, 17, 18, 19,
2180 -1, -1, 22, 23, -1, 25, -1, 27, 28, 29,
2181 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
2182 -1, -1, -1, -1, -1, -1, -1, 47, 48, 49,
2183 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2184 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
2185 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2186 -1, -1, -1, -1, 84, 85, 86, 87, 88, -1,
2187 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
2188 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2189 110, 111, 112, 113, 114, 115, 3, -1, -1, -1,
2190 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
2191 17, 18, 19, 20, 21, 22, 23, -1, 25, 26,
2192 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
2193 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2194 47, 48, 49, -1, -1, -1, -1, -1, -1, -1,
2195 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
2196 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
2197 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2198 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
2199 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
2200 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
2201 -1, -1, -1, -1, -1, -1, -1, -1, 12, 13,
2202 14, 15, -1, 17, 18, 19, -1, -1, 22, 23,
2203 -1, 25, -1, 27, 28, -1, -1, -1, 32, -1,
2204 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2205 44, -1, -1, 47, 48, 49, -1, -1, -1, -1,
2206 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
2207 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
2208 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2209 -1, -1, -1, -1, 88, 89, 90, 91, 92, 93,
2210 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
2211 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2212 114, 115, 3, -1, -1, -1, -1, -1, -1, -1,
2213 -1, 12, 13, 14, 15, -1, 17, 18, 19, -1,
2214 -1, 22, 23, -1, 25, -1, 27, 28, -1, -1,
2215 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
2216 -1, -1, -1, 44, -1, -1, 47, 48, 49, -1,
2217 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
2218 61, -1, -1, 64, -1, 66, 67, 68, 69, 70,
2219 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2220 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
2221 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
2222 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2223 111, 112, 113, 114, 115, 3, -1, -1, -1, -1,
2224 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
2225 18, 19, -1, -1, 22, 23, 24, 25, -1, 27,
2226 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
2227 -1, -1, -1, -1, -1, -1, 44, -1, -1, 47,
2228 48, 49, -1, -1, -1, -1, -1, -1, -1, -1,
2229 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
2230 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2231 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2232 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
2233 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
2234 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
2235 -1, -1, -1, -1, -1, -1, -1, 12, 13, 14,
2236 15, -1, 17, 18, 19, -1, -1, 22, 23, -1,
2237 25, -1, 27, 28, -1, -1, -1, 32, -1, -1,
2238 -1, -1, -1, -1, -1, -1, -1, -1, -1, 44,
2239 -1, -1, 47, 48, 49, -1, -1, -1, -1, -1,
2240 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
2241 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
2242 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2243 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
2244 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2245 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2246 115, 3, -1, -1, -1, -1, -1, -1, -1, -1,
2247 12, 13, 14, 15, -1, 17, 18, 19, -1, -1,
2248 22, 23, -1, 25, -1, 27, 28, -1, -1, -1,
2249 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2250 -1, -1, -1, -1, -1, 47, 48, 49, -1, -1,
2251 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
2252 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
2253 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2254 -1, -1, -1, -1, -1, -1, 88, 89, 90, 91,
2255 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
2256 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2257 112, 113, 114, 115, 3, -1, -1, -1, -1, -1,
2258 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
2259 19, -1, -1, 22, 23, -1, 25, -1, 27, 28,
2260 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
2261 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
2262 49, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2263 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
2264 69, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2265 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
2266 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
2267 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2268 109, 110, 111, 112, 113, 114, 115, 3, -1, -1,
2269 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
2270 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
2271 -1, 27, 28, -1, -1, -1, 32, -1, -1, -1,
2272 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2273 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2274 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
2275 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
2276 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
2277 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
2278 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
2279 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2280 3, -1, -1, -1, -1, -1, -1, -1, -1, 12,
2281 13, 14, 15, -1, 17, 18, -1, -1, -1, 22,
2282 -1, -1, -1, -1, -1, -1, 29, -1, -1, 32,
2283 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2284 -1, -1, -1, -1, -1, -1, 49, -1, -1, -1,
2285 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2286 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
2287 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2288 -1, -1, -1, -1, 87, 88, -1, 90, 91, 92,
2289 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
2290 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2291 113, 114, 115, 3, -1, -1, -1, -1, -1, -1,
2292 -1, -1, 12, 13, 14, 15, -1, 17, 18, -1,
2293 -1, 33, 22, -1, -1, -1, -1, -1, -1, 29,
2294 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2295 52, 53, 54, 55, 56, 57, 58, 59, -1, 49,
2296 -1, -1, -1, 65, -1, -1, -1, -1, -1, -1,
2297 -1, -1, -1, -1, -1, -1, 66, 67, 68, 69,
2298 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2299 -1, -1, -1, -1, -1, -1, -1, 87, 88, -1,
2300 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
2301 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2302 110, 111, 112, 113, 114, 115, 3, -1, -1, -1,
2303 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
2304 17, 18, -1, -1, -1, 22, -1, -1, 33, -1,
2305 -1, -1, -1, -1, -1, 32, 33, 42, 43, 44,
2306 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2307 55, 56, 57, 58, 59, -1, -1, -1, -1, -1,
2308 65, -1, -1, -1, -1, -1, -1, -1, -1, 66,
2309 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
2310 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2311 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
2312 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
2313 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
2314 -1, -1, -1, -1, -1, -1, -1, -1, 12, 13,
2315 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
2316 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2317 -1, 35, -1, -1, -1, -1, -1, -1, -1, -1,
2318 -1, -1, -1, -1, -1, 49, -1, -1, -1, -1,
2319 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2320 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
2321 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2322 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
2323 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
2324 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2325 114, 115, 3, -1, -1, -1, -1, -1, -1, -1,
2326 -1, 12, 13, 14, 15, 33, 17, 18, -1, -1,
2327 -1, 22, -1, -1, 42, 43, 44, 45, 46, 47,
2328 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2329 58, 59, -1, -1, -1, -1, -1, 65, 49, -1,
2330 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2331 -1, -1, -1, -1, -1, 66, 67, 68, 69, 70,
2332 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2333 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
2334 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
2335 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2336 111, 112, 113, 114, 115, 3, -1, -1, -1, -1,
2337 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
2338 18, -1, -1, -1, 22, -1, -1, 34, -1, -1,
2339 -1, -1, -1, -1, 32, 42, 43, 44, 45, 46,
2340 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
2341 57, 58, 59, -1, -1, -1, -1, -1, 65, -1,
2342 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
2343 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2344 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2345 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
2346 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
2347 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
2348 -1, -1, -1, -1, -1, -1, -1, 12, 13, 14,
2349 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
2350 -1, 35, -1, -1, -1, -1, -1, 32, 42, 43,
2351 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2352 54, 55, 56, 57, 58, 59, -1, -1, -1, -1,
2353 -1, 65, -1, -1, -1, -1, -1, 3, -1, -1,
2354 -1, 66, 67, 68, 69, 70, 12, 13, 14, 15,
2355 -1, 17, 18, -1, -1, -1, 22, -1, -1, -1,
2356 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
2357 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2358 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2359 115, -1, -1, -1, -1, -1, -1, -1, 64, -1,
2360 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
2361 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2362 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
2363 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
2364 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2365 3, -1, -1, -1, -1, -1, -1, -1, -1, 12,
2366 13, 14, 15, 35, 17, 18, -1, -1, -1, 22,
2367 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2368 52, 53, 54, 55, 56, 57, 58, 59, -1, -1,
2369 -1, -1, -1, 65, -1, -1, 49, -1, -1, -1,
2370 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
2371 -1, -1, -1, 66, 67, 68, 69, 70, 12, 13,
2372 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
2373 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
2374 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
2375 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2376 113, 114, 115, -1, -1, -1, -1, -1, 3, -1,
2377 64, -1, 66, 67, 68, 69, 70, 12, 13, 14,
2378 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
2379 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
2380 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
2381 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2382 114, 115, -1, -1, -1, -1, -1, -1, -1, -1,
2383 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
2384 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2385 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
2386 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2387 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2388 115, 39, -1, -1, 42, 43, 44, 45, 46, 47,
2389 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2390 58, 59, -1, -1, -1, -1, -1, 65, 42, 43,
2391 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2392 54, 55, 56, 57, 58, 59, -1, -1, -1, -1,
2393 -1, 65, 42, 43, 44, 45, 46, 47, 48, 49,
2394 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2395 -1, -1, -1, -1, -1, 65, 42, 43, 44, 45,
2396 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2397 56, 57, 58, 59, -1, -1, -1, -1, -1, 65,
2398 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2399 52, 53, 54, 55, 56, 57, 58, 59, -1, -1,
2400 -1, -1, -1, 65
2401 };
2402
2403 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2404 symbol of state STATE-NUM. */
2405 static const unsigned short yystos[] =
2406 {
2407 0, 4, 5, 6, 7, 8, 9, 10, 11, 17,
2408 22, 29, 30, 31, 41, 83, 84, 85, 86, 87,
2409 88, 89, 91, 116, 121, 123, 146, 147, 148, 149,
2410 150, 167, 170, 175, 176, 177, 178, 179, 180, 181,
2411 182, 183, 188, 191, 194, 195, 199, 200, 201, 202,
2412 204, 206, 210, 212, 213, 219, 227, 241, 242, 9,
2413 11, 22, 84, 85, 86, 87, 123, 200, 210, 30,
2414 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2415 76, 77, 79, 80, 81, 82, 151, 152, 153, 154,
2416 156, 157, 158, 84, 85, 121, 171, 173, 201, 202,
2417 210, 219, 228, 229, 3, 12, 13, 14, 15, 17,
2418 18, 22, 66, 67, 68, 69, 70, 88, 90, 91,
2419 92, 93, 94, 95, 97, 100, 101, 102, 103, 104,
2420 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2421 115, 143, 260, 272, 143, 143, 230, 3, 6, 10,
2422 12, 13, 23, 247, 249, 26, 123, 242, 44, 280,
2423 281, 22, 83, 89, 123, 199, 0, 148, 49, 143,
2424 176, 211, 236, 237, 238, 239, 177, 4, 5, 6,
2425 9, 22, 184, 6, 181, 187, 200, 125, 189, 32,
2426 32, 36, 36, 143, 143, 143, 34, 192, 0, 3,
2427 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
2428 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2429 24, 25, 26, 27, 28, 29, 31, 32, 33, 34,
2430 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2431 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2432 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2433 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2434 75, 76, 77, 78, 79, 81, 83, 84, 85, 86,
2435 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
2436 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
2437 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
2438 119, 121, 122, 123, 124, 125, 143, 144, 159, 30,
2439 3, 12, 13, 14, 15, 17, 18, 22, 66, 67,
2440 68, 69, 70, 88, 90, 91, 92, 93, 94, 95,
2441 97, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2442 109, 110, 111, 112, 113, 114, 115, 144, 162, 163,
2443 162, 26, 119, 155, 144, 25, 27, 28, 32, 47,
2444 48, 60, 61, 78, 142, 143, 164, 224, 143, 230,
2445 143, 230, 173, 31, 143, 35, 233, 233, 233, 233,
2446 40, 23, 31, 36, 23, 171, 123, 189, 29, 87,
2447 240, 38, 234, 32, 143, 124, 239, 6, 185, 6,
2448 9, 186, 184, 36, 196, 32, 31, 17, 175, 203,
2449 205, 207, 208, 209, 210, 207, 143, 220, 221, 92,
2450 93, 94, 95, 96, 98, 99, 251, 252, 253, 266,
2451 269, 275, 276, 277, 193, 211, 237, 189, 26, 118,
2452 164, 190, 162, 144, 26, 27, 32, 44, 226, 164,
2453 32, 143, 164, 32, 42, 43, 44, 45, 46, 47,
2454 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2455 58, 59, 65, 141, 35, 36, 215, 215, 31, 214,
2456 215, 214, 19, 20, 21, 23, 25, 27, 32, 142,
2457 168, 169, 190, 211, 222, 223, 224, 40, 251, 32,
2458 31, 31, 19, 29, 87, 124, 222, 235, 236, 237,
2459 234, 6, 0, 3, 4, 5, 6, 7, 8, 9,
2460 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2461 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2462 31, 32, 33, 34, 35, 38, 39, 40, 41, 42,
2463 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2464 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2465 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
2466 73, 74, 75, 76, 77, 78, 79, 81, 83, 84,
2467 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2468 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2469 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2470 115, 116, 119, 121, 122, 123, 124, 125, 145, 196,
2471 197, 198, 190, 236, 32, 33, 34, 34, 33, 34,
2472 40, 34, 231, 211, 256, 222, 245, 270, 271, 272,
2473 280, 211, 143, 278, 279, 211, 267, 271, 37, 252,
2474 222, 34, 31, 32, 26, 177, 225, 226, 22, 33,
2475 143, 119, 164, 165, 166, 164, 164, 32, 121, 172,
2476 173, 174, 175, 216, 219, 228, 229, 211, 211, 17,
2477 22, 175, 222, 222, 31, 65, 141, 168, 37, 14,
2478 15, 16, 17, 33, 243, 244, 246, 248, 249, 250,
2479 39, 39, 32, 143, 37, 198, 33, 32, 234, 207,
2480 234, 64, 209, 234, 64, 222, 221, 37, 40, 31,
2481 40, 31, 32, 24, 40, 32, 31, 34, 32, 31,
2482 31, 211, 64, 143, 160, 161, 236, 33, 33, 33,
2483 34, 35, 25, 174, 35, 232, 37, 172, 233, 233,
2484 33, 33, 222, 222, 31, 35, 33, 34, 245, 236,
2485 32, 33, 236, 33, 34, 33, 33, 19, 89, 90,
2486 109, 222, 255, 257, 258, 259, 260, 281, 270, 211,
2487 280, 193, 279, 17, 193, 268, 33, 34, 164, 164,
2488 34, 25, 35, 34, 217, 232, 215, 215, 222, 35,
2489 246, 35, 244, 246, 40, 143, 207, 33, 234, 64,
2490 234, 234, 109, 257, 17, 18, 32, 260, 263, 32,
2491 32, 255, 34, 273, 211, 33, 33, 162, 64, 143,
2492 25, 35, 32, 211, 218, 232, 31, 217, 222, 246,
2493 280, 168, 33, 33, 33, 268, 32, 222, 245, 64,
2494 270, 274, 33, 31, 97, 33, 35, 25, 232, 34,
2495 31, 64, 32, 33, 234, 33, 245, 34, 34, 261,
2496 33, 34, 18, 271, 272, 32, 34, 211, 232, 24,
2497 207, 32, 97, 32, 222, 211, 254, 255, 256, 262,
2498 281, 33, 270, 25, 25, 232, 33, 33, 207, 263,
2499 264, 265, 270, 33, 34, 255, 34, 33, 35, 33,
2500 33, 32, 33, 34, 254, 25, 246, 32, 234, 245,
2501 33, 270, 33, 207, 32, 33, 264, 234, 33, 33
2502 };
2503
2504 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
2505 static const unsigned short yyr1[] =
2506 {
2507 0, 140, 141, 141, 141, 141, 141, 141, 141, 141,
2508 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
2509 142, 142, 142, 142, 143, 143, 143, 143, 143, 143,
2510 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
2511 143, 143, 143, 143, 143, 143, 144, 144, 144, 144,
2512 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2513 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2514 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2515 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2516 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2517 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2518 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2519 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2520 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2521 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2522 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2523 144, 144, 144, 144, 145, 145, 145, 145, 145, 145,
2524 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2525 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2526 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2527 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2528 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2529 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2530 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2531 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2532 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2533 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2534 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2535 146, 146, 147, 147, 148, 148, 148, 148, 148, 148,
2536 148, 148, 148, 148, 148, 148, 148, 148, 149, 150,
2537 150, 151, 151, 151, 151, 151, 151, 151, 151, 152,
2538 152, 153, 153, 154, 154, 154, 155, 155, 156, 156,
2539 157, 157, 157, 158, 158, 159, 159, 159, 159, 160,
2540 160, 160, 160, 161, 161, 162, 162, 163, 163, 164,
2541 164, 164, 164, 164, 164, 164, 164, 164, 164, 164,
2542 165, 165, 166, 166, 166, 167, 167, 168, 168, 168,
2543 169, 169, 169, 170, 170, 171, 171, 172, 172, 173,
2544 173, 173, 173, 173, 174, 174, 174, 174, 174, 175,
2545 175, 175, 176, 176, 177, 177, 178, 178, 178, 179,
2546 179, 179, 179, 180, 180, 180, 181, 181, 182, 182,
2547 182, 183, 183, 183, 183, 184, 184, 184, 184, 184,
2548 184, 185, 185, 186, 186, 186, 186, 187, 187, 187,
2549 188, 188, 189, 189, 190, 190, 191, 192, 192, 193,
2550 193, 194, 195, 195, 195, 195, 195, 195, 196, 197,
2551 197, 198, 198, 199, 199, 200, 200, 201, 201, 202,
2552 202, 202, 202, 203, 203, 204, 205, 206, 207, 207,
2553 207, 208, 208, 209, 209, 209, 210, 210, 211, 211,
2554 212, 213, 214, 214, 215, 216, 216, 217, 217, 218,
2555 218, 218, 218, 219, 220, 220, 221, 221, 222, 222,
2556 222, 222, 222, 222, 223, 223, 223, 223, 223, 223,
2557 224, 224, 225, 225, 226, 226, 226, 227, 228, 229,
2558 230, 230, 231, 231, 232, 232, 232, 232, 233, 233,
2559 234, 234, 234, 235, 235, 235, 235, 236, 236, 237,
2560 237, 238, 238, 239, 239, 240, 240, 241, 241, 242,
2561 242, 242, 243, 243, 244, 244, 245, 246, 247, 248,
2562 248, 249, 249, 249, 249, 249, 250, 250, 250, 250,
2563 251, 251, 252, 252, 252, 252, 252, 253, 253, 254,
2564 254, 254, 255, 255, 255, 255, 255, 255, 256, 256,
2565 257, 258, 258, 259, 260, 260, 260, 260, 260, 260,
2566 260, 260, 260, 260, 261, 261, 262, 262, 263, 263,
2567 264, 264, 265, 265, 266, 267, 267, 268, 268, 268,
2568 269, 270, 270, 270, 271, 271, 272, 272, 272, 272,
2569 272, 272, 272, 272, 273, 273, 274, 274, 275, 276,
2570 276, 277, 278, 278, 279, 280, 280, 281
2571 };
2572
2573 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
2574 static const unsigned char yyr2[] =
2575 {
2576 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
2577 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2578 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2579 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2580 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2581 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2582 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2583 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2584 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2585 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2586 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2587 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2588 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2589 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2590 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2591 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2592 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2593 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2594 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2595 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2596 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2597 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2598 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2599 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2600 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2601 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2602 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2603 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2604 0, 1, 1, 2, 1, 1, 1, 1, 1, 1,
2605 1, 1, 1, 1, 1, 1, 1, 1, 3, 2,
2606 3, 2, 2, 1, 2, 2, 2, 1, 2, 1,
2607 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2608 1, 1, 1, 1, 1, 2, 6, 2, 2, 0,
2609 1, 1, 3, 1, 3, 0, 1, 1, 2, 3,
2610 2, 3, 5, 2, 4, 1, 1, 1, 1, 4,
2611 0, 1, 1, 1, 3, 6, 5, 1, 1, 1,
2612 1, 1, 1, 3, 4, 1, 2, 1, 2, 1,
2613 1, 2, 4, 4, 1, 1, 1, 3, 3, 1,
2614 2, 2, 1, 1, 1, 1, 2, 2, 2, 1,
2615 1, 1, 1, 1, 1, 2, 1, 1, 1, 1,
2616 2, 1, 1, 2, 2, 0, 1, 1, 2, 1,
2617 2, 0, 1, 0, 1, 1, 2, 0, 1, 2,
2618 3, 4, 0, 4, 1, 2, 5, 0, 2, 1,
2619 3, 3, 1, 2, 2, 3, 1, 2, 3, 1,
2620 2, 1, 1, 1, 2, 1, 1, 5, 7, 5,
2621 7, 13, 16, 5, 7, 6, 5, 1, 0, 1,
2622 1, 1, 3, 1, 1, 3, 1, 2, 3, 2,
2623 4, 4, 1, 1, 3, 4, 5, 0, 2, 2,
2624 4, 1, 3, 5, 1, 3, 1, 3, 1, 4,
2625 3, 3, 2, 5, 1, 1, 1, 1, 1, 1,
2626 4, 2, 1, 2, 2, 1, 1, 2, 2, 2,
2627 0, 1, 0, 1, 0, 2, 7, 9, 0, 7,
2628 0, 3, 3, 0, 1, 1, 1, 0, 1, 1,
2629 2, 1, 2, 1, 2, 1, 1, 4, 5, 7,
2630 8, 13, 1, 3, 2, 4, 2, 1, 1, 1,
2631 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2632 1, 2, 1, 1, 1, 1, 1, 3, 6, 1,
2633 2, 1, 1, 1, 1, 2, 1, 1, 3, 4,
2634 6, 8, 12, 5, 1, 1, 1, 1, 1, 1,
2635 1, 1, 1, 1, 0, 2, 1, 3, 1, 1,
2636 0, 1, 1, 3, 3, 6, 1, 0, 1, 1,
2637 3, 1, 1, 3, 5, 6, 1, 1, 1, 1,
2638 1, 1, 1, 1, 0, 2, 1, 3, 3, 1,
2639 1, 3, 1, 3, 4, 0, 1, 1
2640 };
2641
2642
2643 /* YYDPREC[RULE-NUM] -- Dynamic precedence of rule #RULE-NUM (0 if none). */
2644 static const unsigned char yydprec[] =
2645 {
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, 1, 2, 2, 2, 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, 2, 1, 0,
2682 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2683 0, 0, 0, 0, 2, 1, 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, 2,
2692 1, 0, 0, 0, 2, 1, 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, 2, 1, 0, 0, 0, 0, 0, 0,
2704 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2705 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2706 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2707 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2709 0, 0, 0, 0, 0, 0, 0, 0
2710 };
2711
2712 /* YYMERGER[RULE-NUM] -- Index of merging function for rule #RULE-NUM. */
2713 static const unsigned char yymerger[] =
2714 {
2715 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2717 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2725 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2726 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2728 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2734 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2737 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2740 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2743 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2748 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2759 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2762 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2763 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2766 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2767 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2769 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2770 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2777 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2778 0, 0, 0, 0, 0, 0, 0, 0
2779 };
2780
2781 /* YYIMMEDIATE[RULE-NUM] -- True iff rule #RULE-NUM is not to be deferred, as
2782 in the case of predicates. */
2783 static const yybool yyimmediate[] =
2784 {
2785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2799 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2803 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2807 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2808 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2810 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2812 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2813 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2814 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2815 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2825 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2848 0, 0, 0, 0, 0, 0, 0, 0
2849 };
2850
2851 /* YYCONFLP[YYPACT[STATE-NUM]] -- Pointer into YYCONFL of start of
2852 list of conflicting reductions corresponding to action entry for
2853 state STATE-NUM in yytable. 0 means no conflicts. The list in
2854 yyconfl is terminated by a rule number of 0. */
2855 static const unsigned short yyconflp[] =
2856 {
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, 15, 0, 0, 0, 0, 0, 0, 0, 3714,
2864 0, 3716, 0, 0, 0, 0, 0, 0, 0, 0,
2865 0, 0, 0, 0, 0, 3700, 3702, 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, 3696, 0, 0, 0,
2872 0, 0, 0, 0, 0, 17, 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, 3706, 0, 3708, 3710, 0, 3718,
2876 0, 3720, 3722, 0, 0, 0, 0, 0, 0, 0,
2877 0, 0, 0, 0, 3698, 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, 3704, 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, 9, 0, 0, 0, 11, 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, 3712, 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, 13, 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, 3724,
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, 167,
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, 1,
2917 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
2918 0, 5, 0, 0, 0, 0, 0, 0, 0, 0,
2919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2921 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2922 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2923 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,
2924 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2926 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2930 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2931 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2932 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2935 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2936 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2938 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2940 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2941 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2942 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2944 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2945 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2946 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2947 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2949 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2950 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2951 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2952 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2953 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2954 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2955 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2956 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2957 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2958 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2959 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2960 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2961 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2962 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2963 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2964 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2965 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2966 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2967 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2968 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2969 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2970 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2971 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2972 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2973 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2975 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2976 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2977 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2978 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2979 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2980 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2981 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2982 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2983 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2984 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2985 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2986 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2987 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2988 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2989 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2990 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2991 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2992 0, 0, 0, 0, 0, 0, 19, 0, 0, 0,
2993 0, 0, 0, 0, 0, 21, 23, 25, 27, 0,
2994 29, 31, 0, 0, 0, 33, 0, 0, 0, 0,
2995 0, 0, 35, 37, 39, 41, 43, 45, 47, 49,
2996 51, 53, 55, 57, 0, 59, 61, 63, 65, 67,
2997 69, 71, 73, 75, 77, 79, 81, 83, 85, 87,
2998 89, 91, 93, 0, 0, 0, 0, 0, 95, 97,
2999 99, 101, 103, 105, 0, 0, 0, 0, 0, 0,
3000 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3001 107, 109, 0, 111, 113, 115, 117, 119, 121, 0,
3002 123, 0, 0, 125, 127, 129, 131, 133, 135, 137,
3003 139, 141, 143, 145, 147, 149, 151, 153, 155, 0,
3004 0, 0, 0, 0, 0, 0, 0, 0, 157, 0,
3005 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3006 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3007 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3008 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3009 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3010 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3011 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3012 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3013 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3014 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3015 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3016 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3017 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3018 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3019 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3020 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3021 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3022 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3023 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3024 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3025 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3026 0, 0, 0, 0, 0, 0, 169, 0, 0, 0,
3027 0, 0, 0, 0, 0, 171, 173, 175, 177, 0,
3028 179, 181, 0, 0, 0, 183, 0, 0, 185, 187,
3029 189, 191, 0, 0, 0, 193, 0, 0, 0, 0,
3030 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3031 195, 197, 0, 0, 0, 0, 0, 0, 0, 0,
3032 0, 0, 0, 199, 201, 0, 0, 0, 0, 203,
3033 205, 207, 209, 211, 0, 0, 0, 0, 0, 0,
3034 0, 213, 0, 0, 0, 0, 0, 0, 0, 0,
3035 0, 215, 0, 217, 219, 221, 223, 225, 227, 0,
3036 229, 0, 0, 231, 233, 235, 237, 239, 241, 243,
3037 245, 247, 249, 251, 253, 255, 257, 259, 261, 263,
3038 0, 0, 0, 0, 0, 0, 0, 0, 265, 267,
3039 269, 271, 0, 273, 275, 0, 0, 0, 277, 0,
3040 0, 279, 281, 283, 285, 0, 0, 0, 287, 0,
3041 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3042 0, 0, 0, 289, 291, 0, 0, 0, 159, 0,
3043 0, 0, 0, 161, 0, 0, 293, 295, 0, 0,
3044 163, 0, 297, 299, 301, 303, 305, 0, 0, 0,
3045 0, 0, 0, 0, 307, 0, 0, 0, 0, 0,
3046 0, 0, 0, 0, 309, 0, 311, 313, 315, 317,
3047 319, 321, 0, 323, 0, 0, 325, 327, 329, 331,
3048 333, 335, 337, 339, 341, 343, 345, 347, 349, 351,
3049 353, 355, 357, 0, 0, 0, 0, 0, 165, 0,
3050 0, 359, 361, 363, 365, 0, 367, 369, 0, 0,
3051 0, 371, 0, 0, 373, 375, 377, 379, 0, 0,
3052 0, 381, 0, 0, 0, 0, 0, 0, 0, 0,
3053 0, 0, 0, 0, 0, 0, 383, 385, 0, 0,
3054 0, 0, 0, 0, 0, 0, 0, 0, 0, 387,
3055 389, 0, 0, 0, 0, 391, 393, 395, 397, 399,
3056 0, 0, 0, 0, 0, 0, 0, 401, 0, 0,
3057 0, 0, 0, 0, 0, 0, 0, 403, 0, 405,
3058 407, 409, 411, 413, 415, 0, 417, 0, 0, 419,
3059 421, 423, 425, 427, 429, 431, 433, 435, 437, 439,
3060 441, 443, 445, 447, 449, 451, 0, 0, 0, 0,
3061 0, 0, 0, 0, 453, 455, 457, 459, 0, 461,
3062 463, 0, 0, 0, 465, 0, 0, 467, 469, 471,
3063 473, 0, 0, 0, 475, 0, 0, 0, 0, 0,
3064 0, 0, 0, 0, 0, 0, 0, 0, 0, 477,
3065 479, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3066 0, 0, 481, 483, 0, 0, 0, 0, 485, 487,
3067 489, 491, 493, 0, 0, 0, 0, 0, 0, 0,
3068 495, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3069 497, 0, 499, 501, 503, 505, 507, 509, 0, 511,
3070 0, 0, 513, 515, 517, 519, 521, 523, 525, 527,
3071 529, 531, 533, 535, 537, 539, 541, 543, 545, 0,
3072 0, 0, 0, 0, 0, 0, 0, 547, 549, 551,
3073 553, 0, 555, 557, 0, 0, 0, 559, 0, 0,
3074 561, 563, 565, 567, 0, 0, 0, 569, 0, 0,
3075 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3076 0, 0, 571, 573, 0, 0, 0, 0, 0, 0,
3077 0, 0, 0, 0, 0, 575, 577, 0, 0, 0,
3078 0, 579, 581, 583, 585, 587, 0, 0, 0, 0,
3079 0, 0, 0, 589, 0, 0, 0, 0, 0, 0,
3080 0, 0, 0, 591, 0, 593, 595, 597, 599, 601,
3081 603, 0, 605, 0, 0, 607, 609, 611, 613, 615,
3082 617, 619, 621, 623, 625, 627, 629, 631, 633, 635,
3083 637, 639, 0, 0, 0, 0, 0, 0, 0, 0,
3084 641, 643, 645, 647, 0, 649, 651, 0, 0, 0,
3085 653, 0, 0, 655, 657, 659, 661, 0, 0, 0,
3086 663, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3087 0, 0, 0, 0, 0, 665, 667, 0, 0, 0,
3088 0, 0, 0, 0, 0, 0, 0, 0, 669, 671,
3089 0, 0, 0, 0, 673, 675, 677, 679, 681, 0,
3090 0, 0, 0, 0, 0, 0, 683, 0, 0, 0,
3091 0, 0, 0, 0, 0, 0, 685, 0, 687, 689,
3092 691, 693, 695, 697, 0, 699, 0, 0, 701, 703,
3093 705, 707, 709, 711, 713, 715, 717, 719, 721, 723,
3094 725, 727, 729, 731, 733, 0, 0, 0, 0, 0,
3095 0, 0, 0, 736, 739, 742, 745, 0, 748, 751,
3096 0, 0, 0, 754, 0, 0, 757, 760, 763, 766,
3097 0, 0, 0, 769, 0, 0, 0, 0, 0, 0,
3098 0, 0, 0, 0, 0, 0, 0, 0, 772, 775,
3099 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3100 0, 778, 781, 0, 0, 0, 0, 784, 787, 790,
3101 793, 796, 0, 0, 0, 0, 0, 0, 0, 799,
3102 0, 0, 0, 0, 0, 0, 0, 0, 0, 802,
3103 0, 805, 808, 811, 814, 817, 820, 0, 823, 0,
3104 0, 826, 829, 832, 835, 838, 841, 844, 847, 850,
3105 853, 856, 859, 862, 865, 868, 871, 876, 0, 874,
3106 0, 0, 0, 0, 0, 0, 878, 880, 882, 884,
3107 0, 886, 888, 0, 0, 0, 890, 0, 0, 892,
3108 894, 896, 898, 0, 0, 0, 900, 0, 0, 0,
3109 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3110 0, 902, 904, 0, 0, 0, 0, 0, 0, 0,
3111 0, 0, 0, 0, 906, 908, 0, 0, 0, 0,
3112 910, 912, 914, 916, 918, 0, 0, 0, 0, 0,
3113 0, 0, 920, 0, 0, 0, 0, 0, 0, 0,
3114 0, 0, 922, 0, 924, 926, 928, 930, 932, 934,
3115 0, 936, 0, 0, 938, 940, 942, 944, 946, 948,
3116 950, 952, 954, 956, 958, 960, 962, 964, 966, 968,
3117 970, 0, 0, 0, 0, 0, 0, 0, 0, 972,
3118 974, 976, 978, 0, 980, 982, 0, 0, 0, 984,
3119 0, 0, 986, 988, 990, 992, 0, 0, 0, 994,
3120 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3121 0, 0, 0, 0, 996, 998, 0, 0, 0, 0,
3122 0, 0, 0, 0, 0, 0, 0, 1000, 1002, 0,
3123 0, 0, 0, 1004, 1006, 1008, 1010, 1012, 0, 0,
3124 0, 0, 0, 0, 0, 1014, 0, 0, 0, 0,
3125 0, 0, 0, 0, 0, 1016, 0, 1018, 1020, 1022,
3126 1024, 1026, 1028, 0, 1030, 0, 0, 1032, 1034, 1036,
3127 1038, 1040, 1042, 1044, 1046, 1048, 1050, 1052, 1054, 1056,
3128 1058, 1060, 1062, 1064, 0, 0, 0, 0, 0, 0,
3129 0, 0, 1066, 1068, 1070, 1072, 0, 1074, 1076, 0,
3130 0, 0, 1078, 0, 0, 1080, 1082, 1084, 1086, 0,
3131 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0,
3132 0, 0, 0, 0, 0, 0, 0, 1090, 1092, 0,
3133 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3134 1094, 1096, 0, 0, 0, 0, 1098, 1100, 1102, 1104,
3135 1106, 0, 0, 0, 0, 0, 0, 0, 1108, 0,
3136 0, 0, 0, 0, 0, 0, 0, 0, 1110, 0,
3137 1112, 1114, 1116, 1118, 1120, 1122, 0, 1124, 0, 0,
3138 1126, 1128, 1130, 1132, 1134, 1136, 1138, 1140, 1142, 1144,
3139 1146, 1148, 1150, 1152, 1154, 1156, 1158, 0, 0, 0,
3140 0, 0, 0, 0, 0, 1160, 1162, 1164, 1166, 0,
3141 1168, 1170, 0, 0, 0, 1172, 0, 0, 1174, 1176,
3142 1178, 1180, 0, 0, 0, 1182, 0, 0, 0, 0,
3143 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3144 1184, 1186, 0, 0, 0, 0, 0, 0, 0, 0,
3145 0, 0, 0, 1188, 1190, 0, 0, 0, 0, 1192,
3146 1194, 1196, 1198, 1200, 0, 0, 0, 0, 0, 0,
3147 0, 1202, 0, 0, 0, 0, 0, 0, 0, 0,
3148 0, 1204, 0, 1206, 1208, 1210, 1212, 1214, 1216, 0,
3149 1218, 0, 0, 1220, 1222, 1224, 1226, 1228, 1230, 1232,
3150 1234, 1236, 1238, 1240, 1242, 1244, 1246, 1248, 1250, 1252,
3151 0, 0, 0, 0, 0, 0, 0, 0, 1254, 1256,
3152 1258, 1260, 0, 1262, 1264, 0, 0, 0, 1266, 0,
3153 0, 1268, 1270, 1272, 1274, 0, 0, 0, 1276, 0,
3154 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3155 0, 0, 0, 1278, 1280, 0, 0, 0, 0, 0,
3156 0, 0, 0, 0, 0, 0, 1282, 1284, 0, 0,
3157 0, 0, 1286, 1288, 1290, 1292, 1294, 0, 0, 0,
3158 0, 0, 0, 0, 1296, 0, 0, 0, 0, 0,
3159 0, 0, 0, 0, 1298, 0, 1300, 1302, 1304, 1306,
3160 1308, 1310, 0, 1312, 0, 0, 1314, 1316, 1318, 1320,
3161 1322, 1324, 1326, 1328, 1330, 1332, 1334, 1336, 1338, 1340,
3162 1342, 1344, 1346, 0, 0, 0, 0, 0, 0, 0,
3163 0, 1348, 1350, 1352, 1354, 0, 1356, 1358, 0, 0,
3164 0, 1360, 0, 0, 1362, 1364, 1366, 1368, 0, 0,
3165 0, 1370, 0, 0, 0, 0, 0, 0, 0, 0,
3166 0, 0, 0, 0, 0, 0, 1372, 1374, 0, 0,
3167 0, 0, 0, 0, 0, 0, 0, 0, 0, 1376,
3168 1378, 0, 0, 0, 0, 1380, 1382, 1384, 1386, 1388,
3169 0, 0, 0, 0, 0, 0, 0, 1390, 0, 0,
3170 0, 0, 0, 0, 0, 0, 0, 1392, 0, 1394,
3171 1396, 1398, 1400, 1402, 1404, 0, 1406, 0, 0, 1408,
3172 1410, 1412, 1414, 1416, 1418, 1420, 1422, 1424, 1426, 1428,
3173 1430, 1432, 1434, 1436, 1438, 1440, 0, 0, 0, 0,
3174 0, 0, 0, 0, 1442, 1444, 1446, 1448, 0, 1450,
3175 1452, 0, 0, 0, 1454, 0, 0, 1456, 1458, 1460,
3176 1462, 0, 0, 0, 1464, 0, 0, 0, 0, 0,
3177 0, 0, 0, 0, 0, 0, 0, 0, 0, 1466,
3178 1468, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3179 0, 0, 1470, 1472, 0, 0, 0, 0, 1474, 1476,
3180 1478, 1480, 1482, 0, 0, 0, 0, 0, 0, 0,
3181 1484, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3182 1486, 0, 1488, 1490, 1492, 1494, 1496, 1498, 0, 1500,
3183 0, 0, 1502, 1504, 1506, 1508, 1510, 1512, 1514, 1516,
3184 1518, 1520, 1522, 1524, 1526, 1528, 1530, 1532, 1534, 0,
3185 0, 0, 0, 0, 0, 0, 0, 1536, 1538, 1540,
3186 1542, 0, 1544, 1546, 0, 0, 0, 1548, 0, 0,
3187 1550, 1552, 1554, 1556, 0, 0, 0, 1558, 0, 0,
3188 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3189 0, 0, 1560, 1562, 0, 0, 0, 0, 0, 0,
3190 0, 0, 0, 0, 0, 1564, 1566, 0, 0, 0,
3191 0, 1568, 1570, 1572, 1574, 1576, 0, 0, 0, 0,
3192 0, 0, 0, 1578, 0, 0, 0, 0, 0, 0,
3193 0, 0, 0, 1580, 0, 1582, 1584, 1586, 1588, 1590,
3194 1592, 0, 1594, 0, 0, 1596, 1598, 1600, 1602, 1604,
3195 1606, 1608, 1610, 1612, 1614, 1616, 1618, 1620, 1622, 1624,
3196 1626, 1628, 0, 0, 0, 0, 0, 0, 0, 0,
3197 1630, 1632, 1634, 1636, 0, 1638, 1640, 0, 0, 0,
3198 1642, 0, 0, 1644, 1646, 1648, 1650, 0, 0, 0,
3199 1652, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3200 0, 0, 0, 0, 0, 1654, 1656, 0, 0, 0,
3201 0, 0, 0, 0, 0, 0, 0, 0, 1658, 1660,
3202 0, 0, 0, 0, 1662, 1664, 1666, 1668, 1670, 0,
3203 0, 0, 0, 0, 0, 0, 1672, 0, 0, 0,
3204 0, 0, 0, 0, 0, 0, 1674, 0, 1676, 1678,
3205 1680, 1682, 1684, 1686, 0, 1688, 0, 0, 1690, 1692,
3206 1694, 1696, 1698, 1700, 1702, 1704, 1706, 1708, 1710, 1712,
3207 1714, 1716, 1718, 1720, 1722, 0, 0, 0, 0, 0,
3208 0, 0, 0, 1724, 1726, 1728, 1730, 0, 1732, 1734,
3209 0, 0, 0, 1736, 0, 0, 1738, 1740, 1742, 1744,
3210 0, 0, 0, 1746, 0, 0, 0, 0, 0, 0,
3211 0, 0, 0, 0, 0, 0, 0, 0, 1748, 1750,
3212 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3213 0, 1752, 1754, 0, 0, 0, 0, 1756, 1758, 1760,
3214 1762, 1764, 0, 0, 0, 0, 0, 0, 0, 1766,
3215 0, 0, 0, 0, 0, 0, 0, 0, 0, 1768,
3216 0, 1770, 1772, 1774, 1776, 1778, 1780, 0, 1782, 0,
3217 0, 1784, 1786, 1788, 1790, 1792, 1794, 1796, 1798, 1800,
3218 1802, 1804, 1806, 1808, 1810, 1812, 1814, 1816, 0, 0,
3219 0, 0, 0, 0, 0, 0, 1818, 1820, 1822, 1824,
3220 0, 1826, 1828, 0, 0, 0, 1830, 0, 0, 1832,
3221 1834, 1836, 1838, 0, 0, 0, 1840, 0, 0, 0,
3222 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3223 0, 1842, 1844, 0, 0, 0, 0, 0, 0, 0,
3224 0, 0, 0, 0, 1846, 1848, 0, 0, 0, 0,
3225 1850, 1852, 1854, 1856, 1858, 0, 0, 0, 0, 0,
3226 0, 0, 1860, 0, 0, 0, 0, 0, 0, 0,
3227 0, 0, 1862, 0, 1864, 1866, 1868, 1870, 1872, 1874,
3228 0, 1876, 0, 0, 1878, 1880, 1882, 1884, 1886, 1888,
3229 1890, 1892, 1894, 1896, 1898, 1900, 1902, 1904, 1906, 1908,
3230 1910, 0, 0, 0, 0, 0, 0, 0, 0, 1912,
3231 1914, 1916, 1918, 0, 1920, 1922, 0, 0, 0, 1924,
3232 0, 0, 1926, 1928, 1930, 1932, 0, 0, 0, 1934,
3233 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3234 0, 0, 0, 0, 1936, 1938, 0, 0, 0, 0,
3235 0, 0, 0, 0, 0, 0, 0, 1940, 1942, 0,
3236 0, 0, 0, 1944, 1946, 1948, 1950, 1952, 0, 0,
3237 0, 0, 0, 0, 0, 1954, 0, 0, 0, 0,
3238 0, 0, 0, 0, 0, 1956, 0, 1958, 1960, 1962,
3239 1964, 1966, 1968, 0, 1970, 0, 0, 1972, 1974, 1976,
3240 1978, 1980, 1982, 1984, 1986, 1988, 1990, 1992, 1994, 1996,
3241 1998, 2000, 2002, 2004, 0, 0, 0, 0, 0, 0,
3242 0, 0, 2006, 2008, 2010, 2012, 0, 2014, 2016, 0,
3243 0, 0, 2018, 0, 0, 2020, 2022, 2024, 2026, 0,
3244 0, 0, 2028, 0, 0, 0, 0, 0, 0, 0,
3245 0, 0, 0, 0, 0, 0, 0, 2030, 2032, 0,
3246 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3247 2034, 2036, 0, 0, 0, 0, 2038, 2040, 2042, 2044,
3248 2046, 0, 0, 0, 0, 0, 0, 0, 2048, 0,
3249 0, 0, 0, 0, 0, 0, 0, 0, 2050, 0,
3250 2052, 2054, 2056, 2058, 2060, 2062, 0, 2064, 0, 0,
3251 2066, 2068, 2070, 2072, 2074, 2076, 2078, 2080, 2082, 2084,
3252 2086, 2088, 2090, 2092, 2094, 2096, 2098, 0, 0, 0,
3253 0, 0, 0, 0, 0, 2100, 2102, 2104, 2106, 0,
3254 2108, 2110, 0, 0, 0, 2112, 0, 0, 2114, 2116,
3255 2118, 2120, 0, 0, 0, 2122, 0, 0, 0, 0,
3256 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3257 2124, 2126, 0, 0, 0, 0, 0, 0, 0, 0,
3258 0, 0, 0, 2128, 2130, 0, 0, 0, 0, 2132,
3259 2134, 2136, 2138, 2140, 0, 0, 0, 0, 0, 0,
3260 0, 2142, 0, 0, 0, 0, 0, 0, 0, 0,
3261 0, 2144, 0, 2146, 2148, 2150, 2152, 2154, 2156, 0,
3262 2158, 0, 0, 2160, 2162, 2164, 2166, 2168, 2170, 2172,
3263 2174, 2176, 2178, 2180, 2182, 2184, 2186, 2188, 2190, 2192,
3264 0, 0, 0, 0, 0, 0, 0, 0, 2194, 2196,
3265 2198, 2200, 0, 2202, 2204, 0, 0, 0, 2206, 0,
3266 0, 2208, 2210, 2212, 2214, 0, 0, 0, 2216, 0,
3267 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3268 0, 0, 0, 2218, 2220, 0, 0, 0, 0, 0,
3269 0, 0, 0, 0, 0, 0, 2222, 2224, 0, 0,
3270 0, 0, 2226, 2228, 2230, 2232, 2234, 0, 0, 0,
3271 0, 0, 0, 0, 2236, 0, 0, 0, 0, 0,
3272 0, 0, 0, 0, 2238, 0, 2240, 2242, 2244, 2246,
3273 2248, 2250, 0, 2252, 0, 0, 2254, 2256, 2258, 2260,
3274 2262, 2264, 2266, 2268, 2270, 2272, 2274, 2276, 2278, 2280,
3275 2282, 2284, 2286, 0, 0, 0, 0, 0, 0, 0,
3276 0, 2288, 2290, 2292, 2294, 0, 2296, 2298, 0, 0,
3277 0, 2300, 0, 0, 2302, 2304, 2306, 2308, 0, 0,
3278 0, 2310, 0, 0, 0, 0, 0, 0, 0, 0,
3279 0, 0, 0, 0, 0, 0, 2312, 2314, 0, 0,
3280 0, 0, 0, 0, 0, 0, 0, 0, 0, 2316,
3281 2318, 0, 0, 0, 0, 2320, 2322, 2324, 2326, 2328,
3282 0, 0, 0, 0, 0, 0, 0, 2330, 0, 0,
3283 0, 0, 0, 0, 0, 0, 0, 2332, 0, 2334,
3284 2336, 2338, 2340, 2342, 2344, 0, 2346, 0, 0, 2348,
3285 2350, 2352, 2354, 2356, 2358, 2360, 2362, 2364, 2366, 2368,
3286 2370, 2372, 2374, 2376, 2378, 2380, 0, 0, 0, 0,
3287 0, 0, 0, 0, 2382, 2384, 2386, 2388, 0, 2390,
3288 2392, 0, 0, 0, 2394, 0, 0, 2396, 2398, 2400,
3289 2402, 0, 0, 0, 2404, 0, 0, 0, 0, 0,
3290 0, 0, 0, 0, 0, 0, 0, 0, 0, 2406,
3291 2408, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3292 0, 0, 2410, 2412, 0, 0, 0, 0, 2414, 2416,
3293 2418, 2420, 2422, 0, 0, 0, 0, 0, 0, 0,
3294 2424, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3295 2426, 0, 2428, 2430, 2432, 2434, 2436, 2438, 0, 2440,
3296 0, 0, 2442, 2444, 2446, 2448, 2450, 2452, 2454, 2456,
3297 2458, 2460, 2462, 2464, 2466, 2468, 2470, 2472, 2474, 0,
3298 0, 0, 0, 0, 0, 0, 0, 2476, 2478, 2480,
3299 2482, 0, 2484, 2486, 0, 0, 0, 2488, 0, 0,
3300 2490, 2492, 2494, 2496, 0, 0, 0, 2498, 0, 0,
3301 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3302 0, 0, 2500, 2502, 0, 0, 0, 0, 0, 0,
3303 0, 0, 0, 0, 0, 2504, 2506, 0, 0, 0,
3304 0, 2508, 2510, 2512, 2514, 2516, 0, 0, 0, 0,
3305 0, 0, 0, 2518, 0, 0, 0, 0, 0, 0,
3306 0, 0, 0, 2520, 0, 2522, 2524, 2526, 2528, 2530,
3307 2532, 0, 2534, 0, 0, 2536, 2538, 2540, 2542, 2544,
3308 2546, 2548, 2550, 2552, 2554, 2556, 2558, 2560, 2562, 2564,
3309 2566, 2568, 0, 0, 0, 0, 0, 0, 0, 0,
3310 2570, 2572, 2574, 2576, 0, 2578, 2580, 0, 0, 0,
3311 2582, 0, 0, 2584, 2586, 2588, 2590, 0, 0, 0,
3312 2592, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3313 0, 0, 0, 0, 0, 2594, 2596, 0, 0, 0,
3314 0, 0, 0, 0, 0, 0, 0, 0, 2598, 2600,
3315 0, 0, 0, 0, 2602, 2604, 2606, 2608, 2610, 0,
3316 0, 0, 0, 0, 0, 0, 2612, 0, 0, 0,
3317 0, 0, 0, 0, 0, 0, 2614, 0, 2616, 2618,
3318 2620, 2622, 2624, 2626, 0, 2628, 0, 0, 2630, 2632,
3319 2634, 2636, 2638, 2640, 2642, 2644, 2646, 2648, 2650, 2652,
3320 2654, 2656, 2658, 2660, 2662, 0, 0, 0, 0, 0,
3321 0, 0, 0, 2664, 2666, 2668, 2670, 0, 2672, 2674,
3322 0, 0, 0, 2676, 0, 0, 2678, 2680, 2682, 2684,
3323 0, 0, 0, 2686, 0, 0, 0, 0, 0, 0,
3324 0, 0, 0, 0, 0, 0, 0, 0, 2688, 2690,
3325 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3326 0, 2692, 2694, 0, 0, 0, 0, 2696, 2698, 2700,
3327 2702, 2704, 0, 0, 0, 0, 0, 0, 0, 2706,
3328 0, 0, 0, 0, 0, 0, 0, 0, 0, 2708,
3329 0, 2710, 2712, 2714, 2716, 2718, 2720, 0, 2722, 0,
3330 0, 2724, 2726, 2728, 2730, 2732, 2734, 2736, 2738, 2740,
3331 2742, 2744, 2746, 2748, 2750, 2752, 2754, 2756, 0, 0,
3332 0, 0, 0, 0, 0, 0, 2758, 2760, 2762, 2764,
3333 0, 2766, 2768, 0, 0, 0, 2770, 0, 0, 2772,
3334 2774, 2776, 2778, 0, 0, 0, 2780, 0, 0, 0,
3335 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3336 0, 2782, 2784, 0, 0, 0, 0, 0, 0, 0,
3337 0, 0, 0, 0, 2786, 2788, 0, 0, 0, 0,
3338 2790, 2792, 2794, 2796, 2798, 0, 0, 0, 0, 0,
3339 0, 0, 2800, 0, 0, 0, 0, 0, 0, 0,
3340 0, 0, 2802, 0, 2804, 2806, 2808, 2810, 2812, 2814,
3341 0, 2816, 0, 0, 2818, 2820, 2822, 2824, 2826, 2828,
3342 2830, 2832, 2834, 2836, 2838, 2840, 2842, 2844, 2846, 2848,
3343 2850, 0, 0, 0, 0, 0, 0, 0, 0, 2852,
3344 2854, 2856, 2858, 0, 2860, 2862, 0, 0, 0, 2864,
3345 0, 0, 2866, 2868, 2870, 2872, 0, 0, 0, 2874,
3346 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3347 0, 0, 0, 0, 2876, 2878, 0, 0, 0, 0,
3348 0, 0, 0, 0, 0, 0, 0, 2880, 2882, 0,
3349 0, 0, 0, 2884, 2886, 2888, 2890, 2892, 0, 0,
3350 0, 0, 0, 0, 0, 2894, 0, 0, 0, 0,
3351 0, 0, 0, 0, 0, 2896, 0, 2898, 2900, 2902,
3352 2904, 2906, 2908, 0, 2910, 0, 0, 2912, 2914, 2916,
3353 2918, 2920, 2922, 2924, 2926, 2928, 2930, 2932, 2934, 2936,
3354 2938, 2940, 2942, 2944, 0, 0, 0, 0, 0, 0,
3355 0, 0, 2946, 2948, 2950, 2952, 0, 2954, 2956, 0,
3356 0, 0, 2958, 0, 0, 2960, 2962, 2964, 2966, 0,
3357 0, 0, 2968, 0, 0, 0, 0, 0, 0, 0,
3358 0, 0, 0, 0, 0, 0, 0, 2970, 2972, 0,
3359 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3360 2974, 2976, 0, 0, 0, 0, 2978, 2980, 2982, 2984,
3361 2986, 0, 0, 0, 0, 0, 0, 0, 2988, 0,
3362 0, 0, 0, 0, 0, 0, 0, 0, 2990, 0,
3363 2992, 2994, 2996, 2998, 3000, 3002, 0, 3004, 0, 0,
3364 3006, 3008, 3010, 3012, 3014, 3016, 3018, 3020, 3022, 3024,
3365 3026, 3028, 3030, 3032, 3034, 3036, 3038, 0, 0, 0,
3366 0, 0, 0, 0, 0, 3040, 3042, 3044, 3046, 0,
3367 3048, 3050, 0, 0, 0, 3052, 0, 0, 3054, 3056,
3368 3058, 3060, 0, 0, 0, 3062, 0, 0, 0, 0,
3369 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3370 3064, 3066, 0, 0, 0, 0, 0, 0, 0, 0,
3371 0, 0, 0, 3068, 3070, 0, 0, 0, 0, 3072,
3372 3074, 3076, 3078, 3080, 0, 0, 0, 0, 0, 0,
3373 0, 3082, 0, 0, 0, 0, 0, 0, 0, 0,
3374 0, 3084, 0, 3086, 3088, 3090, 3092, 3094, 3096, 0,
3375 3098, 0, 0, 3100, 3102, 3104, 3106, 3108, 3110, 3112,
3376 3114, 3116, 3118, 3120, 3122, 3124, 3126, 3128, 3130, 3132,
3377 0, 0, 0, 0, 0, 0, 0, 0, 3134, 3136,
3378 3138, 3140, 0, 3142, 3144, 0, 0, 0, 3146, 0,
3379 0, 3148, 3150, 3152, 3154, 0, 0, 0, 3156, 0,
3380 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3381 0, 0, 0, 3158, 3160, 0, 0, 0, 0, 0,
3382 0, 0, 0, 0, 0, 0, 3162, 3164, 0, 0,
3383 0, 0, 3166, 3168, 3170, 3172, 3174, 0, 0, 0,
3384 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0,
3385 0, 0, 0, 0, 3178, 0, 3180, 3182, 3184, 3186,
3386 3188, 3190, 0, 3192, 0, 0, 3194, 3196, 3198, 3200,
3387 3202, 3204, 3206, 3208, 3210, 3212, 3214, 3216, 3218, 3220,
3388 3222, 3224, 3226, 0, 0, 0, 0, 0, 0, 0,
3389 0, 3228, 3230, 3232, 3234, 0, 3236, 3238, 0, 0,
3390 0, 3240, 0, 0, 3242, 3244, 3246, 3248, 0, 0,
3391 0, 3250, 0, 0, 0, 0, 0, 0, 0, 0,
3392 0, 0, 0, 0, 0, 0, 3252, 3254, 0, 0,
3393 0, 0, 0, 0, 0, 0, 0, 0, 0, 3256,
3394 3258, 0, 0, 0, 0, 3260, 3262, 3264, 3266, 3268,
3395 0, 0, 0, 0, 0, 0, 0, 3270, 0, 0,
3396 0, 0, 0, 0, 0, 0, 0, 3272, 0, 3274,
3397 3276, 3278, 3280, 3282, 3284, 0, 3286, 0, 0, 3288,
3398 3290, 3292, 3294, 3296, 3298, 3300, 3302, 3304, 3306, 3308,
3399 3310, 3312, 3314, 3316, 3318, 3320, 0, 0, 0, 0,
3400 0, 0, 0, 0, 3322, 3324, 3326, 3328, 0, 3330,
3401 3332, 0, 0, 0, 3334, 0, 0, 3336, 3338, 3340,
3402 3342, 0, 0, 0, 3344, 0, 0, 0, 0, 0,
3403 0, 0, 0, 0, 0, 0, 0, 0, 0, 3346,
3404 3348, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3405 0, 0, 3350, 3352, 0, 0, 0, 0, 3354, 3356,
3406 3358, 3360, 3362, 0, 0, 0, 0, 0, 0, 0,
3407 3364, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3408 3366, 0, 3368, 3370, 3372, 3374, 3376, 3378, 0, 3380,
3409 0, 0, 3382, 3384, 3386, 3388, 3390, 3392, 3394, 3396,
3410 3398, 3400, 3402, 3404, 3406, 3408, 3410, 3412, 3414, 0,
3411 0, 0, 0, 0, 0, 0, 0, 3416, 3418, 3420,
3412 3422, 0, 3424, 3426, 0, 0, 0, 3428, 0, 0,
3413 3430, 3432, 3434, 3436, 0, 0, 0, 3438, 0, 0,
3414 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3415 0, 0, 3440, 3442, 0, 0, 0, 0, 0, 0,
3416 0, 0, 0, 0, 0, 3444, 3446, 0, 0, 0,
3417 0, 3448, 3450, 3452, 3454, 3456, 0, 0, 0, 0,
3418 0, 0, 0, 3458, 0, 0, 0, 0, 0, 0,
3419 0, 0, 0, 3460, 0, 3462, 3464, 3466, 3468, 3470,
3420 3472, 0, 3474, 0, 0, 3476, 3478, 3480, 3482, 3484,
3421 3486, 3488, 3490, 3492, 3494, 3496, 3498, 3500, 3502, 3504,
3422 3506, 3508, 0, 0, 0, 0, 0, 0, 0, 0,
3423 3510, 3512, 3514, 3516, 0, 3518, 3520, 0, 0, 0,
3424 3522, 0, 0, 3524, 3526, 3528, 3530, 0, 0, 0,
3425 3532, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3426 0, 0, 0, 0, 0, 3534, 3536, 0, 0, 0,
3427 0, 0, 0, 0, 0, 0, 0, 0, 3538, 3540,
3428 0, 0, 0, 0, 3542, 3544, 3546, 3548, 3550, 0,
3429 0, 0, 0, 0, 0, 0, 3552, 0, 0, 0,
3430 0, 0, 0, 0, 0, 0, 3554, 0, 3556, 3558,
3431 3560, 3562, 3564, 3566, 0, 3568, 0, 0, 3570, 3572,
3432 3574, 3576, 3578, 3580, 3582, 3584, 3586, 3588, 3590, 3592,
3433 3594, 3596, 3598, 3600, 3602, 0, 0, 0, 0, 0,
3434 0, 0, 0, 3604, 3606, 3608, 3610, 0, 3612, 3614,
3435 0, 0, 0, 3616, 0, 0, 3618, 3620, 3622, 3624,
3436 0, 0, 0, 3626, 0, 0, 0, 0, 0, 0,
3437 0, 0, 0, 0, 0, 0, 0, 0, 3628, 3630,
3438 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3439 0, 3632, 3634, 0, 0, 0, 0, 3636, 3638, 3640,
3440 3642, 3644, 0, 0, 0, 0, 0, 0, 0, 3646,
3441 0, 0, 0, 0, 0, 0, 0, 0, 0, 3648,
3442 0, 3650, 3652, 3654, 3656, 3658, 3660, 0, 3662, 0,
3443 0, 3664, 3666, 3668, 3670, 3672, 3674, 3676, 3678, 3680,
3444 3682, 3684, 3686, 3688, 3690, 3692, 3694, 0, 0, 0,
3445 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3454 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3457 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3459 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3466 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3467 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3470 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3471 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3472 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3473 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3506 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3513 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3524 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3527 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3530 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3531 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3534 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3541 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3546 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3548 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3550 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3551 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3552 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3553 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3554 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3555 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3559 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3560 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3563 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3565 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3567 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3570 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3571 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3572 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3574 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3575 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3576 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3577 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3578 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3579 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3582 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3583 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3584 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3585 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3586 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3587 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3588 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3589 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3590 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3593 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3595 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3596 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3598 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3600 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3601 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3602 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3603 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3604 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3605 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3606 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3607 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3608 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3609 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3611 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3612 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3613 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3614 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3615 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3616 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3617 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3618 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3619 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3620 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3621 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3622 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3623 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3624 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3625 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3626 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3627 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3632 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3633 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3634 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3635 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3636 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3637 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3638 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3639 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3640 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3641 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3642 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3643 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3647 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3648 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3649 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3650 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3654 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3656 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3657 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3658 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3659 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3662 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3667 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3668 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3670 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3671 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3673 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3674 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3675 0, 0, 0, 0, 0, 0, 0, 0, 0, 3726,
3676 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3677 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3678 0, 0, 0, 3728
3679 };
3680
3681 /* YYCONFL[I] -- lists of conflicting rule numbers, each terminated by
3682 0, pointed into by YYCONFLP. */
3683 static const short yyconfl[] =
3684 {
3685 0, 391, 0, 391, 0, 391, 0, 391, 0, 382,
3686 0, 382, 0, 405, 0, 466, 0, 466, 0, 622,
3687 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3688 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3689 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3690 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3691 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3692 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3693 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3694 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3695 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3696 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3697 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3698 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3699 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3700 0, 622, 0, 622, 0, 622, 0, 622, 0, 391,
3701 0, 391, 0, 391, 0, 391, 0, 405, 0, 46,
3702 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3703 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3704 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3705 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3706 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3707 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3708 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3709 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3710 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3711 0, 46, 0, 55, 0, 55, 0, 55, 0, 55,
3712 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3713 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3714 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3715 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3716 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3717 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3718 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3719 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3720 0, 55, 0, 55, 0, 55, 0, 56, 0, 56,
3721 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3722 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3723 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3724 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3725 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3726 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3727 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3728 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3729 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3730 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3731 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3732 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3733 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3734 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3735 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3736 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3737 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3738 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3739 0, 57, 0, 57, 0, 58, 0, 58, 0, 58,
3740 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3741 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3742 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3743 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3744 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3745 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3746 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3747 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3748 0, 58, 0, 58, 0, 58, 0, 58, 0, 623,
3749 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3750 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3751 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3752 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3753 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3754 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3755 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3756 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3757 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3758 0, 623, 0, 584, 622, 0, 584, 622, 0, 584,
3759 622, 0, 584, 622, 0, 584, 622, 0, 584, 622,
3760 0, 584, 622, 0, 584, 622, 0, 584, 622, 0,
3761 584, 622, 0, 584, 622, 0, 584, 622, 0, 584,
3762 622, 0, 584, 622, 0, 584, 622, 0, 584, 622,
3763 0, 584, 622, 0, 584, 622, 0, 584, 622, 0,
3764 584, 622, 0, 584, 622, 0, 584, 622, 0, 584,
3765 622, 0, 584, 622, 0, 584, 622, 0, 584, 622,
3766 0, 584, 622, 0, 584, 622, 0, 584, 622, 0,
3767 584, 622, 0, 584, 622, 0, 584, 622, 0, 584,
3768 622, 0, 584, 622, 0, 584, 622, 0, 584, 622,
3769 0, 584, 622, 0, 584, 622, 0, 584, 622, 0,
3770 584, 622, 0, 584, 622, 0, 584, 622, 0, 584,
3771 622, 0, 584, 622, 0, 584, 622, 0, 584, 622,
3772 0, 584, 622, 0, 622, 0, 65, 0, 65, 0,
3773 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3774 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3775 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3776 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3777 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3778 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3779 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3780 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3781 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3782 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3783 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3784 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3785 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3786 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3787 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3788 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3789 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3790 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3791 109, 0, 109, 0, 110, 0, 110, 0, 110, 0,
3792 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3793 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3794 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3795 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3796 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3797 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3798 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3799 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3800 110, 0, 110, 0, 110, 0, 110, 0, 108, 0,
3801 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3802 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3803 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3804 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3805 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3806 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3807 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3808 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3809 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3810 108, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3811 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3812 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3813 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3814 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3815 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3816 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3817 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3818 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3819 106, 0, 106, 0, 106, 0, 107, 0, 107, 0,
3820 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3821 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3822 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3823 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3824 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3825 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3826 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3827 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3828 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3829 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3830 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3831 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3832 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3833 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3834 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3835 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3836 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3837 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3838 127, 0, 127, 0, 129, 0, 129, 0, 129, 0,
3839 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3840 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3841 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3842 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3843 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3844 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3845 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3846 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3847 129, 0, 129, 0, 129, 0, 129, 0, 130, 0,
3848 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3849 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3850 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3851 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3852 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3853 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3854 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3855 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3856 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3857 130, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3858 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3859 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3860 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3861 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3862 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3863 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3864 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3865 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3866 131, 0, 131, 0, 131, 0, 132, 0, 132, 0,
3867 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3868 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3869 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3870 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3871 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3872 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3873 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3874 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3875 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3876 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3877 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3878 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3879 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3880 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3881 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3882 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3883 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3884 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3885 133, 0, 133, 0, 134, 0, 134, 0, 134, 0,
3886 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3887 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3888 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3889 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3890 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3891 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3892 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3893 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3894 134, 0, 134, 0, 134, 0, 134, 0, 163, 0,
3895 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3896 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3897 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3898 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3899 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3900 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3901 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3902 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3903 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3904 163, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3905 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3906 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3907 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3908 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3909 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3910 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3911 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3912 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3913 592, 0, 592, 0, 592, 0, 591, 0, 591, 0,
3914 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3915 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3916 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3917 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3918 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3919 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3920 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3921 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3922 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3923 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3924 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3925 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3926 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3927 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3928 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3929 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3930 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3931 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3932 589, 0, 589, 0, 587, 0, 587, 0, 587, 0,
3933 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3934 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3935 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3936 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3937 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3938 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3939 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3940 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3941 587, 0, 587, 0, 587, 0, 587, 0, 588, 0,
3942 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3943 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3944 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3945 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3946 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3947 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3948 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3949 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3950 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3951 588, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3952 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3953 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3954 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3955 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3956 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3957 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3958 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3959 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3960 590, 0, 590, 0, 590, 0, 586, 0, 586, 0,
3961 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3962 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3963 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3964 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3965 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3966 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3967 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3968 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3969 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3970 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3971 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3972 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3973 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3974 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3975 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3976 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3977 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3978 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3979 585, 0, 585, 0, 593, 0, 593, 0, 593, 0,
3980 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3981 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3982 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3983 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3984 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3985 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3986 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3987 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3988 593, 0, 593, 0, 593, 0, 593, 0, 147, 0,
3989 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3990 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3991 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3992 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3993 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3994 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3995 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3996 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3997 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3998 147, 0, 621, 0, 621, 0, 621, 0, 621, 0,
3999 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4000 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4001 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4002 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4003 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4004 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4005 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4006 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
4007 621, 0, 621, 0, 621, 0, 619, 0, 619, 0,
4008 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4009 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4010 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4011 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4012 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4013 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4014 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4015 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4016 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4017 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4018 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4019 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4020 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4021 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4022 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4023 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4024 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4025 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4026 618, 0, 618, 0, 620, 0, 620, 0, 620, 0,
4027 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4028 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4029 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4030 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4031 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4032 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4033 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4034 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4035 620, 0, 620, 0, 620, 0, 620, 0, 617, 0,
4036 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4037 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4038 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4039 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4040 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4041 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4042 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4043 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4044 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4045 617, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4046 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4047 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4048 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4049 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4050 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4051 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4052 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4053 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4054 616, 0, 616, 0, 616, 0, 511, 0, 511, 0,
4055 459, 0, 459, 0, 460, 0, 497, 0, 497, 0,
4056 497, 0, 45, 0, 623, 0, 391, 0, 572, 0,
4057 572, 0, 572, 0, 623, 0, 342, 0, 493, 0
4058 };
4059
4060 /* Error token number */
4061 #define YYTERROR 1
4062
4063
4064
4065
4066 #undef yynerrs
4067 #define yynerrs (yystackp->yyerrcnt)
4068 #undef yychar
4069 #define yychar (yystackp->yyrawchar)
4070 #undef yylval
4071 #define yylval (yystackp->yyval)
4072 #undef yylloc
4073 #define yylloc (yystackp->yyloc)
4074 #define psi_parser_proc_nerrs yynerrs
4075 #define psi_parser_proc_char yychar
4076 #define psi_parser_proc_lval yylval
4077 #define psi_parser_proc_lloc yylloc
4078
4079 static const int YYEOF = 0;
4080 static const int YYEMPTY = -2;
4081
4082 typedef enum { yyok, yyaccept, yyabort, yyerr } YYRESULTTAG;
4083
4084 #define YYCHK(YYE) \
4085 do { \
4086 YYRESULTTAG yychk_flag = YYE; \
4087 if (yychk_flag != yyok) \
4088 return yychk_flag; \
4089 } while (0)
4090
4091 #if YYDEBUG
4092
4093 # ifndef YYFPRINTF
4094 # define YYFPRINTF fprintf
4095 # endif
4096
4097 /* This macro is provided for backward compatibility. */
4098 #ifndef YY_LOCATION_PRINT
4099 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
4100 #endif
4101
4102
4103 # define YYDPRINTF(Args) \
4104 do { \
4105 if (yydebug) \
4106 YYFPRINTF Args; \
4107 } while (0)
4108
4109
4110 /*-----------------------------------.
4111 | Print this symbol's value on YYO. |
4112 `-----------------------------------*/
4113
4114 static void
4115 yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
4116 {
4117 FILE *yyoutput = yyo;
4118 YYUSE (yyoutput);
4119 YYUSE (P);
4120 YYUSE (tokens);
4121 YYUSE (index);
4122 if (!yyvaluep)
4123 return;
4124 YYUSE (yytype);
4125 }
4126
4127
4128 /*---------------------------.
4129 | Print this symbol on YYO. |
4130 `---------------------------*/
4131
4132 static void
4133 yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
4134 {
4135 YYFPRINTF (yyo, "%s %s (",
4136 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
4137
4138 yy_symbol_value_print (yyo, yytype, yyvaluep, P, tokens, index);
4139 YYFPRINTF (yyo, ")");
4140 }
4141
4142 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
4143 do { \
4144 if (yydebug) \
4145 { \
4146 YYFPRINTF (stderr, "%s ", Title); \
4147 yy_symbol_print (stderr, Type, Value, P, tokens, index); \
4148 YYFPRINTF (stderr, "\n"); \
4149 } \
4150 } while (0)
4151
4152 /* Nonzero means print parse trace. It is left uninitialized so that
4153 multiple parsers can coexist. */
4154 int yydebug;
4155
4156 struct yyGLRStack;
4157 static void yypstack (struct yyGLRStack* yystackp, size_t yyk)
4158 YY_ATTRIBUTE_UNUSED;
4159 static void yypdumpstack (struct yyGLRStack* yystackp)
4160 YY_ATTRIBUTE_UNUSED;
4161
4162 #else /* !YYDEBUG */
4163
4164 # define YYDPRINTF(Args)
4165 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
4166
4167 #endif /* !YYDEBUG */
4168
4169 /* YYINITDEPTH -- initial size of the parser's stacks. */
4170 #ifndef YYINITDEPTH
4171 # define YYINITDEPTH 200
4172 #endif
4173
4174 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
4175 if the built-in stack extension method is used).
4176
4177 Do not make this value too large; the results are undefined if
4178 SIZE_MAX < YYMAXDEPTH * sizeof (GLRStackItem)
4179 evaluated with infinite-precision integer arithmetic. */
4180
4181 #ifndef YYMAXDEPTH
4182 # define YYMAXDEPTH 10000
4183 #endif
4184
4185 /* Minimum number of free items on the stack allowed after an
4186 allocation. This is to allow allocation and initialization
4187 to be completed by functions that call yyexpandGLRStack before the
4188 stack is expanded, thus insuring that all necessary pointers get
4189 properly redirected to new data. */
4190 #define YYHEADROOM 2
4191
4192 #ifndef YYSTACKEXPANDABLE
4193 # define YYSTACKEXPANDABLE 1
4194 #endif
4195
4196 #if YYSTACKEXPANDABLE
4197 # define YY_RESERVE_GLRSTACK(Yystack) \
4198 do { \
4199 if (Yystack->yyspaceLeft < YYHEADROOM) \
4200 yyexpandGLRStack (Yystack); \
4201 } while (0)
4202 #else
4203 # define YY_RESERVE_GLRSTACK(Yystack) \
4204 do { \
4205 if (Yystack->yyspaceLeft < YYHEADROOM) \
4206 yyMemoryExhausted (Yystack); \
4207 } while (0)
4208 #endif
4209
4210
4211 #if YYERROR_VERBOSE
4212
4213 # ifndef yystpcpy
4214 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
4215 # define yystpcpy stpcpy
4216 # else
4217 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
4218 YYDEST. */
4219 static char *
4220 yystpcpy (char *yydest, const char *yysrc)
4221 {
4222 char *yyd = yydest;
4223 const char *yys = yysrc;
4224
4225 while ((*yyd++ = *yys++) != '\0')
4226 continue;
4227
4228 return yyd - 1;
4229 }
4230 # endif
4231 # endif
4232
4233 # ifndef yytnamerr
4234 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
4235 quotes and backslashes, so that it's suitable for yyerror. The
4236 heuristic is that double-quoting is unnecessary unless the string
4237 contains an apostrophe, a comma, or backslash (other than
4238 backslash-backslash). YYSTR is taken from yytname. If YYRES is
4239 null, do not copy; instead, return the length of what the result
4240 would have been. */
4241 static size_t
4242 yytnamerr (char *yyres, const char *yystr)
4243 {
4244 if (*yystr == '"')
4245 {
4246 size_t yyn = 0;
4247 char const *yyp = yystr;
4248
4249 for (;;)
4250 switch (*++yyp)
4251 {
4252 case '\'':
4253 case ',':
4254 goto do_not_strip_quotes;
4255
4256 case '\\':
4257 if (*++yyp != '\\')
4258 goto do_not_strip_quotes;
4259 /* Fall through. */
4260 default:
4261 if (yyres)
4262 yyres[yyn] = *yyp;
4263 yyn++;
4264 break;
4265
4266 case '"':
4267 if (yyres)
4268 yyres[yyn] = '\0';
4269 return yyn;
4270 }
4271 do_not_strip_quotes: ;
4272 }
4273
4274 if (! yyres)
4275 return strlen (yystr);
4276
4277 return (size_t) (yystpcpy (yyres, yystr) - yyres);
4278 }
4279 # endif
4280
4281 #endif /* !YYERROR_VERBOSE */
4282
4283 /** State numbers, as in LALR(1) machine */
4284 typedef int yyStateNum;
4285
4286 /** Rule numbers, as in LALR(1) machine */
4287 typedef int yyRuleNum;
4288
4289 /** Grammar symbol */
4290 typedef int yySymbol;
4291
4292 /** Item references, as in LALR(1) machine */
4293 typedef short yyItemNum;
4294
4295 typedef struct yyGLRState yyGLRState;
4296 typedef struct yyGLRStateSet yyGLRStateSet;
4297 typedef struct yySemanticOption yySemanticOption;
4298 typedef union yyGLRStackItem yyGLRStackItem;
4299 typedef struct yyGLRStack yyGLRStack;
4300
4301 struct yyGLRState {
4302 /** Type tag: always true. */
4303 yybool yyisState;
4304 /** Type tag for yysemantics. If true, yysval applies, otherwise
4305 * yyfirstVal applies. */
4306 yybool yyresolved;
4307 /** Number of corresponding LALR(1) machine state. */
4308 yyStateNum yylrState;
4309 /** Preceding state in this stack */
4310 yyGLRState* yypred;
4311 /** Source position of the last token produced by my symbol */
4312 size_t yyposn;
4313 union {
4314 /** First in a chain of alternative reductions producing the
4315 * non-terminal corresponding to this state, threaded through
4316 * yynext. */
4317 yySemanticOption* yyfirstVal;
4318 /** Semantic value for this state. */
4319 YYSTYPE yysval;
4320 } yysemantics;
4321 };
4322
4323 struct yyGLRStateSet {
4324 yyGLRState** yystates;
4325 /** During nondeterministic operation, yylookaheadNeeds tracks which
4326 * stacks have actually needed the current lookahead. During deterministic
4327 * operation, yylookaheadNeeds[0] is not maintained since it would merely
4328 * duplicate yychar != YYEMPTY. */
4329 yybool* yylookaheadNeeds;
4330 size_t yysize, yycapacity;
4331 };
4332
4333 struct yySemanticOption {
4334 /** Type tag: always false. */
4335 yybool yyisState;
4336 /** Rule number for this reduction */
4337 yyRuleNum yyrule;
4338 /** The last RHS state in the list of states to be reduced. */
4339 yyGLRState* yystate;
4340 /** The lookahead for this reduction. */
4341 int yyrawchar;
4342 YYSTYPE yyval;
4343 /** Next sibling in chain of options. To facilitate merging,
4344 * options are chained in decreasing order by address. */
4345 yySemanticOption* yynext;
4346 };
4347
4348 /** Type of the items in the GLR stack. The yyisState field
4349 * indicates which item of the union is valid. */
4350 union yyGLRStackItem {
4351 yyGLRState yystate;
4352 yySemanticOption yyoption;
4353 };
4354
4355 struct yyGLRStack {
4356 int yyerrState;
4357
4358
4359 int yyerrcnt;
4360 int yyrawchar;
4361 YYSTYPE yyval;
4362
4363 YYJMP_BUF yyexception_buffer;
4364 yyGLRStackItem* yyitems;
4365 yyGLRStackItem* yynextFree;
4366 size_t yyspaceLeft;
4367 yyGLRState* yysplitPoint;
4368 yyGLRState* yylastDeleted;
4369 yyGLRStateSet yytops;
4370 };
4371
4372 #if YYSTACKEXPANDABLE
4373 static void yyexpandGLRStack (yyGLRStack* yystackp);
4374 #endif
4375
4376 static _Noreturn void
4377 yyFail (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char* yymsg)
4378 {
4379 if (yymsg != YY_NULLPTR)
4380 yyerror (P, tokens, index, yymsg);
4381 YYLONGJMP (yystackp->yyexception_buffer, 1);
4382 }
4383
4384 static _Noreturn void
4385 yyMemoryExhausted (yyGLRStack* yystackp)
4386 {
4387 YYLONGJMP (yystackp->yyexception_buffer, 2);
4388 }
4389
4390 #if YYDEBUG || YYERROR_VERBOSE
4391 /** A printable representation of TOKEN. */
4392 static inline const char*
4393 yytokenName (yySymbol yytoken)
4394 {
4395 if (yytoken == YYEMPTY)
4396 return "";
4397
4398 return yytname[yytoken];
4399 }
4400 #endif
4401
4402 /** Fill in YYVSP[YYLOW1 .. YYLOW0-1] from the chain of states starting
4403 * at YYVSP[YYLOW0].yystate.yypred. Leaves YYVSP[YYLOW1].yystate.yypred
4404 * containing the pointer to the next state in the chain. */
4405 static void yyfillin (yyGLRStackItem *, int, int) YY_ATTRIBUTE_UNUSED;
4406 static void
4407 yyfillin (yyGLRStackItem *yyvsp, int yylow0, int yylow1)
4408 {
4409 int i;
4410 yyGLRState *s = yyvsp[yylow0].yystate.yypred;
4411 for (i = yylow0-1; i >= yylow1; i -= 1)
4412 {
4413 #if YYDEBUG
4414 yyvsp[i].yystate.yylrState = s->yylrState;
4415 #endif
4416 yyvsp[i].yystate.yyresolved = s->yyresolved;
4417 if (s->yyresolved)
4418 yyvsp[i].yystate.yysemantics.yysval = s->yysemantics.yysval;
4419 else
4420 /* The effect of using yysval or yyloc (in an immediate rule) is
4421 * undefined. */
4422 yyvsp[i].yystate.yysemantics.yyfirstVal = YY_NULLPTR;
4423 s = yyvsp[i].yystate.yypred = s->yypred;
4424 }
4425 }
4426
4427 /* Do nothing if YYNORMAL or if *YYLOW <= YYLOW1. Otherwise, fill in
4428 * YYVSP[YYLOW1 .. *YYLOW-1] as in yyfillin and set *YYLOW = YYLOW1.
4429 * For convenience, always return YYLOW1. */
4430 static inline int yyfill (yyGLRStackItem *, int *, int, yybool)
4431 YY_ATTRIBUTE_UNUSED;
4432 static inline int
4433 yyfill (yyGLRStackItem *yyvsp, int *yylow, int yylow1, yybool yynormal)
4434 {
4435 if (!yynormal && yylow1 < *yylow)
4436 {
4437 yyfillin (yyvsp, *yylow, yylow1);
4438 *yylow = yylow1;
4439 }
4440 return yylow1;
4441 }
4442
4443 /** Perform user action for rule number YYN, with RHS length YYRHSLEN,
4444 * and top stack item YYVSP. YYLVALP points to place to put semantic
4445 * value ($$), and yylocp points to place for location information
4446 * (@$). Returns yyok for normal return, yyaccept for YYACCEPT,
4447 * yyerr for YYERROR, yyabort for YYABORT. */
4448 static YYRESULTTAG
4449 yyuserAction (yyRuleNum yyn, int yyrhslen, yyGLRStackItem* yyvsp,
4450 yyGLRStack* yystackp,
4451 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
4452 {
4453 yybool yynormal YY_ATTRIBUTE_UNUSED = (yybool) (yystackp->yysplitPoint == YY_NULLPTR);
4454 int yylow;
4455 YYUSE (yyvalp);
4456 YYUSE (P);
4457 YYUSE (tokens);
4458 YYUSE (index);
4459 YYUSE (yyrhslen);
4460 # undef yyerrok
4461 # define yyerrok (yystackp->yyerrState = 0)
4462 # undef YYACCEPT
4463 # define YYACCEPT return yyaccept
4464 # undef YYABORT
4465 # define YYABORT return yyabort
4466 # undef YYERROR
4467 # define YYERROR return yyerrok, yyerr
4468 # undef YYRECOVERING
4469 # define YYRECOVERING() (yystackp->yyerrState != 0)
4470 # undef yyclearin
4471 # define yyclearin (yychar = YYEMPTY)
4472 # undef YYFILL
4473 # define YYFILL(N) yyfill (yyvsp, &yylow, (N), yynormal)
4474 # undef YYBACKUP
4475 # define YYBACKUP(Token, Value) \
4476 return yyerror (P, tokens, index, YY_("syntax error: cannot back up")), \
4477 yyerrok, yyerr
4478
4479 yylow = 1;
4480 if (yyrhslen == 0)
4481 *yyvalp = yyval_default;
4482 else
4483 *yyvalp = yyvsp[YYFILL (1-yyrhslen)].yystate.yysemantics.yysval;
4484 switch (yyn)
4485 {
4486 case 287:
4487 #line 427 "src/parser_proc_grammar.y" /* glr.c:821 */
4488 {
4489 if ((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4490 psi_cpp_exp_exec((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), P->preproc, PSI_DATA(P));
4491 psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4492 }
4493 }
4494 #line 4495 "src/parser_proc.c" /* glr.c:821 */
4495 break;
4496
4497 case 288:
4498 #line 433 "src/parser_proc_grammar.y" /* glr.c:821 */
4499 {
4500 char *libname = strdup((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text->val);
4501 P->file.libnames = psi_plist_add(P->file.libnames, &libname);
4502 }
4503 #line 4504 "src/parser_proc.c" /* glr.c:821 */
4504 break;
4505
4506 case 289:
4507 #line 437 "src/parser_proc_grammar.y" /* glr.c:821 */
4508 {
4509 psi_parser_proc_add_const(P, (*(struct psi_const **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4510 }
4511 #line 4512 "src/parser_proc.c" /* glr.c:821 */
4512 break;
4513
4514 case 290:
4515 #line 440 "src/parser_proc_grammar.y" /* glr.c:821 */
4516 {
4517 psi_parser_proc_add_decl(P, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4518 }
4519 #line 4520 "src/parser_proc.c" /* glr.c:821 */
4520 break;
4521
4522 case 291:
4523 #line 443 "src/parser_proc_grammar.y" /* glr.c:821 */
4524 {
4525 psi_parser_proc_add_decl_extvars(P, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4526 }
4527 #line 4528 "src/parser_proc.c" /* glr.c:821 */
4528 break;
4529
4530 case 292:
4531 #line 446 "src/parser_proc_grammar.y" /* glr.c:821 */
4532 {
4533 if (P->flags & PSI_DEBUG) {
4534 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);
4535 }
4536 psi_decl_free(&(*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4537 }
4538 #line 4539 "src/parser_proc.c" /* glr.c:821 */
4539 break;
4540
4541 case 293:
4542 #line 452 "src/parser_proc_grammar.y" /* glr.c:821 */
4543 {
4544 psi_parser_proc_add_typedef(P, (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4545 }
4546 #line 4547 "src/parser_proc.c" /* glr.c:821 */
4547 break;
4548
4549 case 294:
4550 #line 455 "src/parser_proc_grammar.y" /* glr.c:821 */
4551 {
4552 psi_parser_proc_add_struct(P, (*(struct psi_decl_struct **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4553 }
4554 #line 4555 "src/parser_proc.c" /* glr.c:821 */
4555 break;
4556
4557 case 295:
4558 #line 458 "src/parser_proc_grammar.y" /* glr.c:821 */
4559 {
4560 psi_parser_proc_add_union(P, (*(struct psi_decl_union **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4561 }
4562 #line 4563 "src/parser_proc.c" /* glr.c:821 */
4563 break;
4564
4565 case 296:
4566 #line 461 "src/parser_proc_grammar.y" /* glr.c:821 */
4567 {
4568 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4569 }
4570 #line 4571 "src/parser_proc.c" /* glr.c:821 */
4571 break;
4572
4573 case 297:
4574 #line 464 "src/parser_proc_grammar.y" /* glr.c:821 */
4575 {
4576 psi_parser_proc_add_impl(P, (*(struct psi_impl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4577 }
4578 #line 4579 "src/parser_proc.c" /* glr.c:821 */
4579 break;
4580
4581 case 298:
4582 #line 470 "src/parser_proc_grammar.y" /* glr.c:821 */
4583 {
4584 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4585 }
4586 #line 4587 "src/parser_proc.c" /* glr.c:821 */
4587 break;
4588
4589 case 299:
4590 #line 476 "src/parser_proc_grammar.y" /* glr.c:821 */
4591 {
4592 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
4593 }
4594 #line 4595 "src/parser_proc.c" /* glr.c:821 */
4595 break;
4596
4597 case 300:
4598 #line 479 "src/parser_proc_grammar.y" /* glr.c:821 */
4599 {
4600 (*(struct psi_cpp_exp **)(&(*yyvalp))) = (*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4601 }
4602 #line 4603 "src/parser_proc.c" /* glr.c:821 */
4603 break;
4604
4605 case 301:
4606 #line 485 "src/parser_proc_grammar.y" /* glr.c:821 */
4607 {
4608 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4609 struct psi_token *msg = NULL;
4610
4611 if (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0, &msg)) {
4612 size_t index = 1;
4613 struct psi_token *next;
4614
4615 msg = psi_token_copy(msg);
4616 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), index++, &next)) {
4617 struct psi_token *old = msg;
4618 msg = psi_token_cat(" ", 2, msg, next);
4619 psi_token_free(&old);
4620 }
4621 }
4622 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4623
4624 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, msg);
4625 } else {
4626 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, NULL);
4627 }
4628 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4629 }
4630 #line 4631 "src/parser_proc.c" /* glr.c:821 */
4631 break;
4632
4633 case 302:
4634 #line 508 "src/parser_proc_grammar.y" /* glr.c:821 */
4635 {
4636 (*(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))));
4637 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4638 }
4639 #line 4640 "src/parser_proc.c" /* glr.c:821 */
4640 break;
4641
4642 case 303:
4643 #line 512 "src/parser_proc_grammar.y" /* glr.c:821 */
4644 {
4645 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL);
4646 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4647 }
4648 #line 4649 "src/parser_proc.c" /* glr.c:821 */
4649 break;
4650
4651 case 304:
4652 #line 516 "src/parser_proc_grammar.y" /* glr.c:821 */
4653 {
4654 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4655 (*(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))));
4656 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4657 }
4658 #line 4659 "src/parser_proc.c" /* glr.c:821 */
4659 break;
4660
4661 case 305:
4662 #line 521 "src/parser_proc_grammar.y" /* glr.c:821 */
4663 {
4664 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, (*(struct psi_cpp_macro_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4665 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4666 }
4667 #line 4668 "src/parser_proc.c" /* glr.c:821 */
4668 break;
4669
4670 case 306:
4671 #line 525 "src/parser_proc_grammar.y" /* glr.c:821 */
4672 {
4673 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4674 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4675 }
4676 #line 4677 "src/parser_proc.c" /* glr.c:821 */
4677 break;
4678
4679 case 307:
4680 #line 529 "src/parser_proc_grammar.y" /* glr.c:821 */
4681 {
4682 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL);
4683 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4684 }
4685 #line 4686 "src/parser_proc.c" /* glr.c:821 */
4686 break;
4687
4688 case 308:
4689 #line 533 "src/parser_proc_grammar.y" /* glr.c:821 */
4690 {
4691 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4692 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
4693 }
4694 #line 4695 "src/parser_proc.c" /* glr.c:821 */
4695 break;
4696
4697 case 325:
4698 #line 577 "src/parser_proc_grammar.y" /* glr.c:821 */
4699 {
4700 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4701 (*(struct psi_cpp_macro_decl **)(&(*yyvalp))) = psi_cpp_macro_decl_init(NULL, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), NULL);
4702 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4703 }
4704 #line 4705 "src/parser_proc.c" /* glr.c:821 */
4705 break;
4706
4707 case 326:
4708 #line 582 "src/parser_proc_grammar.y" /* glr.c:821 */
4709 {
4710 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4711 (*(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);
4712 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4713 }
4714 #line 4715 "src/parser_proc.c" /* glr.c:821 */
4715 break;
4716
4717 case 327:
4718 #line 587 "src/parser_proc_grammar.y" /* glr.c:821 */
4719 {
4720 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4721 (*(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)));
4722 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4723 }
4724 #line 4725 "src/parser_proc.c" /* glr.c:821 */
4725 break;
4726
4727 case 328:
4728 #line 592 "src/parser_proc_grammar.y" /* glr.c:821 */
4729 {
4730 struct psi_plist *list = psi_plist_init((psi_plist_dtor) psi_token_free);
4731 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4732 (*(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);
4733 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4734 }
4735 #line 4736 "src/parser_proc.c" /* glr.c:821 */
4736 break;
4737
4738 case 329:
4739 #line 601 "src/parser_proc_grammar.y" /* glr.c:821 */
4740 {
4741 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL);
4742 }
4743 #line 4744 "src/parser_proc.c" /* glr.c:821 */
4744 break;
4745
4746 case 330:
4747 #line 604 "src/parser_proc_grammar.y" /* glr.c:821 */
4748 {
4749 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL); /* FIXME */
4750 }
4751 #line 4752 "src/parser_proc.c" /* glr.c:821 */
4752 break;
4753
4754 case 332:
4755 #line 608 "src/parser_proc_grammar.y" /* glr.c:821 */
4756 {
4757 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4758 }
4759 #line 4760 "src/parser_proc.c" /* glr.c:821 */
4760 break;
4761
4762 case 333:
4763 #line 614 "src/parser_proc_grammar.y" /* glr.c:821 */
4764 {
4765 (*(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)));
4766 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4767 (*(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)));
4768 }
4769 #line 4770 "src/parser_proc.c" /* glr.c:821 */
4770 break;
4771
4772 case 334:
4773 #line 619 "src/parser_proc_grammar.y" /* glr.c:821 */
4774 {
4775 (*(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)));
4776 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4777 (*(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)));
4778 }
4779 #line 4780 "src/parser_proc.c" /* glr.c:821 */
4780 break;
4781
4782 case 335:
4783 #line 627 "src/parser_proc_grammar.y" /* glr.c:821 */
4784 {
4785 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4786 }
4787 #line 4788 "src/parser_proc.c" /* glr.c:821 */
4788 break;
4789
4790 case 337:
4791 #line 634 "src/parser_proc_grammar.y" /* glr.c:821 */
4792 {
4793 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4794 (*(struct psi_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)));
4795 }
4796 #line 4797 "src/parser_proc.c" /* glr.c:821 */
4797 break;
4798
4799 case 338:
4800 #line 638 "src/parser_proc_grammar.y" /* glr.c:821 */
4801 {
4802 (*(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)));
4803 (*(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)));
4804 }
4805 #line 4806 "src/parser_proc.c" /* glr.c:821 */
4806 break;
4807
4808 case 339:
4809 #line 645 "src/parser_proc_grammar.y" /* glr.c:821 */
4810 {
4811 (*(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)));
4812 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4813 }
4814 #line 4815 "src/parser_proc.c" /* glr.c:821 */
4815 break;
4816
4817 case 340:
4818 #line 649 "src/parser_proc_grammar.y" /* glr.c:821 */
4819 {
4820 (*(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)));
4821 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4822 }
4823 #line 4824 "src/parser_proc.c" /* glr.c:821 */
4824 break;
4825
4826 case 341:
4827 #line 653 "src/parser_proc_grammar.y" /* glr.c:821 */
4828 {
4829 (*(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)));
4830 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4831 }
4832 #line 4833 "src/parser_proc.c" /* glr.c:821 */
4833 break;
4834
4835 case 342:
4836 #line 657 "src/parser_proc_grammar.y" /* glr.c:821 */
4837 {
4838 (*(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)));
4839 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4840 }
4841 #line 4842 "src/parser_proc.c" /* glr.c:821 */
4842 break;
4843
4844 case 343:
4845 #line 662 "src/parser_proc_grammar.y" /* glr.c:821 */
4846 {
4847 {
4848 uint8_t exists;
4849
4850 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4851 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4852 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_DEFINED, &exists, 0));
4853 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4854 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4855 }
4856 }
4857 #line 4858 "src/parser_proc.c" /* glr.c:821 */
4858 break;
4859
4860 case 344:
4861 #line 673 "src/parser_proc_grammar.y" /* glr.c:821 */
4862 {
4863 {
4864 uint8_t exists;
4865
4866 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4867 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4868 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_DEFINED, &exists, 0));
4869 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4870 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4871 }
4872 }
4873 #line 4874 "src/parser_proc.c" /* glr.c:821 */
4874 break;
4875
4876 case 345:
4877 #line 684 "src/parser_proc_grammar.y" /* glr.c:821 */
4878 {
4879 (*(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));
4880 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4881 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4882 }
4883 #line 4884 "src/parser_proc.c" /* glr.c:821 */
4884 break;
4885
4886 case 346:
4887 #line 689 "src/parser_proc_grammar.y" /* glr.c:821 */
4888 {
4889 (*(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));
4890 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4891 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4892 }
4893 #line 4894 "src/parser_proc.c" /* glr.c:821 */
4894 break;
4895
4896 case 347:
4897 #line 694 "src/parser_proc_grammar.y" /* glr.c:821 */
4898 {
4899 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4900 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4901 }
4902 #line 4903 "src/parser_proc.c" /* glr.c:821 */
4903 break;
4904
4905 case 348:
4906 #line 698 "src/parser_proc_grammar.y" /* glr.c:821 */
4907 {
4908 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4909 (*(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));
4910 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4911 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4912 }
4913 #line 4914 "src/parser_proc.c" /* glr.c:821 */
4914 break;
4915
4916 case 349:
4917 #line 704 "src/parser_proc_grammar.y" /* glr.c:821 */
4918 {
4919 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4920 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_FUNCTION,
4921 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));
4922 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4923 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4924 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->data.call->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4925 }
4926 #line 4927 "src/parser_proc.c" /* glr.c:821 */
4927 break;
4928
4929 case 350:
4930 #line 715 "src/parser_proc_grammar.y" /* glr.c:821 */
4931 {
4932 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4933 }
4934 #line 4935 "src/parser_proc.c" /* glr.c:821 */
4935 break;
4936
4937 case 352:
4938 #line 722 "src/parser_proc_grammar.y" /* glr.c:821 */
4939 {
4940 /* TODO: clang include test macros */
4941 uint8_t no = 1;
4942 struct psi_num_exp *exp = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8, &no, 0));
4943 exp->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4944 exp->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4945 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_num_exp_free), &exp);
4946 }
4947 #line 4948 "src/parser_proc.c" /* glr.c:821 */
4948 break;
4949
4950 case 353:
4951 #line 730 "src/parser_proc_grammar.y" /* glr.c:821 */
4952 {
4953 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_num_exp_free),
4954 &(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4955 }
4956 #line 4957 "src/parser_proc.c" /* glr.c:821 */
4957 break;
4958
4959 case 354:
4960 #line 734 "src/parser_proc_grammar.y" /* glr.c:821 */
4961 {
4962 (*(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)));
4963 }
4964 #line 4965 "src/parser_proc.c" /* glr.c:821 */
4965 break;
4966
4967 case 355:
4968 #line 740 "src/parser_proc_grammar.y" /* glr.c:821 */
4969 {
4970 (*(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)));
4971 (*(struct psi_const **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4972 }
4973 #line 4974 "src/parser_proc.c" /* glr.c:821 */
4974 break;
4975
4976 case 356:
4977 #line 744 "src/parser_proc_grammar.y" /* glr.c:821 */
4978 {
4979 (*(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)));
4980 (*(struct psi_const **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4981 }
4982 #line 4983 "src/parser_proc.c" /* glr.c:821 */
4983 break;
4984
4985 case 357:
4986 #line 751 "src/parser_proc_grammar.y" /* glr.c:821 */
4987 {
4988 (*(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);
4989 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4990 }
4991 #line 4992 "src/parser_proc.c" /* glr.c:821 */
4992 break;
4993
4994 case 358:
4995 #line 755 "src/parser_proc_grammar.y" /* glr.c:821 */
4996 {
4997 (*(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)));
4998 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4999 }
5000 #line 5001 "src/parser_proc.c" /* glr.c:821 */
5001 break;
5002
5003 case 359:
5004 #line 759 "src/parser_proc_grammar.y" /* glr.c:821 */
5005 {
5006 (*(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);
5007 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5008 }
5009 #line 5010 "src/parser_proc.c" /* glr.c:821 */
5010 break;
5011
5012 case 363:
5013 #line 772 "src/parser_proc_grammar.y" /* glr.c:821 */
5014 {
5015 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5016 }
5017 #line 5018 "src/parser_proc.c" /* glr.c:821 */
5018 break;
5019
5020 case 364:
5021 #line 786 "src/parser_proc_grammar.y" /* glr.c:821 */
5022 {
5023 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5024 }
5025 #line 5026 "src/parser_proc.c" /* glr.c:821 */
5026 break;
5027
5028 case 365:
5029 #line 792 "src/parser_proc_grammar.y" /* glr.c:821 */
5030 {
5031 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5032 }
5033 #line 5034 "src/parser_proc.c" /* glr.c:821 */
5034 break;
5035
5036 case 366:
5037 #line 795 "src/parser_proc_grammar.y" /* glr.c:821 */
5038 {
5039 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5040 }
5041 #line 5042 "src/parser_proc.c" /* glr.c:821 */
5042 break;
5043
5044 case 367:
5045 #line 801 "src/parser_proc_grammar.y" /* glr.c:821 */
5046 {
5047 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5048 }
5049 #line 5050 "src/parser_proc.c" /* glr.c:821 */
5050 break;
5051
5052 case 368:
5053 #line 804 "src/parser_proc_grammar.y" /* glr.c:821 */
5054 {
5055 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5056 }
5057 #line 5058 "src/parser_proc.c" /* glr.c:821 */
5058 break;
5059
5060 case 370:
5061 #line 811 "src/parser_proc_grammar.y" /* glr.c:821 */
5062 {
5063 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5064 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
5065 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
5066 );
5067 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
5068 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5069 }
5070 #line 5071 "src/parser_proc.c" /* glr.c:821 */
5071 break;
5072
5073 case 371:
5074 #line 819 "src/parser_proc_grammar.y" /* glr.c:821 */
5075 {
5076 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5077 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5078 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->name),
5079 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0, 0)
5080 );
5081 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5082 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->token);
5083 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5084 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5085 }
5086 #line 5087 "src/parser_proc.c" /* glr.c:821 */
5087 break;
5088
5089 case 372:
5090 #line 830 "src/parser_proc_grammar.y" /* glr.c:821 */
5091 {
5092 (*(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)));
5093 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
5094 (*(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)));
5095 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5096 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
5097 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
5098 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
5099 }
5100 #line 5101 "src/parser_proc.c" /* glr.c:821 */
5101 break;
5102
5103 case 373:
5104 #line 839 "src/parser_proc_grammar.y" /* glr.c:821 */
5105 {
5106 (*(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)));
5107 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
5108 (*(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)));
5109 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5110 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
5111 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
5112 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
5113 }
5114 #line 5115 "src/parser_proc.c" /* glr.c:821 */
5115 break;
5116
5117 case 375:
5118 #line 852 "src/parser_proc_grammar.y" /* glr.c:821 */
5119 {
5120 (*(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));
5121 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
5122 }
5123 #line 5124 "src/parser_proc.c" /* glr.c:821 */
5124 break;
5125
5126 case 376:
5127 #line 856 "src/parser_proc_grammar.y" /* glr.c:821 */
5128 {
5129 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5130 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->name),
5131 psi_decl_var_init(NULL, 0, 0)
5132 );
5133 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
5134 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
5135 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5136 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5137 }
5138 #line 5139 "src/parser_proc.c" /* glr.c:821 */
5139 break;
5140
5141 case 377:
5142 #line 866 "src/parser_proc_grammar.y" /* glr.c:821 */
5143 {
5144 (*(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));
5145 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5146 (*(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)));
5147 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5148 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
5149 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
5150 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
5151 }
5152 #line 5153 "src/parser_proc.c" /* glr.c:821 */
5153 break;
5154
5155 case 378:
5156 #line 875 "src/parser_proc_grammar.y" /* glr.c:821 */
5157 {
5158 (*(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));
5159 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5160 (*(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)));
5161 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5162 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
5163 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
5164 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
5165 }
5166 #line 5167 "src/parser_proc.c" /* glr.c:821 */
5167 break;
5168
5169 case 380:
5170 #line 888 "src/parser_proc_grammar.y" /* glr.c:821 */
5171 {
5172 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5173 }
5174 #line 5175 "src/parser_proc.c" /* glr.c:821 */
5175 break;
5176
5177 case 381:
5178 #line 891 "src/parser_proc_grammar.y" /* glr.c:821 */
5179 {
5180 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5181 }
5182 #line 5183 "src/parser_proc.c" /* glr.c:821 */
5183 break;
5184
5185 case 384:
5186 #line 902 "src/parser_proc_grammar.y" /* glr.c:821 */
5187 {
5188 (*(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);
5189 (*(struct psi_decl_type **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5190 }
5191 #line 5192 "src/parser_proc.c" /* glr.c:821 */
5192 break;
5193
5194 case 386:
5195 #line 910 "src/parser_proc_grammar.y" /* glr.c:821 */
5196 {
5197 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5198 (*(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);
5199 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5200 }
5201 #line 5202 "src/parser_proc.c" /* glr.c:821 */
5202 break;
5203
5204 case 387:
5205 #line 915 "src/parser_proc_grammar.y" /* glr.c:821 */
5206 {
5207 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5208 (*(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);
5209 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5210 }
5211 #line 5212 "src/parser_proc.c" /* glr.c:821 */
5212 break;
5213
5214 case 388:
5215 #line 920 "src/parser_proc_grammar.y" /* glr.c:821 */
5216 {
5217 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5218 (*(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);
5219 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5220 }
5221 #line 5222 "src/parser_proc.c" /* glr.c:821 */
5222 break;
5223
5224 case 391:
5225 #line 930 "src/parser_proc_grammar.y" /* glr.c:821 */
5226 {
5227 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5228 }
5229 #line 5230 "src/parser_proc.c" /* glr.c:821 */
5230 break;
5231
5232 case 392:
5233 #line 933 "src/parser_proc_grammar.y" /* glr.c:821 */
5234 {
5235 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5236 }
5237 #line 5238 "src/parser_proc.c" /* glr.c:821 */
5238 break;
5239
5240 case 393:
5241 #line 939 "src/parser_proc_grammar.y" /* glr.c:821 */
5242 {
5243 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5244 }
5245 #line 5246 "src/parser_proc.c" /* glr.c:821 */
5246 break;
5247
5248 case 394:
5249 #line 942 "src/parser_proc_grammar.y" /* glr.c:821 */
5250 {
5251 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5252 }
5253 #line 5254 "src/parser_proc.c" /* glr.c:821 */
5254 break;
5255
5256 case 395:
5257 #line 945 "src/parser_proc_grammar.y" /* glr.c:821 */
5258 {
5259 (*(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)));
5260 }
5261 #line 5262 "src/parser_proc.c" /* glr.c:821 */
5262 break;
5263
5264 case 398:
5265 #line 956 "src/parser_proc_grammar.y" /* glr.c:821 */
5266 {
5267 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5268 }
5269 #line 5270 "src/parser_proc.c" /* glr.c:821 */
5270 break;
5271
5272 case 399:
5273 #line 959 "src/parser_proc_grammar.y" /* glr.c:821 */
5274 {
5275 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5276 }
5277 #line 5278 "src/parser_proc.c" /* glr.c:821 */
5278 break;
5279
5280 case 400:
5281 #line 962 "src/parser_proc_grammar.y" /* glr.c:821 */
5282 {
5283 (*(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)));
5284 }
5285 #line 5286 "src/parser_proc.c" /* glr.c:821 */
5286 break;
5287
5288 case 401:
5289 #line 968 "src/parser_proc_grammar.y" /* glr.c:821 */
5290 {
5291 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5292 }
5293 #line 5294 "src/parser_proc.c" /* glr.c:821 */
5294 break;
5295
5296 case 402:
5297 #line 971 "src/parser_proc_grammar.y" /* glr.c:821 */
5298 {
5299 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5300 }
5301 #line 5302 "src/parser_proc.c" /* glr.c:821 */
5302 break;
5303
5304 case 403:
5305 #line 974 "src/parser_proc_grammar.y" /* glr.c:821 */
5306 {
5307 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5308 (*(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)));
5309 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5310 } else {
5311 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5312 }
5313 }
5314 #line 5315 "src/parser_proc.c" /* glr.c:821 */
5315 break;
5316
5317 case 404:
5318 #line 982 "src/parser_proc_grammar.y" /* glr.c:821 */
5319 {
5320 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5321 (*(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)));
5322 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5323 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5324 } else {
5325 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5326 }
5327 }
5328 #line 5329 "src/parser_proc.c" /* glr.c:821 */
5329 break;
5330
5331 case 405:
5332 #line 994 "src/parser_proc_grammar.y" /* glr.c:821 */
5333 {
5334 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5335 }
5336 #line 5337 "src/parser_proc.c" /* glr.c:821 */
5337 break;
5338
5339 case 406:
5340 #line 997 "src/parser_proc_grammar.y" /* glr.c:821 */
5341 {
5342 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5343 }
5344 #line 5345 "src/parser_proc.c" /* glr.c:821 */
5345 break;
5346
5347 case 407:
5348 #line 1000 "src/parser_proc_grammar.y" /* glr.c:821 */
5349 {
5350 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5351 }
5352 #line 5353 "src/parser_proc.c" /* glr.c:821 */
5353 break;
5354
5355 case 408:
5356 #line 1003 "src/parser_proc_grammar.y" /* glr.c:821 */
5357 {
5358 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5359 (*(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)));
5360 } else {
5361 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5362 }
5363 }
5364 #line 5365 "src/parser_proc.c" /* glr.c:821 */
5365 break;
5366
5367 case 409:
5368 #line 1010 "src/parser_proc_grammar.y" /* glr.c:821 */
5369 {
5370 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5371 }
5372 #line 5373 "src/parser_proc.c" /* glr.c:821 */
5373 break;
5374
5375 case 410:
5376 #line 1013 "src/parser_proc_grammar.y" /* glr.c:821 */
5377 {
5378 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5379 (*(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)));
5380 } else {
5381 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5382 }
5383 }
5384 #line 5385 "src/parser_proc.c" /* glr.c:821 */
5385 break;
5386
5387 case 411:
5388 #line 1023 "src/parser_proc_grammar.y" /* glr.c:821 */
5389 {
5390 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5391 }
5392 #line 5393 "src/parser_proc.c" /* glr.c:821 */
5393 break;
5394
5395 case 413:
5396 #line 1029 "src/parser_proc_grammar.y" /* glr.c:821 */
5397 {
5398 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5399 }
5400 #line 5401 "src/parser_proc.c" /* glr.c:821 */
5401 break;
5402
5403 case 417:
5404 #line 1038 "src/parser_proc_grammar.y" /* glr.c:821 */
5405 {
5406 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5407 }
5408 #line 5409 "src/parser_proc.c" /* glr.c:821 */
5409 break;
5410
5411 case 418:
5412 #line 1041 "src/parser_proc_grammar.y" /* glr.c:821 */
5413 {
5414 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5415 }
5416 #line 5417 "src/parser_proc.c" /* glr.c:821 */
5417 break;
5418
5419 case 419:
5420 #line 1044 "src/parser_proc_grammar.y" /* glr.c:821 */
5421 {
5422 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5423 (*(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)));
5424 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5425 } else {
5426 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5427 }
5428 }
5429 #line 5430 "src/parser_proc.c" /* glr.c:821 */
5430 break;
5431
5432 case 420:
5433 #line 1055 "src/parser_proc_grammar.y" /* glr.c:821 */
5434 {
5435 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5436 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5437 (*(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);
5438 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5439 }
5440 }
5441 #line 5442 "src/parser_proc.c" /* glr.c:821 */
5442 break;
5443
5444 case 421:
5445 #line 1062 "src/parser_proc_grammar.y" /* glr.c:821 */
5446 {
5447 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5448 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5449 (*(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);
5450 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5451 }
5452 }
5453 #line 5454 "src/parser_proc.c" /* glr.c:821 */
5454 break;
5455
5456 case 422:
5457 #line 1072 "src/parser_proc_grammar.y" /* glr.c:821 */
5458 {
5459 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5460 }
5461 #line 5462 "src/parser_proc.c" /* glr.c:821 */
5462 break;
5463
5464 case 423:
5465 #line 1075 "src/parser_proc_grammar.y" /* glr.c:821 */
5466 {
5467 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5468 }
5469 #line 5470 "src/parser_proc.c" /* glr.c:821 */
5470 break;
5471
5472 case 424:
5473 #line 1081 "src/parser_proc_grammar.y" /* glr.c:821 */
5474 {
5475 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5476 }
5477 #line 5478 "src/parser_proc.c" /* glr.c:821 */
5478 break;
5479
5480 case 425:
5481 #line 1084 "src/parser_proc_grammar.y" /* glr.c:821 */
5482 {
5483 (*(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)));
5484 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5485 }
5486 #line 5487 "src/parser_proc.c" /* glr.c:821 */
5487 break;
5488
5489 case 426:
5490 #line 1091 "src/parser_proc_grammar.y" /* glr.c:821 */
5491 {
5492 struct psi_plist *list = psi_plist_init((psi_plist_dtor) psi_decl_extvar_free);
5493
5494 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))) {
5495 size_t i = 0;
5496 struct psi_decl_var *var;
5497
5498 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), i++, &var)) {
5499 if (psi_decl_extvar_is_blacklisted(var->name->val)) {
5500 psi_decl_var_free(&var);
5501 } else {
5502 struct psi_decl_extvar *evar = psi_decl_extvar_init(
5503 psi_decl_arg_init(psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type), var));
5504 list = psi_plist_add(list, &evar);
5505 }
5506 }
5507 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5508 }
5509
5510 if (psi_decl_extvar_is_blacklisted((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->var->name->val)) {
5511 psi_decl_arg_free(&(*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5512 } else {
5513 struct psi_decl_extvar *evar = psi_decl_extvar_init((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5514
5515 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5516 evar->redir = zend_string_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
5517 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5518 }
5519 list = psi_plist_add(list, &evar);
5520 }
5521
5522 (*(struct psi_plist **)(&(*yyvalp))) = list;
5523 }
5524 #line 5525 "src/parser_proc.c" /* glr.c:821 */
5525 break;
5526
5527 case 427:
5528 #line 1127 "src/parser_proc_grammar.y" /* glr.c:821 */
5529 {
5530 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5531 }
5532 #line 5533 "src/parser_proc.c" /* glr.c:821 */
5533 break;
5534
5535 case 428:
5536 #line 1130 "src/parser_proc_grammar.y" /* glr.c:821 */
5537 {
5538 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5539 }
5540 #line 5541 "src/parser_proc.c" /* glr.c:821 */
5541 break;
5542
5543 case 429:
5544 #line 1136 "src/parser_proc_grammar.y" /* glr.c:821 */
5545 {
5546 (*(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)));
5547 }
5548 #line 5549 "src/parser_proc.c" /* glr.c:821 */
5549 break;
5550
5551 case 430:
5552 #line 1139 "src/parser_proc_grammar.y" /* glr.c:821 */
5553 {
5554 (*(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)));
5555 }
5556 #line 5557 "src/parser_proc.c" /* glr.c:821 */
5557 break;
5558
5559 case 431:
5560 #line 1145 "src/parser_proc_grammar.y" /* glr.c:821 */
5561 {
5562 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5563 }
5564 #line 5565 "src/parser_proc.c" /* glr.c:821 */
5565 break;
5566
5567 case 444:
5568 #line 1175 "src/parser_proc_grammar.y" /* glr.c:821 */
5569 {
5570 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5571 (*(struct psi_decl **)(&(*yyvalp)))->abi = psi_decl_abi_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
5572 }
5573 #line 5574 "src/parser_proc.c" /* glr.c:821 */
5574 break;
5575
5576 case 447:
5577 #line 1187 "src/parser_proc_grammar.y" /* glr.c:821 */
5578 {
5579 (*(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)));
5580 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5581 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5582 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5583 }
5584 }
5585 #line 5586 "src/parser_proc.c" /* glr.c:821 */
5586 break;
5587
5588 case 448:
5589 #line 1194 "src/parser_proc_grammar.y" /* glr.c:821 */
5590 {
5591 (*(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)));
5592 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
5593 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5594 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5595 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5596 }
5597 }
5598 #line 5599 "src/parser_proc.c" /* glr.c:821 */
5599 break;
5600
5601 case 449:
5602 #line 1205 "src/parser_proc_grammar.y" /* glr.c:821 */
5603 {
5604 (*(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)));
5605 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5606 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5607 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5608 }
5609 }
5610 #line 5611 "src/parser_proc.c" /* glr.c:821 */
5611 break;
5612
5613 case 450:
5614 #line 1212 "src/parser_proc_grammar.y" /* glr.c:821 */
5615 {
5616 (*(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)));
5617 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
5618 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5619 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5620 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5621 }
5622 }
5623 #line 5624 "src/parser_proc.c" /* glr.c:821 */
5624 break;
5625
5626 case 451:
5627 #line 1220 "src/parser_proc_grammar.y" /* glr.c:821 */
5628 {
5629 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval));
5630 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5631
5632 struct psi_token *type_token = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval))), 1, "rval");
5633 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));
5634 struct psi_decl *rval_decl = psi_decl_init(rval_func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5635
5636 rval_func->var->token = psi_token_copy(type_token);
5637 rval_func->token = psi_token_copy(type_token);
5638 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5639 rval_func->var->pointer_level += 1;
5640 rval_func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5641 }
5642
5643 struct psi_decl_type *type = psi_decl_type_init(PSI_T_FUNCTION, type_token->text);
5644 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));
5645
5646 type->real.func = rval_decl;
5647 func->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval)));
5648 func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval)));
5649
5650 (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init(func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
5651 }
5652 #line 5653 "src/parser_proc.c" /* glr.c:821 */
5653 break;
5654
5655 case 452:
5656 #line 1244 "src/parser_proc_grammar.y" /* glr.c:821 */
5657 {
5658 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-12)].yystate.yysemantics.yysval));
5659 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval));
5660 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5661
5662 struct psi_token *type_token = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval))), 1, "rval");
5663 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));
5664 struct psi_decl *rval_decl = psi_decl_init(rval_func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5665
5666 rval_func->var->token = psi_token_copy(type_token);
5667 rval_func->token = psi_token_copy(type_token);
5668 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5669 rval_func->var->pointer_level += 1;
5670 rval_func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5671 }
5672
5673 struct psi_decl_type *type = psi_decl_type_init(PSI_T_FUNCTION, type_token->text);
5674 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));
5675
5676 type->real.func = rval_decl;
5677 func->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval)));
5678 func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval)));
5679 type->token = type_token;
5680
5681 (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init(func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
5682 }
5683 #line 5684 "src/parser_proc.c" /* glr.c:821 */
5684 break;
5685
5686 case 453:
5687 #line 1273 "src/parser_proc_grammar.y" /* glr.c:821 */
5688 {
5689 (*(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)));
5690 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5691 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5692 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5693 }
5694 }
5695 #line 5696 "src/parser_proc.c" /* glr.c:821 */
5696 break;
5697
5698 case 454:
5699 #line 1280 "src/parser_proc_grammar.y" /* glr.c:821 */
5700 {
5701 (*(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)));
5702 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
5703 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5704 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5705 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5706 }
5707 }
5708 #line 5709 "src/parser_proc.c" /* glr.c:821 */
5709 break;
5710
5711 case 455:
5712 #line 1291 "src/parser_proc_grammar.y" /* glr.c:821 */
5713 {
5714 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5715 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5716 (*(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));
5717 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5718 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5719 }
5720 #line 5721 "src/parser_proc.c" /* glr.c:821 */
5721 break;
5722
5723 case 456:
5724 #line 1337 "src/parser_proc_grammar.y" /* glr.c:821 */
5725 {
5726 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5727 (*(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));
5728 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5729 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5730 }
5731 #line 5732 "src/parser_proc.c" /* glr.c:821 */
5732 break;
5733
5734 case 458:
5735 #line 1393 "src/parser_proc_grammar.y" /* glr.c:821 */
5736 {
5737 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5738 }
5739 #line 5740 "src/parser_proc.c" /* glr.c:821 */
5740 break;
5741
5742 case 459:
5743 #line 1396 "src/parser_proc_grammar.y" /* glr.c:821 */
5744 {
5745 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5746 }
5747 #line 5748 "src/parser_proc.c" /* glr.c:821 */
5748 break;
5749
5750 case 460:
5751 #line 1399 "src/parser_proc_grammar.y" /* glr.c:821 */
5752 {
5753 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5754 }
5755 #line 5756 "src/parser_proc.c" /* glr.c:821 */
5756 break;
5757
5758 case 461:
5759 #line 1405 "src/parser_proc_grammar.y" /* glr.c:821 */
5760 {
5761 (*(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)));
5762 }
5763 #line 5764 "src/parser_proc.c" /* glr.c:821 */
5764 break;
5765
5766 case 462:
5767 #line 1408 "src/parser_proc_grammar.y" /* glr.c:821 */
5768 {
5769 (*(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)));
5770 }
5771 #line 5772 "src/parser_proc.c" /* glr.c:821 */
5772 break;
5773
5774 case 463:
5775 #line 1414 "src/parser_proc_grammar.y" /* glr.c:821 */
5776 {
5777 char digest[17];
5778 struct psi_token *name;
5779
5780 psi_token_hash((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token, digest);
5781 name = psi_token_append("@", psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token), 2, "funct", digest);
5782
5783 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5784 psi_decl_type_init(PSI_T_FUNCTION, name->text),
5785 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
5786 );
5787 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = name;
5788 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
5789 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5790 }
5791 #line 5792 "src/parser_proc.c" /* glr.c:821 */
5792 break;
5793
5794 case 464:
5795 #line 1429 "src/parser_proc_grammar.y" /* glr.c:821 */
5796 {
5797 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5798 }
5799 #line 5800 "src/parser_proc.c" /* glr.c:821 */
5800 break;
5801
5802 case 465:
5803 #line 1432 "src/parser_proc_grammar.y" /* glr.c:821 */
5804 {
5805 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5806 (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)),
5807 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)))
5808 );
5809 }
5810 #line 5811 "src/parser_proc.c" /* glr.c:821 */
5811 break;
5812
5813 case 466:
5814 #line 1461 "src/parser_proc_grammar.y" /* glr.c:821 */
5815 {
5816 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5817 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
5818 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
5819 );
5820 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
5821 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5822 }
5823 #line 5824 "src/parser_proc.c" /* glr.c:821 */
5824 break;
5825
5826 case 467:
5827 #line 1469 "src/parser_proc_grammar.y" /* glr.c:821 */
5828 {
5829 (*(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)));
5830 }
5831 #line 5832 "src/parser_proc.c" /* glr.c:821 */
5832 break;
5833
5834 case 468:
5835 #line 1497 "src/parser_proc_grammar.y" /* glr.c:821 */
5836 {
5837 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5838 (*(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)));
5839 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5840 }
5841 #line 5842 "src/parser_proc.c" /* glr.c:821 */
5842 break;
5843
5844 case 469:
5845 #line 1502 "src/parser_proc_grammar.y" /* glr.c:821 */
5846 {
5847 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5848 (*(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)));
5849 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5850 }
5851 #line 5852 "src/parser_proc.c" /* glr.c:821 */
5852 break;
5853
5854 case 470:
5855 #line 1510 "src/parser_proc_grammar.y" /* glr.c:821 */
5856 {
5857 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5858 (*(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)));
5859 (*(struct psi_decl_union **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
5860 (*(struct psi_decl_union **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
5861 (*(struct psi_decl_union **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5862 }
5863 #line 5864 "src/parser_proc.c" /* glr.c:821 */
5864 break;
5865
5866 case 471:
5867 #line 1520 "src/parser_proc_grammar.y" /* glr.c:821 */
5868 {
5869 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5870 (*(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)));
5871 (*(struct psi_decl_struct **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
5872 (*(struct psi_decl_struct **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
5873 (*(struct psi_decl_struct **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5874 }
5875 #line 5876 "src/parser_proc.c" /* glr.c:821 */
5876 break;
5877
5878 case 472:
5879 #line 1530 "src/parser_proc_grammar.y" /* glr.c:821 */
5880 {
5881 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5882 }
5883 #line 5884 "src/parser_proc.c" /* glr.c:821 */
5884 break;
5885
5886 case 474:
5887 #line 1537 "src/parser_proc_grammar.y" /* glr.c:821 */
5888 {
5889 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5890 }
5891 #line 5892 "src/parser_proc.c" /* glr.c:821 */
5892 break;
5893
5894 case 475:
5895 #line 1543 "src/parser_proc_grammar.y" /* glr.c:821 */
5896 {
5897 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5898 (*(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)));
5899 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5900 size_t i = 0;
5901 struct psi_decl_arg *arg;
5902
5903 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
5904 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
5905 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
5906 }
5907 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5908 }
5909 }
5910 #line 5911 "src/parser_proc.c" /* glr.c:821 */
5911 break;
5912
5913 case 476:
5914 #line 1557 "src/parser_proc_grammar.y" /* glr.c:821 */
5915 {
5916 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5917 (*(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)));
5918 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5919 size_t i = 0;
5920 struct psi_decl_arg *arg;
5921
5922 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
5923 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
5924 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
5925 }
5926 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5927 }
5928 }
5929 #line 5930 "src/parser_proc.c" /* glr.c:821 */
5930 break;
5931
5932 case 477:
5933 #line 1574 "src/parser_proc_grammar.y" /* glr.c:821 */
5934 {
5935 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5936 }
5937 #line 5938 "src/parser_proc.c" /* glr.c:821 */
5938 break;
5939
5940 case 478:
5941 #line 1577 "src/parser_proc_grammar.y" /* glr.c:821 */
5942 {
5943 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5944 }
5945 #line 5946 "src/parser_proc.c" /* glr.c:821 */
5946 break;
5947
5948 case 479:
5949 #line 1583 "src/parser_proc_grammar.y" /* glr.c:821 */
5950 {
5951 {
5952 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5953 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5954 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &arg);
5955 }
5956 }
5957 #line 5958 "src/parser_proc.c" /* glr.c:821 */
5958 break;
5959
5960 case 480:
5961 #line 1590 "src/parser_proc_grammar.y" /* glr.c:821 */
5962 {
5963 {
5964 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5965 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5966 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), &arg);
5967 }
5968 }
5969 #line 5970 "src/parser_proc.c" /* glr.c:821 */
5970 break;
5971
5972 case 481:
5973 #line 1597 "src/parser_proc_grammar.y" /* glr.c:821 */
5974 {
5975 {
5976 struct psi_decl_var *var = psi_decl_var_init(NULL, 0, 0);
5977 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, var);
5978 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5979 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &arg);
5980 }
5981 }
5982 #line 5983 "src/parser_proc.c" /* glr.c:821 */
5983 break;
5984
5985 case 482:
5986 #line 1605 "src/parser_proc_grammar.y" /* glr.c:821 */
5987 {
5988 {
5989 struct psi_decl_var *var = psi_decl_var_init(NULL, 0, 0);
5990 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, var);
5991 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5992 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &arg);
5993 }
5994 }
5995 #line 5996 "src/parser_proc.c" /* glr.c:821 */
5996 break;
5997
5998 case 483:
5999 #line 1616 "src/parser_proc_grammar.y" /* glr.c:821 */
6000 {
6001 (*(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)));
6002 (*(struct psi_decl_enum **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval));
6003 }
6004 #line 6005 "src/parser_proc.c" /* glr.c:821 */
6005 break;
6006
6007 case 484:
6008 #line 1623 "src/parser_proc_grammar.y" /* glr.c:821 */
6009 {
6010 (*(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)));
6011 }
6012 #line 6013 "src/parser_proc.c" /* glr.c:821 */
6013 break;
6014
6015 case 485:
6016 #line 1626 "src/parser_proc_grammar.y" /* glr.c:821 */
6017 {
6018 (*(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)));
6019 }
6020 #line 6021 "src/parser_proc.c" /* glr.c:821 */
6021 break;
6022
6023 case 486:
6024 #line 1632 "src/parser_proc_grammar.y" /* glr.c:821 */
6025 {
6026 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
6027 (*(struct psi_decl_enum_item **)(&(*yyvalp))) = psi_decl_enum_item_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, NULL);
6028 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6029 }
6030 #line 6031 "src/parser_proc.c" /* glr.c:821 */
6031 break;
6032
6033 case 487:
6034 #line 1637 "src/parser_proc_grammar.y" /* glr.c:821 */
6035 {
6036 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
6037 (*(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)));
6038 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6039 }
6040 #line 6041 "src/parser_proc.c" /* glr.c:821 */
6041 break;
6042
6043 case 488:
6044 #line 1645 "src/parser_proc_grammar.y" /* glr.c:821 */
6045 {
6046 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6047 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
6048 }
6049 #line 6050 "src/parser_proc.c" /* glr.c:821 */
6050 break;
6051
6052 case 489:
6053 #line 1649 "src/parser_proc_grammar.y" /* glr.c:821 */
6054 {
6055 (*(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)));
6056 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->token);
6057 }
6058 #line 6059 "src/parser_proc.c" /* glr.c:821 */
6059 break;
6060
6061 case 490:
6062 #line 1653 "src/parser_proc_grammar.y" /* glr.c:821 */
6063 {
6064 (*(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)));
6065 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6066 }
6067 #line 6068 "src/parser_proc.c" /* glr.c:821 */
6068 break;
6069
6070 case 491:
6071 #line 1657 "src/parser_proc_grammar.y" /* glr.c:821 */
6072 {
6073 (*(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)));
6074 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6075 }
6076 #line 6077 "src/parser_proc.c" /* glr.c:821 */
6077 break;
6078
6079 case 492:
6080 #line 1661 "src/parser_proc_grammar.y" /* glr.c:821 */
6081 {
6082 (*(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)));
6083 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6084 }
6085 #line 6086 "src/parser_proc.c" /* glr.c:821 */
6086 break;
6087
6088 case 493:
6089 #line 1665 "src/parser_proc_grammar.y" /* glr.c:821 */
6090 {
6091 (*(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)));
6092 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
6093 }
6094 #line 6095 "src/parser_proc.c" /* glr.c:821 */
6095 break;
6096
6097 case 494:
6098 #line 1672 "src/parser_proc_grammar.y" /* glr.c:821 */
6099 {
6100 (*(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);
6101 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6102 }
6103 #line 6104 "src/parser_proc.c" /* glr.c:821 */
6104 break;
6105
6106 case 495:
6107 #line 1676 "src/parser_proc_grammar.y" /* glr.c:821 */
6108 {
6109 (*(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);
6110 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6111 }
6112 #line 6113 "src/parser_proc.c" /* glr.c:821 */
6113 break;
6114
6115 case 496:
6116 #line 1680 "src/parser_proc_grammar.y" /* glr.c:821 */
6117 {
6118 (*(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);
6119 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6120 }
6121 #line 6122 "src/parser_proc.c" /* glr.c:821 */
6122 break;
6123
6124 case 497:
6125 #line 1684 "src/parser_proc_grammar.y" /* glr.c:821 */
6126 {
6127 (*(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);
6128 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6129 }
6130 #line 6131 "src/parser_proc.c" /* glr.c:821 */
6131 break;
6132
6133 case 498:
6134 #line 1688 "src/parser_proc_grammar.y" /* glr.c:821 */
6135 {
6136 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_NAME, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0);
6137 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
6138 }
6139 #line 6140 "src/parser_proc.c" /* glr.c:821 */
6140 break;
6141
6142 case 499:
6143 #line 1692 "src/parser_proc_grammar.y" /* glr.c:821 */
6144 {
6145 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6146 }
6147 #line 6148 "src/parser_proc.c" /* glr.c:821 */
6148 break;
6149
6150 case 500:
6151 #line 1698 "src/parser_proc_grammar.y" /* glr.c:821 */
6152 {
6153 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
6154 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
6155 }
6156 #line 6157 "src/parser_proc.c" /* glr.c:821 */
6157 break;
6158
6159 case 501:
6160 #line 1702 "src/parser_proc_grammar.y" /* glr.c:821 */
6161 {
6162 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6163 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6164 }
6165 #line 6166 "src/parser_proc.c" /* glr.c:821 */
6166 break;
6167
6168 case 502:
6169 #line 1709 "src/parser_proc_grammar.y" /* glr.c:821 */
6170 {
6171 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6172 }
6173 #line 6174 "src/parser_proc.c" /* glr.c:821 */
6174 break;
6175
6176 case 503:
6177 #line 1712 "src/parser_proc_grammar.y" /* glr.c:821 */
6178 {
6179 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
6180 int8_t sizeof_void_p = sizeof(void *);
6181 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0);
6182 psi_decl_type_free(&(*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6183 } else {
6184 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_SIZEOF, (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), 0);
6185 }
6186 }
6187 #line 6188 "src/parser_proc.c" /* glr.c:821 */
6188 break;
6189
6190 case 504:
6191 #line 1724 "src/parser_proc_grammar.y" /* glr.c:821 */
6192 {
6193 int8_t sizeof_void_p = sizeof(void *);
6194 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0);
6195 }
6196 #line 6197 "src/parser_proc.c" /* glr.c:821 */
6197 break;
6198
6199 case 505:
6200 #line 1728 "src/parser_proc_grammar.y" /* glr.c:821 */
6201 {
6202 int8_t sizeof_a = sizeof('a');
6203 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_a, 0);
6204 }
6205 #line 6206 "src/parser_proc.c" /* glr.c:821 */
6206 break;
6207
6208 case 506:
6209 #line 1732 "src/parser_proc_grammar.y" /* glr.c:821 */
6210 {
6211 uint64_t len = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text->len + 1;
6212 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_UINT64, &len, 0);
6213 }
6214 #line 6215 "src/parser_proc.c" /* glr.c:821 */
6215 break;
6216
6217 case 507:
6218 #line 1739 "src/parser_proc_grammar.y" /* glr.c:821 */
6219 {
6220 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
6221 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6222 } else {
6223 char digest[17];
6224
6225 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
6226 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
6227 }
6228 }
6229 #line 6230 "src/parser_proc.c" /* glr.c:821 */
6230 break;
6231
6232 case 508:
6233 #line 1752 "src/parser_proc_grammar.y" /* glr.c:821 */
6234 {
6235 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
6236 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6237 } else {
6238 char digest[17];
6239
6240 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
6241 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
6242 }
6243 }
6244 #line 6245 "src/parser_proc.c" /* glr.c:821 */
6245 break;
6246
6247 case 509:
6248 #line 1765 "src/parser_proc_grammar.y" /* glr.c:821 */
6249 {
6250 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
6251 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6252 } else {
6253 char digest[17];
6254
6255 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
6256 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
6257 }
6258 }
6259 #line 6260 "src/parser_proc.c" /* glr.c:821 */
6260 break;
6261
6262 case 510:
6263 #line 1778 "src/parser_proc_grammar.y" /* glr.c:821 */
6264 {
6265 (*(struct psi_token **)(&(*yyvalp))) = NULL;
6266 }
6267 #line 6268 "src/parser_proc.c" /* glr.c:821 */
6268 break;
6269
6270 case 511:
6271 #line 1781 "src/parser_proc_grammar.y" /* glr.c:821 */
6272 {
6273 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6274 (*(struct psi_token **)(&(*yyvalp)))->type = PSI_T_NAME;
6275 }
6276 #line 6277 "src/parser_proc.c" /* glr.c:821 */
6277 break;
6278
6279 case 514:
6280 #line 1793 "src/parser_proc_grammar.y" /* glr.c:821 */
6281 {
6282 (*(struct psi_layout **)(&(*yyvalp))) = NULL;
6283 }
6284 #line 6285 "src/parser_proc.c" /* glr.c:821 */
6285 break;
6286
6287 case 515:
6288 #line 1796 "src/parser_proc_grammar.y" /* glr.c:821 */
6289 {
6290 (*(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));
6291 }
6292 #line 6293 "src/parser_proc.c" /* glr.c:821 */
6293 break;
6294
6295 case 516:
6296 #line 1799 "src/parser_proc_grammar.y" /* glr.c:821 */
6297 {
6298 (*(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);
6299 }
6300 #line 6301 "src/parser_proc.c" /* glr.c:821 */
6301 break;
6302
6303 case 517:
6304 #line 1802 "src/parser_proc_grammar.y" /* glr.c:821 */
6305 {
6306 (*(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));
6307 }
6308 #line 6309 "src/parser_proc.c" /* glr.c:821 */
6309 break;
6310
6311 case 518:
6312 #line 1808 "src/parser_proc_grammar.y" /* glr.c:821 */
6313 {
6314 (*(struct psi_layout*)(&(*yyvalp))).pos = 0;
6315 (*(struct psi_layout*)(&(*yyvalp))).len = 0;
6316 }
6317 #line 6318 "src/parser_proc.c" /* glr.c:821 */
6318 break;
6319
6320 case 519:
6321 #line 1812 "src/parser_proc_grammar.y" /* glr.c:821 */
6322 {
6323 (*(struct psi_layout*)(&(*yyvalp))).pos = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text->val);
6324 (*(struct psi_layout*)(&(*yyvalp))).len = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text->val);
6325 }
6326 #line 6327 "src/parser_proc.c" /* glr.c:821 */
6327 break;
6328
6329 case 520:
6330 #line 1819 "src/parser_proc_grammar.y" /* glr.c:821 */
6331 {
6332 (*(size_t*)(&(*yyvalp))) = 0;
6333 }
6334 #line 6335 "src/parser_proc.c" /* glr.c:821 */
6335 break;
6336
6337 case 521:
6338 #line 1822 "src/parser_proc_grammar.y" /* glr.c:821 */
6339 {
6340 (*(size_t*)(&(*yyvalp))) = 0;
6341 }
6342 #line 6343 "src/parser_proc.c" /* glr.c:821 */
6343 break;
6344
6345 case 522:
6346 #line 1825 "src/parser_proc_grammar.y" /* glr.c:821 */
6347 {
6348 struct psi_validate_scope scope = {0};
6349 psi_validate_scope_ctor(&scope);
6350 scope.cpp = P->preproc;
6351 if (psi_num_exp_validate(PSI_DATA(P), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), &scope)) {
6352 (*(size_t*)(&(*yyvalp))) = psi_num_exp_get_long((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), NULL, P->preproc);
6353 } else {
6354 (*(size_t*)(&(*yyvalp))) = 0;
6355 }
6356 psi_num_exp_free(&(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6357 psi_validate_scope_dtor(&scope);
6358 }
6359 #line 6360 "src/parser_proc.c" /* glr.c:821 */
6360 break;
6361
6362 case 527:
6363 #line 1847 "src/parser_proc_grammar.y" /* glr.c:821 */
6364 {
6365 (*(size_t*)(&(*yyvalp))) = 0;
6366 }
6367 #line 6368 "src/parser_proc.c" /* glr.c:821 */
6368 break;
6369
6370 case 528:
6371 #line 1850 "src/parser_proc_grammar.y" /* glr.c:821 */
6372 {
6373 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6374 }
6375 #line 6376 "src/parser_proc.c" /* glr.c:821 */
6376 break;
6377
6378 case 530:
6379 #line 1857 "src/parser_proc_grammar.y" /* glr.c:821 */
6380 {
6381 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
6382 }
6383 #line 6384 "src/parser_proc.c" /* glr.c:821 */
6384 break;
6385
6386 case 531:
6387 #line 1863 "src/parser_proc_grammar.y" /* glr.c:821 */
6388 {
6389 (*(size_t*)(&(*yyvalp))) = 1;
6390 }
6391 #line 6392 "src/parser_proc.c" /* glr.c:821 */
6392 break;
6393
6394 case 532:
6395 #line 1866 "src/parser_proc_grammar.y" /* glr.c:821 */
6396 {
6397 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)) + 1;
6398 }
6399 #line 6400 "src/parser_proc.c" /* glr.c:821 */
6400 break;
6401
6402 case 537:
6403 #line 1888 "src/parser_proc_grammar.y" /* glr.c:821 */
6404 {
6405 (*(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)));
6406 }
6407 #line 6408 "src/parser_proc.c" /* glr.c:821 */
6408 break;
6409
6410 case 538:
6411 #line 1891 "src/parser_proc_grammar.y" /* glr.c:821 */
6412 {
6413 (*(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)));
6414 (*(struct psi_impl_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->static_memory = 1;
6415 }
6416 #line 6417 "src/parser_proc.c" /* glr.c:821 */
6417 break;
6418
6419 case 539:
6420 #line 1898 "src/parser_proc_grammar.y" /* glr.c:821 */
6421 {
6422 (*(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)));
6423 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
6424 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval));
6425 }
6426 #line 6427 "src/parser_proc.c" /* glr.c:821 */
6427 break;
6428
6429 case 540:
6430 #line 1903 "src/parser_proc_grammar.y" /* glr.c:821 */
6431 {
6432 (*(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)));
6433 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6434 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval));
6435 }
6436 #line 6437 "src/parser_proc.c" /* glr.c:821 */
6437 break;
6438
6439 case 541:
6440 #line 1908 "src/parser_proc_grammar.y" /* glr.c:821 */
6441 {
6442 (*(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)));
6443 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval)));
6444 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-11)].yystate.yysemantics.yysval));
6445 (*(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);
6446 (*(struct psi_impl_func **)(&(*yyvalp)))->vararg->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
6447 }
6448 #line 6449 "src/parser_proc.c" /* glr.c:821 */
6449 break;
6450
6451 case 542:
6452 #line 1918 "src/parser_proc_grammar.y" /* glr.c:821 */
6453 {
6454 (*(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)));
6455 }
6456 #line 6457 "src/parser_proc.c" /* glr.c:821 */
6457 break;
6458
6459 case 543:
6460 #line 1921 "src/parser_proc_grammar.y" /* glr.c:821 */
6461 {
6462 (*(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)));
6463 }
6464 #line 6465 "src/parser_proc.c" /* glr.c:821 */
6465 break;
6466
6467 case 544:
6468 #line 1927 "src/parser_proc_grammar.y" /* glr.c:821 */
6469 {
6470 (*(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);
6471 }
6472 #line 6473 "src/parser_proc.c" /* glr.c:821 */
6473 break;
6474
6475 case 545:
6476 #line 1930 "src/parser_proc_grammar.y" /* glr.c:821 */
6477 {
6478 (*(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)));
6479 }
6480 #line 6481 "src/parser_proc.c" /* glr.c:821 */
6481 break;
6482
6483 case 546:
6484 #line 1936 "src/parser_proc_grammar.y" /* glr.c:821 */
6485 {
6486 (*(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)));
6487 (*(struct psi_impl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6488 }
6489 #line 6490 "src/parser_proc.c" /* glr.c:821 */
6490 break;
6491
6492 case 547:
6493 #line 1943 "src/parser_proc_grammar.y" /* glr.c:821 */
6494 {
6495 (*(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);
6496 (*(struct psi_impl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6497 }
6498 #line 6499 "src/parser_proc.c" /* glr.c:821 */
6499 break;
6500
6501 case 548:
6502 #line 1950 "src/parser_proc_grammar.y" /* glr.c:821 */
6503 {
6504 (*(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);
6505 (*(struct psi_impl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6506 }
6507 #line 6508 "src/parser_proc.c" /* glr.c:821 */
6508 break;
6509
6510 case 560:
6511 #line 1977 "src/parser_proc_grammar.y" /* glr.c:821 */
6512 {
6513 (*(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)));
6514 }
6515 #line 6516 "src/parser_proc.c" /* glr.c:821 */
6516 break;
6517
6518 case 561:
6519 #line 1980 "src/parser_proc_grammar.y" /* glr.c:821 */
6520 {
6521 (*(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)));
6522 }
6523 #line 6524 "src/parser_proc.c" /* glr.c:821 */
6524 break;
6525
6526 case 562:
6527 #line 1986 "src/parser_proc_grammar.y" /* glr.c:821 */
6528 {
6529 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_return_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6530 }
6531 #line 6532 "src/parser_proc.c" /* glr.c:821 */
6532 break;
6533
6534 case 563:
6535 #line 1989 "src/parser_proc_grammar.y" /* glr.c:821 */
6536 {
6537 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_let_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6538 }
6539 #line 6540 "src/parser_proc.c" /* glr.c:821 */
6540 break;
6541
6542 case 564:
6543 #line 1992 "src/parser_proc_grammar.y" /* glr.c:821 */
6544 {
6545 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_set_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6546 }
6547 #line 6548 "src/parser_proc.c" /* glr.c:821 */
6548 break;
6549
6550 case 565:
6551 #line 1995 "src/parser_proc_grammar.y" /* glr.c:821 */
6552 {
6553 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_assert_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6554 }
6555 #line 6556 "src/parser_proc.c" /* glr.c:821 */
6556 break;
6557
6558 case 566:
6559 #line 1998 "src/parser_proc_grammar.y" /* glr.c:821 */
6560 {
6561 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_free_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6562 }
6563 #line 6564 "src/parser_proc.c" /* glr.c:821 */
6564 break;
6565
6566 case 567:
6567 #line 2004 "src/parser_proc_grammar.y" /* glr.c:821 */
6568 {
6569 (*(struct psi_let_stmt **)(&(*yyvalp))) = psi_let_stmt_init((*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6570 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6571 }
6572 #line 6573 "src/parser_proc.c" /* glr.c:821 */
6573 break;
6574
6575 case 568:
6576 #line 2008 "src/parser_proc_grammar.y" /* glr.c:821 */
6577 {
6578 (*(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))));
6579 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6580 (*(struct psi_let_stmt **)(&(*yyvalp)))->exp->is_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
6581 }
6582 #line 6583 "src/parser_proc.c" /* glr.c:821 */
6583 break;
6584
6585 case 570:
6586 #line 2017 "src/parser_proc_grammar.y" /* glr.c:821 */
6587 {
6588 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6589 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = true;
6590 }
6591 #line 6592 "src/parser_proc.c" /* glr.c:821 */
6592 break;
6593
6594 case 571:
6595 #line 2021 "src/parser_proc_grammar.y" /* glr.c:821 */
6596 {
6597 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6598 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = false;
6599 }
6600 #line 6601 "src/parser_proc.c" /* glr.c:821 */
6601 break;
6602
6603 case 572:
6604 #line 2028 "src/parser_proc_grammar.y" /* glr.c:821 */
6605 {
6606 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_NULL, NULL);
6607 }
6608 #line 6609 "src/parser_proc.c" /* glr.c:821 */
6609 break;
6610
6611 case 573:
6612 #line 2031 "src/parser_proc_grammar.y" /* glr.c:821 */
6613 {
6614 (*(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)));
6615 }
6616 #line 6617 "src/parser_proc.c" /* glr.c:821 */
6617 break;
6618
6619 case 574:
6620 #line 2034 "src/parser_proc_grammar.y" /* glr.c:821 */
6621 {
6622 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6623 }
6624 #line 6625 "src/parser_proc.c" /* glr.c:821 */
6625 break;
6626
6627 case 575:
6628 #line 2037 "src/parser_proc_grammar.y" /* glr.c:821 */
6629 {
6630 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6631 (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->static_memory = 1;
6632 }
6633 #line 6634 "src/parser_proc.c" /* glr.c:821 */
6634 break;
6635
6636 case 576:
6637 #line 2041 "src/parser_proc_grammar.y" /* glr.c:821 */
6638 {
6639 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLBACK, (*(struct psi_let_callback **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6640 }
6641 #line 6642 "src/parser_proc.c" /* glr.c:821 */
6642 break;
6643
6644 case 577:
6645 #line 2044 "src/parser_proc_grammar.y" /* glr.c:821 */
6646 {
6647 (*(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)));
6648 }
6649 #line 6650 "src/parser_proc.c" /* glr.c:821 */
6650 break;
6651
6652 case 578:
6653 #line 2050 "src/parser_proc_grammar.y" /* glr.c:821 */
6654 {
6655 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6656 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
6657 }
6658 #line 6659 "src/parser_proc.c" /* glr.c:821 */
6659 break;
6660
6661 case 579:
6662 #line 2054 "src/parser_proc_grammar.y" /* glr.c:821 */
6663 {
6664 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6665 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = 1;
6666 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
6667 }
6668 #line 6669 "src/parser_proc.c" /* glr.c:821 */
6669 break;
6670
6671 case 580:
6672 #line 2062 "src/parser_proc_grammar.y" /* glr.c:821 */
6673 {
6674 (*(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)));
6675 (*(struct psi_let_calloc **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6676 }
6677 #line 6678 "src/parser_proc.c" /* glr.c:821 */
6678 break;
6679
6680 case 581:
6681 #line 2069 "src/parser_proc_grammar.y" /* glr.c:821 */
6682 {
6683 (*(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);
6684 (*(struct psi_let_callback **)(&(*yyvalp)))->func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
6685 (*(struct psi_let_callback **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval)));
6686 }
6687 #line 6688 "src/parser_proc.c" /* glr.c:821 */
6688 break;
6689
6690 case 582:
6691 #line 2074 "src/parser_proc_grammar.y" /* glr.c:821 */
6692 {
6693 (*(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)));
6694 (*(struct psi_let_callback **)(&(*yyvalp)))->func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
6695 (*(struct psi_let_callback **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-11)].yystate.yysemantics.yysval)));
6696 }
6697 #line 6698 "src/parser_proc.c" /* glr.c:821 */
6698 break;
6699
6700 case 583:
6701 #line 2082 "src/parser_proc_grammar.y" /* glr.c:821 */
6702 {
6703 (*(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)));
6704 (*(struct psi_let_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
6705 (*(struct psi_let_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
6706 }
6707 #line 6708 "src/parser_proc.c" /* glr.c:821 */
6708 break;
6709
6710 case 594:
6711 #line 2103 "src/parser_proc_grammar.y" /* glr.c:821 */
6712 {
6713 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6714 }
6715 #line 6716 "src/parser_proc.c" /* glr.c:821 */
6716 break;
6717
6718 case 595:
6719 #line 2106 "src/parser_proc_grammar.y" /* glr.c:821 */
6720 {
6721 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6722 }
6723 #line 6724 "src/parser_proc.c" /* glr.c:821 */
6724 break;
6725
6726 case 596:
6727 #line 2112 "src/parser_proc_grammar.y" /* glr.c:821 */
6728 {
6729 (*(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)));
6730 }
6731 #line 6732 "src/parser_proc.c" /* glr.c:821 */
6732 break;
6733
6734 case 597:
6735 #line 2115 "src/parser_proc_grammar.y" /* glr.c:821 */
6736 {
6737 (*(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)));
6738 }
6739 #line 6740 "src/parser_proc.c" /* glr.c:821 */
6740 break;
6741
6742 case 600:
6743 #line 2126 "src/parser_proc_grammar.y" /* glr.c:821 */
6744 {
6745 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6746 }
6747 #line 6748 "src/parser_proc.c" /* glr.c:821 */
6748 break;
6749
6750 case 601:
6751 #line 2129 "src/parser_proc_grammar.y" /* glr.c:821 */
6752 {
6753 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6754 }
6755 #line 6756 "src/parser_proc.c" /* glr.c:821 */
6756 break;
6757
6758 case 602:
6759 #line 2135 "src/parser_proc_grammar.y" /* glr.c:821 */
6760 {
6761 (*(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)));
6762 }
6763 #line 6764 "src/parser_proc.c" /* glr.c:821 */
6764 break;
6765
6766 case 603:
6767 #line 2138 "src/parser_proc_grammar.y" /* glr.c:821 */
6768 {
6769 (*(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)));
6770 }
6771 #line 6772 "src/parser_proc.c" /* glr.c:821 */
6772 break;
6773
6774 case 604:
6775 #line 2144 "src/parser_proc_grammar.y" /* glr.c:821 */
6776 {
6777 (*(struct psi_return_stmt **)(&(*yyvalp))) = psi_return_stmt_init((*(struct psi_return_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6778 (*(struct psi_return_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6779 }
6780 #line 6781 "src/parser_proc.c" /* glr.c:821 */
6781 break;
6782
6783 case 605:
6784 #line 2151 "src/parser_proc_grammar.y" /* glr.c:821 */
6785 {
6786 (*(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))));
6787 (*(struct psi_return_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->token);
6788 }
6789 #line 6790 "src/parser_proc.c" /* glr.c:821 */
6790 break;
6791
6792 case 606:
6793 #line 2155 "src/parser_proc_grammar.y" /* glr.c:821 */
6794 {
6795 (*(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))));
6796 (*(struct psi_return_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
6797 }
6798 #line 6799 "src/parser_proc.c" /* glr.c:821 */
6799 break;
6800
6801 case 607:
6802 #line 2162 "src/parser_proc_grammar.y" /* glr.c:821 */
6803 {
6804 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6805 }
6806 #line 6807 "src/parser_proc.c" /* glr.c:821 */
6807 break;
6808
6809 case 608:
6810 #line 2165 "src/parser_proc_grammar.y" /* glr.c:821 */
6811 {
6812 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6813 }
6814 #line 6815 "src/parser_proc.c" /* glr.c:821 */
6815 break;
6816
6817 case 609:
6818 #line 2168 "src/parser_proc_grammar.y" /* glr.c:821 */
6819 {
6820 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6821 }
6822 #line 6823 "src/parser_proc.c" /* glr.c:821 */
6823 break;
6824
6825 case 610:
6826 #line 2174 "src/parser_proc_grammar.y" /* glr.c:821 */
6827 {
6828 (*(struct psi_set_stmt **)(&(*yyvalp))) = psi_set_stmt_init((*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6829 (*(struct psi_set_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6830 }
6831 #line 6832 "src/parser_proc.c" /* glr.c:821 */
6832 break;
6833
6834 case 611:
6835 #line 2181 "src/parser_proc_grammar.y" /* glr.c:821 */
6836 {
6837 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_FUNC, (*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6838 }
6839 #line 6840 "src/parser_proc.c" /* glr.c:821 */
6840 break;
6841
6842 case 612:
6843 #line 2184 "src/parser_proc_grammar.y" /* glr.c:821 */
6844 {
6845 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_NUMEXP, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6846 }
6847 #line 6848 "src/parser_proc.c" /* glr.c:821 */
6848 break;
6849
6850 case 613:
6851 #line 2187 "src/parser_proc_grammar.y" /* glr.c:821 */
6852 {
6853 (*(struct psi_set_exp **)(&(*yyvalp))) = (*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6854 (*(struct psi_set_exp **)(&(*yyvalp)))->var = (*(struct psi_impl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
6855 }
6856 #line 6857 "src/parser_proc.c" /* glr.c:821 */
6857 break;
6858
6859 case 614:
6860 #line 2194 "src/parser_proc_grammar.y" /* glr.c:821 */
6861 {
6862 (*(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)));
6863 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
6864 (*(struct psi_set_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
6865 }
6866 #line 6867 "src/parser_proc.c" /* glr.c:821 */
6867 break;
6868
6869 case 615:
6870 #line 2199 "src/parser_proc_grammar.y" /* glr.c:821 */
6871 {
6872 (*(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)));
6873 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6874 (*(struct psi_set_func **)(&(*yyvalp)))->recursive = 1;
6875 }
6876 #line 6877 "src/parser_proc.c" /* glr.c:821 */
6877 break;
6878
6879 case 624:
6880 #line 2218 "src/parser_proc_grammar.y" /* glr.c:821 */
6881 {
6882 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6883 }
6884 #line 6885 "src/parser_proc.c" /* glr.c:821 */
6885 break;
6886
6887 case 625:
6888 #line 2221 "src/parser_proc_grammar.y" /* glr.c:821 */
6889 {
6890 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6891 }
6892 #line 6893 "src/parser_proc.c" /* glr.c:821 */
6893 break;
6894
6895 case 626:
6896 #line 2227 "src/parser_proc_grammar.y" /* glr.c:821 */
6897 {
6898 (*(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)));
6899 }
6900 #line 6901 "src/parser_proc.c" /* glr.c:821 */
6901 break;
6902
6903 case 627:
6904 #line 2230 "src/parser_proc_grammar.y" /* glr.c:821 */
6905 {
6906 (*(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)));
6907 }
6908 #line 6909 "src/parser_proc.c" /* glr.c:821 */
6909 break;
6910
6911 case 628:
6912 #line 2236 "src/parser_proc_grammar.y" /* glr.c:821 */
6913 {
6914 (*(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)));
6915 (*(struct psi_assert_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6916 }
6917 #line 6918 "src/parser_proc.c" /* glr.c:821 */
6918 break;
6919
6920 case 631:
6921 #line 2248 "src/parser_proc_grammar.y" /* glr.c:821 */
6922 {
6923 (*(struct psi_free_stmt **)(&(*yyvalp))) = psi_free_stmt_init((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6924 (*(struct psi_free_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6925 }
6926 #line 6927 "src/parser_proc.c" /* glr.c:821 */
6927 break;
6928
6929 case 632:
6930 #line 2255 "src/parser_proc_grammar.y" /* glr.c:821 */
6931 {
6932 (*(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)));
6933 }
6934 #line 6935 "src/parser_proc.c" /* glr.c:821 */
6935 break;
6936
6937 case 633:
6938 #line 2258 "src/parser_proc_grammar.y" /* glr.c:821 */
6939 {
6940 (*(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)));
6941 }
6942 #line 6943 "src/parser_proc.c" /* glr.c:821 */
6943 break;
6944
6945 case 634:
6946 #line 2264 "src/parser_proc_grammar.y" /* glr.c:821 */
6947 {
6948 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
6949 (*(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)));
6950 (*(struct psi_free_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
6951 }
6952 #line 6953 "src/parser_proc.c" /* glr.c:821 */
6953 break;
6954
6955 case 635:
6956 #line 2272 "src/parser_proc_grammar.y" /* glr.c:821 */
6957 {
6958 (*(bool*)(&(*yyvalp))) = false;
6959 }
6960 #line 6961 "src/parser_proc.c" /* glr.c:821 */
6961 break;
6962
6963 case 636:
6964 #line 2275 "src/parser_proc_grammar.y" /* glr.c:821 */
6965 {
6966 (*(bool*)(&(*yyvalp))) = true;
6967 }
6968 #line 6969 "src/parser_proc.c" /* glr.c:821 */
6969 break;
6970
6971
6972 #line 6973 "src/parser_proc.c" /* glr.c:821 */
6973 default: break;
6974 }
6975
6976 return yyok;
6977 # undef yyerrok
6978 # undef YYABORT
6979 # undef YYACCEPT
6980 # undef YYERROR
6981 # undef YYBACKUP
6982 # undef yyclearin
6983 # undef YYRECOVERING
6984 }
6985
6986
6987 static void
6988 yyuserMerge (int yyn, YYSTYPE* yy0, YYSTYPE* yy1)
6989 {
6990 YYUSE (yy0);
6991 YYUSE (yy1);
6992
6993 switch (yyn)
6994 {
6995
6996 default: break;
6997 }
6998 }
6999
7000 /* Bison grammar-table manipulation. */
7001
7002 /*-----------------------------------------------.
7003 | Release the memory associated to this symbol. |
7004 `-----------------------------------------------*/
7005
7006 static void
7007 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7008 {
7009 YYUSE (yyvaluep);
7010 YYUSE (P);
7011 YYUSE (tokens);
7012 YYUSE (index);
7013 if (!yymsg)
7014 yymsg = "Deleting";
7015 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
7016
7017 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
7018 switch (yytype)
7019 {
7020 case 141: /* binary_op_token */
7021 #line 290 "src/parser_proc_grammar.y" /* glr.c:851 */
7022 {}
7023 #line 7024 "src/parser_proc.c" /* glr.c:851 */
7024 break;
7025
7026 case 142: /* unary_op_token */
7027 #line 290 "src/parser_proc_grammar.y" /* glr.c:851 */
7028 {}
7029 #line 7030 "src/parser_proc.c" /* glr.c:851 */
7030 break;
7031
7032 case 143: /* name_token */
7033 #line 290 "src/parser_proc_grammar.y" /* glr.c:851 */
7034 {}
7035 #line 7036 "src/parser_proc.c" /* glr.c:851 */
7036 break;
7037
7038 case 144: /* any_noeol_token */
7039 #line 290 "src/parser_proc_grammar.y" /* glr.c:851 */
7040 {}
7041 #line 7042 "src/parser_proc.c" /* glr.c:851 */
7042 break;
7043
7044 case 149: /* lib */
7045 #line 284 "src/parser_proc_grammar.y" /* glr.c:851 */
7046 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7047 #line 7048 "src/parser_proc.c" /* glr.c:851 */
7048 break;
7049
7050 case 150: /* cpp */
7051 #line 299 "src/parser_proc_grammar.y" /* glr.c:851 */
7052 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
7053 #line 7054 "src/parser_proc.c" /* glr.c:851 */
7054 break;
7055
7056 case 151: /* cpp_exp */
7057 #line 299 "src/parser_proc_grammar.y" /* glr.c:851 */
7058 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
7059 #line 7060 "src/parser_proc.c" /* glr.c:851 */
7060 break;
7061
7062 case 153: /* cpp_message_token */
7063 #line 287 "src/parser_proc_grammar.y" /* glr.c:851 */
7064 {}
7065 #line 7066 "src/parser_proc.c" /* glr.c:851 */
7066 break;
7067
7068 case 154: /* cpp_include_token */
7069 #line 287 "src/parser_proc_grammar.y" /* glr.c:851 */
7070 {}
7071 #line 7072 "src/parser_proc.c" /* glr.c:851 */
7072 break;
7073
7074 case 155: /* cpp_header_token */
7075 #line 287 "src/parser_proc_grammar.y" /* glr.c:851 */
7076 {}
7077 #line 7078 "src/parser_proc.c" /* glr.c:851 */
7078 break;
7079
7080 case 156: /* cpp_no_arg_token */
7081 #line 287 "src/parser_proc_grammar.y" /* glr.c:851 */
7082 {}
7083 #line 7084 "src/parser_proc.c" /* glr.c:851 */
7084 break;
7085
7086 case 157: /* cpp_name_arg_token */
7087 #line 287 "src/parser_proc_grammar.y" /* glr.c:851 */
7088 {}
7089 #line 7090 "src/parser_proc.c" /* glr.c:851 */
7090 break;
7091
7092 case 158: /* cpp_exp_arg_token */
7093 #line 287 "src/parser_proc_grammar.y" /* glr.c:851 */
7094 {}
7095 #line 7096 "src/parser_proc.c" /* glr.c:851 */
7096 break;
7097
7098 case 159: /* cpp_macro_decl */
7099 #line 301 "src/parser_proc_grammar.y" /* glr.c:851 */
7100 {psi_cpp_macro_decl_free(&(*(struct psi_cpp_macro_decl **)(&(*yyvaluep))));}
7101 #line 7102 "src/parser_proc.c" /* glr.c:851 */
7102 break;
7103
7104 case 160: /* cpp_macro_sig */
7105 #line 303 "src/parser_proc_grammar.y" /* glr.c:851 */
7106 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7107 #line 7108 "src/parser_proc.c" /* glr.c:851 */
7108 break;
7109
7110 case 161: /* cpp_macro_sig_args */
7111 #line 303 "src/parser_proc_grammar.y" /* glr.c:851 */
7112 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7113 #line 7114 "src/parser_proc.c" /* glr.c:851 */
7114 break;
7115
7116 case 162: /* cpp_macro_decl_tokens */
7117 #line 303 "src/parser_proc_grammar.y" /* glr.c:851 */
7118 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7119 #line 7120 "src/parser_proc.c" /* glr.c:851 */
7120 break;
7121
7122 case 163: /* cpp_macro_decl_token_list */
7123 #line 303 "src/parser_proc_grammar.y" /* glr.c:851 */
7124 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7125 #line 7126 "src/parser_proc.c" /* glr.c:851 */
7126 break;
7127
7128 case 164: /* cpp_macro_exp */
7129 #line 305 "src/parser_proc_grammar.y" /* glr.c:851 */
7130 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
7131 #line 7132 "src/parser_proc.c" /* glr.c:851 */
7132 break;
7133
7134 case 165: /* cpp_macro_call_args */
7135 #line 303 "src/parser_proc_grammar.y" /* glr.c:851 */
7136 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7137 #line 7138 "src/parser_proc.c" /* glr.c:851 */
7138 break;
7139
7140 case 166: /* cpp_macro_call_arg_list */
7141 #line 303 "src/parser_proc_grammar.y" /* glr.c:851 */
7142 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7143 #line 7144 "src/parser_proc.c" /* glr.c:851 */
7144 break;
7145
7146 case 167: /* constant */
7147 #line 311 "src/parser_proc_grammar.y" /* glr.c:851 */
7148 {psi_const_free(&(*(struct psi_const **)(&(*yyvaluep))));}
7149 #line 7150 "src/parser_proc.c" /* glr.c:851 */
7150 break;
7151
7152 case 168: /* impl_def_val */
7153 #line 313 "src/parser_proc_grammar.y" /* glr.c:851 */
7154 {psi_impl_def_val_free(&(*(struct psi_impl_def_val **)(&(*yyvaluep))));}
7155 #line 7156 "src/parser_proc.c" /* glr.c:851 */
7156 break;
7157
7158 case 169: /* impl_def_val_token */
7159 #line 308 "src/parser_proc_grammar.y" /* glr.c:851 */
7160 {}
7161 #line 7162 "src/parser_proc.c" /* glr.c:851 */
7162 break;
7163
7164 case 170: /* decl_typedef */
7165 #line 326 "src/parser_proc_grammar.y" /* glr.c:851 */
7166 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7167 #line 7168 "src/parser_proc.c" /* glr.c:851 */
7168 break;
7169
7170 case 171: /* typedef */
7171 #line 326 "src/parser_proc_grammar.y" /* glr.c:851 */
7172 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7173 #line 7174 "src/parser_proc.c" /* glr.c:851 */
7174 break;
7175
7176 case 172: /* typedef_anon */
7177 #line 326 "src/parser_proc_grammar.y" /* glr.c:851 */
7178 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7179 #line 7180 "src/parser_proc.c" /* glr.c:851 */
7180 break;
7181
7182 case 173: /* typedef_decl */
7183 #line 326 "src/parser_proc_grammar.y" /* glr.c:851 */
7184 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7185 #line 7186 "src/parser_proc.c" /* glr.c:851 */
7186 break;
7187
7188 case 174: /* typedef_anon_decl */
7189 #line 326 "src/parser_proc_grammar.y" /* glr.c:851 */
7190 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7191 #line 7192 "src/parser_proc.c" /* glr.c:851 */
7192 break;
7193
7194 case 175: /* qualified_decl_type */
7195 #line 322 "src/parser_proc_grammar.y" /* glr.c:851 */
7196 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
7197 #line 7198 "src/parser_proc.c" /* glr.c:851 */
7198 break;
7199
7200 case 177: /* decl_type */
7201 #line 322 "src/parser_proc_grammar.y" /* glr.c:851 */
7202 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
7203 #line 7204 "src/parser_proc.c" /* glr.c:851 */
7204 break;
7205
7206 case 178: /* decl_type_complex */
7207 #line 322 "src/parser_proc_grammar.y" /* glr.c:851 */
7208 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
7209 #line 7210 "src/parser_proc.c" /* glr.c:851 */
7210 break;
7211
7212 case 179: /* decl_type_simple */
7213 #line 316 "src/parser_proc_grammar.y" /* glr.c:851 */
7214 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7215 #line 7216 "src/parser_proc.c" /* glr.c:851 */
7216 break;
7217
7218 case 180: /* decl_real_type */
7219 #line 316 "src/parser_proc_grammar.y" /* glr.c:851 */
7220 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7221 #line 7222 "src/parser_proc.c" /* glr.c:851 */
7222 break;
7223
7224 case 181: /* int_signed */
7225 #line 296 "src/parser_proc_grammar.y" /* glr.c:851 */
7226 {}
7227 #line 7228 "src/parser_proc.c" /* glr.c:851 */
7228 break;
7229
7230 case 182: /* int_width */
7231 #line 293 "src/parser_proc_grammar.y" /* glr.c:851 */
7232 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7233 #line 7234 "src/parser_proc.c" /* glr.c:851 */
7234 break;
7235
7236 case 183: /* decl_int_type */
7237 #line 316 "src/parser_proc_grammar.y" /* glr.c:851 */
7238 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7239 #line 7240 "src/parser_proc.c" /* glr.c:851 */
7240 break;
7241
7242 case 184: /* int_signed_types */
7243 #line 293 "src/parser_proc_grammar.y" /* glr.c:851 */
7244 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7245 #line 7246 "src/parser_proc.c" /* glr.c:851 */
7246 break;
7247
7248 case 185: /* signed_short_types */
7249 #line 296 "src/parser_proc_grammar.y" /* glr.c:851 */
7250 {}
7251 #line 7252 "src/parser_proc.c" /* glr.c:851 */
7252 break;
7253
7254 case 186: /* signed_long_types */
7255 #line 296 "src/parser_proc_grammar.y" /* glr.c:851 */
7256 {}
7257 #line 7258 "src/parser_proc.c" /* glr.c:851 */
7258 break;
7259
7260 case 187: /* int_width_types */
7261 #line 293 "src/parser_proc_grammar.y" /* glr.c:851 */
7262 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7263 #line 7264 "src/parser_proc.c" /* glr.c:851 */
7264 break;
7265
7266 case 188: /* decl_stmt */
7267 #line 324 "src/parser_proc_grammar.y" /* glr.c:851 */
7268 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7269 #line 7270 "src/parser_proc.c" /* glr.c:851 */
7270 break;
7271
7272 case 189: /* decl_asm */
7273 #line 319 "src/parser_proc_grammar.y" /* glr.c:851 */
7274 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7275 #line 7276 "src/parser_proc.c" /* glr.c:851 */
7276 break;
7277
7278 case 190: /* quoted_strings */
7279 #line 319 "src/parser_proc_grammar.y" /* glr.c:851 */
7280 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7281 #line 7282 "src/parser_proc.c" /* glr.c:851 */
7282 break;
7283
7284 case 191: /* decl_extvar_stmt */
7285 #line 338 "src/parser_proc_grammar.y" /* glr.c:851 */
7286 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7287 #line 7288 "src/parser_proc.c" /* glr.c:851 */
7288 break;
7289
7290 case 192: /* decl_extvar_list */
7291 #line 338 "src/parser_proc_grammar.y" /* glr.c:851 */
7292 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7293 #line 7294 "src/parser_proc.c" /* glr.c:851 */
7294 break;
7295
7296 case 193: /* decl_vars */
7297 #line 338 "src/parser_proc_grammar.y" /* glr.c:851 */
7298 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7299 #line 7300 "src/parser_proc.c" /* glr.c:851 */
7300 break;
7301
7302 case 194: /* ignored_decl */
7303 #line 324 "src/parser_proc_grammar.y" /* glr.c:851 */
7304 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7305 #line 7306 "src/parser_proc.c" /* glr.c:851 */
7306 break;
7307
7308 case 199: /* decl */
7309 #line 324 "src/parser_proc_grammar.y" /* glr.c:851 */
7310 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7311 #line 7312 "src/parser_proc.c" /* glr.c:851 */
7312 break;
7313
7314 case 200: /* decl_body */
7315 #line 324 "src/parser_proc_grammar.y" /* glr.c:851 */
7316 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7317 #line 7318 "src/parser_proc.c" /* glr.c:851 */
7318 break;
7319
7320 case 201: /* decl_func_body */
7321 #line 324 "src/parser_proc_grammar.y" /* glr.c:851 */
7322 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7323 #line 7324 "src/parser_proc.c" /* glr.c:851 */
7324 break;
7325
7326 case 202: /* decl_functor_body */
7327 #line 324 "src/parser_proc_grammar.y" /* glr.c:851 */
7328 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7329 #line 7330 "src/parser_proc.c" /* glr.c:851 */
7330 break;
7331
7332 case 203: /* decl_anon_functor_body */
7333 #line 324 "src/parser_proc_grammar.y" /* glr.c:851 */
7334 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7335 #line 7336 "src/parser_proc.c" /* glr.c:851 */
7336 break;
7337
7338 case 204: /* decl_functor */
7339 #line 326 "src/parser_proc_grammar.y" /* glr.c:851 */
7340 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7341 #line 7342 "src/parser_proc.c" /* glr.c:851 */
7342 break;
7343
7344 case 205: /* decl_anon_functor */
7345 #line 326 "src/parser_proc_grammar.y" /* glr.c:851 */
7346 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7347 #line 7348 "src/parser_proc.c" /* glr.c:851 */
7348 break;
7349
7350 case 206: /* decl_func */
7351 #line 326 "src/parser_proc_grammar.y" /* glr.c:851 */
7352 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7353 #line 7354 "src/parser_proc.c" /* glr.c:851 */
7354 break;
7355
7356 case 207: /* decl_args */
7357 #line 338 "src/parser_proc_grammar.y" /* glr.c:851 */
7358 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7359 #line 7360 "src/parser_proc.c" /* glr.c:851 */
7360 break;
7361
7362 case 208: /* decl_arg_list */
7363 #line 338 "src/parser_proc_grammar.y" /* glr.c:851 */
7364 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7365 #line 7366 "src/parser_proc.c" /* glr.c:851 */
7366 break;
7367
7368 case 209: /* decl_anon_arg */
7369 #line 326 "src/parser_proc_grammar.y" /* glr.c:851 */
7370 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7371 #line 7372 "src/parser_proc.c" /* glr.c:851 */
7372 break;
7373
7374 case 210: /* decl_arg */
7375 #line 326 "src/parser_proc_grammar.y" /* glr.c:851 */
7376 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7377 #line 7378 "src/parser_proc.c" /* glr.c:851 */
7378 break;
7379
7380 case 211: /* decl_var */
7381 #line 328 "src/parser_proc_grammar.y" /* glr.c:851 */
7382 {psi_decl_var_free(&(*(struct psi_decl_var **)(&(*yyvaluep))));}
7383 #line 7384 "src/parser_proc.c" /* glr.c:851 */
7384 break;
7385
7386 case 212: /* decl_union */
7387 #line 332 "src/parser_proc_grammar.y" /* glr.c:851 */
7388 {psi_decl_union_free(&(*(struct psi_decl_union **)(&(*yyvaluep))));}
7389 #line 7390 "src/parser_proc.c" /* glr.c:851 */
7390 break;
7391
7392 case 213: /* decl_struct */
7393 #line 330 "src/parser_proc_grammar.y" /* glr.c:851 */
7394 {psi_decl_struct_free(&(*(struct psi_decl_struct **)(&(*yyvaluep))));}
7395 #line 7396 "src/parser_proc.c" /* glr.c:851 */
7396 break;
7397
7398 case 214: /* decl_struct_args */
7399 #line 338 "src/parser_proc_grammar.y" /* glr.c:851 */
7400 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7401 #line 7402 "src/parser_proc.c" /* glr.c:851 */
7402 break;
7403
7404 case 215: /* struct_args_block */
7405 #line 338 "src/parser_proc_grammar.y" /* glr.c:851 */
7406 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7407 #line 7408 "src/parser_proc.c" /* glr.c:851 */
7408 break;
7409
7410 case 216: /* struct_args */
7411 #line 338 "src/parser_proc_grammar.y" /* glr.c:851 */
7412 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7413 #line 7414 "src/parser_proc.c" /* glr.c:851 */
7414 break;
7415
7416 case 217: /* struct_arg_var_list */
7417 #line 338 "src/parser_proc_grammar.y" /* glr.c:851 */
7418 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7419 #line 7420 "src/parser_proc.c" /* glr.c:851 */
7420 break;
7421
7422 case 218: /* decl_vars_with_layout */
7423 #line 338 "src/parser_proc_grammar.y" /* glr.c:851 */
7424 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7425 #line 7426 "src/parser_proc.c" /* glr.c:851 */
7426 break;
7427
7428 case 219: /* decl_enum */
7429 #line 334 "src/parser_proc_grammar.y" /* glr.c:851 */
7430 {psi_decl_enum_free(&(*(struct psi_decl_enum **)(&(*yyvaluep))));}
7431 #line 7432 "src/parser_proc.c" /* glr.c:851 */
7432 break;
7433
7434 case 220: /* decl_enum_items */
7435 #line 338 "src/parser_proc_grammar.y" /* glr.c:851 */
7436 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7437 #line 7438 "src/parser_proc.c" /* glr.c:851 */
7438 break;
7439
7440 case 221: /* decl_enum_item */
7441 #line 336 "src/parser_proc_grammar.y" /* glr.c:851 */
7442 {psi_decl_enum_item_free(&(*(struct psi_decl_enum_item **)(&(*yyvaluep))));}
7443 #line 7444 "src/parser_proc.c" /* glr.c:851 */
7444 break;
7445
7446 case 222: /* num_exp */
7447 #line 394 "src/parser_proc_grammar.y" /* glr.c:851 */
7448 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
7449 #line 7450 "src/parser_proc.c" /* glr.c:851 */
7450 break;
7451
7452 case 223: /* number */
7453 #line 396 "src/parser_proc_grammar.y" /* glr.c:851 */
7454 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7455 #line 7456 "src/parser_proc.c" /* glr.c:851 */
7456 break;
7457
7458 case 224: /* sizeof */
7459 #line 346 "src/parser_proc_grammar.y" /* glr.c:851 */
7460 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7461 #line 7462 "src/parser_proc.c" /* glr.c:851 */
7462 break;
7463
7464 case 225: /* sizeof_body */
7465 #line 346 "src/parser_proc_grammar.y" /* glr.c:851 */
7466 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7467 #line 7468 "src/parser_proc.c" /* glr.c:851 */
7468 break;
7469
7470 case 226: /* sizeof_body_notypes */
7471 #line 346 "src/parser_proc_grammar.y" /* glr.c:851 */
7472 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7473 #line 7474 "src/parser_proc.c" /* glr.c:851 */
7474 break;
7475
7476 case 227: /* enum_name */
7477 #line 284 "src/parser_proc_grammar.y" /* glr.c:851 */
7478 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7479 #line 7480 "src/parser_proc.c" /* glr.c:851 */
7480 break;
7481
7482 case 228: /* union_name */
7483 #line 284 "src/parser_proc_grammar.y" /* glr.c:851 */
7484 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7485 #line 7486 "src/parser_proc.c" /* glr.c:851 */
7486 break;
7487
7488 case 229: /* struct_name */
7489 #line 284 "src/parser_proc_grammar.y" /* glr.c:851 */
7490 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7491 #line 7492 "src/parser_proc.c" /* glr.c:851 */
7492 break;
7493
7494 case 230: /* optional_name */
7495 #line 284 "src/parser_proc_grammar.y" /* glr.c:851 */
7496 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7497 #line 7498 "src/parser_proc.c" /* glr.c:851 */
7498 break;
7499
7500 case 232: /* decl_layout */
7501 #line 343 "src/parser_proc_grammar.y" /* glr.c:851 */
7502 {psi_layout_free(&(*(struct psi_layout **)(&(*yyvaluep))));}
7503 #line 7504 "src/parser_proc.c" /* glr.c:851 */
7504 break;
7505
7506 case 233: /* align_and_size */
7507 #line 341 "src/parser_proc_grammar.y" /* glr.c:851 */
7508 {}
7509 #line 7510 "src/parser_proc.c" /* glr.c:851 */
7510 break;
7511
7512 case 234: /* array_size */
7513 #line 399 "src/parser_proc_grammar.y" /* glr.c:851 */
7514 {}
7515 #line 7516 "src/parser_proc.c" /* glr.c:851 */
7516 break;
7517
7518 case 236: /* indirection */
7519 #line 399 "src/parser_proc_grammar.y" /* glr.c:851 */
7520 {}
7521 #line 7522 "src/parser_proc.c" /* glr.c:851 */
7522 break;
7523
7524 case 237: /* pointers */
7525 #line 399 "src/parser_proc_grammar.y" /* glr.c:851 */
7526 {}
7527 #line 7528 "src/parser_proc.c" /* glr.c:851 */
7528 break;
7529
7530 case 238: /* asterisks */
7531 #line 399 "src/parser_proc_grammar.y" /* glr.c:851 */
7532 {}
7533 #line 7534 "src/parser_proc.c" /* glr.c:851 */
7534 break;
7535
7536 case 241: /* impl */
7537 #line 349 "src/parser_proc_grammar.y" /* glr.c:851 */
7538 {psi_impl_free(&(*(struct psi_impl **)(&(*yyvaluep))));}
7539 #line 7540 "src/parser_proc.c" /* glr.c:851 */
7540 break;
7541
7542 case 242: /* impl_func */
7543 #line 351 "src/parser_proc_grammar.y" /* glr.c:851 */
7544 {psi_impl_func_free(&(*(struct psi_impl_func **)(&(*yyvaluep))));}
7545 #line 7546 "src/parser_proc.c" /* glr.c:851 */
7546 break;
7547
7548 case 243: /* impl_args */
7549 #line 391 "src/parser_proc_grammar.y" /* glr.c:851 */
7550 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7551 #line 7552 "src/parser_proc.c" /* glr.c:851 */
7552 break;
7553
7554 case 244: /* impl_arg */
7555 #line 353 "src/parser_proc_grammar.y" /* glr.c:851 */
7556 {psi_impl_arg_free(&(*(struct psi_impl_arg **)(&(*yyvaluep))));}
7557 #line 7558 "src/parser_proc.c" /* glr.c:851 */
7558 break;
7559
7560 case 245: /* impl_var */
7561 #line 357 "src/parser_proc_grammar.y" /* glr.c:851 */
7562 {psi_impl_var_free(&(*(struct psi_impl_var **)(&(*yyvaluep))));}
7563 #line 7564 "src/parser_proc.c" /* glr.c:851 */
7564 break;
7565
7566 case 246: /* impl_type */
7567 #line 355 "src/parser_proc_grammar.y" /* glr.c:851 */
7568 {psi_impl_type_free(&(*(struct psi_impl_type **)(&(*yyvaluep))));}
7569 #line 7570 "src/parser_proc.c" /* glr.c:851 */
7570 break;
7571
7572 case 247: /* impl_type_restricted */
7573 #line 355 "src/parser_proc_grammar.y" /* glr.c:851 */
7574 {psi_impl_type_free(&(*(struct psi_impl_type **)(&(*yyvaluep))));}
7575 #line 7576 "src/parser_proc.c" /* glr.c:851 */
7576 break;
7577
7578 case 248: /* impl_type_token */
7579 #line 389 "src/parser_proc_grammar.y" /* glr.c:851 */
7580 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7581 #line 7582 "src/parser_proc.c" /* glr.c:851 */
7582 break;
7583
7584 case 249: /* impl_type_restricted_token */
7585 #line 389 "src/parser_proc_grammar.y" /* glr.c:851 */
7586 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7587 #line 7588 "src/parser_proc.c" /* glr.c:851 */
7588 break;
7589
7590 case 250: /* impl_type_extended_token */
7591 #line 389 "src/parser_proc_grammar.y" /* glr.c:851 */
7592 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7593 #line 7594 "src/parser_proc.c" /* glr.c:851 */
7594 break;
7595
7596 case 251: /* impl_stmts */
7597 #line 391 "src/parser_proc_grammar.y" /* glr.c:851 */
7598 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7599 #line 7600 "src/parser_proc.c" /* glr.c:851 */
7600 break;
7601
7602 case 252: /* impl_stmt */
7603 #line 387 "src/parser_proc_grammar.y" /* glr.c:851 */
7604 {psi_impl_stmt_free(&(*(struct psi_token ***)(&(*yyvaluep))));}
7605 #line 7606 "src/parser_proc.c" /* glr.c:851 */
7606 break;
7607
7608 case 253: /* let_stmt */
7609 #line 360 "src/parser_proc_grammar.y" /* glr.c:851 */
7610 {psi_let_stmt_free(&(*(struct psi_let_stmt **)(&(*yyvaluep))));}
7611 #line 7612 "src/parser_proc.c" /* glr.c:851 */
7612 break;
7613
7614 case 254: /* let_exp */
7615 #line 362 "src/parser_proc_grammar.y" /* glr.c:851 */
7616 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
7617 #line 7618 "src/parser_proc.c" /* glr.c:851 */
7618 break;
7619
7620 case 255: /* let_exp_byref */
7621 #line 362 "src/parser_proc_grammar.y" /* glr.c:851 */
7622 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
7623 #line 7624 "src/parser_proc.c" /* glr.c:851 */
7624 break;
7625
7626 case 256: /* let_exp_assign */
7627 #line 362 "src/parser_proc_grammar.y" /* glr.c:851 */
7628 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
7629 #line 7630 "src/parser_proc.c" /* glr.c:851 */
7630 break;
7631
7632 case 257: /* let_calloc */
7633 #line 364 "src/parser_proc_grammar.y" /* glr.c:851 */
7634 {psi_let_calloc_free(&(*(struct psi_let_calloc **)(&(*yyvaluep))));}
7635 #line 7636 "src/parser_proc.c" /* glr.c:851 */
7636 break;
7637
7638 case 258: /* let_callback */
7639 #line 366 "src/parser_proc_grammar.y" /* glr.c:851 */
7640 {psi_let_callback_free(&(*(struct psi_let_callback **)(&(*yyvaluep))));}
7641 #line 7642 "src/parser_proc.c" /* glr.c:851 */
7642 break;
7643
7644 case 259: /* let_func */
7645 #line 368 "src/parser_proc_grammar.y" /* glr.c:851 */
7646 {psi_let_func_free(&(*(struct psi_let_func **)(&(*yyvaluep))));}
7647 #line 7648 "src/parser_proc.c" /* glr.c:851 */
7648 break;
7649
7650 case 260: /* let_func_token */
7651 #line 389 "src/parser_proc_grammar.y" /* glr.c:851 */
7652 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7653 #line 7654 "src/parser_proc.c" /* glr.c:851 */
7654 break;
7655
7656 case 261: /* let_func_exps */
7657 #line 391 "src/parser_proc_grammar.y" /* glr.c:851 */
7658 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7659 #line 7660 "src/parser_proc.c" /* glr.c:851 */
7660 break;
7661
7662 case 262: /* let_exps */
7663 #line 391 "src/parser_proc_grammar.y" /* glr.c:851 */
7664 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7665 #line 7666 "src/parser_proc.c" /* glr.c:851 */
7666 break;
7667
7668 case 263: /* callback_rval */
7669 #line 389 "src/parser_proc_grammar.y" /* glr.c:851 */
7670 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7671 #line 7672 "src/parser_proc.c" /* glr.c:851 */
7672 break;
7673
7674 case 264: /* callback_arg_list */
7675 #line 391 "src/parser_proc_grammar.y" /* glr.c:851 */
7676 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7677 #line 7678 "src/parser_proc.c" /* glr.c:851 */
7678 break;
7679
7680 case 265: /* callback_args */
7681 #line 391 "src/parser_proc_grammar.y" /* glr.c:851 */
7682 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7683 #line 7684 "src/parser_proc.c" /* glr.c:851 */
7684 break;
7685
7686 case 266: /* return_stmt */
7687 #line 378 "src/parser_proc_grammar.y" /* glr.c:851 */
7688 {psi_return_stmt_free(&(*(struct psi_return_stmt **)(&(*yyvaluep))));}
7689 #line 7690 "src/parser_proc.c" /* glr.c:851 */
7690 break;
7691
7692 case 267: /* return_exp */
7693 #line 380 "src/parser_proc_grammar.y" /* glr.c:851 */
7694 {psi_return_exp_free(&(*(struct psi_return_exp **)(&(*yyvaluep))));}
7695 #line 7696 "src/parser_proc.c" /* glr.c:851 */
7696 break;
7697
7698 case 268: /* call_decl_vars */
7699 #line 338 "src/parser_proc_grammar.y" /* glr.c:851 */
7700 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7701 #line 7702 "src/parser_proc.c" /* glr.c:851 */
7702 break;
7703
7704 case 269: /* set_stmt */
7705 #line 370 "src/parser_proc_grammar.y" /* glr.c:851 */
7706 {psi_set_stmt_free(&(*(struct psi_set_stmt **)(&(*yyvaluep))));}
7707 #line 7708 "src/parser_proc.c" /* glr.c:851 */
7708 break;
7709
7710 case 270: /* set_exp */
7711 #line 372 "src/parser_proc_grammar.y" /* glr.c:851 */
7712 {psi_set_exp_free(&(*(struct psi_set_exp **)(&(*yyvaluep))));}
7713 #line 7714 "src/parser_proc.c" /* glr.c:851 */
7714 break;
7715
7716 case 271: /* set_func */
7717 #line 374 "src/parser_proc_grammar.y" /* glr.c:851 */
7718 {psi_set_func_free(&(*(struct psi_set_func **)(&(*yyvaluep))));}
7719 #line 7720 "src/parser_proc.c" /* glr.c:851 */
7720 break;
7721
7722 case 272: /* set_func_token */
7723 #line 389 "src/parser_proc_grammar.y" /* glr.c:851 */
7724 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7725 #line 7726 "src/parser_proc.c" /* glr.c:851 */
7726 break;
7727
7728 case 273: /* set_func_exps */
7729 #line 391 "src/parser_proc_grammar.y" /* glr.c:851 */
7730 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7731 #line 7732 "src/parser_proc.c" /* glr.c:851 */
7732 break;
7733
7734 case 274: /* set_exps */
7735 #line 391 "src/parser_proc_grammar.y" /* glr.c:851 */
7736 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7737 #line 7738 "src/parser_proc.c" /* glr.c:851 */
7738 break;
7739
7740 case 275: /* assert_stmt */
7741 #line 376 "src/parser_proc_grammar.y" /* glr.c:851 */
7742 {psi_assert_stmt_free(&(*(struct psi_assert_stmt **)(&(*yyvaluep))));}
7743 #line 7744 "src/parser_proc.c" /* glr.c:851 */
7744 break;
7745
7746 case 276: /* assert_stmt_token */
7747 #line 389 "src/parser_proc_grammar.y" /* glr.c:851 */
7748 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7749 #line 7750 "src/parser_proc.c" /* glr.c:851 */
7750 break;
7751
7752 case 277: /* free_stmt */
7753 #line 382 "src/parser_proc_grammar.y" /* glr.c:851 */
7754 {psi_free_stmt_free(&(*(struct psi_free_stmt **)(&(*yyvaluep))));}
7755 #line 7756 "src/parser_proc.c" /* glr.c:851 */
7756 break;
7757
7758 case 278: /* free_exps */
7759 #line 391 "src/parser_proc_grammar.y" /* glr.c:851 */
7760 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7761 #line 7762 "src/parser_proc.c" /* glr.c:851 */
7762 break;
7763
7764 case 279: /* free_exp */
7765 #line 384 "src/parser_proc_grammar.y" /* glr.c:851 */
7766 {psi_free_exp_free(&(*(struct psi_free_exp **)(&(*yyvaluep))));}
7767 #line 7768 "src/parser_proc.c" /* glr.c:851 */
7768 break;
7769
7770 case 280: /* reference */
7771 #line 401 "src/parser_proc_grammar.y" /* glr.c:851 */
7772 {}
7773 #line 7774 "src/parser_proc.c" /* glr.c:851 */
7774 break;
7775
7776
7777 default:
7778 break;
7779 }
7780 YY_IGNORE_MAYBE_UNINITIALIZED_END
7781 }
7782
7783 /** Number of symbols composing the right hand side of rule #RULE. */
7784 static inline int
7785 yyrhsLength (yyRuleNum yyrule)
7786 {
7787 return yyr2[yyrule];
7788 }
7789
7790 static void
7791 yydestroyGLRState (char const *yymsg, yyGLRState *yys, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7792 {
7793 if (yys->yyresolved)
7794 yydestruct (yymsg, yystos[yys->yylrState],
7795 &yys->yysemantics.yysval, P, tokens, index);
7796 else
7797 {
7798 #if YYDEBUG
7799 if (yydebug)
7800 {
7801 if (yys->yysemantics.yyfirstVal)
7802 YYFPRINTF (stderr, "%s unresolved", yymsg);
7803 else
7804 YYFPRINTF (stderr, "%s incomplete", yymsg);
7805 YY_SYMBOL_PRINT ("", yystos[yys->yylrState], YY_NULLPTR, &yys->yyloc);
7806 }
7807 #endif
7808
7809 if (yys->yysemantics.yyfirstVal)
7810 {
7811 yySemanticOption *yyoption = yys->yysemantics.yyfirstVal;
7812 yyGLRState *yyrh;
7813 int yyn;
7814 for (yyrh = yyoption->yystate, yyn = yyrhsLength (yyoption->yyrule);
7815 yyn > 0;
7816 yyrh = yyrh->yypred, yyn -= 1)
7817 yydestroyGLRState (yymsg, yyrh, P, tokens, index);
7818 }
7819 }
7820 }
7821
7822 /** Left-hand-side symbol for rule #YYRULE. */
7823 static inline yySymbol
7824 yylhsNonterm (yyRuleNum yyrule)
7825 {
7826 return yyr1[yyrule];
7827 }
7828
7829 #define yypact_value_is_default(Yystate) \
7830 (!!((Yystate) == (-731)))
7831
7832 /** True iff LR state YYSTATE has only a default reduction (regardless
7833 * of token). */
7834 static inline yybool
7835 yyisDefaultedState (yyStateNum yystate)
7836 {
7837 return (yybool) yypact_value_is_default (yypact[yystate]);
7838 }
7839
7840 /** The default reduction for YYSTATE, assuming it has one. */
7841 static inline yyRuleNum
7842 yydefaultAction (yyStateNum yystate)
7843 {
7844 return yydefact[yystate];
7845 }
7846
7847 #define yytable_value_is_error(Yytable_value) \
7848 0
7849
7850 /** Set *YYACTION to the action to take in YYSTATE on seeing YYTOKEN.
7851 * Result R means
7852 * R < 0: Reduce on rule -R.
7853 * R = 0: Error.
7854 * R > 0: Shift to state R.
7855 * Set *YYCONFLICTS to a pointer into yyconfl to a 0-terminated list
7856 * of conflicting reductions.
7857 */
7858 static inline void
7859 yygetLRActions (yyStateNum yystate, int yytoken,
7860 int* yyaction, const short** yyconflicts)
7861 {
7862 int yyindex = yypact[yystate] + yytoken;
7863 if (yyisDefaultedState (yystate)
7864 || yyindex < 0 || YYLAST < yyindex || yycheck[yyindex] != yytoken)
7865 {
7866 *yyaction = -yydefact[yystate];
7867 *yyconflicts = yyconfl;
7868 }
7869 else if (! yytable_value_is_error (yytable[yyindex]))
7870 {
7871 *yyaction = yytable[yyindex];
7872 *yyconflicts = yyconfl + yyconflp[yyindex];
7873 }
7874 else
7875 {
7876 *yyaction = 0;
7877 *yyconflicts = yyconfl + yyconflp[yyindex];
7878 }
7879 }
7880
7881 /** Compute post-reduction state.
7882 * \param yystate the current state
7883 * \param yysym the nonterminal to push on the stack
7884 */
7885 static inline yyStateNum
7886 yyLRgotoState (yyStateNum yystate, yySymbol yysym)
7887 {
7888 int yyr = yypgoto[yysym - YYNTOKENS] + yystate;
7889 if (0 <= yyr && yyr <= YYLAST && yycheck[yyr] == yystate)
7890 return yytable[yyr];
7891 else
7892 return yydefgoto[yysym - YYNTOKENS];
7893 }
7894
7895 static inline yybool
7896 yyisShiftAction (int yyaction)
7897 {
7898 return (yybool) (0 < yyaction);
7899 }
7900
7901 static inline yybool
7902 yyisErrorAction (int yyaction)
7903 {
7904 return (yybool) (yyaction == 0);
7905 }
7906
7907 /* GLRStates */
7908
7909 /** Return a fresh GLRStackItem in YYSTACKP. The item is an LR state
7910 * if YYISSTATE, and otherwise a semantic option. Callers should call
7911 * YY_RESERVE_GLRSTACK afterwards to make sure there is sufficient
7912 * headroom. */
7913
7914 static inline yyGLRStackItem*
7915 yynewGLRStackItem (yyGLRStack* yystackp, yybool yyisState)
7916 {
7917 yyGLRStackItem* yynewItem = yystackp->yynextFree;
7918 yystackp->yyspaceLeft -= 1;
7919 yystackp->yynextFree += 1;
7920 yynewItem->yystate.yyisState = yyisState;
7921 return yynewItem;
7922 }
7923
7924 /** Add a new semantic action that will execute the action for rule
7925 * YYRULE on the semantic values in YYRHS to the list of
7926 * alternative actions for YYSTATE. Assumes that YYRHS comes from
7927 * stack #YYK of *YYSTACKP. */
7928 static void
7929 yyaddDeferredAction (yyGLRStack* yystackp, size_t yyk, yyGLRState* yystate,
7930 yyGLRState* yyrhs, yyRuleNum yyrule)
7931 {
7932 yySemanticOption* yynewOption =
7933 &yynewGLRStackItem (yystackp, yyfalse)->yyoption;
7934 YYASSERT (!yynewOption->yyisState);
7935 yynewOption->yystate = yyrhs;
7936 yynewOption->yyrule = yyrule;
7937 if (yystackp->yytops.yylookaheadNeeds[yyk])
7938 {
7939 yynewOption->yyrawchar = yychar;
7940 yynewOption->yyval = yylval;
7941 }
7942 else
7943 yynewOption->yyrawchar = YYEMPTY;
7944 yynewOption->yynext = yystate->yysemantics.yyfirstVal;
7945 yystate->yysemantics.yyfirstVal = yynewOption;
7946
7947 YY_RESERVE_GLRSTACK (yystackp);
7948 }
7949
7950 /* GLRStacks */
7951
7952 /** Initialize YYSET to a singleton set containing an empty stack. */
7953 static yybool
7954 yyinitStateSet (yyGLRStateSet* yyset)
7955 {
7956 yyset->yysize = 1;
7957 yyset->yycapacity = 16;
7958 yyset->yystates = (yyGLRState**) YYMALLOC (16 * sizeof yyset->yystates[0]);
7959 if (! yyset->yystates)
7960 return yyfalse;
7961 yyset->yystates[0] = YY_NULLPTR;
7962 yyset->yylookaheadNeeds =
7963 (yybool*) YYMALLOC (16 * sizeof yyset->yylookaheadNeeds[0]);
7964 if (! yyset->yylookaheadNeeds)
7965 {
7966 YYFREE (yyset->yystates);
7967 return yyfalse;
7968 }
7969 return yytrue;
7970 }
7971
7972 static void yyfreeStateSet (yyGLRStateSet* yyset)
7973 {
7974 YYFREE (yyset->yystates);
7975 YYFREE (yyset->yylookaheadNeeds);
7976 }
7977
7978 /** Initialize *YYSTACKP to a single empty stack, with total maximum
7979 * capacity for all stacks of YYSIZE. */
7980 static yybool
7981 yyinitGLRStack (yyGLRStack* yystackp, size_t yysize)
7982 {
7983 yystackp->yyerrState = 0;
7984 yynerrs = 0;
7985 yystackp->yyspaceLeft = yysize;
7986 yystackp->yyitems =
7987 (yyGLRStackItem*) YYMALLOC (yysize * sizeof yystackp->yynextFree[0]);
7988 if (!yystackp->yyitems)
7989 return yyfalse;
7990 yystackp->yynextFree = yystackp->yyitems;
7991 yystackp->yysplitPoint = YY_NULLPTR;
7992 yystackp->yylastDeleted = YY_NULLPTR;
7993 return yyinitStateSet (&yystackp->yytops);
7994 }
7995
7996
7997 #if YYSTACKEXPANDABLE
7998 # define YYRELOC(YYFROMITEMS,YYTOITEMS,YYX,YYTYPE) \
7999 &((YYTOITEMS) - ((YYFROMITEMS) - (yyGLRStackItem*) (YYX)))->YYTYPE
8000
8001 /** If *YYSTACKP is expandable, extend it. WARNING: Pointers into the
8002 stack from outside should be considered invalid after this call.
8003 We always expand when there are 1 or fewer items left AFTER an
8004 allocation, so that we can avoid having external pointers exist
8005 across an allocation. */
8006 static void
8007 yyexpandGLRStack (yyGLRStack* yystackp)
8008 {
8009 yyGLRStackItem* yynewItems;
8010 yyGLRStackItem* yyp0, *yyp1;
8011 size_t yynewSize;
8012 size_t yyn;
8013 size_t yysize = (size_t) (yystackp->yynextFree - yystackp->yyitems);
8014 if (YYMAXDEPTH - YYHEADROOM < yysize)
8015 yyMemoryExhausted (yystackp);
8016 yynewSize = 2*yysize;
8017 if (YYMAXDEPTH < yynewSize)
8018 yynewSize = YYMAXDEPTH;
8019 yynewItems = (yyGLRStackItem*) YYMALLOC (yynewSize * sizeof yynewItems[0]);
8020 if (! yynewItems)
8021 yyMemoryExhausted (yystackp);
8022 for (yyp0 = yystackp->yyitems, yyp1 = yynewItems, yyn = yysize;
8023 0 < yyn;
8024 yyn -= 1, yyp0 += 1, yyp1 += 1)
8025 {
8026 *yyp1 = *yyp0;
8027 if (*(yybool *) yyp0)
8028 {
8029 yyGLRState* yys0 = &yyp0->yystate;
8030 yyGLRState* yys1 = &yyp1->yystate;
8031 if (yys0->yypred != YY_NULLPTR)
8032 yys1->yypred =
8033 YYRELOC (yyp0, yyp1, yys0->yypred, yystate);
8034 if (! yys0->yyresolved && yys0->yysemantics.yyfirstVal != YY_NULLPTR)
8035 yys1->yysemantics.yyfirstVal =
8036 YYRELOC (yyp0, yyp1, yys0->yysemantics.yyfirstVal, yyoption);
8037 }
8038 else
8039 {
8040 yySemanticOption* yyv0 = &yyp0->yyoption;
8041 yySemanticOption* yyv1 = &yyp1->yyoption;
8042 if (yyv0->yystate != YY_NULLPTR)
8043 yyv1->yystate = YYRELOC (yyp0, yyp1, yyv0->yystate, yystate);
8044 if (yyv0->yynext != YY_NULLPTR)
8045 yyv1->yynext = YYRELOC (yyp0, yyp1, yyv0->yynext, yyoption);
8046 }
8047 }
8048 if (yystackp->yysplitPoint != YY_NULLPTR)
8049 yystackp->yysplitPoint = YYRELOC (yystackp->yyitems, yynewItems,
8050 yystackp->yysplitPoint, yystate);
8051
8052 for (yyn = 0; yyn < yystackp->yytops.yysize; yyn += 1)
8053 if (yystackp->yytops.yystates[yyn] != YY_NULLPTR)
8054 yystackp->yytops.yystates[yyn] =
8055 YYRELOC (yystackp->yyitems, yynewItems,
8056 yystackp->yytops.yystates[yyn], yystate);
8057 YYFREE (yystackp->yyitems);
8058 yystackp->yyitems = yynewItems;
8059 yystackp->yynextFree = yynewItems + yysize;
8060 yystackp->yyspaceLeft = yynewSize - yysize;
8061 }
8062 #endif
8063
8064 static void
8065 yyfreeGLRStack (yyGLRStack* yystackp)
8066 {
8067 YYFREE (yystackp->yyitems);
8068 yyfreeStateSet (&yystackp->yytops);
8069 }
8070
8071 /** Assuming that YYS is a GLRState somewhere on *YYSTACKP, update the
8072 * splitpoint of *YYSTACKP, if needed, so that it is at least as deep as
8073 * YYS. */
8074 static inline void
8075 yyupdateSplit (yyGLRStack* yystackp, yyGLRState* yys)
8076 {
8077 if (yystackp->yysplitPoint != YY_NULLPTR && yystackp->yysplitPoint > yys)
8078 yystackp->yysplitPoint = yys;
8079 }
8080
8081 /** Invalidate stack #YYK in *YYSTACKP. */
8082 static inline void
8083 yymarkStackDeleted (yyGLRStack* yystackp, size_t yyk)
8084 {
8085 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
8086 yystackp->yylastDeleted = yystackp->yytops.yystates[yyk];
8087 yystackp->yytops.yystates[yyk] = YY_NULLPTR;
8088 }
8089
8090 /** Undelete the last stack in *YYSTACKP that was marked as deleted. Can
8091 only be done once after a deletion, and only when all other stacks have
8092 been deleted. */
8093 static void
8094 yyundeleteLastStack (yyGLRStack* yystackp)
8095 {
8096 if (yystackp->yylastDeleted == YY_NULLPTR || yystackp->yytops.yysize != 0)
8097 return;
8098 yystackp->yytops.yystates[0] = yystackp->yylastDeleted;
8099 yystackp->yytops.yysize = 1;
8100 YYDPRINTF ((stderr, "Restoring last deleted stack as stack #0.\n"));
8101 yystackp->yylastDeleted = YY_NULLPTR;
8102 }
8103
8104 static inline void
8105 yyremoveDeletes (yyGLRStack* yystackp)
8106 {
8107 size_t yyi, yyj;
8108 yyi = yyj = 0;
8109 while (yyj < yystackp->yytops.yysize)
8110 {
8111 if (yystackp->yytops.yystates[yyi] == YY_NULLPTR)
8112 {
8113 if (yyi == yyj)
8114 {
8115 YYDPRINTF ((stderr, "Removing dead stacks.\n"));
8116 }
8117 yystackp->yytops.yysize -= 1;
8118 }
8119 else
8120 {
8121 yystackp->yytops.yystates[yyj] = yystackp->yytops.yystates[yyi];
8122 /* In the current implementation, it's unnecessary to copy
8123 yystackp->yytops.yylookaheadNeeds[yyi] since, after
8124 yyremoveDeletes returns, the parser immediately either enters
8125 deterministic operation or shifts a token. However, it doesn't
8126 hurt, and the code might evolve to need it. */
8127 yystackp->yytops.yylookaheadNeeds[yyj] =
8128 yystackp->yytops.yylookaheadNeeds[yyi];
8129 if (yyj != yyi)
8130 {
8131 YYDPRINTF ((stderr, "Rename stack %lu -> %lu.\n",
8132 (unsigned long) yyi, (unsigned long) yyj));
8133 }
8134 yyj += 1;
8135 }
8136 yyi += 1;
8137 }
8138 }
8139
8140 /** Shift to a new state on stack #YYK of *YYSTACKP, corresponding to LR
8141 * state YYLRSTATE, at input position YYPOSN, with (resolved) semantic
8142 * value *YYVALP and source location *YYLOCP. */
8143 static inline void
8144 yyglrShift (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
8145 size_t yyposn,
8146 YYSTYPE* yyvalp)
8147 {
8148 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
8149
8150 yynewState->yylrState = yylrState;
8151 yynewState->yyposn = yyposn;
8152 yynewState->yyresolved = yytrue;
8153 yynewState->yypred = yystackp->yytops.yystates[yyk];
8154 yynewState->yysemantics.yysval = *yyvalp;
8155 yystackp->yytops.yystates[yyk] = yynewState;
8156
8157 YY_RESERVE_GLRSTACK (yystackp);
8158 }
8159
8160 /** Shift stack #YYK of *YYSTACKP, to a new state corresponding to LR
8161 * state YYLRSTATE, at input position YYPOSN, with the (unresolved)
8162 * semantic value of YYRHS under the action for YYRULE. */
8163 static inline void
8164 yyglrShiftDefer (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
8165 size_t yyposn, yyGLRState* yyrhs, yyRuleNum yyrule)
8166 {
8167 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
8168 YYASSERT (yynewState->yyisState);
8169
8170 yynewState->yylrState = yylrState;
8171 yynewState->yyposn = yyposn;
8172 yynewState->yyresolved = yyfalse;
8173 yynewState->yypred = yystackp->yytops.yystates[yyk];
8174 yynewState->yysemantics.yyfirstVal = YY_NULLPTR;
8175 yystackp->yytops.yystates[yyk] = yynewState;
8176
8177 /* Invokes YY_RESERVE_GLRSTACK. */
8178 yyaddDeferredAction (yystackp, yyk, yynewState, yyrhs, yyrule);
8179 }
8180
8181 #if !YYDEBUG
8182 # define YY_REDUCE_PRINT(Args)
8183 #else
8184 # define YY_REDUCE_PRINT(Args) \
8185 do { \
8186 if (yydebug) \
8187 yy_reduce_print Args; \
8188 } while (0)
8189
8190 /*----------------------------------------------------------------------.
8191 | Report that stack #YYK of *YYSTACKP is going to be reduced by YYRULE. |
8192 `----------------------------------------------------------------------*/
8193
8194 static inline void
8195 yy_reduce_print (yybool yynormal, yyGLRStackItem* yyvsp, size_t yyk,
8196 yyRuleNum yyrule, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8197 {
8198 int yynrhs = yyrhsLength (yyrule);
8199 int yyi;
8200 YYFPRINTF (stderr, "Reducing stack %lu by rule %d (line %lu):\n",
8201 (unsigned long) yyk, yyrule - 1,
8202 (unsigned long) yyrline[yyrule]);
8203 if (! yynormal)
8204 yyfillin (yyvsp, 1, -yynrhs);
8205 /* The symbols being reduced. */
8206 for (yyi = 0; yyi < yynrhs; yyi++)
8207 {
8208 YYFPRINTF (stderr, " $%d = ", yyi + 1);
8209 yy_symbol_print (stderr,
8210 yystos[yyvsp[yyi - yynrhs + 1].yystate.yylrState],
8211 &yyvsp[yyi - yynrhs + 1].yystate.yysemantics.yysval , P, tokens, index);
8212 if (!yyvsp[yyi - yynrhs + 1].yystate.yyresolved)
8213 YYFPRINTF (stderr, " (unresolved)");
8214 YYFPRINTF (stderr, "\n");
8215 }
8216 }
8217 #endif
8218
8219 /** Pop the symbols consumed by reduction #YYRULE from the top of stack
8220 * #YYK of *YYSTACKP, and perform the appropriate semantic action on their
8221 * semantic values. Assumes that all ambiguities in semantic values
8222 * have been previously resolved. Set *YYVALP to the resulting value,
8223 * and *YYLOCP to the computed location (if any). Return value is as
8224 * for userAction. */
8225 static inline YYRESULTTAG
8226 yydoAction (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
8227 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8228 {
8229 int yynrhs = yyrhsLength (yyrule);
8230
8231 if (yystackp->yysplitPoint == YY_NULLPTR)
8232 {
8233 /* Standard special case: single stack. */
8234 yyGLRStackItem* yyrhs = (yyGLRStackItem*) yystackp->yytops.yystates[yyk];
8235 YYASSERT (yyk == 0);
8236 yystackp->yynextFree -= yynrhs;
8237 yystackp->yyspaceLeft += (size_t) yynrhs;
8238 yystackp->yytops.yystates[0] = & yystackp->yynextFree[-1].yystate;
8239 YY_REDUCE_PRINT ((yytrue, yyrhs, yyk, yyrule, P, tokens, index));
8240 return yyuserAction (yyrule, yynrhs, yyrhs, yystackp,
8241 yyvalp, P, tokens, index);
8242 }
8243 else
8244 {
8245 int yyi;
8246 yyGLRState* yys;
8247 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
8248 yys = yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred
8249 = yystackp->yytops.yystates[yyk];
8250 for (yyi = 0; yyi < yynrhs; yyi += 1)
8251 {
8252 yys = yys->yypred;
8253 YYASSERT (yys);
8254 }
8255 yyupdateSplit (yystackp, yys);
8256 yystackp->yytops.yystates[yyk] = yys;
8257 YY_REDUCE_PRINT ((yyfalse, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1, yyk, yyrule, P, tokens, index));
8258 return yyuserAction (yyrule, yynrhs, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
8259 yystackp, yyvalp, P, tokens, index);
8260 }
8261 }
8262
8263 /** Pop items off stack #YYK of *YYSTACKP according to grammar rule YYRULE,
8264 * and push back on the resulting nonterminal symbol. Perform the
8265 * semantic action associated with YYRULE and store its value with the
8266 * newly pushed state, if YYFORCEEVAL or if *YYSTACKP is currently
8267 * unambiguous. Otherwise, store the deferred semantic action with
8268 * the new state. If the new state would have an identical input
8269 * position, LR state, and predecessor to an existing state on the stack,
8270 * it is identified with that existing state, eliminating stack #YYK from
8271 * *YYSTACKP. In this case, the semantic value is
8272 * added to the options for the existing state's semantic value.
8273 */
8274 static inline YYRESULTTAG
8275 yyglrReduce (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
8276 yybool yyforceEval, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8277 {
8278 size_t yyposn = yystackp->yytops.yystates[yyk]->yyposn;
8279
8280 if (yyforceEval || yystackp->yysplitPoint == YY_NULLPTR)
8281 {
8282 YYSTYPE yysval;
8283
8284 YYRESULTTAG yyflag = yydoAction (yystackp, yyk, yyrule, &yysval, P, tokens, index);
8285 if (yyflag == yyerr && yystackp->yysplitPoint != YY_NULLPTR)
8286 {
8287 YYDPRINTF ((stderr, "Parse on stack %lu rejected by rule #%d.\n",
8288 (unsigned long) yyk, yyrule - 1));
8289 }
8290 if (yyflag != yyok)
8291 return yyflag;
8292 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyrule], &yysval, &yyloc);
8293 yyglrShift (yystackp, yyk,
8294 yyLRgotoState (yystackp->yytops.yystates[yyk]->yylrState,
8295 yylhsNonterm (yyrule)),
8296 yyposn, &yysval);
8297 }
8298 else
8299 {
8300 size_t yyi;
8301 int yyn;
8302 yyGLRState* yys, *yys0 = yystackp->yytops.yystates[yyk];
8303 yyStateNum yynewLRState;
8304
8305 for (yys = yystackp->yytops.yystates[yyk], yyn = yyrhsLength (yyrule);
8306 0 < yyn; yyn -= 1)
8307 {
8308 yys = yys->yypred;
8309 YYASSERT (yys);
8310 }
8311 yyupdateSplit (yystackp, yys);
8312 yynewLRState = yyLRgotoState (yys->yylrState, yylhsNonterm (yyrule));
8313 YYDPRINTF ((stderr,
8314 "Reduced stack %lu by rule #%d; action deferred. "
8315 "Now in state %d.\n",
8316 (unsigned long) yyk, yyrule - 1, yynewLRState));
8317 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
8318 if (yyi != yyk && yystackp->yytops.yystates[yyi] != YY_NULLPTR)
8319 {
8320 yyGLRState *yysplit = yystackp->yysplitPoint;
8321 yyGLRState *yyp = yystackp->yytops.yystates[yyi];
8322 while (yyp != yys && yyp != yysplit && yyp->yyposn >= yyposn)
8323 {
8324 if (yyp->yylrState == yynewLRState && yyp->yypred == yys)
8325 {
8326 yyaddDeferredAction (yystackp, yyk, yyp, yys0, yyrule);
8327 yymarkStackDeleted (yystackp, yyk);
8328 YYDPRINTF ((stderr, "Merging stack %lu into stack %lu.\n",
8329 (unsigned long) yyk,
8330 (unsigned long) yyi));
8331 return yyok;
8332 }
8333 yyp = yyp->yypred;
8334 }
8335 }
8336 yystackp->yytops.yystates[yyk] = yys;
8337 yyglrShiftDefer (yystackp, yyk, yynewLRState, yyposn, yys0, yyrule);
8338 }
8339 return yyok;
8340 }
8341
8342 static size_t
8343 yysplitStack (yyGLRStack* yystackp, size_t yyk)
8344 {
8345 if (yystackp->yysplitPoint == YY_NULLPTR)
8346 {
8347 YYASSERT (yyk == 0);
8348 yystackp->yysplitPoint = yystackp->yytops.yystates[yyk];
8349 }
8350 if (yystackp->yytops.yysize >= yystackp->yytops.yycapacity)
8351 {
8352 yyGLRState** yynewStates = YY_NULLPTR;
8353 yybool* yynewLookaheadNeeds;
8354
8355 if (yystackp->yytops.yycapacity
8356 > (YYSIZEMAX / (2 * sizeof yynewStates[0])))
8357 yyMemoryExhausted (yystackp);
8358 yystackp->yytops.yycapacity *= 2;
8359
8360 yynewStates =
8361 (yyGLRState**) YYREALLOC (yystackp->yytops.yystates,
8362 (yystackp->yytops.yycapacity
8363 * sizeof yynewStates[0]));
8364 if (yynewStates == YY_NULLPTR)
8365 yyMemoryExhausted (yystackp);
8366 yystackp->yytops.yystates = yynewStates;
8367
8368 yynewLookaheadNeeds =
8369 (yybool*) YYREALLOC (yystackp->yytops.yylookaheadNeeds,
8370 (yystackp->yytops.yycapacity
8371 * sizeof yynewLookaheadNeeds[0]));
8372 if (yynewLookaheadNeeds == YY_NULLPTR)
8373 yyMemoryExhausted (yystackp);
8374 yystackp->yytops.yylookaheadNeeds = yynewLookaheadNeeds;
8375 }
8376 yystackp->yytops.yystates[yystackp->yytops.yysize]
8377 = yystackp->yytops.yystates[yyk];
8378 yystackp->yytops.yylookaheadNeeds[yystackp->yytops.yysize]
8379 = yystackp->yytops.yylookaheadNeeds[yyk];
8380 yystackp->yytops.yysize += 1;
8381 return yystackp->yytops.yysize-1;
8382 }
8383
8384 /** True iff YYY0 and YYY1 represent identical options at the top level.
8385 * That is, they represent the same rule applied to RHS symbols
8386 * that produce the same terminal symbols. */
8387 static yybool
8388 yyidenticalOptions (yySemanticOption* yyy0, yySemanticOption* yyy1)
8389 {
8390 if (yyy0->yyrule == yyy1->yyrule)
8391 {
8392 yyGLRState *yys0, *yys1;
8393 int yyn;
8394 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
8395 yyn = yyrhsLength (yyy0->yyrule);
8396 yyn > 0;
8397 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
8398 if (yys0->yyposn != yys1->yyposn)
8399 return yyfalse;
8400 return yytrue;
8401 }
8402 else
8403 return yyfalse;
8404 }
8405
8406 /** Assuming identicalOptions (YYY0,YYY1), destructively merge the
8407 * alternative semantic values for the RHS-symbols of YYY1 and YYY0. */
8408 static void
8409 yymergeOptionSets (yySemanticOption* yyy0, yySemanticOption* yyy1)
8410 {
8411 yyGLRState *yys0, *yys1;
8412 int yyn;
8413 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
8414 yyn = yyrhsLength (yyy0->yyrule);
8415 yyn > 0;
8416 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
8417 {
8418 if (yys0 == yys1)
8419 break;
8420 else if (yys0->yyresolved)
8421 {
8422 yys1->yyresolved = yytrue;
8423 yys1->yysemantics.yysval = yys0->yysemantics.yysval;
8424 }
8425 else if (yys1->yyresolved)
8426 {
8427 yys0->yyresolved = yytrue;
8428 yys0->yysemantics.yysval = yys1->yysemantics.yysval;
8429 }
8430 else
8431 {
8432 yySemanticOption** yyz0p = &yys0->yysemantics.yyfirstVal;
8433 yySemanticOption* yyz1 = yys1->yysemantics.yyfirstVal;
8434 while (yytrue)
8435 {
8436 if (yyz1 == *yyz0p || yyz1 == YY_NULLPTR)
8437 break;
8438 else if (*yyz0p == YY_NULLPTR)
8439 {
8440 *yyz0p = yyz1;
8441 break;
8442 }
8443 else if (*yyz0p < yyz1)
8444 {
8445 yySemanticOption* yyz = *yyz0p;
8446 *yyz0p = yyz1;
8447 yyz1 = yyz1->yynext;
8448 (*yyz0p)->yynext = yyz;
8449 }
8450 yyz0p = &(*yyz0p)->yynext;
8451 }
8452 yys1->yysemantics.yyfirstVal = yys0->yysemantics.yyfirstVal;
8453 }
8454 }
8455 }
8456
8457 /** Y0 and Y1 represent two possible actions to take in a given
8458 * parsing state; return 0 if no combination is possible,
8459 * 1 if user-mergeable, 2 if Y0 is preferred, 3 if Y1 is preferred. */
8460 static int
8461 yypreference (yySemanticOption* y0, yySemanticOption* y1)
8462 {
8463 yyRuleNum r0 = y0->yyrule, r1 = y1->yyrule;
8464 int p0 = yydprec[r0], p1 = yydprec[r1];
8465
8466 if (p0 == p1)
8467 {
8468 if (yymerger[r0] == 0 || yymerger[r0] != yymerger[r1])
8469 return 0;
8470 else
8471 return 1;
8472 }
8473 if (p0 == 0 || p1 == 0)
8474 return 0;
8475 if (p0 < p1)
8476 return 3;
8477 if (p1 < p0)
8478 return 2;
8479 return 0;
8480 }
8481
8482 static YYRESULTTAG yyresolveValue (yyGLRState* yys,
8483 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index);
8484
8485
8486 /** Resolve the previous YYN states starting at and including state YYS
8487 * on *YYSTACKP. If result != yyok, some states may have been left
8488 * unresolved possibly with empty semantic option chains. Regardless
8489 * of whether result = yyok, each state has been left with consistent
8490 * data so that yydestroyGLRState can be invoked if necessary. */
8491 static YYRESULTTAG
8492 yyresolveStates (yyGLRState* yys, int yyn,
8493 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8494 {
8495 if (0 < yyn)
8496 {
8497 YYASSERT (yys->yypred);
8498 YYCHK (yyresolveStates (yys->yypred, yyn-1, yystackp, P, tokens, index));
8499 if (! yys->yyresolved)
8500 YYCHK (yyresolveValue (yys, yystackp, P, tokens, index));
8501 }
8502 return yyok;
8503 }
8504
8505 /** Resolve the states for the RHS of YYOPT on *YYSTACKP, perform its
8506 * user action, and return the semantic value and location in *YYVALP
8507 * and *YYLOCP. Regardless of whether result = yyok, all RHS states
8508 * have been destroyed (assuming the user action destroys all RHS
8509 * semantic values if invoked). */
8510 static YYRESULTTAG
8511 yyresolveAction (yySemanticOption* yyopt, yyGLRStack* yystackp,
8512 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8513 {
8514 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
8515 int yynrhs = yyrhsLength (yyopt->yyrule);
8516 YYRESULTTAG yyflag =
8517 yyresolveStates (yyopt->yystate, yynrhs, yystackp, P, tokens, index);
8518 if (yyflag != yyok)
8519 {
8520 yyGLRState *yys;
8521 for (yys = yyopt->yystate; yynrhs > 0; yys = yys->yypred, yynrhs -= 1)
8522 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
8523 return yyflag;
8524 }
8525
8526 yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred = yyopt->yystate;
8527 {
8528 int yychar_current = yychar;
8529 YYSTYPE yylval_current = yylval;
8530 yychar = yyopt->yyrawchar;
8531 yylval = yyopt->yyval;
8532 yyflag = yyuserAction (yyopt->yyrule, yynrhs,
8533 yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
8534 yystackp, yyvalp, P, tokens, index);
8535 yychar = yychar_current;
8536 yylval = yylval_current;
8537 }
8538 return yyflag;
8539 }
8540
8541 #if YYDEBUG
8542 static void
8543 yyreportTree (yySemanticOption* yyx, int yyindent)
8544 {
8545 int yynrhs = yyrhsLength (yyx->yyrule);
8546 int yyi;
8547 yyGLRState* yys;
8548 yyGLRState* yystates[1 + YYMAXRHS];
8549 yyGLRState yyleftmost_state;
8550
8551 for (yyi = yynrhs, yys = yyx->yystate; 0 < yyi; yyi -= 1, yys = yys->yypred)
8552 yystates[yyi] = yys;
8553 if (yys == YY_NULLPTR)
8554 {
8555 yyleftmost_state.yyposn = 0;
8556 yystates[0] = &yyleftmost_state;
8557 }
8558 else
8559 yystates[0] = yys;
8560
8561 if (yyx->yystate->yyposn < yys->yyposn + 1)
8562 YYFPRINTF (stderr, "%*s%s -> <Rule %d, empty>\n",
8563 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
8564 yyx->yyrule - 1);
8565 else
8566 YYFPRINTF (stderr, "%*s%s -> <Rule %d, tokens %lu .. %lu>\n",
8567 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
8568 yyx->yyrule - 1, (unsigned long) (yys->yyposn + 1),
8569 (unsigned long) yyx->yystate->yyposn);
8570 for (yyi = 1; yyi <= yynrhs; yyi += 1)
8571 {
8572 if (yystates[yyi]->yyresolved)
8573 {
8574 if (yystates[yyi-1]->yyposn+1 > yystates[yyi]->yyposn)
8575 YYFPRINTF (stderr, "%*s%s <empty>\n", yyindent+2, "",
8576 yytokenName (yystos[yystates[yyi]->yylrState]));
8577 else
8578 YYFPRINTF (stderr, "%*s%s <tokens %lu .. %lu>\n", yyindent+2, "",
8579 yytokenName (yystos[yystates[yyi]->yylrState]),
8580 (unsigned long) (yystates[yyi-1]->yyposn + 1),
8581 (unsigned long) yystates[yyi]->yyposn);
8582 }
8583 else
8584 yyreportTree (yystates[yyi]->yysemantics.yyfirstVal, yyindent+2);
8585 }
8586 }
8587 #endif
8588
8589 static YYRESULTTAG
8590 yyreportAmbiguity (yySemanticOption* yyx0,
8591 yySemanticOption* yyx1, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8592 {
8593 YYUSE (yyx0);
8594 YYUSE (yyx1);
8595
8596 #if YYDEBUG
8597 YYFPRINTF (stderr, "Ambiguity detected.\n");
8598 YYFPRINTF (stderr, "Option 1,\n");
8599 yyreportTree (yyx0, 2);
8600 YYFPRINTF (stderr, "\nOption 2,\n");
8601 yyreportTree (yyx1, 2);
8602 YYFPRINTF (stderr, "\n");
8603 #endif
8604
8605 yyerror (P, tokens, index, YY_("syntax is ambiguous"));
8606 return yyabort;
8607 }
8608
8609 /** Resolve the ambiguity represented in state YYS in *YYSTACKP,
8610 * perform the indicated actions, and set the semantic value of YYS.
8611 * If result != yyok, the chain of semantic options in YYS has been
8612 * cleared instead or it has been left unmodified except that
8613 * redundant options may have been removed. Regardless of whether
8614 * result = yyok, YYS has been left with consistent data so that
8615 * yydestroyGLRState can be invoked if necessary. */
8616 static YYRESULTTAG
8617 yyresolveValue (yyGLRState* yys, yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8618 {
8619 yySemanticOption* yyoptionList = yys->yysemantics.yyfirstVal;
8620 yySemanticOption* yybest = yyoptionList;
8621 yySemanticOption** yypp;
8622 yybool yymerge = yyfalse;
8623 YYSTYPE yysval;
8624 YYRESULTTAG yyflag;
8625
8626 for (yypp = &yyoptionList->yynext; *yypp != YY_NULLPTR; )
8627 {
8628 yySemanticOption* yyp = *yypp;
8629
8630 if (yyidenticalOptions (yybest, yyp))
8631 {
8632 yymergeOptionSets (yybest, yyp);
8633 *yypp = yyp->yynext;
8634 }
8635 else
8636 {
8637 switch (yypreference (yybest, yyp))
8638 {
8639 case 0:
8640 return yyreportAmbiguity (yybest, yyp, P, tokens, index);
8641 break;
8642 case 1:
8643 yymerge = yytrue;
8644 break;
8645 case 2:
8646 break;
8647 case 3:
8648 yybest = yyp;
8649 yymerge = yyfalse;
8650 break;
8651 default:
8652 /* This cannot happen so it is not worth a YYASSERT (yyfalse),
8653 but some compilers complain if the default case is
8654 omitted. */
8655 break;
8656 }
8657 yypp = &yyp->yynext;
8658 }
8659 }
8660
8661 if (yymerge)
8662 {
8663 yySemanticOption* yyp;
8664 int yyprec = yydprec[yybest->yyrule];
8665 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
8666 if (yyflag == yyok)
8667 for (yyp = yybest->yynext; yyp != YY_NULLPTR; yyp = yyp->yynext)
8668 {
8669 if (yyprec == yydprec[yyp->yyrule])
8670 {
8671 YYSTYPE yysval_other;
8672 yyflag = yyresolveAction (yyp, yystackp, &yysval_other, P, tokens, index);
8673 if (yyflag != yyok)
8674 {
8675 yydestruct ("Cleanup: discarding incompletely merged value for",
8676 yystos[yys->yylrState],
8677 &yysval, P, tokens, index);
8678 break;
8679 }
8680 yyuserMerge (yymerger[yyp->yyrule], &yysval, &yysval_other);
8681 }
8682 }
8683 }
8684 else
8685 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
8686
8687 if (yyflag == yyok)
8688 {
8689 yys->yyresolved = yytrue;
8690 yys->yysemantics.yysval = yysval;
8691 }
8692 else
8693 yys->yysemantics.yyfirstVal = YY_NULLPTR;
8694 return yyflag;
8695 }
8696
8697 static YYRESULTTAG
8698 yyresolveStack (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8699 {
8700 if (yystackp->yysplitPoint != YY_NULLPTR)
8701 {
8702 yyGLRState* yys;
8703 int yyn;
8704
8705 for (yyn = 0, yys = yystackp->yytops.yystates[0];
8706 yys != yystackp->yysplitPoint;
8707 yys = yys->yypred, yyn += 1)
8708 continue;
8709 YYCHK (yyresolveStates (yystackp->yytops.yystates[0], yyn, yystackp
8710 , P, tokens, index));
8711 }
8712 return yyok;
8713 }
8714
8715 static void
8716 yycompressStack (yyGLRStack* yystackp)
8717 {
8718 yyGLRState* yyp, *yyq, *yyr;
8719
8720 if (yystackp->yytops.yysize != 1 || yystackp->yysplitPoint == YY_NULLPTR)
8721 return;
8722
8723 for (yyp = yystackp->yytops.yystates[0], yyq = yyp->yypred, yyr = YY_NULLPTR;
8724 yyp != yystackp->yysplitPoint;
8725 yyr = yyp, yyp = yyq, yyq = yyp->yypred)
8726 yyp->yypred = yyr;
8727
8728 yystackp->yyspaceLeft += (size_t) (yystackp->yynextFree - yystackp->yyitems);
8729 yystackp->yynextFree = ((yyGLRStackItem*) yystackp->yysplitPoint) + 1;
8730 yystackp->yyspaceLeft -= (size_t) (yystackp->yynextFree - yystackp->yyitems);
8731 yystackp->yysplitPoint = YY_NULLPTR;
8732 yystackp->yylastDeleted = YY_NULLPTR;
8733
8734 while (yyr != YY_NULLPTR)
8735 {
8736 yystackp->yynextFree->yystate = *yyr;
8737 yyr = yyr->yypred;
8738 yystackp->yynextFree->yystate.yypred = &yystackp->yynextFree[-1].yystate;
8739 yystackp->yytops.yystates[0] = &yystackp->yynextFree->yystate;
8740 yystackp->yynextFree += 1;
8741 yystackp->yyspaceLeft -= 1;
8742 }
8743 }
8744
8745 static YYRESULTTAG
8746 yyprocessOneStack (yyGLRStack* yystackp, size_t yyk,
8747 size_t yyposn, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8748 {
8749 while (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
8750 {
8751 yyStateNum yystate = yystackp->yytops.yystates[yyk]->yylrState;
8752 YYDPRINTF ((stderr, "Stack %lu Entering state %d\n",
8753 (unsigned long) yyk, yystate));
8754
8755 YYASSERT (yystate != YYFINAL);
8756
8757 if (yyisDefaultedState (yystate))
8758 {
8759 YYRESULTTAG yyflag;
8760 yyRuleNum yyrule = yydefaultAction (yystate);
8761 if (yyrule == 0)
8762 {
8763 YYDPRINTF ((stderr, "Stack %lu dies.\n",
8764 (unsigned long) yyk));
8765 yymarkStackDeleted (yystackp, yyk);
8766 return yyok;
8767 }
8768 yyflag = yyglrReduce (yystackp, yyk, yyrule, yyimmediate[yyrule], P, tokens, index);
8769 if (yyflag == yyerr)
8770 {
8771 YYDPRINTF ((stderr,
8772 "Stack %lu dies "
8773 "(predicate failure or explicit user error).\n",
8774 (unsigned long) yyk));
8775 yymarkStackDeleted (yystackp, yyk);
8776 return yyok;
8777 }
8778 if (yyflag != yyok)
8779 return yyflag;
8780 }
8781 else
8782 {
8783 yySymbol yytoken;
8784 int yyaction;
8785 const short* yyconflicts;
8786
8787 yystackp->yytops.yylookaheadNeeds[yyk] = yytrue;
8788 if (yychar == YYEMPTY)
8789 {
8790 YYDPRINTF ((stderr, "Reading a token: "));
8791 yychar = yylex (&yylval, P, tokens, index);
8792 }
8793
8794 if (yychar <= YYEOF)
8795 {
8796 yychar = yytoken = YYEOF;
8797 YYDPRINTF ((stderr, "Now at end of input.\n"));
8798 }
8799 else
8800 {
8801 yytoken = YYTRANSLATE (yychar);
8802 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
8803 }
8804
8805 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
8806
8807 while (*yyconflicts != 0)
8808 {
8809 YYRESULTTAG yyflag;
8810 size_t yynewStack = yysplitStack (yystackp, yyk);
8811 YYDPRINTF ((stderr, "Splitting off stack %lu from %lu.\n",
8812 (unsigned long) yynewStack,
8813 (unsigned long) yyk));
8814 yyflag = yyglrReduce (yystackp, yynewStack,
8815 *yyconflicts,
8816 yyimmediate[*yyconflicts], P, tokens, index);
8817 if (yyflag == yyok)
8818 YYCHK (yyprocessOneStack (yystackp, yynewStack,
8819 yyposn, P, tokens, index));
8820 else if (yyflag == yyerr)
8821 {
8822 YYDPRINTF ((stderr, "Stack %lu dies.\n",
8823 (unsigned long) yynewStack));
8824 yymarkStackDeleted (yystackp, yynewStack);
8825 }
8826 else
8827 return yyflag;
8828 yyconflicts += 1;
8829 }
8830
8831 if (yyisShiftAction (yyaction))
8832 break;
8833 else if (yyisErrorAction (yyaction))
8834 {
8835 YYDPRINTF ((stderr, "Stack %lu dies.\n",
8836 (unsigned long) yyk));
8837 yymarkStackDeleted (yystackp, yyk);
8838 break;
8839 }
8840 else
8841 {
8842 YYRESULTTAG yyflag = yyglrReduce (yystackp, yyk, -yyaction,
8843 yyimmediate[-yyaction], P, tokens, index);
8844 if (yyflag == yyerr)
8845 {
8846 YYDPRINTF ((stderr,
8847 "Stack %lu dies "
8848 "(predicate failure or explicit user error).\n",
8849 (unsigned long) yyk));
8850 yymarkStackDeleted (yystackp, yyk);
8851 break;
8852 }
8853 else if (yyflag != yyok)
8854 return yyflag;
8855 }
8856 }
8857 }
8858 return yyok;
8859 }
8860
8861 static void
8862 yyreportSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8863 {
8864 if (yystackp->yyerrState != 0)
8865 return;
8866 #if ! YYERROR_VERBOSE
8867 yyerror (P, tokens, index, YY_("syntax error"));
8868 #else
8869 {
8870 yySymbol yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
8871 size_t yysize0 = yytnamerr (YY_NULLPTR, yytokenName (yytoken));
8872 size_t yysize = yysize0;
8873 yybool yysize_overflow = yyfalse;
8874 char* yymsg = YY_NULLPTR;
8875 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
8876 /* Internationalized format string. */
8877 const char *yyformat = YY_NULLPTR;
8878 /* Arguments of yyformat. */
8879 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
8880 /* Number of reported tokens (one for the "unexpected", one per
8881 "expected"). */
8882 int yycount = 0;
8883
8884 /* There are many possibilities here to consider:
8885 - If this state is a consistent state with a default action, then
8886 the only way this function was invoked is if the default action
8887 is an error action. In that case, don't check for expected
8888 tokens because there are none.
8889 - The only way there can be no lookahead present (in yychar) is if
8890 this state is a consistent state with a default action. Thus,
8891 detecting the absence of a lookahead is sufficient to determine
8892 that there is no unexpected or expected token to report. In that
8893 case, just report a simple "syntax error".
8894 - Don't assume there isn't a lookahead just because this state is a
8895 consistent state with a default action. There might have been a
8896 previous inconsistent state, consistent state with a non-default
8897 action, or user semantic action that manipulated yychar.
8898 - Of course, the expected token list depends on states to have
8899 correct lookahead information, and it depends on the parser not
8900 to perform extra reductions after fetching a lookahead from the
8901 scanner and before detecting a syntax error. Thus, state merging
8902 (from LALR or IELR) and default reductions corrupt the expected
8903 token list. However, the list is correct for canonical LR with
8904 one exception: it will still contain any token that will not be
8905 accepted due to an error action in a later state.
8906 */
8907 if (yytoken != YYEMPTY)
8908 {
8909 int yyn = yypact[yystackp->yytops.yystates[0]->yylrState];
8910 yyarg[yycount++] = yytokenName (yytoken);
8911 if (!yypact_value_is_default (yyn))
8912 {
8913 /* Start YYX at -YYN if negative to avoid negative indexes in
8914 YYCHECK. In other words, skip the first -YYN actions for this
8915 state because they are default actions. */
8916 int yyxbegin = yyn < 0 ? -yyn : 0;
8917 /* Stay within bounds of both yycheck and yytname. */
8918 int yychecklim = YYLAST - yyn + 1;
8919 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
8920 int yyx;
8921 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
8922 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
8923 && !yytable_value_is_error (yytable[yyx + yyn]))
8924 {
8925 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
8926 {
8927 yycount = 1;
8928 yysize = yysize0;
8929 break;
8930 }
8931 yyarg[yycount++] = yytokenName (yyx);
8932 {
8933 size_t yysz = yysize + yytnamerr (YY_NULLPTR, yytokenName (yyx));
8934 if (yysz < yysize)
8935 yysize_overflow = yytrue;
8936 yysize = yysz;
8937 }
8938 }
8939 }
8940 }
8941
8942 switch (yycount)
8943 {
8944 #define YYCASE_(N, S) \
8945 case N: \
8946 yyformat = S; \
8947 break
8948 default: /* Avoid compiler warnings. */
8949 YYCASE_(0, YY_("syntax error"));
8950 YYCASE_(1, YY_("syntax error, unexpected %s"));
8951 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
8952 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
8953 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
8954 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
8955 #undef YYCASE_
8956 }
8957
8958 {
8959 size_t yysz = yysize + strlen (yyformat);
8960 if (yysz < yysize)
8961 yysize_overflow = yytrue;
8962 yysize = yysz;
8963 }
8964
8965 if (!yysize_overflow)
8966 yymsg = (char *) YYMALLOC (yysize);
8967
8968 if (yymsg)
8969 {
8970 char *yyp = yymsg;
8971 int yyi = 0;
8972 while ((*yyp = *yyformat))
8973 {
8974 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
8975 {
8976 yyp += yytnamerr (yyp, yyarg[yyi++]);
8977 yyformat += 2;
8978 }
8979 else
8980 {
8981 yyp++;
8982 yyformat++;
8983 }
8984 }
8985 yyerror (P, tokens, index, yymsg);
8986 YYFREE (yymsg);
8987 }
8988 else
8989 {
8990 yyerror (P, tokens, index, YY_("syntax error"));
8991 yyMemoryExhausted (yystackp);
8992 }
8993 }
8994 #endif /* YYERROR_VERBOSE */
8995 yynerrs += 1;
8996 }
8997
8998 /* Recover from a syntax error on *YYSTACKP, assuming that *YYSTACKP->YYTOKENP,
8999 yylval, and yylloc are the syntactic category, semantic value, and location
9000 of the lookahead. */
9001 static void
9002 yyrecoverSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
9003 {
9004 size_t yyk;
9005 int yyj;
9006
9007 if (yystackp->yyerrState == 3)
9008 /* We just shifted the error token and (perhaps) took some
9009 reductions. Skip tokens until we can proceed. */
9010 while (yytrue)
9011 {
9012 yySymbol yytoken;
9013 if (yychar == YYEOF)
9014 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
9015 if (yychar != YYEMPTY)
9016 {
9017 yytoken = YYTRANSLATE (yychar);
9018 yydestruct ("Error: discarding",
9019 yytoken, &yylval, P, tokens, index);
9020 }
9021 YYDPRINTF ((stderr, "Reading a token: "));
9022 yychar = yylex (&yylval, P, tokens, index);
9023 if (yychar <= YYEOF)
9024 {
9025 yychar = yytoken = YYEOF;
9026 YYDPRINTF ((stderr, "Now at end of input.\n"));
9027 }
9028 else
9029 {
9030 yytoken = YYTRANSLATE (yychar);
9031 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
9032 }
9033 yyj = yypact[yystackp->yytops.yystates[0]->yylrState];
9034 if (yypact_value_is_default (yyj))
9035 return;
9036 yyj += yytoken;
9037 if (yyj < 0 || YYLAST < yyj || yycheck[yyj] != yytoken)
9038 {
9039 if (yydefact[yystackp->yytops.yystates[0]->yylrState] != 0)
9040 return;
9041 }
9042 else if (! yytable_value_is_error (yytable[yyj]))
9043 return;
9044 }
9045
9046 /* Reduce to one stack. */
9047 for (yyk = 0; yyk < yystackp->yytops.yysize; yyk += 1)
9048 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
9049 break;
9050 if (yyk >= yystackp->yytops.yysize)
9051 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
9052 for (yyk += 1; yyk < yystackp->yytops.yysize; yyk += 1)
9053 yymarkStackDeleted (yystackp, yyk);
9054 yyremoveDeletes (yystackp);
9055 yycompressStack (yystackp);
9056
9057 /* Now pop stack until we find a state that shifts the error token. */
9058 yystackp->yyerrState = 3;
9059 while (yystackp->yytops.yystates[0] != YY_NULLPTR)
9060 {
9061 yyGLRState *yys = yystackp->yytops.yystates[0];
9062 yyj = yypact[yys->yylrState];
9063 if (! yypact_value_is_default (yyj))
9064 {
9065 yyj += YYTERROR;
9066 if (0 <= yyj && yyj <= YYLAST && yycheck[yyj] == YYTERROR
9067 && yyisShiftAction (yytable[yyj]))
9068 {
9069 /* Shift the error token. */
9070 YY_SYMBOL_PRINT ("Shifting", yystos[yytable[yyj]],
9071 &yylval, &yyerrloc);
9072 yyglrShift (yystackp, 0, yytable[yyj],
9073 yys->yyposn, &yylval);
9074 yys = yystackp->yytops.yystates[0];
9075 break;
9076 }
9077 }
9078 if (yys->yypred != YY_NULLPTR)
9079 yydestroyGLRState ("Error: popping", yys, P, tokens, index);
9080 yystackp->yytops.yystates[0] = yys->yypred;
9081 yystackp->yynextFree -= 1;
9082 yystackp->yyspaceLeft += 1;
9083 }
9084 if (yystackp->yytops.yystates[0] == YY_NULLPTR)
9085 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
9086 }
9087
9088 #define YYCHK1(YYE) \
9089 do { \
9090 switch (YYE) { \
9091 case yyok: \
9092 break; \
9093 case yyabort: \
9094 goto yyabortlab; \
9095 case yyaccept: \
9096 goto yyacceptlab; \
9097 case yyerr: \
9098 goto yyuser_error; \
9099 default: \
9100 goto yybuglab; \
9101 } \
9102 } while (0)
9103
9104 /*----------.
9105 | yyparse. |
9106 `----------*/
9107
9108 int
9109 yyparse (struct psi_parser *P, struct psi_plist *tokens, size_t *index)
9110 {
9111 int yyresult;
9112 yyGLRStack yystack;
9113 yyGLRStack* const yystackp = &yystack;
9114 size_t yyposn;
9115
9116 YYDPRINTF ((stderr, "Starting parse\n"));
9117
9118 yychar = YYEMPTY;
9119 yylval = yyval_default;
9120
9121 /* User initialization code. */
9122 #line 119 "src/parser_proc_grammar.y" /* glr.c:2265 */
9123 {
9124 }
9125
9126 #line 9127 "src/parser_proc.c" /* glr.c:2265 */
9127
9128 if (! yyinitGLRStack (yystackp, YYINITDEPTH))
9129 goto yyexhaustedlab;
9130 switch (YYSETJMP (yystack.yyexception_buffer))
9131 {
9132 case 0: break;
9133 case 1: goto yyabortlab;
9134 case 2: goto yyexhaustedlab;
9135 default: goto yybuglab;
9136 }
9137 yyglrShift (&yystack, 0, 0, 0, &yylval);
9138 yyposn = 0;
9139
9140 while (yytrue)
9141 {
9142 /* For efficiency, we have two loops, the first of which is
9143 specialized to deterministic operation (single stack, no
9144 potential ambiguity). */
9145 /* Standard mode */
9146 while (yytrue)
9147 {
9148 yyRuleNum yyrule;
9149 int yyaction;
9150 const short* yyconflicts;
9151
9152 yyStateNum yystate = yystack.yytops.yystates[0]->yylrState;
9153 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
9154 if (yystate == YYFINAL)
9155 goto yyacceptlab;
9156 if (yyisDefaultedState (yystate))
9157 {
9158 yyrule = yydefaultAction (yystate);
9159 if (yyrule == 0)
9160 {
9161 yyreportSyntaxError (&yystack, P, tokens, index);
9162 goto yyuser_error;
9163 }
9164 YYCHK1 (yyglrReduce (&yystack, 0, yyrule, yytrue, P, tokens, index));
9165 }
9166 else
9167 {
9168 yySymbol yytoken;
9169 if (yychar == YYEMPTY)
9170 {
9171 YYDPRINTF ((stderr, "Reading a token: "));
9172 yychar = yylex (&yylval, P, tokens, index);
9173 }
9174
9175 if (yychar <= YYEOF)
9176 {
9177 yychar = yytoken = YYEOF;
9178 YYDPRINTF ((stderr, "Now at end of input.\n"));
9179 }
9180 else
9181 {
9182 yytoken = YYTRANSLATE (yychar);
9183 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
9184 }
9185
9186 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
9187 if (*yyconflicts != 0)
9188 break;
9189 if (yyisShiftAction (yyaction))
9190 {
9191 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
9192 yychar = YYEMPTY;
9193 yyposn += 1;
9194 yyglrShift (&yystack, 0, yyaction, yyposn, &yylval);
9195 if (0 < yystack.yyerrState)
9196 yystack.yyerrState -= 1;
9197 }
9198 else if (yyisErrorAction (yyaction))
9199 {
9200 yyreportSyntaxError (&yystack, P, tokens, index);
9201 goto yyuser_error;
9202 }
9203 else
9204 YYCHK1 (yyglrReduce (&yystack, 0, -yyaction, yytrue, P, tokens, index));
9205 }
9206 }
9207
9208 while (yytrue)
9209 {
9210 yySymbol yytoken_to_shift;
9211 size_t yys;
9212
9213 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
9214 yystackp->yytops.yylookaheadNeeds[yys] = (yybool) (yychar != YYEMPTY);
9215
9216 /* yyprocessOneStack returns one of three things:
9217
9218 - An error flag. If the caller is yyprocessOneStack, it
9219 immediately returns as well. When the caller is finally
9220 yyparse, it jumps to an error label via YYCHK1.
9221
9222 - yyok, but yyprocessOneStack has invoked yymarkStackDeleted
9223 (&yystack, yys), which sets the top state of yys to NULL. Thus,
9224 yyparse's following invocation of yyremoveDeletes will remove
9225 the stack.
9226
9227 - yyok, when ready to shift a token.
9228
9229 Except in the first case, yyparse will invoke yyremoveDeletes and
9230 then shift the next token onto all remaining stacks. This
9231 synchronization of the shift (that is, after all preceding
9232 reductions on all stacks) helps prevent double destructor calls
9233 on yylval in the event of memory exhaustion. */
9234
9235 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
9236 YYCHK1 (yyprocessOneStack (&yystack, yys, yyposn, P, tokens, index));
9237 yyremoveDeletes (&yystack);
9238 if (yystack.yytops.yysize == 0)
9239 {
9240 yyundeleteLastStack (&yystack);
9241 if (yystack.yytops.yysize == 0)
9242 yyFail (&yystack, P, tokens, index, YY_("syntax error"));
9243 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
9244 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
9245 yyreportSyntaxError (&yystack, P, tokens, index);
9246 goto yyuser_error;
9247 }
9248
9249 /* If any yyglrShift call fails, it will fail after shifting. Thus,
9250 a copy of yylval will already be on stack 0 in the event of a
9251 failure in the following loop. Thus, yychar is set to YYEMPTY
9252 before the loop to make sure the user destructor for yylval isn't
9253 called twice. */
9254 yytoken_to_shift = YYTRANSLATE (yychar);
9255 yychar = YYEMPTY;
9256 yyposn += 1;
9257 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
9258 {
9259 int yyaction;
9260 const short* yyconflicts;
9261 yyStateNum yystate = yystack.yytops.yystates[yys]->yylrState;
9262 yygetLRActions (yystate, yytoken_to_shift, &yyaction,
9263 &yyconflicts);
9264 /* Note that yyconflicts were handled by yyprocessOneStack. */
9265 YYDPRINTF ((stderr, "On stack %lu, ", (unsigned long) yys));
9266 YY_SYMBOL_PRINT ("shifting", yytoken_to_shift, &yylval, &yylloc);
9267 yyglrShift (&yystack, yys, yyaction, yyposn,
9268 &yylval);
9269 YYDPRINTF ((stderr, "Stack %lu now in state #%d\n",
9270 (unsigned long) yys,
9271 yystack.yytops.yystates[yys]->yylrState));
9272 }
9273
9274 if (yystack.yytops.yysize == 1)
9275 {
9276 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
9277 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
9278 yycompressStack (&yystack);
9279 break;
9280 }
9281 }
9282 continue;
9283 yyuser_error:
9284 yyrecoverSyntaxError (&yystack, P, tokens, index);
9285 yyposn = yystack.yytops.yystates[0]->yyposn;
9286 }
9287
9288 yyacceptlab:
9289 yyresult = 0;
9290 goto yyreturn;
9291
9292 yybuglab:
9293 YYASSERT (yyfalse);
9294 goto yyabortlab;
9295
9296 yyabortlab:
9297 yyresult = 1;
9298 goto yyreturn;
9299
9300 yyexhaustedlab:
9301 yyerror (P, tokens, index, YY_("memory exhausted"));
9302 yyresult = 2;
9303 goto yyreturn;
9304
9305 yyreturn:
9306 if (yychar != YYEMPTY)
9307 yydestruct ("Cleanup: discarding lookahead",
9308 YYTRANSLATE (yychar), &yylval, P, tokens, index);
9309
9310 /* If the stack is well-formed, pop the stack until it is empty,
9311 destroying its entries as we go. But free the stack regardless
9312 of whether it is well-formed. */
9313 if (yystack.yyitems)
9314 {
9315 yyGLRState** yystates = yystack.yytops.yystates;
9316 if (yystates)
9317 {
9318 size_t yysize = yystack.yytops.yysize;
9319 size_t yyk;
9320 for (yyk = 0; yyk < yysize; yyk += 1)
9321 if (yystates[yyk])
9322 {
9323 while (yystates[yyk])
9324 {
9325 yyGLRState *yys = yystates[yyk];
9326 if (yys->yypred != YY_NULLPTR)
9327 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
9328 yystates[yyk] = yys->yypred;
9329 yystack.yynextFree -= 1;
9330 yystack.yyspaceLeft += 1;
9331 }
9332 break;
9333 }
9334 }
9335 yyfreeGLRStack (&yystack);
9336 }
9337
9338 return yyresult;
9339 }
9340
9341 /* DEBUGGING ONLY */
9342 #if YYDEBUG
9343 static void
9344 yy_yypstack (yyGLRState* yys)
9345 {
9346 if (yys->yypred)
9347 {
9348 yy_yypstack (yys->yypred);
9349 YYFPRINTF (stderr, " -> ");
9350 }
9351 YYFPRINTF (stderr, "%d@%lu", yys->yylrState,
9352 (unsigned long) yys->yyposn);
9353 }
9354
9355 static void
9356 yypstates (yyGLRState* yyst)
9357 {
9358 if (yyst == YY_NULLPTR)
9359 YYFPRINTF (stderr, "<null>");
9360 else
9361 yy_yypstack (yyst);
9362 YYFPRINTF (stderr, "\n");
9363 }
9364
9365 static void
9366 yypstack (yyGLRStack* yystackp, size_t yyk)
9367 {
9368 yypstates (yystackp->yytops.yystates[yyk]);
9369 }
9370
9371 #define YYINDEX(YYX) \
9372 ((YYX) == YY_NULLPTR ? -1 : (yyGLRStackItem*) (YYX) - yystackp->yyitems)
9373
9374
9375 static void
9376 yypdumpstack (yyGLRStack* yystackp)
9377 {
9378 yyGLRStackItem* yyp;
9379 size_t yyi;
9380 for (yyp = yystackp->yyitems; yyp < yystackp->yynextFree; yyp += 1)
9381 {
9382 YYFPRINTF (stderr, "%3lu. ",
9383 (unsigned long) (yyp - yystackp->yyitems));
9384 if (*(yybool *) yyp)
9385 {
9386 YYASSERT (yyp->yystate.yyisState);
9387 YYASSERT (yyp->yyoption.yyisState);
9388 YYFPRINTF (stderr, "Res: %d, LR State: %d, posn: %lu, pred: %ld",
9389 yyp->yystate.yyresolved, yyp->yystate.yylrState,
9390 (unsigned long) yyp->yystate.yyposn,
9391 (long) YYINDEX (yyp->yystate.yypred));
9392 if (! yyp->yystate.yyresolved)
9393 YYFPRINTF (stderr, ", firstVal: %ld",
9394 (long) YYINDEX (yyp->yystate
9395 .yysemantics.yyfirstVal));
9396 }
9397 else
9398 {
9399 YYASSERT (!yyp->yystate.yyisState);
9400 YYASSERT (!yyp->yyoption.yyisState);
9401 YYFPRINTF (stderr, "Option. rule: %d, state: %ld, next: %ld",
9402 yyp->yyoption.yyrule - 1,
9403 (long) YYINDEX (yyp->yyoption.yystate),
9404 (long) YYINDEX (yyp->yyoption.yynext));
9405 }
9406 YYFPRINTF (stderr, "\n");
9407 }
9408 YYFPRINTF (stderr, "Tops:");
9409 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
9410 YYFPRINTF (stderr, "%lu: %ld; ", (unsigned long) yyi,
9411 (long) YYINDEX (yystackp->yytops.yystates[yyi]));
9412 YYFPRINTF (stderr, "\n");
9413 }
9414 #endif
9415
9416 #undef yylval
9417 #undef yychar
9418 #undef yynerrs
9419
9420 /* Substitute the variable and function names. */
9421 #define yyparse psi_parser_proc_parse
9422 #define yylex psi_parser_proc_lex
9423 #define yyerror psi_parser_proc_error
9424 #define yylval psi_parser_proc_lval
9425 #define yychar psi_parser_proc_char
9426 #define yydebug psi_parser_proc_debug
9427 #define yynerrs psi_parser_proc_nerrs
9428
9429 #line 2284 "src/parser_proc_grammar.y" /* glr.c:2578 */
9430
9431
9432 /* epilogue */
9433
9434 #define PSI_DEBUG_LEX 0
9435 static int psi_parser_proc_lex(YYSTYPE *lvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
9436 {
9437 struct psi_token *token;
9438 #if PSI_DEBUG_LEX
9439 PSI_DEBUG_PRINT(P, "PSI: LEX index %4zu ", *index);
9440 #endif
9441 if (psi_plist_get(tokens, (*index)++, &token)) {
9442 #if PSI_DEBUG_LEX
9443 PSI_DEBUG_DUMP(P, psi_token_dump, token);
9444 #endif
9445 *((struct psi_token **)lvalp) = token;
9446 return token->type;
9447 } else {
9448 #if PSI_DEBUG_LEX
9449 PSI_DEBUG_PRINT(P, "EOF\n");
9450 #endif
9451 (*index)--;
9452 }
9453
9454 return PSI_T_EOF;
9455 }
9456
9457 static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char *msg)
9458 {
9459 struct psi_token *T = NULL;
9460 size_t last;
9461
9462 if (*index == 0) {
9463 last = 0;
9464 } else {
9465 last = --(*index);
9466 }
9467
9468 psi_plist_get(tokens, last, &T);
9469 if (T) {
9470 size_t i = (last >= 5) ? last - 5 : 0;
9471
9472 P->error(PSI_DATA(P), T, PSI_WARNING, "PSI %s at col %u", msg, T->col);
9473 while (i <= last || T->type != PSI_T_EOS) {
9474 if (!psi_plist_get(tokens, i++, &T)) {
9475 break;
9476 }
9477 P->error(PSI_DATA(P), T, PSI_WARNING, "PSI %s token '%s' at col %u",
9478 i<last+1?"preceding":i>last+1?"following":"offending", T->text->val, T->col);
9479 }
9480 } else {
9481 P->error(PSI_DATA(P), NULL, PSI_WARNING, "PSI %s", msg);
9482 }
9483 P->errors++;
9484 }
9485