administrativa
[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_deanon_typedef(struct psi_decl_arg *def)
134 {
135 switch (def->type->type) {
136 case PSI_T_STRUCT:
137 if (!psi_decl_type_is_anon(def->type->name, "struct")) {
138 return;
139 }
140 break;
141 case PSI_T_UNION:
142 if (!psi_decl_type_is_anon(def->type->name, "union")) {
143 return;
144 }
145 break;
146 case PSI_T_ENUM:
147 if (!psi_decl_type_is_anon(def->type->name, "enum")) {
148 return;
149 }
150 break;
151 default:
152 return;
153 }
154 zend_string_release(def->type->name);
155 def->type->name = zend_string_copy(def->var->name);
156 }
157 static inline void psi_parser_proc_add_typedef(struct psi_parser *P, struct psi_decl_arg *def)
158 {
159 assert(def);
160 if (!P->types) {
161 P->types = psi_plist_init((psi_plist_dtor) psi_decl_arg_free);
162 }
163 //psi_parser_proc_deanon_typedef(def);
164 P->types = psi_plist_add(P->types, &def);
165 }
166 static inline void psi_parser_proc_add_const(struct psi_parser *P, struct psi_const *cnst) {
167 assert(cnst);
168 if (!P->consts) {
169 P->consts = psi_plist_init((psi_plist_dtor) psi_const_free);
170 }
171 P->consts = psi_plist_add(P->consts, &cnst);
172
173 }
174 static inline void psi_parser_proc_add_decl(struct psi_parser *P, struct psi_decl *decl) {
175 assert(decl);
176
177 if (psi_decl_is_blacklisted(decl->func->var->name->val)) {
178 psi_decl_free(&decl);
179 return;
180 }
181
182 if (!P->decls) {
183 P->decls = psi_plist_init((psi_plist_dtor) psi_decl_free);
184 }
185 P->decls = psi_plist_add(P->decls, &decl);
186 }
187 static inline void psi_parser_proc_add_decl_extvars(struct psi_parser *P, struct psi_plist *list) {
188 assert(list);
189 if (!P->vars) {
190 P->vars = psi_plist_init((psi_plist_dtor) psi_decl_extvar_free);
191 }
192 P->vars = psi_plist_add_r(P->vars, psi_plist_count(list), psi_plist_eles(list));
193 free(list);
194 }
195 static inline void psi_parser_proc_add_impl(struct psi_parser *P, struct psi_impl *impl) {
196 assert(impl);
197 if (!P->impls) {
198 P->impls = psi_plist_init((psi_plist_dtor) psi_impl_free);
199 }
200 P->impls = psi_plist_add(P->impls, &impl);
201 }
202
203 /* end code */
204
205 #line 206 "src/parser_proc.c" /* glr.c:264 */
206
207 #include <stdio.h>
208 #include <stdlib.h>
209 #include <string.h>
210
211 #ifndef YY_
212 # if defined YYENABLE_NLS && YYENABLE_NLS
213 # if ENABLE_NLS
214 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
215 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
216 # endif
217 # endif
218 # ifndef YY_
219 # define YY_(Msgid) Msgid
220 # endif
221 #endif
222
223 #ifndef YYFREE
224 # define YYFREE free
225 #endif
226 #ifndef YYMALLOC
227 # define YYMALLOC malloc
228 #endif
229 #ifndef YYREALLOC
230 # define YYREALLOC realloc
231 #endif
232
233 #define YYSIZEMAX ((size_t) -1)
234
235 #ifdef __cplusplus
236 typedef bool yybool;
237 #else
238 typedef unsigned char yybool;
239 #endif
240 #define yytrue 1
241 #define yyfalse 0
242
243 #ifndef YYSETJMP
244 # include <setjmp.h>
245 # define YYJMP_BUF jmp_buf
246 # define YYSETJMP(Env) setjmp (Env)
247 /* Pacify clang. */
248 # define YYLONGJMP(Env, Val) (longjmp (Env, Val), YYASSERT (0))
249 #endif
250
251 #ifndef YY_ATTRIBUTE
252 # if (defined __GNUC__ \
253 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
254 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
255 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
256 # else
257 # define YY_ATTRIBUTE(Spec) /* empty */
258 # endif
259 #endif
260
261 #ifndef YY_ATTRIBUTE_PURE
262 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
263 #endif
264
265 #ifndef YY_ATTRIBUTE_UNUSED
266 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
267 #endif
268
269 #if !defined _Noreturn \
270 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
271 # if defined _MSC_VER && 1200 <= _MSC_VER
272 # define _Noreturn __declspec (noreturn)
273 # else
274 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
275 # endif
276 #endif
277
278 /* Suppress unused-variable warnings by "using" E. */
279 #if ! defined lint || defined __GNUC__
280 # define YYUSE(E) ((void) (E))
281 #else
282 # define YYUSE(E) /* empty */
283 #endif
284
285 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
286 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
287 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
288 _Pragma ("GCC diagnostic push") \
289 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
290 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
291 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
292 _Pragma ("GCC diagnostic pop")
293 #else
294 # define YY_INITIAL_VALUE(Value) Value
295 #endif
296 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
297 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
298 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
299 #endif
300 #ifndef YY_INITIAL_VALUE
301 # define YY_INITIAL_VALUE(Value) /* Nothing. */
302 #endif
303
304
305 #ifndef YYASSERT
306 # define YYASSERT(Condition) ((void) ((Condition) || (abort (), 0)))
307 #endif
308
309 /* YYFINAL -- State number of the termination state. */
310 #define YYFINAL 161
311 /* YYLAST -- Last index in YYTABLE. */
312 #define YYLAST 7687
313
314 /* YYNTOKENS -- Number of terminals. */
315 #define YYNTOKENS 140
316 /* YYNNTS -- Number of nonterminals. */
317 #define YYNNTS 142
318 /* YYNRULES -- Number of rules. */
319 #define YYNRULES 630
320 /* YYNRULES -- Number of states. */
321 #define YYNSTATES 935
322 /* YYMAXRHS -- Maximum number of symbols on right-hand side of rule. */
323 #define YYMAXRHS 16
324 /* YYMAXLEFT -- Maximum number of symbols to the left of a handle
325 accessed by $0, $-1, etc., in any rule. */
326 #define YYMAXLEFT 0
327
328 /* YYTRANSLATE(X) -- Bison symbol number corresponding to X. */
329 #define YYUNDEFTOK 2
330 #define YYMAXUTOK 394
331
332 #define YYTRANSLATE(YYX) \
333 ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
334
335 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
336 static const unsigned char yytranslate[] =
337 {
338 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
339 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
340 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
341 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
342 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
343 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
344 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
345 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
346 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
347 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
348 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
349 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
350 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
351 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
352 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
353 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
354 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
355 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
356 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
357 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
358 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
359 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
360 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
361 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
362 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
363 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
364 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
365 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
366 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
367 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
368 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
369 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
370 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
371 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
372 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
373 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
374 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
375 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
376 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
377 135, 136, 137, 138, 139
378 };
379
380 #if YYDEBUG
381 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
382 static const unsigned short yyrline[] =
383 {
384 0, 433, 433, 433, 433, 433, 433, 433, 433, 433,
385 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
386 434, 434, 434, 434, 435, 435, 435, 435, 435, 435,
387 435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
388 435, 435, 435, 436, 436, 436, 436, 436, 436, 436,
389 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
390 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
391 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
392 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
393 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
394 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
395 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
396 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
397 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
398 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
399 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
400 436, 437, 437, 437, 437, 437, 437, 437, 437, 437,
401 437, 437, 437, 437, 437, 437, 437, 437, 437, 437,
402 437, 437, 437, 437, 437, 437, 437, 437, 437, 437,
403 437, 437, 437, 437, 437, 437, 437, 437, 437, 437,
404 437, 437, 437, 437, 437, 437, 437, 437, 437, 437,
405 437, 437, 437, 437, 437, 437, 437, 437, 437, 437,
406 437, 437, 437, 437, 437, 437, 437, 437, 437, 437,
407 437, 437, 437, 437, 437, 437, 437, 437, 437, 437,
408 437, 437, 437, 437, 437, 437, 437, 437, 437, 437,
409 437, 437, 437, 437, 437, 437, 437, 437, 437, 437,
410 437, 437, 437, 437, 437, 437, 437, 437, 437, 437,
411 437, 437, 437, 437, 437, 437, 437, 441, 442, 445,
412 446, 449, 450, 451, 452, 458, 462, 465, 468, 471,
413 477, 480, 483, 486, 489, 495, 501, 504, 510, 533,
414 537, 541, 546, 550, 554, 558, 565, 566, 570, 571,
415 575, 576, 577, 581, 582, 586, 587, 591, 592, 593,
416 597, 598, 602, 607, 612, 617, 626, 629, 632, 633,
417 639, 644, 652, 655, 659, 663, 670, 674, 678, 682,
418 687, 698, 709, 714, 719, 723, 729, 739, 742, 746,
419 750, 756, 763, 767, 771, 778, 779, 780, 784, 798,
420 804, 807, 813, 816, 822, 823, 831, 842, 851, 863,
421 864, 868, 878, 887, 899, 900, 903, 909, 910, 914,
422 918, 922, 927, 932, 940, 941, 942, 945, 951, 954,
423 957, 963, 964, 968, 971, 974, 980, 983, 986, 994,
424 1006, 1009, 1012, 1015, 1022, 1025, 1035, 1038, 1041, 1044,
425 1045, 1046, 1050, 1053, 1056, 1067, 1074, 1084, 1087, 1093,
426 1096, 1103, 1134, 1137, 1143, 1146, 1152, 1158, 1159, 1160,
427 1161, 1162, 1163, 1167, 1171, 1172, 1176, 1177, 1181, 1182,
428 1189, 1190, 1194, 1201, 1212, 1219, 1227, 1251, 1280, 1287,
429 1298, 1344, 1385, 1400, 1403, 1406, 1412, 1415, 1421, 1436,
430 1439, 1468, 1476, 1504, 1509, 1517, 1527, 1537, 1540, 1544,
431 1550, 1564, 1581, 1584, 1590, 1597, 1607, 1614, 1617, 1623,
432 1628, 1636, 1640, 1644, 1648, 1652, 1656, 1663, 1667, 1671,
433 1675, 1679, 1683, 1689, 1693, 1700, 1703, 1715, 1719, 1723,
434 1730, 1743, 1756, 1769, 1772, 1779, 1780, 1784, 1787, 1790,
435 1793, 1799, 1803, 1810, 1813, 1816, 1831, 1832, 1833, 1834,
436 1838, 1841, 1847, 1848, 1854, 1857, 1863, 1864, 1868, 1869,
437 1879, 1882, 1889, 1894, 1899, 1909, 1912, 1918, 1921, 1927,
438 1934, 1941, 1948, 1949, 1953, 1954, 1955, 1956, 1960, 1961,
439 1962, 1963, 1964, 1968, 1971, 1977, 1980, 1983, 1986, 1989,
440 1995, 1999, 2007, 2008, 2012, 2019, 2022, 2025, 2028, 2032,
441 2035, 2041, 2045, 2053, 2060, 2065, 2073, 2081, 2082, 2083,
442 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2094, 2097, 2103,
443 2106, 2112, 2113, 2117, 2120, 2126, 2129, 2135, 2142, 2146,
444 2153, 2156, 2159, 2165, 2172, 2175, 2178, 2185, 2190, 2198,
445 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2209, 2212, 2218,
446 2221, 2227, 2234, 2235, 2239, 2246, 2249, 2255, 2263, 2266,
447 2272
448 };
449 #endif
450
451 #if YYDEBUG || YYERROR_VERBOSE || 1
452 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
453 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
454 static const char *const yytname[] =
455 {
456 "\"end of file\"", "error", "$undefined", "BOOL", "CHAR", "SHORT",
457 "INT", "SIGNED", "UNSIGNED", "LONG", "FLOAT", "DOUBLE", "STRING",
458 "MIXED", "ARRAY", "OBJECT", "CALLABLE", "VOID", "ZVAL", "NULL", "TRUE",
459 "FALSE", "NAME", "NSNAME", "DOLLAR_NAME", "NUMBER", "QUOTED_STRING",
460 "QUOTED_CHAR", "SIZEOF", "VOLATILE", "\"end of line\"", "\";\"", "\"(\"",
461 "\")\"", "\",\"", "\":\"", "\"{\"", "\"}\"", "\"[\"", "\"]\"", "\"=\"",
462 "\"#\"", "\"|\"", "\"^\"", "\"&\"", "\"<<\"", "\">>\"", "\"+\"", "\"-\"",
463 "\"*\"", "\"/\"", "\"%\"", "\"<\"", "\">\"", "\">=\"", "\"<=\"",
464 "\"||\"", "\"&&\"", "\"==\"", "\"!=\"", "\"~\"", "\"!\"", "\".\"",
465 "\"\\\\\"", "\"...\"", "\"?\"", "PRAGMA", "PRAGMA_ONCE", "LINE", "ERROR",
466 "WARNING", "IF", "IFDEF", "IFNDEF", "ELSE", "ELIF", "ENDIF", "DEFINE",
467 "DEFINED", "UNDEF", "IMPORT", "INCLUDE", "INCLUDE_NEXT", "TYPEDEF",
468 "STRUCT", "UNION", "ENUM", "CONST", "LIB", "STATIC", "CALLBACK",
469 "FUNCTION", "LET", "SET", "TEMP", "FREE", "RETURN", "AS", "PRE_ASSERT",
470 "POST_ASSERT", "BOOLVAL", "INTVAL", "STRVAL", "PATHVAL", "STRLEN",
471 "FLOATVAL", "ARRVAL", "OBJVAL", "COUNT", "CALLOC", "TO_BOOL", "TO_INT",
472 "TO_STRING", "TO_FLOAT", "TO_ARRAY", "TO_OBJECT", "COMMENT",
473 "WHITESPACE", "NO_WHITESPACE", "CPP_HEADER", "CPP_ATTRIBUTE",
474 "CPP_EXTENSION", "CPP_PASTE", "CPP_INLINE", "CPP_RESTRICT", "CPP_ASM",
475 "BSLASH", "LONG_DOUBLE", "INT8", "UINT8", "INT16", "UINT16", "INT32",
476 "UINT32", "INT64", "UINT64", "INT128", "UINT128", "BINARY", "UNARY",
477 "$accept", "binary_op_token", "unary_op_token", "name_token",
478 "any_noeol_token", "any_nobrace_token", "file", "blocks", "block", "lib",
479 "cpp", "cpp_exp", "cpp_ignored_token", "cpp_message_token",
480 "cpp_include_token", "cpp_header_token", "cpp_no_arg_token",
481 "cpp_name_arg_token", "cpp_exp_arg_token", "cpp_macro_decl",
482 "cpp_macro_sig", "cpp_macro_sig_args", "cpp_macro_decl_tokens",
483 "cpp_macro_decl_token_list", "cpp_macro_exp", "cpp_macro_call_args",
484 "cpp_macro_call_arg_list", "constant", "impl_def_val",
485 "impl_def_val_token", "decl_typedef", "typedef", "typedef_anon",
486 "typedef_decl", "typedef_anon_decl", "qualified_decl_type",
487 "decl_type_qualifier_token", "decl_type", "decl_type_complex",
488 "decl_type_simple", "decl_real_type", "int_signed", "int_width",
489 "decl_int_type", "int_signed_types", "signed_short_types",
490 "signed_long_types", "int_width_types", "decl_stmt", "decl_asm",
491 "quoted_strings", "decl_extvar_stmt", "decl_extvar_list", "decl_vars",
492 "ignored_decl", "ignored_decl_qualifiers", "ignored_decl_body",
493 "ignored_decl_body_stmts", "ignored_decl_body_stmt", "decl", "decl_body",
494 "decl_func_body", "decl_functor_body", "decl_anon_functor_body",
495 "decl_functor", "decl_anon_functor", "decl_func", "decl_args",
496 "decl_arg_list", "decl_anon_arg", "decl_arg", "decl_var", "decl_union",
497 "decl_struct", "decl_struct_args", "struct_args_block", "struct_args",
498 "struct_arg_var_list", "decl_vars_with_layout", "decl_enum",
499 "decl_enum_items", "decl_enum_item", "num_exp", "number", "sizeof",
500 "sizeof_body", "sizeof_body_notypes", "enum_name", "union_name",
501 "struct_name", "optional_name", "optional_comma", "decl_layout",
502 "align_and_size", "array_size", "array_qualifier_token", "indirection",
503 "pointers", "asterisks", "asterisk", "pointer_qualifier_token", "impl",
504 "impl_func", "impl_args", "impl_arg", "impl_var", "impl_type",
505 "impl_type_restricted", "impl_type_token", "impl_type_restricted_token",
506 "impl_type_extended_token", "impl_stmts", "impl_stmt", "let_stmt",
507 "let_exp", "let_exp_byref", "let_exp_assign", "let_calloc",
508 "let_callback", "let_func", "let_func_token", "let_func_exps",
509 "let_exps", "callback_rval", "callback_arg_list", "callback_args",
510 "return_stmt", "return_exp", "call_decl_vars", "set_stmt", "set_exp",
511 "set_func", "set_func_token", "set_func_exps", "set_exps", "assert_stmt",
512 "assert_stmt_token", "free_stmt", "free_exps", "free_exp", "reference",
513 "byref", YY_NULLPTR
514 };
515 #endif
516
517 #define YYPACT_NINF -714
518 #define YYTABLE_NINF -629
519
520 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
521 STATE-NUM. */
522 static const short yypact[] =
523 {
524 494, -714, -714, -714, -714, -714, 99, -714, -714, -714,
525 541, -714, -714, -714, 742, 1371, 7421, 7421, 7421, 149,
526 50, -34, 112, -714, 237, -714, 188, 494, -714, -714,
527 -714, -714, -714, 6679, 597, -714, -714, -714, -714, 129,
528 219, -714, -714, -714, -714, 1629, 45, -714, -714, 75,
529 196, 204, -714, -714, -714, -714, 161, -714, 166, -714,
530 -714, -714, 7421, 7421, 7421, -714, -714, -714, 179, -714,
531 -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
532 -714, 846, -714, -714, -714, -714, 209, 972, 972, 27,
533 -714, 972, 6453, 7421, 7421, 1742, 218, -714, -714, -714,
534 220, 7421, 215, 215, -714, -714, -714, 5436, -714, -714,
535 -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
536 -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
537 -714, -714, -714, -714, -714, -714, -714, -714, 59, -714,
538 -714, 59, 221, -714, -714, -714, -714, -714, 232, -714,
539 229, -714, 226, -714, 240, -714, 1855, 1371, 141, -714,
540 45, -714, -714, 42, 235, -714, -714, 242, 7421, 7,
541 -714, -714, -714, 269, -714, 136, -714, -714, -714, 135,
542 -714, 249, 258, 260, 1968, 1968, 7421, 85, -714, -714,
543 -714, 6905, 262, -714, 1481, -714, -714, -714, -714, -714,
544 -714, -714, -714, 1594, -714, -714, -714, -714, 1707, 1820,
545 -714, -714, -714, 1933, -714, -714, -714, -714, -714, -714,
546 -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
547 -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
548 -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
549 -714, -714, -714, -714, -714, -714, 2046, 2159, 2272, 2385,
550 2498, -714, -714, -714, -714, -714, -714, -714, -714, -714,
551 -714, -714, -714, -714, -714, -714, 2611, -714, 2724, 2837,
552 2950, 3063, 3176, 3289, -714, 3402, -714, -714, 3515, 3628,
553 3741, 3854, 3967, 4080, 4193, 4306, 4419, 4532, 4645, 4758,
554 4871, 4984, 5097, 5210, -714, -714, -714, -714, -714, -714,
555 -714, 5323, 972, -714, -714, -714, -714, -714, -714, -714,
556 -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
557 -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
558 -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
559 -714, 972, -714, -714, -714, -714, -714, -714, -714, 142,
560 6453, -714, -714, -714, -714, 7018, 6453, 267, 7550, -714,
561 61, -714, 89, -714, -714, -714, -714, 259, 266, 266,
562 68, 68, 272, -714, 85, 281, 283, -714, 285, -714,
563 -714, -714, 1338, -714, 268, 235, -714, -714, -714, -714,
564 -714, 312, -714, -714, 1224, -714, 301, -714, 103, 6679,
565 -714, 299, 115, 298, -714, -714, 131, 293, 300, -714,
566 6905, 6114, 6905, 7421, 6905, -714, -714, 23, -714, -714,
567 -714, -714, -714, 6340, -714, 302, -714, 7421, -714, -714,
568 303, 7550, 311, -714, -714, -714, -714, 6599, 316, -714,
569 6784, 7421, -714, -714, 6453, -714, -714, -714, -714, -714,
570 -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
571 -714, -714, -714, 6453, 6453, 308, 1459, 6905, 6905, -714,
572 -714, -714, -714, 5662, 263, 255, -714, -714, -714, -714,
573 -714, -714, -714, 5549, -714, -714, 6340, -714, 7526, -714,
574 -714, 304, 7131, -714, -714, -714, -714, -714, -714, -714,
575 -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
576 -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
577 -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
578 -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
579 -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
580 -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
581 -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
582 -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
583 -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
584 -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
585 -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
586 -714, -714, -714, -714, 1098, -714, 39, 309, 1968, 235,
587 278, 1629, 235, 284, 6340, 7421, 310, 305, 318, 7574,
588 313, 319, -714, 322, 339, 324, 333, 170, -714, 334,
589 336, -714, -714, -714, 6667, 6905, 7190, -714, 268, 335,
590 -714, -714, -714, 338, 7550, 340, 343, 7284, -714, 344,
591 1742, 337, -714, -714, 6566, 719, 7421, 215, 215, -714,
592 -714, 30, -714, -714, 347, -714, 311, 7574, -714, -714,
593 -714, -714, -714, -714, 346, 182, -714, 112, -714, -714,
594 -714, 33, 40, 41, 6886, -714, -714, 6340, 6340, -714,
595 268, 143, -714, -714, -714, 268, 185, -714, 349, -714,
596 -714, 351, 7574, -714, -714, 5775, -714, 6114, -714, 6905,
597 -714, 112, 6905, -714, 7421, 7303, -714, -714, -714, -714,
598 -714, 353, 345, -714, -714, -714, -714, 6453, 6453, 354,
599 -714, 63, 356, -714, 337, 266, 266, -714, 747, 360,
600 747, 358, 6340, -714, 7502, -714, 7421, 1968, -714, 6792,
601 235, 341, 235, 235, 165, 292, 203, 372, 7574, -714,
602 -714, -714, -714, 374, 6227, -714, 376, 6905, 189, -714,
603 378, 302, 379, 972, 7362, 7550, 7598, 388, 380, 382,
604 6905, 385, 356, 6905, 6905, -714, 747, -714, 112, 5662,
605 -714, 6340, 384, 386, -714, -714, 387, -714, -714, 372,
606 -714, -714, -714, 7303, -714, 390, 6340, 112, -714, 5888,
607 391, 394, -714, 321, -714, -714, -714, 393, 392, 405,
608 337, 397, -714, 402, -714, 62, -714, 7622, 403, 401,
609 235, 406, 112, 7122, 404, 408, -714, 409, -714, -714,
610 95, -714, 410, 412, -714, 6905, -714, 423, 1968, 417,
611 -714, 355, 422, 6340, 5775, 428, -714, 6114, -714, -714,
612 430, 411, 441, 337, 434, 435, 1968, 176, 6001, 7009,
613 305, -714, -714, -714, 421, 6227, -714, -714, 436, 438,
614 -714, 440, 444, 446, 449, 450, 439, -714, -714, 5775,
615 -714, 457, -714, 747, 452, 235, 112, 454, 6114, -714,
616 456, -714, 1968, -714, 453, -714, -714, -714, 461, 6001,
617 235, 462, -714, 463, -714
618 };
619
620 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
621 Performed when YYTABLE does not specify something else to do. Zero
622 means the default is an error. */
623 static const unsigned short yydefact[] =
624 {
625 277, 396, 393, 397, 391, 392, 394, 388, 389, 387,
626 386, 378, 282, 281, 0, 0, 0, 0, 503, 377,
627 0, 427, 628, 283, 0, 431, 0, 278, 279, 285,
628 284, 286, 290, 520, 0, 374, 380, 379, 385, 400,
629 412, 384, 287, 288, 289, 0, 417, 438, 440, 441,
630 0, 0, 452, 292, 291, 293, 0, 294, 0, 395,
631 390, 386, 0, 0, 0, 377, 432, 439, 422, 296,
632 307, 304, 306, 308, 309, 320, 317, 318, 315, 321,
633 316, 0, 319, 310, 311, 312, 0, 332, 332, 0,
634 300, 0, 0, 503, 503, 0, 0, 360, 365, 461,
635 364, 0, 511, 511, 33, 34, 616, 577, 24, 39,
636 38, 37, 35, 36, 32, 31, 25, 29, 28, 26,
637 27, 40, 585, 584, 582, 580, 581, 583, 579, 578,
638 586, 30, 614, 612, 611, 613, 610, 609, 381, 41,
639 42, 382, 383, 500, 544, 545, 546, 547, 0, 541,
640 0, 428, 0, 630, 0, 629, 386, 0, 0, 429,
641 417, 1, 280, 526, 513, 376, 462, 0, 521, 522,
642 524, 375, 402, 406, 404, 408, 401, 398, 413, 400,
643 399, 0, 0, 0, 453, 453, 0, 0, 381, 382,
644 383, 0, 0, 68, 43, 44, 45, 46, 47, 48,
645 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
646 59, 60, 61, 62, 63, 64, 65, 66, 67, 158,
647 159, 69, 70, 71, 72, 73, 74, 75, 76, 77,
648 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
649 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
650 98, 99, 100, 101, 102, 108, 106, 107, 105, 103,
651 104, 109, 110, 111, 112, 113, 114, 115, 116, 117,
652 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
653 128, 129, 130, 131, 132, 160, 133, 134, 135, 136,
654 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
655 147, 148, 149, 150, 151, 152, 156, 153, 154, 155,
656 157, 0, 332, 302, 297, 43, 52, 57, 58, 62,
657 106, 107, 105, 103, 104, 124, 126, 127, 128, 129,
658 130, 131, 160, 135, 136, 137, 138, 139, 140, 141,
659 142, 143, 144, 145, 146, 147, 148, 149, 150, 334,
660 305, 333, 298, 313, 314, 299, 301, 342, 343, 0,
661 0, 22, 23, 20, 21, 0, 0, 345, 303, 344,
662 381, 502, 382, 501, 361, 358, 366, 0, 0, 0,
663 0, 0, 0, 295, 0, 0, 0, 430, 0, 529,
664 528, 527, 516, 464, 520, 513, 523, 525, 407, 403,
665 409, 410, 405, 414, 0, 426, 0, 415, 387, 520,
666 458, 0, 0, 455, 456, 459, 0, 479, 505, 477,
667 0, 628, 0, 0, 0, 622, 623, 0, 553, 556,
668 555, 557, 558, 0, 559, 423, 424, 0, 421, 419,
669 0, 324, 325, 322, 335, 499, 498, 0, 0, 494,
670 0, 0, 340, 337, 347, 2, 3, 4, 5, 6,
671 7, 8, 9, 10, 11, 13, 12, 14, 15, 16,
672 17, 18, 19, 0, 0, 0, 0, 0, 0, 467,
673 466, 468, 465, 0, 0, 0, 359, 416, 490, 488,
674 487, 489, 518, 0, 519, 517, 0, 491, 0, 481,
675 492, 0, 0, 521, 463, 411, 186, 161, 162, 163,
676 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
677 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
678 184, 185, 274, 275, 187, 188, 189, 190, 191, 192,
679 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
680 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
681 213, 214, 215, 216, 217, 218, 224, 222, 223, 221,
682 219, 220, 225, 226, 227, 228, 229, 230, 231, 232,
683 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
684 243, 244, 245, 246, 247, 248, 276, 249, 250, 251,
685 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
686 262, 263, 264, 265, 266, 267, 268, 272, 269, 270,
687 271, 273, 436, 437, 0, 434, 0, 460, 453, 513,
688 0, 0, 513, 0, 0, 506, 0, 0, 0, 605,
689 0, 0, 604, 42, 0, 0, 0, 0, 625, 0,
690 0, 599, 530, 554, 0, 0, 326, 420, 520, 0,
691 495, 497, 336, 0, 349, 0, 348, 0, 338, 0,
692 0, 507, 369, 362, 370, 0, 371, 511, 511, 368,
693 367, 490, 356, 357, 0, 352, 354, 353, 531, 549,
694 550, 551, 552, 548, 0, 0, 535, 628, 540, 542,
695 543, 616, 24, 0, 0, 485, 515, 0, 0, 514,
696 520, 0, 433, 435, 418, 520, 0, 444, 0, 457,
697 442, 0, 480, 478, 476, 0, 560, 628, 603, 0,
698 539, 628, 0, 624, 0, 600, 597, 621, 425, 327,
699 330, 0, 328, 496, 493, 341, 346, 0, 0, 0,
700 363, 0, 472, 469, 507, 0, 0, 351, 0, 0,
701 0, 537, 0, 483, 0, 484, 0, 453, 450, 0,
702 513, 0, 513, 513, 490, 0, 31, 30, 566, 571,
703 567, 569, 570, 41, 0, 606, 617, 0, 0, 626,
704 616, 602, 0, 332, 0, 350, 339, 0, 508, 0,
705 0, 0, 472, 373, 372, 532, 0, 536, 628, 0,
706 482, 0, 0, 0, 451, 448, 0, 445, 443, 0,
707 568, 591, 577, 600, 592, 0, 0, 628, 572, 628,
708 0, 0, 627, 0, 323, 329, 331, 0, 0, 0,
709 507, 473, 470, 0, 533, 0, 538, 486, 0, 0,
710 513, 0, 628, 0, 587, 0, 619, 618, 607, 561,
711 0, 512, 0, 0, 474, 0, 471, 0, 453, 0,
712 449, 0, 0, 0, 0, 0, 608, 628, 615, 598,
713 0, 0, 0, 507, 0, 0, 453, 0, 593, 0,
714 491, 589, 564, 562, 588, 0, 576, 620, 0, 0,
715 475, 0, 0, 0, 0, 0, 594, 595, 573, 0,
716 563, 0, 509, 0, 0, 513, 628, 0, 628, 590,
717 0, 534, 453, 446, 0, 574, 596, 510, 0, 593,
718 513, 0, 447, 0, 575
719 };
720
721 /* YYPGOTO[NTERM-NUM]. */
722 static const short yypgoto[] =
723 {
724 -714, -339, -74, -14, -55, -714, -714, -714, 479, -714,
725 -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
726 -714, -714, -80, -714, -283, -714, -714, -714, -302, -714,
727 -714, 352, -167, 28, -158, -178, -16, -19, -714, -714,
728 -714, 473, -714, -714, 348, -714, -714, -714, -714, 357,
729 -259, -714, -714, -179, -714, -714, 350, -714, -110, 491,
730 36, -4, 58, -714, -714, -714, -714, -180, -714, -113,
731 10, -33, -714, -714, 138, -348, -714, -282, -714, 14,
732 -714, -109, -333, -714, -71, -714, 81, -714, -441, -437,
733 137, -714, -710, -87, -376, -714, -371, -24, -714, 361,
734 -714, -714, 501, -714, -231, -665, -713, -714, -714, 514,
735 -714, 150, -352, -714, -373, -683, 117, -237, -714, -714,
736 -692, -714, -714, -345, -386, -714, -714, -714, -279, -714,
737 -408, -402, -397, -714, -714, -714, -714, -714, -714, -177,
738 -21, -685
739 };
740
741 /* YYDEFGOTO[NTERM-NUM]. */
742 static const short yydefgoto[] =
743 {
744 -1, 708, 496, 164, 349, 622, 26, 27, 28, 29,
745 30, 86, 87, 88, 89, 355, 90, 91, 92, 313,
746 741, 742, 350, 351, 368, 665, 666, 31, 684, 685,
747 32, 96, 671, 672, 673, 33, 34, 35, 36, 37,
748 38, 39, 40, 41, 177, 399, 402, 180, 42, 183,
749 686, 43, 192, 791, 44, 45, 623, 624, 625, 46,
750 47, 48, 99, 410, 50, 411, 51, 412, 413, 414,
751 415, 497, 53, 54, 480, 481, 675, 801, 841, 101,
752 418, 419, 639, 499, 500, 659, 449, 56, 102, 103,
753 143, 636, 752, 378, 393, 501, 167, 437, 169, 170,
754 391, 57, 58, 695, 696, 640, 697, 148, 698, 699,
755 700, 427, 428, 429, 891, 892, 893, 780, 781, 782,
756 139, 875, 894, 825, 905, 906, 430, 650, 792, 431,
757 907, 642, 140, 830, 857, 432, 433, 434, 647, 648,
758 644, 155
759 };
760
761 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
762 positive, shift that token. If negative, reduce the rule whose
763 number is the opposite. If YYTABLE_NINF, syntax error. */
764 static const short yytable[] =
765 {
766 166, 154, 138, 141, 142, 416, 409, 409, 352, 168,
767 52, 98, 435, 641, 55, 171, 379, 165, 366, 504,
768 68, 369, 651, 502, 643, 100, 312, 643, 441, 474,
769 477, 478, 761, 783, 52, 677, 356, 52, 627, 678,
770 784, 55, 779, 97, 802, 805, 67, 808, 188, 189,
771 190, 380, 442, 353, 381, 52, 163, 22, 49, 498,
772 652, -355, -387, -355, -355, 657, -387, 311, 49, -386,
773 11, 389, 714, -24, 762, 653, 150, 450, 367, 370,
774 372, 181, 49, 453, 824, 49, 730, 376, 798, 151,
775 -511, 98, 783, 844, 377, -511, -381, -504, 799, 479,
776 654, 828, 474, 49, 476, 100, -441, -461, 59, -461,
777 60, 474, 106, 878, 474, 420, 421, 422, 423, 424,
778 -387, 425, 426, 374, -382, -504, 867, -386, 65, 390,
779 864, 396, 653, 172, 173, 174, -387, -387, 175, 172,
780 173, 174, 400, 761, 175, 401, 354, 626, 629, 630,
781 687, 176, 144, 98, 395, 145, 153, 176, 436, 146,
782 704, 147, 854, 705, 632, 633, 52, 100, 445, 446,
783 182, 664, 417, 900, 447, 767, 768, 420, 421, 422,
784 423, 424, 783, 425, 426, 97, 448, 872, 161, 895,
785 667, 668, 67, 821, 822, 824, -490, 186, -490, -490,
786 921, 733, 187, 783, 734, 132, 133, 134, 135, 136,
787 137, -452, 910, 191, 49, 759, 760, 783, 770, 771,
788 821, 822, 832, 655, 895, 178, 4, 5, 184, 677,
789 371, 373, 443, 678, 677, 823, 185, 366, 678, 314,
790 369, 1, 2, 3, 4, 5, 6, 7, 8, 375,
791 377, 924, -452, 717, 9, 382, 720, -504, 144, 156,
792 383, 145, 384, 385, 387, 146, 11, 147, 689, 690,
793 691, 692, 693, 392, 394, 398, 122, 123, 124, 125,
794 126, 127, 128, 129, 130, 404, 366, 743, 694, 369,
795 406, 407, 366, 438, 475, 369, 444, 367, 674, 454,
796 688, 722, 476, 122, 123, 124, 125, 126, 127, 128,
797 129, 130, 483, 485, 486, 703, 487, 163, 505, 785,
798 157, 62, 63, 64, 65, 474, 158, 439, 474, 474,
799 643, 628, 631, 634, 635, 656, 655, 657, 661, 766,
800 669, 715, 718, 709, 769, 725, 367, 724, 721, 726,
801 728, 452, 367, 727, 729, 420, 421, 422, 423, 424,
802 159, 425, 426, 730, 731, 732, 735, 736, 744, 749,
803 503, 745, 751, 746, 764, 765, 166, 747, 757, 794,
804 366, 758, 772, 369, 773, 168, 793, 637, 797, 645,
805 800, 649, 778, 165, 815, 806, 817, 818, 809, 366,
806 366, 819, 369, 369, 826, 816, 827, 803, 804, 646,
807 829, -601, 833, 837, 839, 838, 842, 848, 860, 849,
808 850, 856, 852, 395, 858, 859, 861, 862, 658, 810,
809 863, 865, 643, 866, 869, 868, 898, 663, 874, 871,
810 367, 876, 881, 877, 679, 680, 882, 884, 716, 886,
811 409, 778, 887, 409, 888, 909, 474, 474, 879, 367,
812 367, 896, 729, 880, 795, 796, 899, 901, 902, 897,
813 911, 912, 98, 918, 870, 913, 687, 914, 847, 915,
814 643, 916, 920, 917, 922, 929, 100, 925, 711, 927,
815 676, 643, 674, 853, 930, 933, 934, 674, 1, 2,
816 3, 4, 5, 6, 7, 8, 162, 846, 754, 386,
817 926, 9, 750, 179, 713, 160, 10, 388, 719, 482,
818 843, 643, 152, 11, 12, 13, 723, 403, 660, 807,
819 397, 405, 643, 149, 484, 14, 919, 638, 820, 923,
820 889, 778, 904, 931, 851, 1, 2, 3, 4, 5,
821 6, 7, 8, 788, 932, 0, 0, 789, 9, 0,
822 0, 0, 778, 61, 0, 0, 0, 0, 0, 0,
823 11, 0, 0, 0, 0, 0, 778, 15, 16, 17,
824 18, 19, 20, 21, 0, 22, 0, 813, 0, 409,
825 755, 756, 0, 0, 0, 0, 0, 0, 0, 0,
826 0, 1, 2, 3, 4, 5, 6, 7, 8, 0,
827 23, 0, 0, 0, 9, 24, 0, 25, 0, 61,
828 0, 417, 738, 0, 0, 62, 63, 64, 65, 0,
829 0, 0, 0, 0, 503, 0, 0, 0, 0, 0,
830 0, 166, 740, 0, 0, 0, 0, 0, 0, 0,
831 168, 0, 0, 0, 0, 0, 0, 0, 165, 0,
832 0, 0, 376, 0, 66, 0, 98, 0, 0, 0,
833 0, 98, 0, 366, 366, 0, 369, 369, 0, 0,
834 100, 62, 63, 64, 676, 100, 503, 165, 885, 676,
835 409, 503, 0, 0, 0, 0, 786, 0, 0, 436,
836 0, 0, 436, 0, 0, 0, 903, 0, 409, 0,
837 787, 0, 0, 834, 0, 0, 0, 0, 0, 0,
838 646, 0, 0, 1, 2, 3, 4, 5, 6, 7,
839 8, 0, 0, 367, 367, 0, 9, 0, 0, 0,
840 0, 61, 928, 0, 409, 0, 0, 0, 11, 0,
841 144, 0, 812, 145, 831, 711, 753, 146, 0, 147,
842 689, 690, 691, 692, 693, 0, 0, 840, 0, 0,
843 679, 680, 69, 0, 0, 0, 0, 0, 0, 0,
844 836, 0, 0, 0, 0, 0, 0, 845, 0, 0,
845 436, 0, 0, 0, 0, 0, 0, 0, 0, 0,
846 0, 0, 0, 93, 94, 18, 65, 0, 70, 71,
847 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
848 0, 82, 83, 84, 85, 0, 0, 0, 0, 0,
849 0, 0, 883, 0, 0, 0, 0, 0, 0, 0,
850 670, 890, 0, 0, 0, 0, 193, 0, 0, 194,
851 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
852 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
853 215, 216, 217, 218, 219, 220, 890, 221, 222, 223,
854 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
855 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
856 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
857 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
858 264, 265, 266, 267, 268, 269, 0, 270, 0, 271,
859 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
860 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
861 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
862 302, 303, 304, 0, 0, 305, 0, 306, 307, 308,
863 309, 310, 193, 0, 0, 315, 195, 196, 197, 198,
864 199, 200, 201, 202, 316, 204, 205, 206, 207, 317,
865 318, 210, 211, 212, 319, 214, 215, 216, 217, 218,
866 219, 220, 0, 221, 222, 223, 224, 225, 226, 227,
867 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
868 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
869 248, 249, 250, 251, 252, 253, 254, 255, 320, 321,
870 322, 323, 324, 261, 262, 263, 264, 265, 266, 267,
871 268, 269, 0, 270, 0, 271, 272, 273, 274, 275,
872 325, 277, 326, 327, 328, 329, 330, 331, 284, 332,
873 286, 287, 333, 334, 335, 336, 337, 338, 339, 340,
874 341, 342, 343, 344, 345, 346, 347, 348, 304, 0,
875 0, 305, 0, 306, 307, 308, 309, 310, 506, 0,
876 0, 507, 508, 509, 510, 511, 512, 513, 514, 515,
877 516, 517, 518, 519, 520, 521, 522, 523, 524, 525,
878 526, 527, 528, 529, 530, 531, 532, 533, 0, 534,
879 535, 536, 537, 538, 404, 712, 539, 540, 541, 542,
880 543, 544, 545, 546, 547, 548, 549, 550, 551, 552,
881 553, 554, 555, 556, 557, 558, 559, 560, 561, 562,
882 563, 564, 565, 566, 567, 568, 569, 570, 571, 572,
883 573, 574, 575, 576, 577, 578, 579, 580, 0, 581,
884 0, 582, 583, 584, 585, 586, 587, 588, 589, 590,
885 591, 592, 593, 594, 595, 596, 597, 598, 599, 600,
886 601, 602, 603, 604, 605, 606, 607, 608, 609, 610,
887 611, 612, 613, 614, 615, 0, 0, 616, 0, 617,
888 618, 619, 620, 621, 506, 0, 0, 507, 508, 509,
889 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
890 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
891 530, 531, 532, 533, 0, 534, 535, 536, 537, 538,
892 404, 0, 539, 540, 541, 542, 543, 544, 545, 546,
893 547, 548, 549, 550, 551, 552, 553, 554, 555, 556,
894 557, 558, 559, 560, 561, 562, 563, 564, 565, 566,
895 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
896 577, 578, 579, 580, 0, 581, 0, 582, 583, 584,
897 585, 586, 587, 588, 589, 590, 591, 592, 593, 594,
898 595, 596, 597, 598, 599, 600, 601, 602, 603, 604,
899 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
900 615, 104, 0, 616, 0, 617, 618, 619, 620, 621,
901 105, 0, 0, 0, 0, 106, 107, 488, 0, 0,
902 108, 489, 0, 490, 0, 491, 359, 492, 0, 0,
903 493, 0, 0, 0, 0, 1, 2, 3, 4, 5,
904 6, 7, 8, 0, 0, 361, 362, 163, 9, 0,
905 0, 0, 0, 61, 0, 0, 0, 0, 363, 364,
906 11, 0, 0, 0, 109, 110, 111, 112, 113, 0,
907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
908 0, 0, 0, 0, 0, 494, 114, 0, 115, 116,
909 117, 118, 119, 120, 0, 121, 0, 0, 122, 123,
910 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
911 134, 135, 136, 137, 0, 93, 94, 18, 65, 0,
912 0, 0, 495, 1, 2, 3, 4, 5, 6, 7,
913 8, 0, 0, 0, 0, 0, 9, 0, 0, 0,
914 0, 61, 0, 0, -33, 0, 0, 0, 11, 0,
915 0, 0, 95, -33, 0, 0, 0, 0, -33, -33,
916 0, 0, 0, -33, 0, 0, -33, -33, -33, -33,
917 0, 0, 0, -33, 0, 0, 0, 0, 0, 0,
918 0, 0, 0, 0, 0, 0, 0, 0, -33, -33,
919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
920 0, -33, -33, 93, 94, 18, 65, -33, -33, -33,
921 -33, -33, 0, 0, 0, 0, 0, 0, 0, -33,
922 0, 0, 0, 0, 0, 0, 0, 0, 0, -33,
923 0, -33, -33, -33, -33, -33, -33, 0, -33, 0,
924 670, -33, -33, -33, -33, -33, -33, -33, -33, -33,
925 -33, -33, -33, -33, -33, -33, -33, -34, 0, -33,
926 0, 0, 0, 0, 0, 0, -34, 0, 0, 0,
927 0, -34, -34, 0, 0, 0, -34, 0, 0, -34,
928 -34, -34, -34, 0, 0, 0, -34, 0, 0, 0,
929 0, 0, 0, 1, 2, 3, 4, 5, 6, 7,
930 8, -34, -34, 0, 0, 0, 9, 0, 0, 0,
931 0, 61, 0, 0, -34, -34, 0, 0, 11, 0,
932 -34, -34, -34, -34, -34, 0, 0, 0, 0, 0,
933 0, 0, -34, 0, 0, 0, 0, 0, 0, 0,
934 0, 0, -34, 0, -34, -34, -34, -34, -34, -34,
935 0, -34, 0, 0, -34, -34, -34, -34, -34, -34,
936 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
937 -57, 0, -34, 62, 63, 64, 65, 0, 0, -57,
938 0, 0, 0, 0, -57, -57, 0, 0, 0, -57,
939 0, 0, -57, -57, -57, -57, 0, 0, 0, -57,
940 0, 0, 0, 0, 0, 0, 1, 2, 3, 4,
941 5, 6, 7, 8, -57, -57, 0, 0, 0, 9,
942 0, 0, 0, 0, 61, 0, 0, -57, -57, 0,
943 0, 11, 0, -57, -57, -57, -57, -57, 0, 0,
944 0, 0, 0, 0, 0, -57, 0, 0, 0, 0,
945 0, 0, 0, 0, 0, -57, 0, -57, -57, -57,
946 -57, -57, -57, 0, -57, 0, 0, -57, -57, -57,
947 -57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
948 -57, -57, -57, -58, 0, -616, 93, 94, 18, 65,
949 0, 0, -58, 0, 0, 0, 0, -58, -58, 0,
950 0, 0, -58, 0, 0, -58, -58, -58, -58, 0,
951 0, 0, -58, 0, 0, 0, 0, 0, 0, 1,
952 2, 3, 4, 5, 6, 7, 8, -58, -58, 0,
953 0, 0, 9, 0, 0, 0, 0, 61, 0, 0,
954 -58, -58, 0, 0, 11, 0, -58, -58, -58, -58,
955 -58, 0, 0, 0, 0, 0, 0, 0, -58, 0,
956 0, 0, 0, 0, 0, 0, 0, 0, -58, 0,
957 -58, -58, -58, -58, -58, -58, 0, -58, 0, 0,
958 -58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
959 -58, -58, -58, -58, -58, -58, -24, 0, -577, 62,
960 63, 64, 65, 0, 0, -24, 0, 0, 0, 0,
961 -24, -24, 0, 0, 0, -24, 0, 0, -24, -24,
962 -24, -24, 0, 0, 0, -24, 0, 0, 0, 0,
963 0, 0, 1, 2, 3, 4, 5, 6, 7, 8,
964 -24, -24, 0, 0, 0, 408, 0, 0, 0, 0,
965 61, 0, 0, -24, -24, 0, 0, 11, 0, -24,
966 -24, -24, -24, -24, 0, 0, 0, 0, 0, 0,
967 0, -24, 0, 0, 0, 0, 0, 0, 0, 0,
968 0, -24, 0, -24, -24, -24, -24, -24, -24, 0,
969 -24, 0, 0, -24, -24, -24, -24, -24, -24, -24,
970 -24, -24, -24, -24, -24, -24, -24, -24, -24, -39,
971 0, -24, 62, 63, 64, 65, 0, 0, -39, 0,
972 0, 0, 0, -39, -39, 0, 0, 0, -39, 0,
973 0, -39, -39, -39, -39, 0, 0, 0, -39, 0,
974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
975 0, 0, 0, -39, -39, 0, 0, 0, 0, 0,
976 0, 0, 0, 0, 0, 0, -39, -39, 0, 0,
977 0, 0, -39, -39, -39, -39, -39, 0, 0, 0,
978 0, 0, 0, 0, -39, 0, 0, 0, 0, 0,
979 0, 0, 0, 0, -39, 0, -39, -39, -39, -39,
980 -39, -39, 0, -39, 0, 0, -39, -39, -39, -39,
981 -39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
982 -39, -39, -38, 0, -39, 0, 0, 0, 0, 0,
983 0, -38, 0, 0, 0, 0, -38, -38, 0, 0,
984 0, -38, 0, 0, -38, -38, -38, -38, 0, 0,
985 0, -38, 0, 0, 0, 0, 0, 0, 0, 0,
986 0, 0, 0, 0, 0, 0, -38, -38, 0, 0,
987 0, 0, 0, 0, 0, 0, 0, 0, 0, -38,
988 -38, 0, 0, 0, 0, -38, -38, -38, -38, -38,
989 0, 0, 0, 0, 0, 0, 0, -38, 0, 0,
990 0, 0, 0, 0, 0, 0, 0, -38, 0, -38,
991 -38, -38, -38, -38, -38, 0, -38, 0, 0, -38,
992 -38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
993 -38, -38, -38, -38, -38, -37, 0, -38, 0, 0,
994 0, 0, 0, 0, -37, 0, 0, 0, 0, -37,
995 -37, 0, 0, 0, -37, 0, 0, -37, -37, -37,
996 -37, 0, 0, 0, -37, 0, 0, 0, 0, 0,
997 0, 0, 0, 0, 0, 0, 0, 0, 0, -37,
998 -37, 0, 0, 0, 0, 0, 0, 0, 0, 0,
999 0, 0, -37, -37, 0, 0, 0, 0, -37, -37,
1000 -37, -37, -37, 0, 0, 0, 0, 0, 0, 0,
1001 -37, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1002 -37, 0, -37, -37, -37, -37, -37, -37, 0, -37,
1003 0, 0, -37, -37, -37, -37, -37, -37, -37, -37,
1004 -37, -37, -37, -37, -37, -37, -37, -37, -35, 0,
1005 -37, 0, 0, 0, 0, 0, 0, -35, 0, 0,
1006 0, 0, -35, -35, 0, 0, 0, -35, 0, 0,
1007 -35, -35, -35, -35, 0, 0, 0, -35, 0, 0,
1008 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1009 0, 0, -35, -35, 0, 0, 0, 0, 0, 0,
1010 0, 0, 0, 0, 0, -35, -35, 0, 0, 0,
1011 0, -35, -35, -35, -35, -35, 0, 0, 0, 0,
1012 0, 0, 0, -35, 0, 0, 0, 0, 0, 0,
1013 0, 0, 0, -35, 0, -35, -35, -35, -35, -35,
1014 -35, 0, -35, 0, 0, -35, -35, -35, -35, -35,
1015 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
1016 -35, -36, 0, -35, 0, 0, 0, 0, 0, 0,
1017 -36, 0, 0, 0, 0, -36, -36, 0, 0, 0,
1018 -36, 0, 0, -36, -36, -36, -36, 0, 0, 0,
1019 -36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1020 0, 0, 0, 0, 0, -36, -36, 0, 0, 0,
1021 0, 0, 0, 0, 0, 0, 0, 0, -36, -36,
1022 0, 0, 0, 0, -36, -36, -36, -36, -36, 0,
1023 0, 0, 0, 0, 0, 0, -36, 0, 0, 0,
1024 0, 0, 0, 0, 0, 0, -36, 0, -36, -36,
1025 -36, -36, -36, -36, 0, -36, 0, 0, -36, -36,
1026 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
1027 -36, -36, -36, -36, -32, 0, -36, 0, 0, 0,
1028 0, 0, 0, -32, 0, 0, 0, 0, -32, -32,
1029 0, 0, 0, -32, 0, 0, -32, -32, -32, -32,
1030 0, 0, 0, -32, 0, 0, 0, 0, 0, 0,
1031 0, 0, 0, 0, 0, 0, 0, 0, -32, -32,
1032 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1033 0, -32, -32, 0, 0, 0, 0, -32, -32, -32,
1034 -32, -32, 0, 0, 0, 0, 0, 0, 0, -32,
1035 0, 0, 0, 0, 0, 0, 0, 0, 0, -32,
1036 0, -32, -32, -32, -32, -32, -32, 0, -32, 0,
1037 0, -32, -32, -32, -32, -32, -32, -32, -32, -32,
1038 -32, -32, -32, -32, -32, -32, -32, -31, 0, -32,
1039 0, 0, 0, 0, 0, 0, -31, 0, 0, 0,
1040 0, -31, -31, 0, 0, 0, -31, 0, 0, -31,
1041 -31, -31, -31, 0, 0, 0, -31, 0, 0, 0,
1042 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1043 0, -31, -31, 0, 0, 0, 0, 0, 0, 0,
1044 0, 0, 0, 0, -31, -31, 0, 0, 0, 0,
1045 -31, -31, -31, -31, -31, 0, 0, 0, 0, 0,
1046 0, 0, -31, 0, 0, 0, 0, 0, 0, 0,
1047 0, 0, -31, 0, -31, -31, -31, -31, -31, -31,
1048 0, -31, 0, 0, -31, -31, -31, -31, -31, -31,
1049 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
1050 -25, 0, -31, 0, 0, 0, 0, 0, 0, -25,
1051 0, 0, 0, 0, -25, -25, 0, 0, 0, -25,
1052 0, 0, -25, -25, -25, -25, 0, 0, 0, -25,
1053 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1054 0, 0, 0, 0, -25, -25, 0, 0, 0, 0,
1055 0, 0, 0, 0, 0, 0, 0, -25, -25, 0,
1056 0, 0, 0, -25, -25, -25, -25, -25, 0, 0,
1057 0, 0, 0, 0, 0, -25, 0, 0, 0, 0,
1058 0, 0, 0, 0, 0, -25, 0, -25, -25, -25,
1059 -25, -25, -25, 0, -25, 0, 0, -25, -25, -25,
1060 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
1061 -25, -25, -25, -29, 0, -25, 0, 0, 0, 0,
1062 0, 0, -29, 0, 0, 0, 0, -29, -29, 0,
1063 0, 0, -29, 0, 0, -29, -29, -29, -29, 0,
1064 0, 0, -29, 0, 0, 0, 0, 0, 0, 0,
1065 0, 0, 0, 0, 0, 0, 0, -29, -29, 0,
1066 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1067 -29, -29, 0, 0, 0, 0, -29, -29, -29, -29,
1068 -29, 0, 0, 0, 0, 0, 0, 0, -29, 0,
1069 0, 0, 0, 0, 0, 0, 0, 0, -29, 0,
1070 -29, -29, -29, -29, -29, -29, 0, -29, 0, 0,
1071 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
1072 -29, -29, -29, -29, -29, -29, -28, 0, -29, 0,
1073 0, 0, 0, 0, 0, -28, 0, 0, 0, 0,
1074 -28, -28, 0, 0, 0, -28, 0, 0, -28, -28,
1075 -28, -28, 0, 0, 0, -28, 0, 0, 0, 0,
1076 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1077 -28, -28, 0, 0, 0, 0, 0, 0, 0, 0,
1078 0, 0, 0, -28, -28, 0, 0, 0, 0, -28,
1079 -28, -28, -28, -28, 0, 0, 0, 0, 0, 0,
1080 0, -28, 0, 0, 0, 0, 0, 0, 0, 0,
1081 0, -28, 0, -28, -28, -28, -28, -28, -28, 0,
1082 -28, 0, 0, -28, -28, -28, -28, -28, -28, -28,
1083 -28, -28, -28, -28, -28, -28, -28, -28, -28, -26,
1084 0, -28, 0, 0, 0, 0, 0, 0, -26, 0,
1085 0, 0, 0, -26, -26, 0, 0, 0, -26, 0,
1086 0, -26, -26, -26, -26, 0, 0, 0, -26, 0,
1087 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1088 0, 0, 0, -26, -26, 0, 0, 0, 0, 0,
1089 0, 0, 0, 0, 0, 0, -26, -26, 0, 0,
1090 0, 0, -26, -26, -26, -26, -26, 0, 0, 0,
1091 0, 0, 0, 0, -26, 0, 0, 0, 0, 0,
1092 0, 0, 0, 0, -26, 0, -26, -26, -26, -26,
1093 -26, -26, 0, -26, 0, 0, -26, -26, -26, -26,
1094 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
1095 -26, -26, -27, 0, -26, 0, 0, 0, 0, 0,
1096 0, -27, 0, 0, 0, 0, -27, -27, 0, 0,
1097 0, -27, 0, 0, -27, -27, -27, -27, 0, 0,
1098 0, -27, 0, 0, 0, 0, 0, 0, 0, 0,
1099 0, 0, 0, 0, 0, 0, -27, -27, 0, 0,
1100 0, 0, 0, 0, 0, 0, 0, 0, 0, -27,
1101 -27, 0, 0, 0, 0, -27, -27, -27, -27, -27,
1102 0, 0, 0, 0, 0, 0, 0, -27, 0, 0,
1103 0, 0, 0, 0, 0, 0, 0, -27, 0, -27,
1104 -27, -27, -27, -27, -27, 0, -27, 0, 0, -27,
1105 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
1106 -27, -27, -27, -27, -27, -40, 0, -27, 0, 0,
1107 0, 0, 0, 0, -40, 0, 0, 0, 0, -40,
1108 -40, 0, 0, 0, -40, 0, 0, -40, -40, -40,
1109 -40, 0, 0, 0, -40, 0, 0, 0, 0, 0,
1110 0, 0, 0, 0, 0, 0, 0, 0, 0, -40,
1111 -40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1112 0, 0, -40, -40, 0, 0, 0, 0, -40, -40,
1113 -40, -40, -40, 0, 0, 0, 0, 0, 0, 0,
1114 -40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1115 -40, 0, -40, -40, -40, -40, -40, -40, 0, -40,
1116 0, 0, -40, -40, -40, -40, -40, -40, -40, -40,
1117 -40, -40, -40, -40, -40, -40, -40, -40, -135, 0,
1118 -40, 0, 0, 0, 0, 0, 0, -135, 0, 0,
1119 0, 0, -135, -135, 0, 0, 0, -135, 0, 0,
1120 -135, -135, -135, -135, 0, 0, 0, -135, 0, 0,
1121 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1122 0, 0, -135, -135, 0, 0, 0, 0, 0, 0,
1123 0, 0, 0, 0, 0, -135, -135, 0, 0, 0,
1124 0, -135, -135, -135, -135, -135, 0, 0, 0, 0,
1125 0, 0, 0, -135, 0, 0, 0, 0, 0, 0,
1126 0, 0, 0, -135, 0, -135, -135, -135, -135, -135,
1127 -135, 0, -135, 0, 0, -135, -135, -135, -135, -135,
1128 -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
1129 -135, -136, 0, -585, 0, 0, 0, 0, 0, 0,
1130 -136, 0, 0, 0, 0, -136, -136, 0, 0, 0,
1131 -136, 0, 0, -136, -136, -136, -136, 0, 0, 0,
1132 -136, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1133 0, 0, 0, 0, 0, -136, -136, 0, 0, 0,
1134 0, 0, 0, 0, 0, 0, 0, 0, -136, -136,
1135 0, 0, 0, 0, -136, -136, -136, -136, -136, 0,
1136 0, 0, 0, 0, 0, 0, -136, 0, 0, 0,
1137 0, 0, 0, 0, 0, 0, -136, 0, -136, -136,
1138 -136, -136, -136, -136, 0, -136, 0, 0, -136, -136,
1139 -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
1140 -136, -136, -136, -136, -137, 0, -584, 0, 0, 0,
1141 0, 0, 0, -137, 0, 0, 0, 0, -137, -137,
1142 0, 0, 0, -137, 0, 0, -137, -137, -137, -137,
1143 0, 0, 0, -137, 0, 0, 0, 0, 0, 0,
1144 0, 0, 0, 0, 0, 0, 0, 0, -137, -137,
1145 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1146 0, -137, -137, 0, 0, 0, 0, -137, -137, -137,
1147 -137, -137, 0, 0, 0, 0, 0, 0, 0, -137,
1148 0, 0, 0, 0, 0, 0, 0, 0, 0, -137,
1149 0, -137, -137, -137, -137, -137, -137, 0, -137, 0,
1150 0, -137, -137, -137, -137, -137, -137, -137, -137, -137,
1151 -137, -137, -137, -137, -137, -137, -137, -138, 0, -582,
1152 0, 0, 0, 0, 0, 0, -138, 0, 0, 0,
1153 0, -138, -138, 0, 0, 0, -138, 0, 0, -138,
1154 -138, -138, -138, 0, 0, 0, -138, 0, 0, 0,
1155 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1156 0, -138, -138, 0, 0, 0, 0, 0, 0, 0,
1157 0, 0, 0, 0, -138, -138, 0, 0, 0, 0,
1158 -138, -138, -138, -138, -138, 0, 0, 0, 0, 0,
1159 0, 0, -138, 0, 0, 0, 0, 0, 0, 0,
1160 0, 0, -138, 0, -138, -138, -138, -138, -138, -138,
1161 0, -138, 0, 0, -138, -138, -138, -138, -138, -138,
1162 -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
1163 -139, 0, -580, 0, 0, 0, 0, 0, 0, -139,
1164 0, 0, 0, 0, -139, -139, 0, 0, 0, -139,
1165 0, 0, -139, -139, -139, -139, 0, 0, 0, -139,
1166 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1167 0, 0, 0, 0, -139, -139, 0, 0, 0, 0,
1168 0, 0, 0, 0, 0, 0, 0, -139, -139, 0,
1169 0, 0, 0, -139, -139, -139, -139, -139, 0, 0,
1170 0, 0, 0, 0, 0, -139, 0, 0, 0, 0,
1171 0, 0, 0, 0, 0, -139, 0, -139, -139, -139,
1172 -139, -139, -139, 0, -139, 0, 0, -139, -139, -139,
1173 -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
1174 -139, -139, -139, -140, 0, -581, 0, 0, 0, 0,
1175 0, 0, -140, 0, 0, 0, 0, -140, -140, 0,
1176 0, 0, -140, 0, 0, -140, -140, -140, -140, 0,
1177 0, 0, -140, 0, 0, 0, 0, 0, 0, 0,
1178 0, 0, 0, 0, 0, 0, 0, -140, -140, 0,
1179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1180 -140, -140, 0, 0, 0, 0, -140, -140, -140, -140,
1181 -140, 0, 0, 0, 0, 0, 0, 0, -140, 0,
1182 0, 0, 0, 0, 0, 0, 0, 0, -140, 0,
1183 -140, -140, -140, -140, -140, -140, 0, -140, 0, 0,
1184 -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
1185 -140, -140, -140, -140, -140, -140, -141, 0, -583, 0,
1186 0, 0, 0, 0, 0, -141, 0, 0, 0, 0,
1187 -141, -141, 0, 0, 0, -141, 0, 0, -141, -141,
1188 -141, -141, 0, 0, 0, -141, 0, 0, 0, 0,
1189 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1190 -141, -141, 0, 0, 0, 0, 0, 0, 0, 0,
1191 0, 0, 0, -141, -141, 0, 0, 0, 0, -141,
1192 -141, -141, -141, -141, 0, 0, 0, 0, 0, 0,
1193 0, -141, 0, 0, 0, 0, 0, 0, 0, 0,
1194 0, -141, 0, -141, -141, -141, -141, -141, -141, 0,
1195 -141, 0, 0, -141, -141, -141, -141, -141, -141, -141,
1196 -141, -141, -141, -141, -141, -141, -141, -141, -141, -142,
1197 0, -579, 0, 0, 0, 0, 0, 0, -142, 0,
1198 0, 0, 0, -142, -142, 0, 0, 0, -142, 0,
1199 0, -142, -142, -142, -142, 0, 0, 0, -142, 0,
1200 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1201 0, 0, 0, -142, -142, 0, 0, 0, 0, 0,
1202 0, 0, 0, 0, 0, 0, -142, -142, 0, 0,
1203 0, 0, -142, -142, -142, -142, -142, 0, 0, 0,
1204 0, 0, 0, 0, -142, 0, 0, 0, 0, 0,
1205 0, 0, 0, 0, -142, 0, -142, -142, -142, -142,
1206 -142, -142, 0, -142, 0, 0, -142, -142, -142, -142,
1207 -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
1208 -142, -142, -143, 0, -578, 0, 0, 0, 0, 0,
1209 0, -143, 0, 0, 0, 0, -143, -143, 0, 0,
1210 0, -143, 0, 0, -143, -143, -143, -143, 0, 0,
1211 0, -143, 0, 0, 0, 0, 0, 0, 0, 0,
1212 0, 0, 0, 0, 0, 0, -143, -143, 0, 0,
1213 0, 0, 0, 0, 0, 0, 0, 0, 0, -143,
1214 -143, 0, 0, 0, 0, -143, -143, -143, -143, -143,
1215 0, 0, 0, 0, 0, 0, 0, -143, 0, 0,
1216 0, 0, 0, 0, 0, 0, 0, -143, 0, -143,
1217 -143, -143, -143, -143, -143, 0, -143, 0, 0, -143,
1218 -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
1219 -143, -143, -143, -143, -143, -30, 0, -586, 0, 0,
1220 0, 0, 0, 0, -30, 0, 0, 0, 0, -30,
1221 -30, 0, 0, 0, -30, 0, 0, -30, -30, -30,
1222 -30, 0, 0, 0, -30, 0, 0, 0, 0, 0,
1223 0, 0, 0, 0, 0, 0, 0, 0, 0, -30,
1224 -30, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1225 0, 0, -30, -30, 0, 0, 0, 0, -30, -30,
1226 -30, -30, -30, 0, 0, 0, 0, 0, 0, 0,
1227 -30, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1228 -30, 0, -30, -30, -30, -30, -30, -30, 0, -30,
1229 0, 0, -30, -30, -30, -30, -30, -30, -30, -30,
1230 -30, -30, -30, -30, -30, -30, -30, -30, -145, 0,
1231 -30, 0, 0, 0, 0, 0, 0, -145, 0, 0,
1232 0, 0, -145, -145, 0, 0, 0, -145, 0, 0,
1233 -145, -145, -145, -145, 0, 0, 0, -145, 0, 0,
1234 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1235 0, 0, -145, -145, 0, 0, 0, 0, 0, 0,
1236 0, 0, 0, 0, 0, -145, -145, 0, 0, 0,
1237 0, -145, -145, -145, -145, -145, 0, 0, 0, 0,
1238 0, 0, 0, -145, 0, 0, 0, 0, 0, 0,
1239 0, 0, 0, -145, 0, -145, -145, -145, -145, -145,
1240 -145, 0, -145, 0, 0, -145, -145, -145, -145, -145,
1241 -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
1242 -145, -146, 0, -614, 0, 0, 0, 0, 0, 0,
1243 -146, 0, 0, 0, 0, -146, -146, 0, 0, 0,
1244 -146, 0, 0, -146, -146, -146, -146, 0, 0, 0,
1245 -146, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1246 0, 0, 0, 0, 0, -146, -146, 0, 0, 0,
1247 0, 0, 0, 0, 0, 0, 0, 0, -146, -146,
1248 0, 0, 0, 0, -146, -146, -146, -146, -146, 0,
1249 0, 0, 0, 0, 0, 0, -146, 0, 0, 0,
1250 0, 0, 0, 0, 0, 0, -146, 0, -146, -146,
1251 -146, -146, -146, -146, 0, -146, 0, 0, -146, -146,
1252 -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
1253 -146, -146, -146, -146, -147, 0, -612, 0, 0, 0,
1254 0, 0, 0, -147, 0, 0, 0, 0, -147, -147,
1255 0, 0, 0, -147, 0, 0, -147, -147, -147, -147,
1256 0, 0, 0, -147, 0, 0, 0, 0, 0, 0,
1257 0, 0, 0, 0, 0, 0, 0, 0, -147, -147,
1258 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1259 0, -147, -147, 0, 0, 0, 0, -147, -147, -147,
1260 -147, -147, 0, 0, 0, 0, 0, 0, 0, -147,
1261 0, 0, 0, 0, 0, 0, 0, 0, 0, -147,
1262 0, -147, -147, -147, -147, -147, -147, 0, -147, 0,
1263 0, -147, -147, -147, -147, -147, -147, -147, -147, -147,
1264 -147, -147, -147, -147, -147, -147, -147, -148, 0, -611,
1265 0, 0, 0, 0, 0, 0, -148, 0, 0, 0,
1266 0, -148, -148, 0, 0, 0, -148, 0, 0, -148,
1267 -148, -148, -148, 0, 0, 0, -148, 0, 0, 0,
1268 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1269 0, -148, -148, 0, 0, 0, 0, 0, 0, 0,
1270 0, 0, 0, 0, -148, -148, 0, 0, 0, 0,
1271 -148, -148, -148, -148, -148, 0, 0, 0, 0, 0,
1272 0, 0, -148, 0, 0, 0, 0, 0, 0, 0,
1273 0, 0, -148, 0, -148, -148, -148, -148, -148, -148,
1274 0, -148, 0, 0, -148, -148, -148, -148, -148, -148,
1275 -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
1276 -149, 0, -613, 0, 0, 0, 0, 0, 0, -149,
1277 0, 0, 0, 0, -149, -149, 0, 0, 0, -149,
1278 0, 0, -149, -149, -149, -149, 0, 0, 0, -149,
1279 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1280 0, 0, 0, 0, -149, -149, 0, 0, 0, 0,
1281 0, 0, 0, 0, 0, 0, 0, -149, -149, 0,
1282 0, 0, 0, -149, -149, -149, -149, -149, 0, 0,
1283 0, 0, 0, 0, 0, -149, 0, 0, 0, 0,
1284 0, 0, 0, 0, 0, -149, 0, -149, -149, -149,
1285 -149, -149, -149, 0, -149, 0, 0, -149, -149, -149,
1286 -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
1287 -149, -149, -149, -150, 0, -610, 0, 0, 0, 0,
1288 0, 0, -150, 0, 0, 0, 0, -150, -150, 0,
1289 0, 0, -150, 0, 0, -150, -150, -150, -150, 0,
1290 0, 0, -150, 0, 0, 0, 0, 0, 0, 0,
1291 0, 0, 0, 0, 0, 0, 0, -150, -150, 0,
1292 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1293 -150, -150, 0, 0, 0, 0, -150, -150, -150, -150,
1294 -150, 0, 0, 0, 0, 0, 0, 0, -150, 0,
1295 0, 0, 0, 0, 0, 0, 0, 0, -150, 0,
1296 -150, -150, -150, -150, -150, -150, 0, -150, 0, 0,
1297 -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
1298 -150, -150, -150, -150, -150, -150, 104, 0, -609, 0,
1299 0, 0, 0, 0, 0, 105, 0, 0, 0, 0,
1300 106, 107, 0, 0, 0, 108, 0, 0, 357, 439,
1301 358, 359, 0, 0, 0, 360, 0, 0, 0, 0,
1302 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1303 361, 362, 0, 0, 0, 0, 0, 0, 0, 0,
1304 0, 0, 0, 363, 364, 0, 0, 0, 0, 109,
1305 110, 111, 112, 113, 0, 0, 0, 0, 0, 0,
1306 0, 365, 0, 0, 0, 0, 0, 0, 0, 0,
1307 0, 114, 0, 115, 116, 117, 118, 119, 120, 0,
1308 121, 0, 0, 122, 123, 124, 125, 126, 127, 128,
1309 129, 130, 131, 132, 133, 134, 135, 136, 137, -577,
1310 0, 440, 0, 0, 0, 0, 0, 0, -577, 0,
1311 0, 0, 0, -577, -577, 0, 0, 0, -577, 0,
1312 0, 0, 0, 0, 0, -577, -577, -577, -577, -577,
1313 -577, -577, -577, -577, -577, -577, -577, 0, -577, -577,
1314 -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
1315 -577, -577, -577, -577, -577, -577, 0, 0, 0, 0,
1316 0, -577, -577, -577, -577, -577, -577, 0, 0, 0,
1317 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1318 0, 0, 0, -577, -577, 0, -577, -577, -577, -577,
1319 -577, -577, 0, -577, 0, 0, -577, -577, -577, -577,
1320 -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
1321 -577, -577, 104, 1, 2, 3, 4, 5, 6, 7,
1322 8, 105, 0, 0, 0, 0, 701, 107, 488, 0,
1323 0, 702, 489, 0, 490, 0, 491, 359, 11, 0,
1324 0, 493, 0, 0, 0, 0, 0, 0, 0, 0,
1325 0, 0, 0, 0, 0, 0, 361, 362, 163, 0,
1326 0, 0, 0, 0, 0, 0, 0, 0, 0, 363,
1327 364, 0, 0, 0, 0, 109, 110, 111, 112, 113,
1328 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1329 0, 0, 0, 62, 63, 64, 65, 114, 0, 115,
1330 116, 117, 118, 119, 120, 0, 121, 0, 0, 122,
1331 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
1332 133, 134, 135, 136, 137, 104, 0, 0, 0, 0,
1333 0, 0, 0, 0, 105, 0, 0, 0, 0, 106,
1334 107, 681, 682, 683, 108, 489, 0, 490, 439, 491,
1335 359, 0, 0, 0, 493, 0, 0, 0, 0, 0,
1336 0, 0, 0, 0, 0, 0, 0, 0, 0, 361,
1337 362, 163, 0, 0, 0, 0, 0, 0, 0, 0,
1338 0, 0, 363, 364, 0, 0, 0, 0, 109, 110,
1339 111, 112, 113, 0, 0, 0, 0, 0, 0, 0,
1340 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1341 114, 0, 115, 116, 117, 118, 119, 120, 0, 121,
1342 0, 0, 122, 123, 124, 125, 126, 127, 128, 129,
1343 130, 131, 132, 133, 134, 135, 136, 137, 104, 0,
1344 0, 0, 0, 0, 0, 0, 0, 105, 0, 0,
1345 0, 0, 106, 107, 774, 0, 0, 108, 489, 0,
1346 490, 0, 491, 359, 0, 0, 0, 493, 0, 0,
1347 0, 0, 0, 0, 0, 0, 0, 0, 0, 153,
1348 0, 0, 361, 362, 163, 0, 0, 0, 0, 0,
1349 0, 0, 0, 0, 0, 363, 364, 0, 0, 0,
1350 0, 109, 110, 111, 112, 113, 0, 0, 0, 0,
1351 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1352 0, 0, 0, 114, 775, 776, 116, 117, 118, 119,
1353 120, 0, 121, 0, 0, 122, 123, 124, 125, 126,
1354 127, 128, 129, 130, 777, 132, 133, 134, 135, 136,
1355 137, 104, 0, 0, 0, 0, 0, 0, 0, 0,
1356 105, 0, 0, 0, 0, 106, 107, 488, 0, 0,
1357 108, 489, 0, 490, 0, 491, 359, 0, 0, 0,
1358 493, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1359 0, 0, 153, 0, 0, 361, 362, 163, 0, 0,
1360 0, 0, 0, 0, 0, 0, 0, 0, 363, 364,
1361 0, 0, 855, 0, 109, 110, 111, 112, 113, 0,
1362 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1363 0, 0, 0, 0, 0, 0, 114, 0, 115, 116,
1364 117, 118, 119, 120, 0, 121, 0, 0, 122, 123,
1365 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1366 134, 135, 136, 137, 104, 0, 0, 0, 0, 0,
1367 0, 0, 0, 105, 0, 0, 0, 0, 106, 107,
1368 488, 0, 0, 108, 489, -628, 490, 0, 491, 359,
1369 0, 0, 0, 493, 0, 0, 0, 0, 0, 0,
1370 0, 0, 0, 0, 0, 153, 0, 0, 361, 362,
1371 163, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1372 0, 363, 364, 0, 0, 0, 0, 109, 110, 111,
1373 112, 113, 0, 0, 0, 0, 0, 0, 0, 0,
1374 0, 0, 0, 0, 0, 0, 0, 0, 0, 114,
1375 0, 115, 116, 117, 118, 119, 120, 0, 121, 0,
1376 0, 122, 123, 124, 125, 126, 127, 128, 129, 130,
1377 131, 132, 133, 134, 135, 136, 137, 104, 0, 0,
1378 0, 0, 0, 0, 0, 0, 105, 0, 0, 0,
1379 0, 106, 107, 488, 0, 0, 108, 489, 0, 490,
1380 0, 491, 359, 0, 0, 0, 493, 0, 0, 0,
1381 0, 0, 0, 0, 0, 0, 0, 0, 153, 0,
1382 0, 361, 362, 163, 0, 0, 0, 0, 0, 0,
1383 0, 0, 0, 0, 363, 364, 0, 0, 0, 0,
1384 109, 110, 111, 112, 113, 0, 0, 0, 0, 0,
1385 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1386 0, 0, 114, 0, 115, 116, 117, 118, 119, 120,
1387 0, 121, 0, 0, 122, 123, 124, 125, 126, 127,
1388 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1389 104, 0, 0, 0, 0, 0, 0, 0, 0, 105,
1390 0, 0, 0, 0, 106, 107, 774, 0, 0, 108,
1391 489, 0, 490, 0, 491, 359, 0, 0, 0, 493,
1392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1393 0, 0, 0, 0, 361, 362, 163, 0, 0, 0,
1394 0, 0, 0, 0, 0, 0, 0, 363, 364, 0,
1395 0, 0, 0, 109, 110, 111, 112, 113, 0, 0,
1396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1397 0, 0, 0, 0, 0, 114, 775, 776, 116, 117,
1398 118, 119, 120, 0, 121, 0, 0, 122, 123, 124,
1399 125, 126, 127, 128, 129, 130, 777, 132, 133, 134,
1400 135, 136, 137, 104, 0, 0, 0, 0, 0, 0,
1401 0, 0, 105, 0, 0, 0, 0, 106, 107, 488,
1402 0, 0, 108, 489, 0, 490, 0, 491, 359, 0,
1403 0, 0, 493, 0, 0, 0, 0, 0, 0, 0,
1404 0, 0, 0, 0, 0, 0, 0, 361, 362, 163,
1405 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1406 363, 364, 0, 0, 0, 0, 109, 110, 111, 112,
1407 113, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1408 0, 0, 0, 0, 0, 0, 0, 0, 114, 0,
1409 115, 116, 117, 118, 119, 120, 0, 121, 0, 0,
1410 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
1411 132, 133, 134, 135, 136, 137, 104, 0, 0, 0,
1412 0, 0, 0, 0, 0, 105, 0, 0, 0, 0,
1413 106, 107, 0, 0, 0, 108, 0, 0, 357, 0,
1414 358, 359, 0, 0, 0, 360, 0, 0, 0, 0,
1415 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1416 361, 362, 0, 0, 0, 0, 0, 0, 0, 0,
1417 0, 0, 0, 363, 364, 0, 0, 0, 0, 109,
1418 110, 111, 112, 113, 0, 0, 0, 0, 0, 0,
1419 0, 365, 0, 0, 0, 0, 0, 0, 0, 0,
1420 0, 114, 0, 115, 116, 117, 118, 119, 120, 0,
1421 121, 0, 0, 122, 123, 124, 125, 126, 127, 128,
1422 129, 130, 131, 132, 133, 134, 135, 136, 137, 104,
1423 0, 0, 0, 0, 0, 0, 0, 0, 105, 0,
1424 0, 0, 0, 106, 107, 0, 0, 0, 108, 0,
1425 0, 0, 0, 0, 0, 11, 0, 0, -520, 0,
1426 0, 0, 0, 1, 2, 3, 4, 5, 6, 7,
1427 8, 0, 0, 0, 0, 163, 9, 0, 0, 0,
1428 0, 61, 0, 0, 0, 445, 446, 0, 0, 0,
1429 0, 0, 109, 110, 111, 112, 113, 0, 0, 0,
1430 0, 0, 0, 448, 0, 0, 0, 0, 0, 0,
1431 0, 0, 0, 65, 114, 0, 115, 116, 117, 118,
1432 119, 120, 0, 121, 0, 0, 122, 123, 124, 125,
1433 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1434 136, 137, 104, 62, 63, 64, 0, 0, 0, 0,
1435 0, 105, 0, 0, 0, 0, 106, 107, 737, 0,
1436 0, 108, 0, 0, 0, 0, 0, 0, 11, 455,
1437 456, 457, 458, 459, 460, 461, 462, 463, 464, 465,
1438 466, 467, 468, 469, 470, 471, 472, 0, 163, 0,
1439 0, 0, 707, 0, 0, 0, 0, 0, 0, 0,
1440 0, 0, 0, 0, 0, 109, 110, 111, 112, 113,
1441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1442 0, 0, 0, 0, 0, 0, 65, 114, 0, 115,
1443 116, 117, 118, 119, 120, 0, 121, 0, 0, 122,
1444 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
1445 133, 134, 135, 136, 137, 104, 0, 0, 0, 0,
1446 0, 0, 0, 0, 105, 0, 0, 0, 0, 106,
1447 107, 0, 0, 0, 108, 0, 0, 662, 0, 0,
1448 0, 0, 0, 0, 710, 814, 455, 456, 457, 458,
1449 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
1450 469, 470, 471, 472, 0, 0, 0, 0, 0, 473,
1451 0, 0, 0, 0, 0, 0, 0, 0, 109, 110,
1452 111, 112, 113, 0, 0, 0, 0, 0, 0, 0,
1453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1454 114, 0, 115, 116, 117, 118, 119, 120, 0, 121,
1455 0, 0, 122, 123, 124, 125, 126, 127, 128, 129,
1456 130, 131, 132, 133, 134, 135, 136, 137, 104, 0,
1457 0, 0, 0, 0, 0, 0, 0, 105, 0, 763,
1458 0, 0, 106, 107, 0, 0, 0, 108, 455, 456,
1459 457, 458, 459, 460, 461, 462, 463, 464, 465, 466,
1460 467, 468, 469, 470, 471, 472, 0, 0, 0, 0,
1461 0, 707, 0, 0, 163, 0, 0, 0, 0, 0,
1462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1463 0, 109, 110, 111, 112, 113, 0, 0, 0, 0,
1464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1465 0, 0, 0, 114, 0, 115, 116, 117, 118, 119,
1466 120, 0, 121, 0, 0, 122, 123, 124, 125, 126,
1467 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
1468 137, 104, 0, 0, 0, 0, 0, 0, 0, 0,
1469 105, 0, 0, 0, 0, 106, 107, 0, 0, 0,
1470 108, 0, 908, 0, 0, 0, 0, 0, 0, 0,
1471 451, 455, 456, 457, 458, 459, 460, 461, 462, 463,
1472 464, 465, 466, 467, 468, 469, 470, 471, 472, 0,
1473 0, 0, 0, 0, 707, 0, 0, 0, 0, 0,
1474 0, 0, 0, 0, 109, 110, 111, 112, 113, 0,
1475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1476 0, 0, 0, 0, 0, 0, 114, 0, 115, 116,
1477 117, 118, 119, 120, 0, 121, 0, 0, 122, 123,
1478 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1479 134, 135, 136, 137, 104, 0, 0, 0, 0, 0,
1480 0, 0, 0, 105, 0, 0, 0, 0, 106, 107,
1481 0, 0, 0, 108, 0, 0, 873, 0, 0, 0,
1482 0, 0, 0, 710, 455, 456, 457, 458, 459, 460,
1483 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
1484 471, 472, 0, 0, 0, 0, 0, 707, 0, 0,
1485 0, 0, 0, 104, 0, 0, 0, 109, 110, 111,
1486 112, 113, 105, 0, 0, 0, 0, 106, 107, 0,
1487 0, 0, 108, 0, 0, 0, 0, 0, 0, 114,
1488 0, 115, 116, 117, 118, 119, 120, 0, 121, 0,
1489 0, 122, 123, 124, 125, 126, 127, 128, 129, 130,
1490 131, 132, 133, 134, 135, 136, 137, 0, 0, 0,
1491 0, 0, 0, 0, 739, 0, 109, 110, 111, 112,
1492 113, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1493 0, 0, 0, 0, 0, 0, 0, 0, 114, 0,
1494 115, 116, 117, 118, 119, 120, 0, 121, 0, 0,
1495 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
1496 132, 133, 134, 135, 136, 137, 104, 0, 0, 0,
1497 0, 0, 0, 0, 0, 105, 0, 0, 0, 748,
1498 790, 107, 0, 0, 0, 108, 455, 456, 457, 458,
1499 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
1500 469, 470, 471, 472, 0, 0, 0, 0, 0, 473,
1501 0, 0, 163, 0, 0, 0, 0, 0, 0, 0,
1502 0, 0, 0, 0, 0, 104, 0, 0, 0, 109,
1503 110, 111, 112, 113, 105, 0, 0, 0, 0, 106,
1504 107, 0, 0, 0, 108, 0, 0, 0, 0, 0,
1505 0, 114, 0, 115, 116, 117, 118, 119, 120, 0,
1506 121, 0, 0, 122, 123, 124, 125, 126, 127, 128,
1507 129, 130, 131, 132, 133, 134, 135, 136, 137, 0,
1508 0, 0, 0, 0, 104, 0, 835, 0, 109, 110,
1509 111, 112, 113, 105, 0, 0, 0, 0, 106, 107,
1510 0, 0, 0, 108, 0, 0, 0, 0, 0, 0,
1511 114, 0, 115, 116, 117, 118, 119, 120, 0, 121,
1512 0, 0, 122, 123, 124, 125, 126, 127, 128, 129,
1513 130, 131, 132, 133, 134, 135, 136, 137, 0, 0,
1514 0, 0, 0, 0, 0, 0, 0, 109, 110, 111,
1515 112, 113, 0, 0, 0, 0, 0, 0, 0, 0,
1516 0, 0, 0, 0, 0, 0, 0, 0, 0, 114,
1517 0, 115, 116, 117, 118, 119, 120, 0, 121, 0,
1518 0, 122, 123, 124, 125, 126, 127, 128, 129, 130,
1519 131, 132, 133, 134, 135, 136, 137, 811, 0, 0,
1520 0, 0, 0, 0, 455, 456, 457, 458, 459, 460,
1521 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
1522 471, 472, 0, 0, 0, 706, 0, 707, 455, 456,
1523 457, 458, 459, 460, 461, 462, 463, 464, 465, 466,
1524 467, 468, 469, 470, 471, 472, 0, 0, 0, 0,
1525 0, 707, 455, 456, 457, 458, 459, 460, 461, 462,
1526 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
1527 0, 0, 0, 0, 0, 473, 455, 456, 457, 458,
1528 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
1529 469, 470, 471, 472, 0, 0, 0, 0, 0, 707,
1530 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
1531 465, 466, 467, 468, 469, 470, 471, 472, 0, 0,
1532 0, 0, 0, 473, 455, 456, 457, 458, 459, 460,
1533 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
1534 471, 472, 0, 0, 0, 0, 0, 707
1535 };
1536
1537 static const short yycheck[] =
1538 {
1539 33, 22, 16, 17, 18, 185, 184, 185, 88, 33,
1540 0, 15, 191, 421, 0, 34, 103, 33, 92, 395,
1541 10, 92, 424, 394, 421, 15, 81, 424, 311, 368,
1542 378, 379, 697, 725, 24, 476, 91, 27, 409, 476,
1543 725, 27, 725, 15, 754, 758, 10, 760, 62, 63,
1544 64, 138, 311, 26, 141, 45, 49, 91, 0, 392,
1545 37, 31, 29, 33, 34, 26, 33, 81, 10, 29,
1546 29, 29, 33, 33, 33, 427, 26, 360, 92, 93,
1547 94, 45, 24, 366, 776, 27, 24, 101, 25, 123,
1548 31, 95, 784, 806, 35, 36, 35, 36, 35, 31,
1549 433, 784, 441, 45, 36, 95, 31, 32, 9, 34,
1550 11, 450, 17, 18, 453, 92, 93, 94, 95, 96,
1551 87, 98, 99, 95, 35, 36, 64, 87, 87, 87,
1552 840, 124, 484, 4, 5, 6, 33, 34, 9, 4,
1553 5, 6, 6, 808, 9, 9, 119, 406, 33, 34,
1554 483, 22, 3, 157, 168, 6, 44, 22, 191, 10,
1555 493, 12, 827, 496, 33, 34, 156, 157, 26, 27,
1556 125, 454, 186, 883, 32, 32, 33, 92, 93, 94,
1557 95, 96, 874, 98, 99, 157, 44, 852, 0, 874,
1558 473, 474, 156, 17, 18, 887, 31, 36, 33, 34,
1559 913, 31, 36, 895, 34, 110, 111, 112, 113, 114,
1560 115, 32, 895, 34, 156, 33, 34, 909, 33, 34,
1561 17, 18, 33, 34, 909, 6, 7, 8, 32, 670,
1562 93, 94, 312, 670, 675, 32, 32, 311, 675, 30,
1563 311, 4, 5, 6, 7, 8, 9, 10, 11, 31,
1564 35, 916, 32, 629, 17, 23, 632, 36, 3, 22,
1565 31, 6, 36, 23, 123, 10, 29, 12, 13, 14,
1566 15, 16, 17, 38, 32, 6, 100, 101, 102, 103,
1567 104, 105, 106, 107, 108, 36, 360, 658, 33, 360,
1568 32, 31, 366, 31, 35, 366, 351, 311, 476, 32,
1569 37, 634, 36, 100, 101, 102, 103, 104, 105, 106,
1570 107, 108, 40, 32, 31, 493, 31, 49, 6, 727,
1571 83, 84, 85, 86, 87, 664, 89, 26, 667, 668,
1572 727, 32, 34, 40, 34, 32, 34, 26, 22, 710,
1573 32, 32, 64, 39, 715, 40, 360, 37, 64, 31,
1574 31, 365, 366, 40, 32, 92, 93, 94, 95, 96,
1575 123, 98, 99, 24, 40, 32, 32, 31, 33, 25,
1576 394, 33, 35, 33, 707, 708, 409, 34, 31, 34,
1577 454, 35, 33, 454, 33, 409, 33, 420, 34, 422,
1578 34, 424, 725, 409, 770, 35, 772, 773, 40, 473,
1579 474, 109, 473, 474, 32, 64, 32, 755, 756, 423,
1580 34, 33, 33, 25, 32, 35, 31, 33, 97, 33,
1581 33, 829, 32, 437, 33, 31, 33, 35, 447, 762,
1582 25, 34, 829, 31, 33, 32, 25, 451, 34, 33,
1583 454, 33, 32, 34, 477, 478, 34, 24, 628, 32,
1584 628, 784, 97, 631, 32, 34, 795, 796, 860, 473,
1585 474, 33, 32, 860, 747, 748, 25, 33, 33, 877,
1586 34, 33, 476, 34, 850, 35, 809, 33, 811, 33,
1587 877, 32, 25, 33, 32, 32, 476, 33, 502, 33,
1588 476, 888, 670, 826, 33, 33, 33, 675, 4, 5,
1589 6, 7, 8, 9, 10, 11, 27, 809, 675, 157,
1590 918, 17, 670, 40, 624, 24, 22, 160, 631, 381,
1591 802, 918, 21, 29, 30, 31, 635, 179, 447, 760,
1592 169, 181, 929, 19, 384, 41, 909, 420, 775, 915,
1593 873, 874, 887, 929, 823, 4, 5, 6, 7, 8,
1594 9, 10, 11, 732, 930, -1, -1, 734, 17, -1,
1595 -1, -1, 895, 22, -1, -1, -1, -1, -1, -1,
1596 29, -1, -1, -1, -1, -1, 909, 83, 84, 85,
1597 86, 87, 88, 89, -1, 91, -1, 767, -1, 767,
1598 677, 678, -1, -1, -1, -1, -1, -1, -1, -1,
1599 -1, 4, 5, 6, 7, 8, 9, 10, 11, -1,
1600 116, -1, -1, -1, 17, 121, -1, 123, -1, 22,
1601 -1, 635, 655, -1, -1, 84, 85, 86, 87, -1,
1602 -1, -1, -1, -1, 658, -1, -1, -1, -1, -1,
1603 -1, 674, 656, -1, -1, -1, -1, -1, -1, -1,
1604 674, -1, -1, -1, -1, -1, -1, -1, 674, -1,
1605 -1, -1, 676, -1, 123, -1, 670, -1, -1, -1,
1606 -1, 675, -1, 747, 748, -1, 747, 748, -1, -1,
1607 670, 84, 85, 86, 670, 675, 710, 703, 868, 675,
1608 868, 715, -1, -1, -1, -1, 729, -1, -1, 732,
1609 -1, -1, 735, -1, -1, -1, 886, -1, 886, -1,
1610 731, -1, -1, 793, -1, -1, -1, -1, -1, -1,
1611 734, -1, -1, 4, 5, 6, 7, 8, 9, 10,
1612 11, -1, -1, 747, 748, -1, 17, -1, -1, -1,
1613 -1, 22, 922, -1, 922, -1, -1, -1, 29, -1,
1614 3, -1, 766, 6, 787, 769, 37, 10, -1, 12,
1615 13, 14, 15, 16, 17, -1, -1, 800, -1, -1,
1616 803, 804, 30, -1, -1, -1, -1, -1, -1, -1,
1617 794, -1, -1, -1, -1, -1, -1, 808, -1, -1,
1618 823, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1619 -1, -1, -1, 84, 85, 86, 87, -1, 66, 67,
1620 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1621 -1, 79, 80, 81, 82, -1, -1, -1, -1, -1,
1622 -1, -1, 865, -1, -1, -1, -1, -1, -1, -1,
1623 121, 874, -1, -1, -1, -1, 0, -1, -1, 3,
1624 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1625 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1626 24, 25, 26, 27, 28, 29, 909, 31, 32, 33,
1627 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1628 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1629 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1630 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1631 74, 75, 76, 77, 78, 79, -1, 81, -1, 83,
1632 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
1633 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
1634 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1635 114, 115, 116, -1, -1, 119, -1, 121, 122, 123,
1636 124, 125, 0, -1, -1, 3, 4, 5, 6, 7,
1637 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
1638 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1639 28, 29, -1, 31, 32, 33, 34, 35, 36, 37,
1640 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1641 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1642 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1643 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1644 78, 79, -1, 81, -1, 83, 84, 85, 86, 87,
1645 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1646 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
1647 108, 109, 110, 111, 112, 113, 114, 115, 116, -1,
1648 -1, 119, -1, 121, 122, 123, 124, 125, 0, -1,
1649 -1, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1650 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1651 22, 23, 24, 25, 26, 27, 28, 29, -1, 31,
1652 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1653 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1654 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1655 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1656 72, 73, 74, 75, 76, 77, 78, 79, -1, 81,
1657 -1, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1658 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1659 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1660 112, 113, 114, 115, 116, -1, -1, 119, -1, 121,
1661 122, 123, 124, 125, 0, -1, -1, 3, 4, 5,
1662 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1663 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1664 26, 27, 28, 29, -1, 31, 32, 33, 34, 35,
1665 36, -1, 38, 39, 40, 41, 42, 43, 44, 45,
1666 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1667 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1668 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1669 76, 77, 78, 79, -1, 81, -1, 83, 84, 85,
1670 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1671 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1672 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1673 116, 3, -1, 119, -1, 121, 122, 123, 124, 125,
1674 12, -1, -1, -1, -1, 17, 18, 19, -1, -1,
1675 22, 23, -1, 25, -1, 27, 28, 29, -1, -1,
1676 32, -1, -1, -1, -1, 4, 5, 6, 7, 8,
1677 9, 10, 11, -1, -1, 47, 48, 49, 17, -1,
1678 -1, -1, -1, 22, -1, -1, -1, -1, 60, 61,
1679 29, -1, -1, -1, 66, 67, 68, 69, 70, -1,
1680 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1681 -1, -1, -1, -1, -1, 87, 88, -1, 90, 91,
1682 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
1683 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1684 112, 113, 114, 115, -1, 84, 85, 86, 87, -1,
1685 -1, -1, 124, 4, 5, 6, 7, 8, 9, 10,
1686 11, -1, -1, -1, -1, -1, 17, -1, -1, -1,
1687 -1, 22, -1, -1, 3, -1, -1, -1, 29, -1,
1688 -1, -1, 121, 12, -1, -1, -1, -1, 17, 18,
1689 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
1690 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
1691 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
1692 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1693 -1, 60, 61, 84, 85, 86, 87, 66, 67, 68,
1694 69, 70, -1, -1, -1, -1, -1, -1, -1, 78,
1695 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
1696 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
1697 121, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1698 109, 110, 111, 112, 113, 114, 115, 3, -1, 118,
1699 -1, -1, -1, -1, -1, -1, 12, -1, -1, -1,
1700 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
1701 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
1702 -1, -1, -1, 4, 5, 6, 7, 8, 9, 10,
1703 11, 47, 48, -1, -1, -1, 17, -1, -1, -1,
1704 -1, 22, -1, -1, 60, 61, -1, -1, 29, -1,
1705 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
1706 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
1707 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
1708 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
1709 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1710 3, -1, 118, 84, 85, 86, 87, -1, -1, 12,
1711 -1, -1, -1, -1, 17, 18, -1, -1, -1, 22,
1712 -1, -1, 25, 26, 27, 28, -1, -1, -1, 32,
1713 -1, -1, -1, -1, -1, -1, 4, 5, 6, 7,
1714 8, 9, 10, 11, 47, 48, -1, -1, -1, 17,
1715 -1, -1, -1, -1, 22, -1, -1, 60, 61, -1,
1716 -1, 29, -1, 66, 67, 68, 69, 70, -1, -1,
1717 -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
1718 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
1719 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
1720 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1721 113, 114, 115, 3, -1, 118, 84, 85, 86, 87,
1722 -1, -1, 12, -1, -1, -1, -1, 17, 18, -1,
1723 -1, -1, 22, -1, -1, 25, 26, 27, 28, -1,
1724 -1, -1, 32, -1, -1, -1, -1, -1, -1, 4,
1725 5, 6, 7, 8, 9, 10, 11, 47, 48, -1,
1726 -1, -1, 17, -1, -1, -1, -1, 22, -1, -1,
1727 60, 61, -1, -1, 29, -1, 66, 67, 68, 69,
1728 70, -1, -1, -1, -1, -1, -1, -1, 78, -1,
1729 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
1730 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
1731 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1732 110, 111, 112, 113, 114, 115, 3, -1, 118, 84,
1733 85, 86, 87, -1, -1, 12, -1, -1, -1, -1,
1734 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
1735 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
1736 -1, -1, 4, 5, 6, 7, 8, 9, 10, 11,
1737 47, 48, -1, -1, -1, 17, -1, -1, -1, -1,
1738 22, -1, -1, 60, 61, -1, -1, 29, -1, 66,
1739 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1740 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
1741 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
1742 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1743 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
1744 -1, 118, 84, 85, 86, 87, -1, -1, 12, -1,
1745 -1, -1, -1, 17, 18, -1, -1, -1, 22, -1,
1746 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
1747 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1748 -1, -1, -1, 47, 48, -1, -1, -1, -1, -1,
1749 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
1750 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
1751 -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
1752 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
1753 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
1754 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1755 114, 115, 3, -1, 118, -1, -1, -1, -1, -1,
1756 -1, 12, -1, -1, -1, -1, 17, 18, -1, -1,
1757 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
1758 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
1759 -1, -1, -1, -1, -1, -1, 47, 48, -1, -1,
1760 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
1761 61, -1, -1, -1, -1, 66, 67, 68, 69, 70,
1762 -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
1763 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
1764 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
1765 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1766 111, 112, 113, 114, 115, 3, -1, 118, -1, -1,
1767 -1, -1, -1, -1, 12, -1, -1, -1, -1, 17,
1768 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
1769 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
1770 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
1771 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1772 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
1773 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
1774 78, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1775 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
1776 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
1777 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
1778 118, -1, -1, -1, -1, -1, -1, 12, -1, -1,
1779 -1, -1, 17, 18, -1, -1, -1, 22, -1, -1,
1780 25, 26, 27, 28, -1, -1, -1, 32, -1, -1,
1781 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1782 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
1783 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
1784 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
1785 -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
1786 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
1787 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
1788 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1789 115, 3, -1, 118, -1, -1, -1, -1, -1, -1,
1790 12, -1, -1, -1, -1, 17, 18, -1, -1, -1,
1791 22, -1, -1, 25, 26, 27, 28, -1, -1, -1,
1792 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1793 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
1794 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
1795 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
1796 -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
1797 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
1798 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
1799 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1800 112, 113, 114, 115, 3, -1, 118, -1, -1, -1,
1801 -1, -1, -1, 12, -1, -1, -1, -1, 17, 18,
1802 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
1803 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
1804 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
1805 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1806 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
1807 69, 70, -1, -1, -1, -1, -1, -1, -1, 78,
1808 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
1809 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
1810 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1811 109, 110, 111, 112, 113, 114, 115, 3, -1, 118,
1812 -1, -1, -1, -1, -1, -1, 12, -1, -1, -1,
1813 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
1814 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
1815 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1816 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
1817 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
1818 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
1819 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
1820 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
1821 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
1822 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1823 3, -1, 118, -1, -1, -1, -1, -1, -1, 12,
1824 -1, -1, -1, -1, 17, 18, -1, -1, -1, 22,
1825 -1, -1, 25, 26, 27, 28, -1, -1, -1, 32,
1826 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1827 -1, -1, -1, -1, 47, 48, -1, -1, -1, -1,
1828 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
1829 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
1830 -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
1831 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
1832 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
1833 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1834 113, 114, 115, 3, -1, 118, -1, -1, -1, -1,
1835 -1, -1, 12, -1, -1, -1, -1, 17, 18, -1,
1836 -1, -1, 22, -1, -1, 25, 26, 27, 28, -1,
1837 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
1838 -1, -1, -1, -1, -1, -1, -1, 47, 48, -1,
1839 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1840 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
1841 70, -1, -1, -1, -1, -1, -1, -1, 78, -1,
1842 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
1843 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
1844 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1845 110, 111, 112, 113, 114, 115, 3, -1, 118, -1,
1846 -1, -1, -1, -1, -1, 12, -1, -1, -1, -1,
1847 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
1848 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
1849 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1850 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
1851 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
1852 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1853 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
1854 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
1855 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1856 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
1857 -1, 118, -1, -1, -1, -1, -1, -1, 12, -1,
1858 -1, -1, -1, 17, 18, -1, -1, -1, 22, -1,
1859 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
1860 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1861 -1, -1, -1, 47, 48, -1, -1, -1, -1, -1,
1862 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
1863 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
1864 -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
1865 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
1866 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
1867 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1868 114, 115, 3, -1, 118, -1, -1, -1, -1, -1,
1869 -1, 12, -1, -1, -1, -1, 17, 18, -1, -1,
1870 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
1871 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
1872 -1, -1, -1, -1, -1, -1, 47, 48, -1, -1,
1873 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
1874 61, -1, -1, -1, -1, 66, 67, 68, 69, 70,
1875 -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
1876 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
1877 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
1878 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1879 111, 112, 113, 114, 115, 3, -1, 118, -1, -1,
1880 -1, -1, -1, -1, 12, -1, -1, -1, -1, 17,
1881 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
1882 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
1883 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
1884 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1885 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
1886 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
1887 78, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1888 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
1889 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
1890 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
1891 118, -1, -1, -1, -1, -1, -1, 12, -1, -1,
1892 -1, -1, 17, 18, -1, -1, -1, 22, -1, -1,
1893 25, 26, 27, 28, -1, -1, -1, 32, -1, -1,
1894 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1895 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
1896 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
1897 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
1898 -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
1899 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
1900 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
1901 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1902 115, 3, -1, 118, -1, -1, -1, -1, -1, -1,
1903 12, -1, -1, -1, -1, 17, 18, -1, -1, -1,
1904 22, -1, -1, 25, 26, 27, 28, -1, -1, -1,
1905 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1906 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
1907 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
1908 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
1909 -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
1910 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
1911 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
1912 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1913 112, 113, 114, 115, 3, -1, 118, -1, -1, -1,
1914 -1, -1, -1, 12, -1, -1, -1, -1, 17, 18,
1915 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
1916 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
1917 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
1918 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1919 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
1920 69, 70, -1, -1, -1, -1, -1, -1, -1, 78,
1921 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
1922 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
1923 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1924 109, 110, 111, 112, 113, 114, 115, 3, -1, 118,
1925 -1, -1, -1, -1, -1, -1, 12, -1, -1, -1,
1926 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
1927 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
1928 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1929 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
1930 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
1931 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
1932 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
1933 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
1934 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
1935 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1936 3, -1, 118, -1, -1, -1, -1, -1, -1, 12,
1937 -1, -1, -1, -1, 17, 18, -1, -1, -1, 22,
1938 -1, -1, 25, 26, 27, 28, -1, -1, -1, 32,
1939 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1940 -1, -1, -1, -1, 47, 48, -1, -1, -1, -1,
1941 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
1942 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
1943 -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
1944 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
1945 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
1946 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1947 113, 114, 115, 3, -1, 118, -1, -1, -1, -1,
1948 -1, -1, 12, -1, -1, -1, -1, 17, 18, -1,
1949 -1, -1, 22, -1, -1, 25, 26, 27, 28, -1,
1950 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
1951 -1, -1, -1, -1, -1, -1, -1, 47, 48, -1,
1952 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1953 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
1954 70, -1, -1, -1, -1, -1, -1, -1, 78, -1,
1955 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
1956 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
1957 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1958 110, 111, 112, 113, 114, 115, 3, -1, 118, -1,
1959 -1, -1, -1, -1, -1, 12, -1, -1, -1, -1,
1960 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
1961 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
1962 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1963 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
1964 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
1965 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1966 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
1967 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
1968 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1969 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
1970 -1, 118, -1, -1, -1, -1, -1, -1, 12, -1,
1971 -1, -1, -1, 17, 18, -1, -1, -1, 22, -1,
1972 -1, 25, 26, 27, 28, -1, -1, -1, 32, -1,
1973 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1974 -1, -1, -1, 47, 48, -1, -1, -1, -1, -1,
1975 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
1976 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
1977 -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
1978 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
1979 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
1980 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1981 114, 115, 3, -1, 118, -1, -1, -1, -1, -1,
1982 -1, 12, -1, -1, -1, -1, 17, 18, -1, -1,
1983 -1, 22, -1, -1, 25, 26, 27, 28, -1, -1,
1984 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
1985 -1, -1, -1, -1, -1, -1, 47, 48, -1, -1,
1986 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
1987 61, -1, -1, -1, -1, 66, 67, 68, 69, 70,
1988 -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
1989 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
1990 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
1991 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1992 111, 112, 113, 114, 115, 3, -1, 118, -1, -1,
1993 -1, -1, -1, -1, 12, -1, -1, -1, -1, 17,
1994 18, -1, -1, -1, 22, -1, -1, 25, 26, 27,
1995 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
1996 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
1997 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1998 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
1999 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2000 78, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2001 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
2002 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
2003 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
2004 118, -1, -1, -1, -1, -1, -1, 12, -1, -1,
2005 -1, -1, 17, 18, -1, -1, -1, 22, -1, -1,
2006 25, 26, 27, 28, -1, -1, -1, 32, -1, -1,
2007 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2008 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
2009 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
2010 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
2011 -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
2012 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
2013 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2014 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2015 115, 3, -1, 118, -1, -1, -1, -1, -1, -1,
2016 12, -1, -1, -1, -1, 17, 18, -1, -1, -1,
2017 22, -1, -1, 25, 26, 27, 28, -1, -1, -1,
2018 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2019 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
2020 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
2021 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
2022 -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
2023 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
2024 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
2025 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2026 112, 113, 114, 115, 3, -1, 118, -1, -1, -1,
2027 -1, -1, -1, 12, -1, -1, -1, -1, 17, 18,
2028 -1, -1, -1, 22, -1, -1, 25, 26, 27, 28,
2029 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
2030 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
2031 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2032 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
2033 69, 70, -1, -1, -1, -1, -1, -1, -1, 78,
2034 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
2035 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
2036 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2037 109, 110, 111, 112, 113, 114, 115, 3, -1, 118,
2038 -1, -1, -1, -1, -1, -1, 12, -1, -1, -1,
2039 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
2040 26, 27, 28, -1, -1, -1, 32, -1, -1, -1,
2041 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2042 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2043 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
2044 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
2045 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
2046 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
2047 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
2048 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2049 3, -1, 118, -1, -1, -1, -1, -1, -1, 12,
2050 -1, -1, -1, -1, 17, 18, -1, -1, -1, 22,
2051 -1, -1, 25, 26, 27, 28, -1, -1, -1, 32,
2052 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2053 -1, -1, -1, -1, 47, 48, -1, -1, -1, -1,
2054 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
2055 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
2056 -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
2057 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
2058 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
2059 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2060 113, 114, 115, 3, -1, 118, -1, -1, -1, -1,
2061 -1, -1, 12, -1, -1, -1, -1, 17, 18, -1,
2062 -1, -1, 22, -1, -1, 25, 26, 27, 28, -1,
2063 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
2064 -1, -1, -1, -1, -1, -1, -1, 47, 48, -1,
2065 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2066 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
2067 70, -1, -1, -1, -1, -1, -1, -1, 78, -1,
2068 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
2069 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
2070 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2071 110, 111, 112, 113, 114, 115, 3, -1, 118, -1,
2072 -1, -1, -1, -1, -1, 12, -1, -1, -1, -1,
2073 17, 18, -1, -1, -1, 22, -1, -1, 25, 26,
2074 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
2075 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2076 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
2077 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
2078 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
2079 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
2080 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
2081 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
2082 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
2083 -1, 118, -1, -1, -1, -1, -1, -1, 12, -1,
2084 -1, -1, -1, 17, 18, -1, -1, -1, 22, -1,
2085 -1, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2086 34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
2087 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2088 54, 55, 56, 57, 58, 59, -1, -1, -1, -1,
2089 -1, 65, 66, 67, 68, 69, 70, -1, -1, -1,
2090 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2091 -1, -1, -1, 87, 88, -1, 90, 91, 92, 93,
2092 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
2093 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2094 114, 115, 3, 4, 5, 6, 7, 8, 9, 10,
2095 11, 12, -1, -1, -1, -1, 17, 18, 19, -1,
2096 -1, 22, 23, -1, 25, -1, 27, 28, 29, -1,
2097 -1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
2098 -1, -1, -1, -1, -1, -1, 47, 48, 49, -1,
2099 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
2100 61, -1, -1, -1, -1, 66, 67, 68, 69, 70,
2101 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2102 -1, -1, -1, 84, 85, 86, 87, 88, -1, 90,
2103 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
2104 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2105 111, 112, 113, 114, 115, 3, -1, -1, -1, -1,
2106 -1, -1, -1, -1, 12, -1, -1, -1, -1, 17,
2107 18, 19, 20, 21, 22, 23, -1, 25, 26, 27,
2108 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
2109 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
2110 48, 49, -1, -1, -1, -1, -1, -1, -1, -1,
2111 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
2112 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2113 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2114 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
2115 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
2116 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
2117 -1, -1, -1, -1, -1, -1, -1, 12, -1, -1,
2118 -1, -1, 17, 18, 19, -1, -1, 22, 23, -1,
2119 25, -1, 27, 28, -1, -1, -1, 32, -1, -1,
2120 -1, -1, -1, -1, -1, -1, -1, -1, -1, 44,
2121 -1, -1, 47, 48, 49, -1, -1, -1, -1, -1,
2122 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
2123 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
2124 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2125 -1, -1, -1, 88, 89, 90, 91, 92, 93, 94,
2126 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2127 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2128 115, 3, -1, -1, -1, -1, -1, -1, -1, -1,
2129 12, -1, -1, -1, -1, 17, 18, 19, -1, -1,
2130 22, 23, -1, 25, -1, 27, 28, -1, -1, -1,
2131 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2132 -1, -1, 44, -1, -1, 47, 48, 49, -1, -1,
2133 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
2134 -1, -1, 64, -1, 66, 67, 68, 69, 70, -1,
2135 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2136 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
2137 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
2138 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2139 112, 113, 114, 115, 3, -1, -1, -1, -1, -1,
2140 -1, -1, -1, 12, -1, -1, -1, -1, 17, 18,
2141 19, -1, -1, 22, 23, 24, 25, -1, 27, 28,
2142 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
2143 -1, -1, -1, -1, -1, 44, -1, -1, 47, 48,
2144 49, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2145 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
2146 69, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2147 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
2148 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
2149 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2150 109, 110, 111, 112, 113, 114, 115, 3, -1, -1,
2151 -1, -1, -1, -1, -1, -1, 12, -1, -1, -1,
2152 -1, 17, 18, 19, -1, -1, 22, 23, -1, 25,
2153 -1, 27, 28, -1, -1, -1, 32, -1, -1, -1,
2154 -1, -1, -1, -1, -1, -1, -1, -1, 44, -1,
2155 -1, 47, 48, 49, -1, -1, -1, -1, -1, -1,
2156 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
2157 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
2158 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2159 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
2160 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
2161 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2162 3, -1, -1, -1, -1, -1, -1, -1, -1, 12,
2163 -1, -1, -1, -1, 17, 18, 19, -1, -1, 22,
2164 23, -1, 25, -1, 27, 28, -1, -1, -1, 32,
2165 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2166 -1, -1, -1, -1, 47, 48, 49, -1, -1, -1,
2167 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
2168 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
2169 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2170 -1, -1, -1, -1, -1, 88, 89, 90, 91, 92,
2171 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
2172 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2173 113, 114, 115, 3, -1, -1, -1, -1, -1, -1,
2174 -1, -1, 12, -1, -1, -1, -1, 17, 18, 19,
2175 -1, -1, 22, 23, -1, 25, -1, 27, 28, -1,
2176 -1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
2177 -1, -1, -1, -1, -1, -1, -1, 47, 48, 49,
2178 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2179 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
2180 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2181 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
2182 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
2183 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2184 110, 111, 112, 113, 114, 115, 3, -1, -1, -1,
2185 -1, -1, -1, -1, -1, 12, -1, -1, -1, -1,
2186 17, 18, -1, -1, -1, 22, -1, -1, 25, -1,
2187 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
2188 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2189 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
2190 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
2191 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
2192 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
2193 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
2194 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
2195 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
2196 -1, -1, -1, -1, -1, -1, -1, -1, 12, -1,
2197 -1, -1, -1, 17, 18, -1, -1, -1, 22, -1,
2198 -1, -1, -1, -1, -1, 29, -1, -1, 32, -1,
2199 -1, -1, -1, 4, 5, 6, 7, 8, 9, 10,
2200 11, -1, -1, -1, -1, 49, 17, -1, -1, -1,
2201 -1, 22, -1, -1, -1, 26, 27, -1, -1, -1,
2202 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
2203 -1, -1, -1, 44, -1, -1, -1, -1, -1, -1,
2204 -1, -1, -1, 87, 88, -1, 90, 91, 92, 93,
2205 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
2206 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2207 114, 115, 3, 84, 85, 86, -1, -1, -1, -1,
2208 -1, 12, -1, -1, -1, -1, 17, 18, 31, -1,
2209 -1, 22, -1, -1, -1, -1, -1, -1, 29, 42,
2210 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2211 53, 54, 55, 56, 57, 58, 59, -1, 49, -1,
2212 -1, -1, 65, -1, -1, -1, -1, -1, -1, -1,
2213 -1, -1, -1, -1, -1, 66, 67, 68, 69, 70,
2214 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2215 -1, -1, -1, -1, -1, -1, 87, 88, -1, 90,
2216 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
2217 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2218 111, 112, 113, 114, 115, 3, -1, -1, -1, -1,
2219 -1, -1, -1, -1, 12, -1, -1, -1, -1, 17,
2220 18, -1, -1, -1, 22, -1, -1, 33, -1, -1,
2221 -1, -1, -1, -1, 32, 33, 42, 43, 44, 45,
2222 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2223 56, 57, 58, 59, -1, -1, -1, -1, -1, 65,
2224 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
2225 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2226 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2227 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
2228 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
2229 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
2230 -1, -1, -1, -1, -1, -1, -1, 12, -1, 33,
2231 -1, -1, 17, 18, -1, -1, -1, 22, 42, 43,
2232 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2233 54, 55, 56, 57, 58, 59, -1, -1, -1, -1,
2234 -1, 65, -1, -1, 49, -1, -1, -1, -1, -1,
2235 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2236 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
2237 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2238 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
2239 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
2240 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2241 115, 3, -1, -1, -1, -1, -1, -1, -1, -1,
2242 12, -1, -1, -1, -1, 17, 18, -1, -1, -1,
2243 22, -1, 33, -1, -1, -1, -1, -1, -1, -1,
2244 32, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2245 51, 52, 53, 54, 55, 56, 57, 58, 59, -1,
2246 -1, -1, -1, -1, 65, -1, -1, -1, -1, -1,
2247 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
2248 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2249 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
2250 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
2251 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2252 112, 113, 114, 115, 3, -1, -1, -1, -1, -1,
2253 -1, -1, -1, 12, -1, -1, -1, -1, 17, 18,
2254 -1, -1, -1, 22, -1, -1, 34, -1, -1, -1,
2255 -1, -1, -1, 32, 42, 43, 44, 45, 46, 47,
2256 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2257 58, 59, -1, -1, -1, -1, -1, 65, -1, -1,
2258 -1, -1, -1, 3, -1, -1, -1, 66, 67, 68,
2259 69, 70, 12, -1, -1, -1, -1, 17, 18, -1,
2260 -1, -1, 22, -1, -1, -1, -1, -1, -1, 88,
2261 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
2262 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2263 109, 110, 111, 112, 113, 114, 115, -1, -1, -1,
2264 -1, -1, -1, -1, 64, -1, 66, 67, 68, 69,
2265 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2266 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
2267 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
2268 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2269 110, 111, 112, 113, 114, 115, 3, -1, -1, -1,
2270 -1, -1, -1, -1, -1, 12, -1, -1, -1, 35,
2271 17, 18, -1, -1, -1, 22, 42, 43, 44, 45,
2272 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2273 56, 57, 58, 59, -1, -1, -1, -1, -1, 65,
2274 -1, -1, 49, -1, -1, -1, -1, -1, -1, -1,
2275 -1, -1, -1, -1, -1, 3, -1, -1, -1, 66,
2276 67, 68, 69, 70, 12, -1, -1, -1, -1, 17,
2277 18, -1, -1, -1, 22, -1, -1, -1, -1, -1,
2278 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
2279 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
2280 107, 108, 109, 110, 111, 112, 113, 114, 115, -1,
2281 -1, -1, -1, -1, 3, -1, 64, -1, 66, 67,
2282 68, 69, 70, 12, -1, -1, -1, -1, 17, 18,
2283 -1, -1, -1, 22, -1, -1, -1, -1, -1, -1,
2284 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
2285 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
2286 108, 109, 110, 111, 112, 113, 114, 115, -1, -1,
2287 -1, -1, -1, -1, -1, -1, -1, 66, 67, 68,
2288 69, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2289 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
2290 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
2291 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2292 109, 110, 111, 112, 113, 114, 115, 35, -1, -1,
2293 -1, -1, -1, -1, 42, 43, 44, 45, 46, 47,
2294 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2295 58, 59, -1, -1, -1, 39, -1, 65, 42, 43,
2296 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2297 54, 55, 56, 57, 58, 59, -1, -1, -1, -1,
2298 -1, 65, 42, 43, 44, 45, 46, 47, 48, 49,
2299 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2300 -1, -1, -1, -1, -1, 65, 42, 43, 44, 45,
2301 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2302 56, 57, 58, 59, -1, -1, -1, -1, -1, 65,
2303 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2304 52, 53, 54, 55, 56, 57, 58, 59, -1, -1,
2305 -1, -1, -1, 65, 42, 43, 44, 45, 46, 47,
2306 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2307 58, 59, -1, -1, -1, -1, -1, 65
2308 };
2309
2310 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2311 symbol of state STATE-NUM. */
2312 static const unsigned short yystos[] =
2313 {
2314 0, 4, 5, 6, 7, 8, 9, 10, 11, 17,
2315 22, 29, 30, 31, 41, 83, 84, 85, 86, 87,
2316 88, 89, 91, 116, 121, 123, 146, 147, 148, 149,
2317 150, 167, 170, 175, 176, 177, 178, 179, 180, 181,
2318 182, 183, 188, 191, 194, 195, 199, 200, 201, 202,
2319 204, 206, 210, 212, 213, 219, 227, 241, 242, 9,
2320 11, 22, 84, 85, 86, 87, 123, 200, 210, 30,
2321 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2322 76, 77, 79, 80, 81, 82, 151, 152, 153, 154,
2323 156, 157, 158, 84, 85, 121, 171, 173, 201, 202,
2324 210, 219, 228, 229, 3, 12, 17, 18, 22, 66,
2325 67, 68, 69, 70, 88, 90, 91, 92, 93, 94,
2326 95, 97, 100, 101, 102, 103, 104, 105, 106, 107,
2327 108, 109, 110, 111, 112, 113, 114, 115, 143, 260,
2328 272, 143, 143, 230, 3, 6, 10, 12, 247, 249,
2329 26, 123, 242, 44, 280, 281, 22, 83, 89, 123,
2330 199, 0, 148, 49, 143, 176, 211, 236, 237, 238,
2331 239, 177, 4, 5, 6, 9, 22, 184, 6, 181,
2332 187, 200, 125, 189, 32, 32, 36, 36, 143, 143,
2333 143, 34, 192, 0, 3, 4, 5, 6, 7, 8,
2334 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2335 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
2336 29, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2337 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2338 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2339 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2340 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2341 81, 83, 84, 85, 86, 87, 88, 89, 90, 91,
2342 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
2343 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2344 112, 113, 114, 115, 116, 119, 121, 122, 123, 124,
2345 125, 143, 144, 159, 30, 3, 12, 17, 18, 22,
2346 66, 67, 68, 69, 70, 88, 90, 91, 92, 93,
2347 94, 95, 97, 100, 101, 102, 103, 104, 105, 106,
2348 107, 108, 109, 110, 111, 112, 113, 114, 115, 144,
2349 162, 163, 162, 26, 119, 155, 144, 25, 27, 28,
2350 32, 47, 48, 60, 61, 78, 142, 143, 164, 224,
2351 143, 230, 143, 230, 173, 31, 143, 35, 233, 233,
2352 233, 233, 23, 31, 36, 23, 171, 123, 189, 29,
2353 87, 240, 38, 234, 32, 143, 124, 239, 6, 185,
2354 6, 9, 186, 184, 36, 196, 32, 31, 17, 175,
2355 203, 205, 207, 208, 209, 210, 207, 143, 220, 221,
2356 92, 93, 94, 95, 96, 98, 99, 251, 252, 253,
2357 266, 269, 275, 276, 277, 193, 211, 237, 31, 26,
2358 118, 164, 190, 162, 144, 26, 27, 32, 44, 226,
2359 164, 32, 143, 164, 32, 42, 43, 44, 45, 46,
2360 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
2361 57, 58, 59, 65, 141, 35, 36, 215, 215, 31,
2362 214, 215, 214, 40, 251, 32, 31, 31, 19, 23,
2363 25, 27, 29, 32, 87, 124, 142, 211, 222, 223,
2364 224, 235, 236, 237, 234, 6, 0, 3, 4, 5,
2365 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
2366 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
2367 26, 27, 28, 29, 31, 32, 33, 34, 35, 38,
2368 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
2369 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
2370 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
2371 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
2372 79, 81, 83, 84, 85, 86, 87, 88, 89, 90,
2373 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
2374 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2375 111, 112, 113, 114, 115, 116, 119, 121, 122, 123,
2376 124, 125, 145, 196, 197, 198, 190, 236, 32, 33,
2377 34, 34, 33, 34, 40, 34, 231, 211, 256, 222,
2378 245, 270, 271, 272, 280, 211, 143, 278, 279, 211,
2379 267, 271, 37, 252, 222, 34, 32, 26, 177, 225,
2380 226, 22, 33, 143, 164, 165, 166, 164, 164, 32,
2381 121, 172, 173, 174, 175, 216, 219, 228, 229, 211,
2382 211, 19, 20, 21, 168, 169, 190, 222, 37, 13,
2383 14, 15, 16, 17, 33, 243, 244, 246, 248, 249,
2384 250, 17, 22, 175, 222, 222, 39, 65, 141, 39,
2385 32, 143, 37, 198, 33, 32, 207, 234, 64, 209,
2386 234, 64, 222, 221, 37, 40, 31, 40, 31, 32,
2387 24, 40, 32, 31, 34, 32, 31, 31, 211, 64,
2388 143, 160, 161, 236, 33, 33, 33, 34, 35, 25,
2389 174, 35, 232, 37, 172, 233, 233, 31, 35, 33,
2390 34, 245, 33, 33, 222, 222, 236, 32, 33, 236,
2391 33, 34, 33, 33, 19, 89, 90, 109, 222, 255,
2392 257, 258, 259, 260, 281, 270, 211, 280, 193, 279,
2393 17, 193, 268, 33, 34, 164, 164, 34, 25, 35,
2394 34, 217, 232, 215, 215, 246, 35, 244, 246, 40,
2395 222, 35, 143, 207, 33, 234, 64, 234, 234, 109,
2396 257, 17, 18, 32, 260, 263, 32, 32, 255, 34,
2397 273, 211, 33, 33, 162, 64, 143, 25, 35, 32,
2398 211, 218, 31, 217, 246, 280, 168, 222, 33, 33,
2399 33, 268, 32, 222, 245, 64, 270, 274, 33, 31,
2400 97, 33, 35, 25, 232, 34, 31, 64, 32, 33,
2401 234, 33, 245, 34, 34, 261, 33, 34, 18, 271,
2402 272, 32, 34, 211, 24, 207, 32, 97, 32, 222,
2403 211, 254, 255, 256, 262, 281, 33, 270, 25, 25,
2404 232, 33, 33, 207, 263, 264, 265, 270, 33, 34,
2405 255, 34, 33, 35, 33, 33, 32, 33, 34, 254,
2406 25, 246, 32, 234, 245, 33, 270, 33, 207, 32,
2407 33, 264, 234, 33, 33
2408 };
2409
2410 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
2411 static const unsigned short yyr1[] =
2412 {
2413 0, 140, 141, 141, 141, 141, 141, 141, 141, 141,
2414 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
2415 142, 142, 142, 142, 143, 143, 143, 143, 143, 143,
2416 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
2417 143, 143, 143, 144, 144, 144, 144, 144, 144, 144,
2418 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2419 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2420 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2421 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2422 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2423 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2424 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2425 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2426 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2427 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2428 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
2429 144, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2430 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2431 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2432 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2433 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2434 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2435 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2436 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2437 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2438 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2439 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
2440 145, 145, 145, 145, 145, 145, 145, 146, 146, 147,
2441 147, 148, 148, 148, 148, 148, 148, 148, 148, 148,
2442 148, 148, 148, 148, 148, 149, 150, 150, 151, 151,
2443 151, 151, 151, 151, 151, 151, 152, 152, 153, 153,
2444 154, 154, 154, 155, 155, 156, 156, 157, 157, 157,
2445 158, 158, 159, 159, 159, 159, 160, 160, 160, 160,
2446 161, 161, 162, 162, 163, 163, 164, 164, 164, 164,
2447 164, 164, 164, 164, 164, 164, 164, 165, 165, 166,
2448 166, 167, 168, 168, 168, 169, 169, 169, 170, 170,
2449 171, 171, 172, 172, 173, 173, 173, 173, 173, 174,
2450 174, 174, 174, 174, 175, 175, 175, 176, 176, 177,
2451 177, 178, 178, 178, 179, 179, 179, 179, 180, 180,
2452 180, 181, 181, 182, 182, 182, 183, 183, 183, 183,
2453 184, 184, 184, 184, 184, 184, 185, 185, 186, 186,
2454 186, 186, 187, 187, 187, 188, 188, 189, 189, 190,
2455 190, 191, 192, 192, 193, 193, 194, 195, 195, 195,
2456 195, 195, 195, 196, 197, 197, 198, 198, 199, 199,
2457 200, 200, 201, 201, 202, 202, 202, 202, 203, 203,
2458 204, 205, 206, 207, 207, 207, 208, 208, 209, 209,
2459 209, 210, 210, 211, 211, 212, 213, 214, 214, 215,
2460 216, 216, 217, 217, 218, 218, 219, 220, 220, 221,
2461 221, 222, 222, 222, 222, 222, 222, 223, 223, 223,
2462 223, 223, 223, 224, 224, 225, 225, 226, 226, 226,
2463 227, 228, 229, 230, 230, 231, 231, 232, 232, 232,
2464 232, 233, 233, 234, 234, 234, 235, 235, 235, 235,
2465 236, 236, 237, 237, 238, 238, 239, 239, 240, 240,
2466 241, 241, 242, 242, 242, 243, 243, 244, 244, 245,
2467 246, 247, 248, 248, 249, 249, 249, 249, 250, 250,
2468 250, 250, 250, 251, 251, 252, 252, 252, 252, 252,
2469 253, 253, 254, 254, 254, 255, 255, 255, 255, 255,
2470 255, 256, 256, 257, 258, 258, 259, 260, 260, 260,
2471 260, 260, 260, 260, 260, 260, 260, 261, 261, 262,
2472 262, 263, 263, 264, 264, 265, 265, 266, 267, 267,
2473 268, 268, 268, 269, 270, 270, 270, 271, 271, 272,
2474 272, 272, 272, 272, 272, 272, 272, 273, 273, 274,
2475 274, 275, 276, 276, 277, 278, 278, 279, 280, 280,
2476 281
2477 };
2478
2479 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
2480 static const unsigned char yyr2[] =
2481 {
2482 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
2483 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2484 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2485 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2486 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2487 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2488 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2489 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2490 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2491 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2492 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2493 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2494 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2495 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2496 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2497 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2498 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2499 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2500 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2501 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2502 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2503 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2504 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2505 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2506 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2507 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2508 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2509 1, 1, 1, 1, 1, 1, 1, 0, 1, 1,
2510 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2511 1, 1, 1, 1, 1, 3, 2, 3, 2, 2,
2512 1, 2, 2, 2, 1, 2, 1, 1, 1, 1,
2513 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2514 1, 1, 2, 6, 2, 2, 0, 1, 1, 3,
2515 1, 3, 0, 1, 1, 2, 3, 2, 3, 5,
2516 2, 4, 1, 1, 1, 1, 4, 0, 1, 1,
2517 3, 6, 1, 1, 1, 1, 1, 1, 3, 4,
2518 1, 2, 1, 2, 1, 1, 2, 4, 4, 1,
2519 1, 1, 3, 3, 1, 2, 2, 1, 1, 1,
2520 1, 2, 2, 2, 1, 1, 1, 1, 1, 1,
2521 2, 1, 1, 1, 1, 2, 1, 1, 2, 2,
2522 0, 1, 1, 2, 1, 2, 0, 1, 0, 1,
2523 1, 2, 0, 1, 2, 3, 4, 0, 4, 1,
2524 2, 4, 0, 2, 1, 3, 3, 1, 2, 2,
2525 3, 1, 2, 3, 1, 2, 1, 1, 1, 2,
2526 1, 1, 5, 7, 5, 7, 13, 16, 5, 7,
2527 6, 5, 1, 0, 1, 1, 1, 3, 1, 1,
2528 2, 1, 2, 3, 2, 4, 4, 1, 1, 3,
2529 4, 5, 0, 2, 2, 4, 5, 1, 3, 1,
2530 3, 1, 4, 3, 3, 2, 5, 1, 1, 1,
2531 1, 1, 1, 4, 2, 1, 2, 2, 1, 1,
2532 2, 2, 2, 0, 1, 0, 1, 0, 2, 7,
2533 9, 0, 7, 0, 3, 3, 0, 1, 1, 1,
2534 0, 1, 1, 2, 1, 2, 1, 2, 1, 1,
2535 4, 5, 7, 8, 13, 1, 3, 2, 4, 2,
2536 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2537 1, 1, 1, 1, 2, 1, 1, 1, 1, 1,
2538 3, 6, 1, 2, 1, 1, 1, 1, 2, 1,
2539 1, 3, 4, 6, 8, 12, 5, 1, 1, 1,
2540 1, 1, 1, 1, 1, 1, 1, 0, 2, 1,
2541 3, 1, 1, 0, 1, 1, 3, 3, 6, 1,
2542 0, 1, 1, 3, 1, 1, 3, 5, 6, 1,
2543 1, 1, 1, 1, 1, 1, 1, 0, 2, 1,
2544 3, 3, 1, 1, 3, 1, 3, 4, 0, 1,
2545 1
2546 };
2547
2548
2549 /* YYDPREC[RULE-NUM] -- Dynamic precedence of rule #RULE-NUM (0 if none). */
2550 static const unsigned char yydprec[] =
2551 {
2552 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2553 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2554 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2555 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2559 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2560 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2563 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2565 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2567 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2570 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2571 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2572 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2574 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2575 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2576 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2577 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2578 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2579 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2582 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2583 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2584 0, 0, 1, 2, 2, 2, 0, 0, 0, 0,
2585 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2586 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2587 0, 0, 2, 1, 0, 0, 0, 0, 0, 0,
2588 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
2589 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2590 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2593 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2595 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2596 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2597 0, 0, 0, 0, 2, 1, 0, 0, 0, 2,
2598 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2600 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2601 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2602 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2603 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2604 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2605 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2606 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2607 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2608 0, 0, 0, 0, 0, 2, 1, 0, 0, 0,
2609 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2611 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2612 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2613 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2614 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2615 0
2616 };
2617
2618 /* YYMERGER[RULE-NUM] -- Index of merging function for rule #RULE-NUM. */
2619 static const unsigned char yymerger[] =
2620 {
2621 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2622 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2623 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2624 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2625 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2626 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2627 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2632 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2633 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2634 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2635 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2636 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2637 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2638 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2639 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, 0, 0, 0, 0, 0,
2669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2670 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2671 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2673 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2674 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2676 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2677 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2678 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2679 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2680 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2681 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2682 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2683 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2684 0
2685 };
2686
2687 /* YYIMMEDIATE[RULE-NUM] -- True iff rule #RULE-NUM is not to be deferred, as
2688 in the case of predicates. */
2689 static const yybool yyimmediate[] =
2690 {
2691 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2692 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2693 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2694 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2695 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2696 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2697 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2698 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2699 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2700 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2701 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2702 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2703 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2704 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2705 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2706 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2707 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
2755 };
2756
2757 /* YYCONFLP[YYPACT[STATE-NUM]] -- Pointer into YYCONFL of start of
2758 list of conflicting reductions corresponding to action entry for
2759 state STATE-NUM in yytable. 0 means no conflicts. The list in
2760 yyconfl is terminated by a rule number of 0. */
2761 static const unsigned short yyconflp[] =
2762 {
2763 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2766 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2767 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2769 0, 3209, 0, 3211, 3213, 0, 3215, 0, 0, 0,
2770 0, 0, 0, 3217, 0, 0, 0, 0, 0, 0,
2771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2772 0, 0, 0, 0, 0, 0, 3197, 0, 0, 0,
2773 0, 0, 0, 0, 0, 0, 15, 0, 0, 0,
2774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2775 0, 0, 0, 0, 3199, 0, 0, 0, 0, 0,
2776 0, 0, 0, 0, 0, 0, 3201, 3203, 0, 0,
2777 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2778 0, 13, 0, 0, 0, 9, 0, 157, 0, 11,
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, 3219, 0, 3221, 3223,
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, 3205, 0, 0, 0, 0, 0, 0, 0,
2797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2798 0, 0, 0, 0, 3207, 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, 3225, 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, 1, 0,
2819 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,
2820 5, 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, 7, 0,
2826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2863 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2865 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2866 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2870 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2876 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2877 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2878 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2879 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2880 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2881 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2882 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2883 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2886 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2887 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2888 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2889 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2890 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2891 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2893 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2894 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2897 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2898 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2899 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2902 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2908 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2911 0, 0, 0, 0, 159, 0, 0, 0, 0, 0,
2912 0, 0, 0, 161, 0, 0, 0, 0, 163, 165,
2913 0, 0, 0, 167, 0, 0, 169, 171, 173, 175,
2914 0, 0, 0, 177, 0, 0, 0, 0, 0, 0,
2915 0, 0, 0, 0, 0, 0, 0, 0, 179, 181,
2916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2917 0, 183, 185, 0, 0, 0, 0, 187, 189, 191,
2918 193, 195, 0, 0, 0, 0, 0, 0, 0, 197,
2919 0, 0, 0, 0, 0, 0, 0, 0, 0, 199,
2920 0, 201, 203, 205, 207, 209, 211, 0, 213, 0,
2921 0, 215, 217, 219, 221, 223, 225, 227, 229, 231,
2922 233, 235, 237, 239, 241, 243, 245, 247, 0, 0,
2923 0, 0, 0, 0, 0, 0, 249, 0, 0, 0,
2924 0, 251, 253, 0, 0, 0, 255, 0, 0, 257,
2925 259, 261, 263, 0, 0, 0, 265, 0, 0, 0,
2926 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2927 0, 267, 269, 0, 0, 0, 0, 0, 0, 0,
2928 0, 0, 0, 0, 271, 273, 0, 0, 0, 0,
2929 275, 277, 279, 281, 283, 0, 0, 0, 0, 0,
2930 0, 0, 285, 0, 0, 0, 0, 0, 0, 0,
2931 0, 0, 287, 0, 289, 291, 293, 295, 297, 299,
2932 0, 301, 0, 0, 303, 305, 307, 309, 311, 313,
2933 315, 317, 319, 321, 323, 325, 327, 329, 331, 333,
2934 335, 0, 0, 0, 0, 0, 0, 0, 0, 337,
2935 0, 0, 0, 0, 339, 341, 0, 0, 0, 343,
2936 0, 0, 345, 347, 349, 351, 0, 0, 0, 353,
2937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2938 0, 0, 0, 0, 355, 357, 0, 0, 0, 0,
2939 0, 0, 0, 0, 0, 0, 0, 359, 361, 0,
2940 0, 0, 0, 363, 365, 367, 369, 371, 0, 0,
2941 0, 0, 0, 0, 0, 373, 0, 0, 0, 0,
2942 0, 0, 0, 0, 0, 375, 0, 377, 379, 381,
2943 383, 385, 387, 0, 389, 0, 0, 391, 393, 395,
2944 397, 399, 401, 403, 405, 407, 409, 411, 413, 415,
2945 417, 419, 421, 423, 0, 0, 0, 0, 0, 0,
2946 0, 0, 426, 0, 0, 0, 0, 429, 432, 0,
2947 0, 0, 435, 0, 0, 438, 441, 444, 447, 0,
2948 0, 0, 450, 0, 0, 0, 0, 0, 0, 0,
2949 0, 0, 0, 0, 0, 0, 0, 453, 456, 0,
2950 0, 0, 149, 0, 0, 0, 0, 151, 0, 0,
2951 459, 462, 0, 0, 153, 0, 465, 468, 471, 474,
2952 477, 0, 0, 0, 0, 0, 0, 0, 480, 0,
2953 0, 0, 0, 0, 0, 0, 0, 0, 483, 0,
2954 486, 489, 492, 495, 498, 501, 0, 504, 0, 0,
2955 507, 510, 513, 516, 519, 522, 525, 528, 531, 534,
2956 537, 540, 543, 546, 549, 552, 557, 0, 555, 0,
2957 0, 0, 155, 0, 0, 559, 0, 0, 0, 0,
2958 561, 563, 0, 0, 0, 565, 0, 0, 567, 569,
2959 571, 573, 0, 0, 0, 575, 0, 0, 0, 0,
2960 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2961 577, 579, 0, 0, 0, 0, 0, 0, 0, 0,
2962 0, 0, 0, 581, 583, 0, 0, 0, 0, 585,
2963 587, 589, 591, 593, 0, 0, 0, 0, 0, 0,
2964 0, 595, 0, 0, 0, 0, 0, 0, 0, 0,
2965 0, 597, 0, 599, 601, 603, 605, 607, 609, 0,
2966 611, 0, 0, 613, 615, 617, 619, 621, 623, 625,
2967 627, 629, 631, 633, 635, 637, 639, 641, 643, 645,
2968 0, 0, 0, 0, 0, 0, 0, 0, 647, 0,
2969 0, 0, 0, 649, 651, 0, 0, 0, 653, 0,
2970 0, 655, 657, 659, 661, 0, 0, 0, 663, 0,
2971 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2972 0, 0, 0, 665, 667, 0, 0, 0, 0, 0,
2973 0, 0, 0, 0, 0, 0, 669, 671, 0, 0,
2974 0, 0, 673, 675, 677, 679, 681, 0, 0, 0,
2975 0, 0, 0, 0, 683, 0, 0, 0, 0, 0,
2976 0, 0, 0, 0, 685, 0, 687, 689, 691, 693,
2977 695, 697, 0, 699, 0, 0, 701, 703, 705, 707,
2978 709, 711, 713, 715, 717, 719, 721, 723, 725, 727,
2979 729, 731, 733, 0, 0, 0, 0, 0, 0, 0,
2980 0, 735, 0, 0, 0, 0, 737, 739, 0, 0,
2981 0, 741, 0, 0, 743, 745, 747, 749, 0, 0,
2982 0, 751, 0, 0, 0, 0, 0, 0, 0, 0,
2983 0, 0, 0, 0, 0, 0, 753, 755, 0, 0,
2984 0, 0, 0, 0, 0, 0, 0, 0, 0, 757,
2985 759, 0, 0, 0, 0, 761, 763, 765, 767, 769,
2986 0, 0, 0, 0, 0, 0, 0, 771, 0, 0,
2987 0, 0, 0, 0, 0, 0, 0, 773, 0, 775,
2988 777, 779, 781, 783, 785, 0, 787, 0, 0, 789,
2989 791, 793, 795, 797, 799, 801, 803, 805, 807, 809,
2990 811, 813, 815, 817, 819, 821, 0, 0, 0, 0,
2991 0, 0, 0, 0, 823, 0, 0, 0, 0, 825,
2992 827, 0, 0, 0, 829, 0, 0, 831, 833, 835,
2993 837, 0, 0, 0, 839, 0, 0, 0, 0, 0,
2994 0, 0, 0, 0, 0, 0, 0, 0, 0, 841,
2995 843, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2996 0, 0, 845, 847, 0, 0, 0, 0, 849, 851,
2997 853, 855, 857, 0, 0, 0, 0, 0, 0, 0,
2998 859, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2999 861, 0, 863, 865, 867, 869, 871, 873, 0, 875,
3000 0, 0, 877, 879, 881, 883, 885, 887, 889, 891,
3001 893, 895, 897, 899, 901, 903, 905, 907, 909, 0,
3002 0, 0, 0, 0, 0, 0, 0, 911, 0, 0,
3003 0, 0, 913, 915, 0, 0, 0, 917, 0, 0,
3004 919, 921, 923, 925, 0, 0, 0, 927, 0, 0,
3005 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3006 0, 0, 929, 931, 0, 0, 0, 0, 0, 0,
3007 0, 0, 0, 0, 0, 933, 935, 0, 0, 0,
3008 0, 937, 939, 941, 943, 945, 0, 0, 0, 0,
3009 0, 0, 0, 947, 0, 0, 0, 0, 0, 0,
3010 0, 0, 0, 949, 0, 951, 953, 955, 957, 959,
3011 961, 0, 963, 0, 0, 965, 967, 969, 971, 973,
3012 975, 977, 979, 981, 983, 985, 987, 989, 991, 993,
3013 995, 997, 0, 0, 0, 0, 0, 0, 0, 0,
3014 999, 0, 0, 0, 0, 1001, 1003, 0, 0, 0,
3015 1005, 0, 0, 1007, 1009, 1011, 1013, 0, 0, 0,
3016 1015, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3017 0, 0, 0, 0, 0, 1017, 1019, 0, 0, 0,
3018 0, 0, 0, 0, 0, 0, 0, 0, 1021, 1023,
3019 0, 0, 0, 0, 1025, 1027, 1029, 1031, 1033, 0,
3020 0, 0, 0, 0, 0, 0, 1035, 0, 0, 0,
3021 0, 0, 0, 0, 0, 0, 1037, 0, 1039, 1041,
3022 1043, 1045, 1047, 1049, 0, 1051, 0, 0, 1053, 1055,
3023 1057, 1059, 1061, 1063, 1065, 1067, 1069, 1071, 1073, 1075,
3024 1077, 1079, 1081, 1083, 1085, 0, 0, 0, 0, 0,
3025 0, 0, 0, 1087, 0, 0, 0, 0, 1089, 1091,
3026 0, 0, 0, 1093, 0, 0, 1095, 1097, 1099, 1101,
3027 0, 0, 0, 1103, 0, 0, 0, 0, 0, 0,
3028 0, 0, 0, 0, 0, 0, 0, 0, 1105, 1107,
3029 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3030 0, 1109, 1111, 0, 0, 0, 0, 1113, 1115, 1117,
3031 1119, 1121, 0, 0, 0, 0, 0, 0, 0, 1123,
3032 0, 0, 0, 0, 0, 0, 0, 0, 0, 1125,
3033 0, 1127, 1129, 1131, 1133, 1135, 1137, 0, 1139, 0,
3034 0, 1141, 1143, 1145, 1147, 1149, 1151, 1153, 1155, 1157,
3035 1159, 1161, 1163, 1165, 1167, 1169, 1171, 1173, 0, 0,
3036 0, 0, 0, 0, 0, 0, 1175, 0, 0, 0,
3037 0, 1177, 1179, 0, 0, 0, 1181, 0, 0, 1183,
3038 1185, 1187, 1189, 0, 0, 0, 1191, 0, 0, 0,
3039 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3040 0, 1193, 1195, 0, 0, 0, 0, 0, 0, 0,
3041 0, 0, 0, 0, 1197, 1199, 0, 0, 0, 0,
3042 1201, 1203, 1205, 1207, 1209, 0, 0, 0, 0, 0,
3043 0, 0, 1211, 0, 0, 0, 0, 0, 0, 0,
3044 0, 0, 1213, 0, 1215, 1217, 1219, 1221, 1223, 1225,
3045 0, 1227, 0, 0, 1229, 1231, 1233, 1235, 1237, 1239,
3046 1241, 1243, 1245, 1247, 1249, 1251, 1253, 1255, 1257, 1259,
3047 1261, 0, 0, 0, 0, 0, 0, 0, 0, 1263,
3048 0, 0, 0, 0, 1265, 1267, 0, 0, 0, 1269,
3049 0, 0, 1271, 1273, 1275, 1277, 0, 0, 0, 1279,
3050 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3051 0, 0, 0, 0, 1281, 1283, 0, 0, 0, 0,
3052 0, 0, 0, 0, 0, 0, 0, 1285, 1287, 0,
3053 0, 0, 0, 1289, 1291, 1293, 1295, 1297, 0, 0,
3054 0, 0, 0, 0, 0, 1299, 0, 0, 0, 0,
3055 0, 0, 0, 0, 0, 1301, 0, 1303, 1305, 1307,
3056 1309, 1311, 1313, 0, 1315, 0, 0, 1317, 1319, 1321,
3057 1323, 1325, 1327, 1329, 1331, 1333, 1335, 1337, 1339, 1341,
3058 1343, 1345, 1347, 1349, 0, 0, 0, 0, 0, 0,
3059 0, 0, 1351, 0, 0, 0, 0, 1353, 1355, 0,
3060 0, 0, 1357, 0, 0, 1359, 1361, 1363, 1365, 0,
3061 0, 0, 1367, 0, 0, 0, 0, 0, 0, 0,
3062 0, 0, 0, 0, 0, 0, 0, 1369, 1371, 0,
3063 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3064 1373, 1375, 0, 0, 0, 0, 1377, 1379, 1381, 1383,
3065 1385, 0, 0, 0, 0, 0, 0, 0, 1387, 0,
3066 0, 0, 0, 0, 0, 0, 0, 0, 1389, 0,
3067 1391, 1393, 1395, 1397, 1399, 1401, 0, 1403, 0, 0,
3068 1405, 1407, 1409, 1411, 1413, 1415, 1417, 1419, 1421, 1423,
3069 1425, 1427, 1429, 1431, 1433, 1435, 1437, 0, 0, 0,
3070 0, 0, 0, 0, 0, 1439, 0, 0, 0, 0,
3071 1441, 1443, 0, 0, 0, 1445, 0, 0, 1447, 1449,
3072 1451, 1453, 0, 0, 0, 1455, 0, 0, 0, 0,
3073 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3074 1457, 1459, 0, 0, 0, 0, 0, 0, 0, 0,
3075 0, 0, 0, 1461, 1463, 0, 0, 0, 0, 1465,
3076 1467, 1469, 1471, 1473, 0, 0, 0, 0, 0, 0,
3077 0, 1475, 0, 0, 0, 0, 0, 0, 0, 0,
3078 0, 1477, 0, 1479, 1481, 1483, 1485, 1487, 1489, 0,
3079 1491, 0, 0, 1493, 1495, 1497, 1499, 1501, 1503, 1505,
3080 1507, 1509, 1511, 1513, 1515, 1517, 1519, 1521, 1523, 1525,
3081 0, 0, 0, 0, 0, 0, 0, 0, 1527, 0,
3082 0, 0, 0, 1529, 1531, 0, 0, 0, 1533, 0,
3083 0, 1535, 1537, 1539, 1541, 0, 0, 0, 1543, 0,
3084 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3085 0, 0, 0, 1545, 1547, 0, 0, 0, 0, 0,
3086 0, 0, 0, 0, 0, 0, 1549, 1551, 0, 0,
3087 0, 0, 1553, 1555, 1557, 1559, 1561, 0, 0, 0,
3088 0, 0, 0, 0, 1563, 0, 0, 0, 0, 0,
3089 0, 0, 0, 0, 1565, 0, 1567, 1569, 1571, 1573,
3090 1575, 1577, 0, 1579, 0, 0, 1581, 1583, 1585, 1587,
3091 1589, 1591, 1593, 1595, 1597, 1599, 1601, 1603, 1605, 1607,
3092 1609, 1611, 1613, 0, 0, 0, 0, 0, 0, 0,
3093 0, 1615, 0, 0, 0, 0, 1617, 1619, 0, 0,
3094 0, 1621, 0, 0, 1623, 1625, 1627, 1629, 0, 0,
3095 0, 1631, 0, 0, 0, 0, 0, 0, 0, 0,
3096 0, 0, 0, 0, 0, 0, 1633, 1635, 0, 0,
3097 0, 0, 0, 0, 0, 0, 0, 0, 0, 1637,
3098 1639, 0, 0, 0, 0, 1641, 1643, 1645, 1647, 1649,
3099 0, 0, 0, 0, 0, 0, 0, 1651, 0, 0,
3100 0, 0, 0, 0, 0, 0, 0, 1653, 0, 1655,
3101 1657, 1659, 1661, 1663, 1665, 0, 1667, 0, 0, 1669,
3102 1671, 1673, 1675, 1677, 1679, 1681, 1683, 1685, 1687, 1689,
3103 1691, 1693, 1695, 1697, 1699, 1701, 0, 0, 0, 0,
3104 0, 0, 0, 0, 1703, 0, 0, 0, 0, 1705,
3105 1707, 0, 0, 0, 1709, 0, 0, 1711, 1713, 1715,
3106 1717, 0, 0, 0, 1719, 0, 0, 0, 0, 0,
3107 0, 0, 0, 0, 0, 0, 0, 0, 0, 1721,
3108 1723, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3109 0, 0, 1725, 1727, 0, 0, 0, 0, 1729, 1731,
3110 1733, 1735, 1737, 0, 0, 0, 0, 0, 0, 0,
3111 1739, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3112 1741, 0, 1743, 1745, 1747, 1749, 1751, 1753, 0, 1755,
3113 0, 0, 1757, 1759, 1761, 1763, 1765, 1767, 1769, 1771,
3114 1773, 1775, 1777, 1779, 1781, 1783, 1785, 1787, 1789, 0,
3115 0, 0, 0, 0, 0, 0, 0, 1791, 0, 0,
3116 0, 0, 1793, 1795, 0, 0, 0, 1797, 0, 0,
3117 1799, 1801, 1803, 1805, 0, 0, 0, 1807, 0, 0,
3118 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3119 0, 0, 1809, 1811, 0, 0, 0, 0, 0, 0,
3120 0, 0, 0, 0, 0, 1813, 1815, 0, 0, 0,
3121 0, 1817, 1819, 1821, 1823, 1825, 0, 0, 0, 0,
3122 0, 0, 0, 1827, 0, 0, 0, 0, 0, 0,
3123 0, 0, 0, 1829, 0, 1831, 1833, 1835, 1837, 1839,
3124 1841, 0, 1843, 0, 0, 1845, 1847, 1849, 1851, 1853,
3125 1855, 1857, 1859, 1861, 1863, 1865, 1867, 1869, 1871, 1873,
3126 1875, 1877, 0, 0, 0, 0, 0, 0, 0, 0,
3127 1879, 0, 0, 0, 0, 1881, 1883, 0, 0, 0,
3128 1885, 0, 0, 1887, 1889, 1891, 1893, 0, 0, 0,
3129 1895, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3130 0, 0, 0, 0, 0, 1897, 1899, 0, 0, 0,
3131 0, 0, 0, 0, 0, 0, 0, 0, 1901, 1903,
3132 0, 0, 0, 0, 1905, 1907, 1909, 1911, 1913, 0,
3133 0, 0, 0, 0, 0, 0, 1915, 0, 0, 0,
3134 0, 0, 0, 0, 0, 0, 1917, 0, 1919, 1921,
3135 1923, 1925, 1927, 1929, 0, 1931, 0, 0, 1933, 1935,
3136 1937, 1939, 1941, 1943, 1945, 1947, 1949, 1951, 1953, 1955,
3137 1957, 1959, 1961, 1963, 1965, 0, 0, 0, 0, 0,
3138 0, 0, 0, 1967, 0, 0, 0, 0, 1969, 1971,
3139 0, 0, 0, 1973, 0, 0, 1975, 1977, 1979, 1981,
3140 0, 0, 0, 1983, 0, 0, 0, 0, 0, 0,
3141 0, 0, 0, 0, 0, 0, 0, 0, 1985, 1987,
3142 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3143 0, 1989, 1991, 0, 0, 0, 0, 1993, 1995, 1997,
3144 1999, 2001, 0, 0, 0, 0, 0, 0, 0, 2003,
3145 0, 0, 0, 0, 0, 0, 0, 0, 0, 2005,
3146 0, 2007, 2009, 2011, 2013, 2015, 2017, 0, 2019, 0,
3147 0, 2021, 2023, 2025, 2027, 2029, 2031, 2033, 2035, 2037,
3148 2039, 2041, 2043, 2045, 2047, 2049, 2051, 2053, 0, 0,
3149 0, 0, 0, 0, 0, 0, 2055, 0, 0, 0,
3150 0, 2057, 2059, 0, 0, 0, 2061, 0, 0, 2063,
3151 2065, 2067, 2069, 0, 0, 0, 2071, 0, 0, 0,
3152 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3153 0, 2073, 2075, 0, 0, 0, 0, 0, 0, 0,
3154 0, 0, 0, 0, 2077, 2079, 0, 0, 0, 0,
3155 2081, 2083, 2085, 2087, 2089, 0, 0, 0, 0, 0,
3156 0, 0, 2091, 0, 0, 0, 0, 0, 0, 0,
3157 0, 0, 2093, 0, 2095, 2097, 2099, 2101, 2103, 2105,
3158 0, 2107, 0, 0, 2109, 2111, 2113, 2115, 2117, 2119,
3159 2121, 2123, 2125, 2127, 2129, 2131, 2133, 2135, 2137, 2139,
3160 2141, 0, 0, 0, 0, 0, 0, 0, 0, 2143,
3161 0, 0, 0, 0, 2145, 2147, 0, 0, 0, 2149,
3162 0, 0, 2151, 2153, 2155, 2157, 0, 0, 0, 2159,
3163 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3164 0, 0, 0, 0, 2161, 2163, 0, 0, 0, 0,
3165 0, 0, 0, 0, 0, 0, 0, 2165, 2167, 0,
3166 0, 0, 0, 2169, 2171, 2173, 2175, 2177, 0, 0,
3167 0, 0, 0, 0, 0, 2179, 0, 0, 0, 0,
3168 0, 0, 0, 0, 0, 2181, 0, 2183, 2185, 2187,
3169 2189, 2191, 2193, 0, 2195, 0, 0, 2197, 2199, 2201,
3170 2203, 2205, 2207, 2209, 2211, 2213, 2215, 2217, 2219, 2221,
3171 2223, 2225, 2227, 2229, 0, 0, 0, 0, 0, 0,
3172 0, 0, 2231, 0, 0, 0, 0, 2233, 2235, 0,
3173 0, 0, 2237, 0, 0, 2239, 2241, 2243, 2245, 0,
3174 0, 0, 2247, 0, 0, 0, 0, 0, 0, 0,
3175 0, 0, 0, 0, 0, 0, 0, 2249, 2251, 0,
3176 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3177 2253, 2255, 0, 0, 0, 0, 2257, 2259, 2261, 2263,
3178 2265, 0, 0, 0, 0, 0, 0, 0, 2267, 0,
3179 0, 0, 0, 0, 0, 0, 0, 0, 2269, 0,
3180 2271, 2273, 2275, 2277, 2279, 2281, 0, 2283, 0, 0,
3181 2285, 2287, 2289, 2291, 2293, 2295, 2297, 2299, 2301, 2303,
3182 2305, 2307, 2309, 2311, 2313, 2315, 2317, 0, 0, 0,
3183 0, 0, 0, 0, 0, 2319, 0, 0, 0, 0,
3184 2321, 2323, 0, 0, 0, 2325, 0, 0, 2327, 2329,
3185 2331, 2333, 0, 0, 0, 2335, 0, 0, 0, 0,
3186 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3187 2337, 2339, 0, 0, 0, 0, 0, 0, 0, 0,
3188 0, 0, 0, 2341, 2343, 0, 0, 0, 0, 2345,
3189 2347, 2349, 2351, 2353, 0, 0, 0, 0, 0, 0,
3190 0, 2355, 0, 0, 0, 0, 0, 0, 0, 0,
3191 0, 2357, 0, 2359, 2361, 2363, 2365, 2367, 2369, 0,
3192 2371, 0, 0, 2373, 2375, 2377, 2379, 2381, 2383, 2385,
3193 2387, 2389, 2391, 2393, 2395, 2397, 2399, 2401, 2403, 2405,
3194 0, 0, 0, 0, 0, 0, 0, 0, 2407, 0,
3195 0, 0, 0, 2409, 2411, 0, 0, 0, 2413, 0,
3196 0, 2415, 2417, 2419, 2421, 0, 0, 0, 2423, 0,
3197 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3198 0, 0, 0, 2425, 2427, 0, 0, 0, 0, 0,
3199 0, 0, 0, 0, 0, 0, 2429, 2431, 0, 0,
3200 0, 0, 2433, 2435, 2437, 2439, 2441, 0, 0, 0,
3201 0, 0, 0, 0, 2443, 0, 0, 0, 0, 0,
3202 0, 0, 0, 0, 2445, 0, 2447, 2449, 2451, 2453,
3203 2455, 2457, 0, 2459, 0, 0, 2461, 2463, 2465, 2467,
3204 2469, 2471, 2473, 2475, 2477, 2479, 2481, 2483, 2485, 2487,
3205 2489, 2491, 2493, 0, 0, 0, 0, 0, 0, 0,
3206 0, 2495, 0, 0, 0, 0, 2497, 2499, 0, 0,
3207 0, 2501, 0, 0, 2503, 2505, 2507, 2509, 0, 0,
3208 0, 2511, 0, 0, 0, 0, 0, 0, 0, 0,
3209 0, 0, 0, 0, 0, 0, 2513, 2515, 0, 0,
3210 0, 0, 0, 0, 0, 0, 0, 0, 0, 2517,
3211 2519, 0, 0, 0, 0, 2521, 2523, 2525, 2527, 2529,
3212 0, 0, 0, 0, 0, 0, 0, 2531, 0, 0,
3213 0, 0, 0, 0, 0, 0, 0, 2533, 0, 2535,
3214 2537, 2539, 2541, 2543, 2545, 0, 2547, 0, 0, 2549,
3215 2551, 2553, 2555, 2557, 2559, 2561, 2563, 2565, 2567, 2569,
3216 2571, 2573, 2575, 2577, 2579, 2581, 0, 0, 0, 0,
3217 0, 0, 0, 0, 2583, 0, 0, 0, 0, 2585,
3218 2587, 0, 0, 0, 2589, 0, 0, 2591, 2593, 2595,
3219 2597, 0, 0, 0, 2599, 0, 0, 0, 0, 0,
3220 0, 0, 0, 0, 0, 0, 0, 0, 0, 2601,
3221 2603, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3222 0, 0, 2605, 2607, 0, 0, 0, 0, 2609, 2611,
3223 2613, 2615, 2617, 0, 0, 0, 0, 0, 0, 0,
3224 2619, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3225 2621, 0, 2623, 2625, 2627, 2629, 2631, 2633, 0, 2635,
3226 0, 0, 2637, 2639, 2641, 2643, 2645, 2647, 2649, 2651,
3227 2653, 2655, 2657, 2659, 2661, 2663, 2665, 2667, 2669, 0,
3228 0, 0, 0, 0, 0, 0, 0, 2671, 0, 0,
3229 0, 0, 2673, 2675, 0, 0, 0, 2677, 0, 0,
3230 2679, 2681, 2683, 2685, 0, 0, 0, 2687, 0, 0,
3231 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3232 0, 0, 2689, 2691, 0, 0, 0, 0, 0, 0,
3233 0, 0, 0, 0, 0, 2693, 2695, 0, 0, 0,
3234 0, 2697, 2699, 2701, 2703, 2705, 0, 0, 0, 0,
3235 0, 0, 0, 2707, 0, 0, 0, 0, 0, 0,
3236 0, 0, 0, 2709, 0, 2711, 2713, 2715, 2717, 2719,
3237 2721, 0, 2723, 0, 0, 2725, 2727, 2729, 2731, 2733,
3238 2735, 2737, 2739, 2741, 2743, 2745, 2747, 2749, 2751, 2753,
3239 2755, 2757, 0, 0, 0, 0, 0, 0, 0, 0,
3240 2759, 0, 0, 0, 0, 2761, 2763, 0, 0, 0,
3241 2765, 0, 0, 2767, 2769, 2771, 2773, 0, 0, 0,
3242 2775, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3243 0, 0, 0, 0, 0, 2777, 2779, 0, 0, 0,
3244 0, 0, 0, 0, 0, 0, 0, 0, 2781, 2783,
3245 0, 0, 0, 0, 2785, 2787, 2789, 2791, 2793, 0,
3246 0, 0, 0, 0, 0, 0, 2795, 0, 0, 0,
3247 0, 0, 0, 0, 0, 0, 2797, 0, 2799, 2801,
3248 2803, 2805, 2807, 2809, 0, 2811, 0, 0, 2813, 2815,
3249 2817, 2819, 2821, 2823, 2825, 2827, 2829, 2831, 2833, 2835,
3250 2837, 2839, 2841, 2843, 2845, 0, 0, 0, 0, 0,
3251 0, 0, 0, 2847, 0, 0, 0, 0, 2849, 2851,
3252 0, 0, 0, 2853, 0, 0, 2855, 2857, 2859, 2861,
3253 0, 0, 0, 2863, 0, 0, 0, 0, 0, 0,
3254 0, 0, 0, 0, 0, 0, 0, 0, 2865, 2867,
3255 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3256 0, 2869, 2871, 0, 0, 0, 0, 2873, 2875, 2877,
3257 2879, 2881, 0, 0, 0, 0, 0, 0, 0, 2883,
3258 0, 0, 0, 0, 0, 0, 0, 0, 0, 2885,
3259 0, 2887, 2889, 2891, 2893, 2895, 2897, 0, 2899, 0,
3260 0, 2901, 2903, 2905, 2907, 2909, 2911, 2913, 2915, 2917,
3261 2919, 2921, 2923, 2925, 2927, 2929, 2931, 2933, 0, 0,
3262 0, 0, 0, 0, 0, 0, 2935, 0, 0, 0,
3263 0, 2937, 2939, 0, 0, 0, 2941, 0, 0, 2943,
3264 2945, 2947, 2949, 0, 0, 0, 2951, 0, 0, 0,
3265 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3266 0, 2953, 2955, 0, 0, 0, 0, 0, 0, 0,
3267 0, 0, 0, 0, 2957, 2959, 0, 0, 0, 0,
3268 2961, 2963, 2965, 2967, 2969, 0, 0, 0, 0, 0,
3269 0, 0, 2971, 0, 0, 0, 0, 0, 0, 0,
3270 0, 0, 2973, 0, 2975, 2977, 2979, 2981, 2983, 2985,
3271 0, 2987, 0, 0, 2989, 2991, 2993, 2995, 2997, 2999,
3272 3001, 3003, 3005, 3007, 3009, 3011, 3013, 3015, 3017, 3019,
3273 3021, 0, 0, 0, 0, 0, 0, 0, 0, 3023,
3274 0, 0, 0, 0, 3025, 3027, 0, 0, 0, 3029,
3275 0, 0, 3031, 3033, 3035, 3037, 0, 0, 0, 3039,
3276 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3277 0, 0, 0, 0, 3041, 3043, 0, 0, 0, 0,
3278 0, 0, 0, 0, 0, 0, 0, 3045, 3047, 0,
3279 0, 0, 0, 3049, 3051, 3053, 3055, 3057, 0, 0,
3280 0, 0, 0, 0, 0, 3059, 0, 0, 0, 0,
3281 0, 0, 0, 0, 0, 3061, 0, 3063, 3065, 3067,
3282 3069, 3071, 3073, 0, 3075, 0, 0, 3077, 3079, 3081,
3283 3083, 3085, 3087, 3089, 3091, 3093, 3095, 3097, 3099, 3101,
3284 3103, 3105, 3107, 3109, 0, 0, 0, 0, 0, 0,
3285 0, 0, 3111, 0, 0, 0, 0, 3113, 3115, 0,
3286 0, 0, 3117, 0, 0, 3119, 3121, 3123, 3125, 0,
3287 0, 0, 3127, 0, 0, 0, 0, 0, 0, 0,
3288 0, 0, 0, 0, 0, 0, 0, 3129, 3131, 0,
3289 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3290 3133, 3135, 0, 0, 0, 0, 3137, 3139, 3141, 3143,
3291 3145, 0, 0, 0, 0, 0, 0, 0, 3147, 0,
3292 0, 0, 0, 0, 0, 0, 0, 0, 3149, 0,
3293 3151, 3153, 3155, 3157, 3159, 3161, 0, 3163, 0, 0,
3294 3165, 3167, 3169, 3171, 3173, 3175, 3177, 3179, 3181, 3183,
3295 3185, 3187, 3189, 3191, 3193, 3195, 0, 0, 0, 0,
3296 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3297 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3298 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3299 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3300 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3301 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3302 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3303 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3304 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3305 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3306 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,
3307 0, 0, 0, 0, 0, 0, 0, 0, 19, 0,
3308 0, 0, 0, 21, 23, 0, 0, 0, 25, 0,
3309 0, 0, 0, 0, 0, 27, 29, 31, 33, 35,
3310 37, 39, 41, 43, 45, 47, 49, 0, 51, 53,
3311 55, 57, 59, 61, 63, 65, 67, 69, 71, 73,
3312 75, 77, 79, 81, 83, 85, 0, 0, 0, 0,
3313 0, 87, 89, 91, 93, 95, 97, 0, 0, 0,
3314 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3315 0, 0, 0, 99, 101, 0, 103, 105, 107, 109,
3316 111, 113, 0, 115, 0, 0, 117, 119, 121, 123,
3317 125, 127, 129, 131, 133, 135, 137, 139, 141, 143,
3318 145, 147, 0, 0, 0, 0, 0, 0, 0, 0,
3319 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3320 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3321 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3322 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3323 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3325 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3326 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3327 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3328 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3329 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3330 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3331 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3332 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3333 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3334 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3335 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3336 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3337 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3338 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3339 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3340 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3341 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3342 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3344 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3345 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3346 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3347 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3348 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3349 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3350 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3351 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3352 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3353 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3354 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3355 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3356 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3357 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3358 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3359 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3360 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3361 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3362 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3363 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3364 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3365 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3366 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3367 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3368 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3369 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3370 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3371 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3372 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3373 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3374 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3375 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3376 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3377 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3378 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3379 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3380 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3381 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3382 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3384 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3385 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3386 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3387 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3388 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3389 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3390 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3391 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3393 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3394 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3395 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3400 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3401 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3402 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3403 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3405 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3406 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3408 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3409 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3410 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3411 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3412 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3413 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3414 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3415 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3416 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3417 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3418 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3423 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3424 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3425 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3426 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3427 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3428 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3429 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3430 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3431 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3432 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3433 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3434 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3436 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3437 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3438 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3442 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3445 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3454 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3457 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3459 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3466 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3467 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3470 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3471 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3472 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3473 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3506 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3513 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3524 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3527 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3529 0, 0, 0, 3227, 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, 3229
3532 };
3533
3534 /* YYCONFL[I] -- lists of conflicting rule numbers, each terminated by
3535 0, pointed into by YYCONFLP. */
3536 static const short yyconfl[] =
3537 {
3538 0, 386, 0, 386, 0, 386, 0, 386, 0, 377,
3539 0, 377, 0, 400, 0, 461, 0, 615, 0, 615,
3540 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
3541 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
3542 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
3543 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
3544 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
3545 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
3546 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
3547 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
3548 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
3549 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
3550 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
3551 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
3552 0, 615, 0, 615, 0, 615, 0, 615, 0, 386,
3553 0, 386, 0, 386, 0, 386, 0, 400, 0, 43,
3554 0, 43, 0, 43, 0, 43, 0, 43, 0, 43,
3555 0, 43, 0, 43, 0, 43, 0, 43, 0, 43,
3556 0, 43, 0, 43, 0, 43, 0, 43, 0, 43,
3557 0, 43, 0, 43, 0, 43, 0, 43, 0, 43,
3558 0, 43, 0, 43, 0, 43, 0, 43, 0, 43,
3559 0, 43, 0, 43, 0, 43, 0, 43, 0, 43,
3560 0, 43, 0, 43, 0, 43, 0, 43, 0, 43,
3561 0, 43, 0, 43, 0, 43, 0, 43, 0, 43,
3562 0, 43, 0, 43, 0, 43, 0, 52, 0, 52,
3563 0, 52, 0, 52, 0, 52, 0, 52, 0, 52,
3564 0, 52, 0, 52, 0, 52, 0, 52, 0, 52,
3565 0, 52, 0, 52, 0, 52, 0, 52, 0, 52,
3566 0, 52, 0, 52, 0, 52, 0, 52, 0, 52,
3567 0, 52, 0, 52, 0, 52, 0, 52, 0, 52,
3568 0, 52, 0, 52, 0, 52, 0, 52, 0, 52,
3569 0, 52, 0, 52, 0, 52, 0, 52, 0, 52,
3570 0, 52, 0, 52, 0, 52, 0, 52, 0, 52,
3571 0, 52, 0, 52, 0, 616, 0, 616, 0, 616,
3572 0, 616, 0, 616, 0, 616, 0, 616, 0, 616,
3573 0, 616, 0, 616, 0, 616, 0, 616, 0, 616,
3574 0, 616, 0, 616, 0, 616, 0, 616, 0, 616,
3575 0, 616, 0, 616, 0, 616, 0, 616, 0, 616,
3576 0, 616, 0, 616, 0, 616, 0, 616, 0, 616,
3577 0, 616, 0, 616, 0, 616, 0, 616, 0, 616,
3578 0, 616, 0, 616, 0, 616, 0, 616, 0, 616,
3579 0, 616, 0, 616, 0, 616, 0, 616, 0, 616,
3580 0, 616, 0, 577, 615, 0, 577, 615, 0, 577,
3581 615, 0, 577, 615, 0, 577, 615, 0, 577, 615,
3582 0, 577, 615, 0, 577, 615, 0, 577, 615, 0,
3583 577, 615, 0, 577, 615, 0, 577, 615, 0, 577,
3584 615, 0, 577, 615, 0, 577, 615, 0, 577, 615,
3585 0, 577, 615, 0, 577, 615, 0, 577, 615, 0,
3586 577, 615, 0, 577, 615, 0, 577, 615, 0, 577,
3587 615, 0, 577, 615, 0, 577, 615, 0, 577, 615,
3588 0, 577, 615, 0, 577, 615, 0, 577, 615, 0,
3589 577, 615, 0, 577, 615, 0, 577, 615, 0, 577,
3590 615, 0, 577, 615, 0, 577, 615, 0, 577, 615,
3591 0, 577, 615, 0, 577, 615, 0, 577, 615, 0,
3592 577, 615, 0, 577, 615, 0, 577, 615, 0, 577,
3593 615, 0, 577, 615, 0, 615, 0, 62, 0, 62,
3594 0, 62, 0, 62, 0, 62, 0, 62, 0, 62,
3595 0, 62, 0, 62, 0, 62, 0, 62, 0, 62,
3596 0, 62, 0, 62, 0, 62, 0, 62, 0, 62,
3597 0, 62, 0, 62, 0, 62, 0, 62, 0, 62,
3598 0, 62, 0, 62, 0, 62, 0, 62, 0, 62,
3599 0, 62, 0, 62, 0, 62, 0, 62, 0, 62,
3600 0, 62, 0, 62, 0, 62, 0, 62, 0, 62,
3601 0, 62, 0, 62, 0, 62, 0, 62, 0, 62,
3602 0, 62, 0, 62, 0, 106, 0, 106, 0, 106,
3603 0, 106, 0, 106, 0, 106, 0, 106, 0, 106,
3604 0, 106, 0, 106, 0, 106, 0, 106, 0, 106,
3605 0, 106, 0, 106, 0, 106, 0, 106, 0, 106,
3606 0, 106, 0, 106, 0, 106, 0, 106, 0, 106,
3607 0, 106, 0, 106, 0, 106, 0, 106, 0, 106,
3608 0, 106, 0, 106, 0, 106, 0, 106, 0, 106,
3609 0, 106, 0, 106, 0, 106, 0, 106, 0, 106,
3610 0, 106, 0, 106, 0, 106, 0, 106, 0, 106,
3611 0, 106, 0, 107, 0, 107, 0, 107, 0, 107,
3612 0, 107, 0, 107, 0, 107, 0, 107, 0, 107,
3613 0, 107, 0, 107, 0, 107, 0, 107, 0, 107,
3614 0, 107, 0, 107, 0, 107, 0, 107, 0, 107,
3615 0, 107, 0, 107, 0, 107, 0, 107, 0, 107,
3616 0, 107, 0, 107, 0, 107, 0, 107, 0, 107,
3617 0, 107, 0, 107, 0, 107, 0, 107, 0, 107,
3618 0, 107, 0, 107, 0, 107, 0, 107, 0, 107,
3619 0, 107, 0, 107, 0, 107, 0, 107, 0, 107,
3620 0, 105, 0, 105, 0, 105, 0, 105, 0, 105,
3621 0, 105, 0, 105, 0, 105, 0, 105, 0, 105,
3622 0, 105, 0, 105, 0, 105, 0, 105, 0, 105,
3623 0, 105, 0, 105, 0, 105, 0, 105, 0, 105,
3624 0, 105, 0, 105, 0, 105, 0, 105, 0, 105,
3625 0, 105, 0, 105, 0, 105, 0, 105, 0, 105,
3626 0, 105, 0, 105, 0, 105, 0, 105, 0, 105,
3627 0, 105, 0, 105, 0, 105, 0, 105, 0, 105,
3628 0, 105, 0, 105, 0, 105, 0, 105, 0, 103,
3629 0, 103, 0, 103, 0, 103, 0, 103, 0, 103,
3630 0, 103, 0, 103, 0, 103, 0, 103, 0, 103,
3631 0, 103, 0, 103, 0, 103, 0, 103, 0, 103,
3632 0, 103, 0, 103, 0, 103, 0, 103, 0, 103,
3633 0, 103, 0, 103, 0, 103, 0, 103, 0, 103,
3634 0, 103, 0, 103, 0, 103, 0, 103, 0, 103,
3635 0, 103, 0, 103, 0, 103, 0, 103, 0, 103,
3636 0, 103, 0, 103, 0, 103, 0, 103, 0, 103,
3637 0, 103, 0, 103, 0, 103, 0, 104, 0, 104,
3638 0, 104, 0, 104, 0, 104, 0, 104, 0, 104,
3639 0, 104, 0, 104, 0, 104, 0, 104, 0, 104,
3640 0, 104, 0, 104, 0, 104, 0, 104, 0, 104,
3641 0, 104, 0, 104, 0, 104, 0, 104, 0, 104,
3642 0, 104, 0, 104, 0, 104, 0, 104, 0, 104,
3643 0, 104, 0, 104, 0, 104, 0, 104, 0, 104,
3644 0, 104, 0, 104, 0, 104, 0, 104, 0, 104,
3645 0, 104, 0, 104, 0, 104, 0, 104, 0, 104,
3646 0, 104, 0, 104, 0, 124, 0, 124, 0, 124,
3647 0, 124, 0, 124, 0, 124, 0, 124, 0, 124,
3648 0, 124, 0, 124, 0, 124, 0, 124, 0, 124,
3649 0, 124, 0, 124, 0, 124, 0, 124, 0, 124,
3650 0, 124, 0, 124, 0, 124, 0, 124, 0, 124,
3651 0, 124, 0, 124, 0, 124, 0, 124, 0, 124,
3652 0, 124, 0, 124, 0, 124, 0, 124, 0, 124,
3653 0, 124, 0, 124, 0, 124, 0, 124, 0, 124,
3654 0, 124, 0, 124, 0, 124, 0, 124, 0, 124,
3655 0, 124, 0, 126, 0, 126, 0, 126, 0, 126,
3656 0, 126, 0, 126, 0, 126, 0, 126, 0, 126,
3657 0, 126, 0, 126, 0, 126, 0, 126, 0, 126,
3658 0, 126, 0, 126, 0, 126, 0, 126, 0, 126,
3659 0, 126, 0, 126, 0, 126, 0, 126, 0, 126,
3660 0, 126, 0, 126, 0, 126, 0, 126, 0, 126,
3661 0, 126, 0, 126, 0, 126, 0, 126, 0, 126,
3662 0, 126, 0, 126, 0, 126, 0, 126, 0, 126,
3663 0, 126, 0, 126, 0, 126, 0, 126, 0, 126,
3664 0, 127, 0, 127, 0, 127, 0, 127, 0, 127,
3665 0, 127, 0, 127, 0, 127, 0, 127, 0, 127,
3666 0, 127, 0, 127, 0, 127, 0, 127, 0, 127,
3667 0, 127, 0, 127, 0, 127, 0, 127, 0, 127,
3668 0, 127, 0, 127, 0, 127, 0, 127, 0, 127,
3669 0, 127, 0, 127, 0, 127, 0, 127, 0, 127,
3670 0, 127, 0, 127, 0, 127, 0, 127, 0, 127,
3671 0, 127, 0, 127, 0, 127, 0, 127, 0, 127,
3672 0, 127, 0, 127, 0, 127, 0, 127, 0, 128,
3673 0, 128, 0, 128, 0, 128, 0, 128, 0, 128,
3674 0, 128, 0, 128, 0, 128, 0, 128, 0, 128,
3675 0, 128, 0, 128, 0, 128, 0, 128, 0, 128,
3676 0, 128, 0, 128, 0, 128, 0, 128, 0, 128,
3677 0, 128, 0, 128, 0, 128, 0, 128, 0, 128,
3678 0, 128, 0, 128, 0, 128, 0, 128, 0, 128,
3679 0, 128, 0, 128, 0, 128, 0, 128, 0, 128,
3680 0, 128, 0, 128, 0, 128, 0, 128, 0, 128,
3681 0, 128, 0, 128, 0, 128, 0, 129, 0, 129,
3682 0, 129, 0, 129, 0, 129, 0, 129, 0, 129,
3683 0, 129, 0, 129, 0, 129, 0, 129, 0, 129,
3684 0, 129, 0, 129, 0, 129, 0, 129, 0, 129,
3685 0, 129, 0, 129, 0, 129, 0, 129, 0, 129,
3686 0, 129, 0, 129, 0, 129, 0, 129, 0, 129,
3687 0, 129, 0, 129, 0, 129, 0, 129, 0, 129,
3688 0, 129, 0, 129, 0, 129, 0, 129, 0, 129,
3689 0, 129, 0, 129, 0, 129, 0, 129, 0, 129,
3690 0, 129, 0, 129, 0, 130, 0, 130, 0, 130,
3691 0, 130, 0, 130, 0, 130, 0, 130, 0, 130,
3692 0, 130, 0, 130, 0, 130, 0, 130, 0, 130,
3693 0, 130, 0, 130, 0, 130, 0, 130, 0, 130,
3694 0, 130, 0, 130, 0, 130, 0, 130, 0, 130,
3695 0, 130, 0, 130, 0, 130, 0, 130, 0, 130,
3696 0, 130, 0, 130, 0, 130, 0, 130, 0, 130,
3697 0, 130, 0, 130, 0, 130, 0, 130, 0, 130,
3698 0, 130, 0, 130, 0, 130, 0, 130, 0, 130,
3699 0, 130, 0, 131, 0, 131, 0, 131, 0, 131,
3700 0, 131, 0, 131, 0, 131, 0, 131, 0, 131,
3701 0, 131, 0, 131, 0, 131, 0, 131, 0, 131,
3702 0, 131, 0, 131, 0, 131, 0, 131, 0, 131,
3703 0, 131, 0, 131, 0, 131, 0, 131, 0, 131,
3704 0, 131, 0, 131, 0, 131, 0, 131, 0, 131,
3705 0, 131, 0, 131, 0, 131, 0, 131, 0, 131,
3706 0, 131, 0, 131, 0, 131, 0, 131, 0, 131,
3707 0, 131, 0, 131, 0, 131, 0, 131, 0, 131,
3708 0, 160, 0, 160, 0, 160, 0, 160, 0, 160,
3709 0, 160, 0, 160, 0, 160, 0, 160, 0, 160,
3710 0, 160, 0, 160, 0, 160, 0, 160, 0, 160,
3711 0, 160, 0, 160, 0, 160, 0, 160, 0, 160,
3712 0, 160, 0, 160, 0, 160, 0, 160, 0, 160,
3713 0, 160, 0, 160, 0, 160, 0, 160, 0, 160,
3714 0, 160, 0, 160, 0, 160, 0, 160, 0, 160,
3715 0, 160, 0, 160, 0, 160, 0, 160, 0, 160,
3716 0, 160, 0, 160, 0, 160, 0, 160, 0, 585,
3717 0, 585, 0, 585, 0, 585, 0, 585, 0, 585,
3718 0, 585, 0, 585, 0, 585, 0, 585, 0, 585,
3719 0, 585, 0, 585, 0, 585, 0, 585, 0, 585,
3720 0, 585, 0, 585, 0, 585, 0, 585, 0, 585,
3721 0, 585, 0, 585, 0, 585, 0, 585, 0, 585,
3722 0, 585, 0, 585, 0, 585, 0, 585, 0, 585,
3723 0, 585, 0, 585, 0, 585, 0, 585, 0, 585,
3724 0, 585, 0, 585, 0, 585, 0, 585, 0, 585,
3725 0, 585, 0, 585, 0, 585, 0, 584, 0, 584,
3726 0, 584, 0, 584, 0, 584, 0, 584, 0, 584,
3727 0, 584, 0, 584, 0, 584, 0, 584, 0, 584,
3728 0, 584, 0, 584, 0, 584, 0, 584, 0, 584,
3729 0, 584, 0, 584, 0, 584, 0, 584, 0, 584,
3730 0, 584, 0, 584, 0, 584, 0, 584, 0, 584,
3731 0, 584, 0, 584, 0, 584, 0, 584, 0, 584,
3732 0, 584, 0, 584, 0, 584, 0, 584, 0, 584,
3733 0, 584, 0, 584, 0, 584, 0, 584, 0, 584,
3734 0, 584, 0, 584, 0, 582, 0, 582, 0, 582,
3735 0, 582, 0, 582, 0, 582, 0, 582, 0, 582,
3736 0, 582, 0, 582, 0, 582, 0, 582, 0, 582,
3737 0, 582, 0, 582, 0, 582, 0, 582, 0, 582,
3738 0, 582, 0, 582, 0, 582, 0, 582, 0, 582,
3739 0, 582, 0, 582, 0, 582, 0, 582, 0, 582,
3740 0, 582, 0, 582, 0, 582, 0, 582, 0, 582,
3741 0, 582, 0, 582, 0, 582, 0, 582, 0, 582,
3742 0, 582, 0, 582, 0, 582, 0, 582, 0, 582,
3743 0, 582, 0, 580, 0, 580, 0, 580, 0, 580,
3744 0, 580, 0, 580, 0, 580, 0, 580, 0, 580,
3745 0, 580, 0, 580, 0, 580, 0, 580, 0, 580,
3746 0, 580, 0, 580, 0, 580, 0, 580, 0, 580,
3747 0, 580, 0, 580, 0, 580, 0, 580, 0, 580,
3748 0, 580, 0, 580, 0, 580, 0, 580, 0, 580,
3749 0, 580, 0, 580, 0, 580, 0, 580, 0, 580,
3750 0, 580, 0, 580, 0, 580, 0, 580, 0, 580,
3751 0, 580, 0, 580, 0, 580, 0, 580, 0, 580,
3752 0, 581, 0, 581, 0, 581, 0, 581, 0, 581,
3753 0, 581, 0, 581, 0, 581, 0, 581, 0, 581,
3754 0, 581, 0, 581, 0, 581, 0, 581, 0, 581,
3755 0, 581, 0, 581, 0, 581, 0, 581, 0, 581,
3756 0, 581, 0, 581, 0, 581, 0, 581, 0, 581,
3757 0, 581, 0, 581, 0, 581, 0, 581, 0, 581,
3758 0, 581, 0, 581, 0, 581, 0, 581, 0, 581,
3759 0, 581, 0, 581, 0, 581, 0, 581, 0, 581,
3760 0, 581, 0, 581, 0, 581, 0, 581, 0, 583,
3761 0, 583, 0, 583, 0, 583, 0, 583, 0, 583,
3762 0, 583, 0, 583, 0, 583, 0, 583, 0, 583,
3763 0, 583, 0, 583, 0, 583, 0, 583, 0, 583,
3764 0, 583, 0, 583, 0, 583, 0, 583, 0, 583,
3765 0, 583, 0, 583, 0, 583, 0, 583, 0, 583,
3766 0, 583, 0, 583, 0, 583, 0, 583, 0, 583,
3767 0, 583, 0, 583, 0, 583, 0, 583, 0, 583,
3768 0, 583, 0, 583, 0, 583, 0, 583, 0, 583,
3769 0, 583, 0, 583, 0, 583, 0, 579, 0, 579,
3770 0, 579, 0, 579, 0, 579, 0, 579, 0, 579,
3771 0, 579, 0, 579, 0, 579, 0, 579, 0, 579,
3772 0, 579, 0, 579, 0, 579, 0, 579, 0, 579,
3773 0, 579, 0, 579, 0, 579, 0, 579, 0, 579,
3774 0, 579, 0, 579, 0, 579, 0, 579, 0, 579,
3775 0, 579, 0, 579, 0, 579, 0, 579, 0, 579,
3776 0, 579, 0, 579, 0, 579, 0, 579, 0, 579,
3777 0, 579, 0, 579, 0, 579, 0, 579, 0, 579,
3778 0, 579, 0, 579, 0, 578, 0, 578, 0, 578,
3779 0, 578, 0, 578, 0, 578, 0, 578, 0, 578,
3780 0, 578, 0, 578, 0, 578, 0, 578, 0, 578,
3781 0, 578, 0, 578, 0, 578, 0, 578, 0, 578,
3782 0, 578, 0, 578, 0, 578, 0, 578, 0, 578,
3783 0, 578, 0, 578, 0, 578, 0, 578, 0, 578,
3784 0, 578, 0, 578, 0, 578, 0, 578, 0, 578,
3785 0, 578, 0, 578, 0, 578, 0, 578, 0, 578,
3786 0, 578, 0, 578, 0, 578, 0, 578, 0, 578,
3787 0, 578, 0, 586, 0, 586, 0, 586, 0, 586,
3788 0, 586, 0, 586, 0, 586, 0, 586, 0, 586,
3789 0, 586, 0, 586, 0, 586, 0, 586, 0, 586,
3790 0, 586, 0, 586, 0, 586, 0, 586, 0, 586,
3791 0, 586, 0, 586, 0, 586, 0, 586, 0, 586,
3792 0, 586, 0, 586, 0, 586, 0, 586, 0, 586,
3793 0, 586, 0, 586, 0, 586, 0, 586, 0, 586,
3794 0, 586, 0, 586, 0, 586, 0, 586, 0, 586,
3795 0, 586, 0, 586, 0, 586, 0, 586, 0, 586,
3796 0, 144, 0, 144, 0, 144, 0, 144, 0, 144,
3797 0, 144, 0, 144, 0, 144, 0, 144, 0, 144,
3798 0, 144, 0, 144, 0, 144, 0, 144, 0, 144,
3799 0, 144, 0, 144, 0, 144, 0, 144, 0, 144,
3800 0, 144, 0, 144, 0, 144, 0, 144, 0, 144,
3801 0, 144, 0, 144, 0, 144, 0, 144, 0, 144,
3802 0, 144, 0, 144, 0, 144, 0, 144, 0, 144,
3803 0, 144, 0, 144, 0, 144, 0, 144, 0, 144,
3804 0, 144, 0, 144, 0, 144, 0, 144, 0, 614,
3805 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
3806 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
3807 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
3808 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
3809 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
3810 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
3811 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
3812 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
3813 0, 614, 0, 614, 0, 614, 0, 612, 0, 612,
3814 0, 612, 0, 612, 0, 612, 0, 612, 0, 612,
3815 0, 612, 0, 612, 0, 612, 0, 612, 0, 612,
3816 0, 612, 0, 612, 0, 612, 0, 612, 0, 612,
3817 0, 612, 0, 612, 0, 612, 0, 612, 0, 612,
3818 0, 612, 0, 612, 0, 612, 0, 612, 0, 612,
3819 0, 612, 0, 612, 0, 612, 0, 612, 0, 612,
3820 0, 612, 0, 612, 0, 612, 0, 612, 0, 612,
3821 0, 612, 0, 612, 0, 612, 0, 612, 0, 612,
3822 0, 612, 0, 612, 0, 611, 0, 611, 0, 611,
3823 0, 611, 0, 611, 0, 611, 0, 611, 0, 611,
3824 0, 611, 0, 611, 0, 611, 0, 611, 0, 611,
3825 0, 611, 0, 611, 0, 611, 0, 611, 0, 611,
3826 0, 611, 0, 611, 0, 611, 0, 611, 0, 611,
3827 0, 611, 0, 611, 0, 611, 0, 611, 0, 611,
3828 0, 611, 0, 611, 0, 611, 0, 611, 0, 611,
3829 0, 611, 0, 611, 0, 611, 0, 611, 0, 611,
3830 0, 611, 0, 611, 0, 611, 0, 611, 0, 611,
3831 0, 611, 0, 613, 0, 613, 0, 613, 0, 613,
3832 0, 613, 0, 613, 0, 613, 0, 613, 0, 613,
3833 0, 613, 0, 613, 0, 613, 0, 613, 0, 613,
3834 0, 613, 0, 613, 0, 613, 0, 613, 0, 613,
3835 0, 613, 0, 613, 0, 613, 0, 613, 0, 613,
3836 0, 613, 0, 613, 0, 613, 0, 613, 0, 613,
3837 0, 613, 0, 613, 0, 613, 0, 613, 0, 613,
3838 0, 613, 0, 613, 0, 613, 0, 613, 0, 613,
3839 0, 613, 0, 613, 0, 613, 0, 613, 0, 613,
3840 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
3841 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
3842 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
3843 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
3844 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
3845 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
3846 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
3847 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
3848 0, 610, 0, 610, 0, 610, 0, 610, 0, 609,
3849 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
3850 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
3851 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
3852 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
3853 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
3854 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
3855 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
3856 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
3857 0, 609, 0, 609, 0, 609, 0, 504, 0, 504,
3858 0, 454, 0, 454, 0, 455, 0, 42, 0, 490,
3859 0, 490, 0, 490, 0, 616, 0, 386, 0, 565,
3860 0, 565, 0, 565, 0, 616, 0, 339, 0, 486,
3861 0
3862 };
3863
3864 /* Error token number */
3865 #define YYTERROR 1
3866
3867
3868
3869
3870 #undef yynerrs
3871 #define yynerrs (yystackp->yyerrcnt)
3872 #undef yychar
3873 #define yychar (yystackp->yyrawchar)
3874 #undef yylval
3875 #define yylval (yystackp->yyval)
3876 #undef yylloc
3877 #define yylloc (yystackp->yyloc)
3878 #define psi_parser_proc_nerrs yynerrs
3879 #define psi_parser_proc_char yychar
3880 #define psi_parser_proc_lval yylval
3881 #define psi_parser_proc_lloc yylloc
3882
3883 static const int YYEOF = 0;
3884 static const int YYEMPTY = -2;
3885
3886 typedef enum { yyok, yyaccept, yyabort, yyerr } YYRESULTTAG;
3887
3888 #define YYCHK(YYE) \
3889 do { \
3890 YYRESULTTAG yychk_flag = YYE; \
3891 if (yychk_flag != yyok) \
3892 return yychk_flag; \
3893 } while (0)
3894
3895 #if YYDEBUG
3896
3897 # ifndef YYFPRINTF
3898 # define YYFPRINTF fprintf
3899 # endif
3900
3901 /* This macro is provided for backward compatibility. */
3902 #ifndef YY_LOCATION_PRINT
3903 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
3904 #endif
3905
3906
3907 # define YYDPRINTF(Args) \
3908 do { \
3909 if (yydebug) \
3910 YYFPRINTF Args; \
3911 } while (0)
3912
3913
3914 /*----------------------------------------.
3915 | Print this symbol's value on YYOUTPUT. |
3916 `----------------------------------------*/
3917
3918 static void
3919 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
3920 {
3921 FILE *yyo = yyoutput;
3922 YYUSE (yyo);
3923 YYUSE (P);
3924 YYUSE (tokens);
3925 YYUSE (index);
3926 if (!yyvaluep)
3927 return;
3928 YYUSE (yytype);
3929 }
3930
3931
3932 /*--------------------------------.
3933 | Print this symbol on YYOUTPUT. |
3934 `--------------------------------*/
3935
3936 static void
3937 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
3938 {
3939 YYFPRINTF (yyoutput, "%s %s (",
3940 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
3941
3942 yy_symbol_value_print (yyoutput, yytype, yyvaluep, P, tokens, index);
3943 YYFPRINTF (yyoutput, ")");
3944 }
3945
3946 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
3947 do { \
3948 if (yydebug) \
3949 { \
3950 YYFPRINTF (stderr, "%s ", Title); \
3951 yy_symbol_print (stderr, Type, Value, P, tokens, index); \
3952 YYFPRINTF (stderr, "\n"); \
3953 } \
3954 } while (0)
3955
3956 /* Nonzero means print parse trace. It is left uninitialized so that
3957 multiple parsers can coexist. */
3958 int yydebug;
3959
3960 struct yyGLRStack;
3961 static void yypstack (struct yyGLRStack* yystackp, size_t yyk)
3962 YY_ATTRIBUTE_UNUSED;
3963 static void yypdumpstack (struct yyGLRStack* yystackp)
3964 YY_ATTRIBUTE_UNUSED;
3965
3966 #else /* !YYDEBUG */
3967
3968 # define YYDPRINTF(Args)
3969 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
3970
3971 #endif /* !YYDEBUG */
3972
3973 /* YYINITDEPTH -- initial size of the parser's stacks. */
3974 #ifndef YYINITDEPTH
3975 # define YYINITDEPTH 200
3976 #endif
3977
3978 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3979 if the built-in stack extension method is used).
3980
3981 Do not make this value too large; the results are undefined if
3982 SIZE_MAX < YYMAXDEPTH * sizeof (GLRStackItem)
3983 evaluated with infinite-precision integer arithmetic. */
3984
3985 #ifndef YYMAXDEPTH
3986 # define YYMAXDEPTH 10000
3987 #endif
3988
3989 /* Minimum number of free items on the stack allowed after an
3990 allocation. This is to allow allocation and initialization
3991 to be completed by functions that call yyexpandGLRStack before the
3992 stack is expanded, thus insuring that all necessary pointers get
3993 properly redirected to new data. */
3994 #define YYHEADROOM 2
3995
3996 #ifndef YYSTACKEXPANDABLE
3997 # define YYSTACKEXPANDABLE 1
3998 #endif
3999
4000 #if YYSTACKEXPANDABLE
4001 # define YY_RESERVE_GLRSTACK(Yystack) \
4002 do { \
4003 if (Yystack->yyspaceLeft < YYHEADROOM) \
4004 yyexpandGLRStack (Yystack); \
4005 } while (0)
4006 #else
4007 # define YY_RESERVE_GLRSTACK(Yystack) \
4008 do { \
4009 if (Yystack->yyspaceLeft < YYHEADROOM) \
4010 yyMemoryExhausted (Yystack); \
4011 } while (0)
4012 #endif
4013
4014
4015 #if YYERROR_VERBOSE
4016
4017 # ifndef yystpcpy
4018 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
4019 # define yystpcpy stpcpy
4020 # else
4021 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
4022 YYDEST. */
4023 static char *
4024 yystpcpy (char *yydest, const char *yysrc)
4025 {
4026 char *yyd = yydest;
4027 const char *yys = yysrc;
4028
4029 while ((*yyd++ = *yys++) != '\0')
4030 continue;
4031
4032 return yyd - 1;
4033 }
4034 # endif
4035 # endif
4036
4037 # ifndef yytnamerr
4038 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
4039 quotes and backslashes, so that it's suitable for yyerror. The
4040 heuristic is that double-quoting is unnecessary unless the string
4041 contains an apostrophe, a comma, or backslash (other than
4042 backslash-backslash). YYSTR is taken from yytname. If YYRES is
4043 null, do not copy; instead, return the length of what the result
4044 would have been. */
4045 static size_t
4046 yytnamerr (char *yyres, const char *yystr)
4047 {
4048 if (*yystr == '"')
4049 {
4050 size_t yyn = 0;
4051 char const *yyp = yystr;
4052
4053 for (;;)
4054 switch (*++yyp)
4055 {
4056 case '\'':
4057 case ',':
4058 goto do_not_strip_quotes;
4059
4060 case '\\':
4061 if (*++yyp != '\\')
4062 goto do_not_strip_quotes;
4063 /* Fall through. */
4064 default:
4065 if (yyres)
4066 yyres[yyn] = *yyp;
4067 yyn++;
4068 break;
4069
4070 case '"':
4071 if (yyres)
4072 yyres[yyn] = '\0';
4073 return yyn;
4074 }
4075 do_not_strip_quotes: ;
4076 }
4077
4078 if (! yyres)
4079 return strlen (yystr);
4080
4081 return yystpcpy (yyres, yystr) - yyres;
4082 }
4083 # endif
4084
4085 #endif /* !YYERROR_VERBOSE */
4086
4087 /** State numbers, as in LALR(1) machine */
4088 typedef int yyStateNum;
4089
4090 /** Rule numbers, as in LALR(1) machine */
4091 typedef int yyRuleNum;
4092
4093 /** Grammar symbol */
4094 typedef int yySymbol;
4095
4096 /** Item references, as in LALR(1) machine */
4097 typedef short yyItemNum;
4098
4099 typedef struct yyGLRState yyGLRState;
4100 typedef struct yyGLRStateSet yyGLRStateSet;
4101 typedef struct yySemanticOption yySemanticOption;
4102 typedef union yyGLRStackItem yyGLRStackItem;
4103 typedef struct yyGLRStack yyGLRStack;
4104
4105 struct yyGLRState {
4106 /** Type tag: always true. */
4107 yybool yyisState;
4108 /** Type tag for yysemantics. If true, yysval applies, otherwise
4109 * yyfirstVal applies. */
4110 yybool yyresolved;
4111 /** Number of corresponding LALR(1) machine state. */
4112 yyStateNum yylrState;
4113 /** Preceding state in this stack */
4114 yyGLRState* yypred;
4115 /** Source position of the last token produced by my symbol */
4116 size_t yyposn;
4117 union {
4118 /** First in a chain of alternative reductions producing the
4119 * non-terminal corresponding to this state, threaded through
4120 * yynext. */
4121 yySemanticOption* yyfirstVal;
4122 /** Semantic value for this state. */
4123 YYSTYPE yysval;
4124 } yysemantics;
4125 };
4126
4127 struct yyGLRStateSet {
4128 yyGLRState** yystates;
4129 /** During nondeterministic operation, yylookaheadNeeds tracks which
4130 * stacks have actually needed the current lookahead. During deterministic
4131 * operation, yylookaheadNeeds[0] is not maintained since it would merely
4132 * duplicate yychar != YYEMPTY. */
4133 yybool* yylookaheadNeeds;
4134 size_t yysize, yycapacity;
4135 };
4136
4137 struct yySemanticOption {
4138 /** Type tag: always false. */
4139 yybool yyisState;
4140 /** Rule number for this reduction */
4141 yyRuleNum yyrule;
4142 /** The last RHS state in the list of states to be reduced. */
4143 yyGLRState* yystate;
4144 /** The lookahead for this reduction. */
4145 int yyrawchar;
4146 YYSTYPE yyval;
4147 /** Next sibling in chain of options. To facilitate merging,
4148 * options are chained in decreasing order by address. */
4149 yySemanticOption* yynext;
4150 };
4151
4152 /** Type of the items in the GLR stack. The yyisState field
4153 * indicates which item of the union is valid. */
4154 union yyGLRStackItem {
4155 yyGLRState yystate;
4156 yySemanticOption yyoption;
4157 };
4158
4159 struct yyGLRStack {
4160 int yyerrState;
4161
4162
4163 int yyerrcnt;
4164 int yyrawchar;
4165 YYSTYPE yyval;
4166
4167 YYJMP_BUF yyexception_buffer;
4168 yyGLRStackItem* yyitems;
4169 yyGLRStackItem* yynextFree;
4170 size_t yyspaceLeft;
4171 yyGLRState* yysplitPoint;
4172 yyGLRState* yylastDeleted;
4173 yyGLRStateSet yytops;
4174 };
4175
4176 #if YYSTACKEXPANDABLE
4177 static void yyexpandGLRStack (yyGLRStack* yystackp);
4178 #endif
4179
4180 static _Noreturn void
4181 yyFail (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char* yymsg)
4182 {
4183 if (yymsg != YY_NULLPTR)
4184 yyerror (P, tokens, index, yymsg);
4185 YYLONGJMP (yystackp->yyexception_buffer, 1);
4186 }
4187
4188 static _Noreturn void
4189 yyMemoryExhausted (yyGLRStack* yystackp)
4190 {
4191 YYLONGJMP (yystackp->yyexception_buffer, 2);
4192 }
4193
4194 #if YYDEBUG || YYERROR_VERBOSE
4195 /** A printable representation of TOKEN. */
4196 static inline const char*
4197 yytokenName (yySymbol yytoken)
4198 {
4199 if (yytoken == YYEMPTY)
4200 return "";
4201
4202 return yytname[yytoken];
4203 }
4204 #endif
4205
4206 /** Fill in YYVSP[YYLOW1 .. YYLOW0-1] from the chain of states starting
4207 * at YYVSP[YYLOW0].yystate.yypred. Leaves YYVSP[YYLOW1].yystate.yypred
4208 * containing the pointer to the next state in the chain. */
4209 static void yyfillin (yyGLRStackItem *, int, int) YY_ATTRIBUTE_UNUSED;
4210 static void
4211 yyfillin (yyGLRStackItem *yyvsp, int yylow0, int yylow1)
4212 {
4213 int i;
4214 yyGLRState *s = yyvsp[yylow0].yystate.yypred;
4215 for (i = yylow0-1; i >= yylow1; i -= 1)
4216 {
4217 #if YYDEBUG
4218 yyvsp[i].yystate.yylrState = s->yylrState;
4219 #endif
4220 yyvsp[i].yystate.yyresolved = s->yyresolved;
4221 if (s->yyresolved)
4222 yyvsp[i].yystate.yysemantics.yysval = s->yysemantics.yysval;
4223 else
4224 /* The effect of using yysval or yyloc (in an immediate rule) is
4225 * undefined. */
4226 yyvsp[i].yystate.yysemantics.yyfirstVal = YY_NULLPTR;
4227 s = yyvsp[i].yystate.yypred = s->yypred;
4228 }
4229 }
4230
4231 /* Do nothing if YYNORMAL or if *YYLOW <= YYLOW1. Otherwise, fill in
4232 * YYVSP[YYLOW1 .. *YYLOW-1] as in yyfillin and set *YYLOW = YYLOW1.
4233 * For convenience, always return YYLOW1. */
4234 static inline int yyfill (yyGLRStackItem *, int *, int, yybool)
4235 YY_ATTRIBUTE_UNUSED;
4236 static inline int
4237 yyfill (yyGLRStackItem *yyvsp, int *yylow, int yylow1, yybool yynormal)
4238 {
4239 if (!yynormal && yylow1 < *yylow)
4240 {
4241 yyfillin (yyvsp, *yylow, yylow1);
4242 *yylow = yylow1;
4243 }
4244 return yylow1;
4245 }
4246
4247 /** Perform user action for rule number YYN, with RHS length YYRHSLEN,
4248 * and top stack item YYVSP. YYLVALP points to place to put semantic
4249 * value ($$), and yylocp points to place for location information
4250 * (@$). Returns yyok for normal return, yyaccept for YYACCEPT,
4251 * yyerr for YYERROR, yyabort for YYABORT. */
4252 static YYRESULTTAG
4253 yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp,
4254 yyGLRStack* yystackp,
4255 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
4256 {
4257 yybool yynormal YY_ATTRIBUTE_UNUSED = (yystackp->yysplitPoint == YY_NULLPTR);
4258 int yylow;
4259 YYUSE (yyvalp);
4260 YYUSE (P);
4261 YYUSE (tokens);
4262 YYUSE (index);
4263 YYUSE (yyrhslen);
4264 # undef yyerrok
4265 # define yyerrok (yystackp->yyerrState = 0)
4266 # undef YYACCEPT
4267 # define YYACCEPT return yyaccept
4268 # undef YYABORT
4269 # define YYABORT return yyabort
4270 # undef YYERROR
4271 # define YYERROR return yyerrok, yyerr
4272 # undef YYRECOVERING
4273 # define YYRECOVERING() (yystackp->yyerrState != 0)
4274 # undef yyclearin
4275 # define yyclearin (yychar = YYEMPTY)
4276 # undef YYFILL
4277 # define YYFILL(N) yyfill (yyvsp, &yylow, N, yynormal)
4278 # undef YYBACKUP
4279 # define YYBACKUP(Token, Value) \
4280 return yyerror (P, tokens, index, YY_("syntax error: cannot back up")), \
4281 yyerrok, yyerr
4282
4283 yylow = 1;
4284 if (yyrhslen == 0)
4285 *yyvalp = yyval_default;
4286 else
4287 *yyvalp = yyvsp[YYFILL (1-yyrhslen)].yystate.yysemantics.yysval;
4288 switch (yyn)
4289 {
4290 case 284:
4291 #line 452 "src/parser_proc_grammar.y" /* glr.c:817 */
4292 {
4293 if ((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4294 psi_cpp_exp_exec((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), P->preproc, PSI_DATA(P));
4295 psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4296 }
4297 }
4298 #line 4299 "src/parser_proc.c" /* glr.c:817 */
4299 break;
4300
4301 case 285:
4302 #line 458 "src/parser_proc_grammar.y" /* glr.c:817 */
4303 {
4304 char *libname = strdup((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text->val);
4305 P->file.libnames = psi_plist_add(P->file.libnames, &libname);
4306 }
4307 #line 4308 "src/parser_proc.c" /* glr.c:817 */
4308 break;
4309
4310 case 286:
4311 #line 462 "src/parser_proc_grammar.y" /* glr.c:817 */
4312 {
4313 psi_parser_proc_add_const(P, (*(struct psi_const **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4314 }
4315 #line 4316 "src/parser_proc.c" /* glr.c:817 */
4316 break;
4317
4318 case 287:
4319 #line 465 "src/parser_proc_grammar.y" /* glr.c:817 */
4320 {
4321 psi_parser_proc_add_decl(P, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4322 }
4323 #line 4324 "src/parser_proc.c" /* glr.c:817 */
4324 break;
4325
4326 case 288:
4327 #line 468 "src/parser_proc_grammar.y" /* glr.c:817 */
4328 {
4329 psi_parser_proc_add_decl_extvars(P, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4330 }
4331 #line 4332 "src/parser_proc.c" /* glr.c:817 */
4332 break;
4333
4334 case 289:
4335 #line 471 "src/parser_proc_grammar.y" /* glr.c:817 */
4336 {
4337 if (P->flags & PSI_DEBUG) {
4338 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);
4339 }
4340 psi_decl_free(&(*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4341 }
4342 #line 4343 "src/parser_proc.c" /* glr.c:817 */
4343 break;
4344
4345 case 290:
4346 #line 477 "src/parser_proc_grammar.y" /* glr.c:817 */
4347 {
4348 psi_parser_proc_add_typedef(P, (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4349 }
4350 #line 4351 "src/parser_proc.c" /* glr.c:817 */
4351 break;
4352
4353 case 291:
4354 #line 480 "src/parser_proc_grammar.y" /* glr.c:817 */
4355 {
4356 psi_parser_proc_add_struct(P, (*(struct psi_decl_struct **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4357 }
4358 #line 4359 "src/parser_proc.c" /* glr.c:817 */
4359 break;
4360
4361 case 292:
4362 #line 483 "src/parser_proc_grammar.y" /* glr.c:817 */
4363 {
4364 psi_parser_proc_add_union(P, (*(struct psi_decl_union **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4365 }
4366 #line 4367 "src/parser_proc.c" /* glr.c:817 */
4367 break;
4368
4369 case 293:
4370 #line 486 "src/parser_proc_grammar.y" /* glr.c:817 */
4371 {
4372 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4373 }
4374 #line 4375 "src/parser_proc.c" /* glr.c:817 */
4375 break;
4376
4377 case 294:
4378 #line 489 "src/parser_proc_grammar.y" /* glr.c:817 */
4379 {
4380 psi_parser_proc_add_impl(P, (*(struct psi_impl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4381 }
4382 #line 4383 "src/parser_proc.c" /* glr.c:817 */
4383 break;
4384
4385 case 295:
4386 #line 495 "src/parser_proc_grammar.y" /* glr.c:817 */
4387 {
4388 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4389 }
4390 #line 4391 "src/parser_proc.c" /* glr.c:817 */
4391 break;
4392
4393 case 296:
4394 #line 501 "src/parser_proc_grammar.y" /* glr.c:817 */
4395 {
4396 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
4397 }
4398 #line 4399 "src/parser_proc.c" /* glr.c:817 */
4399 break;
4400
4401 case 297:
4402 #line 504 "src/parser_proc_grammar.y" /* glr.c:817 */
4403 {
4404 (*(struct psi_cpp_exp **)(&(*yyvalp))) = (*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4405 }
4406 #line 4407 "src/parser_proc.c" /* glr.c:817 */
4407 break;
4408
4409 case 298:
4410 #line 510 "src/parser_proc_grammar.y" /* glr.c:817 */
4411 {
4412 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4413 struct psi_token *msg = NULL;
4414
4415 if (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0, &msg)) {
4416 size_t index = 1;
4417 struct psi_token *next;
4418
4419 msg = psi_token_copy(msg);
4420 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), index++, &next)) {
4421 struct psi_token *old = msg;
4422 msg = psi_token_cat(" ", 2, msg, next);
4423 psi_token_free(&old);
4424 }
4425 }
4426 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4427
4428 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, msg);
4429 } else {
4430 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, NULL);
4431 }
4432 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4433 }
4434 #line 4435 "src/parser_proc.c" /* glr.c:817 */
4435 break;
4436
4437 case 299:
4438 #line 533 "src/parser_proc_grammar.y" /* glr.c:817 */
4439 {
4440 (*(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))));
4441 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4442 }
4443 #line 4444 "src/parser_proc.c" /* glr.c:817 */
4444 break;
4445
4446 case 300:
4447 #line 537 "src/parser_proc_grammar.y" /* glr.c:817 */
4448 {
4449 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL);
4450 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4451 }
4452 #line 4453 "src/parser_proc.c" /* glr.c:817 */
4453 break;
4454
4455 case 301:
4456 #line 541 "src/parser_proc_grammar.y" /* glr.c:817 */
4457 {
4458 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4459 (*(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))));
4460 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4461 }
4462 #line 4463 "src/parser_proc.c" /* glr.c:817 */
4463 break;
4464
4465 case 302:
4466 #line 546 "src/parser_proc_grammar.y" /* glr.c:817 */
4467 {
4468 (*(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)));
4469 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4470 }
4471 #line 4472 "src/parser_proc.c" /* glr.c:817 */
4472 break;
4473
4474 case 303:
4475 #line 550 "src/parser_proc_grammar.y" /* glr.c:817 */
4476 {
4477 (*(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)));
4478 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4479 }
4480 #line 4481 "src/parser_proc.c" /* glr.c:817 */
4481 break;
4482
4483 case 304:
4484 #line 554 "src/parser_proc_grammar.y" /* glr.c:817 */
4485 {
4486 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL);
4487 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4488 }
4489 #line 4490 "src/parser_proc.c" /* glr.c:817 */
4490 break;
4491
4492 case 305:
4493 #line 558 "src/parser_proc_grammar.y" /* glr.c:817 */
4494 {
4495 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4496 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
4497 }
4498 #line 4499 "src/parser_proc.c" /* glr.c:817 */
4499 break;
4500
4501 case 322:
4502 #line 602 "src/parser_proc_grammar.y" /* glr.c:817 */
4503 {
4504 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4505 (*(struct psi_cpp_macro_decl **)(&(*yyvalp))) = psi_cpp_macro_decl_init(NULL, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), NULL);
4506 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4507 }
4508 #line 4509 "src/parser_proc.c" /* glr.c:817 */
4509 break;
4510
4511 case 323:
4512 #line 607 "src/parser_proc_grammar.y" /* glr.c:817 */
4513 {
4514 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4515 (*(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);
4516 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4517 }
4518 #line 4519 "src/parser_proc.c" /* glr.c:817 */
4519 break;
4520
4521 case 324:
4522 #line 612 "src/parser_proc_grammar.y" /* glr.c:817 */
4523 {
4524 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4525 (*(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)));
4526 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4527 }
4528 #line 4529 "src/parser_proc.c" /* glr.c:817 */
4529 break;
4530
4531 case 325:
4532 #line 617 "src/parser_proc_grammar.y" /* glr.c:817 */
4533 {
4534 struct psi_plist *list = psi_plist_init((psi_plist_dtor) psi_token_free);
4535 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4536 (*(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);
4537 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4538 }
4539 #line 4540 "src/parser_proc.c" /* glr.c:817 */
4540 break;
4541
4542 case 326:
4543 #line 626 "src/parser_proc_grammar.y" /* glr.c:817 */
4544 {
4545 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL);
4546 }
4547 #line 4548 "src/parser_proc.c" /* glr.c:817 */
4548 break;
4549
4550 case 327:
4551 #line 629 "src/parser_proc_grammar.y" /* glr.c:817 */
4552 {
4553 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL); /* FIXME */
4554 }
4555 #line 4556 "src/parser_proc.c" /* glr.c:817 */
4556 break;
4557
4558 case 329:
4559 #line 633 "src/parser_proc_grammar.y" /* glr.c:817 */
4560 {
4561 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4562 }
4563 #line 4564 "src/parser_proc.c" /* glr.c:817 */
4564 break;
4565
4566 case 330:
4567 #line 639 "src/parser_proc_grammar.y" /* glr.c:817 */
4568 {
4569 (*(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)));
4570 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4571 (*(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)));
4572 }
4573 #line 4574 "src/parser_proc.c" /* glr.c:817 */
4574 break;
4575
4576 case 331:
4577 #line 644 "src/parser_proc_grammar.y" /* glr.c:817 */
4578 {
4579 (*(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)));
4580 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4581 (*(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)));
4582 }
4583 #line 4584 "src/parser_proc.c" /* glr.c:817 */
4584 break;
4585
4586 case 332:
4587 #line 652 "src/parser_proc_grammar.y" /* glr.c:817 */
4588 {
4589 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4590 }
4591 #line 4592 "src/parser_proc.c" /* glr.c:817 */
4592 break;
4593
4594 case 334:
4595 #line 659 "src/parser_proc_grammar.y" /* glr.c:817 */
4596 {
4597 (*(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)));
4598 (*(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)));
4599 }
4600 #line 4601 "src/parser_proc.c" /* glr.c:817 */
4601 break;
4602
4603 case 335:
4604 #line 663 "src/parser_proc_grammar.y" /* glr.c:817 */
4605 {
4606 (*(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)));
4607 (*(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)));
4608 }
4609 #line 4610 "src/parser_proc.c" /* glr.c:817 */
4610 break;
4611
4612 case 336:
4613 #line 670 "src/parser_proc_grammar.y" /* glr.c:817 */
4614 {
4615 (*(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)));
4616 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4617 }
4618 #line 4619 "src/parser_proc.c" /* glr.c:817 */
4619 break;
4620
4621 case 337:
4622 #line 674 "src/parser_proc_grammar.y" /* glr.c:817 */
4623 {
4624 (*(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)));
4625 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4626 }
4627 #line 4628 "src/parser_proc.c" /* glr.c:817 */
4628 break;
4629
4630 case 338:
4631 #line 678 "src/parser_proc_grammar.y" /* glr.c:817 */
4632 {
4633 (*(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)));
4634 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4635 }
4636 #line 4637 "src/parser_proc.c" /* glr.c:817 */
4637 break;
4638
4639 case 339:
4640 #line 682 "src/parser_proc_grammar.y" /* glr.c:817 */
4641 {
4642 (*(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)));
4643 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4644 }
4645 #line 4646 "src/parser_proc.c" /* glr.c:817 */
4646 break;
4647
4648 case 340:
4649 #line 687 "src/parser_proc_grammar.y" /* glr.c:817 */
4650 {
4651 {
4652 uint8_t exists;
4653
4654 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4655 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4656 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8, &exists, 0));
4657 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4658 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4659 }
4660 }
4661 #line 4662 "src/parser_proc.c" /* glr.c:817 */
4662 break;
4663
4664 case 341:
4665 #line 698 "src/parser_proc_grammar.y" /* glr.c:817 */
4666 {
4667 {
4668 uint8_t exists;
4669
4670 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4671 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4672 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8, &exists, 0));
4673 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4674 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4675 }
4676 }
4677 #line 4678 "src/parser_proc.c" /* glr.c:817 */
4678 break;
4679
4680 case 342:
4681 #line 709 "src/parser_proc_grammar.y" /* glr.c:817 */
4682 {
4683 (*(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));
4684 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4685 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4686 }
4687 #line 4688 "src/parser_proc.c" /* glr.c:817 */
4688 break;
4689
4690 case 343:
4691 #line 714 "src/parser_proc_grammar.y" /* glr.c:817 */
4692 {
4693 (*(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));
4694 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4695 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4696 }
4697 #line 4698 "src/parser_proc.c" /* glr.c:817 */
4698 break;
4699
4700 case 344:
4701 #line 719 "src/parser_proc_grammar.y" /* glr.c:817 */
4702 {
4703 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4704 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4705 }
4706 #line 4707 "src/parser_proc.c" /* glr.c:817 */
4707 break;
4708
4709 case 345:
4710 #line 723 "src/parser_proc_grammar.y" /* glr.c:817 */
4711 {
4712 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4713 (*(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));
4714 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4715 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4716 }
4717 #line 4718 "src/parser_proc.c" /* glr.c:817 */
4718 break;
4719
4720 case 346:
4721 #line 729 "src/parser_proc_grammar.y" /* glr.c:817 */
4722 {
4723 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4724 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_FUNCTION,
4725 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));
4726 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4727 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4728 }
4729 #line 4730 "src/parser_proc.c" /* glr.c:817 */
4730 break;
4731
4732 case 347:
4733 #line 739 "src/parser_proc_grammar.y" /* glr.c:817 */
4734 {
4735 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4736 }
4737 #line 4738 "src/parser_proc.c" /* glr.c:817 */
4738 break;
4739
4740 case 349:
4741 #line 746 "src/parser_proc_grammar.y" /* glr.c:817 */
4742 {
4743 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_num_exp_free),
4744 &(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4745 }
4746 #line 4747 "src/parser_proc.c" /* glr.c:817 */
4747 break;
4748
4749 case 350:
4750 #line 750 "src/parser_proc_grammar.y" /* glr.c:817 */
4751 {
4752 (*(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)));
4753 }
4754 #line 4755 "src/parser_proc.c" /* glr.c:817 */
4755 break;
4756
4757 case 351:
4758 #line 756 "src/parser_proc_grammar.y" /* glr.c:817 */
4759 {
4760 (*(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)));
4761 (*(struct psi_const **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4762 }
4763 #line 4764 "src/parser_proc.c" /* glr.c:817 */
4764 break;
4765
4766 case 352:
4767 #line 763 "src/parser_proc_grammar.y" /* glr.c:817 */
4768 {
4769 (*(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);
4770 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4771 }
4772 #line 4773 "src/parser_proc.c" /* glr.c:817 */
4773 break;
4774
4775 case 353:
4776 #line 767 "src/parser_proc_grammar.y" /* glr.c:817 */
4777 {
4778 (*(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)));
4779 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4780 }
4781 #line 4782 "src/parser_proc.c" /* glr.c:817 */
4782 break;
4783
4784 case 354:
4785 #line 771 "src/parser_proc_grammar.y" /* glr.c:817 */
4786 {
4787 (*(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);
4788 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4789 }
4790 #line 4791 "src/parser_proc.c" /* glr.c:817 */
4791 break;
4792
4793 case 358:
4794 #line 784 "src/parser_proc_grammar.y" /* glr.c:817 */
4795 {
4796 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4797 }
4798 #line 4799 "src/parser_proc.c" /* glr.c:817 */
4799 break;
4800
4801 case 359:
4802 #line 798 "src/parser_proc_grammar.y" /* glr.c:817 */
4803 {
4804 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4805 }
4806 #line 4807 "src/parser_proc.c" /* glr.c:817 */
4807 break;
4808
4809 case 360:
4810 #line 804 "src/parser_proc_grammar.y" /* glr.c:817 */
4811 {
4812 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4813 }
4814 #line 4815 "src/parser_proc.c" /* glr.c:817 */
4815 break;
4816
4817 case 361:
4818 #line 807 "src/parser_proc_grammar.y" /* glr.c:817 */
4819 {
4820 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4821 }
4822 #line 4823 "src/parser_proc.c" /* glr.c:817 */
4823 break;
4824
4825 case 362:
4826 #line 813 "src/parser_proc_grammar.y" /* glr.c:817 */
4827 {
4828 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4829 }
4830 #line 4831 "src/parser_proc.c" /* glr.c:817 */
4831 break;
4832
4833 case 363:
4834 #line 816 "src/parser_proc_grammar.y" /* glr.c:817 */
4835 {
4836 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4837 }
4838 #line 4839 "src/parser_proc.c" /* glr.c:817 */
4839 break;
4840
4841 case 365:
4842 #line 823 "src/parser_proc_grammar.y" /* glr.c:817 */
4843 {
4844 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
4845 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
4846 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
4847 );
4848 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
4849 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4850 }
4851 #line 4852 "src/parser_proc.c" /* glr.c:817 */
4852 break;
4853
4854 case 366:
4855 #line 831 "src/parser_proc_grammar.y" /* glr.c:817 */
4856 {
4857 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4858 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
4859 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->name),
4860 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0, 0)
4861 );
4862 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4863 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->token);
4864 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4865 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4866 }
4867 #line 4868 "src/parser_proc.c" /* glr.c:817 */
4868 break;
4869
4870 case 367:
4871 #line 842 "src/parser_proc_grammar.y" /* glr.c:817 */
4872 {
4873 (*(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)));
4874 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
4875 (*(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)));
4876 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4877 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
4878 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
4879 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
4880 }
4881 #line 4882 "src/parser_proc.c" /* glr.c:817 */
4882 break;
4883
4884 case 368:
4885 #line 851 "src/parser_proc_grammar.y" /* glr.c:817 */
4886 {
4887 (*(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)));
4888 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
4889 (*(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)));
4890 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4891 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
4892 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
4893 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
4894 }
4895 #line 4896 "src/parser_proc.c" /* glr.c:817 */
4896 break;
4897
4898 case 370:
4899 #line 864 "src/parser_proc_grammar.y" /* glr.c:817 */
4900 {
4901 (*(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));
4902 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4903 }
4904 #line 4905 "src/parser_proc.c" /* glr.c:817 */
4905 break;
4906
4907 case 371:
4908 #line 868 "src/parser_proc_grammar.y" /* glr.c:817 */
4909 {
4910 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
4911 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->name),
4912 psi_decl_var_init(NULL, 0, 0)
4913 );
4914 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4915 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4916 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4917 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4918 }
4919 #line 4920 "src/parser_proc.c" /* glr.c:817 */
4920 break;
4921
4922 case 372:
4923 #line 878 "src/parser_proc_grammar.y" /* glr.c:817 */
4924 {
4925 (*(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));
4926 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4927 (*(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)));
4928 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4929 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
4930 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
4931 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
4932 }
4933 #line 4934 "src/parser_proc.c" /* glr.c:817 */
4934 break;
4935
4936 case 373:
4937 #line 887 "src/parser_proc_grammar.y" /* glr.c:817 */
4938 {
4939 (*(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));
4940 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4941 (*(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)));
4942 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4943 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
4944 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
4945 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
4946 }
4947 #line 4948 "src/parser_proc.c" /* glr.c:817 */
4948 break;
4949
4950 case 375:
4951 #line 900 "src/parser_proc_grammar.y" /* glr.c:817 */
4952 {
4953 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4954 }
4955 #line 4956 "src/parser_proc.c" /* glr.c:817 */
4956 break;
4957
4958 case 376:
4959 #line 903 "src/parser_proc_grammar.y" /* glr.c:817 */
4960 {
4961 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4962 }
4963 #line 4964 "src/parser_proc.c" /* glr.c:817 */
4964 break;
4965
4966 case 379:
4967 #line 914 "src/parser_proc_grammar.y" /* glr.c:817 */
4968 {
4969 (*(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);
4970 (*(struct psi_decl_type **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4971 }
4972 #line 4973 "src/parser_proc.c" /* glr.c:817 */
4973 break;
4974
4975 case 381:
4976 #line 922 "src/parser_proc_grammar.y" /* glr.c:817 */
4977 {
4978 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4979 (*(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);
4980 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4981 }
4982 #line 4983 "src/parser_proc.c" /* glr.c:817 */
4983 break;
4984
4985 case 382:
4986 #line 927 "src/parser_proc_grammar.y" /* glr.c:817 */
4987 {
4988 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4989 (*(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);
4990 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4991 }
4992 #line 4993 "src/parser_proc.c" /* glr.c:817 */
4993 break;
4994
4995 case 383:
4996 #line 932 "src/parser_proc_grammar.y" /* glr.c:817 */
4997 {
4998 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4999 (*(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);
5000 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5001 }
5002 #line 5003 "src/parser_proc.c" /* glr.c:817 */
5003 break;
5004
5005 case 386:
5006 #line 942 "src/parser_proc_grammar.y" /* glr.c:817 */
5007 {
5008 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5009 }
5010 #line 5011 "src/parser_proc.c" /* glr.c:817 */
5011 break;
5012
5013 case 387:
5014 #line 945 "src/parser_proc_grammar.y" /* glr.c:817 */
5015 {
5016 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5017 }
5018 #line 5019 "src/parser_proc.c" /* glr.c:817 */
5019 break;
5020
5021 case 388:
5022 #line 951 "src/parser_proc_grammar.y" /* glr.c:817 */
5023 {
5024 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5025 }
5026 #line 5027 "src/parser_proc.c" /* glr.c:817 */
5027 break;
5028
5029 case 389:
5030 #line 954 "src/parser_proc_grammar.y" /* glr.c:817 */
5031 {
5032 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5033 }
5034 #line 5035 "src/parser_proc.c" /* glr.c:817 */
5035 break;
5036
5037 case 390:
5038 #line 957 "src/parser_proc_grammar.y" /* glr.c:817 */
5039 {
5040 (*(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)));
5041 }
5042 #line 5043 "src/parser_proc.c" /* glr.c:817 */
5043 break;
5044
5045 case 393:
5046 #line 968 "src/parser_proc_grammar.y" /* glr.c:817 */
5047 {
5048 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5049 }
5050 #line 5051 "src/parser_proc.c" /* glr.c:817 */
5051 break;
5052
5053 case 394:
5054 #line 971 "src/parser_proc_grammar.y" /* glr.c:817 */
5055 {
5056 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5057 }
5058 #line 5059 "src/parser_proc.c" /* glr.c:817 */
5059 break;
5060
5061 case 395:
5062 #line 974 "src/parser_proc_grammar.y" /* glr.c:817 */
5063 {
5064 (*(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)));
5065 }
5066 #line 5067 "src/parser_proc.c" /* glr.c:817 */
5067 break;
5068
5069 case 396:
5070 #line 980 "src/parser_proc_grammar.y" /* glr.c:817 */
5071 {
5072 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5073 }
5074 #line 5075 "src/parser_proc.c" /* glr.c:817 */
5075 break;
5076
5077 case 397:
5078 #line 983 "src/parser_proc_grammar.y" /* glr.c:817 */
5079 {
5080 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5081 }
5082 #line 5083 "src/parser_proc.c" /* glr.c:817 */
5083 break;
5084
5085 case 398:
5086 #line 986 "src/parser_proc_grammar.y" /* glr.c:817 */
5087 {
5088 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5089 (*(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)));
5090 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5091 } else {
5092 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5093 }
5094 }
5095 #line 5096 "src/parser_proc.c" /* glr.c:817 */
5096 break;
5097
5098 case 399:
5099 #line 994 "src/parser_proc_grammar.y" /* glr.c:817 */
5100 {
5101 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5102 (*(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)));
5103 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5104 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5105 } else {
5106 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5107 }
5108 }
5109 #line 5110 "src/parser_proc.c" /* glr.c:817 */
5110 break;
5111
5112 case 400:
5113 #line 1006 "src/parser_proc_grammar.y" /* glr.c:817 */
5114 {
5115 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5116 }
5117 #line 5118 "src/parser_proc.c" /* glr.c:817 */
5118 break;
5119
5120 case 401:
5121 #line 1009 "src/parser_proc_grammar.y" /* glr.c:817 */
5122 {
5123 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5124 }
5125 #line 5126 "src/parser_proc.c" /* glr.c:817 */
5126 break;
5127
5128 case 402:
5129 #line 1012 "src/parser_proc_grammar.y" /* glr.c:817 */
5130 {
5131 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5132 }
5133 #line 5134 "src/parser_proc.c" /* glr.c:817 */
5134 break;
5135
5136 case 403:
5137 #line 1015 "src/parser_proc_grammar.y" /* glr.c:817 */
5138 {
5139 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5140 (*(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)));
5141 } else {
5142 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5143 }
5144 }
5145 #line 5146 "src/parser_proc.c" /* glr.c:817 */
5146 break;
5147
5148 case 404:
5149 #line 1022 "src/parser_proc_grammar.y" /* glr.c:817 */
5150 {
5151 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5152 }
5153 #line 5154 "src/parser_proc.c" /* glr.c:817 */
5154 break;
5155
5156 case 405:
5157 #line 1025 "src/parser_proc_grammar.y" /* glr.c:817 */
5158 {
5159 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5160 (*(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)));
5161 } else {
5162 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5163 }
5164 }
5165 #line 5166 "src/parser_proc.c" /* glr.c:817 */
5166 break;
5167
5168 case 406:
5169 #line 1035 "src/parser_proc_grammar.y" /* glr.c:817 */
5170 {
5171 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5172 }
5173 #line 5174 "src/parser_proc.c" /* glr.c:817 */
5174 break;
5175
5176 case 408:
5177 #line 1041 "src/parser_proc_grammar.y" /* glr.c:817 */
5178 {
5179 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5180 }
5181 #line 5182 "src/parser_proc.c" /* glr.c:817 */
5182 break;
5183
5184 case 412:
5185 #line 1050 "src/parser_proc_grammar.y" /* glr.c:817 */
5186 {
5187 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5188 }
5189 #line 5190 "src/parser_proc.c" /* glr.c:817 */
5190 break;
5191
5192 case 413:
5193 #line 1053 "src/parser_proc_grammar.y" /* glr.c:817 */
5194 {
5195 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5196 }
5197 #line 5198 "src/parser_proc.c" /* glr.c:817 */
5198 break;
5199
5200 case 414:
5201 #line 1056 "src/parser_proc_grammar.y" /* glr.c:817 */
5202 {
5203 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5204 (*(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)));
5205 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5206 } else {
5207 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5208 }
5209 }
5210 #line 5211 "src/parser_proc.c" /* glr.c:817 */
5211 break;
5212
5213 case 415:
5214 #line 1067 "src/parser_proc_grammar.y" /* glr.c:817 */
5215 {
5216 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5217 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5218 (*(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);
5219 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5220 }
5221 }
5222 #line 5223 "src/parser_proc.c" /* glr.c:817 */
5223 break;
5224
5225 case 416:
5226 #line 1074 "src/parser_proc_grammar.y" /* glr.c:817 */
5227 {
5228 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5229 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5230 (*(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);
5231 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5232 }
5233 }
5234 #line 5235 "src/parser_proc.c" /* glr.c:817 */
5235 break;
5236
5237 case 417:
5238 #line 1084 "src/parser_proc_grammar.y" /* glr.c:817 */
5239 {
5240 (*(struct psi_token **)(&(*yyvalp))) = NULL;
5241 }
5242 #line 5243 "src/parser_proc.c" /* glr.c:817 */
5243 break;
5244
5245 case 418:
5246 #line 1087 "src/parser_proc_grammar.y" /* glr.c:817 */
5247 {
5248 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5249 }
5250 #line 5251 "src/parser_proc.c" /* glr.c:817 */
5251 break;
5252
5253 case 419:
5254 #line 1093 "src/parser_proc_grammar.y" /* glr.c:817 */
5255 {
5256 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5257 }
5258 #line 5259 "src/parser_proc.c" /* glr.c:817 */
5259 break;
5260
5261 case 420:
5262 #line 1096 "src/parser_proc_grammar.y" /* glr.c:817 */
5263 {
5264 (*(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)));
5265 psi_token_free(&(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5266 }
5267 #line 5268 "src/parser_proc.c" /* glr.c:817 */
5268 break;
5269
5270 case 421:
5271 #line 1103 "src/parser_proc_grammar.y" /* glr.c:817 */
5272 {
5273 struct psi_plist *list = psi_plist_init((psi_plist_dtor) psi_decl_extvar_free);
5274
5275 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5276 size_t i = 0;
5277 struct psi_decl_var *var;
5278
5279 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &var)) {
5280 if (psi_decl_extvar_is_blacklisted(var->name->val)) {
5281 psi_decl_var_free(&var);
5282 } else {
5283 struct psi_decl_extvar *evar = psi_decl_extvar_init(
5284 psi_decl_arg_init(psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type), var));
5285 list = psi_plist_add(list, &evar);
5286 }
5287 }
5288 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5289 }
5290
5291 if (psi_decl_extvar_is_blacklisted((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->var->name->val)) {
5292 psi_decl_arg_free(&(*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5293 } else {
5294 struct psi_decl_extvar *evar = psi_decl_extvar_init((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5295 list = psi_plist_add(list, &evar);
5296 }
5297
5298 (*(struct psi_plist **)(&(*yyvalp))) = list;
5299 }
5300 #line 5301 "src/parser_proc.c" /* glr.c:817 */
5301 break;
5302
5303 case 422:
5304 #line 1134 "src/parser_proc_grammar.y" /* glr.c:817 */
5305 {
5306 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5307 }
5308 #line 5309 "src/parser_proc.c" /* glr.c:817 */
5309 break;
5310
5311 case 423:
5312 #line 1137 "src/parser_proc_grammar.y" /* glr.c:817 */
5313 {
5314 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5315 }
5316 #line 5317 "src/parser_proc.c" /* glr.c:817 */
5317 break;
5318
5319 case 424:
5320 #line 1143 "src/parser_proc_grammar.y" /* glr.c:817 */
5321 {
5322 (*(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)));
5323 }
5324 #line 5325 "src/parser_proc.c" /* glr.c:817 */
5325 break;
5326
5327 case 425:
5328 #line 1146 "src/parser_proc_grammar.y" /* glr.c:817 */
5329 {
5330 (*(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)));
5331 }
5332 #line 5333 "src/parser_proc.c" /* glr.c:817 */
5333 break;
5334
5335 case 426:
5336 #line 1152 "src/parser_proc_grammar.y" /* glr.c:817 */
5337 {
5338 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5339 }
5340 #line 5341 "src/parser_proc.c" /* glr.c:817 */
5341 break;
5342
5343 case 439:
5344 #line 1182 "src/parser_proc_grammar.y" /* glr.c:817 */
5345 {
5346 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5347 (*(struct psi_decl **)(&(*yyvalp)))->abi = psi_decl_abi_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
5348 }
5349 #line 5350 "src/parser_proc.c" /* glr.c:817 */
5350 break;
5351
5352 case 442:
5353 #line 1194 "src/parser_proc_grammar.y" /* glr.c:817 */
5354 {
5355 (*(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)));
5356 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5357 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5358 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5359 }
5360 }
5361 #line 5362 "src/parser_proc.c" /* glr.c:817 */
5362 break;
5363
5364 case 443:
5365 #line 1201 "src/parser_proc_grammar.y" /* glr.c:817 */
5366 {
5367 (*(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)));
5368 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
5369 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5370 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5371 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5372 }
5373 }
5374 #line 5375 "src/parser_proc.c" /* glr.c:817 */
5375 break;
5376
5377 case 444:
5378 #line 1212 "src/parser_proc_grammar.y" /* glr.c:817 */
5379 {
5380 (*(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)));
5381 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5382 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5383 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5384 }
5385 }
5386 #line 5387 "src/parser_proc.c" /* glr.c:817 */
5387 break;
5388
5389 case 445:
5390 #line 1219 "src/parser_proc_grammar.y" /* glr.c:817 */
5391 {
5392 (*(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)));
5393 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
5394 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5395 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5396 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5397 }
5398 }
5399 #line 5400 "src/parser_proc.c" /* glr.c:817 */
5400 break;
5401
5402 case 446:
5403 #line 1227 "src/parser_proc_grammar.y" /* glr.c:817 */
5404 {
5405 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval));
5406 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5407
5408 struct psi_token *type_token = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval))), 1, "rval");
5409 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));
5410 struct psi_decl *rval_decl = psi_decl_init(rval_func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5411
5412 rval_func->var->token = psi_token_copy(type_token);
5413 rval_func->token = psi_token_copy(type_token);
5414 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5415 rval_func->var->pointer_level += 1;
5416 rval_func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5417 }
5418
5419 struct psi_decl_type *type = psi_decl_type_init(PSI_T_FUNCTION, type_token->text);
5420 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));
5421
5422 type->real.func = rval_decl;
5423 func->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval)));
5424 func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval)));
5425
5426 (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init(func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
5427 }
5428 #line 5429 "src/parser_proc.c" /* glr.c:817 */
5429 break;
5430
5431 case 447:
5432 #line 1251 "src/parser_proc_grammar.y" /* glr.c:817 */
5433 {
5434 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-12)].yystate.yysemantics.yysval));
5435 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval));
5436 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5437
5438 struct psi_token *type_token = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval))), 1, "rval");
5439 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));
5440 struct psi_decl *rval_decl = psi_decl_init(rval_func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5441
5442 rval_func->var->token = psi_token_copy(type_token);
5443 rval_func->token = psi_token_copy(type_token);
5444 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5445 rval_func->var->pointer_level += 1;
5446 rval_func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5447 }
5448
5449 struct psi_decl_type *type = psi_decl_type_init(PSI_T_FUNCTION, type_token->text);
5450 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));
5451
5452 type->real.func = rval_decl;
5453 func->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval)));
5454 func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval)));
5455 type->token = type_token;
5456
5457 (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init(func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
5458 }
5459 #line 5460 "src/parser_proc.c" /* glr.c:817 */
5460 break;
5461
5462 case 448:
5463 #line 1280 "src/parser_proc_grammar.y" /* glr.c:817 */
5464 {
5465 (*(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)));
5466 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5467 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5468 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5469 }
5470 }
5471 #line 5472 "src/parser_proc.c" /* glr.c:817 */
5472 break;
5473
5474 case 449:
5475 #line 1287 "src/parser_proc_grammar.y" /* glr.c:817 */
5476 {
5477 (*(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)));
5478 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
5479 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5480 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
5481 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5482 }
5483 }
5484 #line 5485 "src/parser_proc.c" /* glr.c:817 */
5485 break;
5486
5487 case 450:
5488 #line 1298 "src/parser_proc_grammar.y" /* glr.c:817 */
5489 {
5490 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5491 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5492 (*(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));
5493 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5494 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5495 }
5496 #line 5497 "src/parser_proc.c" /* glr.c:817 */
5497 break;
5498
5499 case 451:
5500 #line 1344 "src/parser_proc_grammar.y" /* glr.c:817 */
5501 {
5502 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5503 (*(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));
5504 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5505 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5506 }
5507 #line 5508 "src/parser_proc.c" /* glr.c:817 */
5508 break;
5509
5510 case 453:
5511 #line 1400 "src/parser_proc_grammar.y" /* glr.c:817 */
5512 {
5513 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5514 }
5515 #line 5516 "src/parser_proc.c" /* glr.c:817 */
5516 break;
5517
5518 case 454:
5519 #line 1403 "src/parser_proc_grammar.y" /* glr.c:817 */
5520 {
5521 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5522 }
5523 #line 5524 "src/parser_proc.c" /* glr.c:817 */
5524 break;
5525
5526 case 455:
5527 #line 1406 "src/parser_proc_grammar.y" /* glr.c:817 */
5528 {
5529 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5530 }
5531 #line 5532 "src/parser_proc.c" /* glr.c:817 */
5532 break;
5533
5534 case 456:
5535 #line 1412 "src/parser_proc_grammar.y" /* glr.c:817 */
5536 {
5537 (*(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)));
5538 }
5539 #line 5540 "src/parser_proc.c" /* glr.c:817 */
5540 break;
5541
5542 case 457:
5543 #line 1415 "src/parser_proc_grammar.y" /* glr.c:817 */
5544 {
5545 (*(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)));
5546 }
5547 #line 5548 "src/parser_proc.c" /* glr.c:817 */
5548 break;
5549
5550 case 458:
5551 #line 1421 "src/parser_proc_grammar.y" /* glr.c:817 */
5552 {
5553 char digest[17];
5554 struct psi_token *name;
5555
5556 psi_token_hash((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token, digest);
5557 name = psi_token_append("@", psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token), 2, "funct", digest);
5558
5559 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5560 psi_decl_type_init(PSI_T_FUNCTION, name->text),
5561 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
5562 );
5563 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = name;
5564 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
5565 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5566 }
5567 #line 5568 "src/parser_proc.c" /* glr.c:817 */
5568 break;
5569
5570 case 459:
5571 #line 1436 "src/parser_proc_grammar.y" /* glr.c:817 */
5572 {
5573 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5574 }
5575 #line 5576 "src/parser_proc.c" /* glr.c:817 */
5576 break;
5577
5578 case 460:
5579 #line 1439 "src/parser_proc_grammar.y" /* glr.c:817 */
5580 {
5581 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5582 (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)),
5583 psi_decl_var_init(NULL, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0)
5584 );
5585 }
5586 #line 5587 "src/parser_proc.c" /* glr.c:817 */
5587 break;
5588
5589 case 461:
5590 #line 1468 "src/parser_proc_grammar.y" /* glr.c:817 */
5591 {
5592 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
5593 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
5594 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
5595 );
5596 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
5597 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5598 }
5599 #line 5600 "src/parser_proc.c" /* glr.c:817 */
5600 break;
5601
5602 case 462:
5603 #line 1476 "src/parser_proc_grammar.y" /* glr.c:817 */
5604 {
5605 (*(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)));
5606 }
5607 #line 5608 "src/parser_proc.c" /* glr.c:817 */
5608 break;
5609
5610 case 463:
5611 #line 1504 "src/parser_proc_grammar.y" /* glr.c:817 */
5612 {
5613 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5614 (*(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)));
5615 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5616 }
5617 #line 5618 "src/parser_proc.c" /* glr.c:817 */
5618 break;
5619
5620 case 464:
5621 #line 1509 "src/parser_proc_grammar.y" /* glr.c:817 */
5622 {
5623 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5624 (*(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)));
5625 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5626 }
5627 #line 5628 "src/parser_proc.c" /* glr.c:817 */
5628 break;
5629
5630 case 465:
5631 #line 1517 "src/parser_proc_grammar.y" /* glr.c:817 */
5632 {
5633 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5634 (*(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)));
5635 (*(struct psi_decl_union **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
5636 (*(struct psi_decl_union **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
5637 (*(struct psi_decl_union **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5638 }
5639 #line 5640 "src/parser_proc.c" /* glr.c:817 */
5640 break;
5641
5642 case 466:
5643 #line 1527 "src/parser_proc_grammar.y" /* glr.c:817 */
5644 {
5645 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5646 (*(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)));
5647 (*(struct psi_decl_struct **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
5648 (*(struct psi_decl_struct **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
5649 (*(struct psi_decl_struct **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5650 }
5651 #line 5652 "src/parser_proc.c" /* glr.c:817 */
5652 break;
5653
5654 case 467:
5655 #line 1537 "src/parser_proc_grammar.y" /* glr.c:817 */
5656 {
5657 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5658 }
5659 #line 5660 "src/parser_proc.c" /* glr.c:817 */
5660 break;
5661
5662 case 469:
5663 #line 1544 "src/parser_proc_grammar.y" /* glr.c:817 */
5664 {
5665 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5666 }
5667 #line 5668 "src/parser_proc.c" /* glr.c:817 */
5668 break;
5669
5670 case 470:
5671 #line 1550 "src/parser_proc_grammar.y" /* glr.c:817 */
5672 {
5673 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5674 (*(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)));
5675 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5676 size_t i = 0;
5677 struct psi_decl_arg *arg;
5678
5679 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
5680 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
5681 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
5682 }
5683 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5684 }
5685 }
5686 #line 5687 "src/parser_proc.c" /* glr.c:817 */
5687 break;
5688
5689 case 471:
5690 #line 1564 "src/parser_proc_grammar.y" /* glr.c:817 */
5691 {
5692 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5693 (*(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)));
5694 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
5695 size_t i = 0;
5696 struct psi_decl_arg *arg;
5697
5698 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
5699 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
5700 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
5701 }
5702 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5703 }
5704 }
5705 #line 5706 "src/parser_proc.c" /* glr.c:817 */
5706 break;
5707
5708 case 472:
5709 #line 1581 "src/parser_proc_grammar.y" /* glr.c:817 */
5710 {
5711 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5712 }
5713 #line 5714 "src/parser_proc.c" /* glr.c:817 */
5714 break;
5715
5716 case 473:
5717 #line 1584 "src/parser_proc_grammar.y" /* glr.c:817 */
5718 {
5719 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5720 }
5721 #line 5722 "src/parser_proc.c" /* glr.c:817 */
5722 break;
5723
5724 case 474:
5725 #line 1590 "src/parser_proc_grammar.y" /* glr.c:817 */
5726 {
5727 {
5728 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5729 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5730 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &arg);
5731 }
5732 }
5733 #line 5734 "src/parser_proc.c" /* glr.c:817 */
5734 break;
5735
5736 case 475:
5737 #line 1597 "src/parser_proc_grammar.y" /* glr.c:817 */
5738 {
5739 {
5740 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5741 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5742 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), &arg);
5743 }
5744 }
5745 #line 5746 "src/parser_proc.c" /* glr.c:817 */
5746 break;
5747
5748 case 476:
5749 #line 1607 "src/parser_proc_grammar.y" /* glr.c:817 */
5750 {
5751 (*(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)));
5752 (*(struct psi_decl_enum **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval));
5753 }
5754 #line 5755 "src/parser_proc.c" /* glr.c:817 */
5755 break;
5756
5757 case 477:
5758 #line 1614 "src/parser_proc_grammar.y" /* glr.c:817 */
5759 {
5760 (*(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)));
5761 }
5762 #line 5763 "src/parser_proc.c" /* glr.c:817 */
5763 break;
5764
5765 case 478:
5766 #line 1617 "src/parser_proc_grammar.y" /* glr.c:817 */
5767 {
5768 (*(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)));
5769 }
5770 #line 5771 "src/parser_proc.c" /* glr.c:817 */
5771 break;
5772
5773 case 479:
5774 #line 1623 "src/parser_proc_grammar.y" /* glr.c:817 */
5775 {
5776 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5777 (*(struct psi_decl_enum_item **)(&(*yyvalp))) = psi_decl_enum_item_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, NULL);
5778 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5779 }
5780 #line 5781 "src/parser_proc.c" /* glr.c:817 */
5781 break;
5782
5783 case 480:
5784 #line 1628 "src/parser_proc_grammar.y" /* glr.c:817 */
5785 {
5786 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5787 (*(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)));
5788 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5789 }
5790 #line 5791 "src/parser_proc.c" /* glr.c:817 */
5791 break;
5792
5793 case 481:
5794 #line 1636 "src/parser_proc_grammar.y" /* glr.c:817 */
5795 {
5796 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5797 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
5798 }
5799 #line 5800 "src/parser_proc.c" /* glr.c:817 */
5800 break;
5801
5802 case 482:
5803 #line 1640 "src/parser_proc_grammar.y" /* glr.c:817 */
5804 {
5805 (*(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)));
5806 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->token);
5807 }
5808 #line 5809 "src/parser_proc.c" /* glr.c:817 */
5809 break;
5810
5811 case 483:
5812 #line 1644 "src/parser_proc_grammar.y" /* glr.c:817 */
5813 {
5814 (*(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)));
5815 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5816 }
5817 #line 5818 "src/parser_proc.c" /* glr.c:817 */
5818 break;
5819
5820 case 484:
5821 #line 1648 "src/parser_proc_grammar.y" /* glr.c:817 */
5822 {
5823 (*(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)));
5824 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5825 }
5826 #line 5827 "src/parser_proc.c" /* glr.c:817 */
5827 break;
5828
5829 case 485:
5830 #line 1652 "src/parser_proc_grammar.y" /* glr.c:817 */
5831 {
5832 (*(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)));
5833 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5834 }
5835 #line 5836 "src/parser_proc.c" /* glr.c:817 */
5836 break;
5837
5838 case 486:
5839 #line 1656 "src/parser_proc_grammar.y" /* glr.c:817 */
5840 {
5841 (*(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)));
5842 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5843 }
5844 #line 5845 "src/parser_proc.c" /* glr.c:817 */
5845 break;
5846
5847 case 487:
5848 #line 1663 "src/parser_proc_grammar.y" /* glr.c:817 */
5849 {
5850 (*(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);
5851 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5852 }
5853 #line 5854 "src/parser_proc.c" /* glr.c:817 */
5854 break;
5855
5856 case 488:
5857 #line 1667 "src/parser_proc_grammar.y" /* glr.c:817 */
5858 {
5859 (*(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);
5860 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5861 }
5862 #line 5863 "src/parser_proc.c" /* glr.c:817 */
5863 break;
5864
5865 case 489:
5866 #line 1671 "src/parser_proc_grammar.y" /* glr.c:817 */
5867 {
5868 (*(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);
5869 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5870 }
5871 #line 5872 "src/parser_proc.c" /* glr.c:817 */
5872 break;
5873
5874 case 490:
5875 #line 1675 "src/parser_proc_grammar.y" /* glr.c:817 */
5876 {
5877 (*(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);
5878 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5879 }
5880 #line 5881 "src/parser_proc.c" /* glr.c:817 */
5881 break;
5882
5883 case 491:
5884 #line 1679 "src/parser_proc_grammar.y" /* glr.c:817 */
5885 {
5886 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_NAME, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0);
5887 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
5888 }
5889 #line 5890 "src/parser_proc.c" /* glr.c:817 */
5890 break;
5891
5892 case 492:
5893 #line 1683 "src/parser_proc_grammar.y" /* glr.c:817 */
5894 {
5895 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5896 }
5897 #line 5898 "src/parser_proc.c" /* glr.c:817 */
5898 break;
5899
5900 case 493:
5901 #line 1689 "src/parser_proc_grammar.y" /* glr.c:817 */
5902 {
5903 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5904 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5905 }
5906 #line 5907 "src/parser_proc.c" /* glr.c:817 */
5907 break;
5908
5909 case 494:
5910 #line 1693 "src/parser_proc_grammar.y" /* glr.c:817 */
5911 {
5912 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5913 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5914 }
5915 #line 5916 "src/parser_proc.c" /* glr.c:817 */
5916 break;
5917
5918 case 495:
5919 #line 1700 "src/parser_proc_grammar.y" /* glr.c:817 */
5920 {
5921 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5922 }
5923 #line 5924 "src/parser_proc.c" /* glr.c:817 */
5924 break;
5925
5926 case 496:
5927 #line 1703 "src/parser_proc_grammar.y" /* glr.c:817 */
5928 {
5929 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5930 int8_t sizeof_void_p = sizeof(void *);
5931 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0);
5932 psi_decl_type_free(&(*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5933 } else {
5934 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_SIZEOF, (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), 0);
5935 }
5936 }
5937 #line 5938 "src/parser_proc.c" /* glr.c:817 */
5938 break;
5939
5940 case 497:
5941 #line 1715 "src/parser_proc_grammar.y" /* glr.c:817 */
5942 {
5943 int8_t sizeof_void_p = sizeof(void *);
5944 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0);
5945 }
5946 #line 5947 "src/parser_proc.c" /* glr.c:817 */
5947 break;
5948
5949 case 498:
5950 #line 1719 "src/parser_proc_grammar.y" /* glr.c:817 */
5951 {
5952 int8_t sizeof_a = sizeof('a');
5953 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_a, 0);
5954 }
5955 #line 5956 "src/parser_proc.c" /* glr.c:817 */
5956 break;
5957
5958 case 499:
5959 #line 1723 "src/parser_proc_grammar.y" /* glr.c:817 */
5960 {
5961 uint64_t len = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text->len + 1;
5962 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_UINT64, &len, 0);
5963 }
5964 #line 5965 "src/parser_proc.c" /* glr.c:817 */
5965 break;
5966
5967 case 500:
5968 #line 1730 "src/parser_proc_grammar.y" /* glr.c:817 */
5969 {
5970 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5971 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5972 } else {
5973 char digest[17];
5974
5975 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
5976 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
5977 }
5978 }
5979 #line 5980 "src/parser_proc.c" /* glr.c:817 */
5980 break;
5981
5982 case 501:
5983 #line 1743 "src/parser_proc_grammar.y" /* glr.c:817 */
5984 {
5985 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
5986 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5987 } else {
5988 char digest[17];
5989
5990 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
5991 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
5992 }
5993 }
5994 #line 5995 "src/parser_proc.c" /* glr.c:817 */
5995 break;
5996
5997 case 502:
5998 #line 1756 "src/parser_proc_grammar.y" /* glr.c:817 */
5999 {
6000 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
6001 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6002 } else {
6003 char digest[17];
6004
6005 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
6006 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
6007 }
6008 }
6009 #line 6010 "src/parser_proc.c" /* glr.c:817 */
6010 break;
6011
6012 case 503:
6013 #line 1769 "src/parser_proc_grammar.y" /* glr.c:817 */
6014 {
6015 (*(struct psi_token **)(&(*yyvalp))) = NULL;
6016 }
6017 #line 6018 "src/parser_proc.c" /* glr.c:817 */
6018 break;
6019
6020 case 504:
6021 #line 1772 "src/parser_proc_grammar.y" /* glr.c:817 */
6022 {
6023 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6024 (*(struct psi_token **)(&(*yyvalp)))->type = PSI_T_NAME;
6025 }
6026 #line 6027 "src/parser_proc.c" /* glr.c:817 */
6027 break;
6028
6029 case 507:
6030 #line 1784 "src/parser_proc_grammar.y" /* glr.c:817 */
6031 {
6032 (*(struct psi_layout **)(&(*yyvalp))) = NULL;
6033 }
6034 #line 6035 "src/parser_proc.c" /* glr.c:817 */
6035 break;
6036
6037 case 508:
6038 #line 1787 "src/parser_proc_grammar.y" /* glr.c:817 */
6039 {
6040 (*(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));
6041 }
6042 #line 6043 "src/parser_proc.c" /* glr.c:817 */
6043 break;
6044
6045 case 509:
6046 #line 1790 "src/parser_proc_grammar.y" /* glr.c:817 */
6047 {
6048 (*(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);
6049 }
6050 #line 6051 "src/parser_proc.c" /* glr.c:817 */
6051 break;
6052
6053 case 510:
6054 #line 1793 "src/parser_proc_grammar.y" /* glr.c:817 */
6055 {
6056 (*(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));
6057 }
6058 #line 6059 "src/parser_proc.c" /* glr.c:817 */
6059 break;
6060
6061 case 511:
6062 #line 1799 "src/parser_proc_grammar.y" /* glr.c:817 */
6063 {
6064 (*(struct psi_layout*)(&(*yyvalp))).pos = 0;
6065 (*(struct psi_layout*)(&(*yyvalp))).len = 0;
6066 }
6067 #line 6068 "src/parser_proc.c" /* glr.c:817 */
6068 break;
6069
6070 case 512:
6071 #line 1803 "src/parser_proc_grammar.y" /* glr.c:817 */
6072 {
6073 (*(struct psi_layout*)(&(*yyvalp))).pos = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text->val);
6074 (*(struct psi_layout*)(&(*yyvalp))).len = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text->val);
6075 }
6076 #line 6077 "src/parser_proc.c" /* glr.c:817 */
6077 break;
6078
6079 case 513:
6080 #line 1810 "src/parser_proc_grammar.y" /* glr.c:817 */
6081 {
6082 (*(size_t*)(&(*yyvalp))) = 0;
6083 }
6084 #line 6085 "src/parser_proc.c" /* glr.c:817 */
6085 break;
6086
6087 case 514:
6088 #line 1813 "src/parser_proc_grammar.y" /* glr.c:817 */
6089 {
6090 (*(size_t*)(&(*yyvalp))) = 0;
6091 }
6092 #line 6093 "src/parser_proc.c" /* glr.c:817 */
6093 break;
6094
6095 case 515:
6096 #line 1816 "src/parser_proc_grammar.y" /* glr.c:817 */
6097 {
6098 struct psi_validate_scope scope = {0};
6099 psi_validate_scope_ctor(&scope);
6100 scope.defs = &P->preproc->defs;
6101 if (psi_num_exp_validate(PSI_DATA(P), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), &scope)) {
6102 (*(size_t*)(&(*yyvalp))) = psi_num_exp_get_long((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), NULL, &P->preproc->defs);
6103 } else {
6104 (*(size_t*)(&(*yyvalp))) = 0;
6105 }
6106 psi_num_exp_free(&(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6107 psi_validate_scope_dtor(&scope);
6108 }
6109 #line 6110 "src/parser_proc.c" /* glr.c:817 */
6110 break;
6111
6112 case 520:
6113 #line 1838 "src/parser_proc_grammar.y" /* glr.c:817 */
6114 {
6115 (*(size_t*)(&(*yyvalp))) = 0;
6116 }
6117 #line 6118 "src/parser_proc.c" /* glr.c:817 */
6118 break;
6119
6120 case 521:
6121 #line 1841 "src/parser_proc_grammar.y" /* glr.c:817 */
6122 {
6123 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6124 }
6125 #line 6126 "src/parser_proc.c" /* glr.c:817 */
6126 break;
6127
6128 case 523:
6129 #line 1848 "src/parser_proc_grammar.y" /* glr.c:817 */
6130 {
6131 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
6132 }
6133 #line 6134 "src/parser_proc.c" /* glr.c:817 */
6134 break;
6135
6136 case 524:
6137 #line 1854 "src/parser_proc_grammar.y" /* glr.c:817 */
6138 {
6139 (*(size_t*)(&(*yyvalp))) = 1;
6140 }
6141 #line 6142 "src/parser_proc.c" /* glr.c:817 */
6142 break;
6143
6144 case 525:
6145 #line 1857 "src/parser_proc_grammar.y" /* glr.c:817 */
6146 {
6147 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)) + 1;
6148 }
6149 #line 6150 "src/parser_proc.c" /* glr.c:817 */
6150 break;
6151
6152 case 530:
6153 #line 1879 "src/parser_proc_grammar.y" /* glr.c:817 */
6154 {
6155 (*(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)));
6156 }
6157 #line 6158 "src/parser_proc.c" /* glr.c:817 */
6158 break;
6159
6160 case 531:
6161 #line 1882 "src/parser_proc_grammar.y" /* glr.c:817 */
6162 {
6163 (*(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)));
6164 (*(struct psi_impl_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->static_memory = 1;
6165 }
6166 #line 6167 "src/parser_proc.c" /* glr.c:817 */
6167 break;
6168
6169 case 532:
6170 #line 1889 "src/parser_proc_grammar.y" /* glr.c:817 */
6171 {
6172 (*(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)));
6173 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
6174 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval));
6175 }
6176 #line 6177 "src/parser_proc.c" /* glr.c:817 */
6177 break;
6178
6179 case 533:
6180 #line 1894 "src/parser_proc_grammar.y" /* glr.c:817 */
6181 {
6182 (*(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)));
6183 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6184 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval));
6185 }
6186 #line 6187 "src/parser_proc.c" /* glr.c:817 */
6187 break;
6188
6189 case 534:
6190 #line 1899 "src/parser_proc_grammar.y" /* glr.c:817 */
6191 {
6192 (*(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)));
6193 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval)));
6194 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-11)].yystate.yysemantics.yysval));
6195 (*(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);
6196 (*(struct psi_impl_func **)(&(*yyvalp)))->vararg->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
6197 }
6198 #line 6199 "src/parser_proc.c" /* glr.c:817 */
6199 break;
6200
6201 case 535:
6202 #line 1909 "src/parser_proc_grammar.y" /* glr.c:817 */
6203 {
6204 (*(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)));
6205 }
6206 #line 6207 "src/parser_proc.c" /* glr.c:817 */
6207 break;
6208
6209 case 536:
6210 #line 1912 "src/parser_proc_grammar.y" /* glr.c:817 */
6211 {
6212 (*(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)));
6213 }
6214 #line 6215 "src/parser_proc.c" /* glr.c:817 */
6215 break;
6216
6217 case 537:
6218 #line 1918 "src/parser_proc_grammar.y" /* glr.c:817 */
6219 {
6220 (*(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);
6221 }
6222 #line 6223 "src/parser_proc.c" /* glr.c:817 */
6223 break;
6224
6225 case 538:
6226 #line 1921 "src/parser_proc_grammar.y" /* glr.c:817 */
6227 {
6228 (*(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)));
6229 }
6230 #line 6231 "src/parser_proc.c" /* glr.c:817 */
6231 break;
6232
6233 case 539:
6234 #line 1927 "src/parser_proc_grammar.y" /* glr.c:817 */
6235 {
6236 (*(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)));
6237 (*(struct psi_impl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6238 }
6239 #line 6240 "src/parser_proc.c" /* glr.c:817 */
6240 break;
6241
6242 case 540:
6243 #line 1934 "src/parser_proc_grammar.y" /* glr.c:817 */
6244 {
6245 (*(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);
6246 (*(struct psi_impl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6247 }
6248 #line 6249 "src/parser_proc.c" /* glr.c:817 */
6249 break;
6250
6251 case 541:
6252 #line 1941 "src/parser_proc_grammar.y" /* glr.c:817 */
6253 {
6254 (*(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);
6255 (*(struct psi_impl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6256 }
6257 #line 6258 "src/parser_proc.c" /* glr.c:817 */
6258 break;
6259
6260 case 553:
6261 #line 1968 "src/parser_proc_grammar.y" /* glr.c:817 */
6262 {
6263 (*(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)));
6264 }
6265 #line 6266 "src/parser_proc.c" /* glr.c:817 */
6266 break;
6267
6268 case 554:
6269 #line 1971 "src/parser_proc_grammar.y" /* glr.c:817 */
6270 {
6271 (*(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)));
6272 }
6273 #line 6274 "src/parser_proc.c" /* glr.c:817 */
6274 break;
6275
6276 case 555:
6277 #line 1977 "src/parser_proc_grammar.y" /* glr.c:817 */
6278 {
6279 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_return_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6280 }
6281 #line 6282 "src/parser_proc.c" /* glr.c:817 */
6282 break;
6283
6284 case 556:
6285 #line 1980 "src/parser_proc_grammar.y" /* glr.c:817 */
6286 {
6287 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_let_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6288 }
6289 #line 6290 "src/parser_proc.c" /* glr.c:817 */
6290 break;
6291
6292 case 557:
6293 #line 1983 "src/parser_proc_grammar.y" /* glr.c:817 */
6294 {
6295 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_set_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6296 }
6297 #line 6298 "src/parser_proc.c" /* glr.c:817 */
6298 break;
6299
6300 case 558:
6301 #line 1986 "src/parser_proc_grammar.y" /* glr.c:817 */
6302 {
6303 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_assert_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6304 }
6305 #line 6306 "src/parser_proc.c" /* glr.c:817 */
6306 break;
6307
6308 case 559:
6309 #line 1989 "src/parser_proc_grammar.y" /* glr.c:817 */
6310 {
6311 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_free_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6312 }
6313 #line 6314 "src/parser_proc.c" /* glr.c:817 */
6314 break;
6315
6316 case 560:
6317 #line 1995 "src/parser_proc_grammar.y" /* glr.c:817 */
6318 {
6319 (*(struct psi_let_stmt **)(&(*yyvalp))) = psi_let_stmt_init((*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6320 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6321 }
6322 #line 6323 "src/parser_proc.c" /* glr.c:817 */
6323 break;
6324
6325 case 561:
6326 #line 1999 "src/parser_proc_grammar.y" /* glr.c:817 */
6327 {
6328 (*(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))));
6329 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6330 (*(struct psi_let_stmt **)(&(*yyvalp)))->exp->is_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
6331 }
6332 #line 6333 "src/parser_proc.c" /* glr.c:817 */
6333 break;
6334
6335 case 563:
6336 #line 2008 "src/parser_proc_grammar.y" /* glr.c:817 */
6337 {
6338 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6339 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = true;
6340 }
6341 #line 6342 "src/parser_proc.c" /* glr.c:817 */
6342 break;
6343
6344 case 564:
6345 #line 2012 "src/parser_proc_grammar.y" /* glr.c:817 */
6346 {
6347 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6348 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = false;
6349 }
6350 #line 6351 "src/parser_proc.c" /* glr.c:817 */
6351 break;
6352
6353 case 565:
6354 #line 2019 "src/parser_proc_grammar.y" /* glr.c:817 */
6355 {
6356 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_NULL, NULL);
6357 }
6358 #line 6359 "src/parser_proc.c" /* glr.c:817 */
6359 break;
6360
6361 case 566:
6362 #line 2022 "src/parser_proc_grammar.y" /* glr.c:817 */
6363 {
6364 (*(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)));
6365 }
6366 #line 6367 "src/parser_proc.c" /* glr.c:817 */
6367 break;
6368
6369 case 567:
6370 #line 2025 "src/parser_proc_grammar.y" /* glr.c:817 */
6371 {
6372 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6373 }
6374 #line 6375 "src/parser_proc.c" /* glr.c:817 */
6375 break;
6376
6377 case 568:
6378 #line 2028 "src/parser_proc_grammar.y" /* glr.c:817 */
6379 {
6380 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6381 (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->static_memory = 1;
6382 }
6383 #line 6384 "src/parser_proc.c" /* glr.c:817 */
6384 break;
6385
6386 case 569:
6387 #line 2032 "src/parser_proc_grammar.y" /* glr.c:817 */
6388 {
6389 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLBACK, (*(struct psi_let_callback **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6390 }
6391 #line 6392 "src/parser_proc.c" /* glr.c:817 */
6392 break;
6393
6394 case 570:
6395 #line 2035 "src/parser_proc_grammar.y" /* glr.c:817 */
6396 {
6397 (*(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)));
6398 }
6399 #line 6400 "src/parser_proc.c" /* glr.c:817 */
6400 break;
6401
6402 case 571:
6403 #line 2041 "src/parser_proc_grammar.y" /* glr.c:817 */
6404 {
6405 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6406 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
6407 }
6408 #line 6409 "src/parser_proc.c" /* glr.c:817 */
6409 break;
6410
6411 case 572:
6412 #line 2045 "src/parser_proc_grammar.y" /* glr.c:817 */
6413 {
6414 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6415 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = 1;
6416 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
6417 }
6418 #line 6419 "src/parser_proc.c" /* glr.c:817 */
6419 break;
6420
6421 case 573:
6422 #line 2053 "src/parser_proc_grammar.y" /* glr.c:817 */
6423 {
6424 (*(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)));
6425 (*(struct psi_let_calloc **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6426 }
6427 #line 6428 "src/parser_proc.c" /* glr.c:817 */
6428 break;
6429
6430 case 574:
6431 #line 2060 "src/parser_proc_grammar.y" /* glr.c:817 */
6432 {
6433 (*(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);
6434 (*(struct psi_let_callback **)(&(*yyvalp)))->func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
6435 (*(struct psi_let_callback **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval)));
6436 }
6437 #line 6438 "src/parser_proc.c" /* glr.c:817 */
6438 break;
6439
6440 case 575:
6441 #line 2065 "src/parser_proc_grammar.y" /* glr.c:817 */
6442 {
6443 (*(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)));
6444 (*(struct psi_let_callback **)(&(*yyvalp)))->func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
6445 (*(struct psi_let_callback **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-11)].yystate.yysemantics.yysval)));
6446 }
6447 #line 6448 "src/parser_proc.c" /* glr.c:817 */
6448 break;
6449
6450 case 576:
6451 #line 2073 "src/parser_proc_grammar.y" /* glr.c:817 */
6452 {
6453 (*(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)));
6454 (*(struct psi_let_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
6455 (*(struct psi_let_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
6456 }
6457 #line 6458 "src/parser_proc.c" /* glr.c:817 */
6458 break;
6459
6460 case 587:
6461 #line 2094 "src/parser_proc_grammar.y" /* glr.c:817 */
6462 {
6463 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6464 }
6465 #line 6466 "src/parser_proc.c" /* glr.c:817 */
6466 break;
6467
6468 case 588:
6469 #line 2097 "src/parser_proc_grammar.y" /* glr.c:817 */
6470 {
6471 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6472 }
6473 #line 6474 "src/parser_proc.c" /* glr.c:817 */
6474 break;
6475
6476 case 589:
6477 #line 2103 "src/parser_proc_grammar.y" /* glr.c:817 */
6478 {
6479 (*(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)));
6480 }
6481 #line 6482 "src/parser_proc.c" /* glr.c:817 */
6482 break;
6483
6484 case 590:
6485 #line 2106 "src/parser_proc_grammar.y" /* glr.c:817 */
6486 {
6487 (*(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)));
6488 }
6489 #line 6490 "src/parser_proc.c" /* glr.c:817 */
6490 break;
6491
6492 case 593:
6493 #line 2117 "src/parser_proc_grammar.y" /* glr.c:817 */
6494 {
6495 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6496 }
6497 #line 6498 "src/parser_proc.c" /* glr.c:817 */
6498 break;
6499
6500 case 594:
6501 #line 2120 "src/parser_proc_grammar.y" /* glr.c:817 */
6502 {
6503 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6504 }
6505 #line 6506 "src/parser_proc.c" /* glr.c:817 */
6506 break;
6507
6508 case 595:
6509 #line 2126 "src/parser_proc_grammar.y" /* glr.c:817 */
6510 {
6511 (*(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)));
6512 }
6513 #line 6514 "src/parser_proc.c" /* glr.c:817 */
6514 break;
6515
6516 case 596:
6517 #line 2129 "src/parser_proc_grammar.y" /* glr.c:817 */
6518 {
6519 (*(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)));
6520 }
6521 #line 6522 "src/parser_proc.c" /* glr.c:817 */
6522 break;
6523
6524 case 597:
6525 #line 2135 "src/parser_proc_grammar.y" /* glr.c:817 */
6526 {
6527 (*(struct psi_return_stmt **)(&(*yyvalp))) = psi_return_stmt_init((*(struct psi_return_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6528 (*(struct psi_return_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6529 }
6530 #line 6531 "src/parser_proc.c" /* glr.c:817 */
6531 break;
6532
6533 case 598:
6534 #line 2142 "src/parser_proc_grammar.y" /* glr.c:817 */
6535 {
6536 (*(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))));
6537 (*(struct psi_return_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->token);
6538 }
6539 #line 6540 "src/parser_proc.c" /* glr.c:817 */
6540 break;
6541
6542 case 599:
6543 #line 2146 "src/parser_proc_grammar.y" /* glr.c:817 */
6544 {
6545 (*(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))));
6546 (*(struct psi_return_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
6547 }
6548 #line 6549 "src/parser_proc.c" /* glr.c:817 */
6549 break;
6550
6551 case 600:
6552 #line 2153 "src/parser_proc_grammar.y" /* glr.c:817 */
6553 {
6554 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6555 }
6556 #line 6557 "src/parser_proc.c" /* glr.c:817 */
6557 break;
6558
6559 case 601:
6560 #line 2156 "src/parser_proc_grammar.y" /* glr.c:817 */
6561 {
6562 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6563 }
6564 #line 6565 "src/parser_proc.c" /* glr.c:817 */
6565 break;
6566
6567 case 602:
6568 #line 2159 "src/parser_proc_grammar.y" /* glr.c:817 */
6569 {
6570 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6571 }
6572 #line 6573 "src/parser_proc.c" /* glr.c:817 */
6573 break;
6574
6575 case 603:
6576 #line 2165 "src/parser_proc_grammar.y" /* glr.c:817 */
6577 {
6578 (*(struct psi_set_stmt **)(&(*yyvalp))) = psi_set_stmt_init((*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6579 (*(struct psi_set_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6580 }
6581 #line 6582 "src/parser_proc.c" /* glr.c:817 */
6582 break;
6583
6584 case 604:
6585 #line 2172 "src/parser_proc_grammar.y" /* glr.c:817 */
6586 {
6587 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_FUNC, (*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6588 }
6589 #line 6590 "src/parser_proc.c" /* glr.c:817 */
6590 break;
6591
6592 case 605:
6593 #line 2175 "src/parser_proc_grammar.y" /* glr.c:817 */
6594 {
6595 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_NUMEXP, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
6596 }
6597 #line 6598 "src/parser_proc.c" /* glr.c:817 */
6598 break;
6599
6600 case 606:
6601 #line 2178 "src/parser_proc_grammar.y" /* glr.c:817 */
6602 {
6603 (*(struct psi_set_exp **)(&(*yyvalp))) = (*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6604 (*(struct psi_set_exp **)(&(*yyvalp)))->var = (*(struct psi_impl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
6605 }
6606 #line 6607 "src/parser_proc.c" /* glr.c:817 */
6607 break;
6608
6609 case 607:
6610 #line 2185 "src/parser_proc_grammar.y" /* glr.c:817 */
6611 {
6612 (*(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)));
6613 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
6614 (*(struct psi_set_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
6615 }
6616 #line 6617 "src/parser_proc.c" /* glr.c:817 */
6617 break;
6618
6619 case 608:
6620 #line 2190 "src/parser_proc_grammar.y" /* glr.c:817 */
6621 {
6622 (*(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)));
6623 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
6624 (*(struct psi_set_func **)(&(*yyvalp)))->recursive = 1;
6625 }
6626 #line 6627 "src/parser_proc.c" /* glr.c:817 */
6627 break;
6628
6629 case 617:
6630 #line 2209 "src/parser_proc_grammar.y" /* glr.c:817 */
6631 {
6632 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
6633 }
6634 #line 6635 "src/parser_proc.c" /* glr.c:817 */
6635 break;
6636
6637 case 618:
6638 #line 2212 "src/parser_proc_grammar.y" /* glr.c:817 */
6639 {
6640 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
6641 }
6642 #line 6643 "src/parser_proc.c" /* glr.c:817 */
6643 break;
6644
6645 case 619:
6646 #line 2218 "src/parser_proc_grammar.y" /* glr.c:817 */
6647 {
6648 (*(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)));
6649 }
6650 #line 6651 "src/parser_proc.c" /* glr.c:817 */
6651 break;
6652
6653 case 620:
6654 #line 2221 "src/parser_proc_grammar.y" /* glr.c:817 */
6655 {
6656 (*(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)));
6657 }
6658 #line 6659 "src/parser_proc.c" /* glr.c:817 */
6659 break;
6660
6661 case 621:
6662 #line 2227 "src/parser_proc_grammar.y" /* glr.c:817 */
6663 {
6664 (*(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)));
6665 (*(struct psi_assert_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6666 }
6667 #line 6668 "src/parser_proc.c" /* glr.c:817 */
6668 break;
6669
6670 case 624:
6671 #line 2239 "src/parser_proc_grammar.y" /* glr.c:817 */
6672 {
6673 (*(struct psi_free_stmt **)(&(*yyvalp))) = psi_free_stmt_init((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
6674 (*(struct psi_free_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
6675 }
6676 #line 6677 "src/parser_proc.c" /* glr.c:817 */
6677 break;
6678
6679 case 625:
6680 #line 2246 "src/parser_proc_grammar.y" /* glr.c:817 */
6681 {
6682 (*(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)));
6683 }
6684 #line 6685 "src/parser_proc.c" /* glr.c:817 */
6685 break;
6686
6687 case 626:
6688 #line 2249 "src/parser_proc_grammar.y" /* glr.c:817 */
6689 {
6690 (*(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)));
6691 }
6692 #line 6693 "src/parser_proc.c" /* glr.c:817 */
6693 break;
6694
6695 case 627:
6696 #line 2255 "src/parser_proc_grammar.y" /* glr.c:817 */
6697 {
6698 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
6699 (*(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)));
6700 (*(struct psi_free_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
6701 }
6702 #line 6703 "src/parser_proc.c" /* glr.c:817 */
6703 break;
6704
6705 case 628:
6706 #line 2263 "src/parser_proc_grammar.y" /* glr.c:817 */
6707 {
6708 (*(bool*)(&(*yyvalp))) = false;
6709 }
6710 #line 6711 "src/parser_proc.c" /* glr.c:817 */
6711 break;
6712
6713 case 629:
6714 #line 2266 "src/parser_proc_grammar.y" /* glr.c:817 */
6715 {
6716 (*(bool*)(&(*yyvalp))) = true;
6717 }
6718 #line 6719 "src/parser_proc.c" /* glr.c:817 */
6719 break;
6720
6721
6722 #line 6723 "src/parser_proc.c" /* glr.c:817 */
6723 default: break;
6724 }
6725
6726 return yyok;
6727 # undef yyerrok
6728 # undef YYABORT
6729 # undef YYACCEPT
6730 # undef YYERROR
6731 # undef YYBACKUP
6732 # undef yyclearin
6733 # undef YYRECOVERING
6734 }
6735
6736
6737 static void
6738 yyuserMerge (int yyn, YYSTYPE* yy0, YYSTYPE* yy1)
6739 {
6740 YYUSE (yy0);
6741 YYUSE (yy1);
6742
6743 switch (yyn)
6744 {
6745
6746 default: break;
6747 }
6748 }
6749
6750 /* Bison grammar-table manipulation. */
6751
6752 /*-----------------------------------------------.
6753 | Release the memory associated to this symbol. |
6754 `-----------------------------------------------*/
6755
6756 static void
6757 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6758 {
6759 YYUSE (yyvaluep);
6760 YYUSE (P);
6761 YYUSE (tokens);
6762 YYUSE (index);
6763 if (!yymsg)
6764 yymsg = "Deleting";
6765 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
6766
6767 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6768 switch (yytype)
6769 {
6770 case 141: /* binary_op_token */
6771 #line 315 "src/parser_proc_grammar.y" /* glr.c:847 */
6772 {}
6773 #line 6774 "src/parser_proc.c" /* glr.c:847 */
6774 break;
6775
6776 case 142: /* unary_op_token */
6777 #line 315 "src/parser_proc_grammar.y" /* glr.c:847 */
6778 {}
6779 #line 6780 "src/parser_proc.c" /* glr.c:847 */
6780 break;
6781
6782 case 143: /* name_token */
6783 #line 315 "src/parser_proc_grammar.y" /* glr.c:847 */
6784 {}
6785 #line 6786 "src/parser_proc.c" /* glr.c:847 */
6786 break;
6787
6788 case 144: /* any_noeol_token */
6789 #line 315 "src/parser_proc_grammar.y" /* glr.c:847 */
6790 {}
6791 #line 6792 "src/parser_proc.c" /* glr.c:847 */
6792 break;
6793
6794 case 149: /* lib */
6795 #line 309 "src/parser_proc_grammar.y" /* glr.c:847 */
6796 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
6797 #line 6798 "src/parser_proc.c" /* glr.c:847 */
6798 break;
6799
6800 case 150: /* cpp */
6801 #line 324 "src/parser_proc_grammar.y" /* glr.c:847 */
6802 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
6803 #line 6804 "src/parser_proc.c" /* glr.c:847 */
6804 break;
6805
6806 case 151: /* cpp_exp */
6807 #line 324 "src/parser_proc_grammar.y" /* glr.c:847 */
6808 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
6809 #line 6810 "src/parser_proc.c" /* glr.c:847 */
6810 break;
6811
6812 case 153: /* cpp_message_token */
6813 #line 312 "src/parser_proc_grammar.y" /* glr.c:847 */
6814 {}
6815 #line 6816 "src/parser_proc.c" /* glr.c:847 */
6816 break;
6817
6818 case 154: /* cpp_include_token */
6819 #line 312 "src/parser_proc_grammar.y" /* glr.c:847 */
6820 {}
6821 #line 6822 "src/parser_proc.c" /* glr.c:847 */
6822 break;
6823
6824 case 155: /* cpp_header_token */
6825 #line 312 "src/parser_proc_grammar.y" /* glr.c:847 */
6826 {}
6827 #line 6828 "src/parser_proc.c" /* glr.c:847 */
6828 break;
6829
6830 case 156: /* cpp_no_arg_token */
6831 #line 312 "src/parser_proc_grammar.y" /* glr.c:847 */
6832 {}
6833 #line 6834 "src/parser_proc.c" /* glr.c:847 */
6834 break;
6835
6836 case 157: /* cpp_name_arg_token */
6837 #line 312 "src/parser_proc_grammar.y" /* glr.c:847 */
6838 {}
6839 #line 6840 "src/parser_proc.c" /* glr.c:847 */
6840 break;
6841
6842 case 158: /* cpp_exp_arg_token */
6843 #line 312 "src/parser_proc_grammar.y" /* glr.c:847 */
6844 {}
6845 #line 6846 "src/parser_proc.c" /* glr.c:847 */
6846 break;
6847
6848 case 159: /* cpp_macro_decl */
6849 #line 326 "src/parser_proc_grammar.y" /* glr.c:847 */
6850 {psi_cpp_macro_decl_free(&(*(struct psi_cpp_macro_decl **)(&(*yyvaluep))));}
6851 #line 6852 "src/parser_proc.c" /* glr.c:847 */
6852 break;
6853
6854 case 160: /* cpp_macro_sig */
6855 #line 328 "src/parser_proc_grammar.y" /* glr.c:847 */
6856 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
6857 #line 6858 "src/parser_proc.c" /* glr.c:847 */
6858 break;
6859
6860 case 161: /* cpp_macro_sig_args */
6861 #line 328 "src/parser_proc_grammar.y" /* glr.c:847 */
6862 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
6863 #line 6864 "src/parser_proc.c" /* glr.c:847 */
6864 break;
6865
6866 case 162: /* cpp_macro_decl_tokens */
6867 #line 328 "src/parser_proc_grammar.y" /* glr.c:847 */
6868 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
6869 #line 6870 "src/parser_proc.c" /* glr.c:847 */
6870 break;
6871
6872 case 163: /* cpp_macro_decl_token_list */
6873 #line 328 "src/parser_proc_grammar.y" /* glr.c:847 */
6874 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
6875 #line 6876 "src/parser_proc.c" /* glr.c:847 */
6876 break;
6877
6878 case 164: /* cpp_macro_exp */
6879 #line 330 "src/parser_proc_grammar.y" /* glr.c:847 */
6880 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
6881 #line 6882 "src/parser_proc.c" /* glr.c:847 */
6882 break;
6883
6884 case 165: /* cpp_macro_call_args */
6885 #line 328 "src/parser_proc_grammar.y" /* glr.c:847 */
6886 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
6887 #line 6888 "src/parser_proc.c" /* glr.c:847 */
6888 break;
6889
6890 case 166: /* cpp_macro_call_arg_list */
6891 #line 328 "src/parser_proc_grammar.y" /* glr.c:847 */
6892 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
6893 #line 6894 "src/parser_proc.c" /* glr.c:847 */
6894 break;
6895
6896 case 167: /* constant */
6897 #line 336 "src/parser_proc_grammar.y" /* glr.c:847 */
6898 {psi_const_free(&(*(struct psi_const **)(&(*yyvaluep))));}
6899 #line 6900 "src/parser_proc.c" /* glr.c:847 */
6900 break;
6901
6902 case 168: /* impl_def_val */
6903 #line 338 "src/parser_proc_grammar.y" /* glr.c:847 */
6904 {psi_impl_def_val_free(&(*(struct psi_impl_def_val **)(&(*yyvaluep))));}
6905 #line 6906 "src/parser_proc.c" /* glr.c:847 */
6906 break;
6907
6908 case 169: /* impl_def_val_token */
6909 #line 333 "src/parser_proc_grammar.y" /* glr.c:847 */
6910 {}
6911 #line 6912 "src/parser_proc.c" /* glr.c:847 */
6912 break;
6913
6914 case 170: /* decl_typedef */
6915 #line 351 "src/parser_proc_grammar.y" /* glr.c:847 */
6916 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
6917 #line 6918 "src/parser_proc.c" /* glr.c:847 */
6918 break;
6919
6920 case 171: /* typedef */
6921 #line 351 "src/parser_proc_grammar.y" /* glr.c:847 */
6922 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
6923 #line 6924 "src/parser_proc.c" /* glr.c:847 */
6924 break;
6925
6926 case 172: /* typedef_anon */
6927 #line 351 "src/parser_proc_grammar.y" /* glr.c:847 */
6928 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
6929 #line 6930 "src/parser_proc.c" /* glr.c:847 */
6930 break;
6931
6932 case 173: /* typedef_decl */
6933 #line 351 "src/parser_proc_grammar.y" /* glr.c:847 */
6934 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
6935 #line 6936 "src/parser_proc.c" /* glr.c:847 */
6936 break;
6937
6938 case 174: /* typedef_anon_decl */
6939 #line 351 "src/parser_proc_grammar.y" /* glr.c:847 */
6940 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
6941 #line 6942 "src/parser_proc.c" /* glr.c:847 */
6942 break;
6943
6944 case 175: /* qualified_decl_type */
6945 #line 347 "src/parser_proc_grammar.y" /* glr.c:847 */
6946 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
6947 #line 6948 "src/parser_proc.c" /* glr.c:847 */
6948 break;
6949
6950 case 177: /* decl_type */
6951 #line 347 "src/parser_proc_grammar.y" /* glr.c:847 */
6952 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
6953 #line 6954 "src/parser_proc.c" /* glr.c:847 */
6954 break;
6955
6956 case 178: /* decl_type_complex */
6957 #line 347 "src/parser_proc_grammar.y" /* glr.c:847 */
6958 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
6959 #line 6960 "src/parser_proc.c" /* glr.c:847 */
6960 break;
6961
6962 case 179: /* decl_type_simple */
6963 #line 341 "src/parser_proc_grammar.y" /* glr.c:847 */
6964 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
6965 #line 6966 "src/parser_proc.c" /* glr.c:847 */
6966 break;
6967
6968 case 180: /* decl_real_type */
6969 #line 341 "src/parser_proc_grammar.y" /* glr.c:847 */
6970 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
6971 #line 6972 "src/parser_proc.c" /* glr.c:847 */
6972 break;
6973
6974 case 181: /* int_signed */
6975 #line 321 "src/parser_proc_grammar.y" /* glr.c:847 */
6976 {}
6977 #line 6978 "src/parser_proc.c" /* glr.c:847 */
6978 break;
6979
6980 case 182: /* int_width */
6981 #line 318 "src/parser_proc_grammar.y" /* glr.c:847 */
6982 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
6983 #line 6984 "src/parser_proc.c" /* glr.c:847 */
6984 break;
6985
6986 case 183: /* decl_int_type */
6987 #line 341 "src/parser_proc_grammar.y" /* glr.c:847 */
6988 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
6989 #line 6990 "src/parser_proc.c" /* glr.c:847 */
6990 break;
6991
6992 case 184: /* int_signed_types */
6993 #line 318 "src/parser_proc_grammar.y" /* glr.c:847 */
6994 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
6995 #line 6996 "src/parser_proc.c" /* glr.c:847 */
6996 break;
6997
6998 case 185: /* signed_short_types */
6999 #line 321 "src/parser_proc_grammar.y" /* glr.c:847 */
7000 {}
7001 #line 7002 "src/parser_proc.c" /* glr.c:847 */
7002 break;
7003
7004 case 186: /* signed_long_types */
7005 #line 321 "src/parser_proc_grammar.y" /* glr.c:847 */
7006 {}
7007 #line 7008 "src/parser_proc.c" /* glr.c:847 */
7008 break;
7009
7010 case 187: /* int_width_types */
7011 #line 318 "src/parser_proc_grammar.y" /* glr.c:847 */
7012 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7013 #line 7014 "src/parser_proc.c" /* glr.c:847 */
7014 break;
7015
7016 case 188: /* decl_stmt */
7017 #line 349 "src/parser_proc_grammar.y" /* glr.c:847 */
7018 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7019 #line 7020 "src/parser_proc.c" /* glr.c:847 */
7020 break;
7021
7022 case 189: /* decl_asm */
7023 #line 344 "src/parser_proc_grammar.y" /* glr.c:847 */
7024 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7025 #line 7026 "src/parser_proc.c" /* glr.c:847 */
7026 break;
7027
7028 case 190: /* quoted_strings */
7029 #line 344 "src/parser_proc_grammar.y" /* glr.c:847 */
7030 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7031 #line 7032 "src/parser_proc.c" /* glr.c:847 */
7032 break;
7033
7034 case 191: /* decl_extvar_stmt */
7035 #line 363 "src/parser_proc_grammar.y" /* glr.c:847 */
7036 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7037 #line 7038 "src/parser_proc.c" /* glr.c:847 */
7038 break;
7039
7040 case 192: /* decl_extvar_list */
7041 #line 363 "src/parser_proc_grammar.y" /* glr.c:847 */
7042 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7043 #line 7044 "src/parser_proc.c" /* glr.c:847 */
7044 break;
7045
7046 case 193: /* decl_vars */
7047 #line 363 "src/parser_proc_grammar.y" /* glr.c:847 */
7048 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7049 #line 7050 "src/parser_proc.c" /* glr.c:847 */
7050 break;
7051
7052 case 194: /* ignored_decl */
7053 #line 349 "src/parser_proc_grammar.y" /* glr.c:847 */
7054 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7055 #line 7056 "src/parser_proc.c" /* glr.c:847 */
7056 break;
7057
7058 case 199: /* decl */
7059 #line 349 "src/parser_proc_grammar.y" /* glr.c:847 */
7060 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7061 #line 7062 "src/parser_proc.c" /* glr.c:847 */
7062 break;
7063
7064 case 200: /* decl_body */
7065 #line 349 "src/parser_proc_grammar.y" /* glr.c:847 */
7066 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7067 #line 7068 "src/parser_proc.c" /* glr.c:847 */
7068 break;
7069
7070 case 201: /* decl_func_body */
7071 #line 349 "src/parser_proc_grammar.y" /* glr.c:847 */
7072 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7073 #line 7074 "src/parser_proc.c" /* glr.c:847 */
7074 break;
7075
7076 case 202: /* decl_functor_body */
7077 #line 349 "src/parser_proc_grammar.y" /* glr.c:847 */
7078 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7079 #line 7080 "src/parser_proc.c" /* glr.c:847 */
7080 break;
7081
7082 case 203: /* decl_anon_functor_body */
7083 #line 349 "src/parser_proc_grammar.y" /* glr.c:847 */
7084 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
7085 #line 7086 "src/parser_proc.c" /* glr.c:847 */
7086 break;
7087
7088 case 204: /* decl_functor */
7089 #line 351 "src/parser_proc_grammar.y" /* glr.c:847 */
7090 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7091 #line 7092 "src/parser_proc.c" /* glr.c:847 */
7092 break;
7093
7094 case 205: /* decl_anon_functor */
7095 #line 351 "src/parser_proc_grammar.y" /* glr.c:847 */
7096 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7097 #line 7098 "src/parser_proc.c" /* glr.c:847 */
7098 break;
7099
7100 case 206: /* decl_func */
7101 #line 351 "src/parser_proc_grammar.y" /* glr.c:847 */
7102 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7103 #line 7104 "src/parser_proc.c" /* glr.c:847 */
7104 break;
7105
7106 case 207: /* decl_args */
7107 #line 363 "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 208: /* decl_arg_list */
7113 #line 363 "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 209: /* decl_anon_arg */
7119 #line 351 "src/parser_proc_grammar.y" /* glr.c:847 */
7120 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7121 #line 7122 "src/parser_proc.c" /* glr.c:847 */
7122 break;
7123
7124 case 210: /* decl_arg */
7125 #line 351 "src/parser_proc_grammar.y" /* glr.c:847 */
7126 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
7127 #line 7128 "src/parser_proc.c" /* glr.c:847 */
7128 break;
7129
7130 case 211: /* decl_var */
7131 #line 353 "src/parser_proc_grammar.y" /* glr.c:847 */
7132 {psi_decl_var_free(&(*(struct psi_decl_var **)(&(*yyvaluep))));}
7133 #line 7134 "src/parser_proc.c" /* glr.c:847 */
7134 break;
7135
7136 case 212: /* decl_union */
7137 #line 357 "src/parser_proc_grammar.y" /* glr.c:847 */
7138 {psi_decl_union_free(&(*(struct psi_decl_union **)(&(*yyvaluep))));}
7139 #line 7140 "src/parser_proc.c" /* glr.c:847 */
7140 break;
7141
7142 case 213: /* decl_struct */
7143 #line 355 "src/parser_proc_grammar.y" /* glr.c:847 */
7144 {psi_decl_struct_free(&(*(struct psi_decl_struct **)(&(*yyvaluep))));}
7145 #line 7146 "src/parser_proc.c" /* glr.c:847 */
7146 break;
7147
7148 case 214: /* decl_struct_args */
7149 #line 363 "src/parser_proc_grammar.y" /* glr.c:847 */
7150 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7151 #line 7152 "src/parser_proc.c" /* glr.c:847 */
7152 break;
7153
7154 case 215: /* struct_args_block */
7155 #line 363 "src/parser_proc_grammar.y" /* glr.c:847 */
7156 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7157 #line 7158 "src/parser_proc.c" /* glr.c:847 */
7158 break;
7159
7160 case 216: /* struct_args */
7161 #line 363 "src/parser_proc_grammar.y" /* glr.c:847 */
7162 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7163 #line 7164 "src/parser_proc.c" /* glr.c:847 */
7164 break;
7165
7166 case 217: /* struct_arg_var_list */
7167 #line 363 "src/parser_proc_grammar.y" /* glr.c:847 */
7168 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7169 #line 7170 "src/parser_proc.c" /* glr.c:847 */
7170 break;
7171
7172 case 218: /* decl_vars_with_layout */
7173 #line 363 "src/parser_proc_grammar.y" /* glr.c:847 */
7174 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7175 #line 7176 "src/parser_proc.c" /* glr.c:847 */
7176 break;
7177
7178 case 219: /* decl_enum */
7179 #line 359 "src/parser_proc_grammar.y" /* glr.c:847 */
7180 {psi_decl_enum_free(&(*(struct psi_decl_enum **)(&(*yyvaluep))));}
7181 #line 7182 "src/parser_proc.c" /* glr.c:847 */
7182 break;
7183
7184 case 220: /* decl_enum_items */
7185 #line 363 "src/parser_proc_grammar.y" /* glr.c:847 */
7186 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7187 #line 7188 "src/parser_proc.c" /* glr.c:847 */
7188 break;
7189
7190 case 221: /* decl_enum_item */
7191 #line 361 "src/parser_proc_grammar.y" /* glr.c:847 */
7192 {psi_decl_enum_item_free(&(*(struct psi_decl_enum_item **)(&(*yyvaluep))));}
7193 #line 7194 "src/parser_proc.c" /* glr.c:847 */
7194 break;
7195
7196 case 222: /* num_exp */
7197 #line 419 "src/parser_proc_grammar.y" /* glr.c:847 */
7198 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
7199 #line 7200 "src/parser_proc.c" /* glr.c:847 */
7200 break;
7201
7202 case 223: /* number */
7203 #line 421 "src/parser_proc_grammar.y" /* glr.c:847 */
7204 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7205 #line 7206 "src/parser_proc.c" /* glr.c:847 */
7206 break;
7207
7208 case 224: /* sizeof */
7209 #line 371 "src/parser_proc_grammar.y" /* glr.c:847 */
7210 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7211 #line 7212 "src/parser_proc.c" /* glr.c:847 */
7212 break;
7213
7214 case 225: /* sizeof_body */
7215 #line 371 "src/parser_proc_grammar.y" /* glr.c:847 */
7216 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7217 #line 7218 "src/parser_proc.c" /* glr.c:847 */
7218 break;
7219
7220 case 226: /* sizeof_body_notypes */
7221 #line 371 "src/parser_proc_grammar.y" /* glr.c:847 */
7222 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
7223 #line 7224 "src/parser_proc.c" /* glr.c:847 */
7224 break;
7225
7226 case 227: /* enum_name */
7227 #line 309 "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 228: /* union_name */
7233 #line 309 "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 229: /* struct_name */
7239 #line 309 "src/parser_proc_grammar.y" /* glr.c:847 */
7240 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7241 #line 7242 "src/parser_proc.c" /* glr.c:847 */
7242 break;
7243
7244 case 230: /* optional_name */
7245 #line 309 "src/parser_proc_grammar.y" /* glr.c:847 */
7246 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7247 #line 7248 "src/parser_proc.c" /* glr.c:847 */
7248 break;
7249
7250 case 232: /* decl_layout */
7251 #line 368 "src/parser_proc_grammar.y" /* glr.c:847 */
7252 {psi_layout_free(&(*(struct psi_layout **)(&(*yyvaluep))));}
7253 #line 7254 "src/parser_proc.c" /* glr.c:847 */
7254 break;
7255
7256 case 233: /* align_and_size */
7257 #line 366 "src/parser_proc_grammar.y" /* glr.c:847 */
7258 {}
7259 #line 7260 "src/parser_proc.c" /* glr.c:847 */
7260 break;
7261
7262 case 234: /* array_size */
7263 #line 424 "src/parser_proc_grammar.y" /* glr.c:847 */
7264 {}
7265 #line 7266 "src/parser_proc.c" /* glr.c:847 */
7266 break;
7267
7268 case 236: /* indirection */
7269 #line 424 "src/parser_proc_grammar.y" /* glr.c:847 */
7270 {}
7271 #line 7272 "src/parser_proc.c" /* glr.c:847 */
7272 break;
7273
7274 case 237: /* pointers */
7275 #line 424 "src/parser_proc_grammar.y" /* glr.c:847 */
7276 {}
7277 #line 7278 "src/parser_proc.c" /* glr.c:847 */
7278 break;
7279
7280 case 238: /* asterisks */
7281 #line 424 "src/parser_proc_grammar.y" /* glr.c:847 */
7282 {}
7283 #line 7284 "src/parser_proc.c" /* glr.c:847 */
7284 break;
7285
7286 case 241: /* impl */
7287 #line 374 "src/parser_proc_grammar.y" /* glr.c:847 */
7288 {psi_impl_free(&(*(struct psi_impl **)(&(*yyvaluep))));}
7289 #line 7290 "src/parser_proc.c" /* glr.c:847 */
7290 break;
7291
7292 case 242: /* impl_func */
7293 #line 376 "src/parser_proc_grammar.y" /* glr.c:847 */
7294 {psi_impl_func_free(&(*(struct psi_impl_func **)(&(*yyvaluep))));}
7295 #line 7296 "src/parser_proc.c" /* glr.c:847 */
7296 break;
7297
7298 case 243: /* impl_args */
7299 #line 416 "src/parser_proc_grammar.y" /* glr.c:847 */
7300 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7301 #line 7302 "src/parser_proc.c" /* glr.c:847 */
7302 break;
7303
7304 case 244: /* impl_arg */
7305 #line 378 "src/parser_proc_grammar.y" /* glr.c:847 */
7306 {psi_impl_arg_free(&(*(struct psi_impl_arg **)(&(*yyvaluep))));}
7307 #line 7308 "src/parser_proc.c" /* glr.c:847 */
7308 break;
7309
7310 case 245: /* impl_var */
7311 #line 382 "src/parser_proc_grammar.y" /* glr.c:847 */
7312 {psi_impl_var_free(&(*(struct psi_impl_var **)(&(*yyvaluep))));}
7313 #line 7314 "src/parser_proc.c" /* glr.c:847 */
7314 break;
7315
7316 case 246: /* impl_type */
7317 #line 380 "src/parser_proc_grammar.y" /* glr.c:847 */
7318 {psi_impl_type_free(&(*(struct psi_impl_type **)(&(*yyvaluep))));}
7319 #line 7320 "src/parser_proc.c" /* glr.c:847 */
7320 break;
7321
7322 case 247: /* impl_type_restricted */
7323 #line 380 "src/parser_proc_grammar.y" /* glr.c:847 */
7324 {psi_impl_type_free(&(*(struct psi_impl_type **)(&(*yyvaluep))));}
7325 #line 7326 "src/parser_proc.c" /* glr.c:847 */
7326 break;
7327
7328 case 248: /* impl_type_token */
7329 #line 414 "src/parser_proc_grammar.y" /* glr.c:847 */
7330 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7331 #line 7332 "src/parser_proc.c" /* glr.c:847 */
7332 break;
7333
7334 case 249: /* impl_type_restricted_token */
7335 #line 414 "src/parser_proc_grammar.y" /* glr.c:847 */
7336 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7337 #line 7338 "src/parser_proc.c" /* glr.c:847 */
7338 break;
7339
7340 case 250: /* impl_type_extended_token */
7341 #line 414 "src/parser_proc_grammar.y" /* glr.c:847 */
7342 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7343 #line 7344 "src/parser_proc.c" /* glr.c:847 */
7344 break;
7345
7346 case 251: /* impl_stmts */
7347 #line 416 "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 252: /* impl_stmt */
7353 #line 412 "src/parser_proc_grammar.y" /* glr.c:847 */
7354 {psi_impl_stmt_free(&(*(struct psi_token ***)(&(*yyvaluep))));}
7355 #line 7356 "src/parser_proc.c" /* glr.c:847 */
7356 break;
7357
7358 case 253: /* let_stmt */
7359 #line 385 "src/parser_proc_grammar.y" /* glr.c:847 */
7360 {psi_let_stmt_free(&(*(struct psi_let_stmt **)(&(*yyvaluep))));}
7361 #line 7362 "src/parser_proc.c" /* glr.c:847 */
7362 break;
7363
7364 case 254: /* let_exp */
7365 #line 387 "src/parser_proc_grammar.y" /* glr.c:847 */
7366 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
7367 #line 7368 "src/parser_proc.c" /* glr.c:847 */
7368 break;
7369
7370 case 255: /* let_exp_byref */
7371 #line 387 "src/parser_proc_grammar.y" /* glr.c:847 */
7372 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
7373 #line 7374 "src/parser_proc.c" /* glr.c:847 */
7374 break;
7375
7376 case 256: /* let_exp_assign */
7377 #line 387 "src/parser_proc_grammar.y" /* glr.c:847 */
7378 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
7379 #line 7380 "src/parser_proc.c" /* glr.c:847 */
7380 break;
7381
7382 case 257: /* let_calloc */
7383 #line 389 "src/parser_proc_grammar.y" /* glr.c:847 */
7384 {psi_let_calloc_free(&(*(struct psi_let_calloc **)(&(*yyvaluep))));}
7385 #line 7386 "src/parser_proc.c" /* glr.c:847 */
7386 break;
7387
7388 case 258: /* let_callback */
7389 #line 391 "src/parser_proc_grammar.y" /* glr.c:847 */
7390 {psi_let_callback_free(&(*(struct psi_let_callback **)(&(*yyvaluep))));}
7391 #line 7392 "src/parser_proc.c" /* glr.c:847 */
7392 break;
7393
7394 case 259: /* let_func */
7395 #line 393 "src/parser_proc_grammar.y" /* glr.c:847 */
7396 {psi_let_func_free(&(*(struct psi_let_func **)(&(*yyvaluep))));}
7397 #line 7398 "src/parser_proc.c" /* glr.c:847 */
7398 break;
7399
7400 case 260: /* let_func_token */
7401 #line 414 "src/parser_proc_grammar.y" /* glr.c:847 */
7402 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7403 #line 7404 "src/parser_proc.c" /* glr.c:847 */
7404 break;
7405
7406 case 261: /* let_func_exps */
7407 #line 416 "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 262: /* let_exps */
7413 #line 416 "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 263: /* callback_rval */
7419 #line 414 "src/parser_proc_grammar.y" /* glr.c:847 */
7420 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7421 #line 7422 "src/parser_proc.c" /* glr.c:847 */
7422 break;
7423
7424 case 264: /* callback_arg_list */
7425 #line 416 "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 265: /* callback_args */
7431 #line 416 "src/parser_proc_grammar.y" /* glr.c:847 */
7432 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7433 #line 7434 "src/parser_proc.c" /* glr.c:847 */
7434 break;
7435
7436 case 266: /* return_stmt */
7437 #line 403 "src/parser_proc_grammar.y" /* glr.c:847 */
7438 {psi_return_stmt_free(&(*(struct psi_return_stmt **)(&(*yyvaluep))));}
7439 #line 7440 "src/parser_proc.c" /* glr.c:847 */
7440 break;
7441
7442 case 267: /* return_exp */
7443 #line 405 "src/parser_proc_grammar.y" /* glr.c:847 */
7444 {psi_return_exp_free(&(*(struct psi_return_exp **)(&(*yyvaluep))));}
7445 #line 7446 "src/parser_proc.c" /* glr.c:847 */
7446 break;
7447
7448 case 268: /* call_decl_vars */
7449 #line 363 "src/parser_proc_grammar.y" /* glr.c:847 */
7450 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7451 #line 7452 "src/parser_proc.c" /* glr.c:847 */
7452 break;
7453
7454 case 269: /* set_stmt */
7455 #line 395 "src/parser_proc_grammar.y" /* glr.c:847 */
7456 {psi_set_stmt_free(&(*(struct psi_set_stmt **)(&(*yyvaluep))));}
7457 #line 7458 "src/parser_proc.c" /* glr.c:847 */
7458 break;
7459
7460 case 270: /* set_exp */
7461 #line 397 "src/parser_proc_grammar.y" /* glr.c:847 */
7462 {psi_set_exp_free(&(*(struct psi_set_exp **)(&(*yyvaluep))));}
7463 #line 7464 "src/parser_proc.c" /* glr.c:847 */
7464 break;
7465
7466 case 271: /* set_func */
7467 #line 399 "src/parser_proc_grammar.y" /* glr.c:847 */
7468 {psi_set_func_free(&(*(struct psi_set_func **)(&(*yyvaluep))));}
7469 #line 7470 "src/parser_proc.c" /* glr.c:847 */
7470 break;
7471
7472 case 272: /* set_func_token */
7473 #line 414 "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 273: /* set_func_exps */
7479 #line 416 "src/parser_proc_grammar.y" /* glr.c:847 */
7480 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7481 #line 7482 "src/parser_proc.c" /* glr.c:847 */
7482 break;
7483
7484 case 274: /* set_exps */
7485 #line 416 "src/parser_proc_grammar.y" /* glr.c:847 */
7486 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7487 #line 7488 "src/parser_proc.c" /* glr.c:847 */
7488 break;
7489
7490 case 275: /* assert_stmt */
7491 #line 401 "src/parser_proc_grammar.y" /* glr.c:847 */
7492 {psi_assert_stmt_free(&(*(struct psi_assert_stmt **)(&(*yyvaluep))));}
7493 #line 7494 "src/parser_proc.c" /* glr.c:847 */
7494 break;
7495
7496 case 276: /* assert_stmt_token */
7497 #line 414 "src/parser_proc_grammar.y" /* glr.c:847 */
7498 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
7499 #line 7500 "src/parser_proc.c" /* glr.c:847 */
7500 break;
7501
7502 case 277: /* free_stmt */
7503 #line 407 "src/parser_proc_grammar.y" /* glr.c:847 */
7504 {psi_free_stmt_free(&(*(struct psi_free_stmt **)(&(*yyvaluep))));}
7505 #line 7506 "src/parser_proc.c" /* glr.c:847 */
7506 break;
7507
7508 case 278: /* free_exps */
7509 #line 416 "src/parser_proc_grammar.y" /* glr.c:847 */
7510 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
7511 #line 7512 "src/parser_proc.c" /* glr.c:847 */
7512 break;
7513
7514 case 279: /* free_exp */
7515 #line 409 "src/parser_proc_grammar.y" /* glr.c:847 */
7516 {psi_free_exp_free(&(*(struct psi_free_exp **)(&(*yyvaluep))));}
7517 #line 7518 "src/parser_proc.c" /* glr.c:847 */
7518 break;
7519
7520 case 280: /* reference */
7521 #line 426 "src/parser_proc_grammar.y" /* glr.c:847 */
7522 {}
7523 #line 7524 "src/parser_proc.c" /* glr.c:847 */
7524 break;
7525
7526
7527 default:
7528 break;
7529 }
7530 YY_IGNORE_MAYBE_UNINITIALIZED_END
7531 }
7532
7533 /** Number of symbols composing the right hand side of rule #RULE. */
7534 static inline int
7535 yyrhsLength (yyRuleNum yyrule)
7536 {
7537 return yyr2[yyrule];
7538 }
7539
7540 static void
7541 yydestroyGLRState (char const *yymsg, yyGLRState *yys, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7542 {
7543 if (yys->yyresolved)
7544 yydestruct (yymsg, yystos[yys->yylrState],
7545 &yys->yysemantics.yysval, P, tokens, index);
7546 else
7547 {
7548 #if YYDEBUG
7549 if (yydebug)
7550 {
7551 if (yys->yysemantics.yyfirstVal)
7552 YYFPRINTF (stderr, "%s unresolved", yymsg);
7553 else
7554 YYFPRINTF (stderr, "%s incomplete", yymsg);
7555 YY_SYMBOL_PRINT ("", yystos[yys->yylrState], YY_NULLPTR, &yys->yyloc);
7556 }
7557 #endif
7558
7559 if (yys->yysemantics.yyfirstVal)
7560 {
7561 yySemanticOption *yyoption = yys->yysemantics.yyfirstVal;
7562 yyGLRState *yyrh;
7563 int yyn;
7564 for (yyrh = yyoption->yystate, yyn = yyrhsLength (yyoption->yyrule);
7565 yyn > 0;
7566 yyrh = yyrh->yypred, yyn -= 1)
7567 yydestroyGLRState (yymsg, yyrh, P, tokens, index);
7568 }
7569 }
7570 }
7571
7572 /** Left-hand-side symbol for rule #YYRULE. */
7573 static inline yySymbol
7574 yylhsNonterm (yyRuleNum yyrule)
7575 {
7576 return yyr1[yyrule];
7577 }
7578
7579 #define yypact_value_is_default(Yystate) \
7580 (!!((Yystate) == (-714)))
7581
7582 /** True iff LR state YYSTATE has only a default reduction (regardless
7583 * of token). */
7584 static inline yybool
7585 yyisDefaultedState (yyStateNum yystate)
7586 {
7587 return yypact_value_is_default (yypact[yystate]);
7588 }
7589
7590 /** The default reduction for YYSTATE, assuming it has one. */
7591 static inline yyRuleNum
7592 yydefaultAction (yyStateNum yystate)
7593 {
7594 return yydefact[yystate];
7595 }
7596
7597 #define yytable_value_is_error(Yytable_value) \
7598 0
7599
7600 /** Set *YYACTION to the action to take in YYSTATE on seeing YYTOKEN.
7601 * Result R means
7602 * R < 0: Reduce on rule -R.
7603 * R = 0: Error.
7604 * R > 0: Shift to state R.
7605 * Set *YYCONFLICTS to a pointer into yyconfl to a 0-terminated list
7606 * of conflicting reductions.
7607 */
7608 static inline void
7609 yygetLRActions (yyStateNum yystate, int yytoken,
7610 int* yyaction, const short** yyconflicts)
7611 {
7612 int yyindex = yypact[yystate] + yytoken;
7613 if (yypact_value_is_default (yypact[yystate])
7614 || yyindex < 0 || YYLAST < yyindex || yycheck[yyindex] != yytoken)
7615 {
7616 *yyaction = -yydefact[yystate];
7617 *yyconflicts = yyconfl;
7618 }
7619 else if (! yytable_value_is_error (yytable[yyindex]))
7620 {
7621 *yyaction = yytable[yyindex];
7622 *yyconflicts = yyconfl + yyconflp[yyindex];
7623 }
7624 else
7625 {
7626 *yyaction = 0;
7627 *yyconflicts = yyconfl + yyconflp[yyindex];
7628 }
7629 }
7630
7631 /** Compute post-reduction state.
7632 * \param yystate the current state
7633 * \param yysym the nonterminal to push on the stack
7634 */
7635 static inline yyStateNum
7636 yyLRgotoState (yyStateNum yystate, yySymbol yysym)
7637 {
7638 int yyr = yypgoto[yysym - YYNTOKENS] + yystate;
7639 if (0 <= yyr && yyr <= YYLAST && yycheck[yyr] == yystate)
7640 return yytable[yyr];
7641 else
7642 return yydefgoto[yysym - YYNTOKENS];
7643 }
7644
7645 static inline yybool
7646 yyisShiftAction (int yyaction)
7647 {
7648 return 0 < yyaction;
7649 }
7650
7651 static inline yybool
7652 yyisErrorAction (int yyaction)
7653 {
7654 return yyaction == 0;
7655 }
7656
7657 /* GLRStates */
7658
7659 /** Return a fresh GLRStackItem in YYSTACKP. The item is an LR state
7660 * if YYISSTATE, and otherwise a semantic option. Callers should call
7661 * YY_RESERVE_GLRSTACK afterwards to make sure there is sufficient
7662 * headroom. */
7663
7664 static inline yyGLRStackItem*
7665 yynewGLRStackItem (yyGLRStack* yystackp, yybool yyisState)
7666 {
7667 yyGLRStackItem* yynewItem = yystackp->yynextFree;
7668 yystackp->yyspaceLeft -= 1;
7669 yystackp->yynextFree += 1;
7670 yynewItem->yystate.yyisState = yyisState;
7671 return yynewItem;
7672 }
7673
7674 /** Add a new semantic action that will execute the action for rule
7675 * YYRULE on the semantic values in YYRHS to the list of
7676 * alternative actions for YYSTATE. Assumes that YYRHS comes from
7677 * stack #YYK of *YYSTACKP. */
7678 static void
7679 yyaddDeferredAction (yyGLRStack* yystackp, size_t yyk, yyGLRState* yystate,
7680 yyGLRState* yyrhs, yyRuleNum yyrule)
7681 {
7682 yySemanticOption* yynewOption =
7683 &yynewGLRStackItem (yystackp, yyfalse)->yyoption;
7684 YYASSERT (!yynewOption->yyisState);
7685 yynewOption->yystate = yyrhs;
7686 yynewOption->yyrule = yyrule;
7687 if (yystackp->yytops.yylookaheadNeeds[yyk])
7688 {
7689 yynewOption->yyrawchar = yychar;
7690 yynewOption->yyval = yylval;
7691 }
7692 else
7693 yynewOption->yyrawchar = YYEMPTY;
7694 yynewOption->yynext = yystate->yysemantics.yyfirstVal;
7695 yystate->yysemantics.yyfirstVal = yynewOption;
7696
7697 YY_RESERVE_GLRSTACK (yystackp);
7698 }
7699
7700 /* GLRStacks */
7701
7702 /** Initialize YYSET to a singleton set containing an empty stack. */
7703 static yybool
7704 yyinitStateSet (yyGLRStateSet* yyset)
7705 {
7706 yyset->yysize = 1;
7707 yyset->yycapacity = 16;
7708 yyset->yystates = (yyGLRState**) YYMALLOC (16 * sizeof yyset->yystates[0]);
7709 if (! yyset->yystates)
7710 return yyfalse;
7711 yyset->yystates[0] = YY_NULLPTR;
7712 yyset->yylookaheadNeeds =
7713 (yybool*) YYMALLOC (16 * sizeof yyset->yylookaheadNeeds[0]);
7714 if (! yyset->yylookaheadNeeds)
7715 {
7716 YYFREE (yyset->yystates);
7717 return yyfalse;
7718 }
7719 return yytrue;
7720 }
7721
7722 static void yyfreeStateSet (yyGLRStateSet* yyset)
7723 {
7724 YYFREE (yyset->yystates);
7725 YYFREE (yyset->yylookaheadNeeds);
7726 }
7727
7728 /** Initialize *YYSTACKP to a single empty stack, with total maximum
7729 * capacity for all stacks of YYSIZE. */
7730 static yybool
7731 yyinitGLRStack (yyGLRStack* yystackp, size_t yysize)
7732 {
7733 yystackp->yyerrState = 0;
7734 yynerrs = 0;
7735 yystackp->yyspaceLeft = yysize;
7736 yystackp->yyitems =
7737 (yyGLRStackItem*) YYMALLOC (yysize * sizeof yystackp->yynextFree[0]);
7738 if (!yystackp->yyitems)
7739 return yyfalse;
7740 yystackp->yynextFree = yystackp->yyitems;
7741 yystackp->yysplitPoint = YY_NULLPTR;
7742 yystackp->yylastDeleted = YY_NULLPTR;
7743 return yyinitStateSet (&yystackp->yytops);
7744 }
7745
7746
7747 #if YYSTACKEXPANDABLE
7748 # define YYRELOC(YYFROMITEMS,YYTOITEMS,YYX,YYTYPE) \
7749 &((YYTOITEMS) - ((YYFROMITEMS) - (yyGLRStackItem*) (YYX)))->YYTYPE
7750
7751 /** If *YYSTACKP is expandable, extend it. WARNING: Pointers into the
7752 stack from outside should be considered invalid after this call.
7753 We always expand when there are 1 or fewer items left AFTER an
7754 allocation, so that we can avoid having external pointers exist
7755 across an allocation. */
7756 static void
7757 yyexpandGLRStack (yyGLRStack* yystackp)
7758 {
7759 yyGLRStackItem* yynewItems;
7760 yyGLRStackItem* yyp0, *yyp1;
7761 size_t yynewSize;
7762 size_t yyn;
7763 size_t yysize = yystackp->yynextFree - yystackp->yyitems;
7764 if (YYMAXDEPTH - YYHEADROOM < yysize)
7765 yyMemoryExhausted (yystackp);
7766 yynewSize = 2*yysize;
7767 if (YYMAXDEPTH < yynewSize)
7768 yynewSize = YYMAXDEPTH;
7769 yynewItems = (yyGLRStackItem*) YYMALLOC (yynewSize * sizeof yynewItems[0]);
7770 if (! yynewItems)
7771 yyMemoryExhausted (yystackp);
7772 for (yyp0 = yystackp->yyitems, yyp1 = yynewItems, yyn = yysize;
7773 0 < yyn;
7774 yyn -= 1, yyp0 += 1, yyp1 += 1)
7775 {
7776 *yyp1 = *yyp0;
7777 if (*(yybool *) yyp0)
7778 {
7779 yyGLRState* yys0 = &yyp0->yystate;
7780 yyGLRState* yys1 = &yyp1->yystate;
7781 if (yys0->yypred != YY_NULLPTR)
7782 yys1->yypred =
7783 YYRELOC (yyp0, yyp1, yys0->yypred, yystate);
7784 if (! yys0->yyresolved && yys0->yysemantics.yyfirstVal != YY_NULLPTR)
7785 yys1->yysemantics.yyfirstVal =
7786 YYRELOC (yyp0, yyp1, yys0->yysemantics.yyfirstVal, yyoption);
7787 }
7788 else
7789 {
7790 yySemanticOption* yyv0 = &yyp0->yyoption;
7791 yySemanticOption* yyv1 = &yyp1->yyoption;
7792 if (yyv0->yystate != YY_NULLPTR)
7793 yyv1->yystate = YYRELOC (yyp0, yyp1, yyv0->yystate, yystate);
7794 if (yyv0->yynext != YY_NULLPTR)
7795 yyv1->yynext = YYRELOC (yyp0, yyp1, yyv0->yynext, yyoption);
7796 }
7797 }
7798 if (yystackp->yysplitPoint != YY_NULLPTR)
7799 yystackp->yysplitPoint = YYRELOC (yystackp->yyitems, yynewItems,
7800 yystackp->yysplitPoint, yystate);
7801
7802 for (yyn = 0; yyn < yystackp->yytops.yysize; yyn += 1)
7803 if (yystackp->yytops.yystates[yyn] != YY_NULLPTR)
7804 yystackp->yytops.yystates[yyn] =
7805 YYRELOC (yystackp->yyitems, yynewItems,
7806 yystackp->yytops.yystates[yyn], yystate);
7807 YYFREE (yystackp->yyitems);
7808 yystackp->yyitems = yynewItems;
7809 yystackp->yynextFree = yynewItems + yysize;
7810 yystackp->yyspaceLeft = yynewSize - yysize;
7811 }
7812 #endif
7813
7814 static void
7815 yyfreeGLRStack (yyGLRStack* yystackp)
7816 {
7817 YYFREE (yystackp->yyitems);
7818 yyfreeStateSet (&yystackp->yytops);
7819 }
7820
7821 /** Assuming that YYS is a GLRState somewhere on *YYSTACKP, update the
7822 * splitpoint of *YYSTACKP, if needed, so that it is at least as deep as
7823 * YYS. */
7824 static inline void
7825 yyupdateSplit (yyGLRStack* yystackp, yyGLRState* yys)
7826 {
7827 if (yystackp->yysplitPoint != YY_NULLPTR && yystackp->yysplitPoint > yys)
7828 yystackp->yysplitPoint = yys;
7829 }
7830
7831 /** Invalidate stack #YYK in *YYSTACKP. */
7832 static inline void
7833 yymarkStackDeleted (yyGLRStack* yystackp, size_t yyk)
7834 {
7835 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
7836 yystackp->yylastDeleted = yystackp->yytops.yystates[yyk];
7837 yystackp->yytops.yystates[yyk] = YY_NULLPTR;
7838 }
7839
7840 /** Undelete the last stack in *YYSTACKP that was marked as deleted. Can
7841 only be done once after a deletion, and only when all other stacks have
7842 been deleted. */
7843 static void
7844 yyundeleteLastStack (yyGLRStack* yystackp)
7845 {
7846 if (yystackp->yylastDeleted == YY_NULLPTR || yystackp->yytops.yysize != 0)
7847 return;
7848 yystackp->yytops.yystates[0] = yystackp->yylastDeleted;
7849 yystackp->yytops.yysize = 1;
7850 YYDPRINTF ((stderr, "Restoring last deleted stack as stack #0.\n"));
7851 yystackp->yylastDeleted = YY_NULLPTR;
7852 }
7853
7854 static inline void
7855 yyremoveDeletes (yyGLRStack* yystackp)
7856 {
7857 size_t yyi, yyj;
7858 yyi = yyj = 0;
7859 while (yyj < yystackp->yytops.yysize)
7860 {
7861 if (yystackp->yytops.yystates[yyi] == YY_NULLPTR)
7862 {
7863 if (yyi == yyj)
7864 {
7865 YYDPRINTF ((stderr, "Removing dead stacks.\n"));
7866 }
7867 yystackp->yytops.yysize -= 1;
7868 }
7869 else
7870 {
7871 yystackp->yytops.yystates[yyj] = yystackp->yytops.yystates[yyi];
7872 /* In the current implementation, it's unnecessary to copy
7873 yystackp->yytops.yylookaheadNeeds[yyi] since, after
7874 yyremoveDeletes returns, the parser immediately either enters
7875 deterministic operation or shifts a token. However, it doesn't
7876 hurt, and the code might evolve to need it. */
7877 yystackp->yytops.yylookaheadNeeds[yyj] =
7878 yystackp->yytops.yylookaheadNeeds[yyi];
7879 if (yyj != yyi)
7880 {
7881 YYDPRINTF ((stderr, "Rename stack %lu -> %lu.\n",
7882 (unsigned long) yyi, (unsigned long) yyj));
7883 }
7884 yyj += 1;
7885 }
7886 yyi += 1;
7887 }
7888 }
7889
7890 /** Shift to a new state on stack #YYK of *YYSTACKP, corresponding to LR
7891 * state YYLRSTATE, at input position YYPOSN, with (resolved) semantic
7892 * value *YYVALP and source location *YYLOCP. */
7893 static inline void
7894 yyglrShift (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
7895 size_t yyposn,
7896 YYSTYPE* yyvalp)
7897 {
7898 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
7899
7900 yynewState->yylrState = yylrState;
7901 yynewState->yyposn = yyposn;
7902 yynewState->yyresolved = yytrue;
7903 yynewState->yypred = yystackp->yytops.yystates[yyk];
7904 yynewState->yysemantics.yysval = *yyvalp;
7905 yystackp->yytops.yystates[yyk] = yynewState;
7906
7907 YY_RESERVE_GLRSTACK (yystackp);
7908 }
7909
7910 /** Shift stack #YYK of *YYSTACKP, to a new state corresponding to LR
7911 * state YYLRSTATE, at input position YYPOSN, with the (unresolved)
7912 * semantic value of YYRHS under the action for YYRULE. */
7913 static inline void
7914 yyglrShiftDefer (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
7915 size_t yyposn, yyGLRState* yyrhs, yyRuleNum yyrule)
7916 {
7917 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
7918 YYASSERT (yynewState->yyisState);
7919
7920 yynewState->yylrState = yylrState;
7921 yynewState->yyposn = yyposn;
7922 yynewState->yyresolved = yyfalse;
7923 yynewState->yypred = yystackp->yytops.yystates[yyk];
7924 yynewState->yysemantics.yyfirstVal = YY_NULLPTR;
7925 yystackp->yytops.yystates[yyk] = yynewState;
7926
7927 /* Invokes YY_RESERVE_GLRSTACK. */
7928 yyaddDeferredAction (yystackp, yyk, yynewState, yyrhs, yyrule);
7929 }
7930
7931 #if !YYDEBUG
7932 # define YY_REDUCE_PRINT(Args)
7933 #else
7934 # define YY_REDUCE_PRINT(Args) \
7935 do { \
7936 if (yydebug) \
7937 yy_reduce_print Args; \
7938 } while (0)
7939
7940 /*----------------------------------------------------------------------.
7941 | Report that stack #YYK of *YYSTACKP is going to be reduced by YYRULE. |
7942 `----------------------------------------------------------------------*/
7943
7944 static inline void
7945 yy_reduce_print (int yynormal, yyGLRStackItem* yyvsp, size_t yyk,
7946 yyRuleNum yyrule, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7947 {
7948 int yynrhs = yyrhsLength (yyrule);
7949 int yyi;
7950 YYFPRINTF (stderr, "Reducing stack %lu by rule %d (line %lu):\n",
7951 (unsigned long) yyk, yyrule - 1,
7952 (unsigned long) yyrline[yyrule]);
7953 if (! yynormal)
7954 yyfillin (yyvsp, 1, -yynrhs);
7955 /* The symbols being reduced. */
7956 for (yyi = 0; yyi < yynrhs; yyi++)
7957 {
7958 YYFPRINTF (stderr, " $%d = ", yyi + 1);
7959 yy_symbol_print (stderr,
7960 yystos[yyvsp[yyi - yynrhs + 1].yystate.yylrState],
7961 &yyvsp[yyi - yynrhs + 1].yystate.yysemantics.yysval
7962 , P, tokens, index);
7963 if (!yyvsp[yyi - yynrhs + 1].yystate.yyresolved)
7964 YYFPRINTF (stderr, " (unresolved)");
7965 YYFPRINTF (stderr, "\n");
7966 }
7967 }
7968 #endif
7969
7970 /** Pop the symbols consumed by reduction #YYRULE from the top of stack
7971 * #YYK of *YYSTACKP, and perform the appropriate semantic action on their
7972 * semantic values. Assumes that all ambiguities in semantic values
7973 * have been previously resolved. Set *YYVALP to the resulting value,
7974 * and *YYLOCP to the computed location (if any). Return value is as
7975 * for userAction. */
7976 static inline YYRESULTTAG
7977 yydoAction (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
7978 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7979 {
7980 int yynrhs = yyrhsLength (yyrule);
7981
7982 if (yystackp->yysplitPoint == YY_NULLPTR)
7983 {
7984 /* Standard special case: single stack. */
7985 yyGLRStackItem* yyrhs = (yyGLRStackItem*) yystackp->yytops.yystates[yyk];
7986 YYASSERT (yyk == 0);
7987 yystackp->yynextFree -= yynrhs;
7988 yystackp->yyspaceLeft += yynrhs;
7989 yystackp->yytops.yystates[0] = & yystackp->yynextFree[-1].yystate;
7990 YY_REDUCE_PRINT ((1, yyrhs, yyk, yyrule, P, tokens, index));
7991 return yyuserAction (yyrule, yynrhs, yyrhs, yystackp,
7992 yyvalp, P, tokens, index);
7993 }
7994 else
7995 {
7996 int yyi;
7997 yyGLRState* yys;
7998 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
7999 yys = yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred
8000 = yystackp->yytops.yystates[yyk];
8001 for (yyi = 0; yyi < yynrhs; yyi += 1)
8002 {
8003 yys = yys->yypred;
8004 YYASSERT (yys);
8005 }
8006 yyupdateSplit (yystackp, yys);
8007 yystackp->yytops.yystates[yyk] = yys;
8008 YY_REDUCE_PRINT ((0, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1, yyk, yyrule, P, tokens, index));
8009 return yyuserAction (yyrule, yynrhs, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
8010 yystackp, yyvalp, P, tokens, index);
8011 }
8012 }
8013
8014 /** Pop items off stack #YYK of *YYSTACKP according to grammar rule YYRULE,
8015 * and push back on the resulting nonterminal symbol. Perform the
8016 * semantic action associated with YYRULE and store its value with the
8017 * newly pushed state, if YYFORCEEVAL or if *YYSTACKP is currently
8018 * unambiguous. Otherwise, store the deferred semantic action with
8019 * the new state. If the new state would have an identical input
8020 * position, LR state, and predecessor to an existing state on the stack,
8021 * it is identified with that existing state, eliminating stack #YYK from
8022 * *YYSTACKP. In this case, the semantic value is
8023 * added to the options for the existing state's semantic value.
8024 */
8025 static inline YYRESULTTAG
8026 yyglrReduce (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
8027 yybool yyforceEval, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8028 {
8029 size_t yyposn = yystackp->yytops.yystates[yyk]->yyposn;
8030
8031 if (yyforceEval || yystackp->yysplitPoint == YY_NULLPTR)
8032 {
8033 YYSTYPE yysval;
8034
8035 YYRESULTTAG yyflag = yydoAction (yystackp, yyk, yyrule, &yysval, P, tokens, index);
8036 if (yyflag == yyerr && yystackp->yysplitPoint != YY_NULLPTR)
8037 {
8038 YYDPRINTF ((stderr, "Parse on stack %lu rejected by rule #%d.\n",
8039 (unsigned long) yyk, yyrule - 1));
8040 }
8041 if (yyflag != yyok)
8042 return yyflag;
8043 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyrule], &yysval, &yyloc);
8044 yyglrShift (yystackp, yyk,
8045 yyLRgotoState (yystackp->yytops.yystates[yyk]->yylrState,
8046 yylhsNonterm (yyrule)),
8047 yyposn, &yysval);
8048 }
8049 else
8050 {
8051 size_t yyi;
8052 int yyn;
8053 yyGLRState* yys, *yys0 = yystackp->yytops.yystates[yyk];
8054 yyStateNum yynewLRState;
8055
8056 for (yys = yystackp->yytops.yystates[yyk], yyn = yyrhsLength (yyrule);
8057 0 < yyn; yyn -= 1)
8058 {
8059 yys = yys->yypred;
8060 YYASSERT (yys);
8061 }
8062 yyupdateSplit (yystackp, yys);
8063 yynewLRState = yyLRgotoState (yys->yylrState, yylhsNonterm (yyrule));
8064 YYDPRINTF ((stderr,
8065 "Reduced stack %lu by rule #%d; action deferred. "
8066 "Now in state %d.\n",
8067 (unsigned long) yyk, yyrule - 1, yynewLRState));
8068 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
8069 if (yyi != yyk && yystackp->yytops.yystates[yyi] != YY_NULLPTR)
8070 {
8071 yyGLRState *yysplit = yystackp->yysplitPoint;
8072 yyGLRState *yyp = yystackp->yytops.yystates[yyi];
8073 while (yyp != yys && yyp != yysplit && yyp->yyposn >= yyposn)
8074 {
8075 if (yyp->yylrState == yynewLRState && yyp->yypred == yys)
8076 {
8077 yyaddDeferredAction (yystackp, yyk, yyp, yys0, yyrule);
8078 yymarkStackDeleted (yystackp, yyk);
8079 YYDPRINTF ((stderr, "Merging stack %lu into stack %lu.\n",
8080 (unsigned long) yyk,
8081 (unsigned long) yyi));
8082 return yyok;
8083 }
8084 yyp = yyp->yypred;
8085 }
8086 }
8087 yystackp->yytops.yystates[yyk] = yys;
8088 yyglrShiftDefer (yystackp, yyk, yynewLRState, yyposn, yys0, yyrule);
8089 }
8090 return yyok;
8091 }
8092
8093 static size_t
8094 yysplitStack (yyGLRStack* yystackp, size_t yyk)
8095 {
8096 if (yystackp->yysplitPoint == YY_NULLPTR)
8097 {
8098 YYASSERT (yyk == 0);
8099 yystackp->yysplitPoint = yystackp->yytops.yystates[yyk];
8100 }
8101 if (yystackp->yytops.yysize >= yystackp->yytops.yycapacity)
8102 {
8103 yyGLRState** yynewStates;
8104 yybool* yynewLookaheadNeeds;
8105
8106 yynewStates = YY_NULLPTR;
8107
8108 if (yystackp->yytops.yycapacity
8109 > (YYSIZEMAX / (2 * sizeof yynewStates[0])))
8110 yyMemoryExhausted (yystackp);
8111 yystackp->yytops.yycapacity *= 2;
8112
8113 yynewStates =
8114 (yyGLRState**) YYREALLOC (yystackp->yytops.yystates,
8115 (yystackp->yytops.yycapacity
8116 * sizeof yynewStates[0]));
8117 if (yynewStates == YY_NULLPTR)
8118 yyMemoryExhausted (yystackp);
8119 yystackp->yytops.yystates = yynewStates;
8120
8121 yynewLookaheadNeeds =
8122 (yybool*) YYREALLOC (yystackp->yytops.yylookaheadNeeds,
8123 (yystackp->yytops.yycapacity
8124 * sizeof yynewLookaheadNeeds[0]));
8125 if (yynewLookaheadNeeds == YY_NULLPTR)
8126 yyMemoryExhausted (yystackp);
8127 yystackp->yytops.yylookaheadNeeds = yynewLookaheadNeeds;
8128 }
8129 yystackp->yytops.yystates[yystackp->yytops.yysize]
8130 = yystackp->yytops.yystates[yyk];
8131 yystackp->yytops.yylookaheadNeeds[yystackp->yytops.yysize]
8132 = yystackp->yytops.yylookaheadNeeds[yyk];
8133 yystackp->yytops.yysize += 1;
8134 return yystackp->yytops.yysize-1;
8135 }
8136
8137 /** True iff YYY0 and YYY1 represent identical options at the top level.
8138 * That is, they represent the same rule applied to RHS symbols
8139 * that produce the same terminal symbols. */
8140 static yybool
8141 yyidenticalOptions (yySemanticOption* yyy0, yySemanticOption* yyy1)
8142 {
8143 if (yyy0->yyrule == yyy1->yyrule)
8144 {
8145 yyGLRState *yys0, *yys1;
8146 int yyn;
8147 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
8148 yyn = yyrhsLength (yyy0->yyrule);
8149 yyn > 0;
8150 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
8151 if (yys0->yyposn != yys1->yyposn)
8152 return yyfalse;
8153 return yytrue;
8154 }
8155 else
8156 return yyfalse;
8157 }
8158
8159 /** Assuming identicalOptions (YYY0,YYY1), destructively merge the
8160 * alternative semantic values for the RHS-symbols of YYY1 and YYY0. */
8161 static void
8162 yymergeOptionSets (yySemanticOption* yyy0, yySemanticOption* yyy1)
8163 {
8164 yyGLRState *yys0, *yys1;
8165 int yyn;
8166 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
8167 yyn = yyrhsLength (yyy0->yyrule);
8168 yyn > 0;
8169 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
8170 {
8171 if (yys0 == yys1)
8172 break;
8173 else if (yys0->yyresolved)
8174 {
8175 yys1->yyresolved = yytrue;
8176 yys1->yysemantics.yysval = yys0->yysemantics.yysval;
8177 }
8178 else if (yys1->yyresolved)
8179 {
8180 yys0->yyresolved = yytrue;
8181 yys0->yysemantics.yysval = yys1->yysemantics.yysval;
8182 }
8183 else
8184 {
8185 yySemanticOption** yyz0p = &yys0->yysemantics.yyfirstVal;
8186 yySemanticOption* yyz1 = yys1->yysemantics.yyfirstVal;
8187 while (yytrue)
8188 {
8189 if (yyz1 == *yyz0p || yyz1 == YY_NULLPTR)
8190 break;
8191 else if (*yyz0p == YY_NULLPTR)
8192 {
8193 *yyz0p = yyz1;
8194 break;
8195 }
8196 else if (*yyz0p < yyz1)
8197 {
8198 yySemanticOption* yyz = *yyz0p;
8199 *yyz0p = yyz1;
8200 yyz1 = yyz1->yynext;
8201 (*yyz0p)->yynext = yyz;
8202 }
8203 yyz0p = &(*yyz0p)->yynext;
8204 }
8205 yys1->yysemantics.yyfirstVal = yys0->yysemantics.yyfirstVal;
8206 }
8207 }
8208 }
8209
8210 /** Y0 and Y1 represent two possible actions to take in a given
8211 * parsing state; return 0 if no combination is possible,
8212 * 1 if user-mergeable, 2 if Y0 is preferred, 3 if Y1 is preferred. */
8213 static int
8214 yypreference (yySemanticOption* y0, yySemanticOption* y1)
8215 {
8216 yyRuleNum r0 = y0->yyrule, r1 = y1->yyrule;
8217 int p0 = yydprec[r0], p1 = yydprec[r1];
8218
8219 if (p0 == p1)
8220 {
8221 if (yymerger[r0] == 0 || yymerger[r0] != yymerger[r1])
8222 return 0;
8223 else
8224 return 1;
8225 }
8226 if (p0 == 0 || p1 == 0)
8227 return 0;
8228 if (p0 < p1)
8229 return 3;
8230 if (p1 < p0)
8231 return 2;
8232 return 0;
8233 }
8234
8235 static YYRESULTTAG yyresolveValue (yyGLRState* yys,
8236 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index);
8237
8238
8239 /** Resolve the previous YYN states starting at and including state YYS
8240 * on *YYSTACKP. If result != yyok, some states may have been left
8241 * unresolved possibly with empty semantic option chains. Regardless
8242 * of whether result = yyok, each state has been left with consistent
8243 * data so that yydestroyGLRState can be invoked if necessary. */
8244 static YYRESULTTAG
8245 yyresolveStates (yyGLRState* yys, int yyn,
8246 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8247 {
8248 if (0 < yyn)
8249 {
8250 YYASSERT (yys->yypred);
8251 YYCHK (yyresolveStates (yys->yypred, yyn-1, yystackp, P, tokens, index));
8252 if (! yys->yyresolved)
8253 YYCHK (yyresolveValue (yys, yystackp, P, tokens, index));
8254 }
8255 return yyok;
8256 }
8257
8258 /** Resolve the states for the RHS of YYOPT on *YYSTACKP, perform its
8259 * user action, and return the semantic value and location in *YYVALP
8260 * and *YYLOCP. Regardless of whether result = yyok, all RHS states
8261 * have been destroyed (assuming the user action destroys all RHS
8262 * semantic values if invoked). */
8263 static YYRESULTTAG
8264 yyresolveAction (yySemanticOption* yyopt, yyGLRStack* yystackp,
8265 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8266 {
8267 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
8268 int yynrhs = yyrhsLength (yyopt->yyrule);
8269 YYRESULTTAG yyflag =
8270 yyresolveStates (yyopt->yystate, yynrhs, yystackp, P, tokens, index);
8271 if (yyflag != yyok)
8272 {
8273 yyGLRState *yys;
8274 for (yys = yyopt->yystate; yynrhs > 0; yys = yys->yypred, yynrhs -= 1)
8275 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
8276 return yyflag;
8277 }
8278
8279 yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred = yyopt->yystate;
8280 {
8281 int yychar_current = yychar;
8282 YYSTYPE yylval_current = yylval;
8283 yychar = yyopt->yyrawchar;
8284 yylval = yyopt->yyval;
8285 yyflag = yyuserAction (yyopt->yyrule, yynrhs,
8286 yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
8287 yystackp, yyvalp, P, tokens, index);
8288 yychar = yychar_current;
8289 yylval = yylval_current;
8290 }
8291 return yyflag;
8292 }
8293
8294 #if YYDEBUG
8295 static void
8296 yyreportTree (yySemanticOption* yyx, int yyindent)
8297 {
8298 int yynrhs = yyrhsLength (yyx->yyrule);
8299 int yyi;
8300 yyGLRState* yys;
8301 yyGLRState* yystates[1 + YYMAXRHS];
8302 yyGLRState yyleftmost_state;
8303
8304 for (yyi = yynrhs, yys = yyx->yystate; 0 < yyi; yyi -= 1, yys = yys->yypred)
8305 yystates[yyi] = yys;
8306 if (yys == YY_NULLPTR)
8307 {
8308 yyleftmost_state.yyposn = 0;
8309 yystates[0] = &yyleftmost_state;
8310 }
8311 else
8312 yystates[0] = yys;
8313
8314 if (yyx->yystate->yyposn < yys->yyposn + 1)
8315 YYFPRINTF (stderr, "%*s%s -> <Rule %d, empty>\n",
8316 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
8317 yyx->yyrule - 1);
8318 else
8319 YYFPRINTF (stderr, "%*s%s -> <Rule %d, tokens %lu .. %lu>\n",
8320 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
8321 yyx->yyrule - 1, (unsigned long) (yys->yyposn + 1),
8322 (unsigned long) yyx->yystate->yyposn);
8323 for (yyi = 1; yyi <= yynrhs; yyi += 1)
8324 {
8325 if (yystates[yyi]->yyresolved)
8326 {
8327 if (yystates[yyi-1]->yyposn+1 > yystates[yyi]->yyposn)
8328 YYFPRINTF (stderr, "%*s%s <empty>\n", yyindent+2, "",
8329 yytokenName (yystos[yystates[yyi]->yylrState]));
8330 else
8331 YYFPRINTF (stderr, "%*s%s <tokens %lu .. %lu>\n", yyindent+2, "",
8332 yytokenName (yystos[yystates[yyi]->yylrState]),
8333 (unsigned long) (yystates[yyi-1]->yyposn + 1),
8334 (unsigned long) yystates[yyi]->yyposn);
8335 }
8336 else
8337 yyreportTree (yystates[yyi]->yysemantics.yyfirstVal, yyindent+2);
8338 }
8339 }
8340 #endif
8341
8342 static YYRESULTTAG
8343 yyreportAmbiguity (yySemanticOption* yyx0,
8344 yySemanticOption* yyx1, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8345 {
8346 YYUSE (yyx0);
8347 YYUSE (yyx1);
8348
8349 #if YYDEBUG
8350 YYFPRINTF (stderr, "Ambiguity detected.\n");
8351 YYFPRINTF (stderr, "Option 1,\n");
8352 yyreportTree (yyx0, 2);
8353 YYFPRINTF (stderr, "\nOption 2,\n");
8354 yyreportTree (yyx1, 2);
8355 YYFPRINTF (stderr, "\n");
8356 #endif
8357
8358 yyerror (P, tokens, index, YY_("syntax is ambiguous"));
8359 return yyabort;
8360 }
8361
8362 /** Resolve the ambiguity represented in state YYS in *YYSTACKP,
8363 * perform the indicated actions, and set the semantic value of YYS.
8364 * If result != yyok, the chain of semantic options in YYS has been
8365 * cleared instead or it has been left unmodified except that
8366 * redundant options may have been removed. Regardless of whether
8367 * result = yyok, YYS has been left with consistent data so that
8368 * yydestroyGLRState can be invoked if necessary. */
8369 static YYRESULTTAG
8370 yyresolveValue (yyGLRState* yys, yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8371 {
8372 yySemanticOption* yyoptionList = yys->yysemantics.yyfirstVal;
8373 yySemanticOption* yybest = yyoptionList;
8374 yySemanticOption** yypp;
8375 yybool yymerge = yyfalse;
8376 YYSTYPE yysval;
8377 YYRESULTTAG yyflag;
8378
8379 for (yypp = &yyoptionList->yynext; *yypp != YY_NULLPTR; )
8380 {
8381 yySemanticOption* yyp = *yypp;
8382
8383 if (yyidenticalOptions (yybest, yyp))
8384 {
8385 yymergeOptionSets (yybest, yyp);
8386 *yypp = yyp->yynext;
8387 }
8388 else
8389 {
8390 switch (yypreference (yybest, yyp))
8391 {
8392 case 0:
8393 return yyreportAmbiguity (yybest, yyp, P, tokens, index);
8394 break;
8395 case 1:
8396 yymerge = yytrue;
8397 break;
8398 case 2:
8399 break;
8400 case 3:
8401 yybest = yyp;
8402 yymerge = yyfalse;
8403 break;
8404 default:
8405 /* This cannot happen so it is not worth a YYASSERT (yyfalse),
8406 but some compilers complain if the default case is
8407 omitted. */
8408 break;
8409 }
8410 yypp = &yyp->yynext;
8411 }
8412 }
8413
8414 if (yymerge)
8415 {
8416 yySemanticOption* yyp;
8417 int yyprec = yydprec[yybest->yyrule];
8418 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
8419 if (yyflag == yyok)
8420 for (yyp = yybest->yynext; yyp != YY_NULLPTR; yyp = yyp->yynext)
8421 {
8422 if (yyprec == yydprec[yyp->yyrule])
8423 {
8424 YYSTYPE yysval_other;
8425 yyflag = yyresolveAction (yyp, yystackp, &yysval_other, P, tokens, index);
8426 if (yyflag != yyok)
8427 {
8428 yydestruct ("Cleanup: discarding incompletely merged value for",
8429 yystos[yys->yylrState],
8430 &yysval, P, tokens, index);
8431 break;
8432 }
8433 yyuserMerge (yymerger[yyp->yyrule], &yysval, &yysval_other);
8434 }
8435 }
8436 }
8437 else
8438 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
8439
8440 if (yyflag == yyok)
8441 {
8442 yys->yyresolved = yytrue;
8443 yys->yysemantics.yysval = yysval;
8444 }
8445 else
8446 yys->yysemantics.yyfirstVal = YY_NULLPTR;
8447 return yyflag;
8448 }
8449
8450 static YYRESULTTAG
8451 yyresolveStack (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8452 {
8453 if (yystackp->yysplitPoint != YY_NULLPTR)
8454 {
8455 yyGLRState* yys;
8456 int yyn;
8457
8458 for (yyn = 0, yys = yystackp->yytops.yystates[0];
8459 yys != yystackp->yysplitPoint;
8460 yys = yys->yypred, yyn += 1)
8461 continue;
8462 YYCHK (yyresolveStates (yystackp->yytops.yystates[0], yyn, yystackp
8463 , P, tokens, index));
8464 }
8465 return yyok;
8466 }
8467
8468 static void
8469 yycompressStack (yyGLRStack* yystackp)
8470 {
8471 yyGLRState* yyp, *yyq, *yyr;
8472
8473 if (yystackp->yytops.yysize != 1 || yystackp->yysplitPoint == YY_NULLPTR)
8474 return;
8475
8476 for (yyp = yystackp->yytops.yystates[0], yyq = yyp->yypred, yyr = YY_NULLPTR;
8477 yyp != yystackp->yysplitPoint;
8478 yyr = yyp, yyp = yyq, yyq = yyp->yypred)
8479 yyp->yypred = yyr;
8480
8481 yystackp->yyspaceLeft += yystackp->yynextFree - yystackp->yyitems;
8482 yystackp->yynextFree = ((yyGLRStackItem*) yystackp->yysplitPoint) + 1;
8483 yystackp->yyspaceLeft -= yystackp->yynextFree - yystackp->yyitems;
8484 yystackp->yysplitPoint = YY_NULLPTR;
8485 yystackp->yylastDeleted = YY_NULLPTR;
8486
8487 while (yyr != YY_NULLPTR)
8488 {
8489 yystackp->yynextFree->yystate = *yyr;
8490 yyr = yyr->yypred;
8491 yystackp->yynextFree->yystate.yypred = &yystackp->yynextFree[-1].yystate;
8492 yystackp->yytops.yystates[0] = &yystackp->yynextFree->yystate;
8493 yystackp->yynextFree += 1;
8494 yystackp->yyspaceLeft -= 1;
8495 }
8496 }
8497
8498 static YYRESULTTAG
8499 yyprocessOneStack (yyGLRStack* yystackp, size_t yyk,
8500 size_t yyposn, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8501 {
8502 while (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
8503 {
8504 yyStateNum yystate = yystackp->yytops.yystates[yyk]->yylrState;
8505 YYDPRINTF ((stderr, "Stack %lu Entering state %d\n",
8506 (unsigned long) yyk, yystate));
8507
8508 YYASSERT (yystate != YYFINAL);
8509
8510 if (yyisDefaultedState (yystate))
8511 {
8512 YYRESULTTAG yyflag;
8513 yyRuleNum yyrule = yydefaultAction (yystate);
8514 if (yyrule == 0)
8515 {
8516 YYDPRINTF ((stderr, "Stack %lu dies.\n",
8517 (unsigned long) yyk));
8518 yymarkStackDeleted (yystackp, yyk);
8519 return yyok;
8520 }
8521 yyflag = yyglrReduce (yystackp, yyk, yyrule, yyimmediate[yyrule], P, tokens, index);
8522 if (yyflag == yyerr)
8523 {
8524 YYDPRINTF ((stderr,
8525 "Stack %lu dies "
8526 "(predicate failure or explicit user error).\n",
8527 (unsigned long) yyk));
8528 yymarkStackDeleted (yystackp, yyk);
8529 return yyok;
8530 }
8531 if (yyflag != yyok)
8532 return yyflag;
8533 }
8534 else
8535 {
8536 yySymbol yytoken;
8537 int yyaction;
8538 const short* yyconflicts;
8539
8540 yystackp->yytops.yylookaheadNeeds[yyk] = yytrue;
8541 if (yychar == YYEMPTY)
8542 {
8543 YYDPRINTF ((stderr, "Reading a token: "));
8544 yychar = yylex (&yylval, P, tokens, index);
8545 }
8546
8547 if (yychar <= YYEOF)
8548 {
8549 yychar = yytoken = YYEOF;
8550 YYDPRINTF ((stderr, "Now at end of input.\n"));
8551 }
8552 else
8553 {
8554 yytoken = YYTRANSLATE (yychar);
8555 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
8556 }
8557
8558 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
8559
8560 while (*yyconflicts != 0)
8561 {
8562 YYRESULTTAG yyflag;
8563 size_t yynewStack = yysplitStack (yystackp, yyk);
8564 YYDPRINTF ((stderr, "Splitting off stack %lu from %lu.\n",
8565 (unsigned long) yynewStack,
8566 (unsigned long) yyk));
8567 yyflag = yyglrReduce (yystackp, yynewStack,
8568 *yyconflicts,
8569 yyimmediate[*yyconflicts], P, tokens, index);
8570 if (yyflag == yyok)
8571 YYCHK (yyprocessOneStack (yystackp, yynewStack,
8572 yyposn, P, tokens, index));
8573 else if (yyflag == yyerr)
8574 {
8575 YYDPRINTF ((stderr, "Stack %lu dies.\n",
8576 (unsigned long) yynewStack));
8577 yymarkStackDeleted (yystackp, yynewStack);
8578 }
8579 else
8580 return yyflag;
8581 yyconflicts += 1;
8582 }
8583
8584 if (yyisShiftAction (yyaction))
8585 break;
8586 else if (yyisErrorAction (yyaction))
8587 {
8588 YYDPRINTF ((stderr, "Stack %lu dies.\n",
8589 (unsigned long) yyk));
8590 yymarkStackDeleted (yystackp, yyk);
8591 break;
8592 }
8593 else
8594 {
8595 YYRESULTTAG yyflag = yyglrReduce (yystackp, yyk, -yyaction,
8596 yyimmediate[-yyaction], P, tokens, index);
8597 if (yyflag == yyerr)
8598 {
8599 YYDPRINTF ((stderr,
8600 "Stack %lu dies "
8601 "(predicate failure or explicit user error).\n",
8602 (unsigned long) yyk));
8603 yymarkStackDeleted (yystackp, yyk);
8604 break;
8605 }
8606 else if (yyflag != yyok)
8607 return yyflag;
8608 }
8609 }
8610 }
8611 return yyok;
8612 }
8613
8614 static void
8615 yyreportSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8616 {
8617 if (yystackp->yyerrState != 0)
8618 return;
8619 #if ! YYERROR_VERBOSE
8620 yyerror (P, tokens, index, YY_("syntax error"));
8621 #else
8622 {
8623 yySymbol yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
8624 size_t yysize0 = yytnamerr (YY_NULLPTR, yytokenName (yytoken));
8625 size_t yysize = yysize0;
8626 yybool yysize_overflow = yyfalse;
8627 char* yymsg = YY_NULLPTR;
8628 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
8629 /* Internationalized format string. */
8630 const char *yyformat = YY_NULLPTR;
8631 /* Arguments of yyformat. */
8632 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
8633 /* Number of reported tokens (one for the "unexpected", one per
8634 "expected"). */
8635 int yycount = 0;
8636
8637 /* There are many possibilities here to consider:
8638 - If this state is a consistent state with a default action, then
8639 the only way this function was invoked is if the default action
8640 is an error action. In that case, don't check for expected
8641 tokens because there are none.
8642 - The only way there can be no lookahead present (in yychar) is if
8643 this state is a consistent state with a default action. Thus,
8644 detecting the absence of a lookahead is sufficient to determine
8645 that there is no unexpected or expected token to report. In that
8646 case, just report a simple "syntax error".
8647 - Don't assume there isn't a lookahead just because this state is a
8648 consistent state with a default action. There might have been a
8649 previous inconsistent state, consistent state with a non-default
8650 action, or user semantic action that manipulated yychar.
8651 - Of course, the expected token list depends on states to have
8652 correct lookahead information, and it depends on the parser not
8653 to perform extra reductions after fetching a lookahead from the
8654 scanner and before detecting a syntax error. Thus, state merging
8655 (from LALR or IELR) and default reductions corrupt the expected
8656 token list. However, the list is correct for canonical LR with
8657 one exception: it will still contain any token that will not be
8658 accepted due to an error action in a later state.
8659 */
8660 if (yytoken != YYEMPTY)
8661 {
8662 int yyn = yypact[yystackp->yytops.yystates[0]->yylrState];
8663 yyarg[yycount++] = yytokenName (yytoken);
8664 if (!yypact_value_is_default (yyn))
8665 {
8666 /* Start YYX at -YYN if negative to avoid negative indexes in
8667 YYCHECK. In other words, skip the first -YYN actions for this
8668 state because they are default actions. */
8669 int yyxbegin = yyn < 0 ? -yyn : 0;
8670 /* Stay within bounds of both yycheck and yytname. */
8671 int yychecklim = YYLAST - yyn + 1;
8672 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
8673 int yyx;
8674 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
8675 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
8676 && !yytable_value_is_error (yytable[yyx + yyn]))
8677 {
8678 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
8679 {
8680 yycount = 1;
8681 yysize = yysize0;
8682 break;
8683 }
8684 yyarg[yycount++] = yytokenName (yyx);
8685 {
8686 size_t yysz = yysize + yytnamerr (YY_NULLPTR, yytokenName (yyx));
8687 yysize_overflow |= yysz < yysize;
8688 yysize = yysz;
8689 }
8690 }
8691 }
8692 }
8693
8694 switch (yycount)
8695 {
8696 #define YYCASE_(N, S) \
8697 case N: \
8698 yyformat = S; \
8699 break
8700 default: /* Avoid compiler warnings. */
8701 YYCASE_(0, YY_("syntax error"));
8702 YYCASE_(1, YY_("syntax error, unexpected %s"));
8703 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
8704 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
8705 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
8706 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
8707 #undef YYCASE_
8708 }
8709
8710 {
8711 size_t yysz = yysize + strlen (yyformat);
8712 yysize_overflow |= yysz < yysize;
8713 yysize = yysz;
8714 }
8715
8716 if (!yysize_overflow)
8717 yymsg = (char *) YYMALLOC (yysize);
8718
8719 if (yymsg)
8720 {
8721 char *yyp = yymsg;
8722 int yyi = 0;
8723 while ((*yyp = *yyformat))
8724 {
8725 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
8726 {
8727 yyp += yytnamerr (yyp, yyarg[yyi++]);
8728 yyformat += 2;
8729 }
8730 else
8731 {
8732 yyp++;
8733 yyformat++;
8734 }
8735 }
8736 yyerror (P, tokens, index, yymsg);
8737 YYFREE (yymsg);
8738 }
8739 else
8740 {
8741 yyerror (P, tokens, index, YY_("syntax error"));
8742 yyMemoryExhausted (yystackp);
8743 }
8744 }
8745 #endif /* YYERROR_VERBOSE */
8746 yynerrs += 1;
8747 }
8748
8749 /* Recover from a syntax error on *YYSTACKP, assuming that *YYSTACKP->YYTOKENP,
8750 yylval, and yylloc are the syntactic category, semantic value, and location
8751 of the lookahead. */
8752 static void
8753 yyrecoverSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8754 {
8755 size_t yyk;
8756 int yyj;
8757
8758 if (yystackp->yyerrState == 3)
8759 /* We just shifted the error token and (perhaps) took some
8760 reductions. Skip tokens until we can proceed. */
8761 while (yytrue)
8762 {
8763 yySymbol yytoken;
8764 if (yychar == YYEOF)
8765 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
8766 if (yychar != YYEMPTY)
8767 {
8768 yytoken = YYTRANSLATE (yychar);
8769 yydestruct ("Error: discarding",
8770 yytoken, &yylval, P, tokens, index);
8771 }
8772 YYDPRINTF ((stderr, "Reading a token: "));
8773 yychar = yylex (&yylval, P, tokens, index);
8774 if (yychar <= YYEOF)
8775 {
8776 yychar = yytoken = YYEOF;
8777 YYDPRINTF ((stderr, "Now at end of input.\n"));
8778 }
8779 else
8780 {
8781 yytoken = YYTRANSLATE (yychar);
8782 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
8783 }
8784 yyj = yypact[yystackp->yytops.yystates[0]->yylrState];
8785 if (yypact_value_is_default (yyj))
8786 return;
8787 yyj += yytoken;
8788 if (yyj < 0 || YYLAST < yyj || yycheck[yyj] != yytoken)
8789 {
8790 if (yydefact[yystackp->yytops.yystates[0]->yylrState] != 0)
8791 return;
8792 }
8793 else if (! yytable_value_is_error (yytable[yyj]))
8794 return;
8795 }
8796
8797 /* Reduce to one stack. */
8798 for (yyk = 0; yyk < yystackp->yytops.yysize; yyk += 1)
8799 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
8800 break;
8801 if (yyk >= yystackp->yytops.yysize)
8802 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
8803 for (yyk += 1; yyk < yystackp->yytops.yysize; yyk += 1)
8804 yymarkStackDeleted (yystackp, yyk);
8805 yyremoveDeletes (yystackp);
8806 yycompressStack (yystackp);
8807
8808 /* Now pop stack until we find a state that shifts the error token. */
8809 yystackp->yyerrState = 3;
8810 while (yystackp->yytops.yystates[0] != YY_NULLPTR)
8811 {
8812 yyGLRState *yys = yystackp->yytops.yystates[0];
8813 yyj = yypact[yys->yylrState];
8814 if (! yypact_value_is_default (yyj))
8815 {
8816 yyj += YYTERROR;
8817 if (0 <= yyj && yyj <= YYLAST && yycheck[yyj] == YYTERROR
8818 && yyisShiftAction (yytable[yyj]))
8819 {
8820 /* Shift the error token. */
8821 YY_SYMBOL_PRINT ("Shifting", yystos[yytable[yyj]],
8822 &yylval, &yyerrloc);
8823 yyglrShift (yystackp, 0, yytable[yyj],
8824 yys->yyposn, &yylval);
8825 yys = yystackp->yytops.yystates[0];
8826 break;
8827 }
8828 }
8829 if (yys->yypred != YY_NULLPTR)
8830 yydestroyGLRState ("Error: popping", yys, P, tokens, index);
8831 yystackp->yytops.yystates[0] = yys->yypred;
8832 yystackp->yynextFree -= 1;
8833 yystackp->yyspaceLeft += 1;
8834 }
8835 if (yystackp->yytops.yystates[0] == YY_NULLPTR)
8836 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
8837 }
8838
8839 #define YYCHK1(YYE) \
8840 do { \
8841 switch (YYE) { \
8842 case yyok: \
8843 break; \
8844 case yyabort: \
8845 goto yyabortlab; \
8846 case yyaccept: \
8847 goto yyacceptlab; \
8848 case yyerr: \
8849 goto yyuser_error; \
8850 default: \
8851 goto yybuglab; \
8852 } \
8853 } while (0)
8854
8855 /*----------.
8856 | yyparse. |
8857 `----------*/
8858
8859 int
8860 yyparse (struct psi_parser *P, struct psi_plist *tokens, size_t *index)
8861 {
8862 int yyresult;
8863 yyGLRStack yystack;
8864 yyGLRStack* const yystackp = &yystack;
8865 size_t yyposn;
8866
8867 YYDPRINTF ((stderr, "Starting parse\n"));
8868
8869 yychar = YYEMPTY;
8870 yylval = yyval_default;
8871
8872 /* User initialization code. */
8873 #line 144 "src/parser_proc_grammar.y" /* glr.c:2261 */
8874 {
8875 }
8876
8877 #line 8878 "src/parser_proc.c" /* glr.c:2261 */
8878
8879 if (! yyinitGLRStack (yystackp, YYINITDEPTH))
8880 goto yyexhaustedlab;
8881 switch (YYSETJMP (yystack.yyexception_buffer))
8882 {
8883 case 0: break;
8884 case 1: goto yyabortlab;
8885 case 2: goto yyexhaustedlab;
8886 default: goto yybuglab;
8887 }
8888 yyglrShift (&yystack, 0, 0, 0, &yylval);
8889 yyposn = 0;
8890
8891 while (yytrue)
8892 {
8893 /* For efficiency, we have two loops, the first of which is
8894 specialized to deterministic operation (single stack, no
8895 potential ambiguity). */
8896 /* Standard mode */
8897 while (yytrue)
8898 {
8899 yyRuleNum yyrule;
8900 int yyaction;
8901 const short* yyconflicts;
8902
8903 yyStateNum yystate = yystack.yytops.yystates[0]->yylrState;
8904 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
8905 if (yystate == YYFINAL)
8906 goto yyacceptlab;
8907 if (yyisDefaultedState (yystate))
8908 {
8909 yyrule = yydefaultAction (yystate);
8910 if (yyrule == 0)
8911 {
8912 yyreportSyntaxError (&yystack, P, tokens, index);
8913 goto yyuser_error;
8914 }
8915 YYCHK1 (yyglrReduce (&yystack, 0, yyrule, yytrue, P, tokens, index));
8916 }
8917 else
8918 {
8919 yySymbol yytoken;
8920 if (yychar == YYEMPTY)
8921 {
8922 YYDPRINTF ((stderr, "Reading a token: "));
8923 yychar = yylex (&yylval, P, tokens, index);
8924 }
8925
8926 if (yychar <= YYEOF)
8927 {
8928 yychar = yytoken = YYEOF;
8929 YYDPRINTF ((stderr, "Now at end of input.\n"));
8930 }
8931 else
8932 {
8933 yytoken = YYTRANSLATE (yychar);
8934 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
8935 }
8936
8937 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
8938 if (*yyconflicts != 0)
8939 break;
8940 if (yyisShiftAction (yyaction))
8941 {
8942 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
8943 yychar = YYEMPTY;
8944 yyposn += 1;
8945 yyglrShift (&yystack, 0, yyaction, yyposn, &yylval);
8946 if (0 < yystack.yyerrState)
8947 yystack.yyerrState -= 1;
8948 }
8949 else if (yyisErrorAction (yyaction))
8950 {
8951 yyreportSyntaxError (&yystack, P, tokens, index);
8952 goto yyuser_error;
8953 }
8954 else
8955 YYCHK1 (yyglrReduce (&yystack, 0, -yyaction, yytrue, P, tokens, index));
8956 }
8957 }
8958
8959 while (yytrue)
8960 {
8961 yySymbol yytoken_to_shift;
8962 size_t yys;
8963
8964 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
8965 yystackp->yytops.yylookaheadNeeds[yys] = yychar != YYEMPTY;
8966
8967 /* yyprocessOneStack returns one of three things:
8968
8969 - An error flag. If the caller is yyprocessOneStack, it
8970 immediately returns as well. When the caller is finally
8971 yyparse, it jumps to an error label via YYCHK1.
8972
8973 - yyok, but yyprocessOneStack has invoked yymarkStackDeleted
8974 (&yystack, yys), which sets the top state of yys to NULL. Thus,
8975 yyparse's following invocation of yyremoveDeletes will remove
8976 the stack.
8977
8978 - yyok, when ready to shift a token.
8979
8980 Except in the first case, yyparse will invoke yyremoveDeletes and
8981 then shift the next token onto all remaining stacks. This
8982 synchronization of the shift (that is, after all preceding
8983 reductions on all stacks) helps prevent double destructor calls
8984 on yylval in the event of memory exhaustion. */
8985
8986 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
8987 YYCHK1 (yyprocessOneStack (&yystack, yys, yyposn, P, tokens, index));
8988 yyremoveDeletes (&yystack);
8989 if (yystack.yytops.yysize == 0)
8990 {
8991 yyundeleteLastStack (&yystack);
8992 if (yystack.yytops.yysize == 0)
8993 yyFail (&yystack, P, tokens, index, YY_("syntax error"));
8994 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
8995 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
8996 yyreportSyntaxError (&yystack, P, tokens, index);
8997 goto yyuser_error;
8998 }
8999
9000 /* If any yyglrShift call fails, it will fail after shifting. Thus,
9001 a copy of yylval will already be on stack 0 in the event of a
9002 failure in the following loop. Thus, yychar is set to YYEMPTY
9003 before the loop to make sure the user destructor for yylval isn't
9004 called twice. */
9005 yytoken_to_shift = YYTRANSLATE (yychar);
9006 yychar = YYEMPTY;
9007 yyposn += 1;
9008 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
9009 {
9010 int yyaction;
9011 const short* yyconflicts;
9012 yyStateNum yystate = yystack.yytops.yystates[yys]->yylrState;
9013 yygetLRActions (yystate, yytoken_to_shift, &yyaction,
9014 &yyconflicts);
9015 /* Note that yyconflicts were handled by yyprocessOneStack. */
9016 YYDPRINTF ((stderr, "On stack %lu, ", (unsigned long) yys));
9017 YY_SYMBOL_PRINT ("shifting", yytoken_to_shift, &yylval, &yylloc);
9018 yyglrShift (&yystack, yys, yyaction, yyposn,
9019 &yylval);
9020 YYDPRINTF ((stderr, "Stack %lu now in state #%d\n",
9021 (unsigned long) yys,
9022 yystack.yytops.yystates[yys]->yylrState));
9023 }
9024
9025 if (yystack.yytops.yysize == 1)
9026 {
9027 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
9028 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
9029 yycompressStack (&yystack);
9030 break;
9031 }
9032 }
9033 continue;
9034 yyuser_error:
9035 yyrecoverSyntaxError (&yystack, P, tokens, index);
9036 yyposn = yystack.yytops.yystates[0]->yyposn;
9037 }
9038
9039 yyacceptlab:
9040 yyresult = 0;
9041 goto yyreturn;
9042
9043 yybuglab:
9044 YYASSERT (yyfalse);
9045 goto yyabortlab;
9046
9047 yyabortlab:
9048 yyresult = 1;
9049 goto yyreturn;
9050
9051 yyexhaustedlab:
9052 yyerror (P, tokens, index, YY_("memory exhausted"));
9053 yyresult = 2;
9054 goto yyreturn;
9055
9056 yyreturn:
9057 if (yychar != YYEMPTY)
9058 yydestruct ("Cleanup: discarding lookahead",
9059 YYTRANSLATE (yychar), &yylval, P, tokens, index);
9060
9061 /* If the stack is well-formed, pop the stack until it is empty,
9062 destroying its entries as we go. But free the stack regardless
9063 of whether it is well-formed. */
9064 if (yystack.yyitems)
9065 {
9066 yyGLRState** yystates = yystack.yytops.yystates;
9067 if (yystates)
9068 {
9069 size_t yysize = yystack.yytops.yysize;
9070 size_t yyk;
9071 for (yyk = 0; yyk < yysize; yyk += 1)
9072 if (yystates[yyk])
9073 {
9074 while (yystates[yyk])
9075 {
9076 yyGLRState *yys = yystates[yyk];
9077 if (yys->yypred != YY_NULLPTR)
9078 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
9079 yystates[yyk] = yys->yypred;
9080 yystack.yynextFree -= 1;
9081 yystack.yyspaceLeft += 1;
9082 }
9083 break;
9084 }
9085 }
9086 yyfreeGLRStack (&yystack);
9087 }
9088
9089 return yyresult;
9090 }
9091
9092 /* DEBUGGING ONLY */
9093 #if YYDEBUG
9094 static void
9095 yy_yypstack (yyGLRState* yys)
9096 {
9097 if (yys->yypred)
9098 {
9099 yy_yypstack (yys->yypred);
9100 YYFPRINTF (stderr, " -> ");
9101 }
9102 YYFPRINTF (stderr, "%d@%lu", yys->yylrState,
9103 (unsigned long) yys->yyposn);
9104 }
9105
9106 static void
9107 yypstates (yyGLRState* yyst)
9108 {
9109 if (yyst == YY_NULLPTR)
9110 YYFPRINTF (stderr, "<null>");
9111 else
9112 yy_yypstack (yyst);
9113 YYFPRINTF (stderr, "\n");
9114 }
9115
9116 static void
9117 yypstack (yyGLRStack* yystackp, size_t yyk)
9118 {
9119 yypstates (yystackp->yytops.yystates[yyk]);
9120 }
9121
9122 #define YYINDEX(YYX) \
9123 ((YYX) == YY_NULLPTR ? -1 : (yyGLRStackItem*) (YYX) - yystackp->yyitems)
9124
9125
9126 static void
9127 yypdumpstack (yyGLRStack* yystackp)
9128 {
9129 yyGLRStackItem* yyp;
9130 size_t yyi;
9131 for (yyp = yystackp->yyitems; yyp < yystackp->yynextFree; yyp += 1)
9132 {
9133 YYFPRINTF (stderr, "%3lu. ",
9134 (unsigned long) (yyp - yystackp->yyitems));
9135 if (*(yybool *) yyp)
9136 {
9137 YYASSERT (yyp->yystate.yyisState);
9138 YYASSERT (yyp->yyoption.yyisState);
9139 YYFPRINTF (stderr, "Res: %d, LR State: %d, posn: %lu, pred: %ld",
9140 yyp->yystate.yyresolved, yyp->yystate.yylrState,
9141 (unsigned long) yyp->yystate.yyposn,
9142 (long) YYINDEX (yyp->yystate.yypred));
9143 if (! yyp->yystate.yyresolved)
9144 YYFPRINTF (stderr, ", firstVal: %ld",
9145 (long) YYINDEX (yyp->yystate
9146 .yysemantics.yyfirstVal));
9147 }
9148 else
9149 {
9150 YYASSERT (!yyp->yystate.yyisState);
9151 YYASSERT (!yyp->yyoption.yyisState);
9152 YYFPRINTF (stderr, "Option. rule: %d, state: %ld, next: %ld",
9153 yyp->yyoption.yyrule - 1,
9154 (long) YYINDEX (yyp->yyoption.yystate),
9155 (long) YYINDEX (yyp->yyoption.yynext));
9156 }
9157 YYFPRINTF (stderr, "\n");
9158 }
9159 YYFPRINTF (stderr, "Tops:");
9160 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
9161 YYFPRINTF (stderr, "%lu: %ld; ", (unsigned long) yyi,
9162 (long) YYINDEX (yystackp->yytops.yystates[yyi]));
9163 YYFPRINTF (stderr, "\n");
9164 }
9165 #endif
9166
9167 #undef yylval
9168 #undef yychar
9169 #undef yynerrs
9170
9171 /* Substitute the variable and function names. */
9172 #define yyparse psi_parser_proc_parse
9173 #define yylex psi_parser_proc_lex
9174 #define yyerror psi_parser_proc_error
9175 #define yylval psi_parser_proc_lval
9176 #define yychar psi_parser_proc_char
9177 #define yydebug psi_parser_proc_debug
9178 #define yynerrs psi_parser_proc_nerrs
9179
9180 #line 2275 "src/parser_proc_grammar.y" /* glr.c:2575 */
9181
9182
9183 /* epilogue */
9184
9185 static int psi_parser_proc_lex(YYSTYPE *lvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
9186 {
9187 struct psi_token *token;
9188
9189 if (psi_plist_get(tokens, (*index)++, &token)) {
9190 if (P->flags & PSI_DEBUG) {
9191 psi_token_dump(2, token);
9192 }
9193
9194 *((struct psi_token **)lvalp) = token;
9195 return token->type;
9196 } else {
9197 (*index)--;
9198 PSI_DEBUG_PRINT(P, "EOF(%d)\n", PSI_T_EOF);
9199 }
9200
9201 return PSI_T_EOF;
9202 }
9203
9204 static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char *msg)
9205 {
9206 struct psi_token *T = NULL;
9207 size_t last;
9208
9209 if (*index == 0) {
9210 last = 0;
9211 } else {
9212 last = --(*index);
9213 }
9214
9215 psi_plist_get(tokens, last, &T);
9216 if (T) {
9217 P->error(PSI_DATA(P), T, PSI_WARNING, "PSI %s at col %u", msg, T->col);
9218 } else {
9219 P->error(PSI_DATA(P), NULL, PSI_WARNING, "PSI %s", msg);
9220 }
9221 P->errors++;
9222 }
9223