paranoid push
[m6w6/ext-psi] / src / parser_proc.c
1 /* A Bison parser, made by GNU Bison 3.1. */
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 /* Identify Bison output. */
36 #define YYBISON 1
37
38 /* Bison version. */
39 #define YYBISON_VERSION "3.1"
40
41 /* Skeleton name. */
42 #define YYSKELETON_NAME "glr.c"
43
44 /* Pure parsers. */
45 #define YYPURE 1
46
47
48 /* "%code top" blocks. */
49 #line 1 "src/parser_proc_grammar.y" /* glr.c:222 */
50
51 #include "php_psi_stdinc.h"
52
53 #line 54 "src/parser_proc.c" /* glr.c:222 */
54
55
56 /* Substitute the variable and function names. */
57 #define yyparse psi_parser_proc_parse
58 #define yylex psi_parser_proc_lex
59 #define yyerror psi_parser_proc_error
60 #define yydebug psi_parser_proc_debug
61
62
63 /* First part of user declarations. */
64
65 #line 66 "src/parser_proc.c" /* glr.c:240 */
66
67 # ifndef YY_NULLPTR
68 # if defined __cplusplus && 201103L <= __cplusplus
69 # define YY_NULLPTR nullptr
70 # else
71 # define YY_NULLPTR 0
72 # endif
73 # endif
74
75 #include "parser_proc.h"
76
77 /* Enabling verbose error messages. */
78 #ifdef YYERROR_VERBOSE
79 # undef YYERROR_VERBOSE
80 # define YYERROR_VERBOSE 1
81 #else
82 # define YYERROR_VERBOSE 1
83 #endif
84
85 /* Default (constant) value used for initialization for null
86 right-hand sides. Unlike the standard yacc.c template, here we set
87 the default value of $$ to a zeroed-out value. Since the default
88 value is undefined, this behavior is technically correct. */
89 static YYSTYPE yyval_default;
90
91 /* Copy the second part of user declarations. */
92
93 #line 94 "src/parser_proc.c" /* glr.c:263 */
94 /* Unqualified %code blocks. */
95 #line 5 "src/parser_proc_grammar.y" /* glr.c:264 */
96
97 #include <assert.h>
98 #include <stdarg.h>
99
100 #include "plist.h"
101 #include "parser.h"
102
103 #define YYDEBUG 1
104 #define PSI_PARSER_PROC_DEBUG 1
105
106 static int psi_parser_proc_lex(YYSTYPE *u, struct psi_parser *P, struct psi_plist *tokens, size_t *index);
107 static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char *msg);
108
109 static inline void psi_parser_proc_add_struct(struct psi_parser *P, struct psi_decl_struct *strct)
110 {
111 assert(strct);
112 if (!P->structs) {
113 P->structs = psi_plist_init((psi_plist_dtor) psi_decl_struct_free);
114 }
115 P->structs = psi_plist_add(P->structs, &strct);
116 }
117 static inline void psi_parser_proc_add_union(struct psi_parser *P, struct psi_decl_union *u)
118 {
119 assert(u);
120 if (!P->unions) {
121 P->unions = psi_plist_init((psi_plist_dtor) psi_decl_union_free);
122 }
123 P->unions = psi_plist_add(P->unions, &u);
124 }
125 static inline void psi_parser_proc_add_enum(struct psi_parser *P, struct psi_decl_enum *e)
126 {
127 assert(e);
128 if (!P->enums) {
129 P->enums = psi_plist_init((psi_plist_dtor) psi_decl_enum_free);
130 }
131 P->enums = psi_plist_add(P->enums, &e);
132 }
133 static inline void psi_parser_proc_add_typedef(struct psi_parser *P, struct psi_decl_arg *def)
134 {
135 assert(def);
136 if (!P->types) {
137 P->types = psi_plist_init((psi_plist_dtor) psi_decl_arg_free);
138 }
139 P->types = psi_plist_add(P->types, &def);
140 }
141 static inline void psi_parser_proc_add_const(struct psi_parser *P, struct psi_const *cnst) {
142 assert(cnst);
143 if (!P->consts) {
144 P->consts = psi_plist_init((psi_plist_dtor) psi_const_free);
145 }
146 P->consts = psi_plist_add(P->consts, &cnst);
147
148 }
149 static inline void psi_parser_proc_add_decl(struct psi_parser *P, struct psi_decl *decl) {
150 assert(decl);
151
152 if (psi_decl_is_blacklisted(decl->func->var->name->val)) {
153 psi_decl_free(&decl);
154 return;
155 }
156
157 if (!P->decls) {
158 P->decls = psi_plist_init((psi_plist_dtor) psi_decl_free);
159 }
160 P->decls = psi_plist_add(P->decls, &decl);
161 }
162 static inline void psi_parser_proc_add_decl_extvars(struct psi_parser *P, struct psi_plist *list) {
163 assert(list);
164 if (!P->vars) {
165 P->vars = psi_plist_init((psi_plist_dtor) psi_decl_extvar_free);
166 }
167 P->vars = psi_plist_add_r(P->vars, psi_plist_count(list), psi_plist_eles(list));
168 free(list);
169 }
170 static inline void psi_parser_proc_add_impl(struct psi_parser *P, struct psi_impl *impl) {
171 assert(impl);
172 if (!P->impls) {
173 P->impls = psi_plist_init((psi_plist_dtor) psi_impl_free);
174 }
175 P->impls = psi_plist_add(P->impls, &impl);
176 }
177
178 /* end code */
179
180 #line 181 "src/parser_proc.c" /* glr.c:264 */
181
182 #include <stdio.h>
183 #include <stdlib.h>
184 #include <string.h>
185
186 #ifndef YY_
187 # if defined YYENABLE_NLS && YYENABLE_NLS
188 # if ENABLE_NLS
189 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
190 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
191 # endif
192 # endif
193 # ifndef YY_
194 # define YY_(Msgid) Msgid
195 # endif
196 #endif
197
198 #ifndef YYFREE
199 # define YYFREE free
200 #endif
201 #ifndef YYMALLOC
202 # define YYMALLOC malloc
203 #endif
204 #ifndef YYREALLOC
205 # define YYREALLOC realloc
206 #endif
207
208 #define YYSIZEMAX ((size_t) -1)
209
210 #ifdef __cplusplus
211 typedef bool yybool;
212 #else
213 typedef unsigned char yybool;
214 #endif
215 #define yytrue 1
216 #define yyfalse 0
217
218 #ifndef YYSETJMP
219 # include <setjmp.h>
220 # define YYJMP_BUF jmp_buf
221 # define YYSETJMP(Env) setjmp (Env)
222 /* Pacify clang. */
223 # define YYLONGJMP(Env, Val) (longjmp (Env, Val), YYASSERT (0))
224 #endif
225
226 #ifndef YY_ATTRIBUTE
227 # if (defined __GNUC__ \
228 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
229 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
230 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
231 # else
232 # define YY_ATTRIBUTE(Spec) /* empty */
233 # endif
234 #endif
235
236 #ifndef YY_ATTRIBUTE_PURE
237 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
238 #endif
239
240 #ifndef YY_ATTRIBUTE_UNUSED
241 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
242 #endif
243
244 #if !defined _Noreturn \
245 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
246 # if defined _MSC_VER && 1200 <= _MSC_VER
247 # define _Noreturn __declspec (noreturn)
248 # else
249 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
250 # endif
251 #endif
252
253 /* Suppress unused-variable warnings by "using" E. */
254 #if ! defined lint || defined __GNUC__
255 # define YYUSE(E) ((void) (E))
256 #else
257 # define YYUSE(E) /* empty */
258 #endif
259
260 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
261 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
262 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
263 _Pragma ("GCC diagnostic push") \
264 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
265 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
266 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
267 _Pragma ("GCC diagnostic pop")
268 #else
269 # define YY_INITIAL_VALUE(Value) Value
270 #endif
271 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
272 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
273 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
274 #endif
275 #ifndef YY_INITIAL_VALUE
276 # define YY_INITIAL_VALUE(Value) /* Nothing. */
277 #endif
278
279
280 #ifndef YYASSERT
281 # define YYASSERT(Condition) ((void) ((Condition) || (abort (), 0)))
282 #endif
283
284 /* YYFINAL -- State number of the termination state. */
285 #define YYFINAL 166
286 /* YYLAST -- Last index in YYTABLE. */
287 #define YYLAST 8213
288
289 /* YYNTOKENS -- Number of terminals. */
290 #define YYNTOKENS 140
291 /* YYNNTS -- Number of nonterminals. */
292 #define YYNNTS 142
293 /* YYNRULES -- Number of rules. */
294 #define YYNRULES 637
295 /* YYNRULES -- Number of states. */
296 #define YYNSTATES 950
297 /* YYMAXRHS -- Maximum number of symbols on right-hand side of rule. */
298 #define YYMAXRHS 16
299 /* YYMAXLEFT -- Maximum number of symbols to the left of a handle
300 accessed by $0, $-1, etc., in any rule. */
301 #define YYMAXLEFT 0
302
303 /* YYTRANSLATE(X) -- Bison symbol number corresponding to X. */
304 #define YYUNDEFTOK 2
305 #define YYMAXUTOK 394
306
307 #define YYTRANSLATE(YYX) \
308 ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
309
310 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
311 static const unsigned char yytranslate[] =
312 {
313 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
314 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
315 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
316 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
317 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
318 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
319 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
320 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
321 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
322 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
323 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
324 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
325 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
326 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
327 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
328 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
329 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
330 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
331 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
332 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
333 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
334 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
335 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
336 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
337 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
338 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
339 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
340 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
341 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
342 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
343 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
344 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
345 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
346 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
347 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
348 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
349 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
350 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
351 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
352 135, 136, 137, 138, 139
353 };
354
355 #if YYDEBUG
356 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
357 static const unsigned short yyrline[] =
358 {
359 0, 408, 408, 408, 408, 408, 408, 408, 408, 408,
360 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
361 409, 409, 409, 409, 410, 410, 410, 410, 410, 410,
362 410, 410, 410, 410, 410, 410, 410, 410, 410, 410,
363 410, 410, 410, 410, 410, 410, 411, 411, 411, 411,
364 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
365 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
366 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
367 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
368 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
369 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
370 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
371 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
372 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
373 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
374 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
375 411, 411, 411, 411, 412, 412, 412, 412, 412, 412,
376 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
377 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
378 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
379 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
380 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
381 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
382 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
383 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
384 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
385 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
386 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
387 416, 417, 420, 421, 424, 425, 426, 427, 433, 437,
388 440, 443, 446, 452, 455, 458, 461, 464, 470, 476,
389 479, 485, 508, 512, 516, 521, 525, 529, 533, 540,
390 541, 545, 546, 550, 551, 552, 556, 557, 561, 562,
391 566, 567, 568, 572, 573, 577, 582, 587, 592, 601,
392 604, 607, 608, 614, 619, 627, 630, 634, 638, 645,
393 649, 653, 657, 662, 673, 684, 689, 694, 698, 704,
394 715, 718, 722, 730, 734, 740, 744, 751, 755, 759,
395 766, 767, 768, 772, 786, 792, 795, 801, 804, 810,
396 811, 819, 830, 839, 851, 852, 856, 866, 875, 887,
397 888, 891, 897, 898, 902, 906, 910, 915, 920, 928,
398 929, 930, 933, 939, 942, 945, 951, 952, 956, 959,
399 962, 968, 971, 974, 982, 994, 997, 1000, 1003, 1010,
400 1013, 1023, 1026, 1029, 1032, 1033, 1034, 1038, 1041, 1044,
401 1055, 1062, 1072, 1075, 1081, 1084, 1091, 1127, 1130, 1136,
402 1139, 1145, 1151, 1152, 1153, 1154, 1155, 1156, 1160, 1164,
403 1165, 1169, 1170, 1174, 1175, 1182, 1183, 1187, 1194, 1205,
404 1212, 1220, 1244, 1273, 1280, 1291, 1337, 1378, 1393, 1396,
405 1399, 1405, 1408, 1414, 1429, 1432, 1461, 1469, 1497, 1502,
406 1510, 1520, 1530, 1533, 1537, 1543, 1557, 1574, 1577, 1583,
407 1590, 1597, 1605, 1616, 1623, 1626, 1632, 1637, 1645, 1649,
408 1653, 1657, 1661, 1665, 1672, 1676, 1680, 1684, 1688, 1692,
409 1698, 1702, 1709, 1712, 1724, 1728, 1732, 1739, 1752, 1765,
410 1778, 1781, 1788, 1789, 1793, 1796, 1799, 1802, 1808, 1812,
411 1819, 1822, 1825, 1840, 1841, 1842, 1843, 1847, 1850, 1856,
412 1857, 1863, 1866, 1872, 1873, 1877, 1878, 1888, 1891, 1898,
413 1903, 1908, 1918, 1921, 1927, 1930, 1936, 1943, 1950, 1957,
414 1958, 1962, 1963, 1964, 1965, 1966, 1970, 1971, 1972, 1973,
415 1977, 1980, 1986, 1989, 1992, 1995, 1998, 2004, 2008, 2016,
416 2017, 2021, 2028, 2031, 2034, 2037, 2041, 2044, 2050, 2054,
417 2062, 2069, 2074, 2082, 2090, 2091, 2092, 2093, 2094, 2095,
418 2096, 2097, 2098, 2099, 2103, 2106, 2112, 2115, 2121, 2122,
419 2126, 2129, 2135, 2138, 2144, 2151, 2155, 2162, 2165, 2168,
420 2174, 2181, 2184, 2187, 2194, 2199, 2207, 2208, 2209, 2210,
421 2211, 2212, 2213, 2214, 2218, 2221, 2227, 2230, 2236, 2243,
422 2244, 2248, 2255, 2258, 2264, 2272, 2275, 2281
423 };
424 #endif
425
426 #if YYDEBUG || YYERROR_VERBOSE || 1
427 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
428 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
429 static const char *const yytname[] =
430 {
431 "\"end of file\"", "error", "$undefined", "BOOL", "CHAR", "SHORT",
432 "INT", "SIGNED", "UNSIGNED", "LONG", "FLOAT", "DOUBLE", "STRING",
433 "MIXED", "ARRAY", "OBJECT", "CALLABLE", "VOID", "ZVAL", "NULL", "TRUE",
434 "FALSE", "NAME", "NSNAME", "DOLLAR_NAME", "NUMBER", "QUOTED_STRING",
435 "QUOTED_CHAR", "SIZEOF", "VOLATILE", "\"end of line\"", "\";\"", "\"(\"",
436 "\")\"", "\",\"", "\":\"", "\"{\"", "\"}\"", "\"[\"", "\"]\"", "\"=\"",
437 "\"#\"", "\"|\"", "\"^\"", "\"&\"", "\"<<\"", "\">>\"", "\"+\"", "\"-\"",
438 "\"*\"", "\"/\"", "\"%\"", "\"<\"", "\">\"", "\">=\"", "\"<=\"",
439 "\"||\"", "\"&&\"", "\"==\"", "\"!=\"", "\"~\"", "\"!\"", "\".\"",
440 "\"\\\\\"", "\"...\"", "\"?\"", "PRAGMA", "PRAGMA_ONCE", "LINE", "ERROR",
441 "WARNING", "IF", "IFDEF", "IFNDEF", "ELSE", "ELIF", "ENDIF", "DEFINE",
442 "DEFINED", "UNDEF", "IMPORT", "INCLUDE", "INCLUDE_NEXT", "TYPEDEF",
443 "STRUCT", "UNION", "ENUM", "CONST", "LIB", "STATIC", "CALLBACK",
444 "FUNCTION", "LET", "SET", "TEMP", "FREE", "RETURN", "AS", "PRE_ASSERT",
445 "POST_ASSERT", "BOOLVAL", "INTVAL", "STRVAL", "PATHVAL", "STRLEN",
446 "FLOATVAL", "ARRVAL", "OBJVAL", "COUNT", "CALLOC", "TO_BOOL", "TO_INT",
447 "TO_STRING", "TO_FLOAT", "TO_ARRAY", "TO_OBJECT", "COMMENT",
448 "WHITESPACE", "NO_WHITESPACE", "CPP_HEADER", "CPP_ATTRIBUTE",
449 "CPP_EXTENSION", "CPP_PASTE", "CPP_INLINE", "CPP_RESTRICT", "CPP_ASM",
450 "BSLASH", "LONG_DOUBLE", "INT8", "UINT8", "INT16", "UINT16", "INT32",
451 "UINT32", "INT64", "UINT64", "INT128", "UINT128", "BINARY", "UNARY",
452 "$accept", "binary_op_token", "unary_op_token", "name_token",
453 "any_noeol_token", "any_nobrace_token", "file", "blocks", "block", "lib",
454 "cpp", "cpp_exp", "cpp_ignored_token", "cpp_message_token",
455 "cpp_include_token", "cpp_header_token", "cpp_no_arg_token",
456 "cpp_name_arg_token", "cpp_exp_arg_token", "cpp_macro_decl",
457 "cpp_macro_sig", "cpp_macro_sig_args", "cpp_macro_decl_tokens",
458 "cpp_macro_decl_token_list", "cpp_macro_exp", "cpp_macro_call_args",
459 "cpp_macro_call_arg_list", "constant", "impl_def_val",
460 "impl_def_val_token", "decl_typedef", "typedef", "typedef_anon",
461 "typedef_decl", "typedef_anon_decl", "qualified_decl_type",
462 "decl_type_qualifier_token", "decl_type", "decl_type_complex",
463 "decl_type_simple", "decl_real_type", "int_signed", "int_width",
464 "decl_int_type", "int_signed_types", "signed_short_types",
465 "signed_long_types", "int_width_types", "decl_stmt", "decl_asm",
466 "quoted_strings", "decl_extvar_stmt", "decl_extvar_list", "decl_vars",
467 "ignored_decl", "ignored_decl_qualifiers", "ignored_decl_body",
468 "ignored_decl_body_stmts", "ignored_decl_body_stmt", "decl", "decl_body",
469 "decl_func_body", "decl_functor_body", "decl_anon_functor_body",
470 "decl_functor", "decl_anon_functor", "decl_func", "decl_args",
471 "decl_arg_list", "decl_anon_arg", "decl_arg", "decl_var", "decl_union",
472 "decl_struct", "decl_struct_args", "struct_args_block", "struct_args",
473 "struct_arg_var_list", "decl_vars_with_layout", "decl_enum",
474 "decl_enum_items", "decl_enum_item", "num_exp", "number", "sizeof",
475 "sizeof_body", "sizeof_body_notypes", "enum_name", "union_name",
476 "struct_name", "optional_name", "optional_comma", "decl_layout",
477 "align_and_size", "array_size", "array_qualifier_token", "indirection",
478 "pointers", "asterisks", "asterisk", "pointer_qualifier_token", "impl",
479 "impl_func", "impl_args", "impl_arg", "impl_var", "impl_type",
480 "impl_type_restricted", "impl_type_token", "impl_type_restricted_token",
481 "impl_type_extended_token", "impl_stmts", "impl_stmt", "let_stmt",
482 "let_exp", "let_exp_byref", "let_exp_assign", "let_calloc",
483 "let_callback", "let_func", "let_func_token", "let_func_exps",
484 "let_exps", "callback_rval", "callback_arg_list", "callback_args",
485 "return_stmt", "return_exp", "call_decl_vars", "set_stmt", "set_exp",
486 "set_func", "set_func_token", "set_func_exps", "set_exps", "assert_stmt",
487 "assert_stmt_token", "free_stmt", "free_exps", "free_exp", "reference",
488 "byref", YY_NULLPTR
489 };
490 #endif
491
492 #define YYPACT_NINF -731
493 #define YYTABLE_NINF -636
494
495 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
496 STATE-NUM. */
497 static const short yypact[] =
498 {
499 529, -731, -731, -731, -731, -731, 128, -731, -731, -731,
500 582, -731, -731, -731, 555, 722, 7975, 7975, 7975, 348,
501 77, -23, 80, -731, 281, -731, 132, 529, -731, -731,
502 -731, -731, -731, 7120, 109, -731, -731, -731, -731, 409,
503 161, -731, -731, -731, -731, 493, 26, -731, -731, 30,
504 96, 126, -731, -731, -731, -731, 125, -731, 142, -731,
505 -731, -731, 7975, 7975, 7975, -731, -731, -731, 145, -731,
506 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
507 -731, 861, -731, -731, -731, -731, 151, 987, 987, 33,
508 -731, 987, 6894, 7975, 7975, 1728, 154, -731, -731, -731,
509 165, 7975, 164, 164, -731, -731, -731, -731, -731, -731,
510 1353, -731, -731, -731, -731, -731, -731, -731, -731, -731,
511 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
512 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
513 -731, 114, -731, -731, 114, 181, -731, -731, -731, -731,
514 -731, -731, 201, 192, -731, 214, -731, 218, -731, 234,
515 -731, 1841, 722, 138, -731, 26, -731, -731, 46, 224,
516 -731, -731, 232, 7975, 17, -731, -731, -731, 261, -731,
517 101, -731, -731, -731, 507, -731, 233, 244, 248, 1954,
518 1954, 7975, 230, -731, -731, -731, 7459, 26, -731, 1693,
519 -731, -731, -731, -731, -731, -731, -731, -731, 1806, 1919,
520 2032, 2145, -731, 2258, 2371, -731, -731, -731, 2484, -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, -731, -731, -731, -731, -731, -731, -731, -731, -731,
524 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
525 -731, 2597, 2710, 2823, 2936, 3049, -731, -731, -731, -731,
526 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
527 -731, 3162, -731, 3275, 3388, 3501, 3614, 3727, 3840, -731,
528 3953, -731, -731, 4066, 4179, 4292, 4405, 4518, 4631, 4744,
529 4857, 4970, 5083, 5196, 5309, 5422, 5535, 5648, 5761, -731,
530 -731, -731, -731, -731, -731, -731, 5874, 987, -731, -731,
531 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
532 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
533 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
534 -731, -731, -731, -731, -731, -731, -731, -731, -731, 987,
535 -731, -731, -731, -731, -731, -731, -731, 116, 6894, -731,
536 -731, -731, -731, 7572, 6894, 250, 8076, -731, 111, -731,
537 169, -731, -731, -731, -731, 245, 247, 247, 91, 91,
538 6103, 256, -731, 230, 252, 266, -731, 268, -731, -731,
539 -731, 1467, -731, 255, 224, -731, -731, -731, -731, -731,
540 301, -731, -731, 1239, -731, 283, -731, 52, 7120, -731,
541 279, 173, 284, -731, -731, 175, 277, 286, -731, 7459,
542 6555, 7459, 7975, 7459, -731, -731, 129, -731, -731, -731,
543 -731, -731, 6781, -731, 287, -731, 7975, 299, -731, 317,
544 8076, 307, -731, -731, -731, -731, 755, 331, -731, 7108,
545 7975, -731, -731, 1580, -731, -731, -731, -731, -731, -731,
546 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
547 -731, -731, 6894, 6894, 323, 1420, 7459, 7459, -731, -731,
548 -731, -731, 153, -731, -731, -731, -731, -731, 5990, 6781,
549 325, -731, 307, -731, 8100, -731, -731, 6103, 179, 427,
550 -731, -731, -731, -731, -731, -731, 8052, 320, 7685, -731,
551 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
552 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
553 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
554 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
555 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
556 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
557 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
558 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
559 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
560 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
561 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
562 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
563 1113, -731, 76, 56, 1954, 224, 308, 493, 224, 309,
564 6781, 7975, 338, 346, 356, 8100, 351, 357, -731, 360,
565 369, 354, 363, 122, -731, 370, 376, -731, -731, -731,
566 769, 7459, -731, 7744, -731, 255, 375, -731, -731, -731,
567 378, -731, 8076, 379, 388, 7676, -731, 398, 1728, 389,
568 -731, -731, 7007, 229, 7975, 164, 164, -731, -731, 36,
569 38, 47, 7225, -731, -731, 6781, 6781, 394, -731, -731,
570 -731, -731, -731, 391, 186, -731, 80, -731, -731, -731,
571 -731, -731, 255, 180, -731, -731, -731, 255, -731, 196,
572 -731, 399, -731, -731, 403, 8100, -731, -731, 6216, -731,
573 6555, -731, 7459, -731, 80, 7459, -731, 7975, 7857, -731,
574 -731, -731, -731, -731, 405, 393, -731, -731, -731, -731,
575 6894, 6894, 411, -731, 71, 412, -731, 389, 247, 247,
576 6781, -731, 7838, -731, -731, 641, 413, 641, 407, 7975,
577 1954, -731, 7233, 224, 392, 224, 224, 158, 350, 238,
578 431, 8100, -731, -731, -731, -731, 434, 6668, -731, 433,
579 7459, 219, -731, 436, 287, 440, 987, 7916, 8076, 8124,
580 449, 441, 443, 7346, 446, 412, 7459, 7459, -731, 6781,
581 -731, 641, -731, 80, 6103, 448, 452, -731, -731, 453,
582 -731, -731, 431, -731, -731, -731, 7857, -731, 455, 6781,
583 80, -731, 6329, 456, 460, -731, 395, -731, -731, -731,
584 462, 458, 471, 389, 472, -731, -731, 474, 8148, -731,
585 48, -731, 476, 484, 224, 488, 80, 7563, 489, 491,
586 -731, 492, -731, -731, 61, -731, 495, 494, -731, 7346,
587 -731, 506, 1954, 500, -731, 445, 511, 6781, 6216, 512,
588 -731, 6555, -731, -731, 515, 519, 523, 389, -731, 516,
589 520, 1954, 276, 6442, 7442, 346, -731, -731, -731, 518,
590 6668, -731, -731, 522, 521, -731, 526, 524, 530, 534,
591 535, 528, -731, -731, 6216, -731, 542, -731, 641, 537,
592 224, 80, 538, 6555, -731, 539, -731, 1954, -731, 541,
593 -731, -731, -731, 543, 6442, 224, 548, -731, 549, -731
594 };
595
596 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
597 Performed when YYTABLE does not specify something else to do. Zero
598 means the default is an error. */
599 static const unsigned short yydefact[] =
600 {
601 280, 401, 398, 402, 396, 397, 399, 393, 394, 392,
602 391, 383, 285, 284, 0, 0, 0, 0, 510, 382,
603 0, 432, 635, 286, 0, 436, 0, 281, 282, 288,
604 287, 289, 293, 527, 0, 379, 385, 384, 390, 405,
605 417, 389, 290, 291, 292, 0, 422, 443, 445, 446,
606 0, 0, 457, 295, 294, 296, 0, 297, 0, 400,
607 395, 391, 0, 0, 0, 382, 437, 444, 427, 299,
608 310, 307, 309, 311, 312, 323, 320, 321, 318, 324,
609 319, 0, 322, 313, 314, 315, 0, 335, 335, 0,
610 303, 0, 0, 510, 510, 0, 0, 365, 370, 466,
611 369, 0, 518, 518, 33, 34, 35, 36, 37, 623,
612 584, 24, 42, 41, 40, 38, 39, 32, 31, 25,
613 29, 28, 26, 27, 43, 592, 591, 589, 587, 588,
614 590, 586, 585, 593, 30, 621, 619, 618, 620, 617,
615 616, 386, 44, 45, 387, 388, 507, 551, 552, 553,
616 554, 555, 0, 0, 548, 0, 433, 0, 637, 0,
617 636, 391, 0, 0, 434, 422, 1, 283, 533, 520,
618 381, 467, 0, 528, 529, 531, 380, 407, 411, 409,
619 413, 406, 403, 418, 405, 404, 0, 0, 0, 458,
620 458, 0, 0, 386, 387, 388, 0, 422, 71, 46,
621 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
622 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
623 67, 68, 69, 70, 161, 162, 72, 73, 74, 75,
624 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
625 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
626 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
627 111, 109, 110, 108, 106, 107, 112, 113, 114, 115,
628 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
629 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
630 163, 136, 137, 138, 139, 140, 141, 142, 143, 144,
631 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
632 155, 159, 156, 157, 158, 160, 0, 335, 305, 300,
633 46, 55, 56, 57, 58, 60, 61, 65, 109, 110,
634 108, 106, 107, 127, 129, 130, 131, 132, 133, 134,
635 163, 138, 139, 140, 141, 142, 143, 144, 145, 146,
636 147, 148, 149, 150, 151, 152, 153, 337, 308, 336,
637 301, 316, 317, 302, 304, 345, 346, 0, 0, 22,
638 23, 20, 21, 0, 0, 348, 306, 347, 386, 509,
639 387, 508, 366, 363, 371, 0, 0, 0, 0, 0,
640 0, 0, 298, 0, 0, 0, 435, 0, 536, 535,
641 534, 523, 469, 527, 520, 530, 532, 412, 408, 414,
642 415, 410, 419, 0, 431, 0, 420, 392, 527, 463,
643 0, 0, 460, 461, 464, 0, 486, 512, 484, 0,
644 635, 0, 0, 0, 629, 630, 0, 560, 563, 562,
645 564, 565, 0, 566, 428, 429, 0, 0, 424, 0,
646 327, 328, 325, 338, 506, 505, 0, 0, 501, 0,
647 0, 343, 340, 350, 2, 3, 4, 5, 6, 7,
648 8, 9, 10, 11, 13, 12, 14, 15, 16, 17,
649 18, 19, 0, 0, 0, 0, 0, 0, 472, 471,
650 473, 470, 497, 361, 362, 495, 494, 496, 0, 0,
651 0, 357, 359, 498, 358, 488, 499, 0, 0, 0,
652 364, 421, 497, 525, 526, 524, 0, 0, 0, 528,
653 468, 416, 189, 164, 165, 166, 167, 168, 169, 170,
654 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
655 181, 182, 183, 184, 185, 186, 187, 188, 277, 278,
656 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
657 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
658 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
659 220, 221, 227, 225, 226, 224, 222, 223, 228, 229,
660 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
661 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
662 250, 251, 279, 252, 253, 254, 255, 256, 257, 258,
663 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
664 269, 270, 271, 275, 272, 273, 274, 276, 441, 442,
665 0, 439, 0, 520, 458, 520, 0, 0, 520, 0,
666 0, 513, 0, 0, 0, 612, 0, 0, 611, 45,
667 0, 0, 0, 0, 632, 0, 0, 606, 537, 561,
668 0, 0, 426, 329, 425, 527, 0, 502, 504, 339,
669 0, 352, 353, 0, 351, 0, 341, 0, 0, 514,
670 374, 367, 375, 0, 376, 518, 518, 373, 372, 623,
671 24, 0, 0, 492, 356, 0, 0, 0, 538, 557,
672 558, 559, 556, 0, 0, 542, 635, 547, 549, 550,
673 522, 521, 527, 0, 438, 440, 423, 527, 465, 0,
674 449, 0, 462, 447, 0, 487, 485, 483, 0, 567,
675 635, 610, 0, 546, 635, 0, 631, 0, 607, 604,
676 628, 430, 330, 333, 0, 331, 503, 500, 344, 349,
677 0, 0, 0, 368, 0, 477, 474, 514, 0, 0,
678 0, 490, 0, 491, 355, 0, 0, 0, 544, 0,
679 458, 455, 0, 520, 0, 520, 520, 497, 0, 31,
680 30, 573, 578, 574, 576, 577, 44, 0, 613, 624,
681 0, 0, 633, 623, 609, 0, 335, 0, 354, 342,
682 0, 515, 0, 514, 0, 477, 378, 377, 489, 0,
683 539, 0, 543, 635, 0, 0, 0, 456, 453, 0,
684 450, 448, 0, 575, 598, 584, 607, 599, 0, 0,
685 635, 579, 635, 0, 0, 634, 0, 326, 332, 334,
686 0, 0, 0, 514, 478, 481, 475, 0, 493, 540,
687 0, 545, 0, 0, 520, 0, 635, 0, 594, 0,
688 626, 625, 614, 568, 0, 519, 0, 0, 479, 514,
689 476, 0, 458, 0, 454, 0, 0, 0, 0, 0,
690 615, 635, 622, 605, 0, 0, 0, 514, 482, 0,
691 0, 458, 0, 600, 0, 498, 596, 571, 569, 595,
692 0, 583, 627, 0, 0, 480, 0, 0, 0, 0,
693 0, 601, 602, 580, 0, 570, 0, 516, 0, 0,
694 520, 635, 0, 635, 597, 0, 541, 458, 451, 0,
695 581, 603, 517, 0, 600, 520, 0, 452, 0, 582
696 };
697
698 /* YYPGOTO[NTERM-NUM]. */
699 static const short yypgoto[] =
700 {
701 -731, -351, -73, -11, -47, -731, -731, -731, 547, -731,
702 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
703 -731, -731, -86, -731, -281, -731, -731, -731, -476, -731,
704 -731, 421, -118, 41, -104, -179, -19, -5, -731, -731,
705 -731, 554, -731, -731, 416, -731, -731, -731, -731, -76,
706 -261, -731, -731, -181, -731, -731, 410, -731, -45, 573,
707 39, -3, 50, -731, -731, -731, -731, -182, -731, -44,
708 3, -33, -731, -731, 213, -349, -731, -210, -731, 9,
709 -731, -41, -369, -731, -66, -731, 150, -731, -446, -444,
710 166, -731, -709, -87, -380, -731, -375, -29, -731, 459,
711 -731, -731, 586, -731, -158, -683, -730, -731, -731, 620,
712 -731, 249, -373, -731, -283, -696, 220, -145, -731, -731,
713 -692, -731, -731, -254, -284, -731, -731, -731, -175, -731,
714 -408, -410, -413, -731, -731, -731, -731, -731, -731, -83,
715 -21, -698
716 };
717
718 /* YYDEFGOTO[NTERM-NUM]. */
719 static const short yydefgoto[] =
720 {
721 -1, 706, 499, 169, 357, 638, 26, 27, 28, 29,
722 30, 86, 87, 88, 89, 363, 90, 91, 92, 318,
723 754, 755, 358, 359, 376, 683, 684, 31, 500, 501,
724 32, 96, 689, 690, 691, 33, 34, 35, 36, 37,
725 38, 39, 40, 41, 182, 408, 411, 185, 42, 188,
726 502, 43, 197, 804, 44, 45, 639, 640, 641, 46,
727 47, 48, 99, 419, 50, 420, 51, 421, 422, 423,
728 424, 503, 53, 54, 489, 490, 693, 814, 854, 101,
729 427, 428, 655, 505, 506, 676, 458, 56, 102, 103,
730 146, 652, 765, 386, 402, 517, 172, 446, 174, 175,
731 400, 57, 58, 714, 715, 656, 716, 153, 717, 718,
732 719, 436, 437, 438, 906, 907, 908, 793, 794, 795,
733 142, 889, 909, 838, 920, 921, 439, 666, 805, 440,
734 922, 658, 143, 843, 871, 441, 442, 443, 663, 664,
735 660, 160
736 };
737
738 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
739 positive, shift that token. If negative, reduce the rule whose
740 number is the opposite. If YYTABLE_NINF, syntax error. */
741 static const short yytable[] =
742 {
743 171, 159, 360, 52, 173, 141, 144, 145, 425, 55,
744 418, 418, 98, 68, 170, 444, 387, 659, 100, 374,
745 659, 504, 657, 667, 520, 483, 377, 52, 518, 176,
746 52, 707, 516, 778, 317, 450, 55, 486, 487, 695,
747 797, 696, 792, 643, 364, 820, 796, 823, 52, 67,
748 49, 193, 194, 195, 388, 451, 97, 389, 815, 361,
749 49, -446, -466, 669, -466, -392, 168, -391, 22, -392,
750 316, -24, 743, 670, 49, 398, 11, 49, 109, 892,
751 770, 375, 378, 380, 186, -392, -392, 459, 727, 397,
752 384, 859, 98, 462, 401, 49, 811, 837, 100, 483,
753 156, 841, 674, 155, 855, 796, 812, 409, 483, 726,
754 410, 483, 881, 1, 2, 3, 4, 5, 6, 7,
755 8, 447, 488, -392, 158, -391, 9, 485, 189, 702,
756 703, 61, 166, 399, 65, 669, 382, 59, 504, 60,
757 778, 405, 454, 455, 878, -518, -386, -511, 456, 385,
758 -518, 187, 362, 746, 642, -446, 747, 868, 190, 98,
759 457, 191, 404, 445, 52, 100, 668, 183, 4, 5,
760 898, 135, 136, 137, 138, 139, 140, -457, 192, 196,
761 426, 319, 682, 886, -360, 383, -360, -360, 915, -497,
762 910, -497, -497, 62, 63, 64, 796, -457, 936, 385,
763 67, 685, 686, 97, -387, -511, 645, 646, 648, 649,
764 837, 49, 780, 781, 925, 391, 708, -511, 796, 776,
765 777, 429, 430, 431, 432, 433, 910, 434, 435, 783,
766 784, 452, 796, 1, 2, 3, 4, 5, 6, 7,
767 8, 390, 695, 374, 696, 392, 9, 695, 939, 696,
768 377, 61, 845, 671, 393, 834, 835, 394, 11, 379,
769 381, 396, 401, 728, 403, 730, 766, 407, 733, 413,
770 836, 429, 430, 431, 432, 433, 415, 434, 435, 416,
771 484, 735, 463, 485, 509, 1, 2, 3, 4, 5,
772 6, 7, 8, 834, 835, 374, 507, 510, 9, 511,
773 756, 374, 377, 161, 168, 375, 692, 521, 377, 448,
774 11, 644, 453, 93, 94, 18, 65, 650, 647, 701,
775 651, 671, 429, 430, 431, 432, 433, 659, 434, 435,
776 672, 483, 798, 674, 483, 483, 772, 773, 125, 126,
777 127, 128, 129, 130, 131, 132, 133, 779, 861, 673,
778 688, 147, 782, 678, 148, 687, 704, 375, 149, 721,
779 150, 151, 461, 375, 162, 62, 63, 64, 65, 791,
780 163, 152, 731, 734, 519, 737, 125, 126, 127, 128,
781 129, 130, 131, 132, 133, 171, 738, 739, 741, 173,
782 374, 740, 742, 743, 744, 745, 653, 377, 661, 170,
783 665, 818, 748, 828, 164, 830, 831, 749, 757, 374,
784 374, 758, 759, 177, 178, 179, 377, 377, 180, 816,
785 817, 662, 760, 762, 764, 774, 775, 807, 791, 659,
786 147, 181, 785, 148, 870, 404, 786, 149, 806, 150,
787 151, 709, 710, 711, 712, 810, 813, 824, 821, 680,
788 858, 675, 375, 697, 698, 504, 829, 483, 483, 832,
789 713, 894, 729, 839, 893, 418, 840, 842, 418, -608,
790 867, 375, 375, 846, 850, 852, 851, 856, 659, 808,
791 809, 862, 98, 912, 884, 863, 864, 866, 100, 872,
792 659, 873, 874, 876, 694, 875, 877, 1, 2, 3,
793 4, 5, 6, 7, 8, 880, 879, 723, 882, 692,
794 9, 177, 178, 179, 692, 61, 180, 883, 904, 791,
795 659, 885, 11, 888, 890, 941, 891, 895, 896, 181,
796 899, 659, 901, 1, 2, 3, 4, 5, 6, 7,
797 8, 791, 902, 903, 913, 911, 9, 742, 914, 916,
798 938, 10, 924, 917, 927, 791, 926, 929, 11, 12,
799 13, 928, 933, 930, 801, 947, 931, 935, 932, 937,
800 14, 940, 942, 944, 167, 767, 945, 62, 63, 64,
801 65, 948, 949, 395, 763, 69, 1, 2, 3, 4,
802 5, 6, 7, 8, 184, 725, 414, 165, 826, 9,
803 412, 418, 491, 732, 61, 857, 677, 157, 768, 769,
804 736, 11, 15, 16, 17, 18, 19, 20, 21, 822,
805 22, 70, 71, 72, 73, 74, 75, 76, 77, 78,
806 79, 80, 81, 406, 82, 83, 84, 85, 751, 154,
807 426, 934, 508, 833, 147, 23, 519, 148, 919, 654,
808 24, 149, 25, 150, 151, 709, 710, 711, 712, 171,
809 946, 865, 753, 173, 802, 0, 62, 63, 64, 65,
810 0, 0, 0, 170, 0, 0, 0, 0, 0, 0,
811 0, 0, 170, 384, 0, 98, 0, 374, 374, 0,
812 98, 100, 0, 519, 377, 377, 100, 694, 519, 0,
813 900, 0, 694, 418, 0, 66, 0, 0, 0, 799,
814 0, 0, 445, 0, 0, 445, 0, 0, 0, 918,
815 847, 0, 418, 800, 0, 0, 1, 2, 3, 4,
816 5, 6, 7, 8, 0, 0, 662, 0, 0, 9,
817 0, 0, 0, 0, 61, 0, 0, 0, 0, 375,
818 375, 11, 0, 0, 0, 943, 0, 0, 418, 1,
819 2, 3, 4, 5, 6, 7, 8, 844, 825, 0,
820 0, 723, 9, 0, 0, 0, 0, 61, 0, 0,
821 853, 454, 455, 697, 698, 0, 0, 0, 0, 0,
822 0, 0, 0, 0, 0, 0, 849, 0, 0, 457,
823 750, 0, 860, 445, 0, 0, 93, 94, 18, 65,
824 0, 464, 465, 466, 467, 468, 469, 470, 471, 472,
825 473, 474, 475, 476, 477, 478, 479, 480, 481, 0,
826 0, 0, 0, 0, 705, 0, 0, 0, 0, 62,
827 63, 64, 0, 95, 0, 0, 897, 0, 0, 0,
828 0, 0, 0, 0, 0, 905, 0, 0, 0, 0,
829 0, 198, 0, 0, 199, 200, 201, 202, 203, 204,
830 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
831 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
832 225, 905, 226, 227, 228, 229, 230, 231, 232, 233,
833 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
834 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
835 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
836 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
837 274, 0, 275, 0, 276, 277, 278, 279, 280, 281,
838 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
839 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
840 302, 303, 304, 305, 306, 307, 308, 309, 0, 0,
841 310, 0, 311, 312, 313, 314, 315, 198, 0, 0,
842 320, 200, 201, 202, 203, 204, 205, 206, 207, 321,
843 322, 323, 324, 212, 325, 326, 215, 216, 217, 327,
844 219, 220, 221, 222, 223, 224, 225, 0, 226, 227,
845 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
846 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
847 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
848 258, 259, 260, 328, 329, 330, 331, 332, 266, 267,
849 268, 269, 270, 271, 272, 273, 274, 0, 275, 0,
850 276, 277, 278, 279, 280, 333, 282, 334, 335, 336,
851 337, 338, 339, 289, 340, 291, 292, 341, 342, 343,
852 344, 345, 346, 347, 348, 349, 350, 351, 352, 353,
853 354, 355, 356, 309, 0, 0, 310, 0, 311, 312,
854 313, 314, 315, 522, 0, 0, 523, 524, 525, 526,
855 527, 528, 529, 530, 531, 532, 533, 534, 535, 536,
856 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
857 547, 548, 549, 0, 550, 551, 552, 553, 554, 413,
858 724, 555, 556, 557, 558, 559, 560, 561, 562, 563,
859 564, 565, 566, 567, 568, 569, 570, 571, 572, 573,
860 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
861 584, 585, 586, 587, 588, 589, 590, 591, 592, 593,
862 594, 595, 596, 0, 597, 0, 598, 599, 600, 601,
863 602, 603, 604, 605, 606, 607, 608, 609, 610, 611,
864 612, 613, 614, 615, 616, 617, 618, 619, 620, 621,
865 622, 623, 624, 625, 626, 627, 628, 629, 630, 631,
866 0, 0, 632, 0, 633, 634, 635, 636, 637, 522,
867 0, 0, 523, 524, 525, 526, 527, 528, 529, 530,
868 531, 532, 533, 534, 535, 536, 537, 538, 539, 540,
869 541, 542, 543, 544, 545, 546, 547, 548, 549, 0,
870 550, 551, 552, 553, 554, 413, 0, 555, 556, 557,
871 558, 559, 560, 561, 562, 563, 564, 565, 566, 567,
872 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
873 578, 579, 580, 581, 582, 583, 584, 585, 586, 587,
874 588, 589, 590, 591, 592, 593, 594, 595, 596, 0,
875 597, 0, 598, 599, 600, 601, 602, 603, 604, 605,
876 606, 607, 608, 609, 610, 611, 612, 613, 614, 615,
877 616, 617, 618, 619, 620, 621, 622, 623, 624, 625,
878 626, 627, 628, 629, 630, 631, -584, 0, 632, 0,
879 633, 634, 635, 636, 637, -584, -584, -584, -584, 0,
880 -584, -584, 0, 0, 0, -584, 0, 0, 0, 0,
881 0, 0, -584, -584, -584, -584, -584, -584, -584, -584,
882 -584, -584, -584, -584, 0, -584, -584, -584, -584, -584,
883 -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
884 -584, -584, -584, 0, 0, 0, 0, 0, -584, -584,
885 -584, -584, -584, -584, 1, 2, 3, 4, 5, 6,
886 7, 8, 0, 0, 0, 0, 0, 9, 0, 0,
887 -584, -584, 61, -584, -584, -584, -584, -584, -584, 11,
888 -584, 0, 0, -584, -584, -584, -584, -584, -584, -584,
889 -584, -584, -584, -584, -584, -584, -584, -584, -584, 0,
890 104, 0, 0, 0, 0, 0, 0, 0, -584, 105,
891 106, 107, 108, 0, 109, 110, 512, 0, 0, 111,
892 495, 0, 496, 0, 497, 367, 513, 0, 0, 498,
893 0, 0, 0, 0, 93, 94, 18, 65, 0, 0,
894 0, 0, 0, 0, 369, 370, 168, 0, 0, 0,
895 0, 0, 0, 0, 0, 0, 0, 371, 372, 0,
896 0, 0, 0, 112, 113, 114, 115, 116, 0, 0,
897 0, 688, 0, 0, 0, 0, 0, 0, 0, 0,
898 0, 0, 0, 0, 514, 117, 0, 118, 119, 120,
899 121, 122, 123, 0, 124, 0, 0, 125, 126, 127,
900 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
901 138, 139, 140, 104, 0, 0, 0, 0, 0, 0,
902 0, 515, 105, 106, 107, 108, 0, 109, 110, 0,
903 0, 0, 111, 0, 0, 365, 0, 366, 367, 0,
904 0, 0, 368, 0, 0, 0, 0, 0, 0, 0,
905 0, 0, 0, 0, 0, 0, 0, 369, 370, 0,
906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
907 371, 372, 0, 0, 0, 0, 112, 113, 114, 115,
908 116, 0, 0, 0, 0, 0, 0, 0, 373, 0,
909 0, 0, 0, 0, 0, 0, 0, 0, 117, 0,
910 118, 119, 120, 121, 122, 123, 0, 124, 0, 0,
911 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
912 135, 136, 137, 138, 139, 140, -33, 0, 0, 681,
913 0, 0, 0, 0, 0, -33, -33, -33, -33, 0,
914 -33, -33, 0, 0, 0, -33, 0, 0, -33, -33,
915 -33, -33, 0, 0, 0, -33, 0, 0, 0, 0,
916 0, 0, 1, 2, 3, 4, 5, 6, 7, 8,
917 -33, -33, 0, 0, 0, 9, 0, 0, 0, 0,
918 61, 0, 0, -33, -33, 0, 0, 11, 0, -33,
919 -33, -33, -33, -33, 0, 0, 0, 0, 0, 0,
920 0, -33, 0, 0, 0, 0, 0, 0, 0, 0,
921 0, -33, 0, -33, -33, -33, -33, -33, -33, 0,
922 -33, 0, 0, -33, -33, -33, -33, -33, -33, -33,
923 -33, -33, -33, -33, -33, -33, -33, -33, -33, -34,
924 0, -33, 93, 94, 18, 65, 0, 0, -34, -34,
925 -34, -34, 0, -34, -34, 0, 0, 0, -34, 0,
926 0, -34, -34, -34, -34, 0, 0, 0, -34, 0,
927 0, 0, 0, 0, 0, 1, 2, 3, 4, 5,
928 6, 7, 8, -34, -34, 0, 0, 0, 9, 0,
929 0, 0, 0, 61, 0, 0, -34, -34, 0, 0,
930 11, 0, -34, -34, -34, -34, -34, 0, 0, 0,
931 0, 0, 0, 0, -34, 0, 0, 0, 0, 0,
932 0, 0, 0, 0, -34, 0, -34, -34, -34, -34,
933 -34, -34, 0, -34, 0, 0, -34, -34, -34, -34,
934 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
935 -34, -34, -35, 0, -34, 62, 63, 64, 65, 0,
936 0, -35, -35, -35, -35, 0, -35, -35, 0, 0,
937 0, -35, 0, 0, -35, -35, -35, -35, 0, 0,
938 0, -35, 0, 0, 0, 0, 0, 0, 1, 2,
939 3, 4, 5, 6, 7, 8, -35, -35, 0, 0,
940 0, 417, 0, 0, 0, 0, 61, 0, 0, -35,
941 -35, 0, 0, 11, 0, -35, -35, -35, -35, -35,
942 0, 0, 0, 0, 0, 0, 0, -35, 0, 0,
943 0, 0, 0, 0, 0, 0, 0, -35, 0, -35,
944 -35, -35, -35, -35, -35, 0, -35, 0, 0, -35,
945 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
946 -35, -35, -35, -35, -35, -36, 0, -35, 62, 63,
947 64, 65, 0, 0, -36, -36, -36, -36, 0, -36,
948 -36, 0, 0, 0, -36, 0, 0, -36, -36, -36,
949 -36, 0, 0, 0, -36, 0, 0, 0, 0, 0,
950 0, 0, 0, 0, 0, 0, 0, 0, 0, -36,
951 -36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
952 0, 0, -36, -36, 0, 0, 0, 0, -36, -36,
953 -36, -36, -36, 0, 0, 0, 0, 0, 0, 0,
954 -36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
955 -36, 0, -36, -36, -36, -36, -36, -36, 0, -36,
956 0, 0, -36, -36, -36, -36, -36, -36, -36, -36,
957 -36, -36, -36, -36, -36, -36, -36, -36, -37, 0,
958 -36, 0, 0, 0, 0, 0, 0, -37, -37, -37,
959 -37, 0, -37, -37, 0, 0, 0, -37, 0, 0,
960 -37, -37, -37, -37, 0, 0, 0, -37, 0, 0,
961 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
962 0, 0, -37, -37, 0, 0, 0, 0, 0, 0,
963 0, 0, 0, 0, 0, -37, -37, 0, 0, 0,
964 0, -37, -37, -37, -37, -37, 0, 0, 0, 0,
965 0, 0, 0, -37, 0, 0, 0, 0, 0, 0,
966 0, 0, 0, -37, 0, -37, -37, -37, -37, -37,
967 -37, 0, -37, 0, 0, -37, -37, -37, -37, -37,
968 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
969 -37, -60, 0, -37, 0, 0, 0, 0, 0, 0,
970 -60, -60, -60, -60, 0, -60, -60, 0, 0, 0,
971 -60, 0, 0, -60, -60, -60, -60, 0, 0, 0,
972 -60, 0, 0, 0, 0, 0, 0, 0, 0, 0,
973 0, 0, 0, 0, 0, -60, -60, 0, 0, 0,
974 0, 0, 0, 0, 0, 0, 0, 0, -60, -60,
975 0, 0, 0, 0, -60, -60, -60, -60, -60, 0,
976 0, 0, 0, 0, 0, 0, -60, 0, 0, 0,
977 0, 0, 0, 0, 0, 0, -60, 0, -60, -60,
978 -60, -60, -60, -60, 0, -60, 0, 0, -60, -60,
979 -60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
980 -60, -60, -60, -60, -61, 0, -623, 0, 0, 0,
981 0, 0, 0, -61, -61, -61, -61, 0, -61, -61,
982 0, 0, 0, -61, 0, 0, -61, -61, -61, -61,
983 0, 0, 0, -61, 0, 0, 0, 0, 0, 0,
984 0, 0, 0, 0, 0, 0, 0, 0, -61, -61,
985 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
986 0, -61, -61, 0, 0, 0, 0, -61, -61, -61,
987 -61, -61, 0, 0, 0, 0, 0, 0, 0, -61,
988 0, 0, 0, 0, 0, 0, 0, 0, 0, -61,
989 0, -61, -61, -61, -61, -61, -61, 0, -61, 0,
990 0, -61, -61, -61, -61, -61, -61, -61, -61, -61,
991 -61, -61, -61, -61, -61, -61, -61, -24, 0, -584,
992 0, 0, 0, 0, 0, 0, -24, -24, -24, -24,
993 0, -24, -24, 0, 0, 0, -24, 0, 0, -24,
994 -24, -24, -24, 0, 0, 0, -24, 0, 0, 0,
995 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
996 0, -24, -24, 0, 0, 0, 0, 0, 0, 0,
997 0, 0, 0, 0, -24, -24, 0, 0, 0, 0,
998 -24, -24, -24, -24, -24, 0, 0, 0, 0, 0,
999 0, 0, -24, 0, 0, 0, 0, 0, 0, 0,
1000 0, 0, -24, 0, -24, -24, -24, -24, -24, -24,
1001 0, -24, 0, 0, -24, -24, -24, -24, -24, -24,
1002 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
1003 -42, 0, -24, 0, 0, 0, 0, 0, 0, -42,
1004 -42, -42, -42, 0, -42, -42, 0, 0, 0, -42,
1005 0, 0, -42, -42, -42, -42, 0, 0, 0, -42,
1006 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1007 0, 0, 0, 0, -42, -42, 0, 0, 0, 0,
1008 0, 0, 0, 0, 0, 0, 0, -42, -42, 0,
1009 0, 0, 0, -42, -42, -42, -42, -42, 0, 0,
1010 0, 0, 0, 0, 0, -42, 0, 0, 0, 0,
1011 0, 0, 0, 0, 0, -42, 0, -42, -42, -42,
1012 -42, -42, -42, 0, -42, 0, 0, -42, -42, -42,
1013 -42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
1014 -42, -42, -42, -41, 0, -42, 0, 0, 0, 0,
1015 0, 0, -41, -41, -41, -41, 0, -41, -41, 0,
1016 0, 0, -41, 0, 0, -41, -41, -41, -41, 0,
1017 0, 0, -41, 0, 0, 0, 0, 0, 0, 0,
1018 0, 0, 0, 0, 0, 0, 0, -41, -41, 0,
1019 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1020 -41, -41, 0, 0, 0, 0, -41, -41, -41, -41,
1021 -41, 0, 0, 0, 0, 0, 0, 0, -41, 0,
1022 0, 0, 0, 0, 0, 0, 0, 0, -41, 0,
1023 -41, -41, -41, -41, -41, -41, 0, -41, 0, 0,
1024 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
1025 -41, -41, -41, -41, -41, -41, -40, 0, -41, 0,
1026 0, 0, 0, 0, 0, -40, -40, -40, -40, 0,
1027 -40, -40, 0, 0, 0, -40, 0, 0, -40, -40,
1028 -40, -40, 0, 0, 0, -40, 0, 0, 0, 0,
1029 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1030 -40, -40, 0, 0, 0, 0, 0, 0, 0, 0,
1031 0, 0, 0, -40, -40, 0, 0, 0, 0, -40,
1032 -40, -40, -40, -40, 0, 0, 0, 0, 0, 0,
1033 0, -40, 0, 0, 0, 0, 0, 0, 0, 0,
1034 0, -40, 0, -40, -40, -40, -40, -40, -40, 0,
1035 -40, 0, 0, -40, -40, -40, -40, -40, -40, -40,
1036 -40, -40, -40, -40, -40, -40, -40, -40, -40, -38,
1037 0, -40, 0, 0, 0, 0, 0, 0, -38, -38,
1038 -38, -38, 0, -38, -38, 0, 0, 0, -38, 0,
1039 0, -38, -38, -38, -38, 0, 0, 0, -38, 0,
1040 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1041 0, 0, 0, -38, -38, 0, 0, 0, 0, 0,
1042 0, 0, 0, 0, 0, 0, -38, -38, 0, 0,
1043 0, 0, -38, -38, -38, -38, -38, 0, 0, 0,
1044 0, 0, 0, 0, -38, 0, 0, 0, 0, 0,
1045 0, 0, 0, 0, -38, 0, -38, -38, -38, -38,
1046 -38, -38, 0, -38, 0, 0, -38, -38, -38, -38,
1047 -38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
1048 -38, -38, -39, 0, -38, 0, 0, 0, 0, 0,
1049 0, -39, -39, -39, -39, 0, -39, -39, 0, 0,
1050 0, -39, 0, 0, -39, -39, -39, -39, 0, 0,
1051 0, -39, 0, 0, 0, 0, 0, 0, 0, 0,
1052 0, 0, 0, 0, 0, 0, -39, -39, 0, 0,
1053 0, 0, 0, 0, 0, 0, 0, 0, 0, -39,
1054 -39, 0, 0, 0, 0, -39, -39, -39, -39, -39,
1055 0, 0, 0, 0, 0, 0, 0, -39, 0, 0,
1056 0, 0, 0, 0, 0, 0, 0, -39, 0, -39,
1057 -39, -39, -39, -39, -39, 0, -39, 0, 0, -39,
1058 -39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
1059 -39, -39, -39, -39, -39, -32, 0, -39, 0, 0,
1060 0, 0, 0, 0, -32, -32, -32, -32, 0, -32,
1061 -32, 0, 0, 0, -32, 0, 0, -32, -32, -32,
1062 -32, 0, 0, 0, -32, 0, 0, 0, 0, 0,
1063 0, 0, 0, 0, 0, 0, 0, 0, 0, -32,
1064 -32, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1065 0, 0, -32, -32, 0, 0, 0, 0, -32, -32,
1066 -32, -32, -32, 0, 0, 0, 0, 0, 0, 0,
1067 -32, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1068 -32, 0, -32, -32, -32, -32, -32, -32, 0, -32,
1069 0, 0, -32, -32, -32, -32, -32, -32, -32, -32,
1070 -32, -32, -32, -32, -32, -32, -32, -32, -31, 0,
1071 -32, 0, 0, 0, 0, 0, 0, -31, -31, -31,
1072 -31, 0, -31, -31, 0, 0, 0, -31, 0, 0,
1073 -31, -31, -31, -31, 0, 0, 0, -31, 0, 0,
1074 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1075 0, 0, -31, -31, 0, 0, 0, 0, 0, 0,
1076 0, 0, 0, 0, 0, -31, -31, 0, 0, 0,
1077 0, -31, -31, -31, -31, -31, 0, 0, 0, 0,
1078 0, 0, 0, -31, 0, 0, 0, 0, 0, 0,
1079 0, 0, 0, -31, 0, -31, -31, -31, -31, -31,
1080 -31, 0, -31, 0, 0, -31, -31, -31, -31, -31,
1081 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
1082 -31, -25, 0, -31, 0, 0, 0, 0, 0, 0,
1083 -25, -25, -25, -25, 0, -25, -25, 0, 0, 0,
1084 -25, 0, 0, -25, -25, -25, -25, 0, 0, 0,
1085 -25, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1086 0, 0, 0, 0, 0, -25, -25, 0, 0, 0,
1087 0, 0, 0, 0, 0, 0, 0, 0, -25, -25,
1088 0, 0, 0, 0, -25, -25, -25, -25, -25, 0,
1089 0, 0, 0, 0, 0, 0, -25, 0, 0, 0,
1090 0, 0, 0, 0, 0, 0, -25, 0, -25, -25,
1091 -25, -25, -25, -25, 0, -25, 0, 0, -25, -25,
1092 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
1093 -25, -25, -25, -25, -29, 0, -25, 0, 0, 0,
1094 0, 0, 0, -29, -29, -29, -29, 0, -29, -29,
1095 0, 0, 0, -29, 0, 0, -29, -29, -29, -29,
1096 0, 0, 0, -29, 0, 0, 0, 0, 0, 0,
1097 0, 0, 0, 0, 0, 0, 0, 0, -29, -29,
1098 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1099 0, -29, -29, 0, 0, 0, 0, -29, -29, -29,
1100 -29, -29, 0, 0, 0, 0, 0, 0, 0, -29,
1101 0, 0, 0, 0, 0, 0, 0, 0, 0, -29,
1102 0, -29, -29, -29, -29, -29, -29, 0, -29, 0,
1103 0, -29, -29, -29, -29, -29, -29, -29, -29, -29,
1104 -29, -29, -29, -29, -29, -29, -29, -28, 0, -29,
1105 0, 0, 0, 0, 0, 0, -28, -28, -28, -28,
1106 0, -28, -28, 0, 0, 0, -28, 0, 0, -28,
1107 -28, -28, -28, 0, 0, 0, -28, 0, 0, 0,
1108 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1109 0, -28, -28, 0, 0, 0, 0, 0, 0, 0,
1110 0, 0, 0, 0, -28, -28, 0, 0, 0, 0,
1111 -28, -28, -28, -28, -28, 0, 0, 0, 0, 0,
1112 0, 0, -28, 0, 0, 0, 0, 0, 0, 0,
1113 0, 0, -28, 0, -28, -28, -28, -28, -28, -28,
1114 0, -28, 0, 0, -28, -28, -28, -28, -28, -28,
1115 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
1116 -26, 0, -28, 0, 0, 0, 0, 0, 0, -26,
1117 -26, -26, -26, 0, -26, -26, 0, 0, 0, -26,
1118 0, 0, -26, -26, -26, -26, 0, 0, 0, -26,
1119 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1120 0, 0, 0, 0, -26, -26, 0, 0, 0, 0,
1121 0, 0, 0, 0, 0, 0, 0, -26, -26, 0,
1122 0, 0, 0, -26, -26, -26, -26, -26, 0, 0,
1123 0, 0, 0, 0, 0, -26, 0, 0, 0, 0,
1124 0, 0, 0, 0, 0, -26, 0, -26, -26, -26,
1125 -26, -26, -26, 0, -26, 0, 0, -26, -26, -26,
1126 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
1127 -26, -26, -26, -27, 0, -26, 0, 0, 0, 0,
1128 0, 0, -27, -27, -27, -27, 0, -27, -27, 0,
1129 0, 0, -27, 0, 0, -27, -27, -27, -27, 0,
1130 0, 0, -27, 0, 0, 0, 0, 0, 0, 0,
1131 0, 0, 0, 0, 0, 0, 0, -27, -27, 0,
1132 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1133 -27, -27, 0, 0, 0, 0, -27, -27, -27, -27,
1134 -27, 0, 0, 0, 0, 0, 0, 0, -27, 0,
1135 0, 0, 0, 0, 0, 0, 0, 0, -27, 0,
1136 -27, -27, -27, -27, -27, -27, 0, -27, 0, 0,
1137 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
1138 -27, -27, -27, -27, -27, -27, -43, 0, -27, 0,
1139 0, 0, 0, 0, 0, -43, -43, -43, -43, 0,
1140 -43, -43, 0, 0, 0, -43, 0, 0, -43, -43,
1141 -43, -43, 0, 0, 0, -43, 0, 0, 0, 0,
1142 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1143 -43, -43, 0, 0, 0, 0, 0, 0, 0, 0,
1144 0, 0, 0, -43, -43, 0, 0, 0, 0, -43,
1145 -43, -43, -43, -43, 0, 0, 0, 0, 0, 0,
1146 0, -43, 0, 0, 0, 0, 0, 0, 0, 0,
1147 0, -43, 0, -43, -43, -43, -43, -43, -43, 0,
1148 -43, 0, 0, -43, -43, -43, -43, -43, -43, -43,
1149 -43, -43, -43, -43, -43, -43, -43, -43, -43, -138,
1150 0, -43, 0, 0, 0, 0, 0, 0, -138, -138,
1151 -138, -138, 0, -138, -138, 0, 0, 0, -138, 0,
1152 0, -138, -138, -138, -138, 0, 0, 0, -138, 0,
1153 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1154 0, 0, 0, -138, -138, 0, 0, 0, 0, 0,
1155 0, 0, 0, 0, 0, 0, -138, -138, 0, 0,
1156 0, 0, -138, -138, -138, -138, -138, 0, 0, 0,
1157 0, 0, 0, 0, -138, 0, 0, 0, 0, 0,
1158 0, 0, 0, 0, -138, 0, -138, -138, -138, -138,
1159 -138, -138, 0, -138, 0, 0, -138, -138, -138, -138,
1160 -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
1161 -138, -138, -139, 0, -592, 0, 0, 0, 0, 0,
1162 0, -139, -139, -139, -139, 0, -139, -139, 0, 0,
1163 0, -139, 0, 0, -139, -139, -139, -139, 0, 0,
1164 0, -139, 0, 0, 0, 0, 0, 0, 0, 0,
1165 0, 0, 0, 0, 0, 0, -139, -139, 0, 0,
1166 0, 0, 0, 0, 0, 0, 0, 0, 0, -139,
1167 -139, 0, 0, 0, 0, -139, -139, -139, -139, -139,
1168 0, 0, 0, 0, 0, 0, 0, -139, 0, 0,
1169 0, 0, 0, 0, 0, 0, 0, -139, 0, -139,
1170 -139, -139, -139, -139, -139, 0, -139, 0, 0, -139,
1171 -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
1172 -139, -139, -139, -139, -139, -140, 0, -591, 0, 0,
1173 0, 0, 0, 0, -140, -140, -140, -140, 0, -140,
1174 -140, 0, 0, 0, -140, 0, 0, -140, -140, -140,
1175 -140, 0, 0, 0, -140, 0, 0, 0, 0, 0,
1176 0, 0, 0, 0, 0, 0, 0, 0, 0, -140,
1177 -140, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1178 0, 0, -140, -140, 0, 0, 0, 0, -140, -140,
1179 -140, -140, -140, 0, 0, 0, 0, 0, 0, 0,
1180 -140, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1181 -140, 0, -140, -140, -140, -140, -140, -140, 0, -140,
1182 0, 0, -140, -140, -140, -140, -140, -140, -140, -140,
1183 -140, -140, -140, -140, -140, -140, -140, -140, -141, 0,
1184 -589, 0, 0, 0, 0, 0, 0, -141, -141, -141,
1185 -141, 0, -141, -141, 0, 0, 0, -141, 0, 0,
1186 -141, -141, -141, -141, 0, 0, 0, -141, 0, 0,
1187 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1188 0, 0, -141, -141, 0, 0, 0, 0, 0, 0,
1189 0, 0, 0, 0, 0, -141, -141, 0, 0, 0,
1190 0, -141, -141, -141, -141, -141, 0, 0, 0, 0,
1191 0, 0, 0, -141, 0, 0, 0, 0, 0, 0,
1192 0, 0, 0, -141, 0, -141, -141, -141, -141, -141,
1193 -141, 0, -141, 0, 0, -141, -141, -141, -141, -141,
1194 -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
1195 -141, -142, 0, -587, 0, 0, 0, 0, 0, 0,
1196 -142, -142, -142, -142, 0, -142, -142, 0, 0, 0,
1197 -142, 0, 0, -142, -142, -142, -142, 0, 0, 0,
1198 -142, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1199 0, 0, 0, 0, 0, -142, -142, 0, 0, 0,
1200 0, 0, 0, 0, 0, 0, 0, 0, -142, -142,
1201 0, 0, 0, 0, -142, -142, -142, -142, -142, 0,
1202 0, 0, 0, 0, 0, 0, -142, 0, 0, 0,
1203 0, 0, 0, 0, 0, 0, -142, 0, -142, -142,
1204 -142, -142, -142, -142, 0, -142, 0, 0, -142, -142,
1205 -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
1206 -142, -142, -142, -142, -143, 0, -588, 0, 0, 0,
1207 0, 0, 0, -143, -143, -143, -143, 0, -143, -143,
1208 0, 0, 0, -143, 0, 0, -143, -143, -143, -143,
1209 0, 0, 0, -143, 0, 0, 0, 0, 0, 0,
1210 0, 0, 0, 0, 0, 0, 0, 0, -143, -143,
1211 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1212 0, -143, -143, 0, 0, 0, 0, -143, -143, -143,
1213 -143, -143, 0, 0, 0, 0, 0, 0, 0, -143,
1214 0, 0, 0, 0, 0, 0, 0, 0, 0, -143,
1215 0, -143, -143, -143, -143, -143, -143, 0, -143, 0,
1216 0, -143, -143, -143, -143, -143, -143, -143, -143, -143,
1217 -143, -143, -143, -143, -143, -143, -143, -144, 0, -590,
1218 0, 0, 0, 0, 0, 0, -144, -144, -144, -144,
1219 0, -144, -144, 0, 0, 0, -144, 0, 0, -144,
1220 -144, -144, -144, 0, 0, 0, -144, 0, 0, 0,
1221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1222 0, -144, -144, 0, 0, 0, 0, 0, 0, 0,
1223 0, 0, 0, 0, -144, -144, 0, 0, 0, 0,
1224 -144, -144, -144, -144, -144, 0, 0, 0, 0, 0,
1225 0, 0, -144, 0, 0, 0, 0, 0, 0, 0,
1226 0, 0, -144, 0, -144, -144, -144, -144, -144, -144,
1227 0, -144, 0, 0, -144, -144, -144, -144, -144, -144,
1228 -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
1229 -145, 0, -586, 0, 0, 0, 0, 0, 0, -145,
1230 -145, -145, -145, 0, -145, -145, 0, 0, 0, -145,
1231 0, 0, -145, -145, -145, -145, 0, 0, 0, -145,
1232 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1233 0, 0, 0, 0, -145, -145, 0, 0, 0, 0,
1234 0, 0, 0, 0, 0, 0, 0, -145, -145, 0,
1235 0, 0, 0, -145, -145, -145, -145, -145, 0, 0,
1236 0, 0, 0, 0, 0, -145, 0, 0, 0, 0,
1237 0, 0, 0, 0, 0, -145, 0, -145, -145, -145,
1238 -145, -145, -145, 0, -145, 0, 0, -145, -145, -145,
1239 -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
1240 -145, -145, -145, -146, 0, -585, 0, 0, 0, 0,
1241 0, 0, -146, -146, -146, -146, 0, -146, -146, 0,
1242 0, 0, -146, 0, 0, -146, -146, -146, -146, 0,
1243 0, 0, -146, 0, 0, 0, 0, 0, 0, 0,
1244 0, 0, 0, 0, 0, 0, 0, -146, -146, 0,
1245 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1246 -146, -146, 0, 0, 0, 0, -146, -146, -146, -146,
1247 -146, 0, 0, 0, 0, 0, 0, 0, -146, 0,
1248 0, 0, 0, 0, 0, 0, 0, 0, -146, 0,
1249 -146, -146, -146, -146, -146, -146, 0, -146, 0, 0,
1250 -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
1251 -146, -146, -146, -146, -146, -146, -30, 0, -593, 0,
1252 0, 0, 0, 0, 0, -30, -30, -30, -30, 0,
1253 -30, -30, 0, 0, 0, -30, 0, 0, -30, -30,
1254 -30, -30, 0, 0, 0, -30, 0, 0, 0, 0,
1255 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1256 -30, -30, 0, 0, 0, 0, 0, 0, 0, 0,
1257 0, 0, 0, -30, -30, 0, 0, 0, 0, -30,
1258 -30, -30, -30, -30, 0, 0, 0, 0, 0, 0,
1259 0, -30, 0, 0, 0, 0, 0, 0, 0, 0,
1260 0, -30, 0, -30, -30, -30, -30, -30, -30, 0,
1261 -30, 0, 0, -30, -30, -30, -30, -30, -30, -30,
1262 -30, -30, -30, -30, -30, -30, -30, -30, -30, -148,
1263 0, -30, 0, 0, 0, 0, 0, 0, -148, -148,
1264 -148, -148, 0, -148, -148, 0, 0, 0, -148, 0,
1265 0, -148, -148, -148, -148, 0, 0, 0, -148, 0,
1266 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1267 0, 0, 0, -148, -148, 0, 0, 0, 0, 0,
1268 0, 0, 0, 0, 0, 0, -148, -148, 0, 0,
1269 0, 0, -148, -148, -148, -148, -148, 0, 0, 0,
1270 0, 0, 0, 0, -148, 0, 0, 0, 0, 0,
1271 0, 0, 0, 0, -148, 0, -148, -148, -148, -148,
1272 -148, -148, 0, -148, 0, 0, -148, -148, -148, -148,
1273 -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
1274 -148, -148, -149, 0, -621, 0, 0, 0, 0, 0,
1275 0, -149, -149, -149, -149, 0, -149, -149, 0, 0,
1276 0, -149, 0, 0, -149, -149, -149, -149, 0, 0,
1277 0, -149, 0, 0, 0, 0, 0, 0, 0, 0,
1278 0, 0, 0, 0, 0, 0, -149, -149, 0, 0,
1279 0, 0, 0, 0, 0, 0, 0, 0, 0, -149,
1280 -149, 0, 0, 0, 0, -149, -149, -149, -149, -149,
1281 0, 0, 0, 0, 0, 0, 0, -149, 0, 0,
1282 0, 0, 0, 0, 0, 0, 0, -149, 0, -149,
1283 -149, -149, -149, -149, -149, 0, -149, 0, 0, -149,
1284 -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
1285 -149, -149, -149, -149, -149, -150, 0, -619, 0, 0,
1286 0, 0, 0, 0, -150, -150, -150, -150, 0, -150,
1287 -150, 0, 0, 0, -150, 0, 0, -150, -150, -150,
1288 -150, 0, 0, 0, -150, 0, 0, 0, 0, 0,
1289 0, 0, 0, 0, 0, 0, 0, 0, 0, -150,
1290 -150, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1291 0, 0, -150, -150, 0, 0, 0, 0, -150, -150,
1292 -150, -150, -150, 0, 0, 0, 0, 0, 0, 0,
1293 -150, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1294 -150, 0, -150, -150, -150, -150, -150, -150, 0, -150,
1295 0, 0, -150, -150, -150, -150, -150, -150, -150, -150,
1296 -150, -150, -150, -150, -150, -150, -150, -150, -151, 0,
1297 -618, 0, 0, 0, 0, 0, 0, -151, -151, -151,
1298 -151, 0, -151, -151, 0, 0, 0, -151, 0, 0,
1299 -151, -151, -151, -151, 0, 0, 0, -151, 0, 0,
1300 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1301 0, 0, -151, -151, 0, 0, 0, 0, 0, 0,
1302 0, 0, 0, 0, 0, -151, -151, 0, 0, 0,
1303 0, -151, -151, -151, -151, -151, 0, 0, 0, 0,
1304 0, 0, 0, -151, 0, 0, 0, 0, 0, 0,
1305 0, 0, 0, -151, 0, -151, -151, -151, -151, -151,
1306 -151, 0, -151, 0, 0, -151, -151, -151, -151, -151,
1307 -151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
1308 -151, -152, 0, -620, 0, 0, 0, 0, 0, 0,
1309 -152, -152, -152, -152, 0, -152, -152, 0, 0, 0,
1310 -152, 0, 0, -152, -152, -152, -152, 0, 0, 0,
1311 -152, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1312 0, 0, 0, 0, 0, -152, -152, 0, 0, 0,
1313 0, 0, 0, 0, 0, 0, 0, 0, -152, -152,
1314 0, 0, 0, 0, -152, -152, -152, -152, -152, 0,
1315 0, 0, 0, 0, 0, 0, -152, 0, 0, 0,
1316 0, 0, 0, 0, 0, 0, -152, 0, -152, -152,
1317 -152, -152, -152, -152, 0, -152, 0, 0, -152, -152,
1318 -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
1319 -152, -152, -152, -152, -153, 0, -617, 0, 0, 0,
1320 0, 0, 0, -153, -153, -153, -153, 0, -153, -153,
1321 0, 0, 0, -153, 0, 0, -153, -153, -153, -153,
1322 0, 0, 0, -153, 0, 0, 0, 0, 0, 0,
1323 0, 0, 0, 0, 0, 0, 0, 0, -153, -153,
1324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1325 0, -153, -153, 0, 0, 0, 0, -153, -153, -153,
1326 -153, -153, 0, 0, 0, 0, 0, 0, 0, -153,
1327 0, 0, 0, 0, 0, 0, 0, 0, 0, -153,
1328 0, -153, -153, -153, -153, -153, -153, 0, -153, 0,
1329 0, -153, -153, -153, -153, -153, -153, -153, -153, -153,
1330 -153, -153, -153, -153, -153, -153, -153, 104, 0, -616,
1331 0, 0, 0, 0, 0, 0, 105, 106, 107, 108,
1332 0, 109, 110, 0, 0, 0, 111, 0, 0, 365,
1333 448, 366, 367, 0, 0, 0, 368, 0, 0, 0,
1334 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1335 0, 369, 370, 0, 0, 0, 0, 0, 0, 0,
1336 0, 0, 0, 0, 371, 372, 0, 0, 0, 0,
1337 112, 113, 114, 115, 116, 0, 0, 0, 0, 0,
1338 0, 0, 373, 0, 0, 0, 0, 0, 0, 0,
1339 0, 0, 117, 0, 118, 119, 120, 121, 122, 123,
1340 0, 124, 0, 0, 125, 126, 127, 128, 129, 130,
1341 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1342 0, 0, 449, 104, 1, 2, 3, 4, 5, 6,
1343 7, 8, 105, 106, 107, 108, 0, 699, 110, 512,
1344 0, 0, 700, 495, 0, 496, 0, 497, 367, 11,
1345 0, 0, 498, 0, 0, 0, 0, 0, 0, 0,
1346 0, 0, 0, 0, 0, 0, 0, 369, 370, 168,
1347 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1348 371, 372, 0, 0, 0, 0, 112, 113, 114, 115,
1349 116, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1350 0, 0, 0, 0, 62, 63, 64, 65, 117, 0,
1351 118, 119, 120, 121, 122, 123, 0, 124, 0, 0,
1352 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1353 135, 136, 137, 138, 139, 140, 104, 0, 0, 0,
1354 0, 0, 0, 0, 0, 105, 106, 107, 108, 0,
1355 109, 110, 492, 493, 494, 111, 495, 0, 496, 448,
1356 497, 367, 0, 0, 0, 498, 0, 0, 0, 0,
1357 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1358 369, 370, 168, 0, 0, 0, 0, 0, 0, 0,
1359 0, 0, 0, 371, 372, 0, 0, 0, 0, 112,
1360 113, 114, 115, 116, 0, 0, 0, 0, 0, 0,
1361 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1362 0, 117, 0, 118, 119, 120, 121, 122, 123, 0,
1363 124, 0, 0, 125, 126, 127, 128, 129, 130, 131,
1364 132, 133, 134, 135, 136, 137, 138, 139, 140, 104,
1365 0, 0, 0, 0, 0, 0, 0, 0, 105, 106,
1366 107, 108, 0, 109, 110, 787, 0, 0, 111, 495,
1367 0, 496, 0, 497, 367, 0, 0, 0, 498, 0,
1368 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1369 158, 0, 0, 369, 370, 168, 0, 0, 0, 0,
1370 0, 0, 0, 0, 0, 0, 371, 372, 0, 0,
1371 0, 0, 112, 113, 114, 115, 116, 0, 0, 0,
1372 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1373 0, 0, 0, 0, 117, 788, 789, 119, 120, 121,
1374 122, 123, 0, 124, 0, 0, 125, 126, 127, 128,
1375 129, 130, 131, 132, 133, 790, 135, 136, 137, 138,
1376 139, 140, 104, 0, 0, 0, 0, 0, 0, 0,
1377 0, 105, 106, 107, 108, 0, 109, 110, 512, 0,
1378 0, 111, 495, 0, 496, 0, 497, 367, 0, 0,
1379 0, 498, 0, 0, 0, 0, 0, 0, 0, 0,
1380 0, 0, 0, 158, 0, 0, 369, 370, 168, 0,
1381 0, 0, 0, 0, 0, 0, 0, 0, 0, 371,
1382 372, 0, 0, 869, 0, 112, 113, 114, 115, 116,
1383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1384 0, 0, 0, 0, 0, 0, 0, 117, 0, 118,
1385 119, 120, 121, 122, 123, 0, 124, 0, 0, 125,
1386 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1387 136, 137, 138, 139, 140, 104, 0, 0, 0, 0,
1388 0, 0, 0, 0, 105, 106, 107, 108, 0, 109,
1389 110, 512, 0, 0, 111, 495, -635, 496, 0, 497,
1390 367, 0, 0, 0, 498, 0, 0, 0, 0, 0,
1391 0, 0, 0, 0, 0, 0, 158, 0, 0, 369,
1392 370, 168, 0, 0, 0, 0, 0, 0, 0, 0,
1393 0, 0, 371, 372, 0, 0, 0, 0, 112, 113,
1394 114, 115, 116, 0, 0, 0, 0, 0, 0, 0,
1395 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1396 117, 0, 118, 119, 120, 121, 122, 123, 0, 124,
1397 0, 0, 125, 126, 127, 128, 129, 130, 131, 132,
1398 133, 134, 135, 136, 137, 138, 139, 140, 104, 0,
1399 0, 0, 0, 0, 0, 0, 0, 105, 106, 107,
1400 108, 0, 109, 110, 512, 0, 0, 111, 495, 0,
1401 496, 0, 497, 367, 0, 0, 0, 498, 0, 0,
1402 0, 0, 0, 0, 0, 0, 0, 0, 0, 158,
1403 0, 0, 369, 370, 168, 0, 0, 0, 0, 0,
1404 0, 0, 0, 0, 0, 371, 372, 0, 0, 0,
1405 0, 112, 113, 114, 115, 116, 0, 0, 0, 0,
1406 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1407 0, 0, 0, 117, 0, 118, 119, 120, 121, 122,
1408 123, 0, 124, 0, 0, 125, 126, 127, 128, 129,
1409 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1410 140, 104, 0, 0, 0, 0, 0, 0, 0, 0,
1411 105, 106, 107, 108, 0, 109, 110, 787, 0, 0,
1412 111, 495, 0, 496, 0, 497, 367, 0, 0, 0,
1413 498, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1414 0, 0, 0, 0, 0, 369, 370, 168, 0, 0,
1415 0, 0, 0, 0, 0, 0, 0, 0, 371, 372,
1416 0, 0, 0, 0, 112, 113, 114, 115, 116, 0,
1417 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1418 0, 0, 0, 0, 0, 0, 117, 788, 789, 119,
1419 120, 121, 122, 123, 0, 124, 0, 0, 125, 126,
1420 127, 128, 129, 130, 131, 132, 133, 790, 135, 136,
1421 137, 138, 139, 140, 104, 0, 0, 0, 0, 0,
1422 0, 0, 0, 105, 106, 107, 108, 0, 109, 110,
1423 512, 0, 0, 111, 495, 0, 496, 0, 497, 367,
1424 0, 0, 0, 498, 0, 0, 0, 0, 0, 0,
1425 0, 0, 0, 0, 0, 0, 0, 0, 369, 370,
1426 168, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1427 0, 371, 372, 0, 0, 0, 0, 112, 113, 114,
1428 115, 116, 0, 0, 0, 0, 0, 0, 0, 0,
1429 0, 0, 0, 0, 0, 0, 0, 0, 0, 117,
1430 0, 118, 119, 120, 121, 122, 123, 0, 124, 0,
1431 0, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1432 134, 135, 136, 137, 138, 139, 140, 104, 0, 0,
1433 0, 0, 0, 0, 0, 0, 105, 106, 107, 108,
1434 0, 109, 110, 0, 0, 0, 111, 0, 0, 365,
1435 0, 366, 367, 0, 0, 0, 368, 0, 0, 0,
1436 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1437 0, 369, 370, 0, 0, 0, 0, 0, 0, 0,
1438 0, 0, 0, 0, 371, 372, 0, 0, 0, 0,
1439 112, 113, 114, 115, 116, 0, 0, 0, 0, 0,
1440 0, 0, 373, 0, 0, 0, 0, 0, 0, 0,
1441 0, 0, 117, 0, 118, 119, 120, 121, 122, 123,
1442 0, 124, 0, 0, 125, 126, 127, 128, 129, 130,
1443 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1444 104, 0, 0, 0, 0, 0, 0, 0, 0, 105,
1445 106, 107, 108, 0, 109, 110, 0, 0, 0, 111,
1446 0, 0, 0, 0, 0, 0, 11, 0, 0, -527,
1447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1448 0, 0, 0, 0, 0, 0, 168, 0, 0, 0,
1449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1450 0, 0, 0, 112, 113, 114, 115, 116, 0, 0,
1451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1452 0, 0, 0, 0, 65, 117, 0, 118, 119, 120,
1453 121, 122, 123, 0, 124, 0, 0, 125, 126, 127,
1454 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1455 138, 139, 140, 104, 0, 0, 0, 0, 0, 0,
1456 0, 0, 105, 106, 107, 108, 0, 109, 110, 0,
1457 0, 679, 111, 0, 0, 0, 0, 0, 0, 11,
1458 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
1459 474, 475, 476, 477, 478, 479, 480, 481, 0, 168,
1460 0, 0, 0, 482, 0, 0, 0, 0, 0, 0,
1461 0, 0, 0, 0, 0, 0, 112, 113, 114, 115,
1462 116, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1463 0, 0, 0, 0, 0, 0, 0, 65, 117, 0,
1464 118, 119, 120, 121, 122, 123, 0, 124, 0, 0,
1465 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1466 135, 136, 137, 138, 139, 140, 104, 0, 0, 0,
1467 0, 0, 0, 0, 0, 105, 106, 107, 108, 0,
1468 109, 110, 0, 0, 0, 111, 0, 0, 771, 0,
1469 0, 0, 0, 0, 0, 722, 827, 464, 465, 466,
1470 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
1471 477, 478, 479, 480, 481, 0, 0, 0, 0, 0,
1472 705, 0, 0, 0, 0, 0, 0, 0, 0, 112,
1473 113, 114, 115, 116, 0, 0, 0, 0, 0, 0,
1474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1475 0, 117, 0, 118, 119, 120, 121, 122, 123, 0,
1476 124, 0, 0, 125, 126, 127, 128, 129, 130, 131,
1477 132, 133, 134, 135, 136, 137, 138, 139, 140, 104,
1478 0, 0, 0, 0, 0, 0, 0, 0, 105, 106,
1479 107, 108, 0, 109, 110, 0, 0, 0, 111, 0,
1480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1481 0, 764, 0, 0, 0, 0, 0, 0, 0, 0,
1482 0, 0, 0, 0, 0, 168, 0, 0, 0, 0,
1483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1484 0, 0, 112, 113, 114, 115, 116, 0, 0, 0,
1485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1486 0, 0, 0, 0, 117, 0, 118, 119, 120, 121,
1487 122, 123, 0, 124, 0, 0, 125, 126, 127, 128,
1488 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1489 139, 140, 104, 0, 0, 0, 0, 0, 0, 0,
1490 0, 105, 106, 107, 108, 923, 109, 110, 0, 0,
1491 0, 111, 0, 0, 464, 465, 466, 467, 468, 469,
1492 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
1493 480, 481, 0, 0, 0, 0, 0, 705, 168, 0,
1494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1495 0, 0, 0, 0, 0, 112, 113, 114, 115, 116,
1496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1497 0, 0, 0, 0, 0, 0, 0, 117, 0, 118,
1498 119, 120, 121, 122, 123, 0, 124, 0, 0, 125,
1499 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1500 136, 137, 138, 139, 140, 104, 0, 0, 0, 0,
1501 0, 0, 0, 0, 105, 106, 107, 108, 0, 109,
1502 110, 0, 0, 0, 111, 0, 0, 887, 0, 0,
1503 0, 0, 0, 0, 460, 464, 465, 466, 467, 468,
1504 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
1505 479, 480, 481, 0, 0, 0, 0, 0, 705, 0,
1506 0, 0, 0, 0, 0, 0, 0, 0, 112, 113,
1507 114, 115, 116, 0, 0, 0, 0, 0, 0, 0,
1508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1509 117, 0, 118, 119, 120, 121, 122, 123, 0, 124,
1510 0, 0, 125, 126, 127, 128, 129, 130, 131, 132,
1511 133, 134, 135, 136, 137, 138, 139, 140, 104, 0,
1512 0, 0, 0, 0, 0, 0, 0, 105, 106, 107,
1513 108, 0, 109, 110, 0, 0, 0, 111, 0, 0,
1514 0, 761, 0, 0, 0, 0, 0, 722, 464, 465,
1515 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
1516 476, 477, 478, 479, 480, 481, 0, 0, 0, 0,
1517 0, 482, 0, 0, 0, 0, 0, 104, 0, 0,
1518 0, 112, 113, 114, 115, 116, 105, 106, 107, 108,
1519 0, 109, 110, 0, 0, 0, 111, 0, 0, 0,
1520 0, 0, 0, 117, 0, 118, 119, 120, 121, 122,
1521 123, 0, 124, 0, 0, 125, 126, 127, 128, 129,
1522 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1523 140, 0, 0, 0, 0, 0, 0, 0, 752, 0,
1524 112, 113, 114, 115, 116, 0, 0, 0, 0, 0,
1525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1526 0, 0, 117, 0, 118, 119, 120, 121, 122, 123,
1527 0, 124, 0, 0, 125, 126, 127, 128, 129, 130,
1528 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1529 104, 0, 0, 0, 0, 0, 0, 0, 0, 105,
1530 106, 107, 108, 819, 803, 110, 0, 0, 0, 111,
1531 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
1532 474, 475, 476, 477, 478, 479, 480, 481, 0, 0,
1533 0, 0, 0, 705, 0, 0, 168, 0, 0, 0,
1534 0, 0, 0, 0, 0, 0, 0, 0, 0, 104,
1535 0, 0, 0, 112, 113, 114, 115, 116, 105, 106,
1536 107, 108, 0, 109, 110, 0, 0, 0, 111, 0,
1537 0, 0, 0, 0, 0, 117, 0, 118, 119, 120,
1538 121, 122, 123, 0, 124, 0, 0, 125, 126, 127,
1539 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1540 138, 139, 140, 0, 0, 0, 0, 0, 104, 0,
1541 848, 0, 112, 113, 114, 115, 116, 105, 106, 107,
1542 108, 0, 109, 110, 0, 0, 0, 111, 0, 0,
1543 0, 0, 0, 0, 117, 0, 118, 119, 120, 121,
1544 122, 123, 0, 124, 0, 0, 125, 126, 127, 128,
1545 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1546 139, 140, 0, 0, 0, 0, 0, 0, 0, 0,
1547 0, 112, 113, 114, 115, 116, 0, 0, 0, 0,
1548 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1549 0, 0, 0, 117, 0, 118, 119, 120, 121, 122,
1550 123, 0, 124, 0, 0, 125, 126, 127, 128, 129,
1551 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1552 140, 720, 0, 0, 464, 465, 466, 467, 468, 469,
1553 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
1554 480, 481, 0, 0, 0, 0, 0, 705, 464, 465,
1555 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
1556 476, 477, 478, 479, 480, 481, 0, 0, 0, 0,
1557 0, 482, 464, 465, 466, 467, 468, 469, 470, 471,
1558 472, 473, 474, 475, 476, 477, 478, 479, 480, 481,
1559 0, 0, 0, 0, 0, 705, 464, 465, 466, 467,
1560 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
1561 478, 479, 480, 481, 0, 0, 0, 0, 0, 482,
1562 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
1563 474, 475, 476, 477, 478, 479, 480, 481, 0, 0,
1564 0, 0, 0, 705
1565 };
1566
1567 static const short yycheck[] =
1568 {
1569 33, 22, 88, 0, 33, 16, 17, 18, 190, 0,
1570 189, 190, 15, 10, 33, 196, 103, 430, 15, 92,
1571 433, 390, 430, 433, 404, 376, 92, 24, 403, 34,
1572 27, 507, 401, 716, 81, 316, 27, 386, 387, 485,
1573 738, 485, 738, 418, 91, 775, 738, 777, 45, 10,
1574 0, 62, 63, 64, 141, 316, 15, 144, 767, 26,
1575 10, 31, 32, 436, 34, 29, 49, 29, 91, 33,
1576 81, 33, 24, 442, 24, 29, 29, 27, 17, 18,
1577 33, 92, 93, 94, 45, 33, 34, 368, 32, 165,
1578 101, 821, 95, 374, 38, 45, 25, 789, 95, 450,
1579 123, 797, 26, 26, 813, 797, 35, 6, 459, 33,
1580 9, 462, 64, 4, 5, 6, 7, 8, 9, 10,
1581 11, 197, 31, 87, 44, 87, 17, 36, 32, 498,
1582 499, 22, 0, 87, 87, 508, 95, 9, 507, 11,
1583 823, 124, 26, 27, 853, 31, 35, 36, 32, 35,
1584 36, 125, 119, 31, 415, 125, 34, 840, 32, 162,
1585 44, 36, 173, 196, 161, 162, 37, 6, 7, 8,
1586 879, 110, 111, 112, 113, 114, 115, 32, 36, 34,
1587 191, 30, 463, 866, 31, 31, 33, 34, 897, 31,
1588 888, 33, 34, 84, 85, 86, 888, 32, 928, 35,
1589 161, 482, 483, 162, 35, 36, 33, 34, 33, 34,
1590 902, 161, 32, 33, 910, 23, 37, 36, 910, 33,
1591 34, 92, 93, 94, 95, 96, 924, 98, 99, 33,
1592 34, 317, 924, 4, 5, 6, 7, 8, 9, 10,
1593 11, 40, 688, 316, 688, 31, 17, 693, 931, 693,
1594 316, 22, 33, 34, 36, 17, 18, 23, 29, 93,
1595 94, 123, 38, 643, 32, 645, 37, 6, 648, 36,
1596 32, 92, 93, 94, 95, 96, 32, 98, 99, 31,
1597 35, 650, 32, 36, 32, 4, 5, 6, 7, 8,
1598 9, 10, 11, 17, 18, 368, 40, 31, 17, 31,
1599 675, 374, 368, 22, 49, 316, 485, 6, 374, 26,
1600 29, 32, 359, 84, 85, 86, 87, 40, 34, 498,
1601 34, 34, 92, 93, 94, 95, 96, 740, 98, 99,
1602 31, 682, 740, 26, 685, 686, 705, 706, 100, 101,
1603 102, 103, 104, 105, 106, 107, 108, 722, 824, 32,
1604 121, 3, 727, 22, 6, 32, 31, 368, 10, 39,
1605 12, 13, 373, 374, 83, 84, 85, 86, 87, 738,
1606 89, 23, 64, 64, 403, 37, 100, 101, 102, 103,
1607 104, 105, 106, 107, 108, 418, 40, 31, 31, 418,
1608 463, 40, 32, 24, 40, 32, 429, 463, 431, 418,
1609 433, 770, 32, 783, 123, 785, 786, 31, 33, 482,
1610 483, 33, 33, 4, 5, 6, 482, 483, 9, 768,
1611 769, 432, 34, 25, 35, 31, 35, 34, 797, 842,
1612 3, 22, 33, 6, 842, 446, 33, 10, 33, 12,
1613 13, 14, 15, 16, 17, 34, 34, 40, 35, 460,
1614 819, 456, 463, 486, 487, 824, 64, 808, 809, 109,
1615 33, 874, 644, 32, 874, 644, 32, 34, 647, 33,
1616 839, 482, 483, 33, 25, 32, 35, 31, 891, 760,
1617 761, 33, 485, 891, 864, 33, 33, 32, 485, 33,
1618 903, 31, 97, 35, 485, 33, 25, 4, 5, 6,
1619 7, 8, 9, 10, 11, 31, 34, 518, 32, 688,
1620 17, 4, 5, 6, 693, 22, 9, 33, 887, 888,
1621 933, 33, 29, 34, 33, 933, 34, 32, 34, 22,
1622 24, 944, 32, 4, 5, 6, 7, 8, 9, 10,
1623 11, 910, 97, 32, 25, 33, 17, 32, 25, 33,
1624 930, 22, 34, 33, 33, 924, 34, 33, 29, 30,
1625 31, 35, 34, 33, 745, 945, 32, 25, 33, 32,
1626 41, 33, 33, 32, 27, 693, 33, 84, 85, 86,
1627 87, 33, 33, 162, 688, 30, 4, 5, 6, 7,
1628 8, 9, 10, 11, 40, 640, 186, 24, 780, 17,
1629 184, 780, 389, 647, 22, 815, 456, 21, 695, 696,
1630 651, 29, 83, 84, 85, 86, 87, 88, 89, 777,
1631 91, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1632 75, 76, 77, 174, 79, 80, 81, 82, 671, 19,
1633 651, 924, 393, 788, 3, 116, 675, 6, 902, 429,
1634 121, 10, 123, 12, 13, 14, 15, 16, 17, 692,
1635 944, 836, 673, 692, 747, -1, 84, 85, 86, 87,
1636 -1, -1, -1, 692, -1, -1, -1, -1, -1, -1,
1637 -1, -1, 701, 694, -1, 688, -1, 760, 761, -1,
1638 693, 688, -1, 722, 760, 761, 693, 688, 727, -1,
1639 882, -1, 693, 882, -1, 123, -1, -1, -1, 742,
1640 -1, -1, 745, -1, -1, 748, -1, -1, -1, 901,
1641 806, -1, 901, 744, -1, -1, 4, 5, 6, 7,
1642 8, 9, 10, 11, -1, -1, 747, -1, -1, 17,
1643 -1, -1, -1, -1, 22, -1, -1, -1, -1, 760,
1644 761, 29, -1, -1, -1, 937, -1, -1, 937, 4,
1645 5, 6, 7, 8, 9, 10, 11, 800, 779, -1,
1646 -1, 782, 17, -1, -1, -1, -1, 22, -1, -1,
1647 813, 26, 27, 816, 817, -1, -1, -1, -1, -1,
1648 -1, -1, -1, -1, -1, -1, 807, -1, -1, 44,
1649 31, -1, 823, 836, -1, -1, 84, 85, 86, 87,
1650 -1, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1651 51, 52, 53, 54, 55, 56, 57, 58, 59, -1,
1652 -1, -1, -1, -1, 65, -1, -1, -1, -1, 84,
1653 85, 86, -1, 121, -1, -1, 879, -1, -1, -1,
1654 -1, -1, -1, -1, -1, 888, -1, -1, -1, -1,
1655 -1, 0, -1, -1, 3, 4, 5, 6, 7, 8,
1656 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
1657 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1658 29, 924, 31, 32, 33, 34, 35, 36, 37, 38,
1659 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1660 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1661 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1662 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1663 79, -1, 81, -1, 83, 84, 85, 86, 87, 88,
1664 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1665 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1666 109, 110, 111, 112, 113, 114, 115, 116, -1, -1,
1667 119, -1, 121, 122, 123, 124, 125, 0, -1, -1,
1668 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
1669 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1670 23, 24, 25, 26, 27, 28, 29, -1, 31, 32,
1671 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1672 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1673 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1674 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1675 73, 74, 75, 76, 77, 78, 79, -1, 81, -1,
1676 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
1677 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1678 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1679 113, 114, 115, 116, -1, -1, 119, -1, 121, 122,
1680 123, 124, 125, 0, -1, -1, 3, 4, 5, 6,
1681 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1682 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1683 27, 28, 29, -1, 31, 32, 33, 34, 35, 36,
1684 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1685 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1686 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1687 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1688 77, 78, 79, -1, 81, -1, 83, 84, 85, 86,
1689 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1690 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1691 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1692 -1, -1, 119, -1, 121, 122, 123, 124, 125, 0,
1693 -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
1694 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1695 21, 22, 23, 24, 25, 26, 27, 28, 29, -1,
1696 31, 32, 33, 34, 35, 36, -1, 38, 39, 40,
1697 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1698 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1699 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1700 71, 72, 73, 74, 75, 76, 77, 78, 79, -1,
1701 81, -1, 83, 84, 85, 86, 87, 88, 89, 90,
1702 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1703 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1704 111, 112, 113, 114, 115, 116, 3, -1, 119, -1,
1705 121, 122, 123, 124, 125, 12, 13, 14, 15, -1,
1706 17, 18, -1, -1, -1, 22, -1, -1, -1, -1,
1707 -1, -1, 29, 30, 31, 32, 33, 34, 35, 36,
1708 37, 38, 39, 40, -1, 42, 43, 44, 45, 46,
1709 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1710 57, 58, 59, -1, -1, -1, -1, -1, 65, 66,
1711 67, 68, 69, 70, 4, 5, 6, 7, 8, 9,
1712 10, 11, -1, -1, -1, -1, -1, 17, -1, -1,
1713 87, 88, 22, 90, 91, 92, 93, 94, 95, 29,
1714 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1715 107, 108, 109, 110, 111, 112, 113, 114, 115, -1,
1716 3, -1, -1, -1, -1, -1, -1, -1, 125, 12,
1717 13, 14, 15, -1, 17, 18, 19, -1, -1, 22,
1718 23, -1, 25, -1, 27, 28, 29, -1, -1, 32,
1719 -1, -1, -1, -1, 84, 85, 86, 87, -1, -1,
1720 -1, -1, -1, -1, 47, 48, 49, -1, -1, -1,
1721 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
1722 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
1723 -1, 121, -1, -1, -1, -1, -1, -1, -1, -1,
1724 -1, -1, -1, -1, 87, 88, -1, 90, 91, 92,
1725 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
1726 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1727 113, 114, 115, 3, -1, -1, -1, -1, -1, -1,
1728 -1, 124, 12, 13, 14, 15, -1, 17, 18, -1,
1729 -1, -1, 22, -1, -1, 25, -1, 27, 28, -1,
1730 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
1731 -1, -1, -1, -1, -1, -1, -1, 47, 48, -1,
1732 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1733 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
1734 70, -1, -1, -1, -1, -1, -1, -1, 78, -1,
1735 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
1736 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
1737 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1738 110, 111, 112, 113, 114, 115, 3, -1, -1, 119,
1739 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
1740 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
1741 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
1742 -1, -1, 4, 5, 6, 7, 8, 9, 10, 11,
1743 47, 48, -1, -1, -1, 17, -1, -1, -1, -1,
1744 22, -1, -1, 60, 61, -1, -1, 29, -1, 66,
1745 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1746 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
1747 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
1748 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1749 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
1750 -1, 118, 84, 85, 86, 87, -1, -1, 12, 13,
1751 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
1752 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
1753 -1, -1, -1, -1, -1, 4, 5, 6, 7, 8,
1754 9, 10, 11, 47, 48, -1, -1, -1, 17, -1,
1755 -1, -1, -1, 22, -1, -1, 60, 61, -1, -1,
1756 29, -1, 66, 67, 68, 69, 70, -1, -1, -1,
1757 -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
1758 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
1759 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
1760 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1761 114, 115, 3, -1, 118, 84, 85, 86, 87, -1,
1762 -1, 12, 13, 14, 15, -1, 17, 18, -1, -1,
1763 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
1764 -1, 32, -1, -1, -1, -1, -1, -1, 4, 5,
1765 6, 7, 8, 9, 10, 11, 47, 48, -1, -1,
1766 -1, 17, -1, -1, -1, -1, 22, -1, -1, 60,
1767 61, -1, -1, 29, -1, 66, 67, 68, 69, 70,
1768 -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
1769 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
1770 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
1771 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1772 111, 112, 113, 114, 115, 3, -1, 118, 84, 85,
1773 86, 87, -1, -1, 12, 13, 14, 15, -1, 17,
1774 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
1775 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
1776 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
1777 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1778 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
1779 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
1780 78, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1781 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
1782 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
1783 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
1784 118, -1, -1, -1, -1, -1, -1, 12, 13, 14,
1785 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
1786 25, 26, 27, 28, -1, -1, -1, 32, -1, -1,
1787 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1788 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
1789 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
1790 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
1791 -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
1792 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
1793 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
1794 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1795 115, 3, -1, 118, -1, -1, -1, -1, -1, -1,
1796 12, 13, 14, 15, -1, 17, 18, -1, -1, -1,
1797 22, -1, -1, 25, 26, 27, 28, -1, -1, -1,
1798 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1799 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
1800 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
1801 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
1802 -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
1803 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
1804 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
1805 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1806 112, 113, 114, 115, 3, -1, 118, -1, -1, -1,
1807 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
1808 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
1809 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
1810 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
1811 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1812 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
1813 69, 70, -1, -1, -1, -1, -1, -1, -1, 78,
1814 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
1815 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
1816 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1817 109, 110, 111, 112, 113, 114, 115, 3, -1, 118,
1818 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
1819 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
1820 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
1821 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1822 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
1823 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
1824 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
1825 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
1826 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
1827 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
1828 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1829 3, -1, 118, -1, -1, -1, -1, -1, -1, 12,
1830 13, 14, 15, -1, 17, 18, -1, -1, -1, 22,
1831 -1, -1, 25, 26, 27, 28, -1, -1, -1, 32,
1832 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1833 -1, -1, -1, -1, 47, 48, -1, -1, -1, -1,
1834 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
1835 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
1836 -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
1837 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
1838 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
1839 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1840 113, 114, 115, 3, -1, 118, -1, -1, -1, -1,
1841 -1, -1, 12, 13, 14, 15, -1, 17, 18, -1,
1842 -1, -1, 22, -1, -1, 25, 26, 27, 28, -1,
1843 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
1844 -1, -1, -1, -1, -1, -1, -1, 47, 48, -1,
1845 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1846 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
1847 70, -1, -1, -1, -1, -1, -1, -1, 78, -1,
1848 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
1849 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
1850 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1851 110, 111, 112, 113, 114, 115, 3, -1, 118, -1,
1852 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
1853 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
1854 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
1855 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1856 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
1857 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
1858 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1859 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
1860 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
1861 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1862 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
1863 -1, 118, -1, -1, -1, -1, -1, -1, 12, 13,
1864 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
1865 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
1866 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1867 -1, -1, -1, 47, 48, -1, -1, -1, -1, -1,
1868 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
1869 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
1870 -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
1871 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
1872 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
1873 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1874 114, 115, 3, -1, 118, -1, -1, -1, -1, -1,
1875 -1, 12, 13, 14, 15, -1, 17, 18, -1, -1,
1876 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
1877 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
1878 -1, -1, -1, -1, -1, -1, 47, 48, -1, -1,
1879 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
1880 61, -1, -1, -1, -1, 66, 67, 68, 69, 70,
1881 -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
1882 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
1883 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
1884 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1885 111, 112, 113, 114, 115, 3, -1, 118, -1, -1,
1886 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
1887 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
1888 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
1889 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
1890 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1891 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
1892 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
1893 78, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1894 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
1895 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
1896 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
1897 118, -1, -1, -1, -1, -1, -1, 12, 13, 14,
1898 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
1899 25, 26, 27, 28, -1, -1, -1, 32, -1, -1,
1900 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1901 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
1902 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
1903 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
1904 -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
1905 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
1906 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
1907 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1908 115, 3, -1, 118, -1, -1, -1, -1, -1, -1,
1909 12, 13, 14, 15, -1, 17, 18, -1, -1, -1,
1910 22, -1, -1, 25, 26, 27, 28, -1, -1, -1,
1911 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1912 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
1913 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
1914 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
1915 -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
1916 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
1917 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
1918 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1919 112, 113, 114, 115, 3, -1, 118, -1, -1, -1,
1920 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
1921 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
1922 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
1923 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
1924 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1925 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
1926 69, 70, -1, -1, -1, -1, -1, -1, -1, 78,
1927 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
1928 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
1929 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1930 109, 110, 111, 112, 113, 114, 115, 3, -1, 118,
1931 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
1932 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
1933 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
1934 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1935 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
1936 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
1937 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
1938 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
1939 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
1940 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
1941 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1942 3, -1, 118, -1, -1, -1, -1, -1, -1, 12,
1943 13, 14, 15, -1, 17, 18, -1, -1, -1, 22,
1944 -1, -1, 25, 26, 27, 28, -1, -1, -1, 32,
1945 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1946 -1, -1, -1, -1, 47, 48, -1, -1, -1, -1,
1947 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
1948 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
1949 -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
1950 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
1951 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
1952 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1953 113, 114, 115, 3, -1, 118, -1, -1, -1, -1,
1954 -1, -1, 12, 13, 14, 15, -1, 17, 18, -1,
1955 -1, -1, 22, -1, -1, 25, 26, 27, 28, -1,
1956 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
1957 -1, -1, -1, -1, -1, -1, -1, 47, 48, -1,
1958 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1959 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
1960 70, -1, -1, -1, -1, -1, -1, -1, 78, -1,
1961 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
1962 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
1963 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1964 110, 111, 112, 113, 114, 115, 3, -1, 118, -1,
1965 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
1966 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
1967 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
1968 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1969 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
1970 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
1971 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1972 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
1973 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
1974 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1975 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
1976 -1, 118, -1, -1, -1, -1, -1, -1, 12, 13,
1977 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
1978 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
1979 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1980 -1, -1, -1, 47, 48, -1, -1, -1, -1, -1,
1981 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
1982 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
1983 -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
1984 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
1985 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
1986 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1987 114, 115, 3, -1, 118, -1, -1, -1, -1, -1,
1988 -1, 12, 13, 14, 15, -1, 17, 18, -1, -1,
1989 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
1990 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
1991 -1, -1, -1, -1, -1, -1, 47, 48, -1, -1,
1992 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
1993 61, -1, -1, -1, -1, 66, 67, 68, 69, 70,
1994 -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
1995 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
1996 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
1997 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1998 111, 112, 113, 114, 115, 3, -1, 118, -1, -1,
1999 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
2000 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
2001 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
2002 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
2003 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2004 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
2005 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2006 78, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2007 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
2008 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
2009 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
2010 118, -1, -1, -1, -1, -1, -1, 12, 13, 14,
2011 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
2012 25, 26, 27, 28, -1, -1, -1, 32, -1, -1,
2013 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2014 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
2015 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
2016 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
2017 -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
2018 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
2019 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2020 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2021 115, 3, -1, 118, -1, -1, -1, -1, -1, -1,
2022 12, 13, 14, 15, -1, 17, 18, -1, -1, -1,
2023 22, -1, -1, 25, 26, 27, 28, -1, -1, -1,
2024 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2025 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
2026 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
2027 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
2028 -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
2029 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
2030 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
2031 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2032 112, 113, 114, 115, 3, -1, 118, -1, -1, -1,
2033 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
2034 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
2035 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
2036 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
2037 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2038 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
2039 69, 70, -1, -1, -1, -1, -1, -1, -1, 78,
2040 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
2041 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
2042 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2043 109, 110, 111, 112, 113, 114, 115, 3, -1, 118,
2044 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
2045 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
2046 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
2047 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2048 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2049 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
2050 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
2051 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
2052 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
2053 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
2054 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2055 3, -1, 118, -1, -1, -1, -1, -1, -1, 12,
2056 13, 14, 15, -1, 17, 18, -1, -1, -1, 22,
2057 -1, -1, 25, 26, 27, 28, -1, -1, -1, 32,
2058 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2059 -1, -1, -1, -1, 47, 48, -1, -1, -1, -1,
2060 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
2061 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
2062 -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
2063 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
2064 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
2065 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2066 113, 114, 115, 3, -1, 118, -1, -1, -1, -1,
2067 -1, -1, 12, 13, 14, 15, -1, 17, 18, -1,
2068 -1, -1, 22, -1, -1, 25, 26, 27, 28, -1,
2069 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
2070 -1, -1, -1, -1, -1, -1, -1, 47, 48, -1,
2071 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2072 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
2073 70, -1, -1, -1, -1, -1, -1, -1, 78, -1,
2074 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
2075 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
2076 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2077 110, 111, 112, 113, 114, 115, 3, -1, 118, -1,
2078 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
2079 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
2080 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
2081 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2082 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
2083 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
2084 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
2085 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
2086 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
2087 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
2088 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
2089 -1, 118, -1, -1, -1, -1, -1, -1, 12, 13,
2090 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
2091 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
2092 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2093 -1, -1, -1, 47, 48, -1, -1, -1, -1, -1,
2094 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
2095 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
2096 -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
2097 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
2098 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
2099 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2100 114, 115, 3, -1, 118, -1, -1, -1, -1, -1,
2101 -1, 12, 13, 14, 15, -1, 17, 18, -1, -1,
2102 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
2103 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
2104 -1, -1, -1, -1, -1, -1, 47, 48, -1, -1,
2105 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
2106 61, -1, -1, -1, -1, 66, 67, 68, 69, 70,
2107 -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
2108 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
2109 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
2110 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2111 111, 112, 113, 114, 115, 3, -1, 118, -1, -1,
2112 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
2113 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
2114 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
2115 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
2116 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2117 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
2118 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2119 78, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2120 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
2121 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
2122 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
2123 118, -1, -1, -1, -1, -1, -1, 12, 13, 14,
2124 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
2125 25, 26, 27, 28, -1, -1, -1, 32, -1, -1,
2126 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2127 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
2128 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
2129 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
2130 -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
2131 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
2132 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2133 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2134 115, 3, -1, 118, -1, -1, -1, -1, -1, -1,
2135 12, 13, 14, 15, -1, 17, 18, -1, -1, -1,
2136 22, -1, -1, 25, 26, 27, 28, -1, -1, -1,
2137 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2138 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
2139 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
2140 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
2141 -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
2142 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
2143 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
2144 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2145 112, 113, 114, 115, 3, -1, 118, -1, -1, -1,
2146 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
2147 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
2148 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
2149 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
2150 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2151 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
2152 69, 70, -1, -1, -1, -1, -1, -1, -1, 78,
2153 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
2154 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
2155 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2156 109, 110, 111, 112, 113, 114, 115, 3, -1, 118,
2157 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
2158 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
2159 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
2160 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2161 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2162 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
2163 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
2164 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
2165 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
2166 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
2167 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2168 -1, -1, 118, 3, 4, 5, 6, 7, 8, 9,
2169 10, 11, 12, 13, 14, 15, -1, 17, 18, 19,
2170 -1, -1, 22, 23, -1, 25, -1, 27, 28, 29,
2171 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
2172 -1, -1, -1, -1, -1, -1, -1, 47, 48, 49,
2173 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2174 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
2175 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2176 -1, -1, -1, -1, 84, 85, 86, 87, 88, -1,
2177 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
2178 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2179 110, 111, 112, 113, 114, 115, 3, -1, -1, -1,
2180 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
2181 17, 18, 19, 20, 21, 22, 23, -1, 25, 26,
2182 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
2183 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2184 47, 48, 49, -1, -1, -1, -1, -1, -1, -1,
2185 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
2186 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
2187 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2188 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
2189 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
2190 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
2191 -1, -1, -1, -1, -1, -1, -1, -1, 12, 13,
2192 14, 15, -1, 17, 18, 19, -1, -1, 22, 23,
2193 -1, 25, -1, 27, 28, -1, -1, -1, 32, -1,
2194 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2195 44, -1, -1, 47, 48, 49, -1, -1, -1, -1,
2196 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
2197 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
2198 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2199 -1, -1, -1, -1, 88, 89, 90, 91, 92, 93,
2200 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
2201 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2202 114, 115, 3, -1, -1, -1, -1, -1, -1, -1,
2203 -1, 12, 13, 14, 15, -1, 17, 18, 19, -1,
2204 -1, 22, 23, -1, 25, -1, 27, 28, -1, -1,
2205 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
2206 -1, -1, -1, 44, -1, -1, 47, 48, 49, -1,
2207 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
2208 61, -1, -1, 64, -1, 66, 67, 68, 69, 70,
2209 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2210 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
2211 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
2212 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2213 111, 112, 113, 114, 115, 3, -1, -1, -1, -1,
2214 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
2215 18, 19, -1, -1, 22, 23, 24, 25, -1, 27,
2216 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
2217 -1, -1, -1, -1, -1, -1, 44, -1, -1, 47,
2218 48, 49, -1, -1, -1, -1, -1, -1, -1, -1,
2219 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
2220 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2221 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2222 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
2223 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
2224 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
2225 -1, -1, -1, -1, -1, -1, -1, 12, 13, 14,
2226 15, -1, 17, 18, 19, -1, -1, 22, 23, -1,
2227 25, -1, 27, 28, -1, -1, -1, 32, -1, -1,
2228 -1, -1, -1, -1, -1, -1, -1, -1, -1, 44,
2229 -1, -1, 47, 48, 49, -1, -1, -1, -1, -1,
2230 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
2231 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
2232 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2233 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
2234 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2235 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2236 115, 3, -1, -1, -1, -1, -1, -1, -1, -1,
2237 12, 13, 14, 15, -1, 17, 18, 19, -1, -1,
2238 22, 23, -1, 25, -1, 27, 28, -1, -1, -1,
2239 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2240 -1, -1, -1, -1, -1, 47, 48, 49, -1, -1,
2241 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
2242 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
2243 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2244 -1, -1, -1, -1, -1, -1, 88, 89, 90, 91,
2245 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
2246 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2247 112, 113, 114, 115, 3, -1, -1, -1, -1, -1,
2248 -1, -1, -1, 12, 13, 14, 15, -1, 17, 18,
2249 19, -1, -1, 22, 23, -1, 25, -1, 27, 28,
2250 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
2251 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
2252 49, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2253 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
2254 69, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2255 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
2256 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
2257 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2258 109, 110, 111, 112, 113, 114, 115, 3, -1, -1,
2259 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
2260 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
2261 -1, 27, 28, -1, -1, -1, 32, -1, -1, -1,
2262 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2263 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2264 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
2265 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
2266 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
2267 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
2268 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
2269 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2270 3, -1, -1, -1, -1, -1, -1, -1, -1, 12,
2271 13, 14, 15, -1, 17, 18, -1, -1, -1, 22,
2272 -1, -1, -1, -1, -1, -1, 29, -1, -1, 32,
2273 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2274 -1, -1, -1, -1, -1, -1, 49, -1, -1, -1,
2275 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2276 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
2277 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2278 -1, -1, -1, -1, 87, 88, -1, 90, 91, 92,
2279 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
2280 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2281 113, 114, 115, 3, -1, -1, -1, -1, -1, -1,
2282 -1, -1, 12, 13, 14, 15, -1, 17, 18, -1,
2283 -1, 33, 22, -1, -1, -1, -1, -1, -1, 29,
2284 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2285 52, 53, 54, 55, 56, 57, 58, 59, -1, 49,
2286 -1, -1, -1, 65, -1, -1, -1, -1, -1, -1,
2287 -1, -1, -1, -1, -1, -1, 66, 67, 68, 69,
2288 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2289 -1, -1, -1, -1, -1, -1, -1, 87, 88, -1,
2290 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
2291 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2292 110, 111, 112, 113, 114, 115, 3, -1, -1, -1,
2293 -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
2294 17, 18, -1, -1, -1, 22, -1, -1, 33, -1,
2295 -1, -1, -1, -1, -1, 32, 33, 42, 43, 44,
2296 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2297 55, 56, 57, 58, 59, -1, -1, -1, -1, -1,
2298 65, -1, -1, -1, -1, -1, -1, -1, -1, 66,
2299 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
2300 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2301 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
2302 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
2303 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
2304 -1, -1, -1, -1, -1, -1, -1, -1, 12, 13,
2305 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
2306 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2307 -1, 35, -1, -1, -1, -1, -1, -1, -1, -1,
2308 -1, -1, -1, -1, -1, 49, -1, -1, -1, -1,
2309 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2310 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
2311 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2312 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
2313 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
2314 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2315 114, 115, 3, -1, -1, -1, -1, -1, -1, -1,
2316 -1, 12, 13, 14, 15, 33, 17, 18, -1, -1,
2317 -1, 22, -1, -1, 42, 43, 44, 45, 46, 47,
2318 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2319 58, 59, -1, -1, -1, -1, -1, 65, 49, -1,
2320 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2321 -1, -1, -1, -1, -1, 66, 67, 68, 69, 70,
2322 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2323 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
2324 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
2325 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2326 111, 112, 113, 114, 115, 3, -1, -1, -1, -1,
2327 -1, -1, -1, -1, 12, 13, 14, 15, -1, 17,
2328 18, -1, -1, -1, 22, -1, -1, 34, -1, -1,
2329 -1, -1, -1, -1, 32, 42, 43, 44, 45, 46,
2330 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
2331 57, 58, 59, -1, -1, -1, -1, -1, 65, -1,
2332 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
2333 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2334 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2335 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
2336 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
2337 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
2338 -1, -1, -1, -1, -1, -1, -1, 12, 13, 14,
2339 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
2340 -1, 35, -1, -1, -1, -1, -1, 32, 42, 43,
2341 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2342 54, 55, 56, 57, 58, 59, -1, -1, -1, -1,
2343 -1, 65, -1, -1, -1, -1, -1, 3, -1, -1,
2344 -1, 66, 67, 68, 69, 70, 12, 13, 14, 15,
2345 -1, 17, 18, -1, -1, -1, 22, -1, -1, -1,
2346 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
2347 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2348 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2349 115, -1, -1, -1, -1, -1, -1, -1, 64, -1,
2350 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
2351 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2352 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
2353 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
2354 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2355 3, -1, -1, -1, -1, -1, -1, -1, -1, 12,
2356 13, 14, 15, 35, 17, 18, -1, -1, -1, 22,
2357 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2358 52, 53, 54, 55, 56, 57, 58, 59, -1, -1,
2359 -1, -1, -1, 65, -1, -1, 49, -1, -1, -1,
2360 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
2361 -1, -1, -1, 66, 67, 68, 69, 70, 12, 13,
2362 14, 15, -1, 17, 18, -1, -1, -1, 22, -1,
2363 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
2364 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
2365 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2366 113, 114, 115, -1, -1, -1, -1, -1, 3, -1,
2367 64, -1, 66, 67, 68, 69, 70, 12, 13, 14,
2368 15, -1, 17, 18, -1, -1, -1, 22, -1, -1,
2369 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
2370 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
2371 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2372 114, 115, -1, -1, -1, -1, -1, -1, -1, -1,
2373 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
2374 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2375 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
2376 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2377 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2378 115, 39, -1, -1, 42, 43, 44, 45, 46, 47,
2379 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2380 58, 59, -1, -1, -1, -1, -1, 65, 42, 43,
2381 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2382 54, 55, 56, 57, 58, 59, -1, -1, -1, -1,
2383 -1, 65, 42, 43, 44, 45, 46, 47, 48, 49,
2384 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2385 -1, -1, -1, -1, -1, 65, 42, 43, 44, 45,
2386 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2387 56, 57, 58, 59, -1, -1, -1, -1, -1, 65,
2388 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2389 52, 53, 54, 55, 56, 57, 58, 59, -1, -1,
2390 -1, -1, -1, 65
2391 };
2392
2393 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2394 symbol of state STATE-NUM. */
2395 static const unsigned short yystos[] =
2396 {
2397 0, 4, 5, 6, 7, 8, 9, 10, 11, 17,
2398 22, 29, 30, 31, 41, 83, 84, 85, 86, 87,
2399 88, 89, 91, 116, 121, 123, 146, 147, 148, 149,
2400 150, 167, 170, 175, 176, 177, 178, 179, 180, 181,
2401 182, 183, 188, 191, 194, 195, 199, 200, 201, 202,
2402 204, 206, 210, 212, 213, 219, 227, 241, 242, 9,
2403 11, 22, 84, 85, 86, 87, 123, 200, 210, 30,
2404 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2405 76, 77, 79, 80, 81, 82, 151, 152, 153, 154,
2406 156, 157, 158, 84, 85, 121, 171, 173, 201, 202,
2407 210, 219, 228, 229, 3, 12, 13, 14, 15, 17,
2408 18, 22, 66, 67, 68, 69, 70, 88, 90, 91,
2409 92, 93, 94, 95, 97, 100, 101, 102, 103, 104,
2410 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2411 115, 143, 260, 272, 143, 143, 230, 3, 6, 10,
2412 12, 13, 23, 247, 249, 26, 123, 242, 44, 280,
2413 281, 22, 83, 89, 123, 199, 0, 148, 49, 143,
2414 176, 211, 236, 237, 238, 239, 177, 4, 5, 6,
2415 9, 22, 184, 6, 181, 187, 200, 125, 189, 32,
2416 32, 36, 36, 143, 143, 143, 34, 192, 0, 3,
2417 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
2418 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2419 24, 25, 26, 27, 28, 29, 31, 32, 33, 34,
2420 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2421 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2422 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2423 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2424 75, 76, 77, 78, 79, 81, 83, 84, 85, 86,
2425 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
2426 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
2427 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
2428 119, 121, 122, 123, 124, 125, 143, 144, 159, 30,
2429 3, 12, 13, 14, 15, 17, 18, 22, 66, 67,
2430 68, 69, 70, 88, 90, 91, 92, 93, 94, 95,
2431 97, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2432 109, 110, 111, 112, 113, 114, 115, 144, 162, 163,
2433 162, 26, 119, 155, 144, 25, 27, 28, 32, 47,
2434 48, 60, 61, 78, 142, 143, 164, 224, 143, 230,
2435 143, 230, 173, 31, 143, 35, 233, 233, 233, 233,
2436 40, 23, 31, 36, 23, 171, 123, 189, 29, 87,
2437 240, 38, 234, 32, 143, 124, 239, 6, 185, 6,
2438 9, 186, 184, 36, 196, 32, 31, 17, 175, 203,
2439 205, 207, 208, 209, 210, 207, 143, 220, 221, 92,
2440 93, 94, 95, 96, 98, 99, 251, 252, 253, 266,
2441 269, 275, 276, 277, 193, 211, 237, 189, 26, 118,
2442 164, 190, 162, 144, 26, 27, 32, 44, 226, 164,
2443 32, 143, 164, 32, 42, 43, 44, 45, 46, 47,
2444 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2445 58, 59, 65, 141, 35, 36, 215, 215, 31, 214,
2446 215, 214, 19, 20, 21, 23, 25, 27, 32, 142,
2447 168, 169, 190, 211, 222, 223, 224, 40, 251, 32,
2448 31, 31, 19, 29, 87, 124, 222, 235, 236, 237,
2449 234, 6, 0, 3, 4, 5, 6, 7, 8, 9,
2450 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2451 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2452 31, 32, 33, 34, 35, 38, 39, 40, 41, 42,
2453 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2454 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2455 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
2456 73, 74, 75, 76, 77, 78, 79, 81, 83, 84,
2457 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2458 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2459 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2460 115, 116, 119, 121, 122, 123, 124, 125, 145, 196,
2461 197, 198, 190, 236, 32, 33, 34, 34, 33, 34,
2462 40, 34, 231, 211, 256, 222, 245, 270, 271, 272,
2463 280, 211, 143, 278, 279, 211, 267, 271, 37, 252,
2464 222, 34, 31, 32, 26, 177, 225, 226, 22, 33,
2465 143, 119, 164, 165, 166, 164, 164, 32, 121, 172,
2466 173, 174, 175, 216, 219, 228, 229, 211, 211, 17,
2467 22, 175, 222, 222, 31, 65, 141, 168, 37, 14,
2468 15, 16, 17, 33, 243, 244, 246, 248, 249, 250,
2469 39, 39, 32, 143, 37, 198, 33, 32, 234, 207,
2470 234, 64, 209, 234, 64, 222, 221, 37, 40, 31,
2471 40, 31, 32, 24, 40, 32, 31, 34, 32, 31,
2472 31, 211, 64, 143, 160, 161, 236, 33, 33, 33,
2473 34, 35, 25, 174, 35, 232, 37, 172, 233, 233,
2474 33, 33, 222, 222, 31, 35, 33, 34, 245, 236,
2475 32, 33, 236, 33, 34, 33, 33, 19, 89, 90,
2476 109, 222, 255, 257, 258, 259, 260, 281, 270, 211,
2477 280, 193, 279, 17, 193, 268, 33, 34, 164, 164,
2478 34, 25, 35, 34, 217, 232, 215, 215, 222, 35,
2479 246, 35, 244, 246, 40, 143, 207, 33, 234, 64,
2480 234, 234, 109, 257, 17, 18, 32, 260, 263, 32,
2481 32, 255, 34, 273, 211, 33, 33, 162, 64, 143,
2482 25, 35, 32, 211, 218, 232, 31, 217, 222, 246,
2483 280, 168, 33, 33, 33, 268, 32, 222, 245, 64,
2484 270, 274, 33, 31, 97, 33, 35, 25, 232, 34,
2485 31, 64, 32, 33, 234, 33, 245, 34, 34, 261,
2486 33, 34, 18, 271, 272, 32, 34, 211, 232, 24,
2487 207, 32, 97, 32, 222, 211, 254, 255, 256, 262,
2488 281, 33, 270, 25, 25, 232, 33, 33, 207, 263,
2489 264, 265, 270, 33, 34, 255, 34, 33, 35, 33,
2490 33, 32, 33, 34, 254, 25, 246, 32, 234, 245,
2491 33, 270, 33, 207, 32, 33, 264, 234, 33, 33
2492 };
2493
2494 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
2495 static const unsigned short yyr1[] =
2496 {
2497 0, 140, 141, 141, 141, 141, 141, 141, 141, 141,
2498 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
2499 142, 142, 142, 142, 143, 143, 143, 143, 143, 143,
2500 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
2501 143, 143, 143, 143, 143, 143, 144, 144, 144, 144,
2502 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2503 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2504 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2505 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2506 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2507 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2508 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2509 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2510 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2511 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2512 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2513 144, 144, 144, 144, 145, 145, 145, 145, 145, 145,
2514 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2515 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2516 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2517 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2518 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2519 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2520 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2521 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2522 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2523 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2524 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2525 146, 146, 147, 147, 148, 148, 148, 148, 148, 148,
2526 148, 148, 148, 148, 148, 148, 148, 148, 149, 150,
2527 150, 151, 151, 151, 151, 151, 151, 151, 151, 152,
2528 152, 153, 153, 154, 154, 154, 155, 155, 156, 156,
2529 157, 157, 157, 158, 158, 159, 159, 159, 159, 160,
2530 160, 160, 160, 161, 161, 162, 162, 163, 163, 164,
2531 164, 164, 164, 164, 164, 164, 164, 164, 164, 164,
2532 165, 165, 166, 166, 166, 167, 167, 168, 168, 168,
2533 169, 169, 169, 170, 170, 171, 171, 172, 172, 173,
2534 173, 173, 173, 173, 174, 174, 174, 174, 174, 175,
2535 175, 175, 176, 176, 177, 177, 178, 178, 178, 179,
2536 179, 179, 179, 180, 180, 180, 181, 181, 182, 182,
2537 182, 183, 183, 183, 183, 184, 184, 184, 184, 184,
2538 184, 185, 185, 186, 186, 186, 186, 187, 187, 187,
2539 188, 188, 189, 189, 190, 190, 191, 192, 192, 193,
2540 193, 194, 195, 195, 195, 195, 195, 195, 196, 197,
2541 197, 198, 198, 199, 199, 200, 200, 201, 201, 202,
2542 202, 202, 202, 203, 203, 204, 205, 206, 207, 207,
2543 207, 208, 208, 209, 209, 209, 210, 210, 211, 211,
2544 212, 213, 214, 214, 215, 216, 216, 217, 217, 218,
2545 218, 218, 218, 219, 220, 220, 221, 221, 222, 222,
2546 222, 222, 222, 222, 223, 223, 223, 223, 223, 223,
2547 224, 224, 225, 225, 226, 226, 226, 227, 228, 229,
2548 230, 230, 231, 231, 232, 232, 232, 232, 233, 233,
2549 234, 234, 234, 235, 235, 235, 235, 236, 236, 237,
2550 237, 238, 238, 239, 239, 240, 240, 241, 241, 242,
2551 242, 242, 243, 243, 244, 244, 245, 246, 247, 248,
2552 248, 249, 249, 249, 249, 249, 250, 250, 250, 250,
2553 251, 251, 252, 252, 252, 252, 252, 253, 253, 254,
2554 254, 254, 255, 255, 255, 255, 255, 255, 256, 256,
2555 257, 258, 258, 259, 260, 260, 260, 260, 260, 260,
2556 260, 260, 260, 260, 261, 261, 262, 262, 263, 263,
2557 264, 264, 265, 265, 266, 267, 267, 268, 268, 268,
2558 269, 270, 270, 270, 271, 271, 272, 272, 272, 272,
2559 272, 272, 272, 272, 273, 273, 274, 274, 275, 276,
2560 276, 277, 278, 278, 279, 280, 280, 281
2561 };
2562
2563 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
2564 static const unsigned char yyr2[] =
2565 {
2566 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
2567 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2568 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2569 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2570 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2571 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2572 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2573 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2574 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2575 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2576 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2577 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2578 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2579 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2580 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2581 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2582 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2583 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2584 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2585 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2586 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2587 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2588 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2589 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2590 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2591 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2592 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2593 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2594 0, 1, 1, 2, 1, 1, 1, 1, 1, 1,
2595 1, 1, 1, 1, 1, 1, 1, 1, 3, 2,
2596 3, 2, 2, 1, 2, 2, 2, 1, 2, 1,
2597 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2598 1, 1, 1, 1, 1, 2, 6, 2, 2, 0,
2599 1, 1, 3, 1, 3, 0, 1, 1, 2, 3,
2600 2, 3, 5, 2, 4, 1, 1, 1, 1, 4,
2601 0, 1, 1, 1, 3, 6, 5, 1, 1, 1,
2602 1, 1, 1, 3, 4, 1, 2, 1, 2, 1,
2603 1, 2, 4, 4, 1, 1, 1, 3, 3, 1,
2604 2, 2, 1, 1, 1, 1, 2, 2, 2, 1,
2605 1, 1, 1, 1, 1, 2, 1, 1, 1, 1,
2606 2, 1, 1, 2, 2, 0, 1, 1, 2, 1,
2607 2, 0, 1, 0, 1, 1, 2, 0, 1, 2,
2608 3, 4, 0, 4, 1, 2, 5, 0, 2, 1,
2609 3, 3, 1, 2, 2, 3, 1, 2, 3, 1,
2610 2, 1, 1, 1, 2, 1, 1, 5, 7, 5,
2611 7, 13, 16, 5, 7, 6, 5, 1, 0, 1,
2612 1, 1, 3, 1, 1, 3, 1, 2, 3, 2,
2613 4, 4, 1, 1, 3, 4, 5, 0, 2, 2,
2614 4, 1, 3, 5, 1, 3, 1, 3, 1, 4,
2615 3, 3, 2, 5, 1, 1, 1, 1, 1, 1,
2616 4, 2, 1, 2, 2, 1, 1, 2, 2, 2,
2617 0, 1, 0, 1, 0, 2, 7, 9, 0, 7,
2618 0, 3, 3, 0, 1, 1, 1, 0, 1, 1,
2619 2, 1, 2, 1, 2, 1, 1, 4, 5, 7,
2620 8, 13, 1, 3, 2, 4, 2, 1, 1, 1,
2621 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2622 1, 2, 1, 1, 1, 1, 1, 3, 6, 1,
2623 2, 1, 1, 1, 1, 2, 1, 1, 3, 4,
2624 6, 8, 12, 5, 1, 1, 1, 1, 1, 1,
2625 1, 1, 1, 1, 0, 2, 1, 3, 1, 1,
2626 0, 1, 1, 3, 3, 6, 1, 0, 1, 1,
2627 3, 1, 1, 3, 5, 6, 1, 1, 1, 1,
2628 1, 1, 1, 1, 0, 2, 1, 3, 3, 1,
2629 1, 3, 1, 3, 4, 0, 1, 1
2630 };
2631
2632
2633 /* YYDPREC[RULE-NUM] -- Dynamic precedence of rule #RULE-NUM (0 if none). */
2634 static const unsigned char yydprec[] =
2635 {
2636 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2637 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2638 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2639 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2640 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2641 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2642 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2643 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2647 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2648 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2649 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2650 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2654 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2656 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2657 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2658 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2659 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2662 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2667 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2668 0, 0, 0, 0, 0, 1, 2, 2, 2, 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, 2, 1, 0,
2672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2673 0, 0, 0, 0, 2, 1, 0, 0, 0, 0,
2674 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2676 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2677 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2678 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2679 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2680 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2681 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
2682 1, 0, 0, 0, 2, 1, 0, 0, 0, 0,
2683 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2684 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2685 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2687 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2688 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2689 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2690 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2691 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2692 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2693 0, 0, 2, 1, 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
2700 };
2701
2702 /* YYMERGER[RULE-NUM] -- Index of merging function for rule #RULE-NUM. */
2703 static const unsigned char yymerger[] =
2704 {
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, 0, 0,
2710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2712 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2713 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2714 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2715 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2717 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2720 0, 0, 0, 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
2769 };
2770
2771 /* YYIMMEDIATE[RULE-NUM] -- True iff rule #RULE-NUM is not to be deferred, as
2772 in the case of predicates. */
2773 static const yybool yyimmediate[] =
2774 {
2775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2777 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2778 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2780 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2781 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2795 0, 0, 0, 0, 0, 0, 0, 0, 0, 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
2839 };
2840
2841 /* YYCONFLP[YYPACT[STATE-NUM]] -- Pointer into YYCONFL of start of
2842 list of conflicting reductions corresponding to action entry for
2843 state STATE-NUM in yytable. 0 means no conflicts. The list in
2844 yyconfl is terminated by a rule number of 0. */
2845 static const unsigned short yyconflp[] =
2846 {
2847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2853 0, 15, 0, 0, 0, 0, 0, 0, 0, 3714,
2854 0, 3716, 0, 0, 0, 0, 0, 0, 0, 0,
2855 0, 0, 0, 0, 0, 3700, 3702, 0, 0, 0,
2856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2861 0, 0, 0, 0, 0, 0, 3696, 0, 0, 0,
2862 0, 0, 0, 0, 0, 17, 0, 0, 0, 0,
2863 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2865 0, 0, 0, 0, 3706, 0, 3708, 3710, 0, 3718,
2866 0, 3720, 3722, 0, 0, 0, 0, 0, 0, 0,
2867 0, 0, 0, 0, 3698, 0, 0, 0, 0, 0,
2868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2870 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2876 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2877 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2878 0, 0, 0, 0, 0, 0, 0, 0, 3704, 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, 9, 0, 0, 0, 11, 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, 3712, 0, 0, 0, 0, 0, 0, 0,
2887 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2888 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2889 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2890 0, 13, 0, 0, 0, 0, 0, 0, 0, 0,
2891 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2893 0, 0, 0, 0, 0, 0, 0, 0, 0, 3724,
2894 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2897 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2898 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2899 0, 0, 0, 0, 0, 0, 0, 0, 0, 167,
2900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2902 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2906 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
2907 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
2908 0, 5, 0, 0, 0, 0, 0, 0, 0, 0,
2909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2911 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2912 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2913 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,
2914 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2918 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2921 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2922 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2923 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2924 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2926 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2930 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2931 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2932 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2935 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2936 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2938 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2940 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2941 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2942 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2944 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2945 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2946 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2947 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2949 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2950 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2951 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2952 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2953 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2954 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2955 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2956 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2957 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2958 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2959 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2960 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2961 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2962 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2963 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2964 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2965 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2966 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2967 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2968 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2969 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2970 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2971 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2972 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2973 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2975 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2976 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2977 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2978 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2979 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2980 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2981 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2982 0, 0, 0, 0, 0, 0, 19, 0, 0, 0,
2983 0, 0, 0, 0, 0, 21, 23, 25, 27, 0,
2984 29, 31, 0, 0, 0, 33, 0, 0, 0, 0,
2985 0, 0, 35, 37, 39, 41, 43, 45, 47, 49,
2986 51, 53, 55, 57, 0, 59, 61, 63, 65, 67,
2987 69, 71, 73, 75, 77, 79, 81, 83, 85, 87,
2988 89, 91, 93, 0, 0, 0, 0, 0, 95, 97,
2989 99, 101, 103, 105, 0, 0, 0, 0, 0, 0,
2990 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2991 107, 109, 0, 111, 113, 115, 117, 119, 121, 0,
2992 123, 0, 0, 125, 127, 129, 131, 133, 135, 137,
2993 139, 141, 143, 145, 147, 149, 151, 153, 155, 0,
2994 0, 0, 0, 0, 0, 0, 0, 0, 157, 0,
2995 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2996 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2997 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2998 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2999 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3000 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3001 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3002 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3003 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3004 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3005 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3006 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3007 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3008 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3009 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 169, 0, 0, 0,
3017 0, 0, 0, 0, 0, 171, 173, 175, 177, 0,
3018 179, 181, 0, 0, 0, 183, 0, 0, 185, 187,
3019 189, 191, 0, 0, 0, 193, 0, 0, 0, 0,
3020 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3021 195, 197, 0, 0, 0, 0, 0, 0, 0, 0,
3022 0, 0, 0, 199, 201, 0, 0, 0, 0, 203,
3023 205, 207, 209, 211, 0, 0, 0, 0, 0, 0,
3024 0, 213, 0, 0, 0, 0, 0, 0, 0, 0,
3025 0, 215, 0, 217, 219, 221, 223, 225, 227, 0,
3026 229, 0, 0, 231, 233, 235, 237, 239, 241, 243,
3027 245, 247, 249, 251, 253, 255, 257, 259, 261, 263,
3028 0, 0, 0, 0, 0, 0, 0, 0, 265, 267,
3029 269, 271, 0, 273, 275, 0, 0, 0, 277, 0,
3030 0, 279, 281, 283, 285, 0, 0, 0, 287, 0,
3031 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3032 0, 0, 0, 289, 291, 0, 0, 0, 159, 0,
3033 0, 0, 0, 161, 0, 0, 293, 295, 0, 0,
3034 163, 0, 297, 299, 301, 303, 305, 0, 0, 0,
3035 0, 0, 0, 0, 307, 0, 0, 0, 0, 0,
3036 0, 0, 0, 0, 309, 0, 311, 313, 315, 317,
3037 319, 321, 0, 323, 0, 0, 325, 327, 329, 331,
3038 333, 335, 337, 339, 341, 343, 345, 347, 349, 351,
3039 353, 355, 357, 0, 0, 0, 0, 0, 165, 0,
3040 0, 359, 361, 363, 365, 0, 367, 369, 0, 0,
3041 0, 371, 0, 0, 373, 375, 377, 379, 0, 0,
3042 0, 381, 0, 0, 0, 0, 0, 0, 0, 0,
3043 0, 0, 0, 0, 0, 0, 383, 385, 0, 0,
3044 0, 0, 0, 0, 0, 0, 0, 0, 0, 387,
3045 389, 0, 0, 0, 0, 391, 393, 395, 397, 399,
3046 0, 0, 0, 0, 0, 0, 0, 401, 0, 0,
3047 0, 0, 0, 0, 0, 0, 0, 403, 0, 405,
3048 407, 409, 411, 413, 415, 0, 417, 0, 0, 419,
3049 421, 423, 425, 427, 429, 431, 433, 435, 437, 439,
3050 441, 443, 445, 447, 449, 451, 0, 0, 0, 0,
3051 0, 0, 0, 0, 453, 455, 457, 459, 0, 461,
3052 463, 0, 0, 0, 465, 0, 0, 467, 469, 471,
3053 473, 0, 0, 0, 475, 0, 0, 0, 0, 0,
3054 0, 0, 0, 0, 0, 0, 0, 0, 0, 477,
3055 479, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3056 0, 0, 481, 483, 0, 0, 0, 0, 485, 487,
3057 489, 491, 493, 0, 0, 0, 0, 0, 0, 0,
3058 495, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3059 497, 0, 499, 501, 503, 505, 507, 509, 0, 511,
3060 0, 0, 513, 515, 517, 519, 521, 523, 525, 527,
3061 529, 531, 533, 535, 537, 539, 541, 543, 545, 0,
3062 0, 0, 0, 0, 0, 0, 0, 547, 549, 551,
3063 553, 0, 555, 557, 0, 0, 0, 559, 0, 0,
3064 561, 563, 565, 567, 0, 0, 0, 569, 0, 0,
3065 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3066 0, 0, 571, 573, 0, 0, 0, 0, 0, 0,
3067 0, 0, 0, 0, 0, 575, 577, 0, 0, 0,
3068 0, 579, 581, 583, 585, 587, 0, 0, 0, 0,
3069 0, 0, 0, 589, 0, 0, 0, 0, 0, 0,
3070 0, 0, 0, 591, 0, 593, 595, 597, 599, 601,
3071 603, 0, 605, 0, 0, 607, 609, 611, 613, 615,
3072 617, 619, 621, 623, 625, 627, 629, 631, 633, 635,
3073 637, 639, 0, 0, 0, 0, 0, 0, 0, 0,
3074 641, 643, 645, 647, 0, 649, 651, 0, 0, 0,
3075 653, 0, 0, 655, 657, 659, 661, 0, 0, 0,
3076 663, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3077 0, 0, 0, 0, 0, 665, 667, 0, 0, 0,
3078 0, 0, 0, 0, 0, 0, 0, 0, 669, 671,
3079 0, 0, 0, 0, 673, 675, 677, 679, 681, 0,
3080 0, 0, 0, 0, 0, 0, 683, 0, 0, 0,
3081 0, 0, 0, 0, 0, 0, 685, 0, 687, 689,
3082 691, 693, 695, 697, 0, 699, 0, 0, 701, 703,
3083 705, 707, 709, 711, 713, 715, 717, 719, 721, 723,
3084 725, 727, 729, 731, 733, 0, 0, 0, 0, 0,
3085 0, 0, 0, 736, 739, 742, 745, 0, 748, 751,
3086 0, 0, 0, 754, 0, 0, 757, 760, 763, 766,
3087 0, 0, 0, 769, 0, 0, 0, 0, 0, 0,
3088 0, 0, 0, 0, 0, 0, 0, 0, 772, 775,
3089 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3090 0, 778, 781, 0, 0, 0, 0, 784, 787, 790,
3091 793, 796, 0, 0, 0, 0, 0, 0, 0, 799,
3092 0, 0, 0, 0, 0, 0, 0, 0, 0, 802,
3093 0, 805, 808, 811, 814, 817, 820, 0, 823, 0,
3094 0, 826, 829, 832, 835, 838, 841, 844, 847, 850,
3095 853, 856, 859, 862, 865, 868, 871, 876, 0, 874,
3096 0, 0, 0, 0, 0, 0, 878, 880, 882, 884,
3097 0, 886, 888, 0, 0, 0, 890, 0, 0, 892,
3098 894, 896, 898, 0, 0, 0, 900, 0, 0, 0,
3099 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3100 0, 902, 904, 0, 0, 0, 0, 0, 0, 0,
3101 0, 0, 0, 0, 906, 908, 0, 0, 0, 0,
3102 910, 912, 914, 916, 918, 0, 0, 0, 0, 0,
3103 0, 0, 920, 0, 0, 0, 0, 0, 0, 0,
3104 0, 0, 922, 0, 924, 926, 928, 930, 932, 934,
3105 0, 936, 0, 0, 938, 940, 942, 944, 946, 948,
3106 950, 952, 954, 956, 958, 960, 962, 964, 966, 968,
3107 970, 0, 0, 0, 0, 0, 0, 0, 0, 972,
3108 974, 976, 978, 0, 980, 982, 0, 0, 0, 984,
3109 0, 0, 986, 988, 990, 992, 0, 0, 0, 994,
3110 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3111 0, 0, 0, 0, 996, 998, 0, 0, 0, 0,
3112 0, 0, 0, 0, 0, 0, 0, 1000, 1002, 0,
3113 0, 0, 0, 1004, 1006, 1008, 1010, 1012, 0, 0,
3114 0, 0, 0, 0, 0, 1014, 0, 0, 0, 0,
3115 0, 0, 0, 0, 0, 1016, 0, 1018, 1020, 1022,
3116 1024, 1026, 1028, 0, 1030, 0, 0, 1032, 1034, 1036,
3117 1038, 1040, 1042, 1044, 1046, 1048, 1050, 1052, 1054, 1056,
3118 1058, 1060, 1062, 1064, 0, 0, 0, 0, 0, 0,
3119 0, 0, 1066, 1068, 1070, 1072, 0, 1074, 1076, 0,
3120 0, 0, 1078, 0, 0, 1080, 1082, 1084, 1086, 0,
3121 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0,
3122 0, 0, 0, 0, 0, 0, 0, 1090, 1092, 0,
3123 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3124 1094, 1096, 0, 0, 0, 0, 1098, 1100, 1102, 1104,
3125 1106, 0, 0, 0, 0, 0, 0, 0, 1108, 0,
3126 0, 0, 0, 0, 0, 0, 0, 0, 1110, 0,
3127 1112, 1114, 1116, 1118, 1120, 1122, 0, 1124, 0, 0,
3128 1126, 1128, 1130, 1132, 1134, 1136, 1138, 1140, 1142, 1144,
3129 1146, 1148, 1150, 1152, 1154, 1156, 1158, 0, 0, 0,
3130 0, 0, 0, 0, 0, 1160, 1162, 1164, 1166, 0,
3131 1168, 1170, 0, 0, 0, 1172, 0, 0, 1174, 1176,
3132 1178, 1180, 0, 0, 0, 1182, 0, 0, 0, 0,
3133 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3134 1184, 1186, 0, 0, 0, 0, 0, 0, 0, 0,
3135 0, 0, 0, 1188, 1190, 0, 0, 0, 0, 1192,
3136 1194, 1196, 1198, 1200, 0, 0, 0, 0, 0, 0,
3137 0, 1202, 0, 0, 0, 0, 0, 0, 0, 0,
3138 0, 1204, 0, 1206, 1208, 1210, 1212, 1214, 1216, 0,
3139 1218, 0, 0, 1220, 1222, 1224, 1226, 1228, 1230, 1232,
3140 1234, 1236, 1238, 1240, 1242, 1244, 1246, 1248, 1250, 1252,
3141 0, 0, 0, 0, 0, 0, 0, 0, 1254, 1256,
3142 1258, 1260, 0, 1262, 1264, 0, 0, 0, 1266, 0,
3143 0, 1268, 1270, 1272, 1274, 0, 0, 0, 1276, 0,
3144 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3145 0, 0, 0, 1278, 1280, 0, 0, 0, 0, 0,
3146 0, 0, 0, 0, 0, 0, 1282, 1284, 0, 0,
3147 0, 0, 1286, 1288, 1290, 1292, 1294, 0, 0, 0,
3148 0, 0, 0, 0, 1296, 0, 0, 0, 0, 0,
3149 0, 0, 0, 0, 1298, 0, 1300, 1302, 1304, 1306,
3150 1308, 1310, 0, 1312, 0, 0, 1314, 1316, 1318, 1320,
3151 1322, 1324, 1326, 1328, 1330, 1332, 1334, 1336, 1338, 1340,
3152 1342, 1344, 1346, 0, 0, 0, 0, 0, 0, 0,
3153 0, 1348, 1350, 1352, 1354, 0, 1356, 1358, 0, 0,
3154 0, 1360, 0, 0, 1362, 1364, 1366, 1368, 0, 0,
3155 0, 1370, 0, 0, 0, 0, 0, 0, 0, 0,
3156 0, 0, 0, 0, 0, 0, 1372, 1374, 0, 0,
3157 0, 0, 0, 0, 0, 0, 0, 0, 0, 1376,
3158 1378, 0, 0, 0, 0, 1380, 1382, 1384, 1386, 1388,
3159 0, 0, 0, 0, 0, 0, 0, 1390, 0, 0,
3160 0, 0, 0, 0, 0, 0, 0, 1392, 0, 1394,
3161 1396, 1398, 1400, 1402, 1404, 0, 1406, 0, 0, 1408,
3162 1410, 1412, 1414, 1416, 1418, 1420, 1422, 1424, 1426, 1428,
3163 1430, 1432, 1434, 1436, 1438, 1440, 0, 0, 0, 0,
3164 0, 0, 0, 0, 1442, 1444, 1446, 1448, 0, 1450,
3165 1452, 0, 0, 0, 1454, 0, 0, 1456, 1458, 1460,
3166 1462, 0, 0, 0, 1464, 0, 0, 0, 0, 0,
3167 0, 0, 0, 0, 0, 0, 0, 0, 0, 1466,
3168 1468, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3169 0, 0, 1470, 1472, 0, 0, 0, 0, 1474, 1476,
3170 1478, 1480, 1482, 0, 0, 0, 0, 0, 0, 0,
3171 1484, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3172 1486, 0, 1488, 1490, 1492, 1494, 1496, 1498, 0, 1500,
3173 0, 0, 1502, 1504, 1506, 1508, 1510, 1512, 1514, 1516,
3174 1518, 1520, 1522, 1524, 1526, 1528, 1530, 1532, 1534, 0,
3175 0, 0, 0, 0, 0, 0, 0, 1536, 1538, 1540,
3176 1542, 0, 1544, 1546, 0, 0, 0, 1548, 0, 0,
3177 1550, 1552, 1554, 1556, 0, 0, 0, 1558, 0, 0,
3178 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3179 0, 0, 1560, 1562, 0, 0, 0, 0, 0, 0,
3180 0, 0, 0, 0, 0, 1564, 1566, 0, 0, 0,
3181 0, 1568, 1570, 1572, 1574, 1576, 0, 0, 0, 0,
3182 0, 0, 0, 1578, 0, 0, 0, 0, 0, 0,
3183 0, 0, 0, 1580, 0, 1582, 1584, 1586, 1588, 1590,
3184 1592, 0, 1594, 0, 0, 1596, 1598, 1600, 1602, 1604,
3185 1606, 1608, 1610, 1612, 1614, 1616, 1618, 1620, 1622, 1624,
3186 1626, 1628, 0, 0, 0, 0, 0, 0, 0, 0,
3187 1630, 1632, 1634, 1636, 0, 1638, 1640, 0, 0, 0,
3188 1642, 0, 0, 1644, 1646, 1648, 1650, 0, 0, 0,
3189 1652, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3190 0, 0, 0, 0, 0, 1654, 1656, 0, 0, 0,
3191 0, 0, 0, 0, 0, 0, 0, 0, 1658, 1660,
3192 0, 0, 0, 0, 1662, 1664, 1666, 1668, 1670, 0,
3193 0, 0, 0, 0, 0, 0, 1672, 0, 0, 0,
3194 0, 0, 0, 0, 0, 0, 1674, 0, 1676, 1678,
3195 1680, 1682, 1684, 1686, 0, 1688, 0, 0, 1690, 1692,
3196 1694, 1696, 1698, 1700, 1702, 1704, 1706, 1708, 1710, 1712,
3197 1714, 1716, 1718, 1720, 1722, 0, 0, 0, 0, 0,
3198 0, 0, 0, 1724, 1726, 1728, 1730, 0, 1732, 1734,
3199 0, 0, 0, 1736, 0, 0, 1738, 1740, 1742, 1744,
3200 0, 0, 0, 1746, 0, 0, 0, 0, 0, 0,
3201 0, 0, 0, 0, 0, 0, 0, 0, 1748, 1750,
3202 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3203 0, 1752, 1754, 0, 0, 0, 0, 1756, 1758, 1760,
3204 1762, 1764, 0, 0, 0, 0, 0, 0, 0, 1766,
3205 0, 0, 0, 0, 0, 0, 0, 0, 0, 1768,
3206 0, 1770, 1772, 1774, 1776, 1778, 1780, 0, 1782, 0,
3207 0, 1784, 1786, 1788, 1790, 1792, 1794, 1796, 1798, 1800,
3208 1802, 1804, 1806, 1808, 1810, 1812, 1814, 1816, 0, 0,
3209 0, 0, 0, 0, 0, 0, 1818, 1820, 1822, 1824,
3210 0, 1826, 1828, 0, 0, 0, 1830, 0, 0, 1832,
3211 1834, 1836, 1838, 0, 0, 0, 1840, 0, 0, 0,
3212 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3213 0, 1842, 1844, 0, 0, 0, 0, 0, 0, 0,
3214 0, 0, 0, 0, 1846, 1848, 0, 0, 0, 0,
3215 1850, 1852, 1854, 1856, 1858, 0, 0, 0, 0, 0,
3216 0, 0, 1860, 0, 0, 0, 0, 0, 0, 0,
3217 0, 0, 1862, 0, 1864, 1866, 1868, 1870, 1872, 1874,
3218 0, 1876, 0, 0, 1878, 1880, 1882, 1884, 1886, 1888,
3219 1890, 1892, 1894, 1896, 1898, 1900, 1902, 1904, 1906, 1908,
3220 1910, 0, 0, 0, 0, 0, 0, 0, 0, 1912,
3221 1914, 1916, 1918, 0, 1920, 1922, 0, 0, 0, 1924,
3222 0, 0, 1926, 1928, 1930, 1932, 0, 0, 0, 1934,
3223 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3224 0, 0, 0, 0, 1936, 1938, 0, 0, 0, 0,
3225 0, 0, 0, 0, 0, 0, 0, 1940, 1942, 0,
3226 0, 0, 0, 1944, 1946, 1948, 1950, 1952, 0, 0,
3227 0, 0, 0, 0, 0, 1954, 0, 0, 0, 0,
3228 0, 0, 0, 0, 0, 1956, 0, 1958, 1960, 1962,
3229 1964, 1966, 1968, 0, 1970, 0, 0, 1972, 1974, 1976,
3230 1978, 1980, 1982, 1984, 1986, 1988, 1990, 1992, 1994, 1996,
3231 1998, 2000, 2002, 2004, 0, 0, 0, 0, 0, 0,
3232 0, 0, 2006, 2008, 2010, 2012, 0, 2014, 2016, 0,
3233 0, 0, 2018, 0, 0, 2020, 2022, 2024, 2026, 0,
3234 0, 0, 2028, 0, 0, 0, 0, 0, 0, 0,
3235 0, 0, 0, 0, 0, 0, 0, 2030, 2032, 0,
3236 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3237 2034, 2036, 0, 0, 0, 0, 2038, 2040, 2042, 2044,
3238 2046, 0, 0, 0, 0, 0, 0, 0, 2048, 0,
3239 0, 0, 0, 0, 0, 0, 0, 0, 2050, 0,
3240 2052, 2054, 2056, 2058, 2060, 2062, 0, 2064, 0, 0,
3241 2066, 2068, 2070, 2072, 2074, 2076, 2078, 2080, 2082, 2084,
3242 2086, 2088, 2090, 2092, 2094, 2096, 2098, 0, 0, 0,
3243 0, 0, 0, 0, 0, 2100, 2102, 2104, 2106, 0,
3244 2108, 2110, 0, 0, 0, 2112, 0, 0, 2114, 2116,
3245 2118, 2120, 0, 0, 0, 2122, 0, 0, 0, 0,
3246 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3247 2124, 2126, 0, 0, 0, 0, 0, 0, 0, 0,
3248 0, 0, 0, 2128, 2130, 0, 0, 0, 0, 2132,
3249 2134, 2136, 2138, 2140, 0, 0, 0, 0, 0, 0,
3250 0, 2142, 0, 0, 0, 0, 0, 0, 0, 0,
3251 0, 2144, 0, 2146, 2148, 2150, 2152, 2154, 2156, 0,
3252 2158, 0, 0, 2160, 2162, 2164, 2166, 2168, 2170, 2172,
3253 2174, 2176, 2178, 2180, 2182, 2184, 2186, 2188, 2190, 2192,
3254 0, 0, 0, 0, 0, 0, 0, 0, 2194, 2196,
3255 2198, 2200, 0, 2202, 2204, 0, 0, 0, 2206, 0,
3256 0, 2208, 2210, 2212, 2214, 0, 0, 0, 2216, 0,
3257 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3258 0, 0, 0, 2218, 2220, 0, 0, 0, 0, 0,
3259 0, 0, 0, 0, 0, 0, 2222, 2224, 0, 0,
3260 0, 0, 2226, 2228, 2230, 2232, 2234, 0, 0, 0,
3261 0, 0, 0, 0, 2236, 0, 0, 0, 0, 0,
3262 0, 0, 0, 0, 2238, 0, 2240, 2242, 2244, 2246,
3263 2248, 2250, 0, 2252, 0, 0, 2254, 2256, 2258, 2260,
3264 2262, 2264, 2266, 2268, 2270, 2272, 2274, 2276, 2278, 2280,
3265 2282, 2284, 2286, 0, 0, 0, 0, 0, 0, 0,
3266 0, 2288, 2290, 2292, 2294, 0, 2296, 2298, 0, 0,
3267 0, 2300, 0, 0, 2302, 2304, 2306, 2308, 0, 0,
3268 0, 2310, 0, 0, 0, 0, 0, 0, 0, 0,
3269 0, 0, 0, 0, 0, 0, 2312, 2314, 0, 0,
3270 0, 0, 0, 0, 0, 0, 0, 0, 0, 2316,
3271 2318, 0, 0, 0, 0, 2320, 2322, 2324, 2326, 2328,
3272 0, 0, 0, 0, 0, 0, 0, 2330, 0, 0,
3273 0, 0, 0, 0, 0, 0, 0, 2332, 0, 2334,
3274 2336, 2338, 2340, 2342, 2344, 0, 2346, 0, 0, 2348,
3275 2350, 2352, 2354, 2356, 2358, 2360, 2362, 2364, 2366, 2368,
3276 2370, 2372, 2374, 2376, 2378, 2380, 0, 0, 0, 0,
3277 0, 0, 0, 0, 2382, 2384, 2386, 2388, 0, 2390,
3278 2392, 0, 0, 0, 2394, 0, 0, 2396, 2398, 2400,
3279 2402, 0, 0, 0, 2404, 0, 0, 0, 0, 0,
3280 0, 0, 0, 0, 0, 0, 0, 0, 0, 2406,
3281 2408, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3282 0, 0, 2410, 2412, 0, 0, 0, 0, 2414, 2416,
3283 2418, 2420, 2422, 0, 0, 0, 0, 0, 0, 0,
3284 2424, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3285 2426, 0, 2428, 2430, 2432, 2434, 2436, 2438, 0, 2440,
3286 0, 0, 2442, 2444, 2446, 2448, 2450, 2452, 2454, 2456,
3287 2458, 2460, 2462, 2464, 2466, 2468, 2470, 2472, 2474, 0,
3288 0, 0, 0, 0, 0, 0, 0, 2476, 2478, 2480,
3289 2482, 0, 2484, 2486, 0, 0, 0, 2488, 0, 0,
3290 2490, 2492, 2494, 2496, 0, 0, 0, 2498, 0, 0,
3291 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3292 0, 0, 2500, 2502, 0, 0, 0, 0, 0, 0,
3293 0, 0, 0, 0, 0, 2504, 2506, 0, 0, 0,
3294 0, 2508, 2510, 2512, 2514, 2516, 0, 0, 0, 0,
3295 0, 0, 0, 2518, 0, 0, 0, 0, 0, 0,
3296 0, 0, 0, 2520, 0, 2522, 2524, 2526, 2528, 2530,
3297 2532, 0, 2534, 0, 0, 2536, 2538, 2540, 2542, 2544,
3298 2546, 2548, 2550, 2552, 2554, 2556, 2558, 2560, 2562, 2564,
3299 2566, 2568, 0, 0, 0, 0, 0, 0, 0, 0,
3300 2570, 2572, 2574, 2576, 0, 2578, 2580, 0, 0, 0,
3301 2582, 0, 0, 2584, 2586, 2588, 2590, 0, 0, 0,
3302 2592, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3303 0, 0, 0, 0, 0, 2594, 2596, 0, 0, 0,
3304 0, 0, 0, 0, 0, 0, 0, 0, 2598, 2600,
3305 0, 0, 0, 0, 2602, 2604, 2606, 2608, 2610, 0,
3306 0, 0, 0, 0, 0, 0, 2612, 0, 0, 0,
3307 0, 0, 0, 0, 0, 0, 2614, 0, 2616, 2618,
3308 2620, 2622, 2624, 2626, 0, 2628, 0, 0, 2630, 2632,
3309 2634, 2636, 2638, 2640, 2642, 2644, 2646, 2648, 2650, 2652,
3310 2654, 2656, 2658, 2660, 2662, 0, 0, 0, 0, 0,
3311 0, 0, 0, 2664, 2666, 2668, 2670, 0, 2672, 2674,
3312 0, 0, 0, 2676, 0, 0, 2678, 2680, 2682, 2684,
3313 0, 0, 0, 2686, 0, 0, 0, 0, 0, 0,
3314 0, 0, 0, 0, 0, 0, 0, 0, 2688, 2690,
3315 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3316 0, 2692, 2694, 0, 0, 0, 0, 2696, 2698, 2700,
3317 2702, 2704, 0, 0, 0, 0, 0, 0, 0, 2706,
3318 0, 0, 0, 0, 0, 0, 0, 0, 0, 2708,
3319 0, 2710, 2712, 2714, 2716, 2718, 2720, 0, 2722, 0,
3320 0, 2724, 2726, 2728, 2730, 2732, 2734, 2736, 2738, 2740,
3321 2742, 2744, 2746, 2748, 2750, 2752, 2754, 2756, 0, 0,
3322 0, 0, 0, 0, 0, 0, 2758, 2760, 2762, 2764,
3323 0, 2766, 2768, 0, 0, 0, 2770, 0, 0, 2772,
3324 2774, 2776, 2778, 0, 0, 0, 2780, 0, 0, 0,
3325 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3326 0, 2782, 2784, 0, 0, 0, 0, 0, 0, 0,
3327 0, 0, 0, 0, 2786, 2788, 0, 0, 0, 0,
3328 2790, 2792, 2794, 2796, 2798, 0, 0, 0, 0, 0,
3329 0, 0, 2800, 0, 0, 0, 0, 0, 0, 0,
3330 0, 0, 2802, 0, 2804, 2806, 2808, 2810, 2812, 2814,
3331 0, 2816, 0, 0, 2818, 2820, 2822, 2824, 2826, 2828,
3332 2830, 2832, 2834, 2836, 2838, 2840, 2842, 2844, 2846, 2848,
3333 2850, 0, 0, 0, 0, 0, 0, 0, 0, 2852,
3334 2854, 2856, 2858, 0, 2860, 2862, 0, 0, 0, 2864,
3335 0, 0, 2866, 2868, 2870, 2872, 0, 0, 0, 2874,
3336 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3337 0, 0, 0, 0, 2876, 2878, 0, 0, 0, 0,
3338 0, 0, 0, 0, 0, 0, 0, 2880, 2882, 0,
3339 0, 0, 0, 2884, 2886, 2888, 2890, 2892, 0, 0,
3340 0, 0, 0, 0, 0, 2894, 0, 0, 0, 0,
3341 0, 0, 0, 0, 0, 2896, 0, 2898, 2900, 2902,
3342 2904, 2906, 2908, 0, 2910, 0, 0, 2912, 2914, 2916,
3343 2918, 2920, 2922, 2924, 2926, 2928, 2930, 2932, 2934, 2936,
3344 2938, 2940, 2942, 2944, 0, 0, 0, 0, 0, 0,
3345 0, 0, 2946, 2948, 2950, 2952, 0, 2954, 2956, 0,
3346 0, 0, 2958, 0, 0, 2960, 2962, 2964, 2966, 0,
3347 0, 0, 2968, 0, 0, 0, 0, 0, 0, 0,
3348 0, 0, 0, 0, 0, 0, 0, 2970, 2972, 0,
3349 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3350 2974, 2976, 0, 0, 0, 0, 2978, 2980, 2982, 2984,
3351 2986, 0, 0, 0, 0, 0, 0, 0, 2988, 0,
3352 0, 0, 0, 0, 0, 0, 0, 0, 2990, 0,
3353 2992, 2994, 2996, 2998, 3000, 3002, 0, 3004, 0, 0,
3354 3006, 3008, 3010, 3012, 3014, 3016, 3018, 3020, 3022, 3024,
3355 3026, 3028, 3030, 3032, 3034, 3036, 3038, 0, 0, 0,
3356 0, 0, 0, 0, 0, 3040, 3042, 3044, 3046, 0,
3357 3048, 3050, 0, 0, 0, 3052, 0, 0, 3054, 3056,
3358 3058, 3060, 0, 0, 0, 3062, 0, 0, 0, 0,
3359 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3360 3064, 3066, 0, 0, 0, 0, 0, 0, 0, 0,
3361 0, 0, 0, 3068, 3070, 0, 0, 0, 0, 3072,
3362 3074, 3076, 3078, 3080, 0, 0, 0, 0, 0, 0,
3363 0, 3082, 0, 0, 0, 0, 0, 0, 0, 0,
3364 0, 3084, 0, 3086, 3088, 3090, 3092, 3094, 3096, 0,
3365 3098, 0, 0, 3100, 3102, 3104, 3106, 3108, 3110, 3112,
3366 3114, 3116, 3118, 3120, 3122, 3124, 3126, 3128, 3130, 3132,
3367 0, 0, 0, 0, 0, 0, 0, 0, 3134, 3136,
3368 3138, 3140, 0, 3142, 3144, 0, 0, 0, 3146, 0,
3369 0, 3148, 3150, 3152, 3154, 0, 0, 0, 3156, 0,
3370 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3371 0, 0, 0, 3158, 3160, 0, 0, 0, 0, 0,
3372 0, 0, 0, 0, 0, 0, 3162, 3164, 0, 0,
3373 0, 0, 3166, 3168, 3170, 3172, 3174, 0, 0, 0,
3374 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0,
3375 0, 0, 0, 0, 3178, 0, 3180, 3182, 3184, 3186,
3376 3188, 3190, 0, 3192, 0, 0, 3194, 3196, 3198, 3200,
3377 3202, 3204, 3206, 3208, 3210, 3212, 3214, 3216, 3218, 3220,
3378 3222, 3224, 3226, 0, 0, 0, 0, 0, 0, 0,
3379 0, 3228, 3230, 3232, 3234, 0, 3236, 3238, 0, 0,
3380 0, 3240, 0, 0, 3242, 3244, 3246, 3248, 0, 0,
3381 0, 3250, 0, 0, 0, 0, 0, 0, 0, 0,
3382 0, 0, 0, 0, 0, 0, 3252, 3254, 0, 0,
3383 0, 0, 0, 0, 0, 0, 0, 0, 0, 3256,
3384 3258, 0, 0, 0, 0, 3260, 3262, 3264, 3266, 3268,
3385 0, 0, 0, 0, 0, 0, 0, 3270, 0, 0,
3386 0, 0, 0, 0, 0, 0, 0, 3272, 0, 3274,
3387 3276, 3278, 3280, 3282, 3284, 0, 3286, 0, 0, 3288,
3388 3290, 3292, 3294, 3296, 3298, 3300, 3302, 3304, 3306, 3308,
3389 3310, 3312, 3314, 3316, 3318, 3320, 0, 0, 0, 0,
3390 0, 0, 0, 0, 3322, 3324, 3326, 3328, 0, 3330,
3391 3332, 0, 0, 0, 3334, 0, 0, 3336, 3338, 3340,
3392 3342, 0, 0, 0, 3344, 0, 0, 0, 0, 0,
3393 0, 0, 0, 0, 0, 0, 0, 0, 0, 3346,
3394 3348, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3395 0, 0, 3350, 3352, 0, 0, 0, 0, 3354, 3356,
3396 3358, 3360, 3362, 0, 0, 0, 0, 0, 0, 0,
3397 3364, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3398 3366, 0, 3368, 3370, 3372, 3374, 3376, 3378, 0, 3380,
3399 0, 0, 3382, 3384, 3386, 3388, 3390, 3392, 3394, 3396,
3400 3398, 3400, 3402, 3404, 3406, 3408, 3410, 3412, 3414, 0,
3401 0, 0, 0, 0, 0, 0, 0, 3416, 3418, 3420,
3402 3422, 0, 3424, 3426, 0, 0, 0, 3428, 0, 0,
3403 3430, 3432, 3434, 3436, 0, 0, 0, 3438, 0, 0,
3404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3405 0, 0, 3440, 3442, 0, 0, 0, 0, 0, 0,
3406 0, 0, 0, 0, 0, 3444, 3446, 0, 0, 0,
3407 0, 3448, 3450, 3452, 3454, 3456, 0, 0, 0, 0,
3408 0, 0, 0, 3458, 0, 0, 0, 0, 0, 0,
3409 0, 0, 0, 3460, 0, 3462, 3464, 3466, 3468, 3470,
3410 3472, 0, 3474, 0, 0, 3476, 3478, 3480, 3482, 3484,
3411 3486, 3488, 3490, 3492, 3494, 3496, 3498, 3500, 3502, 3504,
3412 3506, 3508, 0, 0, 0, 0, 0, 0, 0, 0,
3413 3510, 3512, 3514, 3516, 0, 3518, 3520, 0, 0, 0,
3414 3522, 0, 0, 3524, 3526, 3528, 3530, 0, 0, 0,
3415 3532, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3416 0, 0, 0, 0, 0, 3534, 3536, 0, 0, 0,
3417 0, 0, 0, 0, 0, 0, 0, 0, 3538, 3540,
3418 0, 0, 0, 0, 3542, 3544, 3546, 3548, 3550, 0,
3419 0, 0, 0, 0, 0, 0, 3552, 0, 0, 0,
3420 0, 0, 0, 0, 0, 0, 3554, 0, 3556, 3558,
3421 3560, 3562, 3564, 3566, 0, 3568, 0, 0, 3570, 3572,
3422 3574, 3576, 3578, 3580, 3582, 3584, 3586, 3588, 3590, 3592,
3423 3594, 3596, 3598, 3600, 3602, 0, 0, 0, 0, 0,
3424 0, 0, 0, 3604, 3606, 3608, 3610, 0, 3612, 3614,
3425 0, 0, 0, 3616, 0, 0, 3618, 3620, 3622, 3624,
3426 0, 0, 0, 3626, 0, 0, 0, 0, 0, 0,
3427 0, 0, 0, 0, 0, 0, 0, 0, 3628, 3630,
3428 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3429 0, 3632, 3634, 0, 0, 0, 0, 3636, 3638, 3640,
3430 3642, 3644, 0, 0, 0, 0, 0, 0, 0, 3646,
3431 0, 0, 0, 0, 0, 0, 0, 0, 0, 3648,
3432 0, 3650, 3652, 3654, 3656, 3658, 3660, 0, 3662, 0,
3433 0, 3664, 3666, 3668, 3670, 3672, 3674, 3676, 3678, 3680,
3434 3682, 3684, 3686, 3688, 3690, 3692, 3694, 0, 0, 0,
3435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3436 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3437 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3438 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3442 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3445 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3454 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3457 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3459 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3466 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3467 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3470 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3471 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3472 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3473 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3506 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3513 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3524 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3527 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3530 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3531 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3534 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3541 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3546 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3548 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3550 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3551 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3552 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3553 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3554 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3555 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3559 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3560 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3563 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3565 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3567 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3569 0, 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, 3726,
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, 3728
3669 };
3670
3671 /* YYCONFL[I] -- lists of conflicting rule numbers, each terminated by
3672 0, pointed into by YYCONFLP. */
3673 static const short yyconfl[] =
3674 {
3675 0, 391, 0, 391, 0, 391, 0, 391, 0, 382,
3676 0, 382, 0, 405, 0, 466, 0, 466, 0, 622,
3677 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3678 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3679 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3680 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3681 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3682 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3683 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3684 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3685 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3686 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3687 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3688 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3689 0, 622, 0, 622, 0, 622, 0, 622, 0, 622,
3690 0, 622, 0, 622, 0, 622, 0, 622, 0, 391,
3691 0, 391, 0, 391, 0, 391, 0, 405, 0, 46,
3692 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3693 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3694 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3695 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3696 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3697 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3698 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3699 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3700 0, 46, 0, 46, 0, 46, 0, 46, 0, 46,
3701 0, 46, 0, 55, 0, 55, 0, 55, 0, 55,
3702 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3703 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3704 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3705 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3706 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3707 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3708 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3709 0, 55, 0, 55, 0, 55, 0, 55, 0, 55,
3710 0, 55, 0, 55, 0, 55, 0, 56, 0, 56,
3711 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3712 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3713 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3714 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3715 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3716 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3717 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3718 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3719 0, 56, 0, 56, 0, 56, 0, 56, 0, 56,
3720 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3721 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3722 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3723 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3724 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3725 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3726 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3727 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3728 0, 57, 0, 57, 0, 57, 0, 57, 0, 57,
3729 0, 57, 0, 57, 0, 58, 0, 58, 0, 58,
3730 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3731 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3732 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3733 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3734 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3735 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3736 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3737 0, 58, 0, 58, 0, 58, 0, 58, 0, 58,
3738 0, 58, 0, 58, 0, 58, 0, 58, 0, 623,
3739 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3740 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3741 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3742 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3743 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3744 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3745 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3746 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3747 0, 623, 0, 623, 0, 623, 0, 623, 0, 623,
3748 0, 623, 0, 584, 622, 0, 584, 622, 0, 584,
3749 622, 0, 584, 622, 0, 584, 622, 0, 584, 622,
3750 0, 584, 622, 0, 584, 622, 0, 584, 622, 0,
3751 584, 622, 0, 584, 622, 0, 584, 622, 0, 584,
3752 622, 0, 584, 622, 0, 584, 622, 0, 584, 622,
3753 0, 584, 622, 0, 584, 622, 0, 584, 622, 0,
3754 584, 622, 0, 584, 622, 0, 584, 622, 0, 584,
3755 622, 0, 584, 622, 0, 584, 622, 0, 584, 622,
3756 0, 584, 622, 0, 584, 622, 0, 584, 622, 0,
3757 584, 622, 0, 584, 622, 0, 584, 622, 0, 584,
3758 622, 0, 584, 622, 0, 584, 622, 0, 584, 622,
3759 0, 584, 622, 0, 584, 622, 0, 584, 622, 0,
3760 584, 622, 0, 584, 622, 0, 584, 622, 0, 584,
3761 622, 0, 584, 622, 0, 584, 622, 0, 584, 622,
3762 0, 584, 622, 0, 622, 0, 65, 0, 65, 0,
3763 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3764 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3765 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3766 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3767 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3768 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3769 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3770 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3771 65, 0, 65, 0, 65, 0, 65, 0, 65, 0,
3772 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3773 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3774 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3775 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3776 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3777 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3778 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3779 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3780 109, 0, 109, 0, 109, 0, 109, 0, 109, 0,
3781 109, 0, 109, 0, 110, 0, 110, 0, 110, 0,
3782 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3783 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3784 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3785 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3786 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3787 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3788 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3789 110, 0, 110, 0, 110, 0, 110, 0, 110, 0,
3790 110, 0, 110, 0, 110, 0, 110, 0, 108, 0,
3791 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3792 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3793 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3794 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3795 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3796 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3797 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3798 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3799 108, 0, 108, 0, 108, 0, 108, 0, 108, 0,
3800 108, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3801 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3802 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3803 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3804 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3805 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3806 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3807 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3808 106, 0, 106, 0, 106, 0, 106, 0, 106, 0,
3809 106, 0, 106, 0, 106, 0, 107, 0, 107, 0,
3810 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3811 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3812 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3813 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3814 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3815 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3816 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3817 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3818 107, 0, 107, 0, 107, 0, 107, 0, 107, 0,
3819 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3820 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3821 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3822 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3823 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3824 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3825 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3826 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3827 127, 0, 127, 0, 127, 0, 127, 0, 127, 0,
3828 127, 0, 127, 0, 129, 0, 129, 0, 129, 0,
3829 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3830 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3831 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3832 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3833 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3834 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3835 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3836 129, 0, 129, 0, 129, 0, 129, 0, 129, 0,
3837 129, 0, 129, 0, 129, 0, 129, 0, 130, 0,
3838 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3839 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3840 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3841 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3842 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3843 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3844 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3845 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3846 130, 0, 130, 0, 130, 0, 130, 0, 130, 0,
3847 130, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3848 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3849 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3850 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3851 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3852 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3853 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3854 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3855 131, 0, 131, 0, 131, 0, 131, 0, 131, 0,
3856 131, 0, 131, 0, 131, 0, 132, 0, 132, 0,
3857 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3858 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3859 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3860 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3861 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3862 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3863 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3864 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3865 132, 0, 132, 0, 132, 0, 132, 0, 132, 0,
3866 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3867 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3868 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3869 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3870 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3871 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3872 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3873 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3874 133, 0, 133, 0, 133, 0, 133, 0, 133, 0,
3875 133, 0, 133, 0, 134, 0, 134, 0, 134, 0,
3876 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3877 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3878 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3879 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3880 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3881 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3882 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3883 134, 0, 134, 0, 134, 0, 134, 0, 134, 0,
3884 134, 0, 134, 0, 134, 0, 134, 0, 163, 0,
3885 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3886 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3887 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3888 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3889 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3890 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3891 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3892 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3893 163, 0, 163, 0, 163, 0, 163, 0, 163, 0,
3894 163, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3895 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3896 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3897 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3898 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3899 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3900 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3901 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3902 592, 0, 592, 0, 592, 0, 592, 0, 592, 0,
3903 592, 0, 592, 0, 592, 0, 591, 0, 591, 0,
3904 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3905 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3906 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3907 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3908 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3909 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3910 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3911 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3912 591, 0, 591, 0, 591, 0, 591, 0, 591, 0,
3913 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3914 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3915 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3916 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3917 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3918 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3919 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3920 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3921 589, 0, 589, 0, 589, 0, 589, 0, 589, 0,
3922 589, 0, 589, 0, 587, 0, 587, 0, 587, 0,
3923 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3924 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3925 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3926 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3927 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3928 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3929 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3930 587, 0, 587, 0, 587, 0, 587, 0, 587, 0,
3931 587, 0, 587, 0, 587, 0, 587, 0, 588, 0,
3932 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3933 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3934 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3935 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3936 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3937 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3938 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3939 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3940 588, 0, 588, 0, 588, 0, 588, 0, 588, 0,
3941 588, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3942 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3943 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3944 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3945 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3946 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3947 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3948 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3949 590, 0, 590, 0, 590, 0, 590, 0, 590, 0,
3950 590, 0, 590, 0, 590, 0, 586, 0, 586, 0,
3951 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3952 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3953 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3954 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3955 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3956 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3957 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3958 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3959 586, 0, 586, 0, 586, 0, 586, 0, 586, 0,
3960 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3961 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3962 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3963 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3964 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3965 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3966 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3967 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3968 585, 0, 585, 0, 585, 0, 585, 0, 585, 0,
3969 585, 0, 585, 0, 593, 0, 593, 0, 593, 0,
3970 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3971 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3972 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3973 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3974 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3975 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3976 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3977 593, 0, 593, 0, 593, 0, 593, 0, 593, 0,
3978 593, 0, 593, 0, 593, 0, 593, 0, 147, 0,
3979 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3980 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3981 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3982 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3983 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3984 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3985 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3986 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3987 147, 0, 147, 0, 147, 0, 147, 0, 147, 0,
3988 147, 0, 621, 0, 621, 0, 621, 0, 621, 0,
3989 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
3990 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
3991 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
3992 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
3993 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
3994 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
3995 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
3996 621, 0, 621, 0, 621, 0, 621, 0, 621, 0,
3997 621, 0, 621, 0, 621, 0, 619, 0, 619, 0,
3998 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
3999 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4000 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4001 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4002 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4003 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4004 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4005 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4006 619, 0, 619, 0, 619, 0, 619, 0, 619, 0,
4007 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4008 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4009 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4010 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4011 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4012 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4013 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4014 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4015 618, 0, 618, 0, 618, 0, 618, 0, 618, 0,
4016 618, 0, 618, 0, 620, 0, 620, 0, 620, 0,
4017 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4018 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4019 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4020 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4021 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4022 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4023 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4024 620, 0, 620, 0, 620, 0, 620, 0, 620, 0,
4025 620, 0, 620, 0, 620, 0, 620, 0, 617, 0,
4026 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4027 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4028 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4029 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4030 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4031 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4032 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4033 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4034 617, 0, 617, 0, 617, 0, 617, 0, 617, 0,
4035 617, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4036 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4037 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4038 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4039 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4040 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4041 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4042 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4043 616, 0, 616, 0, 616, 0, 616, 0, 616, 0,
4044 616, 0, 616, 0, 616, 0, 511, 0, 511, 0,
4045 459, 0, 459, 0, 460, 0, 497, 0, 497, 0,
4046 497, 0, 45, 0, 623, 0, 391, 0, 572, 0,
4047 572, 0, 572, 0, 623, 0, 342, 0, 493, 0
4048 };
4049
4050 /* Error token number */
4051 #define YYTERROR 1
4052
4053
4054
4055
4056 #undef yynerrs
4057 #define yynerrs (yystackp->yyerrcnt)
4058 #undef yychar
4059 #define yychar (yystackp->yyrawchar)
4060 #undef yylval
4061 #define yylval (yystackp->yyval)
4062 #undef yylloc
4063 #define yylloc (yystackp->yyloc)
4064 #define psi_parser_proc_nerrs yynerrs
4065 #define psi_parser_proc_char yychar
4066 #define psi_parser_proc_lval yylval
4067 #define psi_parser_proc_lloc yylloc
4068
4069 static const int YYEOF = 0;
4070 static const int YYEMPTY = -2;
4071
4072 typedef enum { yyok, yyaccept, yyabort, yyerr } YYRESULTTAG;
4073
4074 #define YYCHK(YYE) \
4075 do { \
4076 YYRESULTTAG yychk_flag = YYE; \
4077 if (yychk_flag != yyok) \
4078 return yychk_flag; \
4079 } while (0)
4080
4081 #if YYDEBUG
4082
4083 # ifndef YYFPRINTF
4084 # define YYFPRINTF fprintf
4085 # endif
4086
4087 /* This macro is provided for backward compatibility. */
4088 #ifndef YY_LOCATION_PRINT
4089 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
4090 #endif
4091
4092
4093 # define YYDPRINTF(Args) \
4094 do { \
4095 if (yydebug) \
4096 YYFPRINTF Args; \
4097 } while (0)
4098
4099
4100 /*----------------------------------------.
4101 | Print this symbol's value on YYOUTPUT. |
4102 `----------------------------------------*/
4103
4104 static void
4105 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
4106 {
4107 FILE *yyo = yyoutput;
4108 YYUSE (yyo);
4109 YYUSE (P);
4110 YYUSE (tokens);
4111 YYUSE (index);
4112 if (!yyvaluep)
4113 return;
4114 YYUSE (yytype);
4115 }
4116
4117
4118 /*--------------------------------.
4119 | Print this symbol on YYOUTPUT. |
4120 `--------------------------------*/
4121
4122 static void
4123 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
4124 {
4125 YYFPRINTF (yyoutput, "%s %s (",
4126 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
4127
4128 yy_symbol_value_print (yyoutput, yytype, yyvaluep, P, tokens, index);
4129 YYFPRINTF (yyoutput, ")");
4130 }
4131
4132 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
4133 do { \
4134 if (yydebug) \
4135 { \
4136 YYFPRINTF (stderr, "%s ", Title); \
4137 yy_symbol_print (stderr, Type, Value, P, tokens, index); \
4138 YYFPRINTF (stderr, "\n"); \
4139 } \
4140 } while (0)
4141
4142 /* Nonzero means print parse trace. It is left uninitialized so that
4143 multiple parsers can coexist. */
4144 int yydebug;
4145
4146 struct yyGLRStack;
4147 static void yypstack (struct yyGLRStack* yystackp, size_t yyk)
4148 YY_ATTRIBUTE_UNUSED;
4149 static void yypdumpstack (struct yyGLRStack* yystackp)
4150 YY_ATTRIBUTE_UNUSED;
4151
4152 #else /* !YYDEBUG */
4153
4154 # define YYDPRINTF(Args)
4155 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
4156
4157 #endif /* !YYDEBUG */
4158
4159 /* YYINITDEPTH -- initial size of the parser's stacks. */
4160 #ifndef YYINITDEPTH
4161 # define YYINITDEPTH 200
4162 #endif
4163
4164 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
4165 if the built-in stack extension method is used).
4166
4167 Do not make this value too large; the results are undefined if
4168 SIZE_MAX < YYMAXDEPTH * sizeof (GLRStackItem)
4169 evaluated with infinite-precision integer arithmetic. */
4170
4171 #ifndef YYMAXDEPTH
4172 # define YYMAXDEPTH 10000
4173 #endif
4174
4175 /* Minimum number of free items on the stack allowed after an
4176 allocation. This is to allow allocation and initialization
4177 to be completed by functions that call yyexpandGLRStack before the
4178 stack is expanded, thus insuring that all necessary pointers get
4179 properly redirected to new data. */
4180 #define YYHEADROOM 2
4181
4182 #ifndef YYSTACKEXPANDABLE
4183 # define YYSTACKEXPANDABLE 1
4184 #endif
4185
4186 #if YYSTACKEXPANDABLE
4187 # define YY_RESERVE_GLRSTACK(Yystack) \
4188 do { \
4189 if (Yystack->yyspaceLeft < YYHEADROOM) \
4190 yyexpandGLRStack (Yystack); \
4191 } while (0)
4192 #else
4193 # define YY_RESERVE_GLRSTACK(Yystack) \
4194 do { \
4195 if (Yystack->yyspaceLeft < YYHEADROOM) \
4196 yyMemoryExhausted (Yystack); \
4197 } while (0)
4198 #endif
4199
4200
4201 #if YYERROR_VERBOSE
4202
4203 # ifndef yystpcpy
4204 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
4205 # define yystpcpy stpcpy
4206 # else
4207 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
4208 YYDEST. */
4209 static char *
4210 yystpcpy (char *yydest, const char *yysrc)
4211 {
4212 char *yyd = yydest;
4213 const char *yys = yysrc;
4214
4215 while ((*yyd++ = *yys++) != '\0')
4216 continue;
4217
4218 return yyd - 1;
4219 }
4220 # endif
4221 # endif
4222
4223 # ifndef yytnamerr
4224 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
4225 quotes and backslashes, so that it's suitable for yyerror. The
4226 heuristic is that double-quoting is unnecessary unless the string
4227 contains an apostrophe, a comma, or backslash (other than
4228 backslash-backslash). YYSTR is taken from yytname. If YYRES is
4229 null, do not copy; instead, return the length of what the result
4230 would have been. */
4231 static size_t
4232 yytnamerr (char *yyres, const char *yystr)
4233 {
4234 if (*yystr == '"')
4235 {
4236 size_t yyn = 0;
4237 char const *yyp = yystr;
4238
4239 for (;;)
4240 switch (*++yyp)
4241 {
4242 case '\'':
4243 case ',':
4244 goto do_not_strip_quotes;
4245
4246 case '\\':
4247 if (*++yyp != '\\')
4248 goto do_not_strip_quotes;
4249 /* Fall through. */
4250 default:
4251 if (yyres)
4252 yyres[yyn] = *yyp;
4253 yyn++;
4254 break;
4255
4256 case '"':
4257 if (yyres)
4258 yyres[yyn] = '\0';
4259 return yyn;
4260 }
4261 do_not_strip_quotes: ;
4262 }
4263
4264 if (! yyres)
4265 return strlen (yystr);
4266
4267 return yystpcpy (yyres, yystr) - yyres;
4268 }
4269 # endif
4270
4271 #endif /* !YYERROR_VERBOSE */
4272
4273 /** State numbers, as in LALR(1) machine */
4274 typedef int yyStateNum;
4275
4276 /** Rule numbers, as in LALR(1) machine */
4277 typedef int yyRuleNum;
4278
4279 /** Grammar symbol */
4280 typedef int yySymbol;
4281
4282 /** Item references, as in LALR(1) machine */
4283 typedef short yyItemNum;
4284
4285 typedef struct yyGLRState yyGLRState;
4286 typedef struct yyGLRStateSet yyGLRStateSet;
4287 typedef struct yySemanticOption yySemanticOption;
4288 typedef union yyGLRStackItem yyGLRStackItem;
4289 typedef struct yyGLRStack yyGLRStack;
4290
4291 struct yyGLRState {
4292 /** Type tag: always true. */
4293 yybool yyisState;
4294 /** Type tag for yysemantics. If true, yysval applies, otherwise
4295 * yyfirstVal applies. */
4296 yybool yyresolved;
4297 /** Number of corresponding LALR(1) machine state. */
4298 yyStateNum yylrState;
4299 /** Preceding state in this stack */
4300 yyGLRState* yypred;
4301 /** Source position of the last token produced by my symbol */
4302 size_t yyposn;
4303 union {
4304 /** First in a chain of alternative reductions producing the
4305 * non-terminal corresponding to this state, threaded through
4306 * yynext. */
4307 yySemanticOption* yyfirstVal;
4308 /** Semantic value for this state. */
4309 YYSTYPE yysval;
4310 } yysemantics;
4311 };
4312
4313 struct yyGLRStateSet {
4314 yyGLRState** yystates;
4315 /** During nondeterministic operation, yylookaheadNeeds tracks which
4316 * stacks have actually needed the current lookahead. During deterministic
4317 * operation, yylookaheadNeeds[0] is not maintained since it would merely
4318 * duplicate yychar != YYEMPTY. */
4319 yybool* yylookaheadNeeds;
4320 size_t yysize, yycapacity;
4321 };
4322
4323 struct yySemanticOption {
4324 /** Type tag: always false. */
4325 yybool yyisState;
4326 /** Rule number for this reduction */
4327 yyRuleNum yyrule;
4328 /** The last RHS state in the list of states to be reduced. */
4329 yyGLRState* yystate;
4330 /** The lookahead for this reduction. */
4331 int yyrawchar;
4332 YYSTYPE yyval;
4333 /** Next sibling in chain of options. To facilitate merging,
4334 * options are chained in decreasing order by address. */
4335 yySemanticOption* yynext;
4336 };
4337
4338 /** Type of the items in the GLR stack. The yyisState field
4339 * indicates which item of the union is valid. */
4340 union yyGLRStackItem {
4341 yyGLRState yystate;
4342 yySemanticOption yyoption;
4343 };
4344
4345 struct yyGLRStack {
4346 int yyerrState;
4347
4348
4349 int yyerrcnt;
4350 int yyrawchar;
4351 YYSTYPE yyval;
4352
4353 YYJMP_BUF yyexception_buffer;
4354 yyGLRStackItem* yyitems;
4355 yyGLRStackItem* yynextFree;
4356 size_t yyspaceLeft;
4357 yyGLRState* yysplitPoint;
4358 yyGLRState* yylastDeleted;
4359 yyGLRStateSet yytops;
4360 };
4361
4362 #if YYSTACKEXPANDABLE
4363 static void yyexpandGLRStack (yyGLRStack* yystackp);
4364 #endif
4365
4366 static _Noreturn void
4367 yyFail (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char* yymsg)
4368 {
4369 if (yymsg != YY_NULLPTR)
4370 yyerror (P, tokens, index, yymsg);
4371 YYLONGJMP (yystackp->yyexception_buffer, 1);
4372 }
4373
4374 static _Noreturn void
4375 yyMemoryExhausted (yyGLRStack* yystackp)
4376 {
4377 YYLONGJMP (yystackp->yyexception_buffer, 2);
4378 }
4379
4380 #if YYDEBUG || YYERROR_VERBOSE
4381 /** A printable representation of TOKEN. */
4382 static inline const char*
4383 yytokenName (yySymbol yytoken)
4384 {
4385 if (yytoken == YYEMPTY)
4386 return "";
4387
4388 return yytname[yytoken];
4389 }
4390 #endif
4391
4392 /** Fill in YYVSP[YYLOW1 .. YYLOW0-1] from the chain of states starting
4393 * at YYVSP[YYLOW0].yystate.yypred. Leaves YYVSP[YYLOW1].yystate.yypred
4394 * containing the pointer to the next state in the chain. */
4395 static void yyfillin (yyGLRStackItem *, int, int) YY_ATTRIBUTE_UNUSED;
4396 static void
4397 yyfillin (yyGLRStackItem *yyvsp, int yylow0, int yylow1)
4398 {
4399 int i;
4400 yyGLRState *s = yyvsp[yylow0].yystate.yypred;
4401 for (i = yylow0-1; i >= yylow1; i -= 1)
4402 {
4403 #if YYDEBUG
4404 yyvsp[i].yystate.yylrState = s->yylrState;
4405 #endif
4406 yyvsp[i].yystate.yyresolved = s->yyresolved;
4407 if (s->yyresolved)
4408 yyvsp[i].yystate.yysemantics.yysval = s->yysemantics.yysval;
4409 else
4410 /* The effect of using yysval or yyloc (in an immediate rule) is
4411 * undefined. */
4412 yyvsp[i].yystate.yysemantics.yyfirstVal = YY_NULLPTR;
4413 s = yyvsp[i].yystate.yypred = s->yypred;
4414 }
4415 }
4416
4417 /* Do nothing if YYNORMAL or if *YYLOW <= YYLOW1. Otherwise, fill in
4418 * YYVSP[YYLOW1 .. *YYLOW-1] as in yyfillin and set *YYLOW = YYLOW1.
4419 * For convenience, always return YYLOW1. */
4420 static inline int yyfill (yyGLRStackItem *, int *, int, yybool)
4421 YY_ATTRIBUTE_UNUSED;
4422 static inline int
4423 yyfill (yyGLRStackItem *yyvsp, int *yylow, int yylow1, yybool yynormal)
4424 {
4425 if (!yynormal && yylow1 < *yylow)
4426 {
4427 yyfillin (yyvsp, *yylow, yylow1);
4428 *yylow = yylow1;
4429 }
4430 return yylow1;
4431 }
4432
4433 /** Perform user action for rule number YYN, with RHS length YYRHSLEN,
4434 * and top stack item YYVSP. YYLVALP points to place to put semantic
4435 * value ($$), and yylocp points to place for location information
4436 * (@$). Returns yyok for normal return, yyaccept for YYACCEPT,
4437 * yyerr for YYERROR, yyabort for YYABORT. */
4438 static YYRESULTTAG
4439 yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp,
4440 yyGLRStack* yystackp,
4441 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
4442 {
4443 yybool yynormal YY_ATTRIBUTE_UNUSED = (yystackp->yysplitPoint == YY_NULLPTR);
4444 int yylow;
4445 YYUSE (yyvalp);
4446 YYUSE (P);
4447 YYUSE (tokens);
4448 YYUSE (index);
4449 YYUSE (yyrhslen);
4450 # undef yyerrok
4451 # define yyerrok (yystackp->yyerrState = 0)
4452 # undef YYACCEPT
4453 # define YYACCEPT return yyaccept
4454 # undef YYABORT
4455 # define YYABORT return yyabort
4456 # undef YYERROR
4457 # define YYERROR return yyerrok, yyerr
4458 # undef YYRECOVERING
4459 # define YYRECOVERING() (yystackp->yyerrState != 0)
4460 # undef yyclearin
4461 # define yyclearin (yychar = YYEMPTY)
4462 # undef YYFILL
4463 # define YYFILL(N) yyfill (yyvsp, &yylow, N, yynormal)
4464 # undef YYBACKUP
4465 # define YYBACKUP(Token, Value) \
4466 return yyerror (P, tokens, index, YY_("syntax error: cannot back up")), \
4467 yyerrok, yyerr
4468
4469 yylow = 1;
4470 if (yyrhslen == 0)
4471 *yyvalp = yyval_default;
4472 else
4473 *yyvalp = yyvsp[YYFILL (1-yyrhslen)].yystate.yysemantics.yysval;
4474 switch (yyn)
4475 {
4476 case 287:
4477 #line 427 "src/parser_proc_grammar.y" /* glr.c:817 */
4478 {
4479 if ((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4480 psi_cpp_exp_exec((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), P->preproc, PSI_DATA(P));
4481 psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4482 }
4483 }
4484 #line 4485 "src/parser_proc.c" /* glr.c:817 */
4485 break;
4486
4487 case 288:
4488 #line 433 "src/parser_proc_grammar.y" /* glr.c:817 */
4489 {
4490 char *libname = strdup((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text->val);
4491 P->file.libnames = psi_plist_add(P->file.libnames, &libname);
4492 }
4493 #line 4494 "src/parser_proc.c" /* glr.c:817 */
4494 break;
4495
4496 case 289:
4497 #line 437 "src/parser_proc_grammar.y" /* glr.c:817 */
4498 {
4499 psi_parser_proc_add_const(P, (*(struct psi_const **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4500 }
4501 #line 4502 "src/parser_proc.c" /* glr.c:817 */
4502 break;
4503
4504 case 290:
4505 #line 440 "src/parser_proc_grammar.y" /* glr.c:817 */
4506 {
4507 psi_parser_proc_add_decl(P, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4508 }
4509 #line 4510 "src/parser_proc.c" /* glr.c:817 */
4510 break;
4511
4512 case 291:
4513 #line 443 "src/parser_proc_grammar.y" /* glr.c:817 */
4514 {
4515 psi_parser_proc_add_decl_extvars(P, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4516 }
4517 #line 4518 "src/parser_proc.c" /* glr.c:817 */
4518 break;
4519
4520 case 292:
4521 #line 446 "src/parser_proc_grammar.y" /* glr.c:817 */
4522 {
4523 if (P->flags & PSI_DEBUG) {
4524 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);
4525 }
4526 psi_decl_free(&(*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4527 }
4528 #line 4529 "src/parser_proc.c" /* glr.c:817 */
4529 break;
4530
4531 case 293:
4532 #line 452 "src/parser_proc_grammar.y" /* glr.c:817 */
4533 {
4534 psi_parser_proc_add_typedef(P, (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4535 }
4536 #line 4537 "src/parser_proc.c" /* glr.c:817 */
4537 break;
4538
4539 case 294:
4540 #line 455 "src/parser_proc_grammar.y" /* glr.c:817 */
4541 {
4542 psi_parser_proc_add_struct(P, (*(struct psi_decl_struct **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4543 }
4544 #line 4545 "src/parser_proc.c" /* glr.c:817 */
4545 break;
4546
4547 case 295:
4548 #line 458 "src/parser_proc_grammar.y" /* glr.c:817 */
4549 {
4550 psi_parser_proc_add_union(P, (*(struct psi_decl_union **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4551 }
4552 #line 4553 "src/parser_proc.c" /* glr.c:817 */
4553 break;
4554
4555 case 296:
4556 #line 461 "src/parser_proc_grammar.y" /* glr.c:817 */
4557 {
4558 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4559 }
4560 #line 4561 "src/parser_proc.c" /* glr.c:817 */
4561 break;
4562
4563 case 297:
4564 #line 464 "src/parser_proc_grammar.y" /* glr.c:817 */
4565 {
4566 psi_parser_proc_add_impl(P, (*(struct psi_impl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4567 }
4568 #line 4569 "src/parser_proc.c" /* glr.c:817 */
4569 break;
4570
4571 case 298:
4572 #line 470 "src/parser_proc_grammar.y" /* glr.c:817 */
4573 {
4574 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4575 }
4576 #line 4577 "src/parser_proc.c" /* glr.c:817 */
4577 break;
4578
4579 case 299:
4580 #line 476 "src/parser_proc_grammar.y" /* glr.c:817 */
4581 {
4582 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
4583 }
4584 #line 4585 "src/parser_proc.c" /* glr.c:817 */
4585 break;
4586
4587 case 300:
4588 #line 479 "src/parser_proc_grammar.y" /* glr.c:817 */
4589 {
4590 (*(struct psi_cpp_exp **)(&(*yyvalp))) = (*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4591 }
4592 #line 4593 "src/parser_proc.c" /* glr.c:817 */
4593 break;
4594
4595 case 301:
4596 #line 485 "src/parser_proc_grammar.y" /* glr.c:817 */
4597 {
4598 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4599 struct psi_token *msg = NULL;
4600
4601 if (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0, &msg)) {
4602 size_t index = 1;
4603 struct psi_token *next;
4604
4605 msg = psi_token_copy(msg);
4606 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), index++, &next)) {
4607 struct psi_token *old = msg;
4608 msg = psi_token_cat(" ", 2, msg, next);
4609 psi_token_free(&old);
4610 }
4611 }
4612 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4613
4614 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, msg);
4615 } else {
4616 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, NULL);
4617 }
4618 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4619 }
4620 #line 4621 "src/parser_proc.c" /* glr.c:817 */
4621 break;
4622
4623 case 302:
4624 #line 508 "src/parser_proc_grammar.y" /* glr.c:817 */
4625 {
4626 (*(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))));
4627 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4628 }
4629 #line 4630 "src/parser_proc.c" /* glr.c:817 */
4630 break;
4631
4632 case 303:
4633 #line 512 "src/parser_proc_grammar.y" /* glr.c:817 */
4634 {
4635 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL);
4636 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4637 }
4638 #line 4639 "src/parser_proc.c" /* glr.c:817 */
4639 break;
4640
4641 case 304:
4642 #line 516 "src/parser_proc_grammar.y" /* glr.c:817 */
4643 {
4644 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4645 (*(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))));
4646 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4647 }
4648 #line 4649 "src/parser_proc.c" /* glr.c:817 */
4649 break;
4650
4651 case 305:
4652 #line 521 "src/parser_proc_grammar.y" /* glr.c:817 */
4653 {
4654 (*(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)));
4655 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4656 }
4657 #line 4658 "src/parser_proc.c" /* glr.c:817 */
4658 break;
4659
4660 case 306:
4661 #line 525 "src/parser_proc_grammar.y" /* glr.c:817 */
4662 {
4663 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4664 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4665 }
4666 #line 4667 "src/parser_proc.c" /* glr.c:817 */
4667 break;
4668
4669 case 307:
4670 #line 529 "src/parser_proc_grammar.y" /* glr.c:817 */
4671 {
4672 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL);
4673 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4674 }
4675 #line 4676 "src/parser_proc.c" /* glr.c:817 */
4676 break;
4677
4678 case 308:
4679 #line 533 "src/parser_proc_grammar.y" /* glr.c:817 */
4680 {
4681 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4682 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
4683 }
4684 #line 4685 "src/parser_proc.c" /* glr.c:817 */
4685 break;
4686
4687 case 325:
4688 #line 577 "src/parser_proc_grammar.y" /* glr.c:817 */
4689 {
4690 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4691 (*(struct psi_cpp_macro_decl **)(&(*yyvalp))) = psi_cpp_macro_decl_init(NULL, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), NULL);
4692 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4693 }
4694 #line 4695 "src/parser_proc.c" /* glr.c:817 */
4695 break;
4696
4697 case 326:
4698 #line 582 "src/parser_proc_grammar.y" /* glr.c:817 */
4699 {
4700 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4701 (*(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);
4702 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4703 }
4704 #line 4705 "src/parser_proc.c" /* glr.c:817 */
4705 break;
4706
4707 case 327:
4708 #line 587 "src/parser_proc_grammar.y" /* glr.c:817 */
4709 {
4710 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4711 (*(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)));
4712 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4713 }
4714 #line 4715 "src/parser_proc.c" /* glr.c:817 */
4715 break;
4716
4717 case 328:
4718 #line 592 "src/parser_proc_grammar.y" /* glr.c:817 */
4719 {
4720 struct psi_plist *list = psi_plist_init((psi_plist_dtor) psi_token_free);
4721 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4722 (*(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);
4723 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4724 }
4725 #line 4726 "src/parser_proc.c" /* glr.c:817 */
4726 break;
4727
4728 case 329:
4729 #line 601 "src/parser_proc_grammar.y" /* glr.c:817 */
4730 {
4731 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL);
4732 }
4733 #line 4734 "src/parser_proc.c" /* glr.c:817 */
4734 break;
4735
4736 case 330:
4737 #line 604 "src/parser_proc_grammar.y" /* glr.c:817 */
4738 {
4739 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL); /* FIXME */
4740 }
4741 #line 4742 "src/parser_proc.c" /* glr.c:817 */
4742 break;
4743
4744 case 332:
4745 #line 608 "src/parser_proc_grammar.y" /* glr.c:817 */
4746 {
4747 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4748 }
4749 #line 4750 "src/parser_proc.c" /* glr.c:817 */
4750 break;
4751
4752 case 333:
4753 #line 614 "src/parser_proc_grammar.y" /* glr.c:817 */
4754 {
4755 (*(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)));
4756 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4757 (*(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)));
4758 }
4759 #line 4760 "src/parser_proc.c" /* glr.c:817 */
4760 break;
4761
4762 case 334:
4763 #line 619 "src/parser_proc_grammar.y" /* glr.c:817 */
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((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4768 }
4769 #line 4770 "src/parser_proc.c" /* glr.c:817 */
4770 break;
4771
4772 case 335:
4773 #line 627 "src/parser_proc_grammar.y" /* glr.c:817 */
4774 {
4775 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4776 }
4777 #line 4778 "src/parser_proc.c" /* glr.c:817 */
4778 break;
4779
4780 case 337:
4781 #line 634 "src/parser_proc_grammar.y" /* glr.c:817 */
4782 {
4783 (*(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)));
4784 (*(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)));
4785 }
4786 #line 4787 "src/parser_proc.c" /* glr.c:817 */
4787 break;
4788
4789 case 338:
4790 #line 638 "src/parser_proc_grammar.y" /* glr.c:817 */
4791 {
4792 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4793 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), &(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4794 }
4795 #line 4796 "src/parser_proc.c" /* glr.c:817 */
4796 break;
4797
4798 case 339:
4799 #line 645 "src/parser_proc_grammar.y" /* glr.c:817 */
4800 {
4801 (*(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)));
4802 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4803 }
4804 #line 4805 "src/parser_proc.c" /* glr.c:817 */
4805 break;
4806
4807 case 340:
4808 #line 649 "src/parser_proc_grammar.y" /* glr.c:817 */
4809 {
4810 (*(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)));
4811 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4812 }
4813 #line 4814 "src/parser_proc.c" /* glr.c:817 */
4814 break;
4815
4816 case 341:
4817 #line 653 "src/parser_proc_grammar.y" /* glr.c:817 */
4818 {
4819 (*(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)));
4820 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4821 }
4822 #line 4823 "src/parser_proc.c" /* glr.c:817 */
4823 break;
4824
4825 case 342:
4826 #line 657 "src/parser_proc_grammar.y" /* glr.c:817 */
4827 {
4828 (*(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)));
4829 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4830 }
4831 #line 4832 "src/parser_proc.c" /* glr.c:817 */
4832 break;
4833
4834 case 343:
4835 #line 662 "src/parser_proc_grammar.y" /* glr.c:817 */
4836 {
4837 {
4838 uint8_t exists;
4839
4840 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4841 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4842 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_DEFINED, &exists, 0));
4843 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4844 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4845 }
4846 }
4847 #line 4848 "src/parser_proc.c" /* glr.c:817 */
4848 break;
4849
4850 case 344:
4851 #line 673 "src/parser_proc_grammar.y" /* glr.c:817 */
4852 {
4853 {
4854 uint8_t exists;
4855
4856 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4857 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4858 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_DEFINED, &exists, 0));
4859 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4860 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4861 }
4862 }
4863 #line 4864 "src/parser_proc.c" /* glr.c:817 */
4864 break;
4865
4866 case 345:
4867 #line 684 "src/parser_proc_grammar.y" /* glr.c:817 */
4868 {
4869 (*(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));
4870 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4871 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4872 }
4873 #line 4874 "src/parser_proc.c" /* glr.c:817 */
4874 break;
4875
4876 case 346:
4877 #line 689 "src/parser_proc_grammar.y" /* glr.c:817 */
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, 0));
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:817 */
4884 break;
4885
4886 case 347:
4887 #line 694 "src/parser_proc_grammar.y" /* glr.c:817 */
4888 {
4889 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4890 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4891 }
4892 #line 4893 "src/parser_proc.c" /* glr.c:817 */
4893 break;
4894
4895 case 348:
4896 #line 698 "src/parser_proc_grammar.y" /* glr.c:817 */
4897 {
4898 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4899 (*(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));
4900 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4901 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4902 }
4903 #line 4904 "src/parser_proc.c" /* glr.c:817 */
4904 break;
4905
4906 case 349:
4907 #line 704 "src/parser_proc_grammar.y" /* glr.c:817 */
4908 {
4909 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4910 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_FUNCTION,
4911 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));
4912 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4913 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4914 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->data.call->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4915 }
4916 #line 4917 "src/parser_proc.c" /* glr.c:817 */
4917 break;
4918
4919 case 350:
4920 #line 715 "src/parser_proc_grammar.y" /* glr.c:817 */
4921 {
4922 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4923 }
4924 #line 4925 "src/parser_proc.c" /* glr.c:817 */
4925 break;
4926
4927 case 352:
4928 #line 722 "src/parser_proc_grammar.y" /* glr.c:817 */
4929 {
4930 /* TODO: clang include test macros */
4931 uint8_t no = 1;
4932 struct psi_num_exp *exp = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8, &no, 0));
4933 exp->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4934 exp->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4935 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_num_exp_free), &exp);
4936 }
4937 #line 4938 "src/parser_proc.c" /* glr.c:817 */
4938 break;
4939
4940 case 353:
4941 #line 730 "src/parser_proc_grammar.y" /* glr.c:817 */
4942 {
4943 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_num_exp_free),
4944 &(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4945 }
4946 #line 4947 "src/parser_proc.c" /* glr.c:817 */
4947 break;
4948
4949 case 354:
4950 #line 734 "src/parser_proc_grammar.y" /* glr.c:817 */
4951 {
4952 (*(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)));
4953 }
4954 #line 4955 "src/parser_proc.c" /* glr.c:817 */
4955 break;
4956
4957 case 355:
4958 #line 740 "src/parser_proc_grammar.y" /* glr.c:817 */
4959 {
4960 (*(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)));
4961 (*(struct psi_const **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4962 }
4963 #line 4964 "src/parser_proc.c" /* glr.c:817 */
4964 break;
4965
4966 case 356:
4967 #line 744 "src/parser_proc_grammar.y" /* glr.c:817 */
4968 {
4969 (*(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)));
4970 (*(struct psi_const **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4971 }
4972 #line 4973 "src/parser_proc.c" /* glr.c:817 */
4973 break;
4974
4975 case 357:
4976 #line 751 "src/parser_proc_grammar.y" /* glr.c:817 */
4977 {
4978 (*(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);
4979 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4980 }
4981 #line 4982 "src/parser_proc.c" /* glr.c:817 */
4982 break;
4983
4984 case 358:
4985 #line 755 "src/parser_proc_grammar.y" /* glr.c:817 */
4986 {
4987 (*(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)));
4988 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4989 }
4990 #line 4991 "src/parser_proc.c" /* glr.c:817 */
4991 break;
4992
4993 case 359:
4994 #line 759 "src/parser_proc_grammar.y" /* glr.c:817 */
4995 {
4996 (*(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);
4997 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4998 }
4999 #line 5000 "src/parser_proc.c" /* glr.c:817 */
5000 break;
5001
5002 case 363:
5003 #line 772 "src/parser_proc_grammar.y" /* glr.c:817 */
5004 {
5005 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5006 }
5007 #line 5008 "src/parser_proc.c" /* glr.c:817 */
5008 break;
5009
5010 case 364:
5011 #line 786 "src/parser_proc_grammar.y" /* glr.c:817 */
5012 {
5013 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5014 }
5015 #line 5016 "src/parser_proc.c" /* glr.c:817 */
5016 break;
5017
5018 case 365:
5019 #line 792 "src/parser_proc_grammar.y" /* glr.c:817 */
5020 {
5021 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5022 }
5023 #line 5024 "src/parser_proc.c" /* glr.c:817 */
5024 break;
5025
5026 case 366:
5027 #line 795 "src/parser_proc_grammar.y" /* glr.c:817 */
5028 {
5029 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5030 }
5031 #line 5032 "src/parser_proc.c" /* glr.c:817 */
5032 break;
5033
5034 case 367:
5035 #line 801 "src/parser_proc_grammar.y" /* glr.c:817 */
5036 {
5037 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5038 }
5039 #line 5040 "src/parser_proc.c" /* glr.c:817 */
5040 break;
5041
5042 case 368:
5043 #line 804 "src/parser_proc_grammar.y" /* glr.c:817 */
5044 {
5045 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5046 }
5047 #line 5048 "src/parser_proc.c" /* glr.c:817 */
5048 break;
5049
5050 case 370:
5051 #line 811 "src/parser_proc_grammar.y" /* glr.c:817 */
5052 {
5053 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5054 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
5055 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
5056 );
5057 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
5058 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5059 }
5060 #line 5061 "src/parser_proc.c" /* glr.c:817 */
5061 break;
5062
5063 case 371:
5064 #line 819 "src/parser_proc_grammar.y" /* glr.c:817 */
5065 {
5066 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5067 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5068 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->name),
5069 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0, 0)
5070 );
5071 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5072 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->token);
5073 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5074 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5075 }
5076 #line 5077 "src/parser_proc.c" /* glr.c:817 */
5077 break;
5078
5079 case 372:
5080 #line 830 "src/parser_proc_grammar.y" /* glr.c:817 */
5081 {
5082 (*(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)));
5083 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
5084 (*(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)));
5085 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5086 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
5087 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
5088 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
5089 }
5090 #line 5091 "src/parser_proc.c" /* glr.c:817 */
5091 break;
5092
5093 case 373:
5094 #line 839 "src/parser_proc_grammar.y" /* glr.c:817 */
5095 {
5096 (*(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)));
5097 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
5098 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.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)));
5099 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5100 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
5101 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
5102 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
5103 }
5104 #line 5105 "src/parser_proc.c" /* glr.c:817 */
5105 break;
5106
5107 case 375:
5108 #line 852 "src/parser_proc_grammar.y" /* glr.c:817 */
5109 {
5110 (*(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));
5111 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
5112 }
5113 #line 5114 "src/parser_proc.c" /* glr.c:817 */
5114 break;
5115
5116 case 376:
5117 #line 856 "src/parser_proc_grammar.y" /* glr.c:817 */
5118 {
5119 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5120 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->name),
5121 psi_decl_var_init(NULL, 0, 0)
5122 );
5123 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
5124 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
5125 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5126 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5127 }
5128 #line 5129 "src/parser_proc.c" /* glr.c:817 */
5129 break;
5130
5131 case 377:
5132 #line 866 "src/parser_proc_grammar.y" /* glr.c:817 */
5133 {
5134 (*(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));
5135 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5136 (*(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)));
5137 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5138 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
5139 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
5140 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
5141 }
5142 #line 5143 "src/parser_proc.c" /* glr.c:817 */
5143 break;
5144
5145 case 378:
5146 #line 875 "src/parser_proc_grammar.y" /* glr.c:817 */
5147 {
5148 (*(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));
5149 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5150 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.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)));
5151 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5152 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
5153 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
5154 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
5155 }
5156 #line 5157 "src/parser_proc.c" /* glr.c:817 */
5157 break;
5158
5159 case 380:
5160 #line 888 "src/parser_proc_grammar.y" /* glr.c:817 */
5161 {
5162 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5163 }
5164 #line 5165 "src/parser_proc.c" /* glr.c:817 */
5165 break;
5166
5167 case 381:
5168 #line 891 "src/parser_proc_grammar.y" /* glr.c:817 */
5169 {
5170 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5171 }
5172 #line 5173 "src/parser_proc.c" /* glr.c:817 */
5173 break;
5174
5175 case 384:
5176 #line 902 "src/parser_proc_grammar.y" /* glr.c:817 */
5177 {
5178 (*(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);
5179 (*(struct psi_decl_type **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5180 }
5181 #line 5182 "src/parser_proc.c" /* glr.c:817 */
5182 break;
5183
5184 case 386:
5185 #line 910 "src/parser_proc_grammar.y" /* glr.c:817 */
5186 {
5187 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5188 (*(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);
5189 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5190 }
5191 #line 5192 "src/parser_proc.c" /* glr.c:817 */
5192 break;
5193
5194 case 387:
5195 #line 915 "src/parser_proc_grammar.y" /* glr.c:817 */
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:817 */
5202 break;
5203
5204 case 388:
5205 #line 920 "src/parser_proc_grammar.y" /* glr.c:817 */
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:817 */
5212 break;
5213
5214 case 391:
5215 #line 930 "src/parser_proc_grammar.y" /* glr.c:817 */
5216 {
5217 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5218 }
5219 #line 5220 "src/parser_proc.c" /* glr.c:817 */
5220 break;
5221
5222 case 392:
5223 #line 933 "src/parser_proc_grammar.y" /* glr.c:817 */
5224 {
5225 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5226 }
5227 #line 5228 "src/parser_proc.c" /* glr.c:817 */
5228 break;
5229
5230 case 393:
5231 #line 939 "src/parser_proc_grammar.y" /* glr.c:817 */
5232 {
5233 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5234 }
5235 #line 5236 "src/parser_proc.c" /* glr.c:817 */
5236 break;
5237
5238 case 394:
5239 #line 942 "src/parser_proc_grammar.y" /* glr.c:817 */
5240 {
5241 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5242 }
5243 #line 5244 "src/parser_proc.c" /* glr.c:817 */
5244 break;
5245
5246 case 395:
5247 #line 945 "src/parser_proc_grammar.y" /* glr.c:817 */
5248 {
5249 (*(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)));
5250 }
5251 #line 5252 "src/parser_proc.c" /* glr.c:817 */
5252 break;
5253
5254 case 398:
5255 #line 956 "src/parser_proc_grammar.y" /* glr.c:817 */
5256 {
5257 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5258 }
5259 #line 5260 "src/parser_proc.c" /* glr.c:817 */
5260 break;
5261
5262 case 399:
5263 #line 959 "src/parser_proc_grammar.y" /* glr.c:817 */
5264 {
5265 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5266 }
5267 #line 5268 "src/parser_proc.c" /* glr.c:817 */
5268 break;
5269
5270 case 400:
5271 #line 962 "src/parser_proc_grammar.y" /* glr.c:817 */
5272 {
5273 (*(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)));
5274 }
5275 #line 5276 "src/parser_proc.c" /* glr.c:817 */
5276 break;
5277
5278 case 401:
5279 #line 968 "src/parser_proc_grammar.y" /* glr.c:817 */
5280 {
5281 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5282 }
5283 #line 5284 "src/parser_proc.c" /* glr.c:817 */
5284 break;
5285
5286 case 402:
5287 #line 971 "src/parser_proc_grammar.y" /* glr.c:817 */
5288 {
5289 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5290 }
5291 #line 5292 "src/parser_proc.c" /* glr.c:817 */
5292 break;
5293
5294 case 403:
5295 #line 974 "src/parser_proc_grammar.y" /* glr.c:817 */
5296 {
5297 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5298 (*(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)));
5299 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5300 } else {
5301 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5302 }
5303 }
5304 #line 5305 "src/parser_proc.c" /* glr.c:817 */
5305 break;
5306
5307 case 404:
5308 #line 982 "src/parser_proc_grammar.y" /* glr.c:817 */
5309 {
5310 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5311 (*(struct psi_token **)(&(*yyvalp))) = psi_token_cat(" ", 2, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5312 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5313 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5314 } else {
5315 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5316 }
5317 }
5318 #line 5319 "src/parser_proc.c" /* glr.c:817 */
5319 break;
5320
5321 case 405:
5322 #line 994 "src/parser_proc_grammar.y" /* glr.c:817 */
5323 {
5324 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5325 }
5326 #line 5327 "src/parser_proc.c" /* glr.c:817 */
5327 break;
5328
5329 case 406:
5330 #line 997 "src/parser_proc_grammar.y" /* glr.c:817 */
5331 {
5332 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5333 }
5334 #line 5335 "src/parser_proc.c" /* glr.c:817 */
5335 break;
5336
5337 case 407:
5338 #line 1000 "src/parser_proc_grammar.y" /* glr.c:817 */
5339 {
5340 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5341 }
5342 #line 5343 "src/parser_proc.c" /* glr.c:817 */
5343 break;
5344
5345 case 408:
5346 #line 1003 "src/parser_proc_grammar.y" /* glr.c:817 */
5347 {
5348 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5349 (*(struct psi_token **)(&(*yyvalp))) = psi_token_cat(" ", 2, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5350 } else {
5351 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5352 }
5353 }
5354 #line 5355 "src/parser_proc.c" /* glr.c:817 */
5355 break;
5356
5357 case 409:
5358 #line 1010 "src/parser_proc_grammar.y" /* glr.c:817 */
5359 {
5360 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5361 }
5362 #line 5363 "src/parser_proc.c" /* glr.c:817 */
5363 break;
5364
5365 case 410:
5366 #line 1013 "src/parser_proc_grammar.y" /* glr.c:817 */
5367 {
5368 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5369 (*(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)));
5370 } else {
5371 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5372 }
5373 }
5374 #line 5375 "src/parser_proc.c" /* glr.c:817 */
5375 break;
5376
5377 case 411:
5378 #line 1023 "src/parser_proc_grammar.y" /* glr.c:817 */
5379 {
5380 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5381 }
5382 #line 5383 "src/parser_proc.c" /* glr.c:817 */
5383 break;
5384
5385 case 413:
5386 #line 1029 "src/parser_proc_grammar.y" /* glr.c:817 */
5387 {
5388 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5389 }
5390 #line 5391 "src/parser_proc.c" /* glr.c:817 */
5391 break;
5392
5393 case 417:
5394 #line 1038 "src/parser_proc_grammar.y" /* glr.c:817 */
5395 {
5396 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5397 }
5398 #line 5399 "src/parser_proc.c" /* glr.c:817 */
5399 break;
5400
5401 case 418:
5402 #line 1041 "src/parser_proc_grammar.y" /* glr.c:817 */
5403 {
5404 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5405 }
5406 #line 5407 "src/parser_proc.c" /* glr.c:817 */
5407 break;
5408
5409 case 419:
5410 #line 1044 "src/parser_proc_grammar.y" /* glr.c:817 */
5411 {
5412 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5413 (*(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)));
5414 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5415 } else {
5416 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5417 }
5418 }
5419 #line 5420 "src/parser_proc.c" /* glr.c:817 */
5420 break;
5421
5422 case 420:
5423 #line 1055 "src/parser_proc_grammar.y" /* glr.c:817 */
5424 {
5425 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5426 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5427 (*(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);
5428 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5429 }
5430 }
5431 #line 5432 "src/parser_proc.c" /* glr.c:817 */
5432 break;
5433
5434 case 421:
5435 #line 1062 "src/parser_proc_grammar.y" /* glr.c:817 */
5436 {
5437 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5438 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5439 (*(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);
5440 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5441 }
5442 }
5443 #line 5444 "src/parser_proc.c" /* glr.c:817 */
5444 break;
5445
5446 case 422:
5447 #line 1072 "src/parser_proc_grammar.y" /* glr.c:817 */
5448 {
5449 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5450 }
5451 #line 5452 "src/parser_proc.c" /* glr.c:817 */
5452 break;
5453
5454 case 423:
5455 #line 1075 "src/parser_proc_grammar.y" /* glr.c:817 */
5456 {
5457 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5458 }
5459 #line 5460 "src/parser_proc.c" /* glr.c:817 */
5460 break;
5461
5462 case 424:
5463 #line 1081 "src/parser_proc_grammar.y" /* glr.c:817 */
5464 {
5465 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5466 }
5467 #line 5468 "src/parser_proc.c" /* glr.c:817 */
5468 break;
5469
5470 case 425:
5471 #line 1084 "src/parser_proc_grammar.y" /* glr.c:817 */
5472 {
5473 (*(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)));
5474 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5475 }
5476 #line 5477 "src/parser_proc.c" /* glr.c:817 */
5477 break;
5478
5479 case 426:
5480 #line 1091 "src/parser_proc_grammar.y" /* glr.c:817 */
5481 {
5482 struct psi_plist *list = psi_plist_init((psi_plist_dtor) psi_decl_extvar_free);
5483
5484 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))) {
5485 size_t i = 0;
5486 struct psi_decl_var *var;
5487
5488 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), i++, &var)) {
5489 if (psi_decl_extvar_is_blacklisted(var->name->val)) {
5490 psi_decl_var_free(&var);
5491 } else {
5492 struct psi_decl_extvar *evar = psi_decl_extvar_init(
5493 psi_decl_arg_init(psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type), var));
5494 list = psi_plist_add(list, &evar);
5495 }
5496 }
5497 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5498 }
5499
5500 if (psi_decl_extvar_is_blacklisted((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->var->name->val)) {
5501 psi_decl_arg_free(&(*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5502 } else {
5503 struct psi_decl_extvar *evar = psi_decl_extvar_init((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5504
5505 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5506 evar->redir = zend_string_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
5507 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5508 }
5509 list = psi_plist_add(list, &evar);
5510 }
5511
5512 (*(struct psi_plist **)(&(*yyvalp))) = list;
5513 }
5514 #line 5515 "src/parser_proc.c" /* glr.c:817 */
5515 break;
5516
5517 case 427:
5518 #line 1127 "src/parser_proc_grammar.y" /* glr.c:817 */
5519 {
5520 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5521 }
5522 #line 5523 "src/parser_proc.c" /* glr.c:817 */
5523 break;
5524
5525 case 428:
5526 #line 1130 "src/parser_proc_grammar.y" /* glr.c:817 */
5527 {
5528 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5529 }
5530 #line 5531 "src/parser_proc.c" /* glr.c:817 */
5531 break;
5532
5533 case 429:
5534 #line 1136 "src/parser_proc_grammar.y" /* glr.c:817 */
5535 {
5536 (*(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)));
5537 }
5538 #line 5539 "src/parser_proc.c" /* glr.c:817 */
5539 break;
5540
5541 case 430:
5542 #line 1139 "src/parser_proc_grammar.y" /* glr.c:817 */
5543 {
5544 (*(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)));
5545 }
5546 #line 5547 "src/parser_proc.c" /* glr.c:817 */
5547 break;
5548
5549 case 431:
5550 #line 1145 "src/parser_proc_grammar.y" /* glr.c:817 */
5551 {
5552 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5553 }
5554 #line 5555 "src/parser_proc.c" /* glr.c:817 */
5555 break;
5556
5557 case 444:
5558 #line 1175 "src/parser_proc_grammar.y" /* glr.c:817 */
5559 {
5560 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5561 (*(struct psi_decl **)(&(*yyvalp)))->abi = psi_decl_abi_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
5562 }
5563 #line 5564 "src/parser_proc.c" /* glr.c:817 */
5564 break;
5565
5566 case 447:
5567 #line 1187 "src/parser_proc_grammar.y" /* glr.c:817 */
5568 {
5569 (*(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)));
5570 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5571 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5572 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5573 }
5574 }
5575 #line 5576 "src/parser_proc.c" /* glr.c:817 */
5576 break;
5577
5578 case 448:
5579 #line 1194 "src/parser_proc_grammar.y" /* glr.c:817 */
5580 {
5581 (*(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)));
5582 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
5583 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5584 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5585 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5586 }
5587 }
5588 #line 5589 "src/parser_proc.c" /* glr.c:817 */
5589 break;
5590
5591 case 449:
5592 #line 1205 "src/parser_proc_grammar.y" /* glr.c:817 */
5593 {
5594 (*(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)));
5595 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5596 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5597 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5598 }
5599 }
5600 #line 5601 "src/parser_proc.c" /* glr.c:817 */
5601 break;
5602
5603 case 450:
5604 #line 1212 "src/parser_proc_grammar.y" /* glr.c:817 */
5605 {
5606 (*(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)));
5607 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
5608 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5609 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5610 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5611 }
5612 }
5613 #line 5614 "src/parser_proc.c" /* glr.c:817 */
5614 break;
5615
5616 case 451:
5617 #line 1220 "src/parser_proc_grammar.y" /* glr.c:817 */
5618 {
5619 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval));
5620 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5621
5622 struct psi_token *type_token = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval))), 1, "rval");
5623 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));
5624 struct psi_decl *rval_decl = psi_decl_init(rval_func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5625
5626 rval_func->var->token = psi_token_copy(type_token);
5627 rval_func->token = psi_token_copy(type_token);
5628 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5629 rval_func->var->pointer_level += 1;
5630 rval_func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5631 }
5632
5633 struct psi_decl_type *type = psi_decl_type_init(PSI_T_FUNCTION, type_token->text);
5634 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));
5635
5636 type->real.func = rval_decl;
5637 func->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval)));
5638 func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval)));
5639
5640 (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init(func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
5641 }
5642 #line 5643 "src/parser_proc.c" /* glr.c:817 */
5643 break;
5644
5645 case 452:
5646 #line 1244 "src/parser_proc_grammar.y" /* glr.c:817 */
5647 {
5648 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-12)].yystate.yysemantics.yysval));
5649 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval));
5650 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5651
5652 struct psi_token *type_token = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval))), 1, "rval");
5653 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));
5654 struct psi_decl *rval_decl = psi_decl_init(rval_func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5655
5656 rval_func->var->token = psi_token_copy(type_token);
5657 rval_func->token = psi_token_copy(type_token);
5658 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5659 rval_func->var->pointer_level += 1;
5660 rval_func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5661 }
5662
5663 struct psi_decl_type *type = psi_decl_type_init(PSI_T_FUNCTION, type_token->text);
5664 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));
5665
5666 type->real.func = rval_decl;
5667 func->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval)));
5668 func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval)));
5669 type->token = type_token;
5670
5671 (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init(func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
5672 }
5673 #line 5674 "src/parser_proc.c" /* glr.c:817 */
5674 break;
5675
5676 case 453:
5677 #line 1273 "src/parser_proc_grammar.y" /* glr.c:817 */
5678 {
5679 (*(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)));
5680 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5681 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5682 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5683 }
5684 }
5685 #line 5686 "src/parser_proc.c" /* glr.c:817 */
5686 break;
5687
5688 case 454:
5689 #line 1280 "src/parser_proc_grammar.y" /* glr.c:817 */
5690 {
5691 (*(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)));
5692 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
5693 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5694 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5695 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5696 }
5697 }
5698 #line 5699 "src/parser_proc.c" /* glr.c:817 */
5699 break;
5700
5701 case 455:
5702 #line 1291 "src/parser_proc_grammar.y" /* glr.c:817 */
5703 {
5704 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5705 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5706 (*(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));
5707 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5708 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5709 }
5710 #line 5711 "src/parser_proc.c" /* glr.c:817 */
5711 break;
5712
5713 case 456:
5714 #line 1337 "src/parser_proc_grammar.y" /* glr.c:817 */
5715 {
5716 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5717 (*(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));
5718 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5719 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5720 }
5721 #line 5722 "src/parser_proc.c" /* glr.c:817 */
5722 break;
5723
5724 case 458:
5725 #line 1393 "src/parser_proc_grammar.y" /* glr.c:817 */
5726 {
5727 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5728 }
5729 #line 5730 "src/parser_proc.c" /* glr.c:817 */
5730 break;
5731
5732 case 459:
5733 #line 1396 "src/parser_proc_grammar.y" /* glr.c:817 */
5734 {
5735 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5736 }
5737 #line 5738 "src/parser_proc.c" /* glr.c:817 */
5738 break;
5739
5740 case 460:
5741 #line 1399 "src/parser_proc_grammar.y" /* glr.c:817 */
5742 {
5743 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5744 }
5745 #line 5746 "src/parser_proc.c" /* glr.c:817 */
5746 break;
5747
5748 case 461:
5749 #line 1405 "src/parser_proc_grammar.y" /* glr.c:817 */
5750 {
5751 (*(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)));
5752 }
5753 #line 5754 "src/parser_proc.c" /* glr.c:817 */
5754 break;
5755
5756 case 462:
5757 #line 1408 "src/parser_proc_grammar.y" /* glr.c:817 */
5758 {
5759 (*(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)));
5760 }
5761 #line 5762 "src/parser_proc.c" /* glr.c:817 */
5762 break;
5763
5764 case 463:
5765 #line 1414 "src/parser_proc_grammar.y" /* glr.c:817 */
5766 {
5767 char digest[17];
5768 struct psi_token *name;
5769
5770 psi_token_hash((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token, digest);
5771 name = psi_token_append("@", psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token), 2, "funct", digest);
5772
5773 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5774 psi_decl_type_init(PSI_T_FUNCTION, name->text),
5775 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
5776 );
5777 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = name;
5778 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
5779 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5780 }
5781 #line 5782 "src/parser_proc.c" /* glr.c:817 */
5782 break;
5783
5784 case 464:
5785 #line 1429 "src/parser_proc_grammar.y" /* glr.c:817 */
5786 {
5787 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5788 }
5789 #line 5790 "src/parser_proc.c" /* glr.c:817 */
5790 break;
5791
5792 case 465:
5793 #line 1432 "src/parser_proc_grammar.y" /* glr.c:817 */
5794 {
5795 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5796 (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)),
5797 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)))
5798 );
5799 }
5800 #line 5801 "src/parser_proc.c" /* glr.c:817 */
5801 break;
5802
5803 case 466:
5804 #line 1461 "src/parser_proc_grammar.y" /* glr.c:817 */
5805 {
5806 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5807 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
5808 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
5809 );
5810 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
5811 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5812 }
5813 #line 5814 "src/parser_proc.c" /* glr.c:817 */
5814 break;
5815
5816 case 467:
5817 #line 1469 "src/parser_proc_grammar.y" /* glr.c:817 */
5818 {
5819 (*(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)));
5820 }
5821 #line 5822 "src/parser_proc.c" /* glr.c:817 */
5822 break;
5823
5824 case 468:
5825 #line 1497 "src/parser_proc_grammar.y" /* glr.c:817 */
5826 {
5827 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5828 (*(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)));
5829 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5830 }
5831 #line 5832 "src/parser_proc.c" /* glr.c:817 */
5832 break;
5833
5834 case 469:
5835 #line 1502 "src/parser_proc_grammar.y" /* glr.c:817 */
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 (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:817 */
5842 break;
5843
5844 case 470:
5845 #line 1510 "src/parser_proc_grammar.y" /* glr.c:817 */
5846 {
5847 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5848 (*(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)));
5849 (*(struct psi_decl_union **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
5850 (*(struct psi_decl_union **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
5851 (*(struct psi_decl_union **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5852 }
5853 #line 5854 "src/parser_proc.c" /* glr.c:817 */
5854 break;
5855
5856 case 471:
5857 #line 1520 "src/parser_proc_grammar.y" /* glr.c:817 */
5858 {
5859 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5860 (*(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)));
5861 (*(struct psi_decl_struct **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
5862 (*(struct psi_decl_struct **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
5863 (*(struct psi_decl_struct **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5864 }
5865 #line 5866 "src/parser_proc.c" /* glr.c:817 */
5866 break;
5867
5868 case 472:
5869 #line 1530 "src/parser_proc_grammar.y" /* glr.c:817 */
5870 {
5871 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5872 }
5873 #line 5874 "src/parser_proc.c" /* glr.c:817 */
5874 break;
5875
5876 case 474:
5877 #line 1537 "src/parser_proc_grammar.y" /* glr.c:817 */
5878 {
5879 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5880 }
5881 #line 5882 "src/parser_proc.c" /* glr.c:817 */
5882 break;
5883
5884 case 475:
5885 #line 1543 "src/parser_proc_grammar.y" /* glr.c:817 */
5886 {
5887 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5888 (*(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)));
5889 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5890 size_t i = 0;
5891 struct psi_decl_arg *arg;
5892
5893 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
5894 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
5895 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
5896 }
5897 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5898 }
5899 }
5900 #line 5901 "src/parser_proc.c" /* glr.c:817 */
5901 break;
5902
5903 case 476:
5904 #line 1557 "src/parser_proc_grammar.y" /* glr.c:817 */
5905 {
5906 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5907 (*(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)));
5908 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5909 size_t i = 0;
5910 struct psi_decl_arg *arg;
5911
5912 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
5913 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
5914 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
5915 }
5916 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5917 }
5918 }
5919 #line 5920 "src/parser_proc.c" /* glr.c:817 */
5920 break;
5921
5922 case 477:
5923 #line 1574 "src/parser_proc_grammar.y" /* glr.c:817 */
5924 {
5925 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5926 }
5927 #line 5928 "src/parser_proc.c" /* glr.c:817 */
5928 break;
5929
5930 case 478:
5931 #line 1577 "src/parser_proc_grammar.y" /* glr.c:817 */
5932 {
5933 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5934 }
5935 #line 5936 "src/parser_proc.c" /* glr.c:817 */
5936 break;
5937
5938 case 479:
5939 #line 1583 "src/parser_proc_grammar.y" /* glr.c:817 */
5940 {
5941 {
5942 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5943 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5944 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &arg);
5945 }
5946 }
5947 #line 5948 "src/parser_proc.c" /* glr.c:817 */
5948 break;
5949
5950 case 480:
5951 #line 1590 "src/parser_proc_grammar.y" /* glr.c:817 */
5952 {
5953 {
5954 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5955 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5956 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), &arg);
5957 }
5958 }
5959 #line 5960 "src/parser_proc.c" /* glr.c:817 */
5960 break;
5961
5962 case 481:
5963 #line 1597 "src/parser_proc_grammar.y" /* glr.c:817 */
5964 {
5965 {
5966 struct psi_decl_var *var = psi_decl_var_init(NULL, 0, 0);
5967 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, var);
5968 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5969 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &arg);
5970 }
5971 }
5972 #line 5973 "src/parser_proc.c" /* glr.c:817 */
5973 break;
5974
5975 case 482:
5976 #line 1605 "src/parser_proc_grammar.y" /* glr.c:817 */
5977 {
5978 {
5979 struct psi_decl_var *var = psi_decl_var_init(NULL, 0, 0);
5980 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, var);
5981 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5982 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &arg);
5983 }
5984 }
5985 #line 5986 "src/parser_proc.c" /* glr.c:817 */
5986 break;
5987
5988 case 483:
5989 #line 1616 "src/parser_proc_grammar.y" /* glr.c:817 */
5990 {
5991 (*(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)));
5992 (*(struct psi_decl_enum **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval));
5993 }
5994 #line 5995 "src/parser_proc.c" /* glr.c:817 */
5995 break;
5996
5997 case 484:
5998 #line 1623 "src/parser_proc_grammar.y" /* glr.c:817 */
5999 {
6000 (*(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)));
6001 }
6002 #line 6003 "src/parser_proc.c" /* glr.c:817 */
6003 break;
6004
6005 case 485:
6006 #line 1626 "src/parser_proc_grammar.y" /* glr.c:817 */
6007 {
6008 (*(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)));
6009 }
6010 #line 6011 "src/parser_proc.c" /* glr.c:817 */
6011 break;
6012
6013 case 486:
6014 #line 1632 "src/parser_proc_grammar.y" /* glr.c:817 */
6015 {
6016 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
6017 (*(struct psi_decl_enum_item **)(&(*yyvalp))) = psi_decl_enum_item_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, NULL);
6018 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6019 }
6020 #line 6021 "src/parser_proc.c" /* glr.c:817 */
6021 break;
6022
6023 case 487:
6024 #line 1637 "src/parser_proc_grammar.y" /* glr.c:817 */
6025 {
6026 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].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 (-2)].yystate.yysemantics.yysval))->text, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6028 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6029 }
6030 #line 6031 "src/parser_proc.c" /* glr.c:817 */
6031 break;
6032
6033 case 488:
6034 #line 1645 "src/parser_proc_grammar.y" /* glr.c:817 */
6035 {
6036 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6037 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
6038 }
6039 #line 6040 "src/parser_proc.c" /* glr.c:817 */
6040 break;
6041
6042 case 489:
6043 #line 1649 "src/parser_proc_grammar.y" /* glr.c:817 */
6044 {
6045 (*(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)));
6046 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->token);
6047 }
6048 #line 6049 "src/parser_proc.c" /* glr.c:817 */
6049 break;
6050
6051 case 490:
6052 #line 1653 "src/parser_proc_grammar.y" /* glr.c:817 */
6053 {
6054 (*(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)));
6055 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6056 }
6057 #line 6058 "src/parser_proc.c" /* glr.c:817 */
6058 break;
6059
6060 case 491:
6061 #line 1657 "src/parser_proc_grammar.y" /* glr.c:817 */
6062 {
6063 (*(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)));
6064 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6065 }
6066 #line 6067 "src/parser_proc.c" /* glr.c:817 */
6067 break;
6068
6069 case 492:
6070 #line 1661 "src/parser_proc_grammar.y" /* glr.c:817 */
6071 {
6072 (*(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)));
6073 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6074 }
6075 #line 6076 "src/parser_proc.c" /* glr.c:817 */
6076 break;
6077
6078 case 493:
6079 #line 1665 "src/parser_proc_grammar.y" /* glr.c:817 */
6080 {
6081 (*(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)));
6082 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
6083 }
6084 #line 6085 "src/parser_proc.c" /* glr.c:817 */
6085 break;
6086
6087 case 494:
6088 #line 1672 "src/parser_proc_grammar.y" /* glr.c:817 */
6089 {
6090 (*(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);
6091 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6092 }
6093 #line 6094 "src/parser_proc.c" /* glr.c:817 */
6094 break;
6095
6096 case 495:
6097 #line 1676 "src/parser_proc_grammar.y" /* glr.c:817 */
6098 {
6099 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0);
6100 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6101 }
6102 #line 6103 "src/parser_proc.c" /* glr.c:817 */
6103 break;
6104
6105 case 496:
6106 #line 1680 "src/parser_proc_grammar.y" /* glr.c:817 */
6107 {
6108 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0);
6109 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6110 }
6111 #line 6112 "src/parser_proc.c" /* glr.c:817 */
6112 break;
6113
6114 case 497:
6115 #line 1684 "src/parser_proc_grammar.y" /* glr.c:817 */
6116 {
6117 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0);
6118 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6119 }
6120 #line 6121 "src/parser_proc.c" /* glr.c:817 */
6121 break;
6122
6123 case 498:
6124 #line 1688 "src/parser_proc_grammar.y" /* glr.c:817 */
6125 {
6126 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_NAME, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0);
6127 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
6128 }
6129 #line 6130 "src/parser_proc.c" /* glr.c:817 */
6130 break;
6131
6132 case 499:
6133 #line 1692 "src/parser_proc_grammar.y" /* glr.c:817 */
6134 {
6135 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6136 }
6137 #line 6138 "src/parser_proc.c" /* glr.c:817 */
6138 break;
6139
6140 case 500:
6141 #line 1698 "src/parser_proc_grammar.y" /* glr.c:817 */
6142 {
6143 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
6144 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
6145 }
6146 #line 6147 "src/parser_proc.c" /* glr.c:817 */
6147 break;
6148
6149 case 501:
6150 #line 1702 "src/parser_proc_grammar.y" /* glr.c:817 */
6151 {
6152 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6153 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6154 }
6155 #line 6156 "src/parser_proc.c" /* glr.c:817 */
6156 break;
6157
6158 case 502:
6159 #line 1709 "src/parser_proc_grammar.y" /* glr.c:817 */
6160 {
6161 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6162 }
6163 #line 6164 "src/parser_proc.c" /* glr.c:817 */
6164 break;
6165
6166 case 503:
6167 #line 1712 "src/parser_proc_grammar.y" /* glr.c:817 */
6168 {
6169 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
6170 int8_t sizeof_void_p = sizeof(void *);
6171 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0);
6172 psi_decl_type_free(&(*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6173 } else {
6174 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_SIZEOF, (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), 0);
6175 }
6176 }
6177 #line 6178 "src/parser_proc.c" /* glr.c:817 */
6178 break;
6179
6180 case 504:
6181 #line 1724 "src/parser_proc_grammar.y" /* glr.c:817 */
6182 {
6183 int8_t sizeof_void_p = sizeof(void *);
6184 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0);
6185 }
6186 #line 6187 "src/parser_proc.c" /* glr.c:817 */
6187 break;
6188
6189 case 505:
6190 #line 1728 "src/parser_proc_grammar.y" /* glr.c:817 */
6191 {
6192 int8_t sizeof_a = sizeof('a');
6193 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_a, 0);
6194 }
6195 #line 6196 "src/parser_proc.c" /* glr.c:817 */
6196 break;
6197
6198 case 506:
6199 #line 1732 "src/parser_proc_grammar.y" /* glr.c:817 */
6200 {
6201 uint64_t len = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text->len + 1;
6202 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_UINT64, &len, 0);
6203 }
6204 #line 6205 "src/parser_proc.c" /* glr.c:817 */
6205 break;
6206
6207 case 507:
6208 #line 1739 "src/parser_proc_grammar.y" /* glr.c:817 */
6209 {
6210 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
6211 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6212 } else {
6213 char digest[17];
6214
6215 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
6216 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
6217 }
6218 }
6219 #line 6220 "src/parser_proc.c" /* glr.c:817 */
6220 break;
6221
6222 case 508:
6223 #line 1752 "src/parser_proc_grammar.y" /* glr.c:817 */
6224 {
6225 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
6226 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6227 } else {
6228 char digest[17];
6229
6230 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
6231 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
6232 }
6233 }
6234 #line 6235 "src/parser_proc.c" /* glr.c:817 */
6235 break;
6236
6237 case 509:
6238 #line 1765 "src/parser_proc_grammar.y" /* glr.c:817 */
6239 {
6240 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
6241 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6242 } else {
6243 char digest[17];
6244
6245 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
6246 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
6247 }
6248 }
6249 #line 6250 "src/parser_proc.c" /* glr.c:817 */
6250 break;
6251
6252 case 510:
6253 #line 1778 "src/parser_proc_grammar.y" /* glr.c:817 */
6254 {
6255 (*(struct psi_token **)(&(*yyvalp))) = NULL;
6256 }
6257 #line 6258 "src/parser_proc.c" /* glr.c:817 */
6258 break;
6259
6260 case 511:
6261 #line 1781 "src/parser_proc_grammar.y" /* glr.c:817 */
6262 {
6263 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6264 (*(struct psi_token **)(&(*yyvalp)))->type = PSI_T_NAME;
6265 }
6266 #line 6267 "src/parser_proc.c" /* glr.c:817 */
6267 break;
6268
6269 case 514:
6270 #line 1793 "src/parser_proc_grammar.y" /* glr.c:817 */
6271 {
6272 (*(struct psi_layout **)(&(*yyvalp))) = NULL;
6273 }
6274 #line 6275 "src/parser_proc.c" /* glr.c:817 */
6275 break;
6276
6277 case 515:
6278 #line 1796 "src/parser_proc_grammar.y" /* glr.c:817 */
6279 {
6280 (*(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));
6281 }
6282 #line 6283 "src/parser_proc.c" /* glr.c:817 */
6283 break;
6284
6285 case 516:
6286 #line 1799 "src/parser_proc_grammar.y" /* glr.c:817 */
6287 {
6288 (*(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);
6289 }
6290 #line 6291 "src/parser_proc.c" /* glr.c:817 */
6291 break;
6292
6293 case 517:
6294 #line 1802 "src/parser_proc_grammar.y" /* glr.c:817 */
6295 {
6296 (*(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));
6297 }
6298 #line 6299 "src/parser_proc.c" /* glr.c:817 */
6299 break;
6300
6301 case 518:
6302 #line 1808 "src/parser_proc_grammar.y" /* glr.c:817 */
6303 {
6304 (*(struct psi_layout*)(&(*yyvalp))).pos = 0;
6305 (*(struct psi_layout*)(&(*yyvalp))).len = 0;
6306 }
6307 #line 6308 "src/parser_proc.c" /* glr.c:817 */
6308 break;
6309
6310 case 519:
6311 #line 1812 "src/parser_proc_grammar.y" /* glr.c:817 */
6312 {
6313 (*(struct psi_layout*)(&(*yyvalp))).pos = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text->val);
6314 (*(struct psi_layout*)(&(*yyvalp))).len = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text->val);
6315 }
6316 #line 6317 "src/parser_proc.c" /* glr.c:817 */
6317 break;
6318
6319 case 520:
6320 #line 1819 "src/parser_proc_grammar.y" /* glr.c:817 */
6321 {
6322 (*(size_t*)(&(*yyvalp))) = 0;
6323 }
6324 #line 6325 "src/parser_proc.c" /* glr.c:817 */
6325 break;
6326
6327 case 521:
6328 #line 1822 "src/parser_proc_grammar.y" /* glr.c:817 */
6329 {
6330 (*(size_t*)(&(*yyvalp))) = 0;
6331 }
6332 #line 6333 "src/parser_proc.c" /* glr.c:817 */
6333 break;
6334
6335 case 522:
6336 #line 1825 "src/parser_proc_grammar.y" /* glr.c:817 */
6337 {
6338 struct psi_validate_scope scope = {0};
6339 psi_validate_scope_ctor(&scope);
6340 scope.cpp = P->preproc;
6341 if (psi_num_exp_validate(PSI_DATA(P), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), &scope)) {
6342 (*(size_t*)(&(*yyvalp))) = psi_num_exp_get_long((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), NULL, P->preproc);
6343 } else {
6344 (*(size_t*)(&(*yyvalp))) = 0;
6345 }
6346 psi_num_exp_free(&(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6347 psi_validate_scope_dtor(&scope);
6348 }
6349 #line 6350 "src/parser_proc.c" /* glr.c:817 */
6350 break;
6351
6352 case 527:
6353 #line 1847 "src/parser_proc_grammar.y" /* glr.c:817 */
6354 {
6355 (*(size_t*)(&(*yyvalp))) = 0;
6356 }
6357 #line 6358 "src/parser_proc.c" /* glr.c:817 */
6358 break;
6359
6360 case 528:
6361 #line 1850 "src/parser_proc_grammar.y" /* glr.c:817 */
6362 {
6363 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6364 }
6365 #line 6366 "src/parser_proc.c" /* glr.c:817 */
6366 break;
6367
6368 case 530:
6369 #line 1857 "src/parser_proc_grammar.y" /* glr.c:817 */
6370 {
6371 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
6372 }
6373 #line 6374 "src/parser_proc.c" /* glr.c:817 */
6374 break;
6375
6376 case 531:
6377 #line 1863 "src/parser_proc_grammar.y" /* glr.c:817 */
6378 {
6379 (*(size_t*)(&(*yyvalp))) = 1;
6380 }
6381 #line 6382 "src/parser_proc.c" /* glr.c:817 */
6382 break;
6383
6384 case 532:
6385 #line 1866 "src/parser_proc_grammar.y" /* glr.c:817 */
6386 {
6387 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)) + 1;
6388 }
6389 #line 6390 "src/parser_proc.c" /* glr.c:817 */
6390 break;
6391
6392 case 537:
6393 #line 1888 "src/parser_proc_grammar.y" /* glr.c:817 */
6394 {
6395 (*(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)));
6396 }
6397 #line 6398 "src/parser_proc.c" /* glr.c:817 */
6398 break;
6399
6400 case 538:
6401 #line 1891 "src/parser_proc_grammar.y" /* glr.c:817 */
6402 {
6403 (*(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)));
6404 (*(struct psi_impl_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->static_memory = 1;
6405 }
6406 #line 6407 "src/parser_proc.c" /* glr.c:817 */
6407 break;
6408
6409 case 539:
6410 #line 1898 "src/parser_proc_grammar.y" /* glr.c:817 */
6411 {
6412 (*(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)));
6413 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
6414 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval));
6415 }
6416 #line 6417 "src/parser_proc.c" /* glr.c:817 */
6417 break;
6418
6419 case 540:
6420 #line 1903 "src/parser_proc_grammar.y" /* glr.c:817 */
6421 {
6422 (*(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)));
6423 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6424 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval));
6425 }
6426 #line 6427 "src/parser_proc.c" /* glr.c:817 */
6427 break;
6428
6429 case 541:
6430 #line 1908 "src/parser_proc_grammar.y" /* glr.c:817 */
6431 {
6432 (*(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)));
6433 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval)));
6434 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-11)].yystate.yysemantics.yysval));
6435 (*(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);
6436 (*(struct psi_impl_func **)(&(*yyvalp)))->vararg->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
6437 }
6438 #line 6439 "src/parser_proc.c" /* glr.c:817 */
6439 break;
6440
6441 case 542:
6442 #line 1918 "src/parser_proc_grammar.y" /* glr.c:817 */
6443 {
6444 (*(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)));
6445 }
6446 #line 6447 "src/parser_proc.c" /* glr.c:817 */
6447 break;
6448
6449 case 543:
6450 #line 1921 "src/parser_proc_grammar.y" /* glr.c:817 */
6451 {
6452 (*(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)));
6453 }
6454 #line 6455 "src/parser_proc.c" /* glr.c:817 */
6455 break;
6456
6457 case 544:
6458 #line 1927 "src/parser_proc_grammar.y" /* glr.c:817 */
6459 {
6460 (*(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);
6461 }
6462 #line 6463 "src/parser_proc.c" /* glr.c:817 */
6463 break;
6464
6465 case 545:
6466 #line 1930 "src/parser_proc_grammar.y" /* glr.c:817 */
6467 {
6468 (*(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)));
6469 }
6470 #line 6471 "src/parser_proc.c" /* glr.c:817 */
6471 break;
6472
6473 case 546:
6474 #line 1936 "src/parser_proc_grammar.y" /* glr.c:817 */
6475 {
6476 (*(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)));
6477 (*(struct psi_impl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6478 }
6479 #line 6480 "src/parser_proc.c" /* glr.c:817 */
6480 break;
6481
6482 case 547:
6483 #line 1943 "src/parser_proc_grammar.y" /* glr.c:817 */
6484 {
6485 (*(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);
6486 (*(struct psi_impl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6487 }
6488 #line 6489 "src/parser_proc.c" /* glr.c:817 */
6489 break;
6490
6491 case 548:
6492 #line 1950 "src/parser_proc_grammar.y" /* glr.c:817 */
6493 {
6494 (*(struct psi_impl_type **)(&(*yyvalp))) = psi_impl_type_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text);
6495 (*(struct psi_impl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6496 }
6497 #line 6498 "src/parser_proc.c" /* glr.c:817 */
6498 break;
6499
6500 case 560:
6501 #line 1977 "src/parser_proc_grammar.y" /* glr.c:817 */
6502 {
6503 (*(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)));
6504 }
6505 #line 6506 "src/parser_proc.c" /* glr.c:817 */
6506 break;
6507
6508 case 561:
6509 #line 1980 "src/parser_proc_grammar.y" /* glr.c:817 */
6510 {
6511 (*(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)));
6512 }
6513 #line 6514 "src/parser_proc.c" /* glr.c:817 */
6514 break;
6515
6516 case 562:
6517 #line 1986 "src/parser_proc_grammar.y" /* glr.c:817 */
6518 {
6519 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_return_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6520 }
6521 #line 6522 "src/parser_proc.c" /* glr.c:817 */
6522 break;
6523
6524 case 563:
6525 #line 1989 "src/parser_proc_grammar.y" /* glr.c:817 */
6526 {
6527 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_let_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6528 }
6529 #line 6530 "src/parser_proc.c" /* glr.c:817 */
6530 break;
6531
6532 case 564:
6533 #line 1992 "src/parser_proc_grammar.y" /* glr.c:817 */
6534 {
6535 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_set_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6536 }
6537 #line 6538 "src/parser_proc.c" /* glr.c:817 */
6538 break;
6539
6540 case 565:
6541 #line 1995 "src/parser_proc_grammar.y" /* glr.c:817 */
6542 {
6543 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_assert_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6544 }
6545 #line 6546 "src/parser_proc.c" /* glr.c:817 */
6546 break;
6547
6548 case 566:
6549 #line 1998 "src/parser_proc_grammar.y" /* glr.c:817 */
6550 {
6551 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_free_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6552 }
6553 #line 6554 "src/parser_proc.c" /* glr.c:817 */
6554 break;
6555
6556 case 567:
6557 #line 2004 "src/parser_proc_grammar.y" /* glr.c:817 */
6558 {
6559 (*(struct psi_let_stmt **)(&(*yyvalp))) = psi_let_stmt_init((*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6560 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6561 }
6562 #line 6563 "src/parser_proc.c" /* glr.c:817 */
6563 break;
6564
6565 case 568:
6566 #line 2008 "src/parser_proc_grammar.y" /* glr.c:817 */
6567 {
6568 (*(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))));
6569 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6570 (*(struct psi_let_stmt **)(&(*yyvalp)))->exp->is_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
6571 }
6572 #line 6573 "src/parser_proc.c" /* glr.c:817 */
6573 break;
6574
6575 case 570:
6576 #line 2017 "src/parser_proc_grammar.y" /* glr.c:817 */
6577 {
6578 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6579 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = true;
6580 }
6581 #line 6582 "src/parser_proc.c" /* glr.c:817 */
6582 break;
6583
6584 case 571:
6585 #line 2021 "src/parser_proc_grammar.y" /* glr.c:817 */
6586 {
6587 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6588 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = false;
6589 }
6590 #line 6591 "src/parser_proc.c" /* glr.c:817 */
6591 break;
6592
6593 case 572:
6594 #line 2028 "src/parser_proc_grammar.y" /* glr.c:817 */
6595 {
6596 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_NULL, NULL);
6597 }
6598 #line 6599 "src/parser_proc.c" /* glr.c:817 */
6599 break;
6600
6601 case 573:
6602 #line 2031 "src/parser_proc_grammar.y" /* glr.c:817 */
6603 {
6604 (*(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)));
6605 }
6606 #line 6607 "src/parser_proc.c" /* glr.c:817 */
6607 break;
6608
6609 case 574:
6610 #line 2034 "src/parser_proc_grammar.y" /* glr.c:817 */
6611 {
6612 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6613 }
6614 #line 6615 "src/parser_proc.c" /* glr.c:817 */
6615 break;
6616
6617 case 575:
6618 #line 2037 "src/parser_proc_grammar.y" /* glr.c:817 */
6619 {
6620 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6621 (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->static_memory = 1;
6622 }
6623 #line 6624 "src/parser_proc.c" /* glr.c:817 */
6624 break;
6625
6626 case 576:
6627 #line 2041 "src/parser_proc_grammar.y" /* glr.c:817 */
6628 {
6629 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLBACK, (*(struct psi_let_callback **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6630 }
6631 #line 6632 "src/parser_proc.c" /* glr.c:817 */
6632 break;
6633
6634 case 577:
6635 #line 2044 "src/parser_proc_grammar.y" /* glr.c:817 */
6636 {
6637 (*(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)));
6638 }
6639 #line 6640 "src/parser_proc.c" /* glr.c:817 */
6640 break;
6641
6642 case 578:
6643 #line 2050 "src/parser_proc_grammar.y" /* glr.c:817 */
6644 {
6645 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6646 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
6647 }
6648 #line 6649 "src/parser_proc.c" /* glr.c:817 */
6649 break;
6650
6651 case 579:
6652 #line 2054 "src/parser_proc_grammar.y" /* glr.c:817 */
6653 {
6654 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6655 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = 1;
6656 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
6657 }
6658 #line 6659 "src/parser_proc.c" /* glr.c:817 */
6659 break;
6660
6661 case 580:
6662 #line 2062 "src/parser_proc_grammar.y" /* glr.c:817 */
6663 {
6664 (*(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)));
6665 (*(struct psi_let_calloc **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6666 }
6667 #line 6668 "src/parser_proc.c" /* glr.c:817 */
6668 break;
6669
6670 case 581:
6671 #line 2069 "src/parser_proc_grammar.y" /* glr.c:817 */
6672 {
6673 (*(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);
6674 (*(struct psi_let_callback **)(&(*yyvalp)))->func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
6675 (*(struct psi_let_callback **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval)));
6676 }
6677 #line 6678 "src/parser_proc.c" /* glr.c:817 */
6678 break;
6679
6680 case 582:
6681 #line 2074 "src/parser_proc_grammar.y" /* glr.c:817 */
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)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval)));
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 (-11)].yystate.yysemantics.yysval)));
6686 }
6687 #line 6688 "src/parser_proc.c" /* glr.c:817 */
6688 break;
6689
6690 case 583:
6691 #line 2082 "src/parser_proc_grammar.y" /* glr.c:817 */
6692 {
6693 (*(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)));
6694 (*(struct psi_let_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
6695 (*(struct psi_let_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
6696 }
6697 #line 6698 "src/parser_proc.c" /* glr.c:817 */
6698 break;
6699
6700 case 594:
6701 #line 2103 "src/parser_proc_grammar.y" /* glr.c:817 */
6702 {
6703 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6704 }
6705 #line 6706 "src/parser_proc.c" /* glr.c:817 */
6706 break;
6707
6708 case 595:
6709 #line 2106 "src/parser_proc_grammar.y" /* glr.c:817 */
6710 {
6711 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6712 }
6713 #line 6714 "src/parser_proc.c" /* glr.c:817 */
6714 break;
6715
6716 case 596:
6717 #line 2112 "src/parser_proc_grammar.y" /* glr.c:817 */
6718 {
6719 (*(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)));
6720 }
6721 #line 6722 "src/parser_proc.c" /* glr.c:817 */
6722 break;
6723
6724 case 597:
6725 #line 2115 "src/parser_proc_grammar.y" /* glr.c:817 */
6726 {
6727 (*(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)));
6728 }
6729 #line 6730 "src/parser_proc.c" /* glr.c:817 */
6730 break;
6731
6732 case 600:
6733 #line 2126 "src/parser_proc_grammar.y" /* glr.c:817 */
6734 {
6735 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6736 }
6737 #line 6738 "src/parser_proc.c" /* glr.c:817 */
6738 break;
6739
6740 case 601:
6741 #line 2129 "src/parser_proc_grammar.y" /* glr.c:817 */
6742 {
6743 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6744 }
6745 #line 6746 "src/parser_proc.c" /* glr.c:817 */
6746 break;
6747
6748 case 602:
6749 #line 2135 "src/parser_proc_grammar.y" /* glr.c:817 */
6750 {
6751 (*(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)));
6752 }
6753 #line 6754 "src/parser_proc.c" /* glr.c:817 */
6754 break;
6755
6756 case 603:
6757 #line 2138 "src/parser_proc_grammar.y" /* glr.c:817 */
6758 {
6759 (*(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)));
6760 }
6761 #line 6762 "src/parser_proc.c" /* glr.c:817 */
6762 break;
6763
6764 case 604:
6765 #line 2144 "src/parser_proc_grammar.y" /* glr.c:817 */
6766 {
6767 (*(struct psi_return_stmt **)(&(*yyvalp))) = psi_return_stmt_init((*(struct psi_return_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6768 (*(struct psi_return_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6769 }
6770 #line 6771 "src/parser_proc.c" /* glr.c:817 */
6771 break;
6772
6773 case 605:
6774 #line 2151 "src/parser_proc_grammar.y" /* glr.c:817 */
6775 {
6776 (*(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))));
6777 (*(struct psi_return_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->token);
6778 }
6779 #line 6780 "src/parser_proc.c" /* glr.c:817 */
6780 break;
6781
6782 case 606:
6783 #line 2155 "src/parser_proc_grammar.y" /* glr.c:817 */
6784 {
6785 (*(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))));
6786 (*(struct psi_return_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
6787 }
6788 #line 6789 "src/parser_proc.c" /* glr.c:817 */
6789 break;
6790
6791 case 607:
6792 #line 2162 "src/parser_proc_grammar.y" /* glr.c:817 */
6793 {
6794 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6795 }
6796 #line 6797 "src/parser_proc.c" /* glr.c:817 */
6797 break;
6798
6799 case 608:
6800 #line 2165 "src/parser_proc_grammar.y" /* glr.c:817 */
6801 {
6802 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6803 }
6804 #line 6805 "src/parser_proc.c" /* glr.c:817 */
6805 break;
6806
6807 case 609:
6808 #line 2168 "src/parser_proc_grammar.y" /* glr.c:817 */
6809 {
6810 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6811 }
6812 #line 6813 "src/parser_proc.c" /* glr.c:817 */
6813 break;
6814
6815 case 610:
6816 #line 2174 "src/parser_proc_grammar.y" /* glr.c:817 */
6817 {
6818 (*(struct psi_set_stmt **)(&(*yyvalp))) = psi_set_stmt_init((*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6819 (*(struct psi_set_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6820 }
6821 #line 6822 "src/parser_proc.c" /* glr.c:817 */
6822 break;
6823
6824 case 611:
6825 #line 2181 "src/parser_proc_grammar.y" /* glr.c:817 */
6826 {
6827 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_FUNC, (*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6828 }
6829 #line 6830 "src/parser_proc.c" /* glr.c:817 */
6830 break;
6831
6832 case 612:
6833 #line 2184 "src/parser_proc_grammar.y" /* glr.c:817 */
6834 {
6835 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_NUMEXP, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6836 }
6837 #line 6838 "src/parser_proc.c" /* glr.c:817 */
6838 break;
6839
6840 case 613:
6841 #line 2187 "src/parser_proc_grammar.y" /* glr.c:817 */
6842 {
6843 (*(struct psi_set_exp **)(&(*yyvalp))) = (*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6844 (*(struct psi_set_exp **)(&(*yyvalp)))->var = (*(struct psi_impl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
6845 }
6846 #line 6847 "src/parser_proc.c" /* glr.c:817 */
6847 break;
6848
6849 case 614:
6850 #line 2194 "src/parser_proc_grammar.y" /* glr.c:817 */
6851 {
6852 (*(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)));
6853 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
6854 (*(struct psi_set_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
6855 }
6856 #line 6857 "src/parser_proc.c" /* glr.c:817 */
6857 break;
6858
6859 case 615:
6860 #line 2199 "src/parser_proc_grammar.y" /* glr.c:817 */
6861 {
6862 (*(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)));
6863 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6864 (*(struct psi_set_func **)(&(*yyvalp)))->recursive = 1;
6865 }
6866 #line 6867 "src/parser_proc.c" /* glr.c:817 */
6867 break;
6868
6869 case 624:
6870 #line 2218 "src/parser_proc_grammar.y" /* glr.c:817 */
6871 {
6872 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6873 }
6874 #line 6875 "src/parser_proc.c" /* glr.c:817 */
6875 break;
6876
6877 case 625:
6878 #line 2221 "src/parser_proc_grammar.y" /* glr.c:817 */
6879 {
6880 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6881 }
6882 #line 6883 "src/parser_proc.c" /* glr.c:817 */
6883 break;
6884
6885 case 626:
6886 #line 2227 "src/parser_proc_grammar.y" /* glr.c:817 */
6887 {
6888 (*(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)));
6889 }
6890 #line 6891 "src/parser_proc.c" /* glr.c:817 */
6891 break;
6892
6893 case 627:
6894 #line 2230 "src/parser_proc_grammar.y" /* glr.c:817 */
6895 {
6896 (*(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)));
6897 }
6898 #line 6899 "src/parser_proc.c" /* glr.c:817 */
6899 break;
6900
6901 case 628:
6902 #line 2236 "src/parser_proc_grammar.y" /* glr.c:817 */
6903 {
6904 (*(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)));
6905 (*(struct psi_assert_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6906 }
6907 #line 6908 "src/parser_proc.c" /* glr.c:817 */
6908 break;
6909
6910 case 631:
6911 #line 2248 "src/parser_proc_grammar.y" /* glr.c:817 */
6912 {
6913 (*(struct psi_free_stmt **)(&(*yyvalp))) = psi_free_stmt_init((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6914 (*(struct psi_free_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6915 }
6916 #line 6917 "src/parser_proc.c" /* glr.c:817 */
6917 break;
6918
6919 case 632:
6920 #line 2255 "src/parser_proc_grammar.y" /* glr.c:817 */
6921 {
6922 (*(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)));
6923 }
6924 #line 6925 "src/parser_proc.c" /* glr.c:817 */
6925 break;
6926
6927 case 633:
6928 #line 2258 "src/parser_proc_grammar.y" /* glr.c:817 */
6929 {
6930 (*(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)));
6931 }
6932 #line 6933 "src/parser_proc.c" /* glr.c:817 */
6933 break;
6934
6935 case 634:
6936 #line 2264 "src/parser_proc_grammar.y" /* glr.c:817 */
6937 {
6938 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
6939 (*(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)));
6940 (*(struct psi_free_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
6941 }
6942 #line 6943 "src/parser_proc.c" /* glr.c:817 */
6943 break;
6944
6945 case 635:
6946 #line 2272 "src/parser_proc_grammar.y" /* glr.c:817 */
6947 {
6948 (*(bool*)(&(*yyvalp))) = false;
6949 }
6950 #line 6951 "src/parser_proc.c" /* glr.c:817 */
6951 break;
6952
6953 case 636:
6954 #line 2275 "src/parser_proc_grammar.y" /* glr.c:817 */
6955 {
6956 (*(bool*)(&(*yyvalp))) = true;
6957 }
6958 #line 6959 "src/parser_proc.c" /* glr.c:817 */
6959 break;
6960
6961
6962 #line 6963 "src/parser_proc.c" /* glr.c:817 */
6963 default: break;
6964 }
6965
6966 return yyok;
6967 # undef yyerrok
6968 # undef YYABORT
6969 # undef YYACCEPT
6970 # undef YYERROR
6971 # undef YYBACKUP
6972 # undef yyclearin
6973 # undef YYRECOVERING
6974 }
6975
6976
6977 static void
6978 yyuserMerge (int yyn, YYSTYPE* yy0, YYSTYPE* yy1)
6979 {
6980 YYUSE (yy0);
6981 YYUSE (yy1);
6982
6983 switch (yyn)
6984 {
6985
6986 default: break;
6987 }
6988 }
6989
6990 /* Bison grammar-table manipulation. */
6991
6992 /*-----------------------------------------------.
6993 | Release the memory associated to this symbol. |
6994 `-----------------------------------------------*/
6995
6996 static void
6997 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6998 {
6999 YYUSE (yyvaluep);
7000 YYUSE (P);
7001 YYUSE (tokens);
7002 YYUSE (index);
7003 if (!yymsg)
7004 yymsg = "Deleting";
7005 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
7006
7007 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
7008 switch (yytype)
7009 {
7010 case 141: /* binary_op_token */
7011 #line 290 "src/parser_proc_grammar.y" /* glr.c:847 */
7012 {}
7013 #line 7014 "src/parser_proc.c" /* glr.c:847 */
7014 break;
7015
7016 case 142: /* unary_op_token */
7017 #line 290 "src/parser_proc_grammar.y" /* glr.c:847 */
7018 {}
7019 #line 7020 "src/parser_proc.c" /* glr.c:847 */
7020 break;
7021
7022 case 143: /* name_token */
7023 #line 290 "src/parser_proc_grammar.y" /* glr.c:847 */
7024 {}
7025 #line 7026 "src/parser_proc.c" /* glr.c:847 */
7026 break;
7027
7028 case 144: /* any_noeol_token */
7029 #line 290 "src/parser_proc_grammar.y" /* glr.c:847 */
7030 {}
7031 #line 7032 "src/parser_proc.c" /* glr.c:847 */
7032 break;
7033
7034 case 149: /* lib */
7035 #line 284 "src/parser_proc_grammar.y" /* glr.c:847 */
7036 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7037 #line 7038 "src/parser_proc.c" /* glr.c:847 */
7038 break;
7039
7040 case 150: /* cpp */
7041 #line 299 "src/parser_proc_grammar.y" /* glr.c:847 */
7042 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
7043 #line 7044 "src/parser_proc.c" /* glr.c:847 */
7044 break;
7045
7046 case 151: /* cpp_exp */
7047 #line 299 "src/parser_proc_grammar.y" /* glr.c:847 */
7048 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
7049 #line 7050 "src/parser_proc.c" /* glr.c:847 */
7050 break;
7051
7052 case 153: /* cpp_message_token */
7053 #line 287 "src/parser_proc_grammar.y" /* glr.c:847 */
7054 {}
7055 #line 7056 "src/parser_proc.c" /* glr.c:847 */
7056 break;
7057
7058 case 154: /* cpp_include_token */
7059 #line 287 "src/parser_proc_grammar.y" /* glr.c:847 */
7060 {}
7061 #line 7062 "src/parser_proc.c" /* glr.c:847 */
7062 break;
7063
7064 case 155: /* cpp_header_token */
7065 #line 287 "src/parser_proc_grammar.y" /* glr.c:847 */
7066 {}
7067 #line 7068 "src/parser_proc.c" /* glr.c:847 */
7068 break;
7069
7070 case 156: /* cpp_no_arg_token */
7071 #line 287 "src/parser_proc_grammar.y" /* glr.c:847 */
7072 {}
7073 #line 7074 "src/parser_proc.c" /* glr.c:847 */
7074 break;
7075
7076 case 157: /* cpp_name_arg_token */
7077 #line 287 "src/parser_proc_grammar.y" /* glr.c:847 */
7078 {}
7079 #line 7080 "src/parser_proc.c" /* glr.c:847 */
7080 break;
7081
7082 case 158: /* cpp_exp_arg_token */
7083 #line 287 "src/parser_proc_grammar.y" /* glr.c:847 */
7084 {}
7085 #line 7086 "src/parser_proc.c" /* glr.c:847 */
7086 break;
7087
7088 case 159: /* cpp_macro_decl */
7089 #line 301 "src/parser_proc_grammar.y" /* glr.c:847 */
7090 {psi_cpp_macro_decl_free(&(*(struct psi_cpp_macro_decl **)(&(*yyvaluep))));}
7091 #line 7092 "src/parser_proc.c" /* glr.c:847 */
7092 break;
7093
7094 case 160: /* cpp_macro_sig */
7095 #line 303 "src/parser_proc_grammar.y" /* glr.c:847 */
7096 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7097 #line 7098 "src/parser_proc.c" /* glr.c:847 */
7098 break;
7099
7100 case 161: /* cpp_macro_sig_args */
7101 #line 303 "src/parser_proc_grammar.y" /* glr.c:847 */
7102 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7103 #line 7104 "src/parser_proc.c" /* glr.c:847 */
7104 break;
7105
7106 case 162: /* cpp_macro_decl_tokens */
7107 #line 303 "src/parser_proc_grammar.y" /* glr.c:847 */
7108 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7109 #line 7110 "src/parser_proc.c" /* glr.c:847 */
7110 break;
7111
7112 case 163: /* cpp_macro_decl_token_list */
7113 #line 303 "src/parser_proc_grammar.y" /* glr.c:847 */
7114 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7115 #line 7116 "src/parser_proc.c" /* glr.c:847 */
7116 break;
7117
7118 case 164: /* cpp_macro_exp */
7119 #line 305 "src/parser_proc_grammar.y" /* glr.c:847 */
7120 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
7121 #line 7122 "src/parser_proc.c" /* glr.c:847 */
7122 break;
7123
7124 case 165: /* cpp_macro_call_args */
7125 #line 303 "src/parser_proc_grammar.y" /* glr.c:847 */
7126 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7127 #line 7128 "src/parser_proc.c" /* glr.c:847 */
7128 break;
7129
7130 case 166: /* cpp_macro_call_arg_list */
7131 #line 303 "src/parser_proc_grammar.y" /* glr.c:847 */
7132 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7133 #line 7134 "src/parser_proc.c" /* glr.c:847 */
7134 break;
7135
7136 case 167: /* constant */
7137 #line 311 "src/parser_proc_grammar.y" /* glr.c:847 */
7138 {psi_const_free(&(*(struct psi_const **)(&(*yyvaluep))));}
7139 #line 7140 "src/parser_proc.c" /* glr.c:847 */
7140 break;
7141
7142 case 168: /* impl_def_val */
7143 #line 313 "src/parser_proc_grammar.y" /* glr.c:847 */
7144 {psi_impl_def_val_free(&(*(struct psi_impl_def_val **)(&(*yyvaluep))));}
7145 #line 7146 "src/parser_proc.c" /* glr.c:847 */
7146 break;
7147
7148 case 169: /* impl_def_val_token */
7149 #line 308 "src/parser_proc_grammar.y" /* glr.c:847 */
7150 {}
7151 #line 7152 "src/parser_proc.c" /* glr.c:847 */
7152 break;
7153
7154 case 170: /* decl_typedef */
7155 #line 326 "src/parser_proc_grammar.y" /* glr.c:847 */
7156 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7157 #line 7158 "src/parser_proc.c" /* glr.c:847 */
7158 break;
7159
7160 case 171: /* typedef */
7161 #line 326 "src/parser_proc_grammar.y" /* glr.c:847 */
7162 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7163 #line 7164 "src/parser_proc.c" /* glr.c:847 */
7164 break;
7165
7166 case 172: /* typedef_anon */
7167 #line 326 "src/parser_proc_grammar.y" /* glr.c:847 */
7168 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7169 #line 7170 "src/parser_proc.c" /* glr.c:847 */
7170 break;
7171
7172 case 173: /* typedef_decl */
7173 #line 326 "src/parser_proc_grammar.y" /* glr.c:847 */
7174 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7175 #line 7176 "src/parser_proc.c" /* glr.c:847 */
7176 break;
7177
7178 case 174: /* typedef_anon_decl */
7179 #line 326 "src/parser_proc_grammar.y" /* glr.c:847 */
7180 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7181 #line 7182 "src/parser_proc.c" /* glr.c:847 */
7182 break;
7183
7184 case 175: /* qualified_decl_type */
7185 #line 322 "src/parser_proc_grammar.y" /* glr.c:847 */
7186 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
7187 #line 7188 "src/parser_proc.c" /* glr.c:847 */
7188 break;
7189
7190 case 177: /* decl_type */
7191 #line 322 "src/parser_proc_grammar.y" /* glr.c:847 */
7192 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
7193 #line 7194 "src/parser_proc.c" /* glr.c:847 */
7194 break;
7195
7196 case 178: /* decl_type_complex */
7197 #line 322 "src/parser_proc_grammar.y" /* glr.c:847 */
7198 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
7199 #line 7200 "src/parser_proc.c" /* glr.c:847 */
7200 break;
7201
7202 case 179: /* decl_type_simple */
7203 #line 316 "src/parser_proc_grammar.y" /* glr.c:847 */
7204 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7205 #line 7206 "src/parser_proc.c" /* glr.c:847 */
7206 break;
7207
7208 case 180: /* decl_real_type */
7209 #line 316 "src/parser_proc_grammar.y" /* glr.c:847 */
7210 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7211 #line 7212 "src/parser_proc.c" /* glr.c:847 */
7212 break;
7213
7214 case 181: /* int_signed */
7215 #line 296 "src/parser_proc_grammar.y" /* glr.c:847 */
7216 {}
7217 #line 7218 "src/parser_proc.c" /* glr.c:847 */
7218 break;
7219
7220 case 182: /* int_width */
7221 #line 293 "src/parser_proc_grammar.y" /* glr.c:847 */
7222 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7223 #line 7224 "src/parser_proc.c" /* glr.c:847 */
7224 break;
7225
7226 case 183: /* decl_int_type */
7227 #line 316 "src/parser_proc_grammar.y" /* glr.c:847 */
7228 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7229 #line 7230 "src/parser_proc.c" /* glr.c:847 */
7230 break;
7231
7232 case 184: /* int_signed_types */
7233 #line 293 "src/parser_proc_grammar.y" /* glr.c:847 */
7234 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7235 #line 7236 "src/parser_proc.c" /* glr.c:847 */
7236 break;
7237
7238 case 185: /* signed_short_types */
7239 #line 296 "src/parser_proc_grammar.y" /* glr.c:847 */
7240 {}
7241 #line 7242 "src/parser_proc.c" /* glr.c:847 */
7242 break;
7243
7244 case 186: /* signed_long_types */
7245 #line 296 "src/parser_proc_grammar.y" /* glr.c:847 */
7246 {}
7247 #line 7248 "src/parser_proc.c" /* glr.c:847 */
7248 break;
7249
7250 case 187: /* int_width_types */
7251 #line 293 "src/parser_proc_grammar.y" /* glr.c:847 */
7252 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7253 #line 7254 "src/parser_proc.c" /* glr.c:847 */
7254 break;
7255
7256 case 188: /* decl_stmt */
7257 #line 324 "src/parser_proc_grammar.y" /* glr.c:847 */
7258 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7259 #line 7260 "src/parser_proc.c" /* glr.c:847 */
7260 break;
7261
7262 case 189: /* decl_asm */
7263 #line 319 "src/parser_proc_grammar.y" /* glr.c:847 */
7264 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7265 #line 7266 "src/parser_proc.c" /* glr.c:847 */
7266 break;
7267
7268 case 190: /* quoted_strings */
7269 #line 319 "src/parser_proc_grammar.y" /* glr.c:847 */
7270 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7271 #line 7272 "src/parser_proc.c" /* glr.c:847 */
7272 break;
7273
7274 case 191: /* decl_extvar_stmt */
7275 #line 338 "src/parser_proc_grammar.y" /* glr.c:847 */
7276 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7277 #line 7278 "src/parser_proc.c" /* glr.c:847 */
7278 break;
7279
7280 case 192: /* decl_extvar_list */
7281 #line 338 "src/parser_proc_grammar.y" /* glr.c:847 */
7282 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7283 #line 7284 "src/parser_proc.c" /* glr.c:847 */
7284 break;
7285
7286 case 193: /* decl_vars */
7287 #line 338 "src/parser_proc_grammar.y" /* glr.c:847 */
7288 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7289 #line 7290 "src/parser_proc.c" /* glr.c:847 */
7290 break;
7291
7292 case 194: /* ignored_decl */
7293 #line 324 "src/parser_proc_grammar.y" /* glr.c:847 */
7294 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7295 #line 7296 "src/parser_proc.c" /* glr.c:847 */
7296 break;
7297
7298 case 199: /* decl */
7299 #line 324 "src/parser_proc_grammar.y" /* glr.c:847 */
7300 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7301 #line 7302 "src/parser_proc.c" /* glr.c:847 */
7302 break;
7303
7304 case 200: /* decl_body */
7305 #line 324 "src/parser_proc_grammar.y" /* glr.c:847 */
7306 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7307 #line 7308 "src/parser_proc.c" /* glr.c:847 */
7308 break;
7309
7310 case 201: /* decl_func_body */
7311 #line 324 "src/parser_proc_grammar.y" /* glr.c:847 */
7312 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7313 #line 7314 "src/parser_proc.c" /* glr.c:847 */
7314 break;
7315
7316 case 202: /* decl_functor_body */
7317 #line 324 "src/parser_proc_grammar.y" /* glr.c:847 */
7318 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7319 #line 7320 "src/parser_proc.c" /* glr.c:847 */
7320 break;
7321
7322 case 203: /* decl_anon_functor_body */
7323 #line 324 "src/parser_proc_grammar.y" /* glr.c:847 */
7324 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7325 #line 7326 "src/parser_proc.c" /* glr.c:847 */
7326 break;
7327
7328 case 204: /* decl_functor */
7329 #line 326 "src/parser_proc_grammar.y" /* glr.c:847 */
7330 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7331 #line 7332 "src/parser_proc.c" /* glr.c:847 */
7332 break;
7333
7334 case 205: /* decl_anon_functor */
7335 #line 326 "src/parser_proc_grammar.y" /* glr.c:847 */
7336 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7337 #line 7338 "src/parser_proc.c" /* glr.c:847 */
7338 break;
7339
7340 case 206: /* decl_func */
7341 #line 326 "src/parser_proc_grammar.y" /* glr.c:847 */
7342 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7343 #line 7344 "src/parser_proc.c" /* glr.c:847 */
7344 break;
7345
7346 case 207: /* decl_args */
7347 #line 338 "src/parser_proc_grammar.y" /* glr.c:847 */
7348 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7349 #line 7350 "src/parser_proc.c" /* glr.c:847 */
7350 break;
7351
7352 case 208: /* decl_arg_list */
7353 #line 338 "src/parser_proc_grammar.y" /* glr.c:847 */
7354 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7355 #line 7356 "src/parser_proc.c" /* glr.c:847 */
7356 break;
7357
7358 case 209: /* decl_anon_arg */
7359 #line 326 "src/parser_proc_grammar.y" /* glr.c:847 */
7360 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7361 #line 7362 "src/parser_proc.c" /* glr.c:847 */
7362 break;
7363
7364 case 210: /* decl_arg */
7365 #line 326 "src/parser_proc_grammar.y" /* glr.c:847 */
7366 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7367 #line 7368 "src/parser_proc.c" /* glr.c:847 */
7368 break;
7369
7370 case 211: /* decl_var */
7371 #line 328 "src/parser_proc_grammar.y" /* glr.c:847 */
7372 {psi_decl_var_free(&(*(struct psi_decl_var **)(&(*yyvaluep))));}
7373 #line 7374 "src/parser_proc.c" /* glr.c:847 */
7374 break;
7375
7376 case 212: /* decl_union */
7377 #line 332 "src/parser_proc_grammar.y" /* glr.c:847 */
7378 {psi_decl_union_free(&(*(struct psi_decl_union **)(&(*yyvaluep))));}
7379 #line 7380 "src/parser_proc.c" /* glr.c:847 */
7380 break;
7381
7382 case 213: /* decl_struct */
7383 #line 330 "src/parser_proc_grammar.y" /* glr.c:847 */
7384 {psi_decl_struct_free(&(*(struct psi_decl_struct **)(&(*yyvaluep))));}
7385 #line 7386 "src/parser_proc.c" /* glr.c:847 */
7386 break;
7387
7388 case 214: /* decl_struct_args */
7389 #line 338 "src/parser_proc_grammar.y" /* glr.c:847 */
7390 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7391 #line 7392 "src/parser_proc.c" /* glr.c:847 */
7392 break;
7393
7394 case 215: /* struct_args_block */
7395 #line 338 "src/parser_proc_grammar.y" /* glr.c:847 */
7396 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7397 #line 7398 "src/parser_proc.c" /* glr.c:847 */
7398 break;
7399
7400 case 216: /* struct_args */
7401 #line 338 "src/parser_proc_grammar.y" /* glr.c:847 */
7402 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7403 #line 7404 "src/parser_proc.c" /* glr.c:847 */
7404 break;
7405
7406 case 217: /* struct_arg_var_list */
7407 #line 338 "src/parser_proc_grammar.y" /* glr.c:847 */
7408 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7409 #line 7410 "src/parser_proc.c" /* glr.c:847 */
7410 break;
7411
7412 case 218: /* decl_vars_with_layout */
7413 #line 338 "src/parser_proc_grammar.y" /* glr.c:847 */
7414 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7415 #line 7416 "src/parser_proc.c" /* glr.c:847 */
7416 break;
7417
7418 case 219: /* decl_enum */
7419 #line 334 "src/parser_proc_grammar.y" /* glr.c:847 */
7420 {psi_decl_enum_free(&(*(struct psi_decl_enum **)(&(*yyvaluep))));}
7421 #line 7422 "src/parser_proc.c" /* glr.c:847 */
7422 break;
7423
7424 case 220: /* decl_enum_items */
7425 #line 338 "src/parser_proc_grammar.y" /* glr.c:847 */
7426 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7427 #line 7428 "src/parser_proc.c" /* glr.c:847 */
7428 break;
7429
7430 case 221: /* decl_enum_item */
7431 #line 336 "src/parser_proc_grammar.y" /* glr.c:847 */
7432 {psi_decl_enum_item_free(&(*(struct psi_decl_enum_item **)(&(*yyvaluep))));}
7433 #line 7434 "src/parser_proc.c" /* glr.c:847 */
7434 break;
7435
7436 case 222: /* num_exp */
7437 #line 394 "src/parser_proc_grammar.y" /* glr.c:847 */
7438 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
7439 #line 7440 "src/parser_proc.c" /* glr.c:847 */
7440 break;
7441
7442 case 223: /* number */
7443 #line 396 "src/parser_proc_grammar.y" /* glr.c:847 */
7444 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7445 #line 7446 "src/parser_proc.c" /* glr.c:847 */
7446 break;
7447
7448 case 224: /* sizeof */
7449 #line 346 "src/parser_proc_grammar.y" /* glr.c:847 */
7450 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7451 #line 7452 "src/parser_proc.c" /* glr.c:847 */
7452 break;
7453
7454 case 225: /* sizeof_body */
7455 #line 346 "src/parser_proc_grammar.y" /* glr.c:847 */
7456 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7457 #line 7458 "src/parser_proc.c" /* glr.c:847 */
7458 break;
7459
7460 case 226: /* sizeof_body_notypes */
7461 #line 346 "src/parser_proc_grammar.y" /* glr.c:847 */
7462 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7463 #line 7464 "src/parser_proc.c" /* glr.c:847 */
7464 break;
7465
7466 case 227: /* enum_name */
7467 #line 284 "src/parser_proc_grammar.y" /* glr.c:847 */
7468 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7469 #line 7470 "src/parser_proc.c" /* glr.c:847 */
7470 break;
7471
7472 case 228: /* union_name */
7473 #line 284 "src/parser_proc_grammar.y" /* glr.c:847 */
7474 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7475 #line 7476 "src/parser_proc.c" /* glr.c:847 */
7476 break;
7477
7478 case 229: /* struct_name */
7479 #line 284 "src/parser_proc_grammar.y" /* glr.c:847 */
7480 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7481 #line 7482 "src/parser_proc.c" /* glr.c:847 */
7482 break;
7483
7484 case 230: /* optional_name */
7485 #line 284 "src/parser_proc_grammar.y" /* glr.c:847 */
7486 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7487 #line 7488 "src/parser_proc.c" /* glr.c:847 */
7488 break;
7489
7490 case 232: /* decl_layout */
7491 #line 343 "src/parser_proc_grammar.y" /* glr.c:847 */
7492 {psi_layout_free(&(*(struct psi_layout **)(&(*yyvaluep))));}
7493 #line 7494 "src/parser_proc.c" /* glr.c:847 */
7494 break;
7495
7496 case 233: /* align_and_size */
7497 #line 341 "src/parser_proc_grammar.y" /* glr.c:847 */
7498 {}
7499 #line 7500 "src/parser_proc.c" /* glr.c:847 */
7500 break;
7501
7502 case 234: /* array_size */
7503 #line 399 "src/parser_proc_grammar.y" /* glr.c:847 */
7504 {}
7505 #line 7506 "src/parser_proc.c" /* glr.c:847 */
7506 break;
7507
7508 case 236: /* indirection */
7509 #line 399 "src/parser_proc_grammar.y" /* glr.c:847 */
7510 {}
7511 #line 7512 "src/parser_proc.c" /* glr.c:847 */
7512 break;
7513
7514 case 237: /* pointers */
7515 #line 399 "src/parser_proc_grammar.y" /* glr.c:847 */
7516 {}
7517 #line 7518 "src/parser_proc.c" /* glr.c:847 */
7518 break;
7519
7520 case 238: /* asterisks */
7521 #line 399 "src/parser_proc_grammar.y" /* glr.c:847 */
7522 {}
7523 #line 7524 "src/parser_proc.c" /* glr.c:847 */
7524 break;
7525
7526 case 241: /* impl */
7527 #line 349 "src/parser_proc_grammar.y" /* glr.c:847 */
7528 {psi_impl_free(&(*(struct psi_impl **)(&(*yyvaluep))));}
7529 #line 7530 "src/parser_proc.c" /* glr.c:847 */
7530 break;
7531
7532 case 242: /* impl_func */
7533 #line 351 "src/parser_proc_grammar.y" /* glr.c:847 */
7534 {psi_impl_func_free(&(*(struct psi_impl_func **)(&(*yyvaluep))));}
7535 #line 7536 "src/parser_proc.c" /* glr.c:847 */
7536 break;
7537
7538 case 243: /* impl_args */
7539 #line 391 "src/parser_proc_grammar.y" /* glr.c:847 */
7540 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7541 #line 7542 "src/parser_proc.c" /* glr.c:847 */
7542 break;
7543
7544 case 244: /* impl_arg */
7545 #line 353 "src/parser_proc_grammar.y" /* glr.c:847 */
7546 {psi_impl_arg_free(&(*(struct psi_impl_arg **)(&(*yyvaluep))));}
7547 #line 7548 "src/parser_proc.c" /* glr.c:847 */
7548 break;
7549
7550 case 245: /* impl_var */
7551 #line 357 "src/parser_proc_grammar.y" /* glr.c:847 */
7552 {psi_impl_var_free(&(*(struct psi_impl_var **)(&(*yyvaluep))));}
7553 #line 7554 "src/parser_proc.c" /* glr.c:847 */
7554 break;
7555
7556 case 246: /* impl_type */
7557 #line 355 "src/parser_proc_grammar.y" /* glr.c:847 */
7558 {psi_impl_type_free(&(*(struct psi_impl_type **)(&(*yyvaluep))));}
7559 #line 7560 "src/parser_proc.c" /* glr.c:847 */
7560 break;
7561
7562 case 247: /* impl_type_restricted */
7563 #line 355 "src/parser_proc_grammar.y" /* glr.c:847 */
7564 {psi_impl_type_free(&(*(struct psi_impl_type **)(&(*yyvaluep))));}
7565 #line 7566 "src/parser_proc.c" /* glr.c:847 */
7566 break;
7567
7568 case 248: /* impl_type_token */
7569 #line 389 "src/parser_proc_grammar.y" /* glr.c:847 */
7570 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7571 #line 7572 "src/parser_proc.c" /* glr.c:847 */
7572 break;
7573
7574 case 249: /* impl_type_restricted_token */
7575 #line 389 "src/parser_proc_grammar.y" /* glr.c:847 */
7576 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7577 #line 7578 "src/parser_proc.c" /* glr.c:847 */
7578 break;
7579
7580 case 250: /* impl_type_extended_token */
7581 #line 389 "src/parser_proc_grammar.y" /* glr.c:847 */
7582 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7583 #line 7584 "src/parser_proc.c" /* glr.c:847 */
7584 break;
7585
7586 case 251: /* impl_stmts */
7587 #line 391 "src/parser_proc_grammar.y" /* glr.c:847 */
7588 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7589 #line 7590 "src/parser_proc.c" /* glr.c:847 */
7590 break;
7591
7592 case 252: /* impl_stmt */
7593 #line 387 "src/parser_proc_grammar.y" /* glr.c:847 */
7594 {psi_impl_stmt_free(&(*(struct psi_token ***)(&(*yyvaluep))));}
7595 #line 7596 "src/parser_proc.c" /* glr.c:847 */
7596 break;
7597
7598 case 253: /* let_stmt */
7599 #line 360 "src/parser_proc_grammar.y" /* glr.c:847 */
7600 {psi_let_stmt_free(&(*(struct psi_let_stmt **)(&(*yyvaluep))));}
7601 #line 7602 "src/parser_proc.c" /* glr.c:847 */
7602 break;
7603
7604 case 254: /* let_exp */
7605 #line 362 "src/parser_proc_grammar.y" /* glr.c:847 */
7606 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
7607 #line 7608 "src/parser_proc.c" /* glr.c:847 */
7608 break;
7609
7610 case 255: /* let_exp_byref */
7611 #line 362 "src/parser_proc_grammar.y" /* glr.c:847 */
7612 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
7613 #line 7614 "src/parser_proc.c" /* glr.c:847 */
7614 break;
7615
7616 case 256: /* let_exp_assign */
7617 #line 362 "src/parser_proc_grammar.y" /* glr.c:847 */
7618 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
7619 #line 7620 "src/parser_proc.c" /* glr.c:847 */
7620 break;
7621
7622 case 257: /* let_calloc */
7623 #line 364 "src/parser_proc_grammar.y" /* glr.c:847 */
7624 {psi_let_calloc_free(&(*(struct psi_let_calloc **)(&(*yyvaluep))));}
7625 #line 7626 "src/parser_proc.c" /* glr.c:847 */
7626 break;
7627
7628 case 258: /* let_callback */
7629 #line 366 "src/parser_proc_grammar.y" /* glr.c:847 */
7630 {psi_let_callback_free(&(*(struct psi_let_callback **)(&(*yyvaluep))));}
7631 #line 7632 "src/parser_proc.c" /* glr.c:847 */
7632 break;
7633
7634 case 259: /* let_func */
7635 #line 368 "src/parser_proc_grammar.y" /* glr.c:847 */
7636 {psi_let_func_free(&(*(struct psi_let_func **)(&(*yyvaluep))));}
7637 #line 7638 "src/parser_proc.c" /* glr.c:847 */
7638 break;
7639
7640 case 260: /* let_func_token */
7641 #line 389 "src/parser_proc_grammar.y" /* glr.c:847 */
7642 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7643 #line 7644 "src/parser_proc.c" /* glr.c:847 */
7644 break;
7645
7646 case 261: /* let_func_exps */
7647 #line 391 "src/parser_proc_grammar.y" /* glr.c:847 */
7648 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7649 #line 7650 "src/parser_proc.c" /* glr.c:847 */
7650 break;
7651
7652 case 262: /* let_exps */
7653 #line 391 "src/parser_proc_grammar.y" /* glr.c:847 */
7654 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7655 #line 7656 "src/parser_proc.c" /* glr.c:847 */
7656 break;
7657
7658 case 263: /* callback_rval */
7659 #line 389 "src/parser_proc_grammar.y" /* glr.c:847 */
7660 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7661 #line 7662 "src/parser_proc.c" /* glr.c:847 */
7662 break;
7663
7664 case 264: /* callback_arg_list */
7665 #line 391 "src/parser_proc_grammar.y" /* glr.c:847 */
7666 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7667 #line 7668 "src/parser_proc.c" /* glr.c:847 */
7668 break;
7669
7670 case 265: /* callback_args */
7671 #line 391 "src/parser_proc_grammar.y" /* glr.c:847 */
7672 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7673 #line 7674 "src/parser_proc.c" /* glr.c:847 */
7674 break;
7675
7676 case 266: /* return_stmt */
7677 #line 378 "src/parser_proc_grammar.y" /* glr.c:847 */
7678 {psi_return_stmt_free(&(*(struct psi_return_stmt **)(&(*yyvaluep))));}
7679 #line 7680 "src/parser_proc.c" /* glr.c:847 */
7680 break;
7681
7682 case 267: /* return_exp */
7683 #line 380 "src/parser_proc_grammar.y" /* glr.c:847 */
7684 {psi_return_exp_free(&(*(struct psi_return_exp **)(&(*yyvaluep))));}
7685 #line 7686 "src/parser_proc.c" /* glr.c:847 */
7686 break;
7687
7688 case 268: /* call_decl_vars */
7689 #line 338 "src/parser_proc_grammar.y" /* glr.c:847 */
7690 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7691 #line 7692 "src/parser_proc.c" /* glr.c:847 */
7692 break;
7693
7694 case 269: /* set_stmt */
7695 #line 370 "src/parser_proc_grammar.y" /* glr.c:847 */
7696 {psi_set_stmt_free(&(*(struct psi_set_stmt **)(&(*yyvaluep))));}
7697 #line 7698 "src/parser_proc.c" /* glr.c:847 */
7698 break;
7699
7700 case 270: /* set_exp */
7701 #line 372 "src/parser_proc_grammar.y" /* glr.c:847 */
7702 {psi_set_exp_free(&(*(struct psi_set_exp **)(&(*yyvaluep))));}
7703 #line 7704 "src/parser_proc.c" /* glr.c:847 */
7704 break;
7705
7706 case 271: /* set_func */
7707 #line 374 "src/parser_proc_grammar.y" /* glr.c:847 */
7708 {psi_set_func_free(&(*(struct psi_set_func **)(&(*yyvaluep))));}
7709 #line 7710 "src/parser_proc.c" /* glr.c:847 */
7710 break;
7711
7712 case 272: /* set_func_token */
7713 #line 389 "src/parser_proc_grammar.y" /* glr.c:847 */
7714 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7715 #line 7716 "src/parser_proc.c" /* glr.c:847 */
7716 break;
7717
7718 case 273: /* set_func_exps */
7719 #line 391 "src/parser_proc_grammar.y" /* glr.c:847 */
7720 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7721 #line 7722 "src/parser_proc.c" /* glr.c:847 */
7722 break;
7723
7724 case 274: /* set_exps */
7725 #line 391 "src/parser_proc_grammar.y" /* glr.c:847 */
7726 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7727 #line 7728 "src/parser_proc.c" /* glr.c:847 */
7728 break;
7729
7730 case 275: /* assert_stmt */
7731 #line 376 "src/parser_proc_grammar.y" /* glr.c:847 */
7732 {psi_assert_stmt_free(&(*(struct psi_assert_stmt **)(&(*yyvaluep))));}
7733 #line 7734 "src/parser_proc.c" /* glr.c:847 */
7734 break;
7735
7736 case 276: /* assert_stmt_token */
7737 #line 389 "src/parser_proc_grammar.y" /* glr.c:847 */
7738 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7739 #line 7740 "src/parser_proc.c" /* glr.c:847 */
7740 break;
7741
7742 case 277: /* free_stmt */
7743 #line 382 "src/parser_proc_grammar.y" /* glr.c:847 */
7744 {psi_free_stmt_free(&(*(struct psi_free_stmt **)(&(*yyvaluep))));}
7745 #line 7746 "src/parser_proc.c" /* glr.c:847 */
7746 break;
7747
7748 case 278: /* free_exps */
7749 #line 391 "src/parser_proc_grammar.y" /* glr.c:847 */
7750 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7751 #line 7752 "src/parser_proc.c" /* glr.c:847 */
7752 break;
7753
7754 case 279: /* free_exp */
7755 #line 384 "src/parser_proc_grammar.y" /* glr.c:847 */
7756 {psi_free_exp_free(&(*(struct psi_free_exp **)(&(*yyvaluep))));}
7757 #line 7758 "src/parser_proc.c" /* glr.c:847 */
7758 break;
7759
7760 case 280: /* reference */
7761 #line 401 "src/parser_proc_grammar.y" /* glr.c:847 */
7762 {}
7763 #line 7764 "src/parser_proc.c" /* glr.c:847 */
7764 break;
7765
7766
7767 default:
7768 break;
7769 }
7770 YY_IGNORE_MAYBE_UNINITIALIZED_END
7771 }
7772
7773 /** Number of symbols composing the right hand side of rule #RULE. */
7774 static inline int
7775 yyrhsLength (yyRuleNum yyrule)
7776 {
7777 return yyr2[yyrule];
7778 }
7779
7780 static void
7781 yydestroyGLRState (char const *yymsg, yyGLRState *yys, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7782 {
7783 if (yys->yyresolved)
7784 yydestruct (yymsg, yystos[yys->yylrState],
7785 &yys->yysemantics.yysval, P, tokens, index);
7786 else
7787 {
7788 #if YYDEBUG
7789 if (yydebug)
7790 {
7791 if (yys->yysemantics.yyfirstVal)
7792 YYFPRINTF (stderr, "%s unresolved", yymsg);
7793 else
7794 YYFPRINTF (stderr, "%s incomplete", yymsg);
7795 YY_SYMBOL_PRINT ("", yystos[yys->yylrState], YY_NULLPTR, &yys->yyloc);
7796 }
7797 #endif
7798
7799 if (yys->yysemantics.yyfirstVal)
7800 {
7801 yySemanticOption *yyoption = yys->yysemantics.yyfirstVal;
7802 yyGLRState *yyrh;
7803 int yyn;
7804 for (yyrh = yyoption->yystate, yyn = yyrhsLength (yyoption->yyrule);
7805 yyn > 0;
7806 yyrh = yyrh->yypred, yyn -= 1)
7807 yydestroyGLRState (yymsg, yyrh, P, tokens, index);
7808 }
7809 }
7810 }
7811
7812 /** Left-hand-side symbol for rule #YYRULE. */
7813 static inline yySymbol
7814 yylhsNonterm (yyRuleNum yyrule)
7815 {
7816 return yyr1[yyrule];
7817 }
7818
7819 #define yypact_value_is_default(Yystate) \
7820 (!!((Yystate) == (-731)))
7821
7822 /** True iff LR state YYSTATE has only a default reduction (regardless
7823 * of token). */
7824 static inline yybool
7825 yyisDefaultedState (yyStateNum yystate)
7826 {
7827 return yypact_value_is_default (yypact[yystate]);
7828 }
7829
7830 /** The default reduction for YYSTATE, assuming it has one. */
7831 static inline yyRuleNum
7832 yydefaultAction (yyStateNum yystate)
7833 {
7834 return yydefact[yystate];
7835 }
7836
7837 #define yytable_value_is_error(Yytable_value) \
7838 0
7839
7840 /** Set *YYACTION to the action to take in YYSTATE on seeing YYTOKEN.
7841 * Result R means
7842 * R < 0: Reduce on rule -R.
7843 * R = 0: Error.
7844 * R > 0: Shift to state R.
7845 * Set *YYCONFLICTS to a pointer into yyconfl to a 0-terminated list
7846 * of conflicting reductions.
7847 */
7848 static inline void
7849 yygetLRActions (yyStateNum yystate, int yytoken,
7850 int* yyaction, const short** yyconflicts)
7851 {
7852 int yyindex = yypact[yystate] + yytoken;
7853 if (yypact_value_is_default (yypact[yystate])
7854 || yyindex < 0 || YYLAST < yyindex || yycheck[yyindex] != yytoken)
7855 {
7856 *yyaction = -yydefact[yystate];
7857 *yyconflicts = yyconfl;
7858 }
7859 else if (! yytable_value_is_error (yytable[yyindex]))
7860 {
7861 *yyaction = yytable[yyindex];
7862 *yyconflicts = yyconfl + yyconflp[yyindex];
7863 }
7864 else
7865 {
7866 *yyaction = 0;
7867 *yyconflicts = yyconfl + yyconflp[yyindex];
7868 }
7869 }
7870
7871 /** Compute post-reduction state.
7872 * \param yystate the current state
7873 * \param yysym the nonterminal to push on the stack
7874 */
7875 static inline yyStateNum
7876 yyLRgotoState (yyStateNum yystate, yySymbol yysym)
7877 {
7878 int yyr = yypgoto[yysym - YYNTOKENS] + yystate;
7879 if (0 <= yyr && yyr <= YYLAST && yycheck[yyr] == yystate)
7880 return yytable[yyr];
7881 else
7882 return yydefgoto[yysym - YYNTOKENS];
7883 }
7884
7885 static inline yybool
7886 yyisShiftAction (int yyaction)
7887 {
7888 return 0 < yyaction;
7889 }
7890
7891 static inline yybool
7892 yyisErrorAction (int yyaction)
7893 {
7894 return yyaction == 0;
7895 }
7896
7897 /* GLRStates */
7898
7899 /** Return a fresh GLRStackItem in YYSTACKP. The item is an LR state
7900 * if YYISSTATE, and otherwise a semantic option. Callers should call
7901 * YY_RESERVE_GLRSTACK afterwards to make sure there is sufficient
7902 * headroom. */
7903
7904 static inline yyGLRStackItem*
7905 yynewGLRStackItem (yyGLRStack* yystackp, yybool yyisState)
7906 {
7907 yyGLRStackItem* yynewItem = yystackp->yynextFree;
7908 yystackp->yyspaceLeft -= 1;
7909 yystackp->yynextFree += 1;
7910 yynewItem->yystate.yyisState = yyisState;
7911 return yynewItem;
7912 }
7913
7914 /** Add a new semantic action that will execute the action for rule
7915 * YYRULE on the semantic values in YYRHS to the list of
7916 * alternative actions for YYSTATE. Assumes that YYRHS comes from
7917 * stack #YYK of *YYSTACKP. */
7918 static void
7919 yyaddDeferredAction (yyGLRStack* yystackp, size_t yyk, yyGLRState* yystate,
7920 yyGLRState* yyrhs, yyRuleNum yyrule)
7921 {
7922 yySemanticOption* yynewOption =
7923 &yynewGLRStackItem (yystackp, yyfalse)->yyoption;
7924 YYASSERT (!yynewOption->yyisState);
7925 yynewOption->yystate = yyrhs;
7926 yynewOption->yyrule = yyrule;
7927 if (yystackp->yytops.yylookaheadNeeds[yyk])
7928 {
7929 yynewOption->yyrawchar = yychar;
7930 yynewOption->yyval = yylval;
7931 }
7932 else
7933 yynewOption->yyrawchar = YYEMPTY;
7934 yynewOption->yynext = yystate->yysemantics.yyfirstVal;
7935 yystate->yysemantics.yyfirstVal = yynewOption;
7936
7937 YY_RESERVE_GLRSTACK (yystackp);
7938 }
7939
7940 /* GLRStacks */
7941
7942 /** Initialize YYSET to a singleton set containing an empty stack. */
7943 static yybool
7944 yyinitStateSet (yyGLRStateSet* yyset)
7945 {
7946 yyset->yysize = 1;
7947 yyset->yycapacity = 16;
7948 yyset->yystates = (yyGLRState**) YYMALLOC (16 * sizeof yyset->yystates[0]);
7949 if (! yyset->yystates)
7950 return yyfalse;
7951 yyset->yystates[0] = YY_NULLPTR;
7952 yyset->yylookaheadNeeds =
7953 (yybool*) YYMALLOC (16 * sizeof yyset->yylookaheadNeeds[0]);
7954 if (! yyset->yylookaheadNeeds)
7955 {
7956 YYFREE (yyset->yystates);
7957 return yyfalse;
7958 }
7959 return yytrue;
7960 }
7961
7962 static void yyfreeStateSet (yyGLRStateSet* yyset)
7963 {
7964 YYFREE (yyset->yystates);
7965 YYFREE (yyset->yylookaheadNeeds);
7966 }
7967
7968 /** Initialize *YYSTACKP to a single empty stack, with total maximum
7969 * capacity for all stacks of YYSIZE. */
7970 static yybool
7971 yyinitGLRStack (yyGLRStack* yystackp, size_t yysize)
7972 {
7973 yystackp->yyerrState = 0;
7974 yynerrs = 0;
7975 yystackp->yyspaceLeft = yysize;
7976 yystackp->yyitems =
7977 (yyGLRStackItem*) YYMALLOC (yysize * sizeof yystackp->yynextFree[0]);
7978 if (!yystackp->yyitems)
7979 return yyfalse;
7980 yystackp->yynextFree = yystackp->yyitems;
7981 yystackp->yysplitPoint = YY_NULLPTR;
7982 yystackp->yylastDeleted = YY_NULLPTR;
7983 return yyinitStateSet (&yystackp->yytops);
7984 }
7985
7986
7987 #if YYSTACKEXPANDABLE
7988 # define YYRELOC(YYFROMITEMS,YYTOITEMS,YYX,YYTYPE) \
7989 &((YYTOITEMS) - ((YYFROMITEMS) - (yyGLRStackItem*) (YYX)))->YYTYPE
7990
7991 /** If *YYSTACKP is expandable, extend it. WARNING: Pointers into the
7992 stack from outside should be considered invalid after this call.
7993 We always expand when there are 1 or fewer items left AFTER an
7994 allocation, so that we can avoid having external pointers exist
7995 across an allocation. */
7996 static void
7997 yyexpandGLRStack (yyGLRStack* yystackp)
7998 {
7999 yyGLRStackItem* yynewItems;
8000 yyGLRStackItem* yyp0, *yyp1;
8001 size_t yynewSize;
8002 size_t yyn;
8003 size_t yysize = yystackp->yynextFree - yystackp->yyitems;
8004 if (YYMAXDEPTH - YYHEADROOM < yysize)
8005 yyMemoryExhausted (yystackp);
8006 yynewSize = 2*yysize;
8007 if (YYMAXDEPTH < yynewSize)
8008 yynewSize = YYMAXDEPTH;
8009 yynewItems = (yyGLRStackItem*) YYMALLOC (yynewSize * sizeof yynewItems[0]);
8010 if (! yynewItems)
8011 yyMemoryExhausted (yystackp);
8012 for (yyp0 = yystackp->yyitems, yyp1 = yynewItems, yyn = yysize;
8013 0 < yyn;
8014 yyn -= 1, yyp0 += 1, yyp1 += 1)
8015 {
8016 *yyp1 = *yyp0;
8017 if (*(yybool *) yyp0)
8018 {
8019 yyGLRState* yys0 = &yyp0->yystate;
8020 yyGLRState* yys1 = &yyp1->yystate;
8021 if (yys0->yypred != YY_NULLPTR)
8022 yys1->yypred =
8023 YYRELOC (yyp0, yyp1, yys0->yypred, yystate);
8024 if (! yys0->yyresolved && yys0->yysemantics.yyfirstVal != YY_NULLPTR)
8025 yys1->yysemantics.yyfirstVal =
8026 YYRELOC (yyp0, yyp1, yys0->yysemantics.yyfirstVal, yyoption);
8027 }
8028 else
8029 {
8030 yySemanticOption* yyv0 = &yyp0->yyoption;
8031 yySemanticOption* yyv1 = &yyp1->yyoption;
8032 if (yyv0->yystate != YY_NULLPTR)
8033 yyv1->yystate = YYRELOC (yyp0, yyp1, yyv0->yystate, yystate);
8034 if (yyv0->yynext != YY_NULLPTR)
8035 yyv1->yynext = YYRELOC (yyp0, yyp1, yyv0->yynext, yyoption);
8036 }
8037 }
8038 if (yystackp->yysplitPoint != YY_NULLPTR)
8039 yystackp->yysplitPoint = YYRELOC (yystackp->yyitems, yynewItems,
8040 yystackp->yysplitPoint, yystate);
8041
8042 for (yyn = 0; yyn < yystackp->yytops.yysize; yyn += 1)
8043 if (yystackp->yytops.yystates[yyn] != YY_NULLPTR)
8044 yystackp->yytops.yystates[yyn] =
8045 YYRELOC (yystackp->yyitems, yynewItems,
8046 yystackp->yytops.yystates[yyn], yystate);
8047 YYFREE (yystackp->yyitems);
8048 yystackp->yyitems = yynewItems;
8049 yystackp->yynextFree = yynewItems + yysize;
8050 yystackp->yyspaceLeft = yynewSize - yysize;
8051 }
8052 #endif
8053
8054 static void
8055 yyfreeGLRStack (yyGLRStack* yystackp)
8056 {
8057 YYFREE (yystackp->yyitems);
8058 yyfreeStateSet (&yystackp->yytops);
8059 }
8060
8061 /** Assuming that YYS is a GLRState somewhere on *YYSTACKP, update the
8062 * splitpoint of *YYSTACKP, if needed, so that it is at least as deep as
8063 * YYS. */
8064 static inline void
8065 yyupdateSplit (yyGLRStack* yystackp, yyGLRState* yys)
8066 {
8067 if (yystackp->yysplitPoint != YY_NULLPTR && yystackp->yysplitPoint > yys)
8068 yystackp->yysplitPoint = yys;
8069 }
8070
8071 /** Invalidate stack #YYK in *YYSTACKP. */
8072 static inline void
8073 yymarkStackDeleted (yyGLRStack* yystackp, size_t yyk)
8074 {
8075 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
8076 yystackp->yylastDeleted = yystackp->yytops.yystates[yyk];
8077 yystackp->yytops.yystates[yyk] = YY_NULLPTR;
8078 }
8079
8080 /** Undelete the last stack in *YYSTACKP that was marked as deleted. Can
8081 only be done once after a deletion, and only when all other stacks have
8082 been deleted. */
8083 static void
8084 yyundeleteLastStack (yyGLRStack* yystackp)
8085 {
8086 if (yystackp->yylastDeleted == YY_NULLPTR || yystackp->yytops.yysize != 0)
8087 return;
8088 yystackp->yytops.yystates[0] = yystackp->yylastDeleted;
8089 yystackp->yytops.yysize = 1;
8090 YYDPRINTF ((stderr, "Restoring last deleted stack as stack #0.\n"));
8091 yystackp->yylastDeleted = YY_NULLPTR;
8092 }
8093
8094 static inline void
8095 yyremoveDeletes (yyGLRStack* yystackp)
8096 {
8097 size_t yyi, yyj;
8098 yyi = yyj = 0;
8099 while (yyj < yystackp->yytops.yysize)
8100 {
8101 if (yystackp->yytops.yystates[yyi] == YY_NULLPTR)
8102 {
8103 if (yyi == yyj)
8104 {
8105 YYDPRINTF ((stderr, "Removing dead stacks.\n"));
8106 }
8107 yystackp->yytops.yysize -= 1;
8108 }
8109 else
8110 {
8111 yystackp->yytops.yystates[yyj] = yystackp->yytops.yystates[yyi];
8112 /* In the current implementation, it's unnecessary to copy
8113 yystackp->yytops.yylookaheadNeeds[yyi] since, after
8114 yyremoveDeletes returns, the parser immediately either enters
8115 deterministic operation or shifts a token. However, it doesn't
8116 hurt, and the code might evolve to need it. */
8117 yystackp->yytops.yylookaheadNeeds[yyj] =
8118 yystackp->yytops.yylookaheadNeeds[yyi];
8119 if (yyj != yyi)
8120 {
8121 YYDPRINTF ((stderr, "Rename stack %lu -> %lu.\n",
8122 (unsigned long) yyi, (unsigned long) yyj));
8123 }
8124 yyj += 1;
8125 }
8126 yyi += 1;
8127 }
8128 }
8129
8130 /** Shift to a new state on stack #YYK of *YYSTACKP, corresponding to LR
8131 * state YYLRSTATE, at input position YYPOSN, with (resolved) semantic
8132 * value *YYVALP and source location *YYLOCP. */
8133 static inline void
8134 yyglrShift (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
8135 size_t yyposn,
8136 YYSTYPE* yyvalp)
8137 {
8138 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
8139
8140 yynewState->yylrState = yylrState;
8141 yynewState->yyposn = yyposn;
8142 yynewState->yyresolved = yytrue;
8143 yynewState->yypred = yystackp->yytops.yystates[yyk];
8144 yynewState->yysemantics.yysval = *yyvalp;
8145 yystackp->yytops.yystates[yyk] = yynewState;
8146
8147 YY_RESERVE_GLRSTACK (yystackp);
8148 }
8149
8150 /** Shift stack #YYK of *YYSTACKP, to a new state corresponding to LR
8151 * state YYLRSTATE, at input position YYPOSN, with the (unresolved)
8152 * semantic value of YYRHS under the action for YYRULE. */
8153 static inline void
8154 yyglrShiftDefer (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
8155 size_t yyposn, yyGLRState* yyrhs, yyRuleNum yyrule)
8156 {
8157 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
8158 YYASSERT (yynewState->yyisState);
8159
8160 yynewState->yylrState = yylrState;
8161 yynewState->yyposn = yyposn;
8162 yynewState->yyresolved = yyfalse;
8163 yynewState->yypred = yystackp->yytops.yystates[yyk];
8164 yynewState->yysemantics.yyfirstVal = YY_NULLPTR;
8165 yystackp->yytops.yystates[yyk] = yynewState;
8166
8167 /* Invokes YY_RESERVE_GLRSTACK. */
8168 yyaddDeferredAction (yystackp, yyk, yynewState, yyrhs, yyrule);
8169 }
8170
8171 #if !YYDEBUG
8172 # define YY_REDUCE_PRINT(Args)
8173 #else
8174 # define YY_REDUCE_PRINT(Args) \
8175 do { \
8176 if (yydebug) \
8177 yy_reduce_print Args; \
8178 } while (0)
8179
8180 /*----------------------------------------------------------------------.
8181 | Report that stack #YYK of *YYSTACKP is going to be reduced by YYRULE. |
8182 `----------------------------------------------------------------------*/
8183
8184 static inline void
8185 yy_reduce_print (int yynormal, yyGLRStackItem* yyvsp, size_t yyk,
8186 yyRuleNum yyrule, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8187 {
8188 int yynrhs = yyrhsLength (yyrule);
8189 int yyi;
8190 YYFPRINTF (stderr, "Reducing stack %lu by rule %d (line %lu):\n",
8191 (unsigned long) yyk, yyrule - 1,
8192 (unsigned long) yyrline[yyrule]);
8193 if (! yynormal)
8194 yyfillin (yyvsp, 1, -yynrhs);
8195 /* The symbols being reduced. */
8196 for (yyi = 0; yyi < yynrhs; yyi++)
8197 {
8198 YYFPRINTF (stderr, " $%d = ", yyi + 1);
8199 yy_symbol_print (stderr,
8200 yystos[yyvsp[yyi - yynrhs + 1].yystate.yylrState],
8201 &yyvsp[yyi - yynrhs + 1].yystate.yysemantics.yysval
8202 , P, tokens, index);
8203 if (!yyvsp[yyi - yynrhs + 1].yystate.yyresolved)
8204 YYFPRINTF (stderr, " (unresolved)");
8205 YYFPRINTF (stderr, "\n");
8206 }
8207 }
8208 #endif
8209
8210 /** Pop the symbols consumed by reduction #YYRULE from the top of stack
8211 * #YYK of *YYSTACKP, and perform the appropriate semantic action on their
8212 * semantic values. Assumes that all ambiguities in semantic values
8213 * have been previously resolved. Set *YYVALP to the resulting value,
8214 * and *YYLOCP to the computed location (if any). Return value is as
8215 * for userAction. */
8216 static inline YYRESULTTAG
8217 yydoAction (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
8218 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8219 {
8220 int yynrhs = yyrhsLength (yyrule);
8221
8222 if (yystackp->yysplitPoint == YY_NULLPTR)
8223 {
8224 /* Standard special case: single stack. */
8225 yyGLRStackItem* yyrhs = (yyGLRStackItem*) yystackp->yytops.yystates[yyk];
8226 YYASSERT (yyk == 0);
8227 yystackp->yynextFree -= yynrhs;
8228 yystackp->yyspaceLeft += yynrhs;
8229 yystackp->yytops.yystates[0] = & yystackp->yynextFree[-1].yystate;
8230 YY_REDUCE_PRINT ((1, yyrhs, yyk, yyrule, P, tokens, index));
8231 return yyuserAction (yyrule, yynrhs, yyrhs, yystackp,
8232 yyvalp, P, tokens, index);
8233 }
8234 else
8235 {
8236 int yyi;
8237 yyGLRState* yys;
8238 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
8239 yys = yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred
8240 = yystackp->yytops.yystates[yyk];
8241 for (yyi = 0; yyi < yynrhs; yyi += 1)
8242 {
8243 yys = yys->yypred;
8244 YYASSERT (yys);
8245 }
8246 yyupdateSplit (yystackp, yys);
8247 yystackp->yytops.yystates[yyk] = yys;
8248 YY_REDUCE_PRINT ((0, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1, yyk, yyrule, P, tokens, index));
8249 return yyuserAction (yyrule, yynrhs, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
8250 yystackp, yyvalp, P, tokens, index);
8251 }
8252 }
8253
8254 /** Pop items off stack #YYK of *YYSTACKP according to grammar rule YYRULE,
8255 * and push back on the resulting nonterminal symbol. Perform the
8256 * semantic action associated with YYRULE and store its value with the
8257 * newly pushed state, if YYFORCEEVAL or if *YYSTACKP is currently
8258 * unambiguous. Otherwise, store the deferred semantic action with
8259 * the new state. If the new state would have an identical input
8260 * position, LR state, and predecessor to an existing state on the stack,
8261 * it is identified with that existing state, eliminating stack #YYK from
8262 * *YYSTACKP. In this case, the semantic value is
8263 * added to the options for the existing state's semantic value.
8264 */
8265 static inline YYRESULTTAG
8266 yyglrReduce (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
8267 yybool yyforceEval, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8268 {
8269 size_t yyposn = yystackp->yytops.yystates[yyk]->yyposn;
8270
8271 if (yyforceEval || yystackp->yysplitPoint == YY_NULLPTR)
8272 {
8273 YYSTYPE yysval;
8274
8275 YYRESULTTAG yyflag = yydoAction (yystackp, yyk, yyrule, &yysval, P, tokens, index);
8276 if (yyflag == yyerr && yystackp->yysplitPoint != YY_NULLPTR)
8277 {
8278 YYDPRINTF ((stderr, "Parse on stack %lu rejected by rule #%d.\n",
8279 (unsigned long) yyk, yyrule - 1));
8280 }
8281 if (yyflag != yyok)
8282 return yyflag;
8283 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyrule], &yysval, &yyloc);
8284 yyglrShift (yystackp, yyk,
8285 yyLRgotoState (yystackp->yytops.yystates[yyk]->yylrState,
8286 yylhsNonterm (yyrule)),
8287 yyposn, &yysval);
8288 }
8289 else
8290 {
8291 size_t yyi;
8292 int yyn;
8293 yyGLRState* yys, *yys0 = yystackp->yytops.yystates[yyk];
8294 yyStateNum yynewLRState;
8295
8296 for (yys = yystackp->yytops.yystates[yyk], yyn = yyrhsLength (yyrule);
8297 0 < yyn; yyn -= 1)
8298 {
8299 yys = yys->yypred;
8300 YYASSERT (yys);
8301 }
8302 yyupdateSplit (yystackp, yys);
8303 yynewLRState = yyLRgotoState (yys->yylrState, yylhsNonterm (yyrule));
8304 YYDPRINTF ((stderr,
8305 "Reduced stack %lu by rule #%d; action deferred. "
8306 "Now in state %d.\n",
8307 (unsigned long) yyk, yyrule - 1, yynewLRState));
8308 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
8309 if (yyi != yyk && yystackp->yytops.yystates[yyi] != YY_NULLPTR)
8310 {
8311 yyGLRState *yysplit = yystackp->yysplitPoint;
8312 yyGLRState *yyp = yystackp->yytops.yystates[yyi];
8313 while (yyp != yys && yyp != yysplit && yyp->yyposn >= yyposn)
8314 {
8315 if (yyp->yylrState == yynewLRState && yyp->yypred == yys)
8316 {
8317 yyaddDeferredAction (yystackp, yyk, yyp, yys0, yyrule);
8318 yymarkStackDeleted (yystackp, yyk);
8319 YYDPRINTF ((stderr, "Merging stack %lu into stack %lu.\n",
8320 (unsigned long) yyk,
8321 (unsigned long) yyi));
8322 return yyok;
8323 }
8324 yyp = yyp->yypred;
8325 }
8326 }
8327 yystackp->yytops.yystates[yyk] = yys;
8328 yyglrShiftDefer (yystackp, yyk, yynewLRState, yyposn, yys0, yyrule);
8329 }
8330 return yyok;
8331 }
8332
8333 static size_t
8334 yysplitStack (yyGLRStack* yystackp, size_t yyk)
8335 {
8336 if (yystackp->yysplitPoint == YY_NULLPTR)
8337 {
8338 YYASSERT (yyk == 0);
8339 yystackp->yysplitPoint = yystackp->yytops.yystates[yyk];
8340 }
8341 if (yystackp->yytops.yysize >= yystackp->yytops.yycapacity)
8342 {
8343 yyGLRState** yynewStates;
8344 yybool* yynewLookaheadNeeds;
8345
8346 yynewStates = YY_NULLPTR;
8347
8348 if (yystackp->yytops.yycapacity
8349 > (YYSIZEMAX / (2 * sizeof yynewStates[0])))
8350 yyMemoryExhausted (yystackp);
8351 yystackp->yytops.yycapacity *= 2;
8352
8353 yynewStates =
8354 (yyGLRState**) YYREALLOC (yystackp->yytops.yystates,
8355 (yystackp->yytops.yycapacity
8356 * sizeof yynewStates[0]));
8357 if (yynewStates == YY_NULLPTR)
8358 yyMemoryExhausted (yystackp);
8359 yystackp->yytops.yystates = yynewStates;
8360
8361 yynewLookaheadNeeds =
8362 (yybool*) YYREALLOC (yystackp->yytops.yylookaheadNeeds,
8363 (yystackp->yytops.yycapacity
8364 * sizeof yynewLookaheadNeeds[0]));
8365 if (yynewLookaheadNeeds == YY_NULLPTR)
8366 yyMemoryExhausted (yystackp);
8367 yystackp->yytops.yylookaheadNeeds = yynewLookaheadNeeds;
8368 }
8369 yystackp->yytops.yystates[yystackp->yytops.yysize]
8370 = yystackp->yytops.yystates[yyk];
8371 yystackp->yytops.yylookaheadNeeds[yystackp->yytops.yysize]
8372 = yystackp->yytops.yylookaheadNeeds[yyk];
8373 yystackp->yytops.yysize += 1;
8374 return yystackp->yytops.yysize-1;
8375 }
8376
8377 /** True iff YYY0 and YYY1 represent identical options at the top level.
8378 * That is, they represent the same rule applied to RHS symbols
8379 * that produce the same terminal symbols. */
8380 static yybool
8381 yyidenticalOptions (yySemanticOption* yyy0, yySemanticOption* yyy1)
8382 {
8383 if (yyy0->yyrule == yyy1->yyrule)
8384 {
8385 yyGLRState *yys0, *yys1;
8386 int yyn;
8387 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
8388 yyn = yyrhsLength (yyy0->yyrule);
8389 yyn > 0;
8390 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
8391 if (yys0->yyposn != yys1->yyposn)
8392 return yyfalse;
8393 return yytrue;
8394 }
8395 else
8396 return yyfalse;
8397 }
8398
8399 /** Assuming identicalOptions (YYY0,YYY1), destructively merge the
8400 * alternative semantic values for the RHS-symbols of YYY1 and YYY0. */
8401 static void
8402 yymergeOptionSets (yySemanticOption* yyy0, yySemanticOption* yyy1)
8403 {
8404 yyGLRState *yys0, *yys1;
8405 int yyn;
8406 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
8407 yyn = yyrhsLength (yyy0->yyrule);
8408 yyn > 0;
8409 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
8410 {
8411 if (yys0 == yys1)
8412 break;
8413 else if (yys0->yyresolved)
8414 {
8415 yys1->yyresolved = yytrue;
8416 yys1->yysemantics.yysval = yys0->yysemantics.yysval;
8417 }
8418 else if (yys1->yyresolved)
8419 {
8420 yys0->yyresolved = yytrue;
8421 yys0->yysemantics.yysval = yys1->yysemantics.yysval;
8422 }
8423 else
8424 {
8425 yySemanticOption** yyz0p = &yys0->yysemantics.yyfirstVal;
8426 yySemanticOption* yyz1 = yys1->yysemantics.yyfirstVal;
8427 while (yytrue)
8428 {
8429 if (yyz1 == *yyz0p || yyz1 == YY_NULLPTR)
8430 break;
8431 else if (*yyz0p == YY_NULLPTR)
8432 {
8433 *yyz0p = yyz1;
8434 break;
8435 }
8436 else if (*yyz0p < yyz1)
8437 {
8438 yySemanticOption* yyz = *yyz0p;
8439 *yyz0p = yyz1;
8440 yyz1 = yyz1->yynext;
8441 (*yyz0p)->yynext = yyz;
8442 }
8443 yyz0p = &(*yyz0p)->yynext;
8444 }
8445 yys1->yysemantics.yyfirstVal = yys0->yysemantics.yyfirstVal;
8446 }
8447 }
8448 }
8449
8450 /** Y0 and Y1 represent two possible actions to take in a given
8451 * parsing state; return 0 if no combination is possible,
8452 * 1 if user-mergeable, 2 if Y0 is preferred, 3 if Y1 is preferred. */
8453 static int
8454 yypreference (yySemanticOption* y0, yySemanticOption* y1)
8455 {
8456 yyRuleNum r0 = y0->yyrule, r1 = y1->yyrule;
8457 int p0 = yydprec[r0], p1 = yydprec[r1];
8458
8459 if (p0 == p1)
8460 {
8461 if (yymerger[r0] == 0 || yymerger[r0] != yymerger[r1])
8462 return 0;
8463 else
8464 return 1;
8465 }
8466 if (p0 == 0 || p1 == 0)
8467 return 0;
8468 if (p0 < p1)
8469 return 3;
8470 if (p1 < p0)
8471 return 2;
8472 return 0;
8473 }
8474
8475 static YYRESULTTAG yyresolveValue (yyGLRState* yys,
8476 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index);
8477
8478
8479 /** Resolve the previous YYN states starting at and including state YYS
8480 * on *YYSTACKP. If result != yyok, some states may have been left
8481 * unresolved possibly with empty semantic option chains. Regardless
8482 * of whether result = yyok, each state has been left with consistent
8483 * data so that yydestroyGLRState can be invoked if necessary. */
8484 static YYRESULTTAG
8485 yyresolveStates (yyGLRState* yys, int yyn,
8486 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8487 {
8488 if (0 < yyn)
8489 {
8490 YYASSERT (yys->yypred);
8491 YYCHK (yyresolveStates (yys->yypred, yyn-1, yystackp, P, tokens, index));
8492 if (! yys->yyresolved)
8493 YYCHK (yyresolveValue (yys, yystackp, P, tokens, index));
8494 }
8495 return yyok;
8496 }
8497
8498 /** Resolve the states for the RHS of YYOPT on *YYSTACKP, perform its
8499 * user action, and return the semantic value and location in *YYVALP
8500 * and *YYLOCP. Regardless of whether result = yyok, all RHS states
8501 * have been destroyed (assuming the user action destroys all RHS
8502 * semantic values if invoked). */
8503 static YYRESULTTAG
8504 yyresolveAction (yySemanticOption* yyopt, yyGLRStack* yystackp,
8505 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8506 {
8507 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
8508 int yynrhs = yyrhsLength (yyopt->yyrule);
8509 YYRESULTTAG yyflag =
8510 yyresolveStates (yyopt->yystate, yynrhs, yystackp, P, tokens, index);
8511 if (yyflag != yyok)
8512 {
8513 yyGLRState *yys;
8514 for (yys = yyopt->yystate; yynrhs > 0; yys = yys->yypred, yynrhs -= 1)
8515 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
8516 return yyflag;
8517 }
8518
8519 yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred = yyopt->yystate;
8520 {
8521 int yychar_current = yychar;
8522 YYSTYPE yylval_current = yylval;
8523 yychar = yyopt->yyrawchar;
8524 yylval = yyopt->yyval;
8525 yyflag = yyuserAction (yyopt->yyrule, yynrhs,
8526 yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
8527 yystackp, yyvalp, P, tokens, index);
8528 yychar = yychar_current;
8529 yylval = yylval_current;
8530 }
8531 return yyflag;
8532 }
8533
8534 #if YYDEBUG
8535 static void
8536 yyreportTree (yySemanticOption* yyx, int yyindent)
8537 {
8538 int yynrhs = yyrhsLength (yyx->yyrule);
8539 int yyi;
8540 yyGLRState* yys;
8541 yyGLRState* yystates[1 + YYMAXRHS];
8542 yyGLRState yyleftmost_state;
8543
8544 for (yyi = yynrhs, yys = yyx->yystate; 0 < yyi; yyi -= 1, yys = yys->yypred)
8545 yystates[yyi] = yys;
8546 if (yys == YY_NULLPTR)
8547 {
8548 yyleftmost_state.yyposn = 0;
8549 yystates[0] = &yyleftmost_state;
8550 }
8551 else
8552 yystates[0] = yys;
8553
8554 if (yyx->yystate->yyposn < yys->yyposn + 1)
8555 YYFPRINTF (stderr, "%*s%s -> <Rule %d, empty>\n",
8556 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
8557 yyx->yyrule - 1);
8558 else
8559 YYFPRINTF (stderr, "%*s%s -> <Rule %d, tokens %lu .. %lu>\n",
8560 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
8561 yyx->yyrule - 1, (unsigned long) (yys->yyposn + 1),
8562 (unsigned long) yyx->yystate->yyposn);
8563 for (yyi = 1; yyi <= yynrhs; yyi += 1)
8564 {
8565 if (yystates[yyi]->yyresolved)
8566 {
8567 if (yystates[yyi-1]->yyposn+1 > yystates[yyi]->yyposn)
8568 YYFPRINTF (stderr, "%*s%s <empty>\n", yyindent+2, "",
8569 yytokenName (yystos[yystates[yyi]->yylrState]));
8570 else
8571 YYFPRINTF (stderr, "%*s%s <tokens %lu .. %lu>\n", yyindent+2, "",
8572 yytokenName (yystos[yystates[yyi]->yylrState]),
8573 (unsigned long) (yystates[yyi-1]->yyposn + 1),
8574 (unsigned long) yystates[yyi]->yyposn);
8575 }
8576 else
8577 yyreportTree (yystates[yyi]->yysemantics.yyfirstVal, yyindent+2);
8578 }
8579 }
8580 #endif
8581
8582 static YYRESULTTAG
8583 yyreportAmbiguity (yySemanticOption* yyx0,
8584 yySemanticOption* yyx1, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8585 {
8586 YYUSE (yyx0);
8587 YYUSE (yyx1);
8588
8589 #if YYDEBUG
8590 YYFPRINTF (stderr, "Ambiguity detected.\n");
8591 YYFPRINTF (stderr, "Option 1,\n");
8592 yyreportTree (yyx0, 2);
8593 YYFPRINTF (stderr, "\nOption 2,\n");
8594 yyreportTree (yyx1, 2);
8595 YYFPRINTF (stderr, "\n");
8596 #endif
8597
8598 yyerror (P, tokens, index, YY_("syntax is ambiguous"));
8599 return yyabort;
8600 }
8601
8602 /** Resolve the ambiguity represented in state YYS in *YYSTACKP,
8603 * perform the indicated actions, and set the semantic value of YYS.
8604 * If result != yyok, the chain of semantic options in YYS has been
8605 * cleared instead or it has been left unmodified except that
8606 * redundant options may have been removed. Regardless of whether
8607 * result = yyok, YYS has been left with consistent data so that
8608 * yydestroyGLRState can be invoked if necessary. */
8609 static YYRESULTTAG
8610 yyresolveValue (yyGLRState* yys, yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8611 {
8612 yySemanticOption* yyoptionList = yys->yysemantics.yyfirstVal;
8613 yySemanticOption* yybest = yyoptionList;
8614 yySemanticOption** yypp;
8615 yybool yymerge = yyfalse;
8616 YYSTYPE yysval;
8617 YYRESULTTAG yyflag;
8618
8619 for (yypp = &yyoptionList->yynext; *yypp != YY_NULLPTR; )
8620 {
8621 yySemanticOption* yyp = *yypp;
8622
8623 if (yyidenticalOptions (yybest, yyp))
8624 {
8625 yymergeOptionSets (yybest, yyp);
8626 *yypp = yyp->yynext;
8627 }
8628 else
8629 {
8630 switch (yypreference (yybest, yyp))
8631 {
8632 case 0:
8633 return yyreportAmbiguity (yybest, yyp, P, tokens, index);
8634 break;
8635 case 1:
8636 yymerge = yytrue;
8637 break;
8638 case 2:
8639 break;
8640 case 3:
8641 yybest = yyp;
8642 yymerge = yyfalse;
8643 break;
8644 default:
8645 /* This cannot happen so it is not worth a YYASSERT (yyfalse),
8646 but some compilers complain if the default case is
8647 omitted. */
8648 break;
8649 }
8650 yypp = &yyp->yynext;
8651 }
8652 }
8653
8654 if (yymerge)
8655 {
8656 yySemanticOption* yyp;
8657 int yyprec = yydprec[yybest->yyrule];
8658 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
8659 if (yyflag == yyok)
8660 for (yyp = yybest->yynext; yyp != YY_NULLPTR; yyp = yyp->yynext)
8661 {
8662 if (yyprec == yydprec[yyp->yyrule])
8663 {
8664 YYSTYPE yysval_other;
8665 yyflag = yyresolveAction (yyp, yystackp, &yysval_other, P, tokens, index);
8666 if (yyflag != yyok)
8667 {
8668 yydestruct ("Cleanup: discarding incompletely merged value for",
8669 yystos[yys->yylrState],
8670 &yysval, P, tokens, index);
8671 break;
8672 }
8673 yyuserMerge (yymerger[yyp->yyrule], &yysval, &yysval_other);
8674 }
8675 }
8676 }
8677 else
8678 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
8679
8680 if (yyflag == yyok)
8681 {
8682 yys->yyresolved = yytrue;
8683 yys->yysemantics.yysval = yysval;
8684 }
8685 else
8686 yys->yysemantics.yyfirstVal = YY_NULLPTR;
8687 return yyflag;
8688 }
8689
8690 static YYRESULTTAG
8691 yyresolveStack (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8692 {
8693 if (yystackp->yysplitPoint != YY_NULLPTR)
8694 {
8695 yyGLRState* yys;
8696 int yyn;
8697
8698 for (yyn = 0, yys = yystackp->yytops.yystates[0];
8699 yys != yystackp->yysplitPoint;
8700 yys = yys->yypred, yyn += 1)
8701 continue;
8702 YYCHK (yyresolveStates (yystackp->yytops.yystates[0], yyn, yystackp
8703 , P, tokens, index));
8704 }
8705 return yyok;
8706 }
8707
8708 static void
8709 yycompressStack (yyGLRStack* yystackp)
8710 {
8711 yyGLRState* yyp, *yyq, *yyr;
8712
8713 if (yystackp->yytops.yysize != 1 || yystackp->yysplitPoint == YY_NULLPTR)
8714 return;
8715
8716 for (yyp = yystackp->yytops.yystates[0], yyq = yyp->yypred, yyr = YY_NULLPTR;
8717 yyp != yystackp->yysplitPoint;
8718 yyr = yyp, yyp = yyq, yyq = yyp->yypred)
8719 yyp->yypred = yyr;
8720
8721 yystackp->yyspaceLeft += yystackp->yynextFree - yystackp->yyitems;
8722 yystackp->yynextFree = ((yyGLRStackItem*) yystackp->yysplitPoint) + 1;
8723 yystackp->yyspaceLeft -= yystackp->yynextFree - yystackp->yyitems;
8724 yystackp->yysplitPoint = YY_NULLPTR;
8725 yystackp->yylastDeleted = YY_NULLPTR;
8726
8727 while (yyr != YY_NULLPTR)
8728 {
8729 yystackp->yynextFree->yystate = *yyr;
8730 yyr = yyr->yypred;
8731 yystackp->yynextFree->yystate.yypred = &yystackp->yynextFree[-1].yystate;
8732 yystackp->yytops.yystates[0] = &yystackp->yynextFree->yystate;
8733 yystackp->yynextFree += 1;
8734 yystackp->yyspaceLeft -= 1;
8735 }
8736 }
8737
8738 static YYRESULTTAG
8739 yyprocessOneStack (yyGLRStack* yystackp, size_t yyk,
8740 size_t yyposn, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8741 {
8742 while (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
8743 {
8744 yyStateNum yystate = yystackp->yytops.yystates[yyk]->yylrState;
8745 YYDPRINTF ((stderr, "Stack %lu Entering state %d\n",
8746 (unsigned long) yyk, yystate));
8747
8748 YYASSERT (yystate != YYFINAL);
8749
8750 if (yyisDefaultedState (yystate))
8751 {
8752 YYRESULTTAG yyflag;
8753 yyRuleNum yyrule = yydefaultAction (yystate);
8754 if (yyrule == 0)
8755 {
8756 YYDPRINTF ((stderr, "Stack %lu dies.\n",
8757 (unsigned long) yyk));
8758 yymarkStackDeleted (yystackp, yyk);
8759 return yyok;
8760 }
8761 yyflag = yyglrReduce (yystackp, yyk, yyrule, yyimmediate[yyrule], P, tokens, index);
8762 if (yyflag == yyerr)
8763 {
8764 YYDPRINTF ((stderr,
8765 "Stack %lu dies "
8766 "(predicate failure or explicit user error).\n",
8767 (unsigned long) yyk));
8768 yymarkStackDeleted (yystackp, yyk);
8769 return yyok;
8770 }
8771 if (yyflag != yyok)
8772 return yyflag;
8773 }
8774 else
8775 {
8776 yySymbol yytoken;
8777 int yyaction;
8778 const short* yyconflicts;
8779
8780 yystackp->yytops.yylookaheadNeeds[yyk] = yytrue;
8781 if (yychar == YYEMPTY)
8782 {
8783 YYDPRINTF ((stderr, "Reading a token: "));
8784 yychar = yylex (&yylval, P, tokens, index);
8785 }
8786
8787 if (yychar <= YYEOF)
8788 {
8789 yychar = yytoken = YYEOF;
8790 YYDPRINTF ((stderr, "Now at end of input.\n"));
8791 }
8792 else
8793 {
8794 yytoken = YYTRANSLATE (yychar);
8795 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
8796 }
8797
8798 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
8799
8800 while (*yyconflicts != 0)
8801 {
8802 YYRESULTTAG yyflag;
8803 size_t yynewStack = yysplitStack (yystackp, yyk);
8804 YYDPRINTF ((stderr, "Splitting off stack %lu from %lu.\n",
8805 (unsigned long) yynewStack,
8806 (unsigned long) yyk));
8807 yyflag = yyglrReduce (yystackp, yynewStack,
8808 *yyconflicts,
8809 yyimmediate[*yyconflicts], P, tokens, index);
8810 if (yyflag == yyok)
8811 YYCHK (yyprocessOneStack (yystackp, yynewStack,
8812 yyposn, P, tokens, index));
8813 else if (yyflag == yyerr)
8814 {
8815 YYDPRINTF ((stderr, "Stack %lu dies.\n",
8816 (unsigned long) yynewStack));
8817 yymarkStackDeleted (yystackp, yynewStack);
8818 }
8819 else
8820 return yyflag;
8821 yyconflicts += 1;
8822 }
8823
8824 if (yyisShiftAction (yyaction))
8825 break;
8826 else if (yyisErrorAction (yyaction))
8827 {
8828 YYDPRINTF ((stderr, "Stack %lu dies.\n",
8829 (unsigned long) yyk));
8830 yymarkStackDeleted (yystackp, yyk);
8831 break;
8832 }
8833 else
8834 {
8835 YYRESULTTAG yyflag = yyglrReduce (yystackp, yyk, -yyaction,
8836 yyimmediate[-yyaction], P, tokens, index);
8837 if (yyflag == yyerr)
8838 {
8839 YYDPRINTF ((stderr,
8840 "Stack %lu dies "
8841 "(predicate failure or explicit user error).\n",
8842 (unsigned long) yyk));
8843 yymarkStackDeleted (yystackp, yyk);
8844 break;
8845 }
8846 else if (yyflag != yyok)
8847 return yyflag;
8848 }
8849 }
8850 }
8851 return yyok;
8852 }
8853
8854 static void
8855 yyreportSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8856 {
8857 if (yystackp->yyerrState != 0)
8858 return;
8859 #if ! YYERROR_VERBOSE
8860 yyerror (P, tokens, index, YY_("syntax error"));
8861 #else
8862 {
8863 yySymbol yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
8864 size_t yysize0 = yytnamerr (YY_NULLPTR, yytokenName (yytoken));
8865 size_t yysize = yysize0;
8866 yybool yysize_overflow = yyfalse;
8867 char* yymsg = YY_NULLPTR;
8868 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
8869 /* Internationalized format string. */
8870 const char *yyformat = YY_NULLPTR;
8871 /* Arguments of yyformat. */
8872 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
8873 /* Number of reported tokens (one for the "unexpected", one per
8874 "expected"). */
8875 int yycount = 0;
8876
8877 /* There are many possibilities here to consider:
8878 - If this state is a consistent state with a default action, then
8879 the only way this function was invoked is if the default action
8880 is an error action. In that case, don't check for expected
8881 tokens because there are none.
8882 - The only way there can be no lookahead present (in yychar) is if
8883 this state is a consistent state with a default action. Thus,
8884 detecting the absence of a lookahead is sufficient to determine
8885 that there is no unexpected or expected token to report. In that
8886 case, just report a simple "syntax error".
8887 - Don't assume there isn't a lookahead just because this state is a
8888 consistent state with a default action. There might have been a
8889 previous inconsistent state, consistent state with a non-default
8890 action, or user semantic action that manipulated yychar.
8891 - Of course, the expected token list depends on states to have
8892 correct lookahead information, and it depends on the parser not
8893 to perform extra reductions after fetching a lookahead from the
8894 scanner and before detecting a syntax error. Thus, state merging
8895 (from LALR or IELR) and default reductions corrupt the expected
8896 token list. However, the list is correct for canonical LR with
8897 one exception: it will still contain any token that will not be
8898 accepted due to an error action in a later state.
8899 */
8900 if (yytoken != YYEMPTY)
8901 {
8902 int yyn = yypact[yystackp->yytops.yystates[0]->yylrState];
8903 yyarg[yycount++] = yytokenName (yytoken);
8904 if (!yypact_value_is_default (yyn))
8905 {
8906 /* Start YYX at -YYN if negative to avoid negative indexes in
8907 YYCHECK. In other words, skip the first -YYN actions for this
8908 state because they are default actions. */
8909 int yyxbegin = yyn < 0 ? -yyn : 0;
8910 /* Stay within bounds of both yycheck and yytname. */
8911 int yychecklim = YYLAST - yyn + 1;
8912 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
8913 int yyx;
8914 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
8915 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
8916 && !yytable_value_is_error (yytable[yyx + yyn]))
8917 {
8918 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
8919 {
8920 yycount = 1;
8921 yysize = yysize0;
8922 break;
8923 }
8924 yyarg[yycount++] = yytokenName (yyx);
8925 {
8926 size_t yysz = yysize + yytnamerr (YY_NULLPTR, yytokenName (yyx));
8927 yysize_overflow |= yysz < yysize;
8928 yysize = yysz;
8929 }
8930 }
8931 }
8932 }
8933
8934 switch (yycount)
8935 {
8936 #define YYCASE_(N, S) \
8937 case N: \
8938 yyformat = S; \
8939 break
8940 default: /* Avoid compiler warnings. */
8941 YYCASE_(0, YY_("syntax error"));
8942 YYCASE_(1, YY_("syntax error, unexpected %s"));
8943 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
8944 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
8945 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
8946 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
8947 #undef YYCASE_
8948 }
8949
8950 {
8951 size_t yysz = yysize + strlen (yyformat);
8952 yysize_overflow |= yysz < yysize;
8953 yysize = yysz;
8954 }
8955
8956 if (!yysize_overflow)
8957 yymsg = (char *) YYMALLOC (yysize);
8958
8959 if (yymsg)
8960 {
8961 char *yyp = yymsg;
8962 int yyi = 0;
8963 while ((*yyp = *yyformat))
8964 {
8965 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
8966 {
8967 yyp += yytnamerr (yyp, yyarg[yyi++]);
8968 yyformat += 2;
8969 }
8970 else
8971 {
8972 yyp++;
8973 yyformat++;
8974 }
8975 }
8976 yyerror (P, tokens, index, yymsg);
8977 YYFREE (yymsg);
8978 }
8979 else
8980 {
8981 yyerror (P, tokens, index, YY_("syntax error"));
8982 yyMemoryExhausted (yystackp);
8983 }
8984 }
8985 #endif /* YYERROR_VERBOSE */
8986 yynerrs += 1;
8987 }
8988
8989 /* Recover from a syntax error on *YYSTACKP, assuming that *YYSTACKP->YYTOKENP,
8990 yylval, and yylloc are the syntactic category, semantic value, and location
8991 of the lookahead. */
8992 static void
8993 yyrecoverSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8994 {
8995 size_t yyk;
8996 int yyj;
8997
8998 if (yystackp->yyerrState == 3)
8999 /* We just shifted the error token and (perhaps) took some
9000 reductions. Skip tokens until we can proceed. */
9001 while (yytrue)
9002 {
9003 yySymbol yytoken;
9004 if (yychar == YYEOF)
9005 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
9006 if (yychar != YYEMPTY)
9007 {
9008 yytoken = YYTRANSLATE (yychar);
9009 yydestruct ("Error: discarding",
9010 yytoken, &yylval, P, tokens, index);
9011 }
9012 YYDPRINTF ((stderr, "Reading a token: "));
9013 yychar = yylex (&yylval, P, tokens, index);
9014 if (yychar <= YYEOF)
9015 {
9016 yychar = yytoken = YYEOF;
9017 YYDPRINTF ((stderr, "Now at end of input.\n"));
9018 }
9019 else
9020 {
9021 yytoken = YYTRANSLATE (yychar);
9022 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
9023 }
9024 yyj = yypact[yystackp->yytops.yystates[0]->yylrState];
9025 if (yypact_value_is_default (yyj))
9026 return;
9027 yyj += yytoken;
9028 if (yyj < 0 || YYLAST < yyj || yycheck[yyj] != yytoken)
9029 {
9030 if (yydefact[yystackp->yytops.yystates[0]->yylrState] != 0)
9031 return;
9032 }
9033 else if (! yytable_value_is_error (yytable[yyj]))
9034 return;
9035 }
9036
9037 /* Reduce to one stack. */
9038 for (yyk = 0; yyk < yystackp->yytops.yysize; yyk += 1)
9039 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
9040 break;
9041 if (yyk >= yystackp->yytops.yysize)
9042 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
9043 for (yyk += 1; yyk < yystackp->yytops.yysize; yyk += 1)
9044 yymarkStackDeleted (yystackp, yyk);
9045 yyremoveDeletes (yystackp);
9046 yycompressStack (yystackp);
9047
9048 /* Now pop stack until we find a state that shifts the error token. */
9049 yystackp->yyerrState = 3;
9050 while (yystackp->yytops.yystates[0] != YY_NULLPTR)
9051 {
9052 yyGLRState *yys = yystackp->yytops.yystates[0];
9053 yyj = yypact[yys->yylrState];
9054 if (! yypact_value_is_default (yyj))
9055 {
9056 yyj += YYTERROR;
9057 if (0 <= yyj && yyj <= YYLAST && yycheck[yyj] == YYTERROR
9058 && yyisShiftAction (yytable[yyj]))
9059 {
9060 /* Shift the error token. */
9061 YY_SYMBOL_PRINT ("Shifting", yystos[yytable[yyj]],
9062 &yylval, &yyerrloc);
9063 yyglrShift (yystackp, 0, yytable[yyj],
9064 yys->yyposn, &yylval);
9065 yys = yystackp->yytops.yystates[0];
9066 break;
9067 }
9068 }
9069 if (yys->yypred != YY_NULLPTR)
9070 yydestroyGLRState ("Error: popping", yys, P, tokens, index);
9071 yystackp->yytops.yystates[0] = yys->yypred;
9072 yystackp->yynextFree -= 1;
9073 yystackp->yyspaceLeft += 1;
9074 }
9075 if (yystackp->yytops.yystates[0] == YY_NULLPTR)
9076 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
9077 }
9078
9079 #define YYCHK1(YYE) \
9080 do { \
9081 switch (YYE) { \
9082 case yyok: \
9083 break; \
9084 case yyabort: \
9085 goto yyabortlab; \
9086 case yyaccept: \
9087 goto yyacceptlab; \
9088 case yyerr: \
9089 goto yyuser_error; \
9090 default: \
9091 goto yybuglab; \
9092 } \
9093 } while (0)
9094
9095 /*----------.
9096 | yyparse. |
9097 `----------*/
9098
9099 int
9100 yyparse (struct psi_parser *P, struct psi_plist *tokens, size_t *index)
9101 {
9102 int yyresult;
9103 yyGLRStack yystack;
9104 yyGLRStack* const yystackp = &yystack;
9105 size_t yyposn;
9106
9107 YYDPRINTF ((stderr, "Starting parse\n"));
9108
9109 yychar = YYEMPTY;
9110 yylval = yyval_default;
9111
9112 /* User initialization code. */
9113 #line 119 "src/parser_proc_grammar.y" /* glr.c:2261 */
9114 {
9115 }
9116
9117 #line 9118 "src/parser_proc.c" /* glr.c:2261 */
9118
9119 if (! yyinitGLRStack (yystackp, YYINITDEPTH))
9120 goto yyexhaustedlab;
9121 switch (YYSETJMP (yystack.yyexception_buffer))
9122 {
9123 case 0: break;
9124 case 1: goto yyabortlab;
9125 case 2: goto yyexhaustedlab;
9126 default: goto yybuglab;
9127 }
9128 yyglrShift (&yystack, 0, 0, 0, &yylval);
9129 yyposn = 0;
9130
9131 while (yytrue)
9132 {
9133 /* For efficiency, we have two loops, the first of which is
9134 specialized to deterministic operation (single stack, no
9135 potential ambiguity). */
9136 /* Standard mode */
9137 while (yytrue)
9138 {
9139 yyRuleNum yyrule;
9140 int yyaction;
9141 const short* yyconflicts;
9142
9143 yyStateNum yystate = yystack.yytops.yystates[0]->yylrState;
9144 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
9145 if (yystate == YYFINAL)
9146 goto yyacceptlab;
9147 if (yyisDefaultedState (yystate))
9148 {
9149 yyrule = yydefaultAction (yystate);
9150 if (yyrule == 0)
9151 {
9152 yyreportSyntaxError (&yystack, P, tokens, index);
9153 goto yyuser_error;
9154 }
9155 YYCHK1 (yyglrReduce (&yystack, 0, yyrule, yytrue, P, tokens, index));
9156 }
9157 else
9158 {
9159 yySymbol yytoken;
9160 if (yychar == YYEMPTY)
9161 {
9162 YYDPRINTF ((stderr, "Reading a token: "));
9163 yychar = yylex (&yylval, P, tokens, index);
9164 }
9165
9166 if (yychar <= YYEOF)
9167 {
9168 yychar = yytoken = YYEOF;
9169 YYDPRINTF ((stderr, "Now at end of input.\n"));
9170 }
9171 else
9172 {
9173 yytoken = YYTRANSLATE (yychar);
9174 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
9175 }
9176
9177 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
9178 if (*yyconflicts != 0)
9179 break;
9180 if (yyisShiftAction (yyaction))
9181 {
9182 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
9183 yychar = YYEMPTY;
9184 yyposn += 1;
9185 yyglrShift (&yystack, 0, yyaction, yyposn, &yylval);
9186 if (0 < yystack.yyerrState)
9187 yystack.yyerrState -= 1;
9188 }
9189 else if (yyisErrorAction (yyaction))
9190 {
9191 yyreportSyntaxError (&yystack, P, tokens, index);
9192 goto yyuser_error;
9193 }
9194 else
9195 YYCHK1 (yyglrReduce (&yystack, 0, -yyaction, yytrue, P, tokens, index));
9196 }
9197 }
9198
9199 while (yytrue)
9200 {
9201 yySymbol yytoken_to_shift;
9202 size_t yys;
9203
9204 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
9205 yystackp->yytops.yylookaheadNeeds[yys] = yychar != YYEMPTY;
9206
9207 /* yyprocessOneStack returns one of three things:
9208
9209 - An error flag. If the caller is yyprocessOneStack, it
9210 immediately returns as well. When the caller is finally
9211 yyparse, it jumps to an error label via YYCHK1.
9212
9213 - yyok, but yyprocessOneStack has invoked yymarkStackDeleted
9214 (&yystack, yys), which sets the top state of yys to NULL. Thus,
9215 yyparse's following invocation of yyremoveDeletes will remove
9216 the stack.
9217
9218 - yyok, when ready to shift a token.
9219
9220 Except in the first case, yyparse will invoke yyremoveDeletes and
9221 then shift the next token onto all remaining stacks. This
9222 synchronization of the shift (that is, after all preceding
9223 reductions on all stacks) helps prevent double destructor calls
9224 on yylval in the event of memory exhaustion. */
9225
9226 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
9227 YYCHK1 (yyprocessOneStack (&yystack, yys, yyposn, P, tokens, index));
9228 yyremoveDeletes (&yystack);
9229 if (yystack.yytops.yysize == 0)
9230 {
9231 yyundeleteLastStack (&yystack);
9232 if (yystack.yytops.yysize == 0)
9233 yyFail (&yystack, P, tokens, index, YY_("syntax error"));
9234 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
9235 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
9236 yyreportSyntaxError (&yystack, P, tokens, index);
9237 goto yyuser_error;
9238 }
9239
9240 /* If any yyglrShift call fails, it will fail after shifting. Thus,
9241 a copy of yylval will already be on stack 0 in the event of a
9242 failure in the following loop. Thus, yychar is set to YYEMPTY
9243 before the loop to make sure the user destructor for yylval isn't
9244 called twice. */
9245 yytoken_to_shift = YYTRANSLATE (yychar);
9246 yychar = YYEMPTY;
9247 yyposn += 1;
9248 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
9249 {
9250 int yyaction;
9251 const short* yyconflicts;
9252 yyStateNum yystate = yystack.yytops.yystates[yys]->yylrState;
9253 yygetLRActions (yystate, yytoken_to_shift, &yyaction,
9254 &yyconflicts);
9255 /* Note that yyconflicts were handled by yyprocessOneStack. */
9256 YYDPRINTF ((stderr, "On stack %lu, ", (unsigned long) yys));
9257 YY_SYMBOL_PRINT ("shifting", yytoken_to_shift, &yylval, &yylloc);
9258 yyglrShift (&yystack, yys, yyaction, yyposn,
9259 &yylval);
9260 YYDPRINTF ((stderr, "Stack %lu now in state #%d\n",
9261 (unsigned long) yys,
9262 yystack.yytops.yystates[yys]->yylrState));
9263 }
9264
9265 if (yystack.yytops.yysize == 1)
9266 {
9267 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
9268 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
9269 yycompressStack (&yystack);
9270 break;
9271 }
9272 }
9273 continue;
9274 yyuser_error:
9275 yyrecoverSyntaxError (&yystack, P, tokens, index);
9276 yyposn = yystack.yytops.yystates[0]->yyposn;
9277 }
9278
9279 yyacceptlab:
9280 yyresult = 0;
9281 goto yyreturn;
9282
9283 yybuglab:
9284 YYASSERT (yyfalse);
9285 goto yyabortlab;
9286
9287 yyabortlab:
9288 yyresult = 1;
9289 goto yyreturn;
9290
9291 yyexhaustedlab:
9292 yyerror (P, tokens, index, YY_("memory exhausted"));
9293 yyresult = 2;
9294 goto yyreturn;
9295
9296 yyreturn:
9297 if (yychar != YYEMPTY)
9298 yydestruct ("Cleanup: discarding lookahead",
9299 YYTRANSLATE (yychar), &yylval, P, tokens, index);
9300
9301 /* If the stack is well-formed, pop the stack until it is empty,
9302 destroying its entries as we go. But free the stack regardless
9303 of whether it is well-formed. */
9304 if (yystack.yyitems)
9305 {
9306 yyGLRState** yystates = yystack.yytops.yystates;
9307 if (yystates)
9308 {
9309 size_t yysize = yystack.yytops.yysize;
9310 size_t yyk;
9311 for (yyk = 0; yyk < yysize; yyk += 1)
9312 if (yystates[yyk])
9313 {
9314 while (yystates[yyk])
9315 {
9316 yyGLRState *yys = yystates[yyk];
9317 if (yys->yypred != YY_NULLPTR)
9318 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
9319 yystates[yyk] = yys->yypred;
9320 yystack.yynextFree -= 1;
9321 yystack.yyspaceLeft += 1;
9322 }
9323 break;
9324 }
9325 }
9326 yyfreeGLRStack (&yystack);
9327 }
9328
9329 return yyresult;
9330 }
9331
9332 /* DEBUGGING ONLY */
9333 #if YYDEBUG
9334 static void
9335 yy_yypstack (yyGLRState* yys)
9336 {
9337 if (yys->yypred)
9338 {
9339 yy_yypstack (yys->yypred);
9340 YYFPRINTF (stderr, " -> ");
9341 }
9342 YYFPRINTF (stderr, "%d@%lu", yys->yylrState,
9343 (unsigned long) yys->yyposn);
9344 }
9345
9346 static void
9347 yypstates (yyGLRState* yyst)
9348 {
9349 if (yyst == YY_NULLPTR)
9350 YYFPRINTF (stderr, "<null>");
9351 else
9352 yy_yypstack (yyst);
9353 YYFPRINTF (stderr, "\n");
9354 }
9355
9356 static void
9357 yypstack (yyGLRStack* yystackp, size_t yyk)
9358 {
9359 yypstates (yystackp->yytops.yystates[yyk]);
9360 }
9361
9362 #define YYINDEX(YYX) \
9363 ((YYX) == YY_NULLPTR ? -1 : (yyGLRStackItem*) (YYX) - yystackp->yyitems)
9364
9365
9366 static void
9367 yypdumpstack (yyGLRStack* yystackp)
9368 {
9369 yyGLRStackItem* yyp;
9370 size_t yyi;
9371 for (yyp = yystackp->yyitems; yyp < yystackp->yynextFree; yyp += 1)
9372 {
9373 YYFPRINTF (stderr, "%3lu. ",
9374 (unsigned long) (yyp - yystackp->yyitems));
9375 if (*(yybool *) yyp)
9376 {
9377 YYASSERT (yyp->yystate.yyisState);
9378 YYASSERT (yyp->yyoption.yyisState);
9379 YYFPRINTF (stderr, "Res: %d, LR State: %d, posn: %lu, pred: %ld",
9380 yyp->yystate.yyresolved, yyp->yystate.yylrState,
9381 (unsigned long) yyp->yystate.yyposn,
9382 (long) YYINDEX (yyp->yystate.yypred));
9383 if (! yyp->yystate.yyresolved)
9384 YYFPRINTF (stderr, ", firstVal: %ld",
9385 (long) YYINDEX (yyp->yystate
9386 .yysemantics.yyfirstVal));
9387 }
9388 else
9389 {
9390 YYASSERT (!yyp->yystate.yyisState);
9391 YYASSERT (!yyp->yyoption.yyisState);
9392 YYFPRINTF (stderr, "Option. rule: %d, state: %ld, next: %ld",
9393 yyp->yyoption.yyrule - 1,
9394 (long) YYINDEX (yyp->yyoption.yystate),
9395 (long) YYINDEX (yyp->yyoption.yynext));
9396 }
9397 YYFPRINTF (stderr, "\n");
9398 }
9399 YYFPRINTF (stderr, "Tops:");
9400 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
9401 YYFPRINTF (stderr, "%lu: %ld; ", (unsigned long) yyi,
9402 (long) YYINDEX (yystackp->yytops.yystates[yyi]));
9403 YYFPRINTF (stderr, "\n");
9404 }
9405 #endif
9406
9407 #undef yylval
9408 #undef yychar
9409 #undef yynerrs
9410
9411 /* Substitute the variable and function names. */
9412 #define yyparse psi_parser_proc_parse
9413 #define yylex psi_parser_proc_lex
9414 #define yyerror psi_parser_proc_error
9415 #define yylval psi_parser_proc_lval
9416 #define yychar psi_parser_proc_char
9417 #define yydebug psi_parser_proc_debug
9418 #define yynerrs psi_parser_proc_nerrs
9419
9420 #line 2284 "src/parser_proc_grammar.y" /* glr.c:2575 */
9421
9422
9423 /* epilogue */
9424
9425 #define PSI_DEBUG_LEX 0
9426 static int psi_parser_proc_lex(YYSTYPE *lvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
9427 {
9428 struct psi_token *token;
9429 #if PSI_DEBUG_LEX
9430 PSI_DEBUG_PRINT(P, "PSI: LEX index %4zu ", *index);
9431 #endif
9432 if (psi_plist_get(tokens, (*index)++, &token)) {
9433 #if PSI_DEBUG_LEX
9434 PSI_DEBUG_DUMP(P, psi_token_dump, token);
9435 #endif
9436 *((struct psi_token **)lvalp) = token;
9437 return token->type;
9438 } else {
9439 #if PSI_DEBUG_LEX
9440 PSI_DEBUG_PRINT(P, "EOF\n");
9441 #endif
9442 (*index)--;
9443 }
9444
9445 return PSI_T_EOF;
9446 }
9447
9448 static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char *msg)
9449 {
9450 struct psi_token *T = NULL;
9451 size_t last;
9452
9453 if (*index == 0) {
9454 last = 0;
9455 } else {
9456 last = --(*index);
9457 }
9458
9459 psi_plist_get(tokens, last, &T);
9460 if (T) {
9461 P->error(PSI_DATA(P), T, PSI_WARNING, "PSI %s at col %u", msg, T->col);
9462 } else {
9463 P->error(PSI_DATA(P), NULL, PSI_WARNING, "PSI %s", msg);
9464 }
9465 P->errors++;
9466 }
9467