parser: RETURN [<native call> AS] SET_FUNC
[m6w6/ext-psi] / src / parser_proc.c
1 /* A Bison parser, made by GNU Bison 3.0.4. */
2
3 /* Skeleton implementation for Bison GLR parsers in C
4
5 Copyright (C) 2002-2015 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.0.4"
40
41 /* Skeleton name. */
42 #define YYSKELETON_NAME "glr.c"
43
44 /* Pure parsers. */
45 #define YYPURE 1
46
47
48 /* "%code top" blocks. */
49 #line 1 "src/parser_proc_grammar.y" /* glr.c:222 */
50
51 #include "php_psi_stdinc.h"
52
53 #line 54 "src/parser_proc.c" /* glr.c:222 */
54
55
56 /* Substitute the variable and function names. */
57 #define yyparse psi_parser_proc_parse
58 #define yylex psi_parser_proc_lex
59 #define yyerror psi_parser_proc_error
60 #define yydebug psi_parser_proc_debug
61
62
63 /* First part of user declarations. */
64
65 #line 66 "src/parser_proc.c" /* glr.c:240 */
66
67 # ifndef YY_NULLPTR
68 # if defined __cplusplus && 201103L <= __cplusplus
69 # define YY_NULLPTR nullptr
70 # else
71 # define YY_NULLPTR 0
72 # endif
73 # endif
74
75 #include "parser_proc.h"
76
77 /* Enabling verbose error messages. */
78 #ifdef YYERROR_VERBOSE
79 # undef YYERROR_VERBOSE
80 # define YYERROR_VERBOSE 1
81 #else
82 # define YYERROR_VERBOSE 1
83 #endif
84
85 /* Default (constant) value used for initialization for null
86 right-hand sides. Unlike the standard yacc.c template, here we set
87 the default value of $$ to a zeroed-out value. Since the default
88 value is undefined, this behavior is technically correct. */
89 static YYSTYPE yyval_default;
90
91 /* Copy the second part of user declarations. */
92
93 #line 94 "src/parser_proc.c" /* glr.c:263 */
94 /* Unqualified %code blocks. */
95 #line 5 "src/parser_proc_grammar.y" /* glr.c:264 */
96
97 #include <assert.h>
98 #include <stdarg.h>
99
100 #include "plist.h"
101 #include "parser.h"
102
103 #define YYDEBUG 1
104 #define PSI_PARSER_PROC_DEBUG 1
105
106 static int psi_parser_proc_lex(YYSTYPE *u, struct psi_parser *P, struct psi_plist *tokens, size_t *index);
107 static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char *msg);
108
109 static inline void psi_parser_proc_add_struct(struct psi_parser *P, struct psi_decl_struct *strct)
110 {
111 assert(strct);
112 if (!P->structs) {
113 P->structs = psi_plist_init((psi_plist_dtor) psi_decl_struct_free);
114 }
115 P->structs = psi_plist_add(P->structs, &strct);
116 }
117 static inline void psi_parser_proc_add_union(struct psi_parser *P, struct psi_decl_union *u)
118 {
119 assert(u);
120 if (!P->unions) {
121 P->unions = psi_plist_init((psi_plist_dtor) psi_decl_union_free);
122 }
123 P->unions = psi_plist_add(P->unions, &u);
124 }
125 static inline void psi_parser_proc_add_enum(struct psi_parser *P, struct psi_decl_enum *e)
126 {
127 assert(e);
128 if (!P->enums) {
129 P->enums = psi_plist_init((psi_plist_dtor) psi_decl_enum_free);
130 }
131 P->enums = psi_plist_add(P->enums, &e);
132 }
133 static inline void psi_parser_proc_add_typedef(struct psi_parser *P, struct psi_decl_arg *def)
134 {
135 assert(def);
136 if (!P->types) {
137 P->types = psi_plist_init((psi_plist_dtor) psi_decl_arg_free);
138 }
139 P->types = psi_plist_add(P->types, &def);
140 }
141 static inline void psi_parser_proc_add_const(struct psi_parser *P, struct psi_const *cnst) {
142 assert(cnst);
143 if (!P->consts) {
144 P->consts = psi_plist_init((psi_plist_dtor) psi_const_free);
145 }
146 P->consts = psi_plist_add(P->consts, &cnst);
147
148 }
149 static inline void psi_parser_proc_add_decl(struct psi_parser *P, struct psi_decl *decl) {
150 assert(decl);
151
152 if (psi_decl_is_blacklisted(decl->func->var->name)) {
153 psi_decl_free(&decl);
154 return;
155 }
156
157 if (!P->decls) {
158 P->decls = psi_plist_init((psi_plist_dtor) psi_decl_free);
159 }
160 P->decls = psi_plist_add(P->decls, &decl);
161 }
162 static inline void psi_parser_proc_add_impl(struct psi_parser *P, struct psi_impl *impl) {
163 assert(impl);
164 if (!P->impls) {
165 P->impls = psi_plist_init((psi_plist_dtor) psi_impl_free);
166 }
167 P->impls = psi_plist_add(P->impls, &impl);
168 }
169
170 /* end code */
171
172 #line 173 "src/parser_proc.c" /* glr.c:264 */
173
174 #include <stdio.h>
175 #include <stdlib.h>
176 #include <string.h>
177
178 #ifndef YY_
179 # if defined YYENABLE_NLS && YYENABLE_NLS
180 # if ENABLE_NLS
181 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
182 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
183 # endif
184 # endif
185 # ifndef YY_
186 # define YY_(Msgid) Msgid
187 # endif
188 #endif
189
190 #ifndef YYFREE
191 # define YYFREE free
192 #endif
193 #ifndef YYMALLOC
194 # define YYMALLOC malloc
195 #endif
196 #ifndef YYREALLOC
197 # define YYREALLOC realloc
198 #endif
199
200 #define YYSIZEMAX ((size_t) -1)
201
202 #ifdef __cplusplus
203 typedef bool yybool;
204 #else
205 typedef unsigned char yybool;
206 #endif
207 #define yytrue 1
208 #define yyfalse 0
209
210 #ifndef YYSETJMP
211 # include <setjmp.h>
212 # define YYJMP_BUF jmp_buf
213 # define YYSETJMP(Env) setjmp (Env)
214 /* Pacify clang. */
215 # define YYLONGJMP(Env, Val) (longjmp (Env, Val), YYASSERT (0))
216 #endif
217
218 #ifndef YY_ATTRIBUTE
219 # if (defined __GNUC__ \
220 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
221 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
222 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
223 # else
224 # define YY_ATTRIBUTE(Spec) /* empty */
225 # endif
226 #endif
227
228 #ifndef YY_ATTRIBUTE_PURE
229 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
230 #endif
231
232 #ifndef YY_ATTRIBUTE_UNUSED
233 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
234 #endif
235
236 #if !defined _Noreturn \
237 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
238 # if defined _MSC_VER && 1200 <= _MSC_VER
239 # define _Noreturn __declspec (noreturn)
240 # else
241 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
242 # endif
243 #endif
244
245 /* Suppress unused-variable warnings by "using" E. */
246 #if ! defined lint || defined __GNUC__
247 # define YYUSE(E) ((void) (E))
248 #else
249 # define YYUSE(E) /* empty */
250 #endif
251
252 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
253 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
254 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
255 _Pragma ("GCC diagnostic push") \
256 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
257 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
258 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
259 _Pragma ("GCC diagnostic pop")
260 #else
261 # define YY_INITIAL_VALUE(Value) Value
262 #endif
263 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
264 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
265 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
266 #endif
267 #ifndef YY_INITIAL_VALUE
268 # define YY_INITIAL_VALUE(Value) /* Nothing. */
269 #endif
270
271
272 #ifndef YYASSERT
273 # define YYASSERT(Condition) ((void) ((Condition) || (abort (), 0)))
274 #endif
275
276 /* YYFINAL -- State number of the termination state. */
277 #define YYFINAL 169
278 /* YYLAST -- Last index in YYTABLE. */
279 #define YYLAST 3764
280
281 /* YYNTOKENS -- Number of terminals. */
282 #define YYNTOKENS 128
283 /* YYNNTS -- Number of nonterminals. */
284 #define YYNNTS 135
285 /* YYNRULES -- Number of rules. */
286 #define YYNRULES 624
287 /* YYNRULES -- Number of states. */
288 #define YYNSTATES 879
289 /* YYMAXRHS -- Maximum number of symbols on right-hand side of rule. */
290 #define YYMAXRHS 13
291 /* YYMAXLEFT -- Maximum number of symbols to the left of a handle
292 accessed by $0, $-1, etc., in any rule. */
293 #define YYMAXLEFT 0
294
295 /* YYTRANSLATE(X) -- Bison symbol number corresponding to X. */
296 #define YYUNDEFTOK 2
297 #define YYMAXUTOK 382
298
299 #define YYTRANSLATE(YYX) \
300 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
301
302 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
303 static const unsigned char yytranslate[] =
304 {
305 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
306 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
307 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
308 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
309 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
310 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
311 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
312 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
313 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
314 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
315 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
316 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
317 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
318 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
319 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
320 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
321 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
322 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
323 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
324 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
325 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
326 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
327 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
328 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
329 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
330 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
331 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
332 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
333 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
334 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
335 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
336 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
337 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
338 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
339 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
340 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
341 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
342 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
343 125, 126, 127
344 };
345
346 #if YYDEBUG
347 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
348 static const unsigned short int yyrline[] =
349 {
350 0, 379, 379, 379, 379, 379, 379, 379, 379, 379,
351 379, 379, 379, 379, 379, 379, 379, 379, 379, 379,
352 380, 380, 380, 380, 381, 381, 381, 381, 381, 381,
353 381, 381, 381, 381, 381, 381, 381, 381, 381, 381,
354 381, 381, 381, 382, 382, 382, 382, 382, 382, 382,
355 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
356 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
357 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
358 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
359 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
360 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
361 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
362 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
363 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
364 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
365 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
366 382, 383, 383, 383, 383, 383, 383, 383, 383, 383,
367 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
368 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
369 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
370 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
371 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
372 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
373 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
374 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
375 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
376 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
377 383, 383, 383, 383, 383, 383, 383, 387, 388, 391,
378 392, 395, 396, 397, 398, 404, 412, 415, 418, 419,
379 420, 423, 426, 429, 432, 438, 444, 447, 453, 476,
380 480, 484, 489, 493, 497, 501, 508, 509, 513, 514,
381 518, 519, 520, 524, 525, 529, 530, 534, 535, 536,
382 540, 541, 545, 546, 547, 548, 549, 550, 551, 555,
383 560, 568, 571, 574, 575, 581, 586, 594, 597, 601,
384 605, 612, 616, 620, 624, 629, 639, 649, 654, 659,
385 663, 669, 678, 681, 685, 689, 695, 702, 708, 709,
386 710, 711, 715, 718, 749, 756, 757, 758, 759, 763,
387 766, 775, 781, 784, 790, 793, 799, 800, 808, 819,
388 828, 840, 841, 845, 855, 864, 876, 879, 882, 886,
389 890, 894, 899, 904, 912, 913, 914, 920, 923, 926,
390 932, 933, 937, 940, 943, 949, 952, 955, 963, 975,
391 978, 981, 988, 991, 1001, 1004, 1007, 1010, 1011, 1012,
392 1016, 1019, 1022, 1033, 1036, 1042, 1043, 1047, 1048, 1052,
393 1056, 1062, 1063, 1069, 1072, 1078, 1081, 1084, 1090, 1094,
394 1095, 1099, 1100, 1104, 1105, 1112, 1113, 1117, 1124, 1135,
395 1142, 1153, 1160, 1171, 1182, 1196, 1197, 1209, 1212, 1215,
396 1218, 1225, 1228, 1234, 1243, 1255, 1263, 1266, 1276, 1289,
397 1294, 1302, 1312, 1322, 1325, 1329, 1335, 1349, 1366, 1369,
398 1375, 1382, 1392, 1399, 1402, 1408, 1413, 1421, 1425, 1429,
399 1433, 1437, 1441, 1448, 1452, 1456, 1460, 1464, 1468, 1474,
400 1478, 1485, 1488, 1499, 1503, 1507, 1513, 1526, 1539, 1552,
401 1555, 1562, 1565, 1568, 1571, 1577, 1581, 1588, 1591, 1594,
402 1604, 1607, 1613, 1614, 1620, 1623, 1629, 1630, 1640, 1643,
403 1650, 1655, 1660, 1670, 1673, 1679, 1682, 1688, 1695, 1702,
404 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1714, 1717,
405 1723, 1726, 1729, 1732, 1735, 1741, 1745, 1753, 1754, 1758,
406 1765, 1768, 1771, 1774, 1778, 1781, 1787, 1791, 1799, 1806,
407 1814, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830,
408 1831, 1835, 1838, 1844, 1847, 1853, 1854, 1858, 1861, 1867,
409 1870, 1876, 1883, 1887, 1894, 1897, 1900, 1906, 1913, 1916,
410 1919, 1926, 1931, 1939, 1940, 1941, 1942, 1943, 1944, 1945,
411 1946, 1950, 1953, 1959, 1962, 1968, 1975, 1976, 1980, 1987,
412 1990, 1996, 2004, 2007, 2013
413 };
414 #endif
415
416 #if YYDEBUG || YYERROR_VERBOSE || 1
417 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
418 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
419 static const char *const yytname[] =
420 {
421 "\"end of file\"", "error", "$undefined", "BOOL", "CHAR", "SHORT",
422 "INT", "SIGNED", "UNSIGNED", "LONG", "FLOAT", "DOUBLE", "STRING",
423 "MIXED", "ARRAY", "OBJECT", "CALLABLE", "VOID", "ZVAL", "NULL", "TRUE",
424 "FALSE", "NAME", "NSNAME", "DOLLAR_NAME", "NUMBER", "QUOTED_STRING",
425 "QUOTED_CHAR", "SIZEOF", "VOLATILE", "\"end of line\"", "\";\"", "\"(\"",
426 "\")\"", "\",\"", "\":\"", "\"{\"", "\"}\"", "\"[\"", "\"]\"", "\"=\"",
427 "\"#\"", "\"|\"", "\"^\"", "\"&\"", "\"<<\"", "\">>\"", "\"+\"", "\"-\"",
428 "\"*\"", "\"/\"", "\"%\"", "\"<\"", "\">\"", "\">=\"", "\"<=\"",
429 "\"||\"", "\"&&\"", "\"==\"", "\"!=\"", "\"~\"", "\"!\"", "\".\"",
430 "\"\\\\\"", "\"...\"", "\"?\"", "PRAGMA", "PRAGMA_ONCE", "LINE", "ERROR",
431 "WARNING", "IF", "IFDEF", "IFNDEF", "ELSE", "ELIF", "ENDIF", "DEFINE",
432 "DEFINED", "UNDEF", "IMPORT", "INCLUDE", "INCLUDE_NEXT", "TYPEDEF",
433 "STRUCT", "UNION", "ENUM", "CONST", "LIB", "STATIC", "CALLBACK",
434 "FUNCTION", "LET", "SET", "TEMP", "FREE", "RETURN", "AS", "PRE_ASSERT",
435 "POST_ASSERT", "BOOLVAL", "INTVAL", "STRVAL", "PATHVAL", "STRLEN",
436 "FLOATVAL", "ARRVAL", "OBJVAL", "COUNT", "CALLOC", "TO_BOOL", "TO_INT",
437 "TO_STRING", "TO_FLOAT", "TO_ARRAY", "TO_OBJECT", "COMMENT",
438 "WHITESPACE", "NO_WHITESPACE", "CPP_HEADER", "CPP_ATTRIBUTE",
439 "CPP_EXTENSION", "CPP_PASTE", "CPP_INLINE", "CPP_RESTRICT", "CPP_ASM",
440 "BINARY", "UNARY", "$accept", "binary_op_token", "unary_op_token",
441 "name_token", "any_noeol_token", "any_nobrace_token", "file", "blocks",
442 "block", "lib", "cpp", "cpp_exp", "cpp_ignored_token",
443 "cpp_message_token", "cpp_include_token", "cpp_header_token",
444 "cpp_no_arg_token", "cpp_name_arg_token", "cpp_exp_arg_token",
445 "cpp_special_name_token", "cpp_macro_decl", "cpp_macro_sig",
446 "cpp_macro_sig_args", "cpp_macro_decl_tokens",
447 "cpp_macro_decl_token_list", "cpp_macro_exp", "cpp_macro_call_args",
448 "cpp_macro_call_arg_list", "constant", "constant_type",
449 "constant_type_token", "impl_def_val", "impl_def_val_token",
450 "decl_typedef", "typedef", "typedef_anon", "typedef_decl",
451 "typedef_anon_decl", "qualified_decl_type", "decl_type",
452 "decl_type_complex", "decl_type_simple", "decl_real_type", "int_signed",
453 "int_width", "decl_int_type", "int_signed_types", "signed_short_types",
454 "signed_long_types", "int_width_types", "decl_stmt", "decl_asm",
455 "ignored_quoted_strings", "decl_ext_var_stmt", "decl_ext_var",
456 "decl_ext_var_list", "decl_vars", "ignored_decl", "ignored_decl_body",
457 "ignored_decl_body_stmts", "ignored_decl_body_stmt", "decl", "decl_body",
458 "decl_func_body", "decl_functor_body", "decl_functor", "decl_func",
459 "decl_args", "decl_anon_arg", "decl_arg", "decl_var", "decl_union",
460 "decl_struct", "decl_struct_args", "struct_args_block", "struct_args",
461 "struct_arg_var_list", "decl_vars_with_layout", "decl_enum",
462 "decl_enum_items", "decl_enum_item", "num_exp", "number", "sizeof",
463 "sizeof_body", "sizeof_body_notypes", "enum_name", "union_name",
464 "struct_name", "optional_name", "decl_layout", "align_and_size",
465 "array_size", "indirection", "pointers", "asterisks", "asterisk", "impl",
466 "impl_func", "impl_args", "impl_arg", "impl_var", "impl_type",
467 "impl_type_token", "impl_stmts", "impl_stmt", "let_stmt", "let_exp",
468 "let_exp_byref", "let_exp_assign", "let_calloc", "let_callback",
469 "let_func", "let_func_token", "let_func_exps", "let_exps",
470 "callback_rval", "callback_arg_list", "callback_args", "return_stmt",
471 "return_exp", "call_decl_vars", "set_stmt", "set_exp", "set_func",
472 "set_func_token", "set_func_exps", "set_exps", "assert_stmt",
473 "assert_stmt_token", "free_stmt", "free_exps", "free_exp", "reference",
474 "byref", YY_NULLPTR
475 };
476 #endif
477
478 #define YYPACT_NINF -692
479 #define YYTABLE_NINF -623
480
481 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
482 STATE-NUM. */
483 static const short int yypact[] =
484 {
485 505, -692, -692, -692, -692, -692, 108, -692, -692, 2618,
486 1668, 731, -692, -692, 1719, 552, 3473, 3473, 3473, 2425,
487 37, 261, 10, -692, 1440, 1894, 71, 505, -692, -692,
488 -692, -692, -692, 2844, -692, -692, -692, -692, 143, 119,
489 -692, -692, -692, 65, -692, -23, -692, -692, 47, 84,
490 118, -692, -692, -692, -692, 140, -692, 146, -692, -692,
491 -692, -692, -692, 831, -692, 91, 100, -692, -692, -692,
492 -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
493 -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
494 -692, -692, -692, -692, -692, -692, -692, 2957, -10, -692,
495 -692, -692, -692, 3473, 3473, 3473, 2685, -692, 104, -692,
496 -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
497 -692, -692, 682, -692, -692, -692, -692, 124, 957, 957,
498 24, -692, 682, 2505, 2618, 3473, 3473, 2120, 134, -692,
499 -692, -692, 158, 3473, 164, 164, 53, 53, 157, -692,
500 -692, 178, 180, -692, 91, 183, -692, -692, 190, 1894,
501 173, 175, -692, 199, -692, 2459, 1369, -23, 173, -692,
502 -692, 185, -692, 192, 3473, -692, 221, -692, 67, -692,
503 -692, 143, -692, -692, 197, 201, 2651, 2651, 3473, 181,
504 3473, -692, -692, 91, -692, -692, -692, -692, -692, -692,
505 2844, -692, -692, -692, -692, -692, -692, -692, 110, 957,
506 -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
507 -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
508 -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
509 -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
510 -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
511 -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
512 -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
513 -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
514 -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
515 -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
516 -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
517 -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
518 -692, -692, 957, -692, -692, -692, -692, -692, -692, -692,
519 -692, 48, 2505, -692, -692, -692, -692, 3070, 2505, 202,
520 3627, -692, 205, 133, -692, 137, -692, -692, -692, -692,
521 198, 204, 204, 25, 25, 3183, 206, -692, 173, 1209,
522 -692, 181, 209, 207, 211, -692, 2053, -692, 91, 185,
523 -692, -692, -692, 241, -692, -692, 222, -692, 28, 2768,
524 2844, 129, -692, -692, 144, 215, 78, -692, 2844, 2166,
525 2844, 3473, 2844, -692, -692, 12, -692, -692, -692, -692,
526 -692, 2392, -692, 223, 3473, 247, -692, 3473, 250, -692,
527 -692, -692, -692, 458, 262, -692, 2948, 3473, -692, -692,
528 2505, -692, -692, -692, -692, -692, -692, -692, -692, -692,
529 -692, -692, -692, -692, -692, -692, -692, -692, -692, 2505,
530 2505, -692, 253, 1397, 2844, 2844, -692, -692, -692, -692,
531 91, -692, 1601, -692, -692, -692, -692, -692, -692, -692,
532 -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
533 -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
534 -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
535 -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
536 -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
537 -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
538 -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
539 -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
540 -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
541 -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
542 -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
543 -692, -692, 1083, -692, 165, 535, -692, -692, -692, -692,
544 -692, -692, 1488, -692, 2392, -692, 3603, -692, -692, 3473,
545 -692, -692, -692, 26, 2957, 91, 192, 185, 1635, 185,
546 2313, 2392, 3473, -692, 246, 256, 3651, 248, 258, -692,
547 259, 268, 254, 273, 51, -692, 274, 276, -692, -692,
548 -692, 2826, -692, 260, 2844, 3242, 91, 277, -692, -692,
549 -692, 279, 3627, 283, 275, 3554, -692, 292, 2120, 285,
550 -692, -692, 2731, 1331, 3473, 164, 164, -692, -692, 3473,
551 90, -692, -692, -692, 287, -692, 3651, -692, -692, -692,
552 -692, -692, -692, -692, -692, -692, -692, -692, -692, 286,
553 147, -692, 10, -692, 289, 731, 290, 3061, -692, -692,
554 2392, 2392, 291, -692, -692, 3183, -692, 28, 293, -692,
555 -692, 296, 3651, -692, 1714, -692, 2166, -692, 2844, -692,
556 10, 2844, -692, 3473, 3355, -692, -692, -692, -692, -692,
557 -692, 297, 300, -692, -692, -692, -692, 2505, 2505, 301,
558 -692, 33, 302, -692, 285, 204, 204, 306, -692, 390,
559 305, 390, 309, 2392, -692, 3579, -692, -692, 185, 185,
560 127, 216, 196, 318, 3651, -692, -692, -692, -692, 319,
561 2279, -692, 320, 2844, 182, -692, 323, 247, 325, 957,
562 3414, 3627, 3675, 328, 324, 330, 2844, 329, 302, 2844,
563 2844, -692, -692, 390, -692, 10, 1601, -692, 2392, -692,
564 -692, 318, -692, -692, -692, -692, 331, 2392, 10, -692,
565 1827, 333, 337, -692, 267, -692, -692, -692, 338, 335,
566 347, 285, 339, -692, 343, -692, 27, -692, 3699, 10,
567 3336, 341, 348, -692, 342, -692, -692, 139, -692, 350,
568 349, -692, 2844, -692, 361, 354, 2392, 1714, 355, -692,
569 2166, -692, -692, 358, 366, 367, 285, 362, 1940, 3174,
570 246, -692, -692, -692, 374, 2279, -692, -692, 375, 379,
571 -692, 380, 383, 384, -692, -692, 1714, -692, 392, -692,
572 390, 391, 2166, -692, 394, -692, -692, -692, -692
573 };
574
575 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
576 Performed when YYTABLE does not specify something else to do. Zero
577 means the default is an error. */
578 static const unsigned short int yydefact[] =
579 {
580 277, 405, 402, 406, 400, 401, 403, 397, 398, 0,
581 396, 0, 282, 281, 0, 0, 0, 0, 509, 0,
582 0, 0, 622, 283, 0, 0, 0, 278, 279, 285,
583 284, 286, 290, 520, 388, 390, 389, 395, 409, 420,
584 394, 287, 289, 0, 288, 425, 443, 445, 446, 0,
585 0, 455, 292, 291, 293, 0, 294, 0, 404, 399,
586 33, 34, 610, 571, 24, 520, 526, 39, 38, 37,
587 35, 36, 32, 31, 25, 29, 28, 26, 27, 40,
588 579, 578, 576, 574, 575, 577, 573, 572, 580, 30,
589 608, 606, 605, 607, 604, 603, 456, 0, 522, 524,
590 41, 42, 396, 0, 0, 0, 0, 444, 431, 387,
591 296, 307, 304, 306, 308, 309, 320, 317, 318, 315,
592 321, 316, 0, 319, 310, 311, 312, 0, 337, 337,
593 0, 300, 0, 0, 0, 509, 509, 0, 0, 372,
594 377, 465, 376, 0, 515, 515, 391, 392, 393, 506,
595 358, 406, 397, 361, 0, 0, 357, 386, 0, 0,
596 0, 0, 624, 0, 623, 396, 0, 425, 0, 1,
597 280, 517, 466, 0, 521, 410, 414, 412, 416, 407,
598 421, 409, 408, 429, 0, 0, 457, 457, 0, 0,
599 0, 521, 527, 520, 468, 523, 525, 391, 392, 393,
600 0, 430, 323, 324, 325, 327, 328, 326, 322, 337,
601 302, 297, 68, 43, 44, 45, 46, 47, 48, 49,
602 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
603 60, 61, 62, 63, 64, 65, 66, 67, 158, 159,
604 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
605 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
606 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
607 99, 100, 101, 102, 108, 106, 107, 105, 103, 104,
608 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
609 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
610 129, 130, 131, 132, 160, 133, 134, 135, 136, 137,
611 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
612 148, 149, 150, 151, 152, 156, 153, 154, 155, 157,
613 339, 305, 338, 298, 313, 314, 299, 322, 301, 347,
614 348, 0, 0, 22, 23, 20, 21, 0, 0, 350,
615 303, 349, 456, 391, 508, 392, 507, 373, 369, 378,
616 0, 0, 0, 0, 0, 0, 0, 295, 0, 0,
617 435, 0, 0, 0, 0, 436, 0, 470, 520, 517,
618 415, 411, 417, 418, 413, 422, 0, 423, 458, 0,
619 520, 0, 459, 461, 0, 485, 0, 483, 0, 622,
620 0, 0, 0, 616, 617, 0, 548, 551, 550, 552,
621 553, 0, 554, 0, 0, 432, 433, 0, 0, 330,
622 340, 505, 504, 0, 0, 500, 0, 0, 345, 342,
623 352, 2, 3, 4, 5, 6, 7, 8, 9, 10,
624 11, 13, 12, 14, 15, 16, 17, 18, 19, 0,
625 0, 370, 0, 0, 0, 0, 473, 472, 474, 471,
626 520, 467, 362, 437, 186, 161, 162, 163, 164, 165,
627 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
628 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
629 274, 275, 187, 188, 189, 190, 191, 192, 193, 194,
630 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
631 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
632 215, 216, 217, 218, 224, 222, 223, 221, 219, 220,
633 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
634 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
635 245, 246, 247, 248, 276, 249, 250, 251, 252, 253,
636 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
637 264, 265, 266, 267, 268, 272, 269, 270, 271, 273,
638 441, 442, 0, 439, 0, 0, 371, 424, 496, 494,
639 493, 495, 0, 518, 0, 497, 0, 487, 498, 0,
640 469, 419, 427, 0, 464, 0, 462, 517, 0, 517,
641 0, 0, 0, 482, 0, 0, 599, 0, 0, 598,
642 42, 0, 0, 0, 0, 619, 0, 0, 593, 528,
643 549, 0, 454, 0, 0, 331, 520, 0, 501, 503,
644 341, 0, 354, 0, 353, 0, 343, 0, 0, 511,
645 381, 374, 382, 0, 383, 515, 515, 380, 379, 0,
646 496, 366, 367, 368, 0, 364, 363, 438, 440, 529,
647 541, 542, 543, 544, 540, 545, 546, 547, 539, 0,
648 0, 533, 622, 538, 24, 0, 0, 0, 491, 519,
649 0, 0, 0, 428, 426, 463, 449, 0, 0, 460,
650 447, 0, 486, 484, 0, 555, 622, 597, 0, 537,
651 622, 0, 618, 0, 594, 591, 615, 453, 434, 332,
652 335, 0, 333, 502, 499, 346, 351, 0, 0, 0,
653 375, 0, 478, 475, 511, 0, 0, 0, 356, 0,
654 0, 0, 535, 0, 489, 0, 490, 451, 517, 517,
655 496, 0, 31, 30, 561, 566, 562, 564, 565, 41,
656 0, 600, 611, 0, 0, 620, 610, 596, 0, 337,
657 0, 355, 344, 0, 512, 0, 0, 0, 478, 385,
658 384, 452, 530, 0, 534, 622, 362, 488, 0, 450,
659 448, 0, 563, 585, 571, 586, 0, 0, 622, 567,
660 622, 0, 0, 621, 0, 329, 334, 336, 0, 0,
661 0, 511, 479, 476, 0, 531, 0, 536, 492, 622,
662 0, 581, 0, 613, 612, 601, 556, 0, 516, 0,
663 0, 480, 0, 477, 0, 0, 0, 0, 0, 602,
664 622, 609, 592, 0, 0, 0, 511, 0, 587, 0,
665 497, 583, 559, 557, 582, 0, 570, 614, 0, 0,
666 481, 0, 0, 588, 589, 568, 0, 558, 0, 513,
667 0, 0, 622, 584, 0, 532, 569, 590, 514
668 };
669
670 /* YYPGOTO[NTERM-NUM]. */
671 static const short int yypgoto[] =
672 {
673 -692, -331, -122, -4, 93, -692, -692, -692, 401, -692,
674 -692, -692, -692, -692, -692, -692, -692, -692, -692, 298,
675 -692, -692, -692, -126, -692, -308, -692, -692, -692, -692,
676 -692, -357, -692, -692, 269, -220, 22, -212, -158, -9,
677 -692, -692, -692, 399, -692, -692, 263, -692, -692, -692,
678 -692, 280, -692, -692, -692, -692, -624, -692, -124, -692,
679 -140, 419, 32, 0, 45, -692, -692, 264, -464, 8,
680 -33, -692, -692, 85, -337, -692, -324, -692, 4, -692,
681 -157, -349, -692, -117, -692, 49, -692, -436, -418, 83,
682 -691, -125, -370, -59, -1, -692, 372, -692, 435, -692,
683 -281, -634, -674, -692, 102, -379, -692, -392, -657, 77,
684 -275, -692, -692, -666, -692, -692, -692, -692, -692, -692,
685 -692, -692, -692, -665, -395, -369, -692, -692, -692, -692,
686 -692, -692, -236, -21, -658
687 };
688
689 /* YYDEFGOTO[NTERM-NUM]. */
690 static const short int yydefgoto[] =
691 {
692 -1, 691, 594, 171, 330, 580, 26, 27, 28, 29,
693 30, 127, 128, 129, 130, 336, 131, 132, 133, 209,
694 210, 721, 722, 331, 332, 350, 643, 644, 31, 155,
695 156, 664, 665, 32, 138, 649, 650, 651, 33, 34,
696 35, 36, 37, 38, 39, 40, 179, 381, 384, 182,
697 41, 185, 603, 42, 43, 201, 415, 44, 581, 582,
698 583, 45, 46, 47, 141, 49, 50, 391, 392, 51,
699 595, 52, 53, 457, 458, 653, 777, 812, 143, 396,
700 397, 616, 597, 598, 637, 425, 55, 144, 145, 149,
701 732, 361, 377, 173, 417, 98, 99, 56, 57, 680,
702 681, 617, 682, 683, 405, 406, 407, 851, 852, 853,
703 756, 757, 758, 100, 838, 854, 796, 862, 863, 408,
704 627, 768, 409, 618, 619, 101, 801, 824, 410, 411,
705 412, 624, 625, 621, 164
706 };
707
708 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
709 positive, shift that token. If negative, reduce the rule whose
710 number is the opposite. If YYTABLE_NINF, syntax error. */
711 static const short int yytable[] =
712 {
713 172, 163, 109, 333, 54, 96, 190, 628, 97, 600,
714 157, 348, 146, 147, 148, 140, 351, 655, 108, 450,
715 362, 363, 364, 142, 454, 455, 630, 596, 390, 390,
716 620, 54, 174, 620, 426, 656, 370, 139, 759, 66,
717 429, 761, 107, 778, 375, 48, 760, 755, 742, 629,
718 334, 709, 693, 160, 162, 48, 456, 168, 774, 694,
719 65, 453, 631, 158, 191, 782, 48, 785, 775, 48,
720 48, 169, 48, 382, 421, 422, 383, 66, -446, -465,
721 423, -465, 712, 419, -515, 713, 795, 764, 360, -515,
722 767, 834, 424, 194, 759, 450, 183, 157, 450, 197,
723 198, 199, 184, 799, 398, 399, 400, 401, 402, 815,
724 403, 404, 612, 666, 195, 613, 186, 58, 208, 59,
725 831, -365, 642, -365, -365, 180, 4, 5, 337, 349,
726 352, 353, 355, 97, 414, 823, -455, 140, 200, 359,
727 66, 645, 646, 335, 699, 142, 699, 175, 176, 177,
728 187, 742, 178, 365, 211, 860, 62, 841, -496, 357,
729 -496, -496, 607, 608, 821, 358, 140, 416, -391, -510,
730 379, 759, -392, -510, 142, 857, 188, 609, 610, 855,
731 740, 741, 189, 864, 395, 835, 413, 192, 139, 759,
732 -455, 368, 191, -510, 393, 393, 875, 107, 867, 360,
733 759, -359, 669, -360, 48, 630, 366, 877, 855, 369,
734 48, 371, 655, 793, 794, 803, 634, 655, 354, 356,
735 348, 367, 372, 376, 378, 351, 348, 380, 418, 386,
736 656, 351, 387, 452, 430, 656, 451, 696, 586, 700,
737 453, 585, 587, 687, 463, 688, 462, 601, 602, 90,
738 91, 92, 93, 94, 95, 611, 632, 398, 399, 400,
739 401, 402, 702, 403, 404, 1, 2, 3, 4, 5,
740 6, 7, 8, 398, 399, 400, 401, 402, 9, 403,
741 404, 634, 635, 102, 639, 647, 704, 705, 706, 707,
742 11, 708, 709, 717, 710, 652, 80, 81, 82, 83,
743 84, 85, 86, 87, 88, 711, 714, 715, 348, 727,
744 724, 450, 725, 351, 450, 450, 726, 729, 738, 599,
745 731, 739, -24, 743, 747, 791, 748, 348, 348, 749,
746 769, 606, 351, 351, 770, 773, 776, 620, 349, 781,
747 783, 745, 746, 428, 349, 103, 104, 105, 106, 786,
748 797, 798, 22, 808, 800, 754, -595, 172, 804, 809,
749 813, 461, 810, 819, 827, 614, 825, 622, 826, 626,
750 829, 828, 830, 832, 833, 837, 840, 191, 789, 790,
751 157, 839, 844, 845, 159, 847, 848, 604, 856, 174,
752 708, 858, 859, 670, 787, 861, 671, 623, 779, 780,
753 672, 659, 673, 674, 675, 676, 677, 678, 866, 868,
754 633, 754, 869, 379, 636, 870, 871, 874, 872, 771,
755 772, 657, 658, 641, 876, 420, 349, 878, 170, 817,
756 338, 620, 842, 734, 686, 373, 730, 666, 181, 818,
757 450, 450, 668, 167, 385, 349, 349, 374, 820, 459,
758 390, 394, 390, 140, 814, 703, 161, 654, 843, 191,
759 784, 142, 1, 2, 3, 4, 5, 6, 7, 8,
760 196, 620, 638, 584, 873, 615, 792, 765, 0, 620,
761 102, 0, 0, 0, 421, 422, 0, 849, 754, 0,
762 652, 0, 0, 0, 0, 652, 0, 0, 0, 0,
763 0, 0, 424, 620, 0, 0, 754, 0, 0, 1,
764 2, 3, 4, 5, 6, 7, 8, 754, 0, 0,
765 0, 0, 9, 0, 0, 0, 0, 10, 0, 0,
766 735, 736, 0, 0, 11, 12, 13, 0, 670, 0,
767 0, 671, 103, 104, 105, 672, 14, 673, 674, 675,
768 676, 677, 678, 0, 0, 0, 1, 2, 3, 4,
769 5, 6, 7, 8, 0, 0, 0, 0, 679, 134,
770 0, 0, 0, 0, 102, 0, 0, 723, 0, 0,
771 0, 11, 0, 0, 0, 0, 0, 0, 15, 16,
772 17, 18, 19, 20, 21, 692, 22, 0, 0, 0,
773 194, 718, 0, 0, 695, 348, 348, 0, 395, 0,
774 351, 351, 0, 0, 0, 0, 393, 0, 393, 172,
775 0, 23, 0, 0, 0, 0, 24, 0, 25, 0,
776 0, 720, 0, 0, 0, 191, 135, 136, 18, 106,
777 0, 0, 0, 805, 0, 0, 0, 0, 140, 0,
778 359, 174, 654, 140, 0, 737, 142, 654, 0, 0,
779 0, 142, 0, 0, 0, 0, 0, 0, 0, 0,
780 0, 0, 0, 137, 0, 762, 157, 0, 416, 0,
781 0, 416, 0, 0, 0, 60, 0, 0, 0, 763,
782 0, 461, 0, 0, 61, 0, 604, 0, 0, 62,
783 63, 202, 203, 204, 64, 0, 0, 0, 0, 623,
784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
785 0, 0, 0, 349, 349, 0, 0, 0, 0, 0,
786 802, 0, 0, 0, 0, 1, 2, 3, 4, 5,
787 6, 7, 8, 811, 0, 0, 657, 658, 67, 68,
788 69, 70, 71, 102, 0, 0, 0, 0, 0, 0,
789 0, 0, 0, 0, 816, 0, 807, 0, 0, 0,
790 72, 0, 73, 74, 75, 76, 77, 78, 0, 79,
791 0, 0, 80, 81, 82, 83, 84, 85, 86, 87,
792 88, 89, 90, 91, 92, 93, 94, 95, 0, 846,
793 0, 0, 0, 205, 850, 206, 207, 0, 0, 0,
794 0, 0, 0, 0, 0, 103, 104, 105, 0, 0,
795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
796 0, -571, 0, 850, -571, -571, -571, -571, -571, -571,
797 -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
798 -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
799 -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
800 -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
801 -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
802 -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
803 -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
804 -571, 0, -571, 0, -571, -571, -571, -571, -571, -571,
805 -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
806 -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
807 -571, -571, -571, -571, -571, -571, -571, -571, 0, -571,
808 -571, 0, -571, -571, -571, -571, -571, 212, 0, 0,
809 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
810 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
811 233, 234, 235, 236, 237, 238, 239, 0, 240, 241,
812 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
813 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
814 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
815 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
816 282, 283, 284, 285, 286, 287, 288, 0, 289, 0,
817 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
818 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
819 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
820 320, 321, 322, 323, 0, 0, 324, 0, 325, 326,
821 327, 328, 329, 464, 0, 0, 465, 466, 467, 468,
822 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
823 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
824 489, 490, 491, 0, 492, 493, 494, 495, 496, 369,
825 667, 497, 498, 499, 500, 501, 502, 503, 504, 505,
826 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
827 516, 517, 518, 519, 520, 521, 522, 523, 524, 525,
828 526, 527, 528, 529, 530, 531, 532, 533, 534, 535,
829 536, 537, 538, 0, 539, 0, 540, 541, 542, 543,
830 544, 545, 546, 547, 548, 549, 550, 551, 552, 553,
831 554, 555, 556, 557, 558, 559, 560, 561, 562, 563,
832 564, 565, 566, 567, 568, 569, 570, 571, 572, 573,
833 0, 0, 574, 0, 575, 576, 577, 578, 579, 464,
834 0, 0, 465, 466, 467, 468, 469, 470, 471, 472,
835 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
836 483, 484, 485, 486, 487, 488, 489, 490, 491, 0,
837 492, 493, 494, 495, 496, 369, 0, 497, 498, 499,
838 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
839 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
840 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
841 530, 531, 532, 533, 534, 535, 536, 537, 538, 0,
842 539, 0, 540, 541, 542, 543, 544, 545, 546, 547,
843 548, 549, 550, 551, 552, 553, 554, 555, 556, 557,
844 558, 559, 560, 561, 562, 563, 564, 565, 566, 567,
845 568, 569, 570, 571, 572, 573, 0, 0, 574, 0,
846 575, 576, 577, 578, 579, 1, 2, 3, 4, 5,
847 6, 7, 8, 0, 0, 0, 0, 0, 9, 0,
848 0, 0, 0, 102, 0, 0, 0, 0, 0, 0,
849 11, 0, 0, 0, 0, 0, 0, 0, 733, 0,
850 0, 0, 0, 1, 2, 3, 4, 5, 6, 7,
851 8, 0, 0, 0, 0, 0, 9, 0, 0, 0,
852 0, 102, 0, 0, 0, 0, 0, 0, 11, 0,
853 0, 1, 2, 3, 4, 5, 6, 7, 8, 0,
854 0, 0, 0, 0, 9, 135, 136, 18, 106, 102,
855 0, 0, 0, 0, 0, 0, 11, 0, 0, 0,
856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
857 0, 0, 0, 0, 1, 2, 3, 4, 5, 6,
858 7, 8, 648, 135, 136, 18, 106, 9, 0, 0,
859 0, 0, 165, 0, 0, 0, 0, 0, 0, 11,
860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
861 0, 135, 136, 18, 106, 0, 0, 0, 0, 0,
862 137, 60, 1, 2, 3, 4, 5, 6, 7, 8,
863 61, 0, 0, 0, 0, 62, 63, 588, 0, 0,
864 684, 589, 0, 590, 0, 591, 341, 11, 648, 0,
865 592, 0, 0, 166, 103, 104, 105, 106, 0, 0,
866 0, 0, 0, 0, 0, 343, 344, 66, 0, 0,
867 0, 0, 0, 0, 0, 0, 0, 0, 345, 346,
868 0, 0, 0, 0, 67, 68, 69, 70, 71, 0,
869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
870 0, 0, 103, 104, 105, 685, 72, 0, 73, 74,
871 75, 76, 77, 78, 0, 79, 0, 0, 80, 81,
872 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
873 92, 93, 94, 95, 60, 0, 0, 0, 0, 0,
874 0, 0, 0, 61, 0, 0, 0, 0, 62, 63,
875 660, 661, 662, 64, 589, 0, 590, 663, 591, 341,
876 0, 0, 0, 592, 0, 0, 0, 0, 0, 1,
877 2, 3, 4, 5, 6, 7, 8, 0, 343, 344,
878 66, 0, 697, 0, 0, 0, 0, 102, 0, 0,
879 0, 345, 346, 0, 11, 0, 0, 67, 68, 69,
880 70, 71, 1, 2, 3, 4, 5, 6, 7, 8,
881 0, 0, 0, 0, 0, 9, 0, 0, 0, 72,
882 102, 73, 74, 75, 76, 77, 78, 11, 79, 698,
883 0, 80, 81, 82, 83, 84, 85, 86, 87, 88,
884 89, 90, 91, 92, 93, 94, 95, 60, 0, 103,
885 104, 105, 389, 0, 0, 0, 61, 0, 0, 0,
886 0, 62, 63, 750, 0, 0, 64, 589, 0, 590,
887 0, 591, 341, 0, 0, 0, 592, 0, 0, 110,
888 0, 0, 103, 104, 105, 106, 0, 0, 162, 0,
889 0, 343, 344, 66, 0, 0, 0, 0, 0, 0,
890 0, 0, 0, 0, 345, 346, 0, 0, 0, 0,
891 67, 68, 69, 70, 71, 111, 112, 113, 114, 115,
892 116, 117, 118, 119, 120, 121, 122, 0, 123, 124,
893 125, 126, 72, 751, 752, 74, 75, 76, 77, 78,
894 0, 79, 0, 0, 80, 81, 82, 83, 84, 85,
895 86, 87, 88, 753, 90, 91, 92, 93, 94, 95,
896 60, 0, 0, 0, 0, 0, 0, 0, 0, 61,
897 0, 0, 0, 0, 62, 63, 588, 0, 0, 64,
898 589, 0, 590, 0, 591, 341, 0, 0, 0, 592,
899 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
900 0, 162, 0, 0, 343, 344, 66, 0, 0, 0,
901 0, 0, 0, 0, 0, 0, 0, 345, 346, 0,
902 0, 822, 0, 67, 68, 69, 70, 71, 1, 2,
903 3, 4, 5, 6, 7, 8, 0, 0, 0, 0,
904 0, 9, 0, 0, 0, 72, 102, 73, 74, 75,
905 76, 77, 78, 11, 79, 0, 0, 80, 81, 82,
906 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
907 93, 94, 95, 60, 0, 0, 0, 0, 0, 0,
908 0, 0, 61, 0, 0, 0, 0, 62, 63, 588,
909 0, 0, 64, 589, -622, 590, 0, 591, 341, 0,
910 0, 0, 592, 0, 0, 0, 0, 0, 103, 104,
911 105, 106, 0, 0, 162, 0, 0, 343, 344, 66,
912 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
913 345, 346, 0, 0, 0, 0, 67, 68, 69, 70,
914 71, 0, 0, 0, 0, 0, 0, 0, 0, 0,
915 0, 0, 0, 0, 0, 0, 0, 0, 72, 0,
916 73, 74, 75, 76, 77, 78, 0, 79, 0, 0,
917 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
918 90, 91, 92, 93, 94, 95, 60, 0, 0, 0,
919 0, 0, 0, 0, 0, 61, 0, 0, 0, 0,
920 62, 63, 588, 0, 0, 64, 589, 0, 590, 0,
921 591, 341, 0, 0, 0, 592, 0, 0, 0, 0,
922 0, 0, 593, 0, 0, 0, 0, 0, 0, 0,
923 343, 344, 66, 0, 0, 0, 0, 0, 0, 0,
924 0, 0, 0, 345, 346, 0, 0, 0, 0, 67,
925 68, 69, 70, 71, 1, 2, 3, 4, 5, 6,
926 7, 8, 0, 0, 0, 0, 0, 9, 0, 0,
927 0, 72, 102, 73, 74, 75, 76, 77, 78, 11,
928 79, 0, 0, 80, 81, 82, 83, 84, 85, 86,
929 87, 88, 89, 90, 91, 92, 93, 94, 95, 60,
930 0, 0, 0, 0, 0, 0, 0, 0, 61, 0,
931 0, 0, 0, 62, 63, 588, 0, 0, 64, 589,
932 0, 590, 0, 591, 341, 0, 0, 0, 592, 0,
933 0, 0, 0, 0, 135, 136, 18, 106, 0, 0,
934 162, 0, 0, 343, 344, 66, 0, 0, 0, 0,
935 0, 0, 0, 0, 0, 0, 345, 346, 0, 0,
936 0, 0, 67, 68, 69, 70, 71, 0, 0, 0,
937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
938 0, 0, 0, 0, 72, 0, 73, 74, 75, 76,
939 77, 78, 0, 79, 0, 0, 80, 81, 82, 83,
940 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
941 94, 95, 60, 0, 0, 0, 0, 0, 0, 0,
942 0, 61, 0, 0, 0, 0, 62, 63, 750, 0,
943 0, 64, 589, 0, 590, 0, 591, 341, 0, 0,
944 0, 592, 0, 0, 0, 0, 0, 1, 2, 3,
945 4, 5, 6, 7, 8, 0, 343, 344, 66, 0,
946 697, 0, 0, 0, 0, 102, 0, 0, 0, 345,
947 346, 0, 11, 0, 0, 67, 68, 69, 70, 71,
948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
949 0, 0, 0, 0, 0, 0, 0, 72, 751, 752,
950 74, 75, 76, 77, 78, 0, 79, 701, 0, 80,
951 81, 82, 83, 84, 85, 86, 87, 88, 753, 90,
952 91, 92, 93, 94, 95, 60, 0, 103, 104, 105,
953 389, 0, 0, 0, 61, 0, 0, 0, 0, 62,
954 63, 588, 0, 0, 64, 589, 0, 590, 0, 591,
955 341, 0, 0, 0, 592, 0, 0, 0, 150, 1,
956 2, 151, 4, 5, 6, 152, 8, 153, 0, 343,
957 344, 66, 154, 0, 0, 0, 0, 102, 0, 0,
958 0, 0, 345, 346, 0, 0, 0, 0, 67, 68,
959 69, 70, 71, 1, 2, 3, 4, 5, 6, 7,
960 8, 0, 0, 0, 0, 0, 9, 0, 0, 0,
961 72, 102, 73, 74, 75, 76, 77, 78, 11, 79,
962 0, 0, 80, 81, 82, 83, 84, 85, 86, 87,
963 88, 89, 90, 91, 92, 93, 94, 95, 60, 103,
964 104, 105, 0, 0, 0, 0, 0, 61, 0, 0,
965 0, 0, 62, 63, 0, 0, 0, 64, 0, 0,
966 339, 0, 340, 341, 0, 0, 0, 342, 0, 0,
967 0, 0, 0, 103, 104, 105, 106, 0, 0, 0,
968 0, 0, 343, 344, 0, 0, 0, 0, 0, 0,
969 0, 0, 0, 0, 0, 345, 346, 0, 0, 0,
970 0, 67, 68, 69, 70, 71, 0, 0, 0, 0,
971 0, 0, 0, 347, 0, 0, 0, 0, 0, 0,
972 0, 0, 0, 72, 0, 73, 74, 75, 76, 77,
973 78, 0, 79, 0, 0, 80, 81, 82, 83, 84,
974 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
975 95, 60, 0, 0, 0, 0, 0, 0, 0, 0,
976 61, 0, 0, 0, 0, 62, 63, 0, 0, 0,
977 64, 0, 0, 0, 0, 0, 0, 0, 0, 0,
978 65, 0, 0, 0, 0, 1, 2, 3, 4, 5,
979 6, 7, 8, 0, 0, 0, 0, 66, 388, 0,
980 0, 0, 0, 102, 0, 0, 0, 0, 0, 0,
981 11, 0, 0, 0, 67, 68, 69, 70, 71, 1,
982 2, 3, 4, 5, 6, 7, 8, 0, 0, 0,
983 0, 0, 154, 0, 0, 0, 72, 102, 73, 74,
984 75, 76, 77, 78, 0, 79, 0, 0, 80, 81,
985 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
986 92, 93, 94, 95, 60, 103, 104, 105, 389, 0,
987 0, 0, 0, 61, 0, 0, 0, 0, 62, 63,
988 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,
989 0, 0, 0, -520, 0, 0, 0, 0, 0, 103,
990 104, 105, 1, 2, 3, 4, 5, 6, 7, 8,
991 66, 0, 0, 0, 0, 605, 0, 0, 0, 0,
992 102, 0, 0, 0, 0, 0, 0, 67, 68, 69,
993 70, 71, 0, 0, 0, 0, 0, 0, 0, 0,
994 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,
995 0, 73, 74, 75, 76, 77, 78, 0, 79, 0,
996 0, 80, 81, 82, 83, 84, 85, 86, 87, 88,
997 89, 90, 91, 92, 93, 94, 95, 60, 0, 0,
998 0, 0, 103, 104, 105, 0, 61, 716, 0, 0,
999 0, 62, 63, 0, 0, 0, 64, 0, 431, 432,
1000 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
1001 443, 444, 445, 446, 447, 448, 0, 0, 0, 0,
1002 0, 690, 0, 66, 0, 0, 0, 0, 0, 0,
1003 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1004 67, 68, 69, 70, 71, 0, 0, 0, 0, 0,
1005 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1006 0, 0, 72, 0, 73, 74, 75, 76, 77, 78,
1007 0, 79, 0, 0, 80, 81, 82, 83, 84, 85,
1008 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1009 60, 0, 0, 0, 0, 0, 0, 0, 0, 61,
1010 0, 0, 0, 0, 62, 63, 0, 0, 0, 64,
1011 0, 640, 0, 0, 0, 0, 0, 0, 0, 193,
1012 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
1013 441, 442, 443, 444, 445, 446, 447, 448, 0, 0,
1014 0, 0, 0, 449, 0, 0, 0, 0, 0, 0,
1015 0, 0, 0, 67, 68, 69, 70, 71, 0, 0,
1016 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1017 0, 0, 0, 0, 0, 72, 0, 73, 74, 75,
1018 76, 77, 78, 0, 79, 0, 0, 80, 81, 82,
1019 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
1020 93, 94, 95, 60, 0, 0, 0, 0, 0, 0,
1021 0, 0, 61, 0, 0, 0, 0, 62, 63, 0,
1022 0, 0, 64, 0, 744, 0, 0, 0, 0, 0,
1023 0, 0, 427, 431, 432, 433, 434, 435, 436, 437,
1024 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
1025 448, 0, 0, 0, 0, 0, 690, 0, 0, 0,
1026 0, 0, 0, 0, 0, 0, 67, 68, 69, 70,
1027 71, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1028 0, 0, 0, 0, 0, 0, 0, 0, 72, 0,
1029 73, 74, 75, 76, 77, 78, 0, 79, 0, 0,
1030 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
1031 90, 91, 92, 93, 94, 95, 60, 0, 0, 0,
1032 0, 0, 0, 0, 0, 61, 0, 0, 0, 0,
1033 62, 63, 0, 0, 0, 64, 0, 865, 0, 0,
1034 0, 0, 0, 0, 0, 460, 431, 432, 433, 434,
1035 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1036 445, 446, 447, 448, 0, 0, 0, 0, 0, 690,
1037 0, 0, 0, 0, 0, 60, 0, 0, 0, 67,
1038 68, 69, 70, 71, 61, 0, 0, 0, 0, 62,
1039 63, 0, 0, 0, 64, 0, 0, 0, 0, 0,
1040 0, 72, 0, 73, 74, 75, 76, 77, 78, 0,
1041 79, 0, 0, 80, 81, 82, 83, 84, 85, 86,
1042 87, 88, 89, 90, 91, 92, 93, 94, 95, 0,
1043 0, 0, 0, 0, 0, 0, 719, 0, 67, 68,
1044 69, 70, 71, 0, 0, 0, 0, 0, 0, 0,
1045 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1046 72, 0, 73, 74, 75, 76, 77, 78, 0, 79,
1047 0, 0, 80, 81, 82, 83, 84, 85, 86, 87,
1048 88, 89, 90, 91, 92, 93, 94, 95, 60, 0,
1049 0, 0, 0, 0, 0, 0, 0, 61, 0, 0,
1050 836, 0, 766, 63, 0, 0, 0, 64, 431, 432,
1051 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
1052 443, 444, 445, 446, 447, 448, 0, 0, 0, 0,
1053 0, 690, 0, 0, 66, 0, 0, 0, 0, 0,
1054 0, 0, 0, 0, 0, 0, 0, 60, 0, 0,
1055 0, 67, 68, 69, 70, 71, 61, 0, 0, 0,
1056 0, 62, 63, 0, 0, 0, 64, 0, 0, 0,
1057 0, 0, 0, 72, 0, 73, 74, 75, 76, 77,
1058 78, 0, 79, 0, 0, 80, 81, 82, 83, 84,
1059 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1060 95, 0, 0, 0, 0, 0, 60, 0, 806, 0,
1061 67, 68, 69, 70, 71, 61, 0, 0, 0, 0,
1062 62, 63, 0, 0, 0, 64, 0, 0, 0, 0,
1063 0, 0, 72, 0, 73, 74, 75, 76, 77, 78,
1064 0, 79, 0, 0, 80, 81, 82, 83, 84, 85,
1065 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1066 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,
1067 68, 69, 70, 71, 0, 0, 0, 0, 0, 0,
1068 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1069 0, 72, 0, 73, 74, 75, 76, 77, 78, 0,
1070 79, 0, 0, 80, 81, 82, 83, 84, 85, 86,
1071 87, 88, 89, 90, 91, 92, 93, 94, 95, 728,
1072 0, 0, 0, 0, 0, 0, 431, 432, 433, 434,
1073 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1074 445, 446, 447, 448, 788, 0, 0, 0, 0, 449,
1075 0, 431, 432, 433, 434, 435, 436, 437, 438, 439,
1076 440, 441, 442, 443, 444, 445, 446, 447, 448, 0,
1077 0, 0, 689, 0, 690, 431, 432, 433, 434, 435,
1078 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
1079 446, 447, 448, 0, 0, 0, 0, 0, 690, 431,
1080 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
1081 442, 443, 444, 445, 446, 447, 448, 0, 0, 0,
1082 0, 0, 449, 431, 432, 433, 434, 435, 436, 437,
1083 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
1084 448, 0, 0, 0, 0, 0, 690, 431, 432, 433,
1085 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
1086 444, 445, 446, 447, 448, 0, 0, 0, 0, 0,
1087 449, 431, 432, 433, 434, 435, 436, 437, 438, 439,
1088 440, 441, 442, 443, 444, 445, 446, 447, 448, 0,
1089 0, 0, 0, 0, 690
1090 };
1091
1092 static const short int yycheck[] =
1093 {
1094 33, 22, 11, 129, 0, 9, 65, 402, 9, 379,
1095 19, 133, 16, 17, 18, 15, 133, 453, 10, 350,
1096 145, 146, 147, 15, 361, 362, 405, 376, 186, 187,
1097 399, 27, 33, 402, 342, 453, 160, 15, 704, 49,
1098 348, 706, 10, 734, 168, 0, 704, 704, 682, 37,
1099 26, 24, 26, 21, 44, 10, 31, 25, 25, 33,
1100 32, 36, 411, 26, 65, 739, 21, 741, 35, 24,
1101 25, 0, 27, 6, 26, 27, 9, 49, 31, 32,
1102 32, 34, 31, 209, 31, 34, 752, 711, 35, 36,
1103 714, 64, 44, 97, 760, 426, 31, 106, 429, 103,
1104 104, 105, 125, 760, 92, 93, 94, 95, 96, 783,
1105 98, 99, 34, 462, 124, 37, 32, 9, 122, 11,
1106 811, 31, 430, 33, 34, 6, 7, 8, 132, 133,
1107 134, 135, 136, 134, 193, 800, 32, 137, 34, 143,
1108 49, 449, 450, 119, 608, 137, 610, 4, 5, 6,
1109 32, 785, 9, 154, 30, 846, 17, 18, 31, 137,
1110 33, 34, 33, 34, 798, 31, 166, 200, 35, 36,
1111 174, 837, 35, 36, 166, 840, 36, 33, 34, 837,
1112 33, 34, 36, 848, 188, 819, 190, 87, 166, 855,
1113 32, 159, 193, 36, 186, 187, 870, 165, 855, 35,
1114 866, 23, 37, 23, 159, 584, 23, 872, 866, 36,
1115 165, 36, 648, 17, 18, 33, 34, 653, 135, 136,
1116 342, 31, 23, 38, 32, 342, 348, 6, 118, 32,
1117 648, 348, 31, 35, 32, 653, 31, 607, 31, 609,
1118 36, 32, 31, 592, 368, 594, 40, 6, 26, 110,
1119 111, 112, 113, 114, 115, 40, 33, 92, 93, 94,
1120 95, 96, 611, 98, 99, 4, 5, 6, 7, 8,
1121 9, 10, 11, 92, 93, 94, 95, 96, 17, 98,
1122 99, 34, 32, 22, 22, 32, 40, 31, 40, 31,
1123 29, 32, 24, 33, 40, 453, 100, 101, 102, 103,
1124 104, 105, 106, 107, 108, 32, 32, 31, 430, 34,
1125 33, 642, 33, 430, 645, 646, 33, 25, 31, 378,
1126 35, 35, 33, 33, 33, 109, 33, 449, 450, 33,
1127 33, 390, 449, 450, 34, 34, 34, 706, 342, 33,
1128 35, 690, 691, 347, 348, 84, 85, 86, 87, 40,
1129 32, 32, 91, 25, 34, 704, 33, 390, 33, 35,
1130 31, 365, 32, 32, 97, 398, 33, 400, 31, 402,
1131 35, 33, 25, 34, 31, 34, 34, 378, 748, 749,
1132 389, 33, 32, 34, 123, 24, 32, 388, 33, 390,
1133 32, 25, 25, 3, 743, 33, 6, 401, 735, 736,
1134 10, 460, 12, 13, 14, 15, 16, 17, 34, 34,
1135 414, 760, 33, 417, 423, 35, 33, 25, 34, 727,
1136 728, 454, 455, 427, 33, 332, 430, 33, 27, 786,
1137 132, 800, 827, 653, 592, 166, 648, 786, 39, 788,
1138 771, 772, 582, 24, 181, 449, 450, 167, 797, 364,
1139 608, 187, 610, 453, 778, 612, 21, 453, 827, 460,
1140 741, 453, 4, 5, 6, 7, 8, 9, 10, 11,
1141 98, 840, 423, 371, 866, 398, 751, 713, -1, 848,
1142 22, -1, -1, -1, 26, 27, -1, 836, 837, -1,
1143 648, -1, -1, -1, -1, 653, -1, -1, -1, -1,
1144 -1, -1, 44, 872, -1, -1, 855, -1, -1, 4,
1145 5, 6, 7, 8, 9, 10, 11, 866, -1, -1,
1146 -1, -1, 17, -1, -1, -1, -1, 22, -1, -1,
1147 655, 656, -1, -1, 29, 30, 31, -1, 3, -1,
1148 -1, 6, 84, 85, 86, 10, 41, 12, 13, 14,
1149 15, 16, 17, -1, -1, -1, 4, 5, 6, 7,
1150 8, 9, 10, 11, -1, -1, -1, -1, 33, 17,
1151 -1, -1, -1, -1, 22, -1, -1, 636, -1, -1,
1152 -1, 29, -1, -1, -1, -1, -1, -1, 83, 84,
1153 85, 86, 87, 88, 89, 599, 91, -1, -1, -1,
1154 604, 634, -1, -1, 605, 727, 728, -1, 612, -1,
1155 727, 728, -1, -1, -1, -1, 608, -1, 610, 652,
1156 -1, 116, -1, -1, -1, -1, 121, -1, 123, -1,
1157 -1, 635, -1, -1, -1, 636, 84, 85, 86, 87,
1158 -1, -1, -1, 769, -1, -1, -1, -1, 648, -1,
1159 654, 652, 648, 653, -1, 659, 648, 653, -1, -1,
1160 -1, 653, -1, -1, -1, -1, -1, -1, -1, -1,
1161 -1, -1, -1, 121, -1, 708, 685, -1, 711, -1,
1162 -1, 714, -1, -1, -1, 3, -1, -1, -1, 710,
1163 -1, 695, -1, -1, 12, -1, 697, -1, -1, 17,
1164 18, 19, 20, 21, 22, -1, -1, -1, -1, 713,
1165 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1166 -1, -1, -1, 727, 728, -1, -1, -1, -1, -1,
1167 763, -1, -1, -1, -1, 4, 5, 6, 7, 8,
1168 9, 10, 11, 776, -1, -1, 779, 780, 66, 67,
1169 68, 69, 70, 22, -1, -1, -1, -1, -1, -1,
1170 -1, -1, -1, -1, 785, -1, 770, -1, -1, -1,
1171 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
1172 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
1173 108, 109, 110, 111, 112, 113, 114, 115, -1, 832,
1174 -1, -1, -1, 121, 837, 123, 124, -1, -1, -1,
1175 -1, -1, -1, -1, -1, 84, 85, 86, -1, -1,
1176 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1177 -1, 0, -1, 866, 3, 4, 5, 6, 7, 8,
1178 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
1179 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1180 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1181 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1182 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1183 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1184 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1185 79, -1, 81, -1, 83, 84, 85, 86, 87, 88,
1186 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1187 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1188 109, 110, 111, 112, 113, 114, 115, 116, -1, 118,
1189 119, -1, 121, 122, 123, 124, 125, 0, -1, -1,
1190 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
1191 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1192 23, 24, 25, 26, 27, 28, 29, -1, 31, 32,
1193 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1194 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1195 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1196 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1197 73, 74, 75, 76, 77, 78, 79, -1, 81, -1,
1198 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
1199 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1200 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1201 113, 114, 115, 116, -1, -1, 119, -1, 121, 122,
1202 123, 124, 125, 0, -1, -1, 3, 4, 5, 6,
1203 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1204 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1205 27, 28, 29, -1, 31, 32, 33, 34, 35, 36,
1206 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1207 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1208 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1209 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1210 77, 78, 79, -1, 81, -1, 83, 84, 85, 86,
1211 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1212 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1213 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1214 -1, -1, 119, -1, 121, 122, 123, 124, 125, 0,
1215 -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
1216 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1217 21, 22, 23, 24, 25, 26, 27, 28, 29, -1,
1218 31, 32, 33, 34, 35, 36, -1, 38, 39, 40,
1219 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1220 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1221 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1222 71, 72, 73, 74, 75, 76, 77, 78, 79, -1,
1223 81, -1, 83, 84, 85, 86, 87, 88, 89, 90,
1224 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1225 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1226 111, 112, 113, 114, 115, 116, -1, -1, 119, -1,
1227 121, 122, 123, 124, 125, 4, 5, 6, 7, 8,
1228 9, 10, 11, -1, -1, -1, -1, -1, 17, -1,
1229 -1, -1, -1, 22, -1, -1, -1, -1, -1, -1,
1230 29, -1, -1, -1, -1, -1, -1, -1, 37, -1,
1231 -1, -1, -1, 4, 5, 6, 7, 8, 9, 10,
1232 11, -1, -1, -1, -1, -1, 17, -1, -1, -1,
1233 -1, 22, -1, -1, -1, -1, -1, -1, 29, -1,
1234 -1, 4, 5, 6, 7, 8, 9, 10, 11, -1,
1235 -1, -1, -1, -1, 17, 84, 85, 86, 87, 22,
1236 -1, -1, -1, -1, -1, -1, 29, -1, -1, -1,
1237 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1238 -1, -1, -1, -1, 4, 5, 6, 7, 8, 9,
1239 10, 11, 121, 84, 85, 86, 87, 17, -1, -1,
1240 -1, -1, 22, -1, -1, -1, -1, -1, -1, 29,
1241 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1242 -1, 84, 85, 86, 87, -1, -1, -1, -1, -1,
1243 121, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1244 12, -1, -1, -1, -1, 17, 18, 19, -1, -1,
1245 22, 23, -1, 25, -1, 27, 28, 29, 121, -1,
1246 32, -1, -1, 83, 84, 85, 86, 87, -1, -1,
1247 -1, -1, -1, -1, -1, 47, 48, 49, -1, -1,
1248 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
1249 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
1250 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1251 -1, -1, 84, 85, 86, 87, 88, -1, 90, 91,
1252 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
1253 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1254 112, 113, 114, 115, 3, -1, -1, -1, -1, -1,
1255 -1, -1, -1, 12, -1, -1, -1, -1, 17, 18,
1256 19, 20, 21, 22, 23, -1, 25, 26, 27, 28,
1257 -1, -1, -1, 32, -1, -1, -1, -1, -1, 4,
1258 5, 6, 7, 8, 9, 10, 11, -1, 47, 48,
1259 49, -1, 17, -1, -1, -1, -1, 22, -1, -1,
1260 -1, 60, 61, -1, 29, -1, -1, 66, 67, 68,
1261 69, 70, 4, 5, 6, 7, 8, 9, 10, 11,
1262 -1, -1, -1, -1, -1, 17, -1, -1, -1, 88,
1263 22, 90, 91, 92, 93, 94, 95, 29, 97, 64,
1264 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1265 109, 110, 111, 112, 113, 114, 115, 3, -1, 84,
1266 85, 86, 87, -1, -1, -1, 12, -1, -1, -1,
1267 -1, 17, 18, 19, -1, -1, 22, 23, -1, 25,
1268 -1, 27, 28, -1, -1, -1, 32, -1, -1, 30,
1269 -1, -1, 84, 85, 86, 87, -1, -1, 44, -1,
1270 -1, 47, 48, 49, -1, -1, -1, -1, -1, -1,
1271 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
1272 66, 67, 68, 69, 70, 66, 67, 68, 69, 70,
1273 71, 72, 73, 74, 75, 76, 77, -1, 79, 80,
1274 81, 82, 88, 89, 90, 91, 92, 93, 94, 95,
1275 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
1276 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1277 3, -1, -1, -1, -1, -1, -1, -1, -1, 12,
1278 -1, -1, -1, -1, 17, 18, 19, -1, -1, 22,
1279 23, -1, 25, -1, 27, 28, -1, -1, -1, 32,
1280 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1281 -1, 44, -1, -1, 47, 48, 49, -1, -1, -1,
1282 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
1283 -1, 64, -1, 66, 67, 68, 69, 70, 4, 5,
1284 6, 7, 8, 9, 10, 11, -1, -1, -1, -1,
1285 -1, 17, -1, -1, -1, 88, 22, 90, 91, 92,
1286 93, 94, 95, 29, 97, -1, -1, 100, 101, 102,
1287 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1288 113, 114, 115, 3, -1, -1, -1, -1, -1, -1,
1289 -1, -1, 12, -1, -1, -1, -1, 17, 18, 19,
1290 -1, -1, 22, 23, 24, 25, -1, 27, 28, -1,
1291 -1, -1, 32, -1, -1, -1, -1, -1, 84, 85,
1292 86, 87, -1, -1, 44, -1, -1, 47, 48, 49,
1293 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1294 60, 61, -1, -1, -1, -1, 66, 67, 68, 69,
1295 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1296 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
1297 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
1298 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1299 110, 111, 112, 113, 114, 115, 3, -1, -1, -1,
1300 -1, -1, -1, -1, -1, 12, -1, -1, -1, -1,
1301 17, 18, 19, -1, -1, 22, 23, -1, 25, -1,
1302 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
1303 -1, -1, 39, -1, -1, -1, -1, -1, -1, -1,
1304 47, 48, 49, -1, -1, -1, -1, -1, -1, -1,
1305 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
1306 67, 68, 69, 70, 4, 5, 6, 7, 8, 9,
1307 10, 11, -1, -1, -1, -1, -1, 17, -1, -1,
1308 -1, 88, 22, 90, 91, 92, 93, 94, 95, 29,
1309 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1310 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
1311 -1, -1, -1, -1, -1, -1, -1, -1, 12, -1,
1312 -1, -1, -1, 17, 18, 19, -1, -1, 22, 23,
1313 -1, 25, -1, 27, 28, -1, -1, -1, 32, -1,
1314 -1, -1, -1, -1, 84, 85, 86, 87, -1, -1,
1315 44, -1, -1, 47, 48, 49, -1, -1, -1, -1,
1316 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
1317 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
1318 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1319 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
1320 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
1321 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1322 114, 115, 3, -1, -1, -1, -1, -1, -1, -1,
1323 -1, 12, -1, -1, -1, -1, 17, 18, 19, -1,
1324 -1, 22, 23, -1, 25, -1, 27, 28, -1, -1,
1325 -1, 32, -1, -1, -1, -1, -1, 4, 5, 6,
1326 7, 8, 9, 10, 11, -1, 47, 48, 49, -1,
1327 17, -1, -1, -1, -1, 22, -1, -1, -1, 60,
1328 61, -1, 29, -1, -1, 66, 67, 68, 69, 70,
1329 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1330 -1, -1, -1, -1, -1, -1, -1, 88, 89, 90,
1331 91, 92, 93, 94, 95, -1, 97, 64, -1, 100,
1332 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1333 111, 112, 113, 114, 115, 3, -1, 84, 85, 86,
1334 87, -1, -1, -1, 12, -1, -1, -1, -1, 17,
1335 18, 19, -1, -1, 22, 23, -1, 25, -1, 27,
1336 28, -1, -1, -1, 32, -1, -1, -1, 3, 4,
1337 5, 6, 7, 8, 9, 10, 11, 12, -1, 47,
1338 48, 49, 17, -1, -1, -1, -1, 22, -1, -1,
1339 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
1340 68, 69, 70, 4, 5, 6, 7, 8, 9, 10,
1341 11, -1, -1, -1, -1, -1, 17, -1, -1, -1,
1342 88, 22, 90, 91, 92, 93, 94, 95, 29, 97,
1343 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
1344 108, 109, 110, 111, 112, 113, 114, 115, 3, 84,
1345 85, 86, -1, -1, -1, -1, -1, 12, -1, -1,
1346 -1, -1, 17, 18, -1, -1, -1, 22, -1, -1,
1347 25, -1, 27, 28, -1, -1, -1, 32, -1, -1,
1348 -1, -1, -1, 84, 85, 86, 87, -1, -1, -1,
1349 -1, -1, 47, 48, -1, -1, -1, -1, -1, -1,
1350 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
1351 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
1352 -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
1353 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
1354 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
1355 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1356 115, 3, -1, -1, -1, -1, -1, -1, -1, -1,
1357 12, -1, -1, -1, -1, 17, 18, -1, -1, -1,
1358 22, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1359 32, -1, -1, -1, -1, 4, 5, 6, 7, 8,
1360 9, 10, 11, -1, -1, -1, -1, 49, 17, -1,
1361 -1, -1, -1, 22, -1, -1, -1, -1, -1, -1,
1362 29, -1, -1, -1, 66, 67, 68, 69, 70, 4,
1363 5, 6, 7, 8, 9, 10, 11, -1, -1, -1,
1364 -1, -1, 17, -1, -1, -1, 88, 22, 90, 91,
1365 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
1366 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1367 112, 113, 114, 115, 3, 84, 85, 86, 87, -1,
1368 -1, -1, -1, 12, -1, -1, -1, -1, 17, 18,
1369 -1, -1, -1, 22, -1, -1, -1, -1, -1, -1,
1370 -1, -1, -1, 32, -1, -1, -1, -1, -1, 84,
1371 85, 86, 4, 5, 6, 7, 8, 9, 10, 11,
1372 49, -1, -1, -1, -1, 17, -1, -1, -1, -1,
1373 22, -1, -1, -1, -1, -1, -1, 66, 67, 68,
1374 69, 70, -1, -1, -1, -1, -1, -1, -1, -1,
1375 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
1376 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
1377 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1378 109, 110, 111, 112, 113, 114, 115, 3, -1, -1,
1379 -1, -1, 84, 85, 86, -1, 12, 31, -1, -1,
1380 -1, 17, 18, -1, -1, -1, 22, -1, 42, 43,
1381 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1382 54, 55, 56, 57, 58, 59, -1, -1, -1, -1,
1383 -1, 65, -1, 49, -1, -1, -1, -1, -1, -1,
1384 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1385 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
1386 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1387 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
1388 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
1389 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1390 3, -1, -1, -1, -1, -1, -1, -1, -1, 12,
1391 -1, -1, -1, -1, 17, 18, -1, -1, -1, 22,
1392 -1, 33, -1, -1, -1, -1, -1, -1, -1, 32,
1393 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1394 52, 53, 54, 55, 56, 57, 58, 59, -1, -1,
1395 -1, -1, -1, 65, -1, -1, -1, -1, -1, -1,
1396 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
1397 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1398 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
1399 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
1400 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1401 113, 114, 115, 3, -1, -1, -1, -1, -1, -1,
1402 -1, -1, 12, -1, -1, -1, -1, 17, 18, -1,
1403 -1, -1, 22, -1, 33, -1, -1, -1, -1, -1,
1404 -1, -1, 32, 42, 43, 44, 45, 46, 47, 48,
1405 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1406 59, -1, -1, -1, -1, -1, 65, -1, -1, -1,
1407 -1, -1, -1, -1, -1, -1, 66, 67, 68, 69,
1408 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1409 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
1410 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
1411 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1412 110, 111, 112, 113, 114, 115, 3, -1, -1, -1,
1413 -1, -1, -1, -1, -1, 12, -1, -1, -1, -1,
1414 17, 18, -1, -1, -1, 22, -1, 33, -1, -1,
1415 -1, -1, -1, -1, -1, 32, 42, 43, 44, 45,
1416 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1417 56, 57, 58, 59, -1, -1, -1, -1, -1, 65,
1418 -1, -1, -1, -1, -1, 3, -1, -1, -1, 66,
1419 67, 68, 69, 70, 12, -1, -1, -1, -1, 17,
1420 18, -1, -1, -1, 22, -1, -1, -1, -1, -1,
1421 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
1422 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1423 107, 108, 109, 110, 111, 112, 113, 114, 115, -1,
1424 -1, -1, -1, -1, -1, -1, 64, -1, 66, 67,
1425 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
1426 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1427 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
1428 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
1429 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
1430 -1, -1, -1, -1, -1, -1, -1, 12, -1, -1,
1431 34, -1, 17, 18, -1, -1, -1, 22, 42, 43,
1432 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1433 54, 55, 56, 57, 58, 59, -1, -1, -1, -1,
1434 -1, 65, -1, -1, 49, -1, -1, -1, -1, -1,
1435 -1, -1, -1, -1, -1, -1, -1, 3, -1, -1,
1436 -1, 66, 67, 68, 69, 70, 12, -1, -1, -1,
1437 -1, 17, 18, -1, -1, -1, 22, -1, -1, -1,
1438 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
1439 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
1440 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1441 115, -1, -1, -1, -1, -1, 3, -1, 64, -1,
1442 66, 67, 68, 69, 70, 12, -1, -1, -1, -1,
1443 17, 18, -1, -1, -1, 22, -1, -1, -1, -1,
1444 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
1445 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
1446 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1447 -1, -1, -1, -1, -1, -1, -1, -1, -1, 66,
1448 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1449 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1450 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
1451 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1452 107, 108, 109, 110, 111, 112, 113, 114, 115, 35,
1453 -1, -1, -1, -1, -1, -1, 42, 43, 44, 45,
1454 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1455 56, 57, 58, 59, 35, -1, -1, -1, -1, 65,
1456 -1, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1457 51, 52, 53, 54, 55, 56, 57, 58, 59, -1,
1458 -1, -1, 39, -1, 65, 42, 43, 44, 45, 46,
1459 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1460 57, 58, 59, -1, -1, -1, -1, -1, 65, 42,
1461 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1462 53, 54, 55, 56, 57, 58, 59, -1, -1, -1,
1463 -1, -1, 65, 42, 43, 44, 45, 46, 47, 48,
1464 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1465 59, -1, -1, -1, -1, -1, 65, 42, 43, 44,
1466 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1467 55, 56, 57, 58, 59, -1, -1, -1, -1, -1,
1468 65, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1469 51, 52, 53, 54, 55, 56, 57, 58, 59, -1,
1470 -1, -1, -1, -1, 65
1471 };
1472
1473 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1474 symbol of state STATE-NUM. */
1475 static const unsigned short int yystos[] =
1476 {
1477 0, 4, 5, 6, 7, 8, 9, 10, 11, 17,
1478 22, 29, 30, 31, 41, 83, 84, 85, 86, 87,
1479 88, 89, 91, 116, 121, 123, 134, 135, 136, 137,
1480 138, 156, 161, 166, 167, 168, 169, 170, 171, 172,
1481 173, 178, 181, 182, 185, 189, 190, 191, 192, 193,
1482 194, 197, 199, 200, 206, 214, 225, 226, 9, 11,
1483 3, 12, 17, 18, 22, 32, 49, 66, 67, 68,
1484 69, 70, 88, 90, 91, 92, 93, 94, 95, 97,
1485 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1486 110, 111, 112, 113, 114, 115, 131, 222, 223, 224,
1487 241, 253, 22, 84, 85, 86, 87, 190, 197, 167,
1488 30, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1489 75, 76, 77, 79, 80, 81, 82, 139, 140, 141,
1490 142, 144, 145, 146, 17, 84, 85, 121, 162, 164,
1491 191, 192, 197, 206, 215, 216, 131, 131, 131, 217,
1492 3, 6, 10, 12, 17, 157, 158, 167, 26, 123,
1493 190, 226, 44, 261, 262, 22, 83, 189, 190, 0,
1494 136, 131, 198, 221, 222, 4, 5, 6, 9, 174,
1495 6, 171, 177, 31, 125, 179, 32, 32, 36, 36,
1496 221, 222, 87, 32, 131, 124, 224, 131, 131, 131,
1497 34, 183, 19, 20, 21, 121, 123, 124, 131, 147,
1498 148, 30, 0, 3, 4, 5, 6, 7, 8, 9,
1499 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1500 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1501 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1502 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1503 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1504 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1505 71, 72, 73, 74, 75, 76, 77, 78, 79, 81,
1506 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
1507 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1508 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1509 113, 114, 115, 116, 119, 121, 122, 123, 124, 125,
1510 132, 151, 152, 151, 26, 119, 143, 131, 147, 25,
1511 27, 28, 32, 47, 48, 60, 61, 78, 130, 131,
1512 153, 211, 131, 131, 217, 131, 217, 164, 31, 131,
1513 35, 219, 219, 219, 219, 222, 23, 31, 190, 36,
1514 186, 36, 23, 162, 179, 186, 38, 220, 32, 131,
1515 6, 175, 6, 9, 176, 174, 32, 31, 17, 87,
1516 166, 195, 196, 197, 195, 131, 207, 208, 92, 93,
1517 94, 95, 96, 98, 99, 232, 233, 234, 247, 250,
1518 256, 257, 258, 131, 221, 184, 198, 222, 118, 151,
1519 132, 26, 27, 32, 44, 213, 153, 32, 131, 153,
1520 32, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1521 51, 52, 53, 54, 55, 56, 57, 58, 59, 65,
1522 129, 31, 35, 36, 202, 202, 31, 201, 202, 201,
1523 32, 131, 40, 186, 0, 3, 4, 5, 6, 7,
1524 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
1525 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1526 28, 29, 31, 32, 33, 34, 35, 38, 39, 40,
1527 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1528 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1529 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1530 71, 72, 73, 74, 75, 76, 77, 78, 79, 81,
1531 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
1532 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1533 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1534 113, 114, 115, 116, 119, 121, 122, 123, 124, 125,
1535 133, 186, 187, 188, 232, 32, 31, 31, 19, 23,
1536 25, 27, 32, 39, 130, 198, 209, 210, 211, 221,
1537 220, 6, 26, 180, 222, 17, 221, 33, 34, 33,
1538 34, 40, 34, 37, 198, 237, 209, 229, 251, 252,
1539 253, 261, 198, 131, 259, 260, 198, 248, 252, 37,
1540 233, 209, 33, 131, 34, 32, 167, 212, 213, 22,
1541 33, 131, 153, 154, 155, 153, 153, 32, 121, 163,
1542 164, 165, 166, 203, 206, 215, 216, 198, 198, 221,
1543 19, 20, 21, 26, 159, 160, 209, 37, 188, 37,
1544 3, 6, 10, 12, 13, 14, 15, 16, 17, 33,
1545 227, 228, 230, 231, 22, 87, 166, 209, 209, 39,
1546 65, 129, 131, 26, 33, 222, 220, 17, 64, 196,
1547 220, 64, 209, 208, 40, 31, 40, 31, 32, 24,
1548 40, 32, 31, 34, 32, 31, 31, 33, 198, 64,
1549 131, 149, 150, 221, 33, 33, 33, 34, 35, 25,
1550 165, 35, 218, 37, 163, 219, 219, 131, 31, 35,
1551 33, 34, 229, 33, 33, 209, 209, 33, 33, 33,
1552 19, 89, 90, 109, 209, 236, 238, 239, 240, 241,
1553 262, 251, 198, 261, 184, 260, 17, 184, 249, 33,
1554 34, 153, 153, 34, 25, 35, 34, 204, 218, 202,
1555 202, 33, 230, 35, 228, 230, 40, 209, 35, 220,
1556 220, 109, 238, 17, 18, 241, 244, 32, 32, 236,
1557 34, 254, 198, 33, 33, 151, 64, 131, 25, 35,
1558 32, 198, 205, 31, 204, 230, 261, 159, 209, 32,
1559 209, 229, 64, 251, 255, 33, 31, 97, 33, 35,
1560 25, 218, 34, 31, 64, 229, 34, 34, 242, 33,
1561 34, 18, 252, 253, 32, 34, 198, 24, 32, 209,
1562 198, 235, 236, 237, 243, 262, 33, 251, 25, 25,
1563 218, 33, 245, 246, 251, 33, 34, 236, 34, 33,
1564 35, 33, 34, 235, 25, 230, 33, 251, 33
1565 };
1566
1567 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1568 static const unsigned short int yyr1[] =
1569 {
1570 0, 128, 129, 129, 129, 129, 129, 129, 129, 129,
1571 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
1572 130, 130, 130, 130, 131, 131, 131, 131, 131, 131,
1573 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
1574 131, 131, 131, 132, 132, 132, 132, 132, 132, 132,
1575 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
1576 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
1577 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
1578 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
1579 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
1580 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
1581 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
1582 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
1583 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
1584 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
1585 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
1586 132, 133, 133, 133, 133, 133, 133, 133, 133, 133,
1587 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
1588 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
1589 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
1590 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
1591 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
1592 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
1593 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
1594 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
1595 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
1596 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
1597 133, 133, 133, 133, 133, 133, 133, 134, 134, 135,
1598 135, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1599 136, 136, 136, 136, 136, 137, 138, 138, 139, 139,
1600 139, 139, 139, 139, 139, 139, 140, 140, 141, 141,
1601 142, 142, 142, 143, 143, 144, 144, 145, 145, 145,
1602 146, 146, 147, 147, 147, 147, 147, 147, 147, 148,
1603 148, 149, 149, 149, 149, 150, 150, 151, 151, 152,
1604 152, 153, 153, 153, 153, 153, 153, 153, 153, 153,
1605 153, 153, 154, 154, 155, 155, 156, 157, 158, 158,
1606 158, 158, 159, 159, 159, 160, 160, 160, 160, 161,
1607 161, 161, 162, 162, 163, 163, 164, 164, 164, 164,
1608 164, 165, 165, 165, 165, 165, 166, 166, 166, 167,
1609 167, 168, 168, 168, 169, 169, 169, 170, 170, 170,
1610 171, 171, 172, 172, 172, 173, 173, 173, 173, 174,
1611 174, 174, 174, 174, 175, 175, 176, 176, 176, 176,
1612 177, 177, 177, 178, 178, 179, 179, 180, 180, 181,
1613 182, 183, 183, 184, 184, 185, 185, 185, 186, 187,
1614 187, 188, 188, 189, 189, 190, 190, 191, 191, 192,
1615 192, 193, 193, 193, 193, 194, 194, 195, 195, 195,
1616 195, 196, 196, 196, 196, 197, 197, 197, 197, 198,
1617 198, 199, 200, 201, 201, 202, 203, 203, 204, 204,
1618 205, 205, 206, 207, 207, 208, 208, 209, 209, 209,
1619 209, 209, 209, 210, 210, 210, 210, 210, 210, 211,
1620 211, 212, 212, 213, 213, 213, 214, 215, 216, 217,
1621 217, 218, 218, 218, 218, 219, 219, 220, 220, 220,
1622 221, 221, 222, 222, 223, 223, 224, 224, 225, 225,
1623 226, 226, 226, 227, 227, 228, 228, 229, 230, 231,
1624 231, 231, 231, 231, 231, 231, 231, 231, 232, 232,
1625 233, 233, 233, 233, 233, 234, 234, 235, 235, 235,
1626 236, 236, 236, 236, 236, 236, 237, 237, 238, 239,
1627 240, 241, 241, 241, 241, 241, 241, 241, 241, 241,
1628 241, 242, 242, 243, 243, 244, 244, 245, 245, 246,
1629 246, 247, 248, 248, 249, 249, 249, 250, 251, 251,
1630 251, 252, 252, 253, 253, 253, 253, 253, 253, 253,
1631 253, 254, 254, 255, 255, 256, 257, 257, 258, 259,
1632 259, 260, 261, 261, 262
1633 };
1634
1635 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
1636 static const unsigned char yyr2[] =
1637 {
1638 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1639 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1640 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1641 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1642 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1643 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1644 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1645 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1646 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1647 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1648 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1649 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1650 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1651 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1652 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1653 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1654 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1655 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1656 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1657 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1658 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1659 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1660 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1661 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1662 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1663 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1664 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1665 1, 1, 1, 1, 1, 1, 1, 0, 1, 1,
1666 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1667 1, 1, 1, 1, 1, 3, 2, 3, 2, 2,
1668 1, 2, 2, 2, 1, 2, 1, 1, 1, 1,
1669 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1670 1, 1, 1, 1, 1, 1, 1, 1, 1, 6,
1671 2, 0, 1, 1, 3, 1, 3, 0, 1, 1,
1672 2, 3, 2, 3, 5, 2, 4, 1, 1, 1,
1673 1, 4, 0, 1, 1, 3, 6, 1, 1, 1,
1674 1, 1, 0, 1, 1, 1, 1, 1, 1, 3,
1675 4, 4, 1, 2, 1, 2, 1, 1, 2, 4,
1676 4, 1, 1, 1, 3, 3, 2, 2, 1, 1,
1677 1, 2, 2, 2, 1, 1, 1, 1, 1, 2,
1678 1, 1, 1, 1, 2, 1, 1, 2, 2, 0,
1679 1, 2, 1, 2, 0, 1, 0, 1, 1, 2,
1680 0, 1, 2, 3, 4, 0, 4, 1, 2, 2,
1681 3, 0, 2, 1, 3, 3, 3, 4, 3, 1,
1682 2, 1, 1, 1, 2, 1, 1, 5, 7, 5,
1683 7, 6, 7, 6, 5, 1, 2, 0, 1, 1,
1684 3, 1, 2, 3, 2, 1, 2, 4, 3, 3,
1685 2, 4, 4, 1, 1, 3, 4, 5, 0, 2,
1686 2, 4, 4, 1, 3, 1, 3, 1, 4, 3,
1687 3, 2, 5, 1, 1, 1, 1, 1, 1, 4,
1688 2, 1, 2, 2, 1, 1, 2, 2, 2, 0,
1689 1, 0, 2, 7, 9, 0, 7, 0, 2, 3,
1690 0, 1, 1, 2, 1, 2, 1, 2, 4, 5,
1691 7, 8, 13, 1, 3, 2, 4, 2, 1, 1,
1692 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
1693 1, 1, 1, 1, 1, 3, 6, 1, 2, 1,
1694 1, 1, 1, 2, 1, 1, 3, 4, 6, 8,
1695 5, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1696 1, 0, 2, 1, 3, 1, 1, 0, 1, 1,
1697 3, 3, 6, 1, 0, 1, 1, 3, 1, 1,
1698 3, 5, 6, 1, 1, 1, 1, 1, 1, 1,
1699 1, 0, 2, 1, 3, 3, 1, 1, 3, 1,
1700 3, 4, 0, 1, 1
1701 };
1702
1703
1704 /* YYDPREC[RULE-NUM] -- Dynamic precedence of rule #RULE-NUM (0 if none). */
1705 static const unsigned char yydprec[] =
1706 {
1707 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1709 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1712 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1713 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1714 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1715 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1717 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1725 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1726 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1728 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1734 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1737 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1740 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1743 0, 0, 0, 1, 2, 0, 0, 0, 0, 0,
1744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1748 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1759 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1762 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1763 2, 1, 0, 0, 0, 0, 0, 0, 0, 0,
1764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1766 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1767 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1769 0, 0, 0, 0, 0
1770 };
1771
1772 /* YYMERGER[RULE-NUM] -- Index of merging function for rule #RULE-NUM. */
1773 static const unsigned char yymerger[] =
1774 {
1775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1777 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1778 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1780 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1781 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1799 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1803 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1807 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1808 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1810 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1812 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1813 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1814 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1815 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1825 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1837 0, 0, 0, 0, 0
1838 };
1839
1840 /* YYIMMEDIATE[RULE-NUM] -- True iff rule #RULE-NUM is not to be deferred, as
1841 in the case of predicates. */
1842 static const yybool yyimmediate[] =
1843 {
1844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1863 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1865 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1866 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1870 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1876 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1877 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1878 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1879 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1880 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1881 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1882 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1883 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1886 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1887 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1888 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1889 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1890 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1891 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1893 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1894 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1897 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1898 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1899 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1902 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1906 0, 0, 0, 0, 0
1907 };
1908
1909 /* YYCONFLP[YYPACT[STATE-NUM]] -- Pointer into YYCONFL of start of
1910 list of conflicting reductions corresponding to action entry for
1911 state STATE-NUM in yytable. 0 means no conflicts. The list in
1912 yyconfl is terminated by a rule number of 0. */
1913 static const unsigned short int yyconflp[] =
1914 {
1915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1918 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1921 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1922 0, 0, 0, 0, 0, 0, 0, 0, 5, 0,
1923 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1924 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1926 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1927 0, 257, 0, 259, 261, 0, 0, 0, 0, 0,
1928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1930 0, 0, 0, 0, 0, 0, 0, 0, 265, 0,
1931 267, 269, 0, 0, 0, 0, 0, 0, 251, 0,
1932 0, 0, 253, 0, 0, 0, 0, 0, 0, 0,
1933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1935 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1936 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1938 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1940 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1941 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1942 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1944 0, 255, 0, 0, 0, 0, 0, 0, 0, 0,
1945 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1946 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1947 0, 0, 263, 0, 0, 0, 0, 0, 0, 0,
1948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1949 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1950 0, 0, 0, 0, 0, 0, 271, 0, 0, 0,
1951 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1952 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1953 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1954 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1955 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1956 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1957 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1958 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1959 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1960 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1961 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1962 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1963 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1964 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1965 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1966 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1967 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1968 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1969 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1970 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1971 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1972 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1973 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1975 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1976 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1977 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1978 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1979 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1980 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1981 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1982 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1983 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1984 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1985 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1986 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1987 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1988 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1989 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1990 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1991 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1992 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1993 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1994 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1995 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1996 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1997 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1998 0, 7, 0, 0, 9, 11, 13, 15, 17, 19,
1999 21, 23, 25, 27, 29, 31, 33, 35, 37, 39,
2000 41, 43, 45, 47, 49, 51, 53, 55, 57, 59,
2001 61, 63, 65, 67, 69, 71, 73, 75, 77, 79,
2002 81, 83, 85, 87, 89, 91, 93, 95, 97, 99,
2003 101, 103, 105, 107, 109, 111, 113, 115, 117, 119,
2004 121, 123, 125, 127, 129, 131, 133, 135, 137, 139,
2005 141, 143, 145, 147, 149, 151, 153, 155, 157, 159,
2006 161, 0, 163, 0, 165, 167, 169, 171, 173, 175,
2007 177, 179, 181, 183, 185, 187, 189, 191, 193, 195,
2008 197, 199, 201, 203, 205, 207, 209, 211, 213, 215,
2009 217, 219, 221, 223, 225, 227, 229, 231, 0, 233,
2010 235, 0, 237, 239, 241, 243, 245, 0, 0, 0,
2011 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2012 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2013 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2014 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2015 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2016 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2017 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2018 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2019 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2020 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2021 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2022 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2023 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2024 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2025 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2026 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2027 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2028 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2029 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2030 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2031 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2032 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2033 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2034 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2035 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2036 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2037 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2038 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2039 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2040 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2041 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2042 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2043 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2044 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2045 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2046 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2047 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2048 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2049 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2050 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2051 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2052 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2053 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2054 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2055 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2056 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2057 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2058 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2059 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2060 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2061 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2062 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2063 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2064 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2065 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2066 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2067 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2068 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2069 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2070 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2071 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2072 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2073 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2074 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2075 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2076 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2077 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2078 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2079 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2080 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2081 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2082 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2083 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
2084 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2085 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2086 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2087 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2088 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2089 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2090 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2091 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2092 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2093 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2094 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2095 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2096 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2097 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2098 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2099 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2100 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2101 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2102 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2103 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2104 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2105 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2106 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2107 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2108 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2109 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2110 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2111 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2112 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2113 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2114 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2115 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2116 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2117 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2118 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2119 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2120 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2121 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2122 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2123 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2125 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2126 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2127 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2128 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2129 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2130 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2131 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2132 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2133 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2134 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2135 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2136 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2137 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2138 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2139 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2140 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2141 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2142 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2143 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2144 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2145 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2146 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2147 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2148 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2149 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2150 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2151 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2152 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2153 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2154 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2155 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2156 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2157 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2159 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2160 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2161 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2162 0, 0, 0, 0, 0, 0, 247, 0, 0, 0,
2163 0, 249, 0, 0, 0, 0, 0, 0, 0, 0,
2164 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2165 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2166 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2167 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2168 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2169 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2170 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2171 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2172 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2173 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2174 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2175 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2176 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2177 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2178 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2180 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2181 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2182 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2183 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2184 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2185 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2186 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2187 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2188 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2189 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2190 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2191 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2192 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2193 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2194 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2195 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2196 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2197 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2198 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2199 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2200 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2201 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2202 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2203 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2204 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2205 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2206 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2207 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2208 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2209 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2210 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2211 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2212 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2213 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2214 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2215 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2216 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2217 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2218 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2219 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2220 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2222 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2223 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2224 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2225 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2226 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2227 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2228 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2229 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2230 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2231 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2232 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2233 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2234 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2235 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2236 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2237 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2238 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2239 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2240 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2242 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2243 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2244 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2245 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2246 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2247 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2248 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2249 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2250 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2251 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2252 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2253 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2254 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2255 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2256 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2257 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2258 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2259 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2260 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2261 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2262 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2263 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2264 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2265 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2266 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2267 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2268 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2269 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2270 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2271 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2272 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2273 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2274 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2275 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2276 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2277 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2278 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2279 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2280 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2281 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2282 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2283 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2284 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2285 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2286 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2287 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2288 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2289 273, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2290 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2291 0, 0, 0, 0, 275
2292 };
2293
2294 /* YYCONFL[I] -- lists of conflicting rule numbers, each terminated by
2295 0, pointed into by YYCONFLP. */
2296 static const short int yyconfl[] =
2297 {
2298 0, 396, 0, 396, 0, 465, 0, 609, 0, 609,
2299 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
2300 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
2301 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
2302 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
2303 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
2304 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
2305 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
2306 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
2307 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
2308 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
2309 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
2310 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
2311 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
2312 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
2313 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
2314 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
2315 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
2316 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
2317 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
2318 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
2319 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
2320 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
2321 0, 609, 0, 609, 0, 609, 0, 609, 0, 609,
2322 0, 609, 0, 609, 0, 609, 0, 396, 0, 396,
2323 0, 510, 0, 510, 0, 42, 0, 496, 0, 496,
2324 0, 496, 0, 396, 0, 560, 0, 560, 0, 560,
2325 0, 610, 0, 344, 0, 492, 0
2326 };
2327
2328 /* Error token number */
2329 #define YYTERROR 1
2330
2331
2332
2333
2334 #undef yynerrs
2335 #define yynerrs (yystackp->yyerrcnt)
2336 #undef yychar
2337 #define yychar (yystackp->yyrawchar)
2338 #undef yylval
2339 #define yylval (yystackp->yyval)
2340 #undef yylloc
2341 #define yylloc (yystackp->yyloc)
2342 #define psi_parser_proc_nerrs yynerrs
2343 #define psi_parser_proc_char yychar
2344 #define psi_parser_proc_lval yylval
2345 #define psi_parser_proc_lloc yylloc
2346
2347 static const int YYEOF = 0;
2348 static const int YYEMPTY = -2;
2349
2350 typedef enum { yyok, yyaccept, yyabort, yyerr } YYRESULTTAG;
2351
2352 #define YYCHK(YYE) \
2353 do { \
2354 YYRESULTTAG yychk_flag = YYE; \
2355 if (yychk_flag != yyok) \
2356 return yychk_flag; \
2357 } while (0)
2358
2359 #if YYDEBUG
2360
2361 # ifndef YYFPRINTF
2362 # define YYFPRINTF fprintf
2363 # endif
2364
2365 /* This macro is provided for backward compatibility. */
2366 #ifndef YY_LOCATION_PRINT
2367 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2368 #endif
2369
2370
2371 # define YYDPRINTF(Args) \
2372 do { \
2373 if (yydebug) \
2374 YYFPRINTF Args; \
2375 } while (0)
2376
2377
2378 /*----------------------------------------.
2379 | Print this symbol's value on YYOUTPUT. |
2380 `----------------------------------------*/
2381
2382 static void
2383 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
2384 {
2385 FILE *yyo = yyoutput;
2386 YYUSE (yyo);
2387 YYUSE (P);
2388 YYUSE (tokens);
2389 YYUSE (index);
2390 if (!yyvaluep)
2391 return;
2392 YYUSE (yytype);
2393 }
2394
2395
2396 /*--------------------------------.
2397 | Print this symbol on YYOUTPUT. |
2398 `--------------------------------*/
2399
2400 static void
2401 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
2402 {
2403 YYFPRINTF (yyoutput, "%s %s (",
2404 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2405
2406 yy_symbol_value_print (yyoutput, yytype, yyvaluep, P, tokens, index);
2407 YYFPRINTF (yyoutput, ")");
2408 }
2409
2410 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2411 do { \
2412 if (yydebug) \
2413 { \
2414 YYFPRINTF (stderr, "%s ", Title); \
2415 yy_symbol_print (stderr, Type, Value, P, tokens, index); \
2416 YYFPRINTF (stderr, "\n"); \
2417 } \
2418 } while (0)
2419
2420 /* Nonzero means print parse trace. It is left uninitialized so that
2421 multiple parsers can coexist. */
2422 int yydebug;
2423
2424 struct yyGLRStack;
2425 static void yypstack (struct yyGLRStack* yystackp, size_t yyk)
2426 YY_ATTRIBUTE_UNUSED;
2427 static void yypdumpstack (struct yyGLRStack* yystackp)
2428 YY_ATTRIBUTE_UNUSED;
2429
2430 #else /* !YYDEBUG */
2431
2432 # define YYDPRINTF(Args)
2433 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2434
2435 #endif /* !YYDEBUG */
2436
2437 /* YYINITDEPTH -- initial size of the parser's stacks. */
2438 #ifndef YYINITDEPTH
2439 # define YYINITDEPTH 200
2440 #endif
2441
2442 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2443 if the built-in stack extension method is used).
2444
2445 Do not make this value too large; the results are undefined if
2446 SIZE_MAX < YYMAXDEPTH * sizeof (GLRStackItem)
2447 evaluated with infinite-precision integer arithmetic. */
2448
2449 #ifndef YYMAXDEPTH
2450 # define YYMAXDEPTH 10000
2451 #endif
2452
2453 /* Minimum number of free items on the stack allowed after an
2454 allocation. This is to allow allocation and initialization
2455 to be completed by functions that call yyexpandGLRStack before the
2456 stack is expanded, thus insuring that all necessary pointers get
2457 properly redirected to new data. */
2458 #define YYHEADROOM 2
2459
2460 #ifndef YYSTACKEXPANDABLE
2461 # define YYSTACKEXPANDABLE 1
2462 #endif
2463
2464 #if YYSTACKEXPANDABLE
2465 # define YY_RESERVE_GLRSTACK(Yystack) \
2466 do { \
2467 if (Yystack->yyspaceLeft < YYHEADROOM) \
2468 yyexpandGLRStack (Yystack); \
2469 } while (0)
2470 #else
2471 # define YY_RESERVE_GLRSTACK(Yystack) \
2472 do { \
2473 if (Yystack->yyspaceLeft < YYHEADROOM) \
2474 yyMemoryExhausted (Yystack); \
2475 } while (0)
2476 #endif
2477
2478
2479 #if YYERROR_VERBOSE
2480
2481 # ifndef yystpcpy
2482 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2483 # define yystpcpy stpcpy
2484 # else
2485 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2486 YYDEST. */
2487 static char *
2488 yystpcpy (char *yydest, const char *yysrc)
2489 {
2490 char *yyd = yydest;
2491 const char *yys = yysrc;
2492
2493 while ((*yyd++ = *yys++) != '\0')
2494 continue;
2495
2496 return yyd - 1;
2497 }
2498 # endif
2499 # endif
2500
2501 # ifndef yytnamerr
2502 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2503 quotes and backslashes, so that it's suitable for yyerror. The
2504 heuristic is that double-quoting is unnecessary unless the string
2505 contains an apostrophe, a comma, or backslash (other than
2506 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2507 null, do not copy; instead, return the length of what the result
2508 would have been. */
2509 static size_t
2510 yytnamerr (char *yyres, const char *yystr)
2511 {
2512 if (*yystr == '"')
2513 {
2514 size_t yyn = 0;
2515 char const *yyp = yystr;
2516
2517 for (;;)
2518 switch (*++yyp)
2519 {
2520 case '\'':
2521 case ',':
2522 goto do_not_strip_quotes;
2523
2524 case '\\':
2525 if (*++yyp != '\\')
2526 goto do_not_strip_quotes;
2527 /* Fall through. */
2528 default:
2529 if (yyres)
2530 yyres[yyn] = *yyp;
2531 yyn++;
2532 break;
2533
2534 case '"':
2535 if (yyres)
2536 yyres[yyn] = '\0';
2537 return yyn;
2538 }
2539 do_not_strip_quotes: ;
2540 }
2541
2542 if (! yyres)
2543 return strlen (yystr);
2544
2545 return yystpcpy (yyres, yystr) - yyres;
2546 }
2547 # endif
2548
2549 #endif /* !YYERROR_VERBOSE */
2550
2551 /** State numbers, as in LALR(1) machine */
2552 typedef int yyStateNum;
2553
2554 /** Rule numbers, as in LALR(1) machine */
2555 typedef int yyRuleNum;
2556
2557 /** Grammar symbol */
2558 typedef int yySymbol;
2559
2560 /** Item references, as in LALR(1) machine */
2561 typedef short int yyItemNum;
2562
2563 typedef struct yyGLRState yyGLRState;
2564 typedef struct yyGLRStateSet yyGLRStateSet;
2565 typedef struct yySemanticOption yySemanticOption;
2566 typedef union yyGLRStackItem yyGLRStackItem;
2567 typedef struct yyGLRStack yyGLRStack;
2568
2569 struct yyGLRState {
2570 /** Type tag: always true. */
2571 yybool yyisState;
2572 /** Type tag for yysemantics. If true, yysval applies, otherwise
2573 * yyfirstVal applies. */
2574 yybool yyresolved;
2575 /** Number of corresponding LALR(1) machine state. */
2576 yyStateNum yylrState;
2577 /** Preceding state in this stack */
2578 yyGLRState* yypred;
2579 /** Source position of the last token produced by my symbol */
2580 size_t yyposn;
2581 union {
2582 /** First in a chain of alternative reductions producing the
2583 * non-terminal corresponding to this state, threaded through
2584 * yynext. */
2585 yySemanticOption* yyfirstVal;
2586 /** Semantic value for this state. */
2587 YYSTYPE yysval;
2588 } yysemantics;
2589 };
2590
2591 struct yyGLRStateSet {
2592 yyGLRState** yystates;
2593 /** During nondeterministic operation, yylookaheadNeeds tracks which
2594 * stacks have actually needed the current lookahead. During deterministic
2595 * operation, yylookaheadNeeds[0] is not maintained since it would merely
2596 * duplicate yychar != YYEMPTY. */
2597 yybool* yylookaheadNeeds;
2598 size_t yysize, yycapacity;
2599 };
2600
2601 struct yySemanticOption {
2602 /** Type tag: always false. */
2603 yybool yyisState;
2604 /** Rule number for this reduction */
2605 yyRuleNum yyrule;
2606 /** The last RHS state in the list of states to be reduced. */
2607 yyGLRState* yystate;
2608 /** The lookahead for this reduction. */
2609 int yyrawchar;
2610 YYSTYPE yyval;
2611 /** Next sibling in chain of options. To facilitate merging,
2612 * options are chained in decreasing order by address. */
2613 yySemanticOption* yynext;
2614 };
2615
2616 /** Type of the items in the GLR stack. The yyisState field
2617 * indicates which item of the union is valid. */
2618 union yyGLRStackItem {
2619 yyGLRState yystate;
2620 yySemanticOption yyoption;
2621 };
2622
2623 struct yyGLRStack {
2624 int yyerrState;
2625
2626
2627 int yyerrcnt;
2628 int yyrawchar;
2629 YYSTYPE yyval;
2630
2631 YYJMP_BUF yyexception_buffer;
2632 yyGLRStackItem* yyitems;
2633 yyGLRStackItem* yynextFree;
2634 size_t yyspaceLeft;
2635 yyGLRState* yysplitPoint;
2636 yyGLRState* yylastDeleted;
2637 yyGLRStateSet yytops;
2638 };
2639
2640 #if YYSTACKEXPANDABLE
2641 static void yyexpandGLRStack (yyGLRStack* yystackp);
2642 #endif
2643
2644 static _Noreturn void
2645 yyFail (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char* yymsg)
2646 {
2647 if (yymsg != YY_NULLPTR)
2648 yyerror (P, tokens, index, yymsg);
2649 YYLONGJMP (yystackp->yyexception_buffer, 1);
2650 }
2651
2652 static _Noreturn void
2653 yyMemoryExhausted (yyGLRStack* yystackp)
2654 {
2655 YYLONGJMP (yystackp->yyexception_buffer, 2);
2656 }
2657
2658 #if YYDEBUG || YYERROR_VERBOSE
2659 /** A printable representation of TOKEN. */
2660 static inline const char*
2661 yytokenName (yySymbol yytoken)
2662 {
2663 if (yytoken == YYEMPTY)
2664 return "";
2665
2666 return yytname[yytoken];
2667 }
2668 #endif
2669
2670 /** Fill in YYVSP[YYLOW1 .. YYLOW0-1] from the chain of states starting
2671 * at YYVSP[YYLOW0].yystate.yypred. Leaves YYVSP[YYLOW1].yystate.yypred
2672 * containing the pointer to the next state in the chain. */
2673 static void yyfillin (yyGLRStackItem *, int, int) YY_ATTRIBUTE_UNUSED;
2674 static void
2675 yyfillin (yyGLRStackItem *yyvsp, int yylow0, int yylow1)
2676 {
2677 int i;
2678 yyGLRState *s = yyvsp[yylow0].yystate.yypred;
2679 for (i = yylow0-1; i >= yylow1; i -= 1)
2680 {
2681 #if YYDEBUG
2682 yyvsp[i].yystate.yylrState = s->yylrState;
2683 #endif
2684 yyvsp[i].yystate.yyresolved = s->yyresolved;
2685 if (s->yyresolved)
2686 yyvsp[i].yystate.yysemantics.yysval = s->yysemantics.yysval;
2687 else
2688 /* The effect of using yysval or yyloc (in an immediate rule) is
2689 * undefined. */
2690 yyvsp[i].yystate.yysemantics.yyfirstVal = YY_NULLPTR;
2691 s = yyvsp[i].yystate.yypred = s->yypred;
2692 }
2693 }
2694
2695 /* Do nothing if YYNORMAL or if *YYLOW <= YYLOW1. Otherwise, fill in
2696 * YYVSP[YYLOW1 .. *YYLOW-1] as in yyfillin and set *YYLOW = YYLOW1.
2697 * For convenience, always return YYLOW1. */
2698 static inline int yyfill (yyGLRStackItem *, int *, int, yybool)
2699 YY_ATTRIBUTE_UNUSED;
2700 static inline int
2701 yyfill (yyGLRStackItem *yyvsp, int *yylow, int yylow1, yybool yynormal)
2702 {
2703 if (!yynormal && yylow1 < *yylow)
2704 {
2705 yyfillin (yyvsp, *yylow, yylow1);
2706 *yylow = yylow1;
2707 }
2708 return yylow1;
2709 }
2710
2711 /** Perform user action for rule number YYN, with RHS length YYRHSLEN,
2712 * and top stack item YYVSP. YYLVALP points to place to put semantic
2713 * value ($$), and yylocp points to place for location information
2714 * (@$). Returns yyok for normal return, yyaccept for YYACCEPT,
2715 * yyerr for YYERROR, yyabort for YYABORT. */
2716 static YYRESULTTAG
2717 yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp,
2718 yyGLRStack* yystackp,
2719 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
2720 {
2721 yybool yynormal YY_ATTRIBUTE_UNUSED = (yystackp->yysplitPoint == YY_NULLPTR);
2722 int yylow;
2723 YYUSE (yyvalp);
2724 YYUSE (P);
2725 YYUSE (tokens);
2726 YYUSE (index);
2727 YYUSE (yyrhslen);
2728 # undef yyerrok
2729 # define yyerrok (yystackp->yyerrState = 0)
2730 # undef YYACCEPT
2731 # define YYACCEPT return yyaccept
2732 # undef YYABORT
2733 # define YYABORT return yyabort
2734 # undef YYERROR
2735 # define YYERROR return yyerrok, yyerr
2736 # undef YYRECOVERING
2737 # define YYRECOVERING() (yystackp->yyerrState != 0)
2738 # undef yyclearin
2739 # define yyclearin (yychar = YYEMPTY)
2740 # undef YYFILL
2741 # define YYFILL(N) yyfill (yyvsp, &yylow, N, yynormal)
2742 # undef YYBACKUP
2743 # define YYBACKUP(Token, Value) \
2744 return yyerror (P, tokens, index, YY_("syntax error: cannot back up")), \
2745 yyerrok, yyerr
2746
2747 yylow = 1;
2748 if (yyrhslen == 0)
2749 *yyvalp = yyval_default;
2750 else
2751 *yyvalp = yyvsp[YYFILL (1-yyrhslen)].yystate.yysemantics.yysval;
2752 switch (yyn)
2753 {
2754 case 284:
2755 #line 398 "src/parser_proc_grammar.y" /* glr.c:816 */
2756 {
2757 if ((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
2758 psi_cpp_exp_exec((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), P->preproc, PSI_DATA(P));
2759 psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2760 }
2761 }
2762 #line 2763 "src/parser_proc.c" /* glr.c:816 */
2763 break;
2764
2765 case 285:
2766 #line 404 "src/parser_proc_grammar.y" /* glr.c:816 */
2767 {
2768 if (P->file.ln) {
2769 P->error(PSI_DATA(P), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), PSI_WARNING,
2770 "Extra 'lib \"%s\"' statement has no effect", (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text);
2771 } else {
2772 P->file.ln = strndup((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->size);
2773 }
2774 }
2775 #line 2776 "src/parser_proc.c" /* glr.c:816 */
2776 break;
2777
2778 case 286:
2779 #line 412 "src/parser_proc_grammar.y" /* glr.c:816 */
2780 {
2781 psi_parser_proc_add_const(P, (*(struct psi_const **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2782 }
2783 #line 2784 "src/parser_proc.c" /* glr.c:816 */
2784 break;
2785
2786 case 287:
2787 #line 415 "src/parser_proc_grammar.y" /* glr.c:816 */
2788 {
2789 psi_parser_proc_add_decl(P, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2790 }
2791 #line 2792 "src/parser_proc.c" /* glr.c:816 */
2792 break;
2793
2794 case 290:
2795 #line 420 "src/parser_proc_grammar.y" /* glr.c:816 */
2796 {
2797 psi_parser_proc_add_typedef(P, (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2798 }
2799 #line 2800 "src/parser_proc.c" /* glr.c:816 */
2800 break;
2801
2802 case 291:
2803 #line 423 "src/parser_proc_grammar.y" /* glr.c:816 */
2804 {
2805 psi_parser_proc_add_struct(P, (*(struct psi_decl_struct **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2806 }
2807 #line 2808 "src/parser_proc.c" /* glr.c:816 */
2808 break;
2809
2810 case 292:
2811 #line 426 "src/parser_proc_grammar.y" /* glr.c:816 */
2812 {
2813 psi_parser_proc_add_union(P, (*(struct psi_decl_union **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2814 }
2815 #line 2816 "src/parser_proc.c" /* glr.c:816 */
2816 break;
2817
2818 case 293:
2819 #line 429 "src/parser_proc_grammar.y" /* glr.c:816 */
2820 {
2821 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2822 }
2823 #line 2824 "src/parser_proc.c" /* glr.c:816 */
2824 break;
2825
2826 case 294:
2827 #line 432 "src/parser_proc_grammar.y" /* glr.c:816 */
2828 {
2829 psi_parser_proc_add_impl(P, (*(struct psi_impl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2830 }
2831 #line 2832 "src/parser_proc.c" /* glr.c:816 */
2832 break;
2833
2834 case 295:
2835 #line 438 "src/parser_proc_grammar.y" /* glr.c:816 */
2836 {
2837 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
2838 }
2839 #line 2840 "src/parser_proc.c" /* glr.c:816 */
2840 break;
2841
2842 case 296:
2843 #line 444 "src/parser_proc_grammar.y" /* glr.c:816 */
2844 {
2845 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
2846 }
2847 #line 2848 "src/parser_proc.c" /* glr.c:816 */
2848 break;
2849
2850 case 297:
2851 #line 447 "src/parser_proc_grammar.y" /* glr.c:816 */
2852 {
2853 (*(struct psi_cpp_exp **)(&(*yyvalp))) = (*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
2854 }
2855 #line 2856 "src/parser_proc.c" /* glr.c:816 */
2856 break;
2857
2858 case 298:
2859 #line 453 "src/parser_proc_grammar.y" /* glr.c:816 */
2860 {
2861 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
2862 struct psi_token *msg = NULL;
2863
2864 if (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0, &msg)) {
2865 size_t index = 1;
2866 struct psi_token *next;
2867
2868 msg = psi_token_copy(msg);
2869 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), index++, &next)) {
2870 struct psi_token *old = msg;
2871 msg = psi_token_cat(" ", 2, msg, next);
2872 free(old);
2873 }
2874 }
2875 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2876
2877 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, msg);
2878 } else {
2879 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, NULL);
2880 }
2881 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2882 }
2883 #line 2884 "src/parser_proc.c" /* glr.c:816 */
2884 break;
2885
2886 case 299:
2887 #line 476 "src/parser_proc_grammar.y" /* glr.c:816 */
2888 {
2889 (*(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))));
2890 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2891 }
2892 #line 2893 "src/parser_proc.c" /* glr.c:816 */
2893 break;
2894
2895 case 300:
2896 #line 480 "src/parser_proc_grammar.y" /* glr.c:816 */
2897 {
2898 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL);
2899 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2900 }
2901 #line 2902 "src/parser_proc.c" /* glr.c:816 */
2902 break;
2903
2904 case 301:
2905 #line 484 "src/parser_proc_grammar.y" /* glr.c:816 */
2906 {
2907 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
2908 (*(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))));
2909 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2910 }
2911 #line 2912 "src/parser_proc.c" /* glr.c:816 */
2912 break;
2913
2914 case 302:
2915 #line 489 "src/parser_proc_grammar.y" /* glr.c:816 */
2916 {
2917 (*(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)));
2918 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2919 }
2920 #line 2921 "src/parser_proc.c" /* glr.c:816 */
2921 break;
2922
2923 case 303:
2924 #line 493 "src/parser_proc_grammar.y" /* glr.c:816 */
2925 {
2926 (*(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)));
2927 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2928 }
2929 #line 2930 "src/parser_proc.c" /* glr.c:816 */
2930 break;
2931
2932 case 304:
2933 #line 497 "src/parser_proc_grammar.y" /* glr.c:816 */
2934 {
2935 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL);
2936 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2937 }
2938 #line 2939 "src/parser_proc.c" /* glr.c:816 */
2939 break;
2940
2941 case 305:
2942 #line 501 "src/parser_proc_grammar.y" /* glr.c:816 */
2943 {
2944 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2945 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
2946 }
2947 #line 2948 "src/parser_proc.c" /* glr.c:816 */
2948 break;
2949
2950 case 329:
2951 #line 555 "src/parser_proc_grammar.y" /* glr.c:816 */
2952 {
2953 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
2954 (*(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);
2955 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
2956 }
2957 #line 2958 "src/parser_proc.c" /* glr.c:816 */
2958 break;
2959
2960 case 330:
2961 #line 560 "src/parser_proc_grammar.y" /* glr.c:816 */
2962 {
2963 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
2964 (*(struct psi_cpp_macro_decl **)(&(*yyvalp))) = psi_cpp_macro_decl_init(NULL, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), NULL);
2965 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2966 }
2967 #line 2968 "src/parser_proc.c" /* glr.c:816 */
2968 break;
2969
2970 case 331:
2971 #line 568 "src/parser_proc_grammar.y" /* glr.c:816 */
2972 {
2973 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL);
2974 }
2975 #line 2976 "src/parser_proc.c" /* glr.c:816 */
2976 break;
2977
2978 case 332:
2979 #line 571 "src/parser_proc_grammar.y" /* glr.c:816 */
2980 {
2981 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL); /* FIXME */
2982 }
2983 #line 2984 "src/parser_proc.c" /* glr.c:816 */
2984 break;
2985
2986 case 334:
2987 #line 575 "src/parser_proc_grammar.y" /* glr.c:816 */
2988 {
2989 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
2990 }
2991 #line 2992 "src/parser_proc.c" /* glr.c:816 */
2992 break;
2993
2994 case 335:
2995 #line 581 "src/parser_proc_grammar.y" /* glr.c:816 */
2996 {
2997 (*(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)));
2998 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
2999 (*(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)));
3000 }
3001 #line 3002 "src/parser_proc.c" /* glr.c:816 */
3002 break;
3003
3004 case 336:
3005 #line 586 "src/parser_proc_grammar.y" /* glr.c:816 */
3006 {
3007 (*(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)));
3008 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3009 (*(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)));
3010 }
3011 #line 3012 "src/parser_proc.c" /* glr.c:816 */
3012 break;
3013
3014 case 337:
3015 #line 594 "src/parser_proc_grammar.y" /* glr.c:816 */
3016 {
3017 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3018 }
3019 #line 3020 "src/parser_proc.c" /* glr.c:816 */
3020 break;
3021
3022 case 339:
3023 #line 601 "src/parser_proc_grammar.y" /* glr.c:816 */
3024 {
3025 (*(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)));
3026 (*(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)));
3027 }
3028 #line 3029 "src/parser_proc.c" /* glr.c:816 */
3029 break;
3030
3031 case 340:
3032 #line 605 "src/parser_proc_grammar.y" /* glr.c:816 */
3033 {
3034 (*(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)));
3035 (*(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)));
3036 }
3037 #line 3038 "src/parser_proc.c" /* glr.c:816 */
3038 break;
3039
3040 case 341:
3041 #line 612 "src/parser_proc_grammar.y" /* glr.c:816 */
3042 {
3043 (*(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)));
3044 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3045 }
3046 #line 3047 "src/parser_proc.c" /* glr.c:816 */
3047 break;
3048
3049 case 342:
3050 #line 616 "src/parser_proc_grammar.y" /* glr.c:816 */
3051 {
3052 (*(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)));
3053 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3054 }
3055 #line 3056 "src/parser_proc.c" /* glr.c:816 */
3056 break;
3057
3058 case 343:
3059 #line 620 "src/parser_proc_grammar.y" /* glr.c:816 */
3060 {
3061 (*(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)));
3062 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3063 }
3064 #line 3065 "src/parser_proc.c" /* glr.c:816 */
3065 break;
3066
3067 case 344:
3068 #line 624 "src/parser_proc_grammar.y" /* glr.c:816 */
3069 {
3070 (*(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)));
3071 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3072 }
3073 #line 3074 "src/parser_proc.c" /* glr.c:816 */
3074 break;
3075
3076 case 345:
3077 #line 629 "src/parser_proc_grammar.y" /* glr.c:816 */
3078 {
3079 {
3080 uint8_t exists;
3081
3082 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3083 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3084 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8, &exists, 0));
3085 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3086 }
3087 }
3088 #line 3089 "src/parser_proc.c" /* glr.c:816 */
3089 break;
3090
3091 case 346:
3092 #line 639 "src/parser_proc_grammar.y" /* glr.c:816 */
3093 {
3094 {
3095 uint8_t exists;
3096
3097 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3098 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3099 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8, &exists, 0));
3100 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3101 }
3102 }
3103 #line 3104 "src/parser_proc.c" /* glr.c:816 */
3104 break;
3105
3106 case 347:
3107 #line 649 "src/parser_proc_grammar.y" /* glr.c:816 */
3108 {
3109 (*(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));
3110 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3111 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3112 }
3113 #line 3114 "src/parser_proc.c" /* glr.c:816 */
3114 break;
3115
3116 case 348:
3117 #line 654 "src/parser_proc_grammar.y" /* glr.c:816 */
3118 {
3119 (*(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));
3120 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3121 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3122 }
3123 #line 3124 "src/parser_proc.c" /* glr.c:816 */
3124 break;
3125
3126 case 349:
3127 #line 659 "src/parser_proc_grammar.y" /* glr.c:816 */
3128 {
3129 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3130 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
3131 }
3132 #line 3133 "src/parser_proc.c" /* glr.c:816 */
3133 break;
3134
3135 case 350:
3136 #line 663 "src/parser_proc_grammar.y" /* glr.c:816 */
3137 {
3138 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3139 (*(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));
3140 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3141 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3142 }
3143 #line 3144 "src/parser_proc.c" /* glr.c:816 */
3144 break;
3145
3146 case 351:
3147 #line 669 "src/parser_proc_grammar.y" /* glr.c:816 */
3148 {
3149 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3150 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_FUNCTION,
3151 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));
3152 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3153 }
3154 #line 3155 "src/parser_proc.c" /* glr.c:816 */
3155 break;
3156
3157 case 352:
3158 #line 678 "src/parser_proc_grammar.y" /* glr.c:816 */
3159 {
3160 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3161 }
3162 #line 3163 "src/parser_proc.c" /* glr.c:816 */
3163 break;
3164
3165 case 354:
3166 #line 685 "src/parser_proc_grammar.y" /* glr.c:816 */
3167 {
3168 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_num_exp_free),
3169 &(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3170 }
3171 #line 3172 "src/parser_proc.c" /* glr.c:816 */
3172 break;
3173
3174 case 355:
3175 #line 689 "src/parser_proc_grammar.y" /* glr.c:816 */
3176 {
3177 (*(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)));
3178 }
3179 #line 3180 "src/parser_proc.c" /* glr.c:816 */
3180 break;
3181
3182 case 356:
3183 #line 695 "src/parser_proc_grammar.y" /* glr.c:816 */
3184 {
3185 (*(struct psi_const **)(&(*yyvalp))) = psi_const_init((*(struct psi_const_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)));
3186 (*(struct psi_const **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3187 }
3188 #line 3189 "src/parser_proc.c" /* glr.c:816 */
3189 break;
3190
3191 case 357:
3192 #line 702 "src/parser_proc_grammar.y" /* glr.c:816 */
3193 {
3194 (*(struct psi_const_type **)(&(*yyvalp))) = psi_const_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);
3195 }
3196 #line 3197 "src/parser_proc.c" /* glr.c:816 */
3197 break;
3198
3199 case 362:
3200 #line 715 "src/parser_proc_grammar.y" /* glr.c:816 */
3201 {
3202 (*(struct psi_impl_def_val **)(&(*yyvalp))) = NULL;
3203 }
3204 #line 3205 "src/parser_proc.c" /* glr.c:816 */
3205 break;
3206
3207 case 363:
3208 #line 718 "src/parser_proc_grammar.y" /* glr.c:816 */
3209 {
3210 if (psi_num_exp_validate(PSI_DATA(P), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), NULL, NULL, NULL, NULL, NULL)) {
3211 impl_val res = {0};
3212 token_t type = psi_num_exp_exec((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), &res, NULL, &P->preproc->defs);
3213
3214 if (type == PSI_T_FLOAT || type == PSI_T_DOUBLE) {
3215 (*(struct psi_impl_def_val **)(&(*yyvalp))) = psi_impl_def_val_init(type, NULL);
3216 } else {
3217 (*(struct psi_impl_def_val **)(&(*yyvalp))) = psi_impl_def_val_init(PSI_T_INT, NULL);
3218 }
3219
3220 switch (type) {
3221 case PSI_T_UINT8: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u8; break;
3222 case PSI_T_UINT16: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u16; break;
3223 case PSI_T_UINT32: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u32; break;
3224 case PSI_T_UINT64: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u64; break; /* FIXME */
3225 case PSI_T_INT8: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i8; break;
3226 case PSI_T_INT16: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i16; break;
3227 case PSI_T_INT32: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i32; break;
3228 case PSI_T_INT64: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i64; break;
3229 case PSI_T_FLOAT: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.dval = res.fval; break;
3230 case PSI_T_DOUBLE: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.dval = res.dval; break;
3231 default:
3232 assert(0);
3233
3234 }
3235 } else {
3236 (*(struct psi_impl_def_val **)(&(*yyvalp))) = NULL;
3237 }
3238 psi_num_exp_free(&(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3239 }
3240 #line 3241 "src/parser_proc.c" /* glr.c:816 */
3241 break;
3242
3243 case 364:
3244 #line 749 "src/parser_proc_grammar.y" /* glr.c:816 */
3245 {
3246 (*(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);
3247 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3248 }
3249 #line 3250 "src/parser_proc.c" /* glr.c:816 */
3250 break;
3251
3252 case 369:
3253 #line 763 "src/parser_proc_grammar.y" /* glr.c:816 */
3254 {
3255 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3256 }
3257 #line 3258 "src/parser_proc.c" /* glr.c:816 */
3258 break;
3259
3260 case 370:
3261 #line 766 "src/parser_proc_grammar.y" /* glr.c:816 */
3262 {
3263 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3264 psi_decl_type_init(PSI_T_VOID, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->text),
3265 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text, 0, 0)
3266 );
3267 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3268 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3269 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3270 }
3271 #line 3272 "src/parser_proc.c" /* glr.c:816 */
3272 break;
3273
3274 case 371:
3275 #line 775 "src/parser_proc_grammar.y" /* glr.c:816 */
3276 {
3277 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3278 }
3279 #line 3280 "src/parser_proc.c" /* glr.c:816 */
3280 break;
3281
3282 case 372:
3283 #line 781 "src/parser_proc_grammar.y" /* glr.c:816 */
3284 {
3285 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3286 }
3287 #line 3288 "src/parser_proc.c" /* glr.c:816 */
3288 break;
3289
3290 case 373:
3291 #line 784 "src/parser_proc_grammar.y" /* glr.c:816 */
3292 {
3293 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3294 }
3295 #line 3296 "src/parser_proc.c" /* glr.c:816 */
3296 break;
3297
3298 case 374:
3299 #line 790 "src/parser_proc_grammar.y" /* glr.c:816 */
3300 {
3301 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3302 }
3303 #line 3304 "src/parser_proc.c" /* glr.c:816 */
3304 break;
3305
3306 case 375:
3307 #line 793 "src/parser_proc_grammar.y" /* glr.c:816 */
3308 {
3309 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3310 }
3311 #line 3312 "src/parser_proc.c" /* glr.c:816 */
3312 break;
3313
3314 case 377:
3315 #line 800 "src/parser_proc_grammar.y" /* glr.c:816 */
3316 {
3317 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3318 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
3319 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
3320 );
3321 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
3322 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3323 }
3324 #line 3325 "src/parser_proc.c" /* glr.c:816 */
3325 break;
3326
3327 case 378:
3328 #line 808 "src/parser_proc_grammar.y" /* glr.c:816 */
3329 {
3330 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3331 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3332 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->name),
3333 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0, 0)
3334 );
3335 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3336 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->token);
3337 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3338 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3339 }
3340 #line 3341 "src/parser_proc.c" /* glr.c:816 */
3341 break;
3342
3343 case 379:
3344 #line 819 "src/parser_proc_grammar.y" /* glr.c:816 */
3345 {
3346 (*(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)));
3347 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
3348 (*(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)));
3349 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3350 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
3351 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
3352 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
3353 }
3354 #line 3355 "src/parser_proc.c" /* glr.c:816 */
3355 break;
3356
3357 case 380:
3358 #line 828 "src/parser_proc_grammar.y" /* glr.c:816 */
3359 {
3360 (*(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)));
3361 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
3362 (*(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)));
3363 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3364 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
3365 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
3366 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
3367 }
3368 #line 3369 "src/parser_proc.c" /* glr.c:816 */
3369 break;
3370
3371 case 382:
3372 #line 841 "src/parser_proc_grammar.y" /* glr.c:816 */
3373 {
3374 (*(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));
3375 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
3376 }
3377 #line 3378 "src/parser_proc.c" /* glr.c:816 */
3378 break;
3379
3380 case 383:
3381 #line 845 "src/parser_proc_grammar.y" /* glr.c:816 */
3382 {
3383 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3384 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->name),
3385 psi_decl_var_init(NULL, 0, 0)
3386 );
3387 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
3388 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
3389 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3390 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3391 }
3392 #line 3393 "src/parser_proc.c" /* glr.c:816 */
3393 break;
3394
3395 case 384:
3396 #line 855 "src/parser_proc_grammar.y" /* glr.c:816 */
3397 {
3398 (*(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));
3399 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3400 (*(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)));
3401 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3402 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
3403 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
3404 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
3405 }
3406 #line 3407 "src/parser_proc.c" /* glr.c:816 */
3407 break;
3408
3409 case 385:
3410 #line 864 "src/parser_proc_grammar.y" /* glr.c:816 */
3411 {
3412 (*(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));
3413 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3414 (*(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)));
3415 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3416 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
3417 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
3418 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
3419 }
3420 #line 3421 "src/parser_proc.c" /* glr.c:816 */
3421 break;
3422
3423 case 386:
3424 #line 876 "src/parser_proc_grammar.y" /* glr.c:816 */
3425 {
3426 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3427 }
3428 #line 3429 "src/parser_proc.c" /* glr.c:816 */
3429 break;
3430
3431 case 387:
3432 #line 879 "src/parser_proc_grammar.y" /* glr.c:816 */
3433 {
3434 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3435 }
3436 #line 3437 "src/parser_proc.c" /* glr.c:816 */
3437 break;
3438
3439 case 389:
3440 #line 886 "src/parser_proc_grammar.y" /* glr.c:816 */
3441 {
3442 (*(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);
3443 (*(struct psi_decl_type **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3444 }
3445 #line 3446 "src/parser_proc.c" /* glr.c:816 */
3446 break;
3447
3448 case 391:
3449 #line 894 "src/parser_proc_grammar.y" /* glr.c:816 */
3450 {
3451 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3452 (*(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);
3453 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3454 }
3455 #line 3456 "src/parser_proc.c" /* glr.c:816 */
3456 break;
3457
3458 case 392:
3459 #line 899 "src/parser_proc_grammar.y" /* glr.c:816 */
3460 {
3461 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3462 (*(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);
3463 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3464 }
3465 #line 3466 "src/parser_proc.c" /* glr.c:816 */
3466 break;
3467
3468 case 393:
3469 #line 904 "src/parser_proc_grammar.y" /* glr.c:816 */
3470 {
3471 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3472 (*(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);
3473 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3474 }
3475 #line 3476 "src/parser_proc.c" /* glr.c:816 */
3476 break;
3477
3478 case 396:
3479 #line 914 "src/parser_proc_grammar.y" /* glr.c:816 */
3480 {
3481 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3482 }
3483 #line 3484 "src/parser_proc.c" /* glr.c:816 */
3484 break;
3485
3486 case 397:
3487 #line 920 "src/parser_proc_grammar.y" /* glr.c:816 */
3488 {
3489 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3490 }
3491 #line 3492 "src/parser_proc.c" /* glr.c:816 */
3492 break;
3493
3494 case 398:
3495 #line 923 "src/parser_proc_grammar.y" /* glr.c:816 */
3496 {
3497 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3498 }
3499 #line 3500 "src/parser_proc.c" /* glr.c:816 */
3500 break;
3501
3502 case 399:
3503 #line 926 "src/parser_proc_grammar.y" /* glr.c:816 */
3504 {
3505 (*(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)));
3506 }
3507 #line 3508 "src/parser_proc.c" /* glr.c:816 */
3508 break;
3509
3510 case 402:
3511 #line 937 "src/parser_proc_grammar.y" /* glr.c:816 */
3512 {
3513 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3514 }
3515 #line 3516 "src/parser_proc.c" /* glr.c:816 */
3516 break;
3517
3518 case 403:
3519 #line 940 "src/parser_proc_grammar.y" /* glr.c:816 */
3520 {
3521 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3522 }
3523 #line 3524 "src/parser_proc.c" /* glr.c:816 */
3524 break;
3525
3526 case 404:
3527 #line 943 "src/parser_proc_grammar.y" /* glr.c:816 */
3528 {
3529 (*(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)));
3530 }
3531 #line 3532 "src/parser_proc.c" /* glr.c:816 */
3532 break;
3533
3534 case 405:
3535 #line 949 "src/parser_proc_grammar.y" /* glr.c:816 */
3536 {
3537 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3538 }
3539 #line 3540 "src/parser_proc.c" /* glr.c:816 */
3540 break;
3541
3542 case 406:
3543 #line 952 "src/parser_proc_grammar.y" /* glr.c:816 */
3544 {
3545 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3546 }
3547 #line 3548 "src/parser_proc.c" /* glr.c:816 */
3548 break;
3549
3550 case 407:
3551 #line 955 "src/parser_proc_grammar.y" /* glr.c:816 */
3552 {
3553 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3554 (*(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)));
3555 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3556 } else {
3557 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3558 }
3559 }
3560 #line 3561 "src/parser_proc.c" /* glr.c:816 */
3561 break;
3562
3563 case 408:
3564 #line 963 "src/parser_proc_grammar.y" /* glr.c:816 */
3565 {
3566 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3567 (*(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)));
3568 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3569 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3570 } else {
3571 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3572 }
3573 }
3574 #line 3575 "src/parser_proc.c" /* glr.c:816 */
3575 break;
3576
3577 case 409:
3578 #line 975 "src/parser_proc_grammar.y" /* glr.c:816 */
3579 {
3580 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3581 }
3582 #line 3583 "src/parser_proc.c" /* glr.c:816 */
3583 break;
3584
3585 case 410:
3586 #line 978 "src/parser_proc_grammar.y" /* glr.c:816 */
3587 {
3588 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3589 }
3590 #line 3591 "src/parser_proc.c" /* glr.c:816 */
3591 break;
3592
3593 case 411:
3594 #line 981 "src/parser_proc_grammar.y" /* glr.c:816 */
3595 {
3596 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3597 (*(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)));
3598 } else {
3599 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3600 }
3601 }
3602 #line 3603 "src/parser_proc.c" /* glr.c:816 */
3603 break;
3604
3605 case 412:
3606 #line 988 "src/parser_proc_grammar.y" /* glr.c:816 */
3607 {
3608 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3609 }
3610 #line 3611 "src/parser_proc.c" /* glr.c:816 */
3611 break;
3612
3613 case 413:
3614 #line 991 "src/parser_proc_grammar.y" /* glr.c:816 */
3615 {
3616 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3617 (*(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)));
3618 } else {
3619 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3620 }
3621 }
3622 #line 3623 "src/parser_proc.c" /* glr.c:816 */
3623 break;
3624
3625 case 414:
3626 #line 1001 "src/parser_proc_grammar.y" /* glr.c:816 */
3627 {
3628 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3629 }
3630 #line 3631 "src/parser_proc.c" /* glr.c:816 */
3631 break;
3632
3633 case 416:
3634 #line 1007 "src/parser_proc_grammar.y" /* glr.c:816 */
3635 {
3636 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3637 }
3638 #line 3639 "src/parser_proc.c" /* glr.c:816 */
3639 break;
3640
3641 case 420:
3642 #line 1016 "src/parser_proc_grammar.y" /* glr.c:816 */
3643 {
3644 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3645 }
3646 #line 3647 "src/parser_proc.c" /* glr.c:816 */
3647 break;
3648
3649 case 421:
3650 #line 1019 "src/parser_proc_grammar.y" /* glr.c:816 */
3651 {
3652 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3653 }
3654 #line 3655 "src/parser_proc.c" /* glr.c:816 */
3655 break;
3656
3657 case 422:
3658 #line 1022 "src/parser_proc_grammar.y" /* glr.c:816 */
3659 {
3660 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3661 (*(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)));
3662 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3663 } else {
3664 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3665 }
3666 }
3667 #line 3668 "src/parser_proc.c" /* glr.c:816 */
3668 break;
3669
3670 case 423:
3671 #line 1033 "src/parser_proc_grammar.y" /* glr.c:816 */
3672 {
3673 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3674 }
3675 #line 3676 "src/parser_proc.c" /* glr.c:816 */
3676 break;
3677
3678 case 424:
3679 #line 1036 "src/parser_proc_grammar.y" /* glr.c:816 */
3680 {
3681 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3682 }
3683 #line 3684 "src/parser_proc.c" /* glr.c:816 */
3684 break;
3685
3686 case 430:
3687 #line 1056 "src/parser_proc_grammar.y" /* glr.c:816 */
3688 {
3689 psi_decl_arg_free(&(*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3690 }
3691 #line 3692 "src/parser_proc.c" /* glr.c:816 */
3692 break;
3693
3694 case 432:
3695 #line 1063 "src/parser_proc_grammar.y" /* glr.c:816 */
3696 {
3697 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3698 }
3699 #line 3700 "src/parser_proc.c" /* glr.c:816 */
3700 break;
3701
3702 case 433:
3703 #line 1069 "src/parser_proc_grammar.y" /* glr.c:816 */
3704 {
3705 (*(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)));
3706 }
3707 #line 3708 "src/parser_proc.c" /* glr.c:816 */
3708 break;
3709
3710 case 434:
3711 #line 1072 "src/parser_proc_grammar.y" /* glr.c:816 */
3712 {
3713 (*(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)));
3714 }
3715 #line 3716 "src/parser_proc.c" /* glr.c:816 */
3716 break;
3717
3718 case 435:
3719 #line 1078 "src/parser_proc_grammar.y" /* glr.c:816 */
3720 {
3721 psi_decl_free(&(*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3722 }
3723 #line 3724 "src/parser_proc.c" /* glr.c:816 */
3724 break;
3725
3726 case 436:
3727 #line 1081 "src/parser_proc_grammar.y" /* glr.c:816 */
3728 {
3729 psi_decl_free(&(*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3730 }
3731 #line 3732 "src/parser_proc.c" /* glr.c:816 */
3732 break;
3733
3734 case 437:
3735 #line 1084 "src/parser_proc_grammar.y" /* glr.c:816 */
3736 {
3737 psi_decl_free(&(*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3738 }
3739 #line 3740 "src/parser_proc.c" /* glr.c:816 */
3740 break;
3741
3742 case 444:
3743 #line 1105 "src/parser_proc_grammar.y" /* glr.c:816 */
3744 {
3745 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3746 (*(struct psi_decl **)(&(*yyvalp)))->abi = psi_decl_abi_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
3747 }
3748 #line 3749 "src/parser_proc.c" /* glr.c:816 */
3749 break;
3750
3751 case 447:
3752 #line 1117 "src/parser_proc_grammar.y" /* glr.c:816 */
3753 {
3754 (*(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)));
3755 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3756 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3757 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3758 }
3759 }
3760 #line 3761 "src/parser_proc.c" /* glr.c:816 */
3761 break;
3762
3763 case 448:
3764 #line 1124 "src/parser_proc_grammar.y" /* glr.c:816 */
3765 {
3766 (*(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)));
3767 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
3768 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3769 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3770 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3771 }
3772 }
3773 #line 3774 "src/parser_proc.c" /* glr.c:816 */
3774 break;
3775
3776 case 449:
3777 #line 1135 "src/parser_proc_grammar.y" /* glr.c:816 */
3778 {
3779 (*(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)));
3780 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3781 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3782 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3783 }
3784 }
3785 #line 3786 "src/parser_proc.c" /* glr.c:816 */
3786 break;
3787
3788 case 450:
3789 #line 1142 "src/parser_proc_grammar.y" /* glr.c:816 */
3790 {
3791 (*(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)));
3792 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
3793 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3794 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3795 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3796 }
3797 }
3798 #line 3799 "src/parser_proc.c" /* glr.c:816 */
3799 break;
3800
3801 case 451:
3802 #line 1153 "src/parser_proc_grammar.y" /* glr.c:816 */
3803 {
3804 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3805 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3806 (*(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));
3807 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3808 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3809 }
3810 #line 3811 "src/parser_proc.c" /* glr.c:816 */
3811 break;
3812
3813 case 452:
3814 #line 1160 "src/parser_proc_grammar.y" /* glr.c:816 */
3815 {
3816 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3817 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3818 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3819 psi_decl_type_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),
3820 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)
3821 );
3822 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
3823 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3824 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3825 }
3826 #line 3827 "src/parser_proc.c" /* glr.c:816 */
3827 break;
3828
3829 case 453:
3830 #line 1171 "src/parser_proc_grammar.y" /* glr.c:816 */
3831 {
3832 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3833 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3834 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3835 psi_decl_type_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),
3836 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)
3837 );
3838 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
3839 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3840 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3841 }
3842 #line 3843 "src/parser_proc.c" /* glr.c:816 */
3843 break;
3844
3845 case 454:
3846 #line 1182 "src/parser_proc_grammar.y" /* glr.c:816 */
3847 {
3848 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3849 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3850 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3851 psi_decl_type_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),
3852 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text, 0, 0)
3853 );
3854 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
3855 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3856 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3857 }
3858 #line 3859 "src/parser_proc.c" /* glr.c:816 */
3859 break;
3860
3861 case 456:
3862 #line 1197 "src/parser_proc_grammar.y" /* glr.c:816 */
3863 {
3864 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3865 psi_decl_type_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text),
3866 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0, 0)
3867 );
3868 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3869 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3870 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3871 }
3872 #line 3873 "src/parser_proc.c" /* glr.c:816 */
3873 break;
3874
3875 case 457:
3876 #line 1209 "src/parser_proc_grammar.y" /* glr.c:816 */
3877 {
3878 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3879 }
3880 #line 3881 "src/parser_proc.c" /* glr.c:816 */
3881 break;
3882
3883 case 458:
3884 #line 1212 "src/parser_proc_grammar.y" /* glr.c:816 */
3885 {
3886 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3887 }
3888 #line 3889 "src/parser_proc.c" /* glr.c:816 */
3889 break;
3890
3891 case 459:
3892 #line 1215 "src/parser_proc_grammar.y" /* glr.c:816 */
3893 {
3894 (*(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)));
3895 }
3896 #line 3897 "src/parser_proc.c" /* glr.c:816 */
3897 break;
3898
3899 case 460:
3900 #line 1218 "src/parser_proc_grammar.y" /* glr.c:816 */
3901 {
3902 (*(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)));
3903 }
3904 #line 3905 "src/parser_proc.c" /* glr.c:816 */
3905 break;
3906
3907 case 461:
3908 #line 1225 "src/parser_proc_grammar.y" /* glr.c:816 */
3909 {
3910 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3911 }
3912 #line 3913 "src/parser_proc.c" /* glr.c:816 */
3913 break;
3914
3915 case 462:
3916 #line 1228 "src/parser_proc_grammar.y" /* glr.c:816 */
3917 {
3918 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3919 (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)),
3920 psi_decl_var_init(NULL, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0)
3921 );
3922 }
3923 #line 3924 "src/parser_proc.c" /* glr.c:816 */
3924 break;
3925
3926 case 463:
3927 #line 1234 "src/parser_proc_grammar.y" /* glr.c:816 */
3928 {
3929 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3930 psi_decl_type_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text),
3931 psi_decl_var_init(NULL, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0)
3932 );
3933 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3934 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3935 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3936 }
3937 #line 3938 "src/parser_proc.c" /* glr.c:816 */
3938 break;
3939
3940 case 464:
3941 #line 1243 "src/parser_proc_grammar.y" /* glr.c:816 */
3942 {
3943 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3944 psi_decl_type_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text),
3945 psi_decl_var_init(NULL, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0)
3946 );
3947 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3948 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3949 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3950 }
3951 #line 3952 "src/parser_proc.c" /* glr.c:816 */
3952 break;
3953
3954 case 465:
3955 #line 1255 "src/parser_proc_grammar.y" /* glr.c:816 */
3956 {
3957 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3958 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
3959 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
3960 );
3961 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
3962 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3963 }
3964 #line 3965 "src/parser_proc.c" /* glr.c:816 */
3965 break;
3966
3967 case 466:
3968 #line 1263 "src/parser_proc_grammar.y" /* glr.c:816 */
3969 {
3970 (*(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)));
3971 }
3972 #line 3973 "src/parser_proc.c" /* glr.c:816 */
3973 break;
3974
3975 case 467:
3976 #line 1266 "src/parser_proc_grammar.y" /* glr.c:816 */
3977 {
3978 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3979 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3980 psi_decl_type_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->text),
3981 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), 0)
3982 );
3983 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3984 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3985 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3986 }
3987 #line 3988 "src/parser_proc.c" /* glr.c:816 */
3988 break;
3989
3990 case 468:
3991 #line 1276 "src/parser_proc_grammar.y" /* glr.c:816 */
3992 {
3993 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3994 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3995 psi_decl_type_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->text),
3996 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), 0)
3997 );
3998 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3999 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4000 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4001 }
4002 #line 4003 "src/parser_proc.c" /* glr.c:816 */
4003 break;
4004
4005 case 469:
4006 #line 1289 "src/parser_proc_grammar.y" /* glr.c:816 */
4007 {
4008 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4009 (*(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)));
4010 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4011 }
4012 #line 4013 "src/parser_proc.c" /* glr.c:816 */
4013 break;
4014
4015 case 470:
4016 #line 1294 "src/parser_proc_grammar.y" /* glr.c:816 */
4017 {
4018 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4019 (*(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)));
4020 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4021 }
4022 #line 4023 "src/parser_proc.c" /* glr.c:816 */
4023 break;
4024
4025 case 471:
4026 #line 1302 "src/parser_proc_grammar.y" /* glr.c:816 */
4027 {
4028 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4029 (*(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)));
4030 (*(struct psi_decl_union **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
4031 (*(struct psi_decl_union **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
4032 (*(struct psi_decl_union **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4033 }
4034 #line 4035 "src/parser_proc.c" /* glr.c:816 */
4035 break;
4036
4037 case 472:
4038 #line 1312 "src/parser_proc_grammar.y" /* glr.c:816 */
4039 {
4040 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4041 (*(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)));
4042 (*(struct psi_decl_struct **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
4043 (*(struct psi_decl_struct **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
4044 (*(struct psi_decl_struct **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4045 }
4046 #line 4047 "src/parser_proc.c" /* glr.c:816 */
4047 break;
4048
4049 case 473:
4050 #line 1322 "src/parser_proc_grammar.y" /* glr.c:816 */
4051 {
4052 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4053 }
4054 #line 4055 "src/parser_proc.c" /* glr.c:816 */
4055 break;
4056
4057 case 475:
4058 #line 1329 "src/parser_proc_grammar.y" /* glr.c:816 */
4059 {
4060 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4061 }
4062 #line 4063 "src/parser_proc.c" /* glr.c:816 */
4063 break;
4064
4065 case 476:
4066 #line 1335 "src/parser_proc_grammar.y" /* glr.c:816 */
4067 {
4068 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4069 (*(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)));
4070 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
4071 size_t i = 0;
4072 struct psi_decl_arg *arg;
4073
4074 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
4075 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
4076 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
4077 }
4078 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4079 }
4080 }
4081 #line 4082 "src/parser_proc.c" /* glr.c:816 */
4082 break;
4083
4084 case 477:
4085 #line 1349 "src/parser_proc_grammar.y" /* glr.c:816 */
4086 {
4087 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4088 (*(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)));
4089 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
4090 size_t i = 0;
4091 struct psi_decl_arg *arg;
4092
4093 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
4094 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
4095 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
4096 }
4097 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4098 }
4099 }
4100 #line 4101 "src/parser_proc.c" /* glr.c:816 */
4101 break;
4102
4103 case 478:
4104 #line 1366 "src/parser_proc_grammar.y" /* glr.c:816 */
4105 {
4106 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4107 }
4108 #line 4109 "src/parser_proc.c" /* glr.c:816 */
4109 break;
4110
4111 case 479:
4112 #line 1369 "src/parser_proc_grammar.y" /* glr.c:816 */
4113 {
4114 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4115 }
4116 #line 4117 "src/parser_proc.c" /* glr.c:816 */
4117 break;
4118
4119 case 480:
4120 #line 1375 "src/parser_proc_grammar.y" /* glr.c:816 */
4121 {
4122 {
4123 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4124 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4125 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &arg);
4126 }
4127 }
4128 #line 4129 "src/parser_proc.c" /* glr.c:816 */
4129 break;
4130
4131 case 481:
4132 #line 1382 "src/parser_proc_grammar.y" /* glr.c:816 */
4133 {
4134 {
4135 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4136 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4137 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), &arg);
4138 }
4139 }
4140 #line 4141 "src/parser_proc.c" /* glr.c:816 */
4141 break;
4142
4143 case 482:
4144 #line 1392 "src/parser_proc_grammar.y" /* glr.c:816 */
4145 {
4146 (*(struct psi_decl_enum **)(&(*yyvalp))) = psi_decl_enum_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4147 (*(struct psi_decl_enum **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
4148 }
4149 #line 4150 "src/parser_proc.c" /* glr.c:816 */
4150 break;
4151
4152 case 483:
4153 #line 1399 "src/parser_proc_grammar.y" /* glr.c:816 */
4154 {
4155 (*(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)));
4156 }
4157 #line 4158 "src/parser_proc.c" /* glr.c:816 */
4158 break;
4159
4160 case 484:
4161 #line 1402 "src/parser_proc_grammar.y" /* glr.c:816 */
4162 {
4163 (*(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)));
4164 }
4165 #line 4166 "src/parser_proc.c" /* glr.c:816 */
4166 break;
4167
4168 case 485:
4169 #line 1408 "src/parser_proc_grammar.y" /* glr.c:816 */
4170 {
4171 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4172 (*(struct psi_decl_enum_item **)(&(*yyvalp))) = psi_decl_enum_item_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, NULL);
4173 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4174 }
4175 #line 4176 "src/parser_proc.c" /* glr.c:816 */
4176 break;
4177
4178 case 486:
4179 #line 1413 "src/parser_proc_grammar.y" /* glr.c:816 */
4180 {
4181 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4182 (*(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)));
4183 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4184 }
4185 #line 4186 "src/parser_proc.c" /* glr.c:816 */
4186 break;
4187
4188 case 487:
4189 #line 1421 "src/parser_proc_grammar.y" /* glr.c:816 */
4190 {
4191 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4192 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4193 }
4194 #line 4195 "src/parser_proc.c" /* glr.c:816 */
4195 break;
4196
4197 case 488:
4198 #line 1425 "src/parser_proc_grammar.y" /* glr.c:816 */
4199 {
4200 (*(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)));
4201 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->token);
4202 }
4203 #line 4204 "src/parser_proc.c" /* glr.c:816 */
4204 break;
4205
4206 case 489:
4207 #line 1429 "src/parser_proc_grammar.y" /* glr.c:816 */
4208 {
4209 (*(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)));
4210 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4211 }
4212 #line 4213 "src/parser_proc.c" /* glr.c:816 */
4213 break;
4214
4215 case 490:
4216 #line 1433 "src/parser_proc_grammar.y" /* glr.c:816 */
4217 {
4218 (*(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)));
4219 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4220 }
4221 #line 4222 "src/parser_proc.c" /* glr.c:816 */
4222 break;
4223
4224 case 491:
4225 #line 1437 "src/parser_proc_grammar.y" /* glr.c:816 */
4226 {
4227 (*(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)));
4228 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4229 }
4230 #line 4231 "src/parser_proc.c" /* glr.c:816 */
4231 break;
4232
4233 case 492:
4234 #line 1441 "src/parser_proc_grammar.y" /* glr.c:816 */
4235 {
4236 (*(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)));
4237 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4238 }
4239 #line 4240 "src/parser_proc.c" /* glr.c:816 */
4240 break;
4241
4242 case 493:
4243 #line 1448 "src/parser_proc_grammar.y" /* glr.c:816 */
4244 {
4245 (*(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);
4246 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4247 }
4248 #line 4249 "src/parser_proc.c" /* glr.c:816 */
4249 break;
4250
4251 case 494:
4252 #line 1452 "src/parser_proc_grammar.y" /* glr.c:816 */
4253 {
4254 (*(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);
4255 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4256 }
4257 #line 4258 "src/parser_proc.c" /* glr.c:816 */
4258 break;
4259
4260 case 495:
4261 #line 1456 "src/parser_proc_grammar.y" /* glr.c:816 */
4262 {
4263 (*(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);
4264 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4265 }
4266 #line 4267 "src/parser_proc.c" /* glr.c:816 */
4267 break;
4268
4269 case 496:
4270 #line 1460 "src/parser_proc_grammar.y" /* glr.c:816 */
4271 {
4272 (*(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);
4273 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4274 }
4275 #line 4276 "src/parser_proc.c" /* glr.c:816 */
4276 break;
4277
4278 case 497:
4279 #line 1464 "src/parser_proc_grammar.y" /* glr.c:816 */
4280 {
4281 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_NAME, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0);
4282 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4283 }
4284 #line 4285 "src/parser_proc.c" /* glr.c:816 */
4285 break;
4286
4287 case 498:
4288 #line 1468 "src/parser_proc_grammar.y" /* glr.c:816 */
4289 {
4290 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4291 }
4292 #line 4293 "src/parser_proc.c" /* glr.c:816 */
4293 break;
4294
4295 case 499:
4296 #line 1474 "src/parser_proc_grammar.y" /* glr.c:816 */
4297 {
4298 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4299 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4300 }
4301 #line 4302 "src/parser_proc.c" /* glr.c:816 */
4302 break;
4303
4304 case 500:
4305 #line 1478 "src/parser_proc_grammar.y" /* glr.c:816 */
4306 {
4307 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4308 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4309 }
4310 #line 4311 "src/parser_proc.c" /* glr.c:816 */
4311 break;
4312
4313 case 501:
4314 #line 1485 "src/parser_proc_grammar.y" /* glr.c:816 */
4315 {
4316 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4317 }
4318 #line 4319 "src/parser_proc.c" /* glr.c:816 */
4319 break;
4320
4321 case 502:
4322 #line 1488 "src/parser_proc_grammar.y" /* glr.c:816 */
4323 {
4324 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4325 int8_t sizeof_void_p = sizeof(void *);
4326 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0);
4327 } else {
4328 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_SIZEOF, (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), 0);
4329 }
4330 }
4331 #line 4332 "src/parser_proc.c" /* glr.c:816 */
4332 break;
4333
4334 case 503:
4335 #line 1499 "src/parser_proc_grammar.y" /* glr.c:816 */
4336 {
4337 int8_t sizeof_void_p = sizeof(void *);
4338 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0);
4339 }
4340 #line 4341 "src/parser_proc.c" /* glr.c:816 */
4341 break;
4342
4343 case 504:
4344 #line 1503 "src/parser_proc_grammar.y" /* glr.c:816 */
4345 {
4346 int8_t sizeof_a = sizeof('a');
4347 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_a, 0);
4348 }
4349 #line 4350 "src/parser_proc.c" /* glr.c:816 */
4350 break;
4351
4352 case 505:
4353 #line 1507 "src/parser_proc_grammar.y" /* glr.c:816 */
4354 {
4355 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT64, &(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->size, 0);
4356 }
4357 #line 4358 "src/parser_proc.c" /* glr.c:816 */
4358 break;
4359
4360 case 506:
4361 #line 1513 "src/parser_proc_grammar.y" /* glr.c:816 */
4362 {
4363 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4364 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4365 } else {
4366 char digest[17];
4367
4368 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
4369 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
4370 }
4371 }
4372 #line 4373 "src/parser_proc.c" /* glr.c:816 */
4373 break;
4374
4375 case 507:
4376 #line 1526 "src/parser_proc_grammar.y" /* glr.c:816 */
4377 {
4378 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4379 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4380 } else {
4381 char digest[17];
4382
4383 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
4384 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
4385 }
4386 }
4387 #line 4388 "src/parser_proc.c" /* glr.c:816 */
4388 break;
4389
4390 case 508:
4391 #line 1539 "src/parser_proc_grammar.y" /* glr.c:816 */
4392 {
4393 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4394 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4395 } else {
4396 char digest[17];
4397
4398 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
4399 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
4400 }
4401 }
4402 #line 4403 "src/parser_proc.c" /* glr.c:816 */
4403 break;
4404
4405 case 509:
4406 #line 1552 "src/parser_proc_grammar.y" /* glr.c:816 */
4407 {
4408 (*(struct psi_token **)(&(*yyvalp))) = NULL;
4409 }
4410 #line 4411 "src/parser_proc.c" /* glr.c:816 */
4411 break;
4412
4413 case 510:
4414 #line 1555 "src/parser_proc_grammar.y" /* glr.c:816 */
4415 {
4416 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4417 (*(struct psi_token **)(&(*yyvalp)))->type = PSI_T_NAME;
4418 }
4419 #line 4420 "src/parser_proc.c" /* glr.c:816 */
4420 break;
4421
4422 case 511:
4423 #line 1562 "src/parser_proc_grammar.y" /* glr.c:816 */
4424 {
4425 (*(struct psi_layout **)(&(*yyvalp))) = NULL;
4426 }
4427 #line 4428 "src/parser_proc.c" /* glr.c:816 */
4428 break;
4429
4430 case 512:
4431 #line 1565 "src/parser_proc_grammar.y" /* glr.c:816 */
4432 {
4433 (*(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), NULL));
4434 }
4435 #line 4436 "src/parser_proc.c" /* glr.c:816 */
4436 break;
4437
4438 case 513:
4439 #line 1568 "src/parser_proc_grammar.y" /* glr.c:816 */
4440 {
4441 (*(struct psi_layout **)(&(*yyvalp))) = psi_layout_init(atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text), atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text), NULL);
4442 }
4443 #line 4444 "src/parser_proc.c" /* glr.c:816 */
4444 break;
4445
4446 case 514:
4447 #line 1571 "src/parser_proc_grammar.y" /* glr.c:816 */
4448 {
4449 (*(struct psi_layout **)(&(*yyvalp))) = psi_layout_init(atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text), atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text), psi_layout_init(0, atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval))->text), NULL));
4450 }
4451 #line 4452 "src/parser_proc.c" /* glr.c:816 */
4452 break;
4453
4454 case 515:
4455 #line 1577 "src/parser_proc_grammar.y" /* glr.c:816 */
4456 {
4457 (*(struct psi_layout*)(&(*yyvalp))).pos = 0;
4458 (*(struct psi_layout*)(&(*yyvalp))).len = 0;
4459 }
4460 #line 4461 "src/parser_proc.c" /* glr.c:816 */
4461 break;
4462
4463 case 516:
4464 #line 1581 "src/parser_proc_grammar.y" /* glr.c:816 */
4465 {
4466 (*(struct psi_layout*)(&(*yyvalp))).pos = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text);
4467 (*(struct psi_layout*)(&(*yyvalp))).len = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
4468 }
4469 #line 4470 "src/parser_proc.c" /* glr.c:816 */
4470 break;
4471
4472 case 517:
4473 #line 1588 "src/parser_proc_grammar.y" /* glr.c:816 */
4474 {
4475 (*(size_t*)(&(*yyvalp))) = 0;
4476 }
4477 #line 4478 "src/parser_proc.c" /* glr.c:816 */
4478 break;
4479
4480 case 518:
4481 #line 1591 "src/parser_proc_grammar.y" /* glr.c:816 */
4482 {
4483 (*(size_t*)(&(*yyvalp))) = 0;
4484 }
4485 #line 4486 "src/parser_proc.c" /* glr.c:816 */
4486 break;
4487
4488 case 519:
4489 #line 1594 "src/parser_proc_grammar.y" /* glr.c:816 */
4490 {
4491 if (psi_num_exp_validate(PSI_DATA(P), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), NULL, NULL, NULL, NULL, NULL)) {
4492 (*(size_t*)(&(*yyvalp))) = psi_long_num_exp((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), NULL, &P->preproc->defs);
4493 } else {
4494 (*(size_t*)(&(*yyvalp))) = 0;
4495 }
4496 }
4497 #line 4498 "src/parser_proc.c" /* glr.c:816 */
4498 break;
4499
4500 case 520:
4501 #line 1604 "src/parser_proc_grammar.y" /* glr.c:816 */
4502 {
4503 (*(size_t*)(&(*yyvalp))) = 0;
4504 }
4505 #line 4506 "src/parser_proc.c" /* glr.c:816 */
4506 break;
4507
4508 case 521:
4509 #line 1607 "src/parser_proc_grammar.y" /* glr.c:816 */
4510 {
4511 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4512 }
4513 #line 4514 "src/parser_proc.c" /* glr.c:816 */
4514 break;
4515
4516 case 523:
4517 #line 1614 "src/parser_proc_grammar.y" /* glr.c:816 */
4518 {
4519 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4520 }
4521 #line 4522 "src/parser_proc.c" /* glr.c:816 */
4522 break;
4523
4524 case 524:
4525 #line 1620 "src/parser_proc_grammar.y" /* glr.c:816 */
4526 {
4527 (*(size_t*)(&(*yyvalp))) = 1;
4528 }
4529 #line 4530 "src/parser_proc.c" /* glr.c:816 */
4530 break;
4531
4532 case 525:
4533 #line 1623 "src/parser_proc_grammar.y" /* glr.c:816 */
4534 {
4535 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)) + 1;
4536 }
4537 #line 4538 "src/parser_proc.c" /* glr.c:816 */
4538 break;
4539
4540 case 528:
4541 #line 1640 "src/parser_proc_grammar.y" /* glr.c:816 */
4542 {
4543 (*(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)));
4544 }
4545 #line 4546 "src/parser_proc.c" /* glr.c:816 */
4546 break;
4547
4548 case 529:
4549 #line 1643 "src/parser_proc_grammar.y" /* glr.c:816 */
4550 {
4551 (*(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)));
4552 (*(struct psi_impl_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->static_memory = 1;
4553 }
4554 #line 4555 "src/parser_proc.c" /* glr.c:816 */
4555 break;
4556
4557 case 530:
4558 #line 1650 "src/parser_proc_grammar.y" /* glr.c:816 */
4559 {
4560 (*(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)));
4561 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
4562 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval));
4563 }
4564 #line 4565 "src/parser_proc.c" /* glr.c:816 */
4565 break;
4566
4567 case 531:
4568 #line 1655 "src/parser_proc_grammar.y" /* glr.c:816 */
4569 {
4570 (*(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)));
4571 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4572 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval));
4573 }
4574 #line 4575 "src/parser_proc.c" /* glr.c:816 */
4575 break;
4576
4577 case 532:
4578 #line 1660 "src/parser_proc_grammar.y" /* glr.c:816 */
4579 {
4580 (*(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)));
4581 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval)));
4582 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-11)].yystate.yysemantics.yysval));
4583 (*(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);
4584 (*(struct psi_impl_func **)(&(*yyvalp)))->vararg->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4585 }
4586 #line 4587 "src/parser_proc.c" /* glr.c:816 */
4587 break;
4588
4589 case 533:
4590 #line 1670 "src/parser_proc_grammar.y" /* glr.c:816 */
4591 {
4592 (*(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)));
4593 }
4594 #line 4595 "src/parser_proc.c" /* glr.c:816 */
4595 break;
4596
4597 case 534:
4598 #line 1673 "src/parser_proc_grammar.y" /* glr.c:816 */
4599 {
4600 (*(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)));
4601 }
4602 #line 4603 "src/parser_proc.c" /* glr.c:816 */
4603 break;
4604
4605 case 535:
4606 #line 1679 "src/parser_proc_grammar.y" /* glr.c:816 */
4607 {
4608 (*(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);
4609 }
4610 #line 4611 "src/parser_proc.c" /* glr.c:816 */
4611 break;
4612
4613 case 536:
4614 #line 1682 "src/parser_proc_grammar.y" /* glr.c:816 */
4615 {
4616 (*(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)));
4617 }
4618 #line 4619 "src/parser_proc.c" /* glr.c:816 */
4619 break;
4620
4621 case 537:
4622 #line 1688 "src/parser_proc_grammar.y" /* glr.c:816 */
4623 {
4624 (*(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)));
4625 (*(struct psi_impl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4626 }
4627 #line 4628 "src/parser_proc.c" /* glr.c:816 */
4628 break;
4629
4630 case 538:
4631 #line 1695 "src/parser_proc_grammar.y" /* glr.c:816 */
4632 {
4633 (*(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);
4634 (*(struct psi_impl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4635 }
4636 #line 4637 "src/parser_proc.c" /* glr.c:816 */
4637 break;
4638
4639 case 548:
4640 #line 1714 "src/parser_proc_grammar.y" /* glr.c:816 */
4641 {
4642 (*(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)));
4643 }
4644 #line 4645 "src/parser_proc.c" /* glr.c:816 */
4645 break;
4646
4647 case 549:
4648 #line 1717 "src/parser_proc_grammar.y" /* glr.c:816 */
4649 {
4650 (*(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)));
4651 }
4652 #line 4653 "src/parser_proc.c" /* glr.c:816 */
4653 break;
4654
4655 case 550:
4656 #line 1723 "src/parser_proc_grammar.y" /* glr.c:816 */
4657 {
4658 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_return_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4659 }
4660 #line 4661 "src/parser_proc.c" /* glr.c:816 */
4661 break;
4662
4663 case 551:
4664 #line 1726 "src/parser_proc_grammar.y" /* glr.c:816 */
4665 {
4666 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_let_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4667 }
4668 #line 4669 "src/parser_proc.c" /* glr.c:816 */
4669 break;
4670
4671 case 552:
4672 #line 1729 "src/parser_proc_grammar.y" /* glr.c:816 */
4673 {
4674 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_set_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4675 }
4676 #line 4677 "src/parser_proc.c" /* glr.c:816 */
4677 break;
4678
4679 case 553:
4680 #line 1732 "src/parser_proc_grammar.y" /* glr.c:816 */
4681 {
4682 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_assert_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4683 }
4684 #line 4685 "src/parser_proc.c" /* glr.c:816 */
4685 break;
4686
4687 case 554:
4688 #line 1735 "src/parser_proc_grammar.y" /* glr.c:816 */
4689 {
4690 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_free_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4691 }
4692 #line 4693 "src/parser_proc.c" /* glr.c:816 */
4693 break;
4694
4695 case 555:
4696 #line 1741 "src/parser_proc_grammar.y" /* glr.c:816 */
4697 {
4698 (*(struct psi_let_stmt **)(&(*yyvalp))) = psi_let_stmt_init((*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4699 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4700 }
4701 #line 4702 "src/parser_proc.c" /* glr.c:816 */
4702 break;
4703
4704 case 556:
4705 #line 1745 "src/parser_proc_grammar.y" /* glr.c:816 */
4706 {
4707 (*(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))));
4708 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4709 (*(struct psi_let_stmt **)(&(*yyvalp)))->exp->is_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4710 }
4711 #line 4712 "src/parser_proc.c" /* glr.c:816 */
4712 break;
4713
4714 case 558:
4715 #line 1754 "src/parser_proc_grammar.y" /* glr.c:816 */
4716 {
4717 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4718 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = true;
4719 }
4720 #line 4721 "src/parser_proc.c" /* glr.c:816 */
4721 break;
4722
4723 case 559:
4724 #line 1758 "src/parser_proc_grammar.y" /* glr.c:816 */
4725 {
4726 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4727 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = false;
4728 }
4729 #line 4730 "src/parser_proc.c" /* glr.c:816 */
4730 break;
4731
4732 case 560:
4733 #line 1765 "src/parser_proc_grammar.y" /* glr.c:816 */
4734 {
4735 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_NULL, NULL);
4736 }
4737 #line 4738 "src/parser_proc.c" /* glr.c:816 */
4738 break;
4739
4740 case 561:
4741 #line 1768 "src/parser_proc_grammar.y" /* glr.c:816 */
4742 {
4743 (*(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)));
4744 }
4745 #line 4746 "src/parser_proc.c" /* glr.c:816 */
4746 break;
4747
4748 case 562:
4749 #line 1771 "src/parser_proc_grammar.y" /* glr.c:816 */
4750 {
4751 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4752 }
4753 #line 4754 "src/parser_proc.c" /* glr.c:816 */
4754 break;
4755
4756 case 563:
4757 #line 1774 "src/parser_proc_grammar.y" /* glr.c:816 */
4758 {
4759 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4760 (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->static_memory = 1;
4761 }
4762 #line 4763 "src/parser_proc.c" /* glr.c:816 */
4763 break;
4764
4765 case 564:
4766 #line 1778 "src/parser_proc_grammar.y" /* glr.c:816 */
4767 {
4768 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLBACK, (*(struct psi_let_callback **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4769 }
4770 #line 4771 "src/parser_proc.c" /* glr.c:816 */
4771 break;
4772
4773 case 565:
4774 #line 1781 "src/parser_proc_grammar.y" /* glr.c:816 */
4775 {
4776 (*(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)));
4777 }
4778 #line 4779 "src/parser_proc.c" /* glr.c:816 */
4779 break;
4780
4781 case 566:
4782 #line 1787 "src/parser_proc_grammar.y" /* glr.c:816 */
4783 {
4784 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4785 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4786 }
4787 #line 4788 "src/parser_proc.c" /* glr.c:816 */
4788 break;
4789
4790 case 567:
4791 #line 1791 "src/parser_proc_grammar.y" /* glr.c:816 */
4792 {
4793 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4794 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = 1;
4795 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
4796 }
4797 #line 4798 "src/parser_proc.c" /* glr.c:816 */
4798 break;
4799
4800 case 568:
4801 #line 1799 "src/parser_proc_grammar.y" /* glr.c:816 */
4802 {
4803 (*(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)));
4804 (*(struct psi_let_calloc **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4805 }
4806 #line 4807 "src/parser_proc.c" /* glr.c:816 */
4807 break;
4808
4809 case 569:
4810 #line 1806 "src/parser_proc_grammar.y" /* glr.c:816 */
4811 {
4812 (*(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)));
4813 (*(struct psi_let_callback **)(&(*yyvalp)))->func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
4814 (*(struct psi_let_callback **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval)));
4815 }
4816 #line 4817 "src/parser_proc.c" /* glr.c:816 */
4817 break;
4818
4819 case 570:
4820 #line 1814 "src/parser_proc_grammar.y" /* glr.c:816 */
4821 {
4822 (*(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)));
4823 (*(struct psi_let_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
4824 (*(struct psi_let_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4825 }
4826 #line 4827 "src/parser_proc.c" /* glr.c:816 */
4827 break;
4828
4829 case 581:
4830 #line 1835 "src/parser_proc_grammar.y" /* glr.c:816 */
4831 {
4832 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4833 }
4834 #line 4835 "src/parser_proc.c" /* glr.c:816 */
4835 break;
4836
4837 case 582:
4838 #line 1838 "src/parser_proc_grammar.y" /* glr.c:816 */
4839 {
4840 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4841 }
4842 #line 4843 "src/parser_proc.c" /* glr.c:816 */
4843 break;
4844
4845 case 583:
4846 #line 1844 "src/parser_proc_grammar.y" /* glr.c:816 */
4847 {
4848 (*(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)));
4849 }
4850 #line 4851 "src/parser_proc.c" /* glr.c:816 */
4851 break;
4852
4853 case 584:
4854 #line 1847 "src/parser_proc_grammar.y" /* glr.c:816 */
4855 {
4856 (*(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)));
4857 }
4858 #line 4859 "src/parser_proc.c" /* glr.c:816 */
4859 break;
4860
4861 case 587:
4862 #line 1858 "src/parser_proc_grammar.y" /* glr.c:816 */
4863 {
4864 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4865 }
4866 #line 4867 "src/parser_proc.c" /* glr.c:816 */
4867 break;
4868
4869 case 588:
4870 #line 1861 "src/parser_proc_grammar.y" /* glr.c:816 */
4871 {
4872 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4873 }
4874 #line 4875 "src/parser_proc.c" /* glr.c:816 */
4875 break;
4876
4877 case 589:
4878 #line 1867 "src/parser_proc_grammar.y" /* glr.c:816 */
4879 {
4880 (*(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)));
4881 }
4882 #line 4883 "src/parser_proc.c" /* glr.c:816 */
4883 break;
4884
4885 case 590:
4886 #line 1870 "src/parser_proc_grammar.y" /* glr.c:816 */
4887 {
4888 (*(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)));
4889 }
4890 #line 4891 "src/parser_proc.c" /* glr.c:816 */
4891 break;
4892
4893 case 591:
4894 #line 1876 "src/parser_proc_grammar.y" /* glr.c:816 */
4895 {
4896 (*(struct psi_return_stmt **)(&(*yyvalp))) = psi_return_stmt_init((*(struct psi_return_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4897 (*(struct psi_return_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4898 }
4899 #line 4900 "src/parser_proc.c" /* glr.c:816 */
4900 break;
4901
4902 case 592:
4903 #line 1883 "src/parser_proc_grammar.y" /* glr.c:816 */
4904 {
4905 (*(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))));
4906 (*(struct psi_return_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->token);
4907 }
4908 #line 4909 "src/parser_proc.c" /* glr.c:816 */
4909 break;
4910
4911 case 593:
4912 #line 1887 "src/parser_proc_grammar.y" /* glr.c:816 */
4913 {
4914 (*(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))));
4915 (*(struct psi_return_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4916 }
4917 #line 4918 "src/parser_proc.c" /* glr.c:816 */
4918 break;
4919
4920 case 594:
4921 #line 1894 "src/parser_proc_grammar.y" /* glr.c:816 */
4922 {
4923 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4924 }
4925 #line 4926 "src/parser_proc.c" /* glr.c:816 */
4926 break;
4927
4928 case 595:
4929 #line 1897 "src/parser_proc_grammar.y" /* glr.c:816 */
4930 {
4931 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4932 }
4933 #line 4934 "src/parser_proc.c" /* glr.c:816 */
4934 break;
4935
4936 case 596:
4937 #line 1900 "src/parser_proc_grammar.y" /* glr.c:816 */
4938 {
4939 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4940 }
4941 #line 4942 "src/parser_proc.c" /* glr.c:816 */
4942 break;
4943
4944 case 597:
4945 #line 1906 "src/parser_proc_grammar.y" /* glr.c:816 */
4946 {
4947 (*(struct psi_set_stmt **)(&(*yyvalp))) = psi_set_stmt_init((*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4948 (*(struct psi_set_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4949 }
4950 #line 4951 "src/parser_proc.c" /* glr.c:816 */
4951 break;
4952
4953 case 598:
4954 #line 1913 "src/parser_proc_grammar.y" /* glr.c:816 */
4955 {
4956 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_FUNC, (*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4957 }
4958 #line 4959 "src/parser_proc.c" /* glr.c:816 */
4959 break;
4960
4961 case 599:
4962 #line 1916 "src/parser_proc_grammar.y" /* glr.c:816 */
4963 {
4964 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_NUMEXP, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4965 }
4966 #line 4967 "src/parser_proc.c" /* glr.c:816 */
4967 break;
4968
4969 case 600:
4970 #line 1919 "src/parser_proc_grammar.y" /* glr.c:816 */
4971 {
4972 (*(struct psi_set_exp **)(&(*yyvalp))) = (*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4973 (*(struct psi_set_exp **)(&(*yyvalp)))->var = (*(struct psi_impl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4974 }
4975 #line 4976 "src/parser_proc.c" /* glr.c:816 */
4976 break;
4977
4978 case 601:
4979 #line 1926 "src/parser_proc_grammar.y" /* glr.c:816 */
4980 {
4981 (*(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)));
4982 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
4983 (*(struct psi_set_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4984 }
4985 #line 4986 "src/parser_proc.c" /* glr.c:816 */
4986 break;
4987
4988 case 602:
4989 #line 1931 "src/parser_proc_grammar.y" /* glr.c:816 */
4990 {
4991 (*(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)));
4992 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4993 (*(struct psi_set_func **)(&(*yyvalp)))->recursive = 1;
4994 }
4995 #line 4996 "src/parser_proc.c" /* glr.c:816 */
4996 break;
4997
4998 case 611:
4999 #line 1950 "src/parser_proc_grammar.y" /* glr.c:816 */
5000 {
5001 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5002 }
5003 #line 5004 "src/parser_proc.c" /* glr.c:816 */
5004 break;
5005
5006 case 612:
5007 #line 1953 "src/parser_proc_grammar.y" /* glr.c:816 */
5008 {
5009 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5010 }
5011 #line 5012 "src/parser_proc.c" /* glr.c:816 */
5012 break;
5013
5014 case 613:
5015 #line 1959 "src/parser_proc_grammar.y" /* glr.c:816 */
5016 {
5017 (*(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)));
5018 }
5019 #line 5020 "src/parser_proc.c" /* glr.c:816 */
5020 break;
5021
5022 case 614:
5023 #line 1962 "src/parser_proc_grammar.y" /* glr.c:816 */
5024 {
5025 (*(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)));
5026 }
5027 #line 5028 "src/parser_proc.c" /* glr.c:816 */
5028 break;
5029
5030 case 615:
5031 #line 1968 "src/parser_proc_grammar.y" /* glr.c:816 */
5032 {
5033 (*(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)));
5034 (*(struct psi_assert_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5035 }
5036 #line 5037 "src/parser_proc.c" /* glr.c:816 */
5037 break;
5038
5039 case 618:
5040 #line 1980 "src/parser_proc_grammar.y" /* glr.c:816 */
5041 {
5042 (*(struct psi_free_stmt **)(&(*yyvalp))) = psi_free_stmt_init((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5043 (*(struct psi_free_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5044 }
5045 #line 5046 "src/parser_proc.c" /* glr.c:816 */
5046 break;
5047
5048 case 619:
5049 #line 1987 "src/parser_proc_grammar.y" /* glr.c:816 */
5050 {
5051 (*(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)));
5052 }
5053 #line 5054 "src/parser_proc.c" /* glr.c:816 */
5054 break;
5055
5056 case 620:
5057 #line 1990 "src/parser_proc_grammar.y" /* glr.c:816 */
5058 {
5059 (*(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)));
5060 }
5061 #line 5062 "src/parser_proc.c" /* glr.c:816 */
5062 break;
5063
5064 case 621:
5065 #line 1996 "src/parser_proc_grammar.y" /* glr.c:816 */
5066 {
5067 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5068 (*(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)));
5069 (*(struct psi_free_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5070 }
5071 #line 5072 "src/parser_proc.c" /* glr.c:816 */
5072 break;
5073
5074 case 622:
5075 #line 2004 "src/parser_proc_grammar.y" /* glr.c:816 */
5076 {
5077 (*(bool*)(&(*yyvalp))) = false;
5078 }
5079 #line 5080 "src/parser_proc.c" /* glr.c:816 */
5080 break;
5081
5082 case 623:
5083 #line 2007 "src/parser_proc_grammar.y" /* glr.c:816 */
5084 {
5085 (*(bool*)(&(*yyvalp))) = true;
5086 }
5087 #line 5088 "src/parser_proc.c" /* glr.c:816 */
5088 break;
5089
5090
5091 #line 5092 "src/parser_proc.c" /* glr.c:816 */
5092 default: break;
5093 }
5094
5095 return yyok;
5096 # undef yyerrok
5097 # undef YYABORT
5098 # undef YYACCEPT
5099 # undef YYERROR
5100 # undef YYBACKUP
5101 # undef yyclearin
5102 # undef YYRECOVERING
5103 }
5104
5105
5106 static void
5107 yyuserMerge (int yyn, YYSTYPE* yy0, YYSTYPE* yy1)
5108 {
5109 YYUSE (yy0);
5110 YYUSE (yy1);
5111
5112 switch (yyn)
5113 {
5114
5115 default: break;
5116 }
5117 }
5118
5119 /* Bison grammar-table manipulation. */
5120
5121 /*-----------------------------------------------.
5122 | Release the memory associated to this symbol. |
5123 `-----------------------------------------------*/
5124
5125 static void
5126 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
5127 {
5128 YYUSE (yyvaluep);
5129 YYUSE (P);
5130 YYUSE (tokens);
5131 YYUSE (index);
5132 if (!yymsg)
5133 yymsg = "Deleting";
5134 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
5135
5136 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
5137 switch (yytype)
5138 {
5139 case 129: /* binary_op_token */
5140 #line 262 "src/parser_proc_grammar.y" /* glr.c:846 */
5141 {}
5142 #line 5143 "src/parser_proc.c" /* glr.c:846 */
5143 break;
5144
5145 case 130: /* unary_op_token */
5146 #line 262 "src/parser_proc_grammar.y" /* glr.c:846 */
5147 {}
5148 #line 5149 "src/parser_proc.c" /* glr.c:846 */
5149 break;
5150
5151 case 131: /* name_token */
5152 #line 262 "src/parser_proc_grammar.y" /* glr.c:846 */
5153 {}
5154 #line 5155 "src/parser_proc.c" /* glr.c:846 */
5155 break;
5156
5157 case 132: /* any_noeol_token */
5158 #line 262 "src/parser_proc_grammar.y" /* glr.c:846 */
5159 {}
5160 #line 5161 "src/parser_proc.c" /* glr.c:846 */
5161 break;
5162
5163 case 137: /* lib */
5164 #line 256 "src/parser_proc_grammar.y" /* glr.c:846 */
5165 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5166 #line 5167 "src/parser_proc.c" /* glr.c:846 */
5167 break;
5168
5169 case 138: /* cpp */
5170 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
5171 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
5172 #line 5173 "src/parser_proc.c" /* glr.c:846 */
5173 break;
5174
5175 case 139: /* cpp_exp */
5176 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
5177 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
5178 #line 5179 "src/parser_proc.c" /* glr.c:846 */
5179 break;
5180
5181 case 141: /* cpp_message_token */
5182 #line 259 "src/parser_proc_grammar.y" /* glr.c:846 */
5183 {}
5184 #line 5185 "src/parser_proc.c" /* glr.c:846 */
5185 break;
5186
5187 case 142: /* cpp_include_token */
5188 #line 259 "src/parser_proc_grammar.y" /* glr.c:846 */
5189 {}
5190 #line 5191 "src/parser_proc.c" /* glr.c:846 */
5191 break;
5192
5193 case 143: /* cpp_header_token */
5194 #line 259 "src/parser_proc_grammar.y" /* glr.c:846 */
5195 {}
5196 #line 5197 "src/parser_proc.c" /* glr.c:846 */
5197 break;
5198
5199 case 144: /* cpp_no_arg_token */
5200 #line 259 "src/parser_proc_grammar.y" /* glr.c:846 */
5201 {}
5202 #line 5203 "src/parser_proc.c" /* glr.c:846 */
5203 break;
5204
5205 case 145: /* cpp_name_arg_token */
5206 #line 259 "src/parser_proc_grammar.y" /* glr.c:846 */
5207 {}
5208 #line 5209 "src/parser_proc.c" /* glr.c:846 */
5209 break;
5210
5211 case 146: /* cpp_exp_arg_token */
5212 #line 259 "src/parser_proc_grammar.y" /* glr.c:846 */
5213 {}
5214 #line 5215 "src/parser_proc.c" /* glr.c:846 */
5215 break;
5216
5217 case 147: /* cpp_special_name_token */
5218 #line 259 "src/parser_proc_grammar.y" /* glr.c:846 */
5219 {}
5220 #line 5221 "src/parser_proc.c" /* glr.c:846 */
5221 break;
5222
5223 case 148: /* cpp_macro_decl */
5224 #line 273 "src/parser_proc_grammar.y" /* glr.c:846 */
5225 {psi_cpp_macro_decl_free(&(*(struct psi_cpp_macro_decl **)(&(*yyvaluep))));}
5226 #line 5227 "src/parser_proc.c" /* glr.c:846 */
5227 break;
5228
5229 case 149: /* cpp_macro_sig */
5230 #line 275 "src/parser_proc_grammar.y" /* glr.c:846 */
5231 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5232 #line 5233 "src/parser_proc.c" /* glr.c:846 */
5233 break;
5234
5235 case 150: /* cpp_macro_sig_args */
5236 #line 275 "src/parser_proc_grammar.y" /* glr.c:846 */
5237 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5238 #line 5239 "src/parser_proc.c" /* glr.c:846 */
5239 break;
5240
5241 case 151: /* cpp_macro_decl_tokens */
5242 #line 275 "src/parser_proc_grammar.y" /* glr.c:846 */
5243 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5244 #line 5245 "src/parser_proc.c" /* glr.c:846 */
5245 break;
5246
5247 case 152: /* cpp_macro_decl_token_list */
5248 #line 275 "src/parser_proc_grammar.y" /* glr.c:846 */
5249 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5250 #line 5251 "src/parser_proc.c" /* glr.c:846 */
5251 break;
5252
5253 case 153: /* cpp_macro_exp */
5254 #line 277 "src/parser_proc_grammar.y" /* glr.c:846 */
5255 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
5256 #line 5257 "src/parser_proc.c" /* glr.c:846 */
5257 break;
5258
5259 case 154: /* cpp_macro_call_args */
5260 #line 275 "src/parser_proc_grammar.y" /* glr.c:846 */
5261 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5262 #line 5263 "src/parser_proc.c" /* glr.c:846 */
5263 break;
5264
5265 case 155: /* cpp_macro_call_arg_list */
5266 #line 275 "src/parser_proc_grammar.y" /* glr.c:846 */
5267 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5268 #line 5269 "src/parser_proc.c" /* glr.c:846 */
5269 break;
5270
5271 case 156: /* constant */
5272 #line 283 "src/parser_proc_grammar.y" /* glr.c:846 */
5273 {psi_const_free(&(*(struct psi_const **)(&(*yyvaluep))));}
5274 #line 5275 "src/parser_proc.c" /* glr.c:846 */
5275 break;
5276
5277 case 157: /* constant_type */
5278 #line 285 "src/parser_proc_grammar.y" /* glr.c:846 */
5279 {psi_const_type_free(&(*(struct psi_const_type **)(&(*yyvaluep))));}
5280 #line 5281 "src/parser_proc.c" /* glr.c:846 */
5281 break;
5282
5283 case 158: /* constant_type_token */
5284 #line 280 "src/parser_proc_grammar.y" /* glr.c:846 */
5285 {}
5286 #line 5287 "src/parser_proc.c" /* glr.c:846 */
5287 break;
5288
5289 case 159: /* impl_def_val */
5290 #line 287 "src/parser_proc_grammar.y" /* glr.c:846 */
5291 {psi_impl_def_val_free(&(*(struct psi_impl_def_val **)(&(*yyvaluep))));}
5292 #line 5293 "src/parser_proc.c" /* glr.c:846 */
5293 break;
5294
5295 case 160: /* impl_def_val_token */
5296 #line 280 "src/parser_proc_grammar.y" /* glr.c:846 */
5297 {}
5298 #line 5299 "src/parser_proc.c" /* glr.c:846 */
5299 break;
5300
5301 case 161: /* decl_typedef */
5302 #line 297 "src/parser_proc_grammar.y" /* glr.c:846 */
5303 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5304 #line 5305 "src/parser_proc.c" /* glr.c:846 */
5305 break;
5306
5307 case 162: /* typedef */
5308 #line 297 "src/parser_proc_grammar.y" /* glr.c:846 */
5309 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5310 #line 5311 "src/parser_proc.c" /* glr.c:846 */
5311 break;
5312
5313 case 163: /* typedef_anon */
5314 #line 297 "src/parser_proc_grammar.y" /* glr.c:846 */
5315 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5316 #line 5317 "src/parser_proc.c" /* glr.c:846 */
5317 break;
5318
5319 case 164: /* typedef_decl */
5320 #line 297 "src/parser_proc_grammar.y" /* glr.c:846 */
5321 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5322 #line 5323 "src/parser_proc.c" /* glr.c:846 */
5323 break;
5324
5325 case 165: /* typedef_anon_decl */
5326 #line 297 "src/parser_proc_grammar.y" /* glr.c:846 */
5327 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5328 #line 5329 "src/parser_proc.c" /* glr.c:846 */
5329 break;
5330
5331 case 166: /* qualified_decl_type */
5332 #line 293 "src/parser_proc_grammar.y" /* glr.c:846 */
5333 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
5334 #line 5335 "src/parser_proc.c" /* glr.c:846 */
5335 break;
5336
5337 case 167: /* decl_type */
5338 #line 293 "src/parser_proc_grammar.y" /* glr.c:846 */
5339 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
5340 #line 5341 "src/parser_proc.c" /* glr.c:846 */
5341 break;
5342
5343 case 168: /* decl_type_complex */
5344 #line 293 "src/parser_proc_grammar.y" /* glr.c:846 */
5345 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
5346 #line 5347 "src/parser_proc.c" /* glr.c:846 */
5347 break;
5348
5349 case 169: /* decl_type_simple */
5350 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
5351 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5352 #line 5353 "src/parser_proc.c" /* glr.c:846 */
5353 break;
5354
5355 case 170: /* decl_real_type */
5356 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
5357 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5358 #line 5359 "src/parser_proc.c" /* glr.c:846 */
5359 break;
5360
5361 case 171: /* int_signed */
5362 #line 268 "src/parser_proc_grammar.y" /* glr.c:846 */
5363 {}
5364 #line 5365 "src/parser_proc.c" /* glr.c:846 */
5365 break;
5366
5367 case 172: /* int_width */
5368 #line 265 "src/parser_proc_grammar.y" /* glr.c:846 */
5369 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5370 #line 5371 "src/parser_proc.c" /* glr.c:846 */
5371 break;
5372
5373 case 173: /* decl_int_type */
5374 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
5375 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5376 #line 5377 "src/parser_proc.c" /* glr.c:846 */
5377 break;
5378
5379 case 174: /* int_signed_types */
5380 #line 265 "src/parser_proc_grammar.y" /* glr.c:846 */
5381 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5382 #line 5383 "src/parser_proc.c" /* glr.c:846 */
5383 break;
5384
5385 case 175: /* signed_short_types */
5386 #line 268 "src/parser_proc_grammar.y" /* glr.c:846 */
5387 {}
5388 #line 5389 "src/parser_proc.c" /* glr.c:846 */
5389 break;
5390
5391 case 176: /* signed_long_types */
5392 #line 268 "src/parser_proc_grammar.y" /* glr.c:846 */
5393 {}
5394 #line 5395 "src/parser_proc.c" /* glr.c:846 */
5395 break;
5396
5397 case 177: /* int_width_types */
5398 #line 265 "src/parser_proc_grammar.y" /* glr.c:846 */
5399 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5400 #line 5401 "src/parser_proc.c" /* glr.c:846 */
5401 break;
5402
5403 case 178: /* decl_stmt */
5404 #line 295 "src/parser_proc_grammar.y" /* glr.c:846 */
5405 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5406 #line 5407 "src/parser_proc.c" /* glr.c:846 */
5407 break;
5408
5409 case 184: /* decl_vars */
5410 #line 309 "src/parser_proc_grammar.y" /* glr.c:846 */
5411 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5412 #line 5413 "src/parser_proc.c" /* glr.c:846 */
5413 break;
5414
5415 case 189: /* decl */
5416 #line 295 "src/parser_proc_grammar.y" /* glr.c:846 */
5417 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5418 #line 5419 "src/parser_proc.c" /* glr.c:846 */
5419 break;
5420
5421 case 190: /* decl_body */
5422 #line 295 "src/parser_proc_grammar.y" /* glr.c:846 */
5423 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5424 #line 5425 "src/parser_proc.c" /* glr.c:846 */
5425 break;
5426
5427 case 191: /* decl_func_body */
5428 #line 295 "src/parser_proc_grammar.y" /* glr.c:846 */
5429 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5430 #line 5431 "src/parser_proc.c" /* glr.c:846 */
5431 break;
5432
5433 case 192: /* decl_functor_body */
5434 #line 295 "src/parser_proc_grammar.y" /* glr.c:846 */
5435 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5436 #line 5437 "src/parser_proc.c" /* glr.c:846 */
5437 break;
5438
5439 case 193: /* decl_functor */
5440 #line 297 "src/parser_proc_grammar.y" /* glr.c:846 */
5441 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5442 #line 5443 "src/parser_proc.c" /* glr.c:846 */
5443 break;
5444
5445 case 194: /* decl_func */
5446 #line 297 "src/parser_proc_grammar.y" /* glr.c:846 */
5447 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5448 #line 5449 "src/parser_proc.c" /* glr.c:846 */
5449 break;
5450
5451 case 195: /* decl_args */
5452 #line 309 "src/parser_proc_grammar.y" /* glr.c:846 */
5453 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5454 #line 5455 "src/parser_proc.c" /* glr.c:846 */
5455 break;
5456
5457 case 196: /* decl_anon_arg */
5458 #line 297 "src/parser_proc_grammar.y" /* glr.c:846 */
5459 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5460 #line 5461 "src/parser_proc.c" /* glr.c:846 */
5461 break;
5462
5463 case 197: /* decl_arg */
5464 #line 297 "src/parser_proc_grammar.y" /* glr.c:846 */
5465 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5466 #line 5467 "src/parser_proc.c" /* glr.c:846 */
5467 break;
5468
5469 case 198: /* decl_var */
5470 #line 299 "src/parser_proc_grammar.y" /* glr.c:846 */
5471 {psi_decl_var_free(&(*(struct psi_decl_var **)(&(*yyvaluep))));}
5472 #line 5473 "src/parser_proc.c" /* glr.c:846 */
5473 break;
5474
5475 case 199: /* decl_union */
5476 #line 303 "src/parser_proc_grammar.y" /* glr.c:846 */
5477 {psi_decl_union_free(&(*(struct psi_decl_union **)(&(*yyvaluep))));}
5478 #line 5479 "src/parser_proc.c" /* glr.c:846 */
5479 break;
5480
5481 case 200: /* decl_struct */
5482 #line 301 "src/parser_proc_grammar.y" /* glr.c:846 */
5483 {psi_decl_struct_free(&(*(struct psi_decl_struct **)(&(*yyvaluep))));}
5484 #line 5485 "src/parser_proc.c" /* glr.c:846 */
5485 break;
5486
5487 case 201: /* decl_struct_args */
5488 #line 309 "src/parser_proc_grammar.y" /* glr.c:846 */
5489 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5490 #line 5491 "src/parser_proc.c" /* glr.c:846 */
5491 break;
5492
5493 case 202: /* struct_args_block */
5494 #line 309 "src/parser_proc_grammar.y" /* glr.c:846 */
5495 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5496 #line 5497 "src/parser_proc.c" /* glr.c:846 */
5497 break;
5498
5499 case 203: /* struct_args */
5500 #line 309 "src/parser_proc_grammar.y" /* glr.c:846 */
5501 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5502 #line 5503 "src/parser_proc.c" /* glr.c:846 */
5503 break;
5504
5505 case 204: /* struct_arg_var_list */
5506 #line 309 "src/parser_proc_grammar.y" /* glr.c:846 */
5507 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5508 #line 5509 "src/parser_proc.c" /* glr.c:846 */
5509 break;
5510
5511 case 205: /* decl_vars_with_layout */
5512 #line 309 "src/parser_proc_grammar.y" /* glr.c:846 */
5513 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5514 #line 5515 "src/parser_proc.c" /* glr.c:846 */
5515 break;
5516
5517 case 206: /* decl_enum */
5518 #line 305 "src/parser_proc_grammar.y" /* glr.c:846 */
5519 {psi_decl_enum_free(&(*(struct psi_decl_enum **)(&(*yyvaluep))));}
5520 #line 5521 "src/parser_proc.c" /* glr.c:846 */
5521 break;
5522
5523 case 207: /* decl_enum_items */
5524 #line 309 "src/parser_proc_grammar.y" /* glr.c:846 */
5525 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5526 #line 5527 "src/parser_proc.c" /* glr.c:846 */
5527 break;
5528
5529 case 208: /* decl_enum_item */
5530 #line 307 "src/parser_proc_grammar.y" /* glr.c:846 */
5531 {psi_decl_enum_item_free(&(*(struct psi_decl_enum_item **)(&(*yyvaluep))));}
5532 #line 5533 "src/parser_proc.c" /* glr.c:846 */
5533 break;
5534
5535 case 209: /* num_exp */
5536 #line 365 "src/parser_proc_grammar.y" /* glr.c:846 */
5537 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
5538 #line 5539 "src/parser_proc.c" /* glr.c:846 */
5539 break;
5540
5541 case 210: /* number */
5542 #line 367 "src/parser_proc_grammar.y" /* glr.c:846 */
5543 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
5544 #line 5545 "src/parser_proc.c" /* glr.c:846 */
5545 break;
5546
5547 case 211: /* sizeof */
5548 #line 317 "src/parser_proc_grammar.y" /* glr.c:846 */
5549 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
5550 #line 5551 "src/parser_proc.c" /* glr.c:846 */
5551 break;
5552
5553 case 212: /* sizeof_body */
5554 #line 317 "src/parser_proc_grammar.y" /* glr.c:846 */
5555 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
5556 #line 5557 "src/parser_proc.c" /* glr.c:846 */
5557 break;
5558
5559 case 213: /* sizeof_body_notypes */
5560 #line 317 "src/parser_proc_grammar.y" /* glr.c:846 */
5561 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
5562 #line 5563 "src/parser_proc.c" /* glr.c:846 */
5563 break;
5564
5565 case 214: /* enum_name */
5566 #line 256 "src/parser_proc_grammar.y" /* glr.c:846 */
5567 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5568 #line 5569 "src/parser_proc.c" /* glr.c:846 */
5569 break;
5570
5571 case 215: /* union_name */
5572 #line 256 "src/parser_proc_grammar.y" /* glr.c:846 */
5573 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5574 #line 5575 "src/parser_proc.c" /* glr.c:846 */
5575 break;
5576
5577 case 216: /* struct_name */
5578 #line 256 "src/parser_proc_grammar.y" /* glr.c:846 */
5579 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5580 #line 5581 "src/parser_proc.c" /* glr.c:846 */
5581 break;
5582
5583 case 217: /* optional_name */
5584 #line 256 "src/parser_proc_grammar.y" /* glr.c:846 */
5585 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5586 #line 5587 "src/parser_proc.c" /* glr.c:846 */
5587 break;
5588
5589 case 218: /* decl_layout */
5590 #line 314 "src/parser_proc_grammar.y" /* glr.c:846 */
5591 {psi_layout_free(&(*(struct psi_layout **)(&(*yyvaluep))));}
5592 #line 5593 "src/parser_proc.c" /* glr.c:846 */
5593 break;
5594
5595 case 219: /* align_and_size */
5596 #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */
5597 {}
5598 #line 5599 "src/parser_proc.c" /* glr.c:846 */
5599 break;
5600
5601 case 220: /* array_size */
5602 #line 370 "src/parser_proc_grammar.y" /* glr.c:846 */
5603 {}
5604 #line 5605 "src/parser_proc.c" /* glr.c:846 */
5605 break;
5606
5607 case 221: /* indirection */
5608 #line 370 "src/parser_proc_grammar.y" /* glr.c:846 */
5609 {}
5610 #line 5611 "src/parser_proc.c" /* glr.c:846 */
5611 break;
5612
5613 case 222: /* pointers */
5614 #line 370 "src/parser_proc_grammar.y" /* glr.c:846 */
5615 {}
5616 #line 5617 "src/parser_proc.c" /* glr.c:846 */
5617 break;
5618
5619 case 223: /* asterisks */
5620 #line 370 "src/parser_proc_grammar.y" /* glr.c:846 */
5621 {}
5622 #line 5623 "src/parser_proc.c" /* glr.c:846 */
5623 break;
5624
5625 case 225: /* impl */
5626 #line 320 "src/parser_proc_grammar.y" /* glr.c:846 */
5627 {psi_impl_free(&(*(struct psi_impl **)(&(*yyvaluep))));}
5628 #line 5629 "src/parser_proc.c" /* glr.c:846 */
5629 break;
5630
5631 case 226: /* impl_func */
5632 #line 322 "src/parser_proc_grammar.y" /* glr.c:846 */
5633 {psi_impl_func_free(&(*(struct psi_impl_func **)(&(*yyvaluep))));}
5634 #line 5635 "src/parser_proc.c" /* glr.c:846 */
5635 break;
5636
5637 case 227: /* impl_args */
5638 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5639 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5640 #line 5641 "src/parser_proc.c" /* glr.c:846 */
5641 break;
5642
5643 case 228: /* impl_arg */
5644 #line 324 "src/parser_proc_grammar.y" /* glr.c:846 */
5645 {psi_impl_arg_free(&(*(struct psi_impl_arg **)(&(*yyvaluep))));}
5646 #line 5647 "src/parser_proc.c" /* glr.c:846 */
5647 break;
5648
5649 case 229: /* impl_var */
5650 #line 328 "src/parser_proc_grammar.y" /* glr.c:846 */
5651 {psi_impl_var_free(&(*(struct psi_impl_var **)(&(*yyvaluep))));}
5652 #line 5653 "src/parser_proc.c" /* glr.c:846 */
5653 break;
5654
5655 case 230: /* impl_type */
5656 #line 326 "src/parser_proc_grammar.y" /* glr.c:846 */
5657 {psi_impl_type_free(&(*(struct psi_impl_type **)(&(*yyvaluep))));}
5658 #line 5659 "src/parser_proc.c" /* glr.c:846 */
5659 break;
5660
5661 case 231: /* impl_type_token */
5662 #line 360 "src/parser_proc_grammar.y" /* glr.c:846 */
5663 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5664 #line 5665 "src/parser_proc.c" /* glr.c:846 */
5665 break;
5666
5667 case 232: /* impl_stmts */
5668 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5669 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5670 #line 5671 "src/parser_proc.c" /* glr.c:846 */
5671 break;
5672
5673 case 233: /* impl_stmt */
5674 #line 358 "src/parser_proc_grammar.y" /* glr.c:846 */
5675 {psi_impl_stmt_free(&(*(struct psi_token ***)(&(*yyvaluep))));}
5676 #line 5677 "src/parser_proc.c" /* glr.c:846 */
5677 break;
5678
5679 case 234: /* let_stmt */
5680 #line 331 "src/parser_proc_grammar.y" /* glr.c:846 */
5681 {psi_let_stmt_free(&(*(struct psi_let_stmt **)(&(*yyvaluep))));}
5682 #line 5683 "src/parser_proc.c" /* glr.c:846 */
5683 break;
5684
5685 case 235: /* let_exp */
5686 #line 333 "src/parser_proc_grammar.y" /* glr.c:846 */
5687 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
5688 #line 5689 "src/parser_proc.c" /* glr.c:846 */
5689 break;
5690
5691 case 236: /* let_exp_byref */
5692 #line 333 "src/parser_proc_grammar.y" /* glr.c:846 */
5693 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
5694 #line 5695 "src/parser_proc.c" /* glr.c:846 */
5695 break;
5696
5697 case 237: /* let_exp_assign */
5698 #line 333 "src/parser_proc_grammar.y" /* glr.c:846 */
5699 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
5700 #line 5701 "src/parser_proc.c" /* glr.c:846 */
5701 break;
5702
5703 case 238: /* let_calloc */
5704 #line 335 "src/parser_proc_grammar.y" /* glr.c:846 */
5705 {psi_let_calloc_free(&(*(struct psi_let_calloc **)(&(*yyvaluep))));}
5706 #line 5707 "src/parser_proc.c" /* glr.c:846 */
5707 break;
5708
5709 case 239: /* let_callback */
5710 #line 337 "src/parser_proc_grammar.y" /* glr.c:846 */
5711 {psi_let_callback_free(&(*(struct psi_let_callback **)(&(*yyvaluep))));}
5712 #line 5713 "src/parser_proc.c" /* glr.c:846 */
5713 break;
5714
5715 case 240: /* let_func */
5716 #line 339 "src/parser_proc_grammar.y" /* glr.c:846 */
5717 {psi_let_func_free(&(*(struct psi_let_func **)(&(*yyvaluep))));}
5718 #line 5719 "src/parser_proc.c" /* glr.c:846 */
5719 break;
5720
5721 case 241: /* let_func_token */
5722 #line 360 "src/parser_proc_grammar.y" /* glr.c:846 */
5723 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5724 #line 5725 "src/parser_proc.c" /* glr.c:846 */
5725 break;
5726
5727 case 242: /* let_func_exps */
5728 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5729 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5730 #line 5731 "src/parser_proc.c" /* glr.c:846 */
5731 break;
5732
5733 case 243: /* let_exps */
5734 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5735 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5736 #line 5737 "src/parser_proc.c" /* glr.c:846 */
5737 break;
5738
5739 case 244: /* callback_rval */
5740 #line 360 "src/parser_proc_grammar.y" /* glr.c:846 */
5741 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5742 #line 5743 "src/parser_proc.c" /* glr.c:846 */
5743 break;
5744
5745 case 245: /* callback_arg_list */
5746 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5747 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5748 #line 5749 "src/parser_proc.c" /* glr.c:846 */
5749 break;
5750
5751 case 246: /* callback_args */
5752 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5753 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5754 #line 5755 "src/parser_proc.c" /* glr.c:846 */
5755 break;
5756
5757 case 247: /* return_stmt */
5758 #line 349 "src/parser_proc_grammar.y" /* glr.c:846 */
5759 {psi_return_stmt_free(&(*(struct psi_return_stmt **)(&(*yyvaluep))));}
5760 #line 5761 "src/parser_proc.c" /* glr.c:846 */
5761 break;
5762
5763 case 248: /* return_exp */
5764 #line 351 "src/parser_proc_grammar.y" /* glr.c:846 */
5765 {psi_return_exp_free(&(*(struct psi_return_exp **)(&(*yyvaluep))));}
5766 #line 5767 "src/parser_proc.c" /* glr.c:846 */
5767 break;
5768
5769 case 249: /* call_decl_vars */
5770 #line 309 "src/parser_proc_grammar.y" /* glr.c:846 */
5771 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5772 #line 5773 "src/parser_proc.c" /* glr.c:846 */
5773 break;
5774
5775 case 250: /* set_stmt */
5776 #line 341 "src/parser_proc_grammar.y" /* glr.c:846 */
5777 {psi_set_stmt_free(&(*(struct psi_set_stmt **)(&(*yyvaluep))));}
5778 #line 5779 "src/parser_proc.c" /* glr.c:846 */
5779 break;
5780
5781 case 251: /* set_exp */
5782 #line 343 "src/parser_proc_grammar.y" /* glr.c:846 */
5783 {psi_set_exp_free(&(*(struct psi_set_exp **)(&(*yyvaluep))));}
5784 #line 5785 "src/parser_proc.c" /* glr.c:846 */
5785 break;
5786
5787 case 252: /* set_func */
5788 #line 345 "src/parser_proc_grammar.y" /* glr.c:846 */
5789 {psi_set_func_free(&(*(struct psi_set_func **)(&(*yyvaluep))));}
5790 #line 5791 "src/parser_proc.c" /* glr.c:846 */
5791 break;
5792
5793 case 253: /* set_func_token */
5794 #line 360 "src/parser_proc_grammar.y" /* glr.c:846 */
5795 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5796 #line 5797 "src/parser_proc.c" /* glr.c:846 */
5797 break;
5798
5799 case 254: /* set_func_exps */
5800 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5801 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5802 #line 5803 "src/parser_proc.c" /* glr.c:846 */
5803 break;
5804
5805 case 255: /* set_exps */
5806 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5807 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5808 #line 5809 "src/parser_proc.c" /* glr.c:846 */
5809 break;
5810
5811 case 256: /* assert_stmt */
5812 #line 347 "src/parser_proc_grammar.y" /* glr.c:846 */
5813 {psi_assert_stmt_free(&(*(struct psi_assert_stmt **)(&(*yyvaluep))));}
5814 #line 5815 "src/parser_proc.c" /* glr.c:846 */
5815 break;
5816
5817 case 257: /* assert_stmt_token */
5818 #line 360 "src/parser_proc_grammar.y" /* glr.c:846 */
5819 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5820 #line 5821 "src/parser_proc.c" /* glr.c:846 */
5821 break;
5822
5823 case 258: /* free_stmt */
5824 #line 353 "src/parser_proc_grammar.y" /* glr.c:846 */
5825 {psi_free_stmt_free(&(*(struct psi_free_stmt **)(&(*yyvaluep))));}
5826 #line 5827 "src/parser_proc.c" /* glr.c:846 */
5827 break;
5828
5829 case 259: /* free_exps */
5830 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5831 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5832 #line 5833 "src/parser_proc.c" /* glr.c:846 */
5833 break;
5834
5835 case 260: /* free_exp */
5836 #line 355 "src/parser_proc_grammar.y" /* glr.c:846 */
5837 {psi_free_exp_free(&(*(struct psi_free_exp **)(&(*yyvaluep))));}
5838 #line 5839 "src/parser_proc.c" /* glr.c:846 */
5839 break;
5840
5841 case 261: /* reference */
5842 #line 372 "src/parser_proc_grammar.y" /* glr.c:846 */
5843 {}
5844 #line 5845 "src/parser_proc.c" /* glr.c:846 */
5845 break;
5846
5847
5848 default:
5849 break;
5850 }
5851 YY_IGNORE_MAYBE_UNINITIALIZED_END
5852 }
5853
5854 /** Number of symbols composing the right hand side of rule #RULE. */
5855 static inline int
5856 yyrhsLength (yyRuleNum yyrule)
5857 {
5858 return yyr2[yyrule];
5859 }
5860
5861 static void
5862 yydestroyGLRState (char const *yymsg, yyGLRState *yys, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
5863 {
5864 if (yys->yyresolved)
5865 yydestruct (yymsg, yystos[yys->yylrState],
5866 &yys->yysemantics.yysval, P, tokens, index);
5867 else
5868 {
5869 #if YYDEBUG
5870 if (yydebug)
5871 {
5872 if (yys->yysemantics.yyfirstVal)
5873 YYFPRINTF (stderr, "%s unresolved", yymsg);
5874 else
5875 YYFPRINTF (stderr, "%s incomplete", yymsg);
5876 YY_SYMBOL_PRINT ("", yystos[yys->yylrState], YY_NULLPTR, &yys->yyloc);
5877 }
5878 #endif
5879
5880 if (yys->yysemantics.yyfirstVal)
5881 {
5882 yySemanticOption *yyoption = yys->yysemantics.yyfirstVal;
5883 yyGLRState *yyrh;
5884 int yyn;
5885 for (yyrh = yyoption->yystate, yyn = yyrhsLength (yyoption->yyrule);
5886 yyn > 0;
5887 yyrh = yyrh->yypred, yyn -= 1)
5888 yydestroyGLRState (yymsg, yyrh, P, tokens, index);
5889 }
5890 }
5891 }
5892
5893 /** Left-hand-side symbol for rule #YYRULE. */
5894 static inline yySymbol
5895 yylhsNonterm (yyRuleNum yyrule)
5896 {
5897 return yyr1[yyrule];
5898 }
5899
5900 #define yypact_value_is_default(Yystate) \
5901 (!!((Yystate) == (-692)))
5902
5903 /** True iff LR state YYSTATE has only a default reduction (regardless
5904 * of token). */
5905 static inline yybool
5906 yyisDefaultedState (yyStateNum yystate)
5907 {
5908 return yypact_value_is_default (yypact[yystate]);
5909 }
5910
5911 /** The default reduction for YYSTATE, assuming it has one. */
5912 static inline yyRuleNum
5913 yydefaultAction (yyStateNum yystate)
5914 {
5915 return yydefact[yystate];
5916 }
5917
5918 #define yytable_value_is_error(Yytable_value) \
5919 0
5920
5921 /** Set *YYACTION to the action to take in YYSTATE on seeing YYTOKEN.
5922 * Result R means
5923 * R < 0: Reduce on rule -R.
5924 * R = 0: Error.
5925 * R > 0: Shift to state R.
5926 * Set *YYCONFLICTS to a pointer into yyconfl to a 0-terminated list
5927 * of conflicting reductions.
5928 */
5929 static inline void
5930 yygetLRActions (yyStateNum yystate, int yytoken,
5931 int* yyaction, const short int** yyconflicts)
5932 {
5933 int yyindex = yypact[yystate] + yytoken;
5934 if (yypact_value_is_default (yypact[yystate])
5935 || yyindex < 0 || YYLAST < yyindex || yycheck[yyindex] != yytoken)
5936 {
5937 *yyaction = -yydefact[yystate];
5938 *yyconflicts = yyconfl;
5939 }
5940 else if (! yytable_value_is_error (yytable[yyindex]))
5941 {
5942 *yyaction = yytable[yyindex];
5943 *yyconflicts = yyconfl + yyconflp[yyindex];
5944 }
5945 else
5946 {
5947 *yyaction = 0;
5948 *yyconflicts = yyconfl + yyconflp[yyindex];
5949 }
5950 }
5951
5952 /** Compute post-reduction state.
5953 * \param yystate the current state
5954 * \param yysym the nonterminal to push on the stack
5955 */
5956 static inline yyStateNum
5957 yyLRgotoState (yyStateNum yystate, yySymbol yysym)
5958 {
5959 int yyr = yypgoto[yysym - YYNTOKENS] + yystate;
5960 if (0 <= yyr && yyr <= YYLAST && yycheck[yyr] == yystate)
5961 return yytable[yyr];
5962 else
5963 return yydefgoto[yysym - YYNTOKENS];
5964 }
5965
5966 static inline yybool
5967 yyisShiftAction (int yyaction)
5968 {
5969 return 0 < yyaction;
5970 }
5971
5972 static inline yybool
5973 yyisErrorAction (int yyaction)
5974 {
5975 return yyaction == 0;
5976 }
5977
5978 /* GLRStates */
5979
5980 /** Return a fresh GLRStackItem in YYSTACKP. The item is an LR state
5981 * if YYISSTATE, and otherwise a semantic option. Callers should call
5982 * YY_RESERVE_GLRSTACK afterwards to make sure there is sufficient
5983 * headroom. */
5984
5985 static inline yyGLRStackItem*
5986 yynewGLRStackItem (yyGLRStack* yystackp, yybool yyisState)
5987 {
5988 yyGLRStackItem* yynewItem = yystackp->yynextFree;
5989 yystackp->yyspaceLeft -= 1;
5990 yystackp->yynextFree += 1;
5991 yynewItem->yystate.yyisState = yyisState;
5992 return yynewItem;
5993 }
5994
5995 /** Add a new semantic action that will execute the action for rule
5996 * YYRULE on the semantic values in YYRHS to the list of
5997 * alternative actions for YYSTATE. Assumes that YYRHS comes from
5998 * stack #YYK of *YYSTACKP. */
5999 static void
6000 yyaddDeferredAction (yyGLRStack* yystackp, size_t yyk, yyGLRState* yystate,
6001 yyGLRState* yyrhs, yyRuleNum yyrule)
6002 {
6003 yySemanticOption* yynewOption =
6004 &yynewGLRStackItem (yystackp, yyfalse)->yyoption;
6005 YYASSERT (!yynewOption->yyisState);
6006 yynewOption->yystate = yyrhs;
6007 yynewOption->yyrule = yyrule;
6008 if (yystackp->yytops.yylookaheadNeeds[yyk])
6009 {
6010 yynewOption->yyrawchar = yychar;
6011 yynewOption->yyval = yylval;
6012 }
6013 else
6014 yynewOption->yyrawchar = YYEMPTY;
6015 yynewOption->yynext = yystate->yysemantics.yyfirstVal;
6016 yystate->yysemantics.yyfirstVal = yynewOption;
6017
6018 YY_RESERVE_GLRSTACK (yystackp);
6019 }
6020
6021 /* GLRStacks */
6022
6023 /** Initialize YYSET to a singleton set containing an empty stack. */
6024 static yybool
6025 yyinitStateSet (yyGLRStateSet* yyset)
6026 {
6027 yyset->yysize = 1;
6028 yyset->yycapacity = 16;
6029 yyset->yystates = (yyGLRState**) YYMALLOC (16 * sizeof yyset->yystates[0]);
6030 if (! yyset->yystates)
6031 return yyfalse;
6032 yyset->yystates[0] = YY_NULLPTR;
6033 yyset->yylookaheadNeeds =
6034 (yybool*) YYMALLOC (16 * sizeof yyset->yylookaheadNeeds[0]);
6035 if (! yyset->yylookaheadNeeds)
6036 {
6037 YYFREE (yyset->yystates);
6038 return yyfalse;
6039 }
6040 return yytrue;
6041 }
6042
6043 static void yyfreeStateSet (yyGLRStateSet* yyset)
6044 {
6045 YYFREE (yyset->yystates);
6046 YYFREE (yyset->yylookaheadNeeds);
6047 }
6048
6049 /** Initialize *YYSTACKP to a single empty stack, with total maximum
6050 * capacity for all stacks of YYSIZE. */
6051 static yybool
6052 yyinitGLRStack (yyGLRStack* yystackp, size_t yysize)
6053 {
6054 yystackp->yyerrState = 0;
6055 yynerrs = 0;
6056 yystackp->yyspaceLeft = yysize;
6057 yystackp->yyitems =
6058 (yyGLRStackItem*) YYMALLOC (yysize * sizeof yystackp->yynextFree[0]);
6059 if (!yystackp->yyitems)
6060 return yyfalse;
6061 yystackp->yynextFree = yystackp->yyitems;
6062 yystackp->yysplitPoint = YY_NULLPTR;
6063 yystackp->yylastDeleted = YY_NULLPTR;
6064 return yyinitStateSet (&yystackp->yytops);
6065 }
6066
6067
6068 #if YYSTACKEXPANDABLE
6069 # define YYRELOC(YYFROMITEMS,YYTOITEMS,YYX,YYTYPE) \
6070 &((YYTOITEMS) - ((YYFROMITEMS) - (yyGLRStackItem*) (YYX)))->YYTYPE
6071
6072 /** If *YYSTACKP is expandable, extend it. WARNING: Pointers into the
6073 stack from outside should be considered invalid after this call.
6074 We always expand when there are 1 or fewer items left AFTER an
6075 allocation, so that we can avoid having external pointers exist
6076 across an allocation. */
6077 static void
6078 yyexpandGLRStack (yyGLRStack* yystackp)
6079 {
6080 yyGLRStackItem* yynewItems;
6081 yyGLRStackItem* yyp0, *yyp1;
6082 size_t yynewSize;
6083 size_t yyn;
6084 size_t yysize = yystackp->yynextFree - yystackp->yyitems;
6085 if (YYMAXDEPTH - YYHEADROOM < yysize)
6086 yyMemoryExhausted (yystackp);
6087 yynewSize = 2*yysize;
6088 if (YYMAXDEPTH < yynewSize)
6089 yynewSize = YYMAXDEPTH;
6090 yynewItems = (yyGLRStackItem*) YYMALLOC (yynewSize * sizeof yynewItems[0]);
6091 if (! yynewItems)
6092 yyMemoryExhausted (yystackp);
6093 for (yyp0 = yystackp->yyitems, yyp1 = yynewItems, yyn = yysize;
6094 0 < yyn;
6095 yyn -= 1, yyp0 += 1, yyp1 += 1)
6096 {
6097 *yyp1 = *yyp0;
6098 if (*(yybool *) yyp0)
6099 {
6100 yyGLRState* yys0 = &yyp0->yystate;
6101 yyGLRState* yys1 = &yyp1->yystate;
6102 if (yys0->yypred != YY_NULLPTR)
6103 yys1->yypred =
6104 YYRELOC (yyp0, yyp1, yys0->yypred, yystate);
6105 if (! yys0->yyresolved && yys0->yysemantics.yyfirstVal != YY_NULLPTR)
6106 yys1->yysemantics.yyfirstVal =
6107 YYRELOC (yyp0, yyp1, yys0->yysemantics.yyfirstVal, yyoption);
6108 }
6109 else
6110 {
6111 yySemanticOption* yyv0 = &yyp0->yyoption;
6112 yySemanticOption* yyv1 = &yyp1->yyoption;
6113 if (yyv0->yystate != YY_NULLPTR)
6114 yyv1->yystate = YYRELOC (yyp0, yyp1, yyv0->yystate, yystate);
6115 if (yyv0->yynext != YY_NULLPTR)
6116 yyv1->yynext = YYRELOC (yyp0, yyp1, yyv0->yynext, yyoption);
6117 }
6118 }
6119 if (yystackp->yysplitPoint != YY_NULLPTR)
6120 yystackp->yysplitPoint = YYRELOC (yystackp->yyitems, yynewItems,
6121 yystackp->yysplitPoint, yystate);
6122
6123 for (yyn = 0; yyn < yystackp->yytops.yysize; yyn += 1)
6124 if (yystackp->yytops.yystates[yyn] != YY_NULLPTR)
6125 yystackp->yytops.yystates[yyn] =
6126 YYRELOC (yystackp->yyitems, yynewItems,
6127 yystackp->yytops.yystates[yyn], yystate);
6128 YYFREE (yystackp->yyitems);
6129 yystackp->yyitems = yynewItems;
6130 yystackp->yynextFree = yynewItems + yysize;
6131 yystackp->yyspaceLeft = yynewSize - yysize;
6132 }
6133 #endif
6134
6135 static void
6136 yyfreeGLRStack (yyGLRStack* yystackp)
6137 {
6138 YYFREE (yystackp->yyitems);
6139 yyfreeStateSet (&yystackp->yytops);
6140 }
6141
6142 /** Assuming that YYS is a GLRState somewhere on *YYSTACKP, update the
6143 * splitpoint of *YYSTACKP, if needed, so that it is at least as deep as
6144 * YYS. */
6145 static inline void
6146 yyupdateSplit (yyGLRStack* yystackp, yyGLRState* yys)
6147 {
6148 if (yystackp->yysplitPoint != YY_NULLPTR && yystackp->yysplitPoint > yys)
6149 yystackp->yysplitPoint = yys;
6150 }
6151
6152 /** Invalidate stack #YYK in *YYSTACKP. */
6153 static inline void
6154 yymarkStackDeleted (yyGLRStack* yystackp, size_t yyk)
6155 {
6156 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
6157 yystackp->yylastDeleted = yystackp->yytops.yystates[yyk];
6158 yystackp->yytops.yystates[yyk] = YY_NULLPTR;
6159 }
6160
6161 /** Undelete the last stack in *YYSTACKP that was marked as deleted. Can
6162 only be done once after a deletion, and only when all other stacks have
6163 been deleted. */
6164 static void
6165 yyundeleteLastStack (yyGLRStack* yystackp)
6166 {
6167 if (yystackp->yylastDeleted == YY_NULLPTR || yystackp->yytops.yysize != 0)
6168 return;
6169 yystackp->yytops.yystates[0] = yystackp->yylastDeleted;
6170 yystackp->yytops.yysize = 1;
6171 YYDPRINTF ((stderr, "Restoring last deleted stack as stack #0.\n"));
6172 yystackp->yylastDeleted = YY_NULLPTR;
6173 }
6174
6175 static inline void
6176 yyremoveDeletes (yyGLRStack* yystackp)
6177 {
6178 size_t yyi, yyj;
6179 yyi = yyj = 0;
6180 while (yyj < yystackp->yytops.yysize)
6181 {
6182 if (yystackp->yytops.yystates[yyi] == YY_NULLPTR)
6183 {
6184 if (yyi == yyj)
6185 {
6186 YYDPRINTF ((stderr, "Removing dead stacks.\n"));
6187 }
6188 yystackp->yytops.yysize -= 1;
6189 }
6190 else
6191 {
6192 yystackp->yytops.yystates[yyj] = yystackp->yytops.yystates[yyi];
6193 /* In the current implementation, it's unnecessary to copy
6194 yystackp->yytops.yylookaheadNeeds[yyi] since, after
6195 yyremoveDeletes returns, the parser immediately either enters
6196 deterministic operation or shifts a token. However, it doesn't
6197 hurt, and the code might evolve to need it. */
6198 yystackp->yytops.yylookaheadNeeds[yyj] =
6199 yystackp->yytops.yylookaheadNeeds[yyi];
6200 if (yyj != yyi)
6201 {
6202 YYDPRINTF ((stderr, "Rename stack %lu -> %lu.\n",
6203 (unsigned long int) yyi, (unsigned long int) yyj));
6204 }
6205 yyj += 1;
6206 }
6207 yyi += 1;
6208 }
6209 }
6210
6211 /** Shift to a new state on stack #YYK of *YYSTACKP, corresponding to LR
6212 * state YYLRSTATE, at input position YYPOSN, with (resolved) semantic
6213 * value *YYVALP and source location *YYLOCP. */
6214 static inline void
6215 yyglrShift (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
6216 size_t yyposn,
6217 YYSTYPE* yyvalp)
6218 {
6219 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
6220
6221 yynewState->yylrState = yylrState;
6222 yynewState->yyposn = yyposn;
6223 yynewState->yyresolved = yytrue;
6224 yynewState->yypred = yystackp->yytops.yystates[yyk];
6225 yynewState->yysemantics.yysval = *yyvalp;
6226 yystackp->yytops.yystates[yyk] = yynewState;
6227
6228 YY_RESERVE_GLRSTACK (yystackp);
6229 }
6230
6231 /** Shift stack #YYK of *YYSTACKP, to a new state corresponding to LR
6232 * state YYLRSTATE, at input position YYPOSN, with the (unresolved)
6233 * semantic value of YYRHS under the action for YYRULE. */
6234 static inline void
6235 yyglrShiftDefer (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
6236 size_t yyposn, yyGLRState* yyrhs, yyRuleNum yyrule)
6237 {
6238 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
6239 YYASSERT (yynewState->yyisState);
6240
6241 yynewState->yylrState = yylrState;
6242 yynewState->yyposn = yyposn;
6243 yynewState->yyresolved = yyfalse;
6244 yynewState->yypred = yystackp->yytops.yystates[yyk];
6245 yynewState->yysemantics.yyfirstVal = YY_NULLPTR;
6246 yystackp->yytops.yystates[yyk] = yynewState;
6247
6248 /* Invokes YY_RESERVE_GLRSTACK. */
6249 yyaddDeferredAction (yystackp, yyk, yynewState, yyrhs, yyrule);
6250 }
6251
6252 #if !YYDEBUG
6253 # define YY_REDUCE_PRINT(Args)
6254 #else
6255 # define YY_REDUCE_PRINT(Args) \
6256 do { \
6257 if (yydebug) \
6258 yy_reduce_print Args; \
6259 } while (0)
6260
6261 /*----------------------------------------------------------------------.
6262 | Report that stack #YYK of *YYSTACKP is going to be reduced by YYRULE. |
6263 `----------------------------------------------------------------------*/
6264
6265 static inline void
6266 yy_reduce_print (int yynormal, yyGLRStackItem* yyvsp, size_t yyk,
6267 yyRuleNum yyrule, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6268 {
6269 int yynrhs = yyrhsLength (yyrule);
6270 int yyi;
6271 YYFPRINTF (stderr, "Reducing stack %lu by rule %d (line %lu):\n",
6272 (unsigned long int) yyk, yyrule - 1,
6273 (unsigned long int) yyrline[yyrule]);
6274 if (! yynormal)
6275 yyfillin (yyvsp, 1, -yynrhs);
6276 /* The symbols being reduced. */
6277 for (yyi = 0; yyi < yynrhs; yyi++)
6278 {
6279 YYFPRINTF (stderr, " $%d = ", yyi + 1);
6280 yy_symbol_print (stderr,
6281 yystos[yyvsp[yyi - yynrhs + 1].yystate.yylrState],
6282 &yyvsp[yyi - yynrhs + 1].yystate.yysemantics.yysval
6283 , P, tokens, index);
6284 if (!yyvsp[yyi - yynrhs + 1].yystate.yyresolved)
6285 YYFPRINTF (stderr, " (unresolved)");
6286 YYFPRINTF (stderr, "\n");
6287 }
6288 }
6289 #endif
6290
6291 /** Pop the symbols consumed by reduction #YYRULE from the top of stack
6292 * #YYK of *YYSTACKP, and perform the appropriate semantic action on their
6293 * semantic values. Assumes that all ambiguities in semantic values
6294 * have been previously resolved. Set *YYVALP to the resulting value,
6295 * and *YYLOCP to the computed location (if any). Return value is as
6296 * for userAction. */
6297 static inline YYRESULTTAG
6298 yydoAction (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
6299 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6300 {
6301 int yynrhs = yyrhsLength (yyrule);
6302
6303 if (yystackp->yysplitPoint == YY_NULLPTR)
6304 {
6305 /* Standard special case: single stack. */
6306 yyGLRStackItem* yyrhs = (yyGLRStackItem*) yystackp->yytops.yystates[yyk];
6307 YYASSERT (yyk == 0);
6308 yystackp->yynextFree -= yynrhs;
6309 yystackp->yyspaceLeft += yynrhs;
6310 yystackp->yytops.yystates[0] = & yystackp->yynextFree[-1].yystate;
6311 YY_REDUCE_PRINT ((1, yyrhs, yyk, yyrule, P, tokens, index));
6312 return yyuserAction (yyrule, yynrhs, yyrhs, yystackp,
6313 yyvalp, P, tokens, index);
6314 }
6315 else
6316 {
6317 int yyi;
6318 yyGLRState* yys;
6319 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
6320 yys = yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred
6321 = yystackp->yytops.yystates[yyk];
6322 for (yyi = 0; yyi < yynrhs; yyi += 1)
6323 {
6324 yys = yys->yypred;
6325 YYASSERT (yys);
6326 }
6327 yyupdateSplit (yystackp, yys);
6328 yystackp->yytops.yystates[yyk] = yys;
6329 YY_REDUCE_PRINT ((0, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1, yyk, yyrule, P, tokens, index));
6330 return yyuserAction (yyrule, yynrhs, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
6331 yystackp, yyvalp, P, tokens, index);
6332 }
6333 }
6334
6335 /** Pop items off stack #YYK of *YYSTACKP according to grammar rule YYRULE,
6336 * and push back on the resulting nonterminal symbol. Perform the
6337 * semantic action associated with YYRULE and store its value with the
6338 * newly pushed state, if YYFORCEEVAL or if *YYSTACKP is currently
6339 * unambiguous. Otherwise, store the deferred semantic action with
6340 * the new state. If the new state would have an identical input
6341 * position, LR state, and predecessor to an existing state on the stack,
6342 * it is identified with that existing state, eliminating stack #YYK from
6343 * *YYSTACKP. In this case, the semantic value is
6344 * added to the options for the existing state's semantic value.
6345 */
6346 static inline YYRESULTTAG
6347 yyglrReduce (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
6348 yybool yyforceEval, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6349 {
6350 size_t yyposn = yystackp->yytops.yystates[yyk]->yyposn;
6351
6352 if (yyforceEval || yystackp->yysplitPoint == YY_NULLPTR)
6353 {
6354 YYSTYPE yysval;
6355
6356 YYRESULTTAG yyflag = yydoAction (yystackp, yyk, yyrule, &yysval, P, tokens, index);
6357 if (yyflag == yyerr && yystackp->yysplitPoint != YY_NULLPTR)
6358 {
6359 YYDPRINTF ((stderr, "Parse on stack %lu rejected by rule #%d.\n",
6360 (unsigned long int) yyk, yyrule - 1));
6361 }
6362 if (yyflag != yyok)
6363 return yyflag;
6364 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyrule], &yysval, &yyloc);
6365 yyglrShift (yystackp, yyk,
6366 yyLRgotoState (yystackp->yytops.yystates[yyk]->yylrState,
6367 yylhsNonterm (yyrule)),
6368 yyposn, &yysval);
6369 }
6370 else
6371 {
6372 size_t yyi;
6373 int yyn;
6374 yyGLRState* yys, *yys0 = yystackp->yytops.yystates[yyk];
6375 yyStateNum yynewLRState;
6376
6377 for (yys = yystackp->yytops.yystates[yyk], yyn = yyrhsLength (yyrule);
6378 0 < yyn; yyn -= 1)
6379 {
6380 yys = yys->yypred;
6381 YYASSERT (yys);
6382 }
6383 yyupdateSplit (yystackp, yys);
6384 yynewLRState = yyLRgotoState (yys->yylrState, yylhsNonterm (yyrule));
6385 YYDPRINTF ((stderr,
6386 "Reduced stack %lu by rule #%d; action deferred. "
6387 "Now in state %d.\n",
6388 (unsigned long int) yyk, yyrule - 1, yynewLRState));
6389 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
6390 if (yyi != yyk && yystackp->yytops.yystates[yyi] != YY_NULLPTR)
6391 {
6392 yyGLRState *yysplit = yystackp->yysplitPoint;
6393 yyGLRState *yyp = yystackp->yytops.yystates[yyi];
6394 while (yyp != yys && yyp != yysplit && yyp->yyposn >= yyposn)
6395 {
6396 if (yyp->yylrState == yynewLRState && yyp->yypred == yys)
6397 {
6398 yyaddDeferredAction (yystackp, yyk, yyp, yys0, yyrule);
6399 yymarkStackDeleted (yystackp, yyk);
6400 YYDPRINTF ((stderr, "Merging stack %lu into stack %lu.\n",
6401 (unsigned long int) yyk,
6402 (unsigned long int) yyi));
6403 return yyok;
6404 }
6405 yyp = yyp->yypred;
6406 }
6407 }
6408 yystackp->yytops.yystates[yyk] = yys;
6409 yyglrShiftDefer (yystackp, yyk, yynewLRState, yyposn, yys0, yyrule);
6410 }
6411 return yyok;
6412 }
6413
6414 static size_t
6415 yysplitStack (yyGLRStack* yystackp, size_t yyk)
6416 {
6417 if (yystackp->yysplitPoint == YY_NULLPTR)
6418 {
6419 YYASSERT (yyk == 0);
6420 yystackp->yysplitPoint = yystackp->yytops.yystates[yyk];
6421 }
6422 if (yystackp->yytops.yysize >= yystackp->yytops.yycapacity)
6423 {
6424 yyGLRState** yynewStates;
6425 yybool* yynewLookaheadNeeds;
6426
6427 yynewStates = YY_NULLPTR;
6428
6429 if (yystackp->yytops.yycapacity
6430 > (YYSIZEMAX / (2 * sizeof yynewStates[0])))
6431 yyMemoryExhausted (yystackp);
6432 yystackp->yytops.yycapacity *= 2;
6433
6434 yynewStates =
6435 (yyGLRState**) YYREALLOC (yystackp->yytops.yystates,
6436 (yystackp->yytops.yycapacity
6437 * sizeof yynewStates[0]));
6438 if (yynewStates == YY_NULLPTR)
6439 yyMemoryExhausted (yystackp);
6440 yystackp->yytops.yystates = yynewStates;
6441
6442 yynewLookaheadNeeds =
6443 (yybool*) YYREALLOC (yystackp->yytops.yylookaheadNeeds,
6444 (yystackp->yytops.yycapacity
6445 * sizeof yynewLookaheadNeeds[0]));
6446 if (yynewLookaheadNeeds == YY_NULLPTR)
6447 yyMemoryExhausted (yystackp);
6448 yystackp->yytops.yylookaheadNeeds = yynewLookaheadNeeds;
6449 }
6450 yystackp->yytops.yystates[yystackp->yytops.yysize]
6451 = yystackp->yytops.yystates[yyk];
6452 yystackp->yytops.yylookaheadNeeds[yystackp->yytops.yysize]
6453 = yystackp->yytops.yylookaheadNeeds[yyk];
6454 yystackp->yytops.yysize += 1;
6455 return yystackp->yytops.yysize-1;
6456 }
6457
6458 /** True iff YYY0 and YYY1 represent identical options at the top level.
6459 * That is, they represent the same rule applied to RHS symbols
6460 * that produce the same terminal symbols. */
6461 static yybool
6462 yyidenticalOptions (yySemanticOption* yyy0, yySemanticOption* yyy1)
6463 {
6464 if (yyy0->yyrule == yyy1->yyrule)
6465 {
6466 yyGLRState *yys0, *yys1;
6467 int yyn;
6468 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
6469 yyn = yyrhsLength (yyy0->yyrule);
6470 yyn > 0;
6471 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
6472 if (yys0->yyposn != yys1->yyposn)
6473 return yyfalse;
6474 return yytrue;
6475 }
6476 else
6477 return yyfalse;
6478 }
6479
6480 /** Assuming identicalOptions (YYY0,YYY1), destructively merge the
6481 * alternative semantic values for the RHS-symbols of YYY1 and YYY0. */
6482 static void
6483 yymergeOptionSets (yySemanticOption* yyy0, yySemanticOption* yyy1)
6484 {
6485 yyGLRState *yys0, *yys1;
6486 int yyn;
6487 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
6488 yyn = yyrhsLength (yyy0->yyrule);
6489 yyn > 0;
6490 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
6491 {
6492 if (yys0 == yys1)
6493 break;
6494 else if (yys0->yyresolved)
6495 {
6496 yys1->yyresolved = yytrue;
6497 yys1->yysemantics.yysval = yys0->yysemantics.yysval;
6498 }
6499 else if (yys1->yyresolved)
6500 {
6501 yys0->yyresolved = yytrue;
6502 yys0->yysemantics.yysval = yys1->yysemantics.yysval;
6503 }
6504 else
6505 {
6506 yySemanticOption** yyz0p = &yys0->yysemantics.yyfirstVal;
6507 yySemanticOption* yyz1 = yys1->yysemantics.yyfirstVal;
6508 while (yytrue)
6509 {
6510 if (yyz1 == *yyz0p || yyz1 == YY_NULLPTR)
6511 break;
6512 else if (*yyz0p == YY_NULLPTR)
6513 {
6514 *yyz0p = yyz1;
6515 break;
6516 }
6517 else if (*yyz0p < yyz1)
6518 {
6519 yySemanticOption* yyz = *yyz0p;
6520 *yyz0p = yyz1;
6521 yyz1 = yyz1->yynext;
6522 (*yyz0p)->yynext = yyz;
6523 }
6524 yyz0p = &(*yyz0p)->yynext;
6525 }
6526 yys1->yysemantics.yyfirstVal = yys0->yysemantics.yyfirstVal;
6527 }
6528 }
6529 }
6530
6531 /** Y0 and Y1 represent two possible actions to take in a given
6532 * parsing state; return 0 if no combination is possible,
6533 * 1 if user-mergeable, 2 if Y0 is preferred, 3 if Y1 is preferred. */
6534 static int
6535 yypreference (yySemanticOption* y0, yySemanticOption* y1)
6536 {
6537 yyRuleNum r0 = y0->yyrule, r1 = y1->yyrule;
6538 int p0 = yydprec[r0], p1 = yydprec[r1];
6539
6540 if (p0 == p1)
6541 {
6542 if (yymerger[r0] == 0 || yymerger[r0] != yymerger[r1])
6543 return 0;
6544 else
6545 return 1;
6546 }
6547 if (p0 == 0 || p1 == 0)
6548 return 0;
6549 if (p0 < p1)
6550 return 3;
6551 if (p1 < p0)
6552 return 2;
6553 return 0;
6554 }
6555
6556 static YYRESULTTAG yyresolveValue (yyGLRState* yys,
6557 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index);
6558
6559
6560 /** Resolve the previous YYN states starting at and including state YYS
6561 * on *YYSTACKP. If result != yyok, some states may have been left
6562 * unresolved possibly with empty semantic option chains. Regardless
6563 * of whether result = yyok, each state has been left with consistent
6564 * data so that yydestroyGLRState can be invoked if necessary. */
6565 static YYRESULTTAG
6566 yyresolveStates (yyGLRState* yys, int yyn,
6567 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6568 {
6569 if (0 < yyn)
6570 {
6571 YYASSERT (yys->yypred);
6572 YYCHK (yyresolveStates (yys->yypred, yyn-1, yystackp, P, tokens, index));
6573 if (! yys->yyresolved)
6574 YYCHK (yyresolveValue (yys, yystackp, P, tokens, index));
6575 }
6576 return yyok;
6577 }
6578
6579 /** Resolve the states for the RHS of YYOPT on *YYSTACKP, perform its
6580 * user action, and return the semantic value and location in *YYVALP
6581 * and *YYLOCP. Regardless of whether result = yyok, all RHS states
6582 * have been destroyed (assuming the user action destroys all RHS
6583 * semantic values if invoked). */
6584 static YYRESULTTAG
6585 yyresolveAction (yySemanticOption* yyopt, yyGLRStack* yystackp,
6586 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6587 {
6588 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
6589 int yynrhs = yyrhsLength (yyopt->yyrule);
6590 YYRESULTTAG yyflag =
6591 yyresolveStates (yyopt->yystate, yynrhs, yystackp, P, tokens, index);
6592 if (yyflag != yyok)
6593 {
6594 yyGLRState *yys;
6595 for (yys = yyopt->yystate; yynrhs > 0; yys = yys->yypred, yynrhs -= 1)
6596 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
6597 return yyflag;
6598 }
6599
6600 yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred = yyopt->yystate;
6601 {
6602 int yychar_current = yychar;
6603 YYSTYPE yylval_current = yylval;
6604 yychar = yyopt->yyrawchar;
6605 yylval = yyopt->yyval;
6606 yyflag = yyuserAction (yyopt->yyrule, yynrhs,
6607 yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
6608 yystackp, yyvalp, P, tokens, index);
6609 yychar = yychar_current;
6610 yylval = yylval_current;
6611 }
6612 return yyflag;
6613 }
6614
6615 #if YYDEBUG
6616 static void
6617 yyreportTree (yySemanticOption* yyx, int yyindent)
6618 {
6619 int yynrhs = yyrhsLength (yyx->yyrule);
6620 int yyi;
6621 yyGLRState* yys;
6622 yyGLRState* yystates[1 + YYMAXRHS];
6623 yyGLRState yyleftmost_state;
6624
6625 for (yyi = yynrhs, yys = yyx->yystate; 0 < yyi; yyi -= 1, yys = yys->yypred)
6626 yystates[yyi] = yys;
6627 if (yys == YY_NULLPTR)
6628 {
6629 yyleftmost_state.yyposn = 0;
6630 yystates[0] = &yyleftmost_state;
6631 }
6632 else
6633 yystates[0] = yys;
6634
6635 if (yyx->yystate->yyposn < yys->yyposn + 1)
6636 YYFPRINTF (stderr, "%*s%s -> <Rule %d, empty>\n",
6637 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
6638 yyx->yyrule - 1);
6639 else
6640 YYFPRINTF (stderr, "%*s%s -> <Rule %d, tokens %lu .. %lu>\n",
6641 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
6642 yyx->yyrule - 1, (unsigned long int) (yys->yyposn + 1),
6643 (unsigned long int) yyx->yystate->yyposn);
6644 for (yyi = 1; yyi <= yynrhs; yyi += 1)
6645 {
6646 if (yystates[yyi]->yyresolved)
6647 {
6648 if (yystates[yyi-1]->yyposn+1 > yystates[yyi]->yyposn)
6649 YYFPRINTF (stderr, "%*s%s <empty>\n", yyindent+2, "",
6650 yytokenName (yystos[yystates[yyi]->yylrState]));
6651 else
6652 YYFPRINTF (stderr, "%*s%s <tokens %lu .. %lu>\n", yyindent+2, "",
6653 yytokenName (yystos[yystates[yyi]->yylrState]),
6654 (unsigned long int) (yystates[yyi-1]->yyposn + 1),
6655 (unsigned long int) yystates[yyi]->yyposn);
6656 }
6657 else
6658 yyreportTree (yystates[yyi]->yysemantics.yyfirstVal, yyindent+2);
6659 }
6660 }
6661 #endif
6662
6663 static YYRESULTTAG
6664 yyreportAmbiguity (yySemanticOption* yyx0,
6665 yySemanticOption* yyx1, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6666 {
6667 YYUSE (yyx0);
6668 YYUSE (yyx1);
6669
6670 #if YYDEBUG
6671 YYFPRINTF (stderr, "Ambiguity detected.\n");
6672 YYFPRINTF (stderr, "Option 1,\n");
6673 yyreportTree (yyx0, 2);
6674 YYFPRINTF (stderr, "\nOption 2,\n");
6675 yyreportTree (yyx1, 2);
6676 YYFPRINTF (stderr, "\n");
6677 #endif
6678
6679 yyerror (P, tokens, index, YY_("syntax is ambiguous"));
6680 return yyabort;
6681 }
6682
6683 /** Resolve the ambiguity represented in state YYS in *YYSTACKP,
6684 * perform the indicated actions, and set the semantic value of YYS.
6685 * If result != yyok, the chain of semantic options in YYS has been
6686 * cleared instead or it has been left unmodified except that
6687 * redundant options may have been removed. Regardless of whether
6688 * result = yyok, YYS has been left with consistent data so that
6689 * yydestroyGLRState can be invoked if necessary. */
6690 static YYRESULTTAG
6691 yyresolveValue (yyGLRState* yys, yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6692 {
6693 yySemanticOption* yyoptionList = yys->yysemantics.yyfirstVal;
6694 yySemanticOption* yybest = yyoptionList;
6695 yySemanticOption** yypp;
6696 yybool yymerge = yyfalse;
6697 YYSTYPE yysval;
6698 YYRESULTTAG yyflag;
6699
6700 for (yypp = &yyoptionList->yynext; *yypp != YY_NULLPTR; )
6701 {
6702 yySemanticOption* yyp = *yypp;
6703
6704 if (yyidenticalOptions (yybest, yyp))
6705 {
6706 yymergeOptionSets (yybest, yyp);
6707 *yypp = yyp->yynext;
6708 }
6709 else
6710 {
6711 switch (yypreference (yybest, yyp))
6712 {
6713 case 0:
6714 return yyreportAmbiguity (yybest, yyp, P, tokens, index);
6715 break;
6716 case 1:
6717 yymerge = yytrue;
6718 break;
6719 case 2:
6720 break;
6721 case 3:
6722 yybest = yyp;
6723 yymerge = yyfalse;
6724 break;
6725 default:
6726 /* This cannot happen so it is not worth a YYASSERT (yyfalse),
6727 but some compilers complain if the default case is
6728 omitted. */
6729 break;
6730 }
6731 yypp = &yyp->yynext;
6732 }
6733 }
6734
6735 if (yymerge)
6736 {
6737 yySemanticOption* yyp;
6738 int yyprec = yydprec[yybest->yyrule];
6739 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
6740 if (yyflag == yyok)
6741 for (yyp = yybest->yynext; yyp != YY_NULLPTR; yyp = yyp->yynext)
6742 {
6743 if (yyprec == yydprec[yyp->yyrule])
6744 {
6745 YYSTYPE yysval_other;
6746 yyflag = yyresolveAction (yyp, yystackp, &yysval_other, P, tokens, index);
6747 if (yyflag != yyok)
6748 {
6749 yydestruct ("Cleanup: discarding incompletely merged value for",
6750 yystos[yys->yylrState],
6751 &yysval, P, tokens, index);
6752 break;
6753 }
6754 yyuserMerge (yymerger[yyp->yyrule], &yysval, &yysval_other);
6755 }
6756 }
6757 }
6758 else
6759 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
6760
6761 if (yyflag == yyok)
6762 {
6763 yys->yyresolved = yytrue;
6764 yys->yysemantics.yysval = yysval;
6765 }
6766 else
6767 yys->yysemantics.yyfirstVal = YY_NULLPTR;
6768 return yyflag;
6769 }
6770
6771 static YYRESULTTAG
6772 yyresolveStack (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6773 {
6774 if (yystackp->yysplitPoint != YY_NULLPTR)
6775 {
6776 yyGLRState* yys;
6777 int yyn;
6778
6779 for (yyn = 0, yys = yystackp->yytops.yystates[0];
6780 yys != yystackp->yysplitPoint;
6781 yys = yys->yypred, yyn += 1)
6782 continue;
6783 YYCHK (yyresolveStates (yystackp->yytops.yystates[0], yyn, yystackp
6784 , P, tokens, index));
6785 }
6786 return yyok;
6787 }
6788
6789 static void
6790 yycompressStack (yyGLRStack* yystackp)
6791 {
6792 yyGLRState* yyp, *yyq, *yyr;
6793
6794 if (yystackp->yytops.yysize != 1 || yystackp->yysplitPoint == YY_NULLPTR)
6795 return;
6796
6797 for (yyp = yystackp->yytops.yystates[0], yyq = yyp->yypred, yyr = YY_NULLPTR;
6798 yyp != yystackp->yysplitPoint;
6799 yyr = yyp, yyp = yyq, yyq = yyp->yypred)
6800 yyp->yypred = yyr;
6801
6802 yystackp->yyspaceLeft += yystackp->yynextFree - yystackp->yyitems;
6803 yystackp->yynextFree = ((yyGLRStackItem*) yystackp->yysplitPoint) + 1;
6804 yystackp->yyspaceLeft -= yystackp->yynextFree - yystackp->yyitems;
6805 yystackp->yysplitPoint = YY_NULLPTR;
6806 yystackp->yylastDeleted = YY_NULLPTR;
6807
6808 while (yyr != YY_NULLPTR)
6809 {
6810 yystackp->yynextFree->yystate = *yyr;
6811 yyr = yyr->yypred;
6812 yystackp->yynextFree->yystate.yypred = &yystackp->yynextFree[-1].yystate;
6813 yystackp->yytops.yystates[0] = &yystackp->yynextFree->yystate;
6814 yystackp->yynextFree += 1;
6815 yystackp->yyspaceLeft -= 1;
6816 }
6817 }
6818
6819 static YYRESULTTAG
6820 yyprocessOneStack (yyGLRStack* yystackp, size_t yyk,
6821 size_t yyposn, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6822 {
6823 while (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
6824 {
6825 yyStateNum yystate = yystackp->yytops.yystates[yyk]->yylrState;
6826 YYDPRINTF ((stderr, "Stack %lu Entering state %d\n",
6827 (unsigned long int) yyk, yystate));
6828
6829 YYASSERT (yystate != YYFINAL);
6830
6831 if (yyisDefaultedState (yystate))
6832 {
6833 YYRESULTTAG yyflag;
6834 yyRuleNum yyrule = yydefaultAction (yystate);
6835 if (yyrule == 0)
6836 {
6837 YYDPRINTF ((stderr, "Stack %lu dies.\n",
6838 (unsigned long int) yyk));
6839 yymarkStackDeleted (yystackp, yyk);
6840 return yyok;
6841 }
6842 yyflag = yyglrReduce (yystackp, yyk, yyrule, yyimmediate[yyrule], P, tokens, index);
6843 if (yyflag == yyerr)
6844 {
6845 YYDPRINTF ((stderr,
6846 "Stack %lu dies "
6847 "(predicate failure or explicit user error).\n",
6848 (unsigned long int) yyk));
6849 yymarkStackDeleted (yystackp, yyk);
6850 return yyok;
6851 }
6852 if (yyflag != yyok)
6853 return yyflag;
6854 }
6855 else
6856 {
6857 yySymbol yytoken;
6858 int yyaction;
6859 const short int* yyconflicts;
6860
6861 yystackp->yytops.yylookaheadNeeds[yyk] = yytrue;
6862 if (yychar == YYEMPTY)
6863 {
6864 YYDPRINTF ((stderr, "Reading a token: "));
6865 yychar = yylex (&yylval, P, tokens, index);
6866 }
6867
6868 if (yychar <= YYEOF)
6869 {
6870 yychar = yytoken = YYEOF;
6871 YYDPRINTF ((stderr, "Now at end of input.\n"));
6872 }
6873 else
6874 {
6875 yytoken = YYTRANSLATE (yychar);
6876 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
6877 }
6878
6879 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
6880
6881 while (*yyconflicts != 0)
6882 {
6883 YYRESULTTAG yyflag;
6884 size_t yynewStack = yysplitStack (yystackp, yyk);
6885 YYDPRINTF ((stderr, "Splitting off stack %lu from %lu.\n",
6886 (unsigned long int) yynewStack,
6887 (unsigned long int) yyk));
6888 yyflag = yyglrReduce (yystackp, yynewStack,
6889 *yyconflicts,
6890 yyimmediate[*yyconflicts], P, tokens, index);
6891 if (yyflag == yyok)
6892 YYCHK (yyprocessOneStack (yystackp, yynewStack,
6893 yyposn, P, tokens, index));
6894 else if (yyflag == yyerr)
6895 {
6896 YYDPRINTF ((stderr, "Stack %lu dies.\n",
6897 (unsigned long int) yynewStack));
6898 yymarkStackDeleted (yystackp, yynewStack);
6899 }
6900 else
6901 return yyflag;
6902 yyconflicts += 1;
6903 }
6904
6905 if (yyisShiftAction (yyaction))
6906 break;
6907 else if (yyisErrorAction (yyaction))
6908 {
6909 YYDPRINTF ((stderr, "Stack %lu dies.\n",
6910 (unsigned long int) yyk));
6911 yymarkStackDeleted (yystackp, yyk);
6912 break;
6913 }
6914 else
6915 {
6916 YYRESULTTAG yyflag = yyglrReduce (yystackp, yyk, -yyaction,
6917 yyimmediate[-yyaction], P, tokens, index);
6918 if (yyflag == yyerr)
6919 {
6920 YYDPRINTF ((stderr,
6921 "Stack %lu dies "
6922 "(predicate failure or explicit user error).\n",
6923 (unsigned long int) yyk));
6924 yymarkStackDeleted (yystackp, yyk);
6925 break;
6926 }
6927 else if (yyflag != yyok)
6928 return yyflag;
6929 }
6930 }
6931 }
6932 return yyok;
6933 }
6934
6935 static void
6936 yyreportSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6937 {
6938 if (yystackp->yyerrState != 0)
6939 return;
6940 #if ! YYERROR_VERBOSE
6941 yyerror (P, tokens, index, YY_("syntax error"));
6942 #else
6943 {
6944 yySymbol yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
6945 size_t yysize0 = yytnamerr (YY_NULLPTR, yytokenName (yytoken));
6946 size_t yysize = yysize0;
6947 yybool yysize_overflow = yyfalse;
6948 char* yymsg = YY_NULLPTR;
6949 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
6950 /* Internationalized format string. */
6951 const char *yyformat = YY_NULLPTR;
6952 /* Arguments of yyformat. */
6953 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
6954 /* Number of reported tokens (one for the "unexpected", one per
6955 "expected"). */
6956 int yycount = 0;
6957
6958 /* There are many possibilities here to consider:
6959 - If this state is a consistent state with a default action, then
6960 the only way this function was invoked is if the default action
6961 is an error action. In that case, don't check for expected
6962 tokens because there are none.
6963 - The only way there can be no lookahead present (in yychar) is if
6964 this state is a consistent state with a default action. Thus,
6965 detecting the absence of a lookahead is sufficient to determine
6966 that there is no unexpected or expected token to report. In that
6967 case, just report a simple "syntax error".
6968 - Don't assume there isn't a lookahead just because this state is a
6969 consistent state with a default action. There might have been a
6970 previous inconsistent state, consistent state with a non-default
6971 action, or user semantic action that manipulated yychar.
6972 - Of course, the expected token list depends on states to have
6973 correct lookahead information, and it depends on the parser not
6974 to perform extra reductions after fetching a lookahead from the
6975 scanner and before detecting a syntax error. Thus, state merging
6976 (from LALR or IELR) and default reductions corrupt the expected
6977 token list. However, the list is correct for canonical LR with
6978 one exception: it will still contain any token that will not be
6979 accepted due to an error action in a later state.
6980 */
6981 if (yytoken != YYEMPTY)
6982 {
6983 int yyn = yypact[yystackp->yytops.yystates[0]->yylrState];
6984 yyarg[yycount++] = yytokenName (yytoken);
6985 if (!yypact_value_is_default (yyn))
6986 {
6987 /* Start YYX at -YYN if negative to avoid negative indexes in
6988 YYCHECK. In other words, skip the first -YYN actions for this
6989 state because they are default actions. */
6990 int yyxbegin = yyn < 0 ? -yyn : 0;
6991 /* Stay within bounds of both yycheck and yytname. */
6992 int yychecklim = YYLAST - yyn + 1;
6993 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
6994 int yyx;
6995 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
6996 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
6997 && !yytable_value_is_error (yytable[yyx + yyn]))
6998 {
6999 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
7000 {
7001 yycount = 1;
7002 yysize = yysize0;
7003 break;
7004 }
7005 yyarg[yycount++] = yytokenName (yyx);
7006 {
7007 size_t yysz = yysize + yytnamerr (YY_NULLPTR, yytokenName (yyx));
7008 yysize_overflow |= yysz < yysize;
7009 yysize = yysz;
7010 }
7011 }
7012 }
7013 }
7014
7015 switch (yycount)
7016 {
7017 #define YYCASE_(N, S) \
7018 case N: \
7019 yyformat = S; \
7020 break
7021 YYCASE_(0, YY_("syntax error"));
7022 YYCASE_(1, YY_("syntax error, unexpected %s"));
7023 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
7024 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
7025 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
7026 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
7027 #undef YYCASE_
7028 }
7029
7030 {
7031 size_t yysz = yysize + strlen (yyformat);
7032 yysize_overflow |= yysz < yysize;
7033 yysize = yysz;
7034 }
7035
7036 if (!yysize_overflow)
7037 yymsg = (char *) YYMALLOC (yysize);
7038
7039 if (yymsg)
7040 {
7041 char *yyp = yymsg;
7042 int yyi = 0;
7043 while ((*yyp = *yyformat))
7044 {
7045 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
7046 {
7047 yyp += yytnamerr (yyp, yyarg[yyi++]);
7048 yyformat += 2;
7049 }
7050 else
7051 {
7052 yyp++;
7053 yyformat++;
7054 }
7055 }
7056 yyerror (P, tokens, index, yymsg);
7057 YYFREE (yymsg);
7058 }
7059 else
7060 {
7061 yyerror (P, tokens, index, YY_("syntax error"));
7062 yyMemoryExhausted (yystackp);
7063 }
7064 }
7065 #endif /* YYERROR_VERBOSE */
7066 yynerrs += 1;
7067 }
7068
7069 /* Recover from a syntax error on *YYSTACKP, assuming that *YYSTACKP->YYTOKENP,
7070 yylval, and yylloc are the syntactic category, semantic value, and location
7071 of the lookahead. */
7072 static void
7073 yyrecoverSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7074 {
7075 size_t yyk;
7076 int yyj;
7077
7078 if (yystackp->yyerrState == 3)
7079 /* We just shifted the error token and (perhaps) took some
7080 reductions. Skip tokens until we can proceed. */
7081 while (yytrue)
7082 {
7083 yySymbol yytoken;
7084 if (yychar == YYEOF)
7085 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
7086 if (yychar != YYEMPTY)
7087 {
7088 yytoken = YYTRANSLATE (yychar);
7089 yydestruct ("Error: discarding",
7090 yytoken, &yylval, P, tokens, index);
7091 }
7092 YYDPRINTF ((stderr, "Reading a token: "));
7093 yychar = yylex (&yylval, P, tokens, index);
7094 if (yychar <= YYEOF)
7095 {
7096 yychar = yytoken = YYEOF;
7097 YYDPRINTF ((stderr, "Now at end of input.\n"));
7098 }
7099 else
7100 {
7101 yytoken = YYTRANSLATE (yychar);
7102 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
7103 }
7104 yyj = yypact[yystackp->yytops.yystates[0]->yylrState];
7105 if (yypact_value_is_default (yyj))
7106 return;
7107 yyj += yytoken;
7108 if (yyj < 0 || YYLAST < yyj || yycheck[yyj] != yytoken)
7109 {
7110 if (yydefact[yystackp->yytops.yystates[0]->yylrState] != 0)
7111 return;
7112 }
7113 else if (! yytable_value_is_error (yytable[yyj]))
7114 return;
7115 }
7116
7117 /* Reduce to one stack. */
7118 for (yyk = 0; yyk < yystackp->yytops.yysize; yyk += 1)
7119 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
7120 break;
7121 if (yyk >= yystackp->yytops.yysize)
7122 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
7123 for (yyk += 1; yyk < yystackp->yytops.yysize; yyk += 1)
7124 yymarkStackDeleted (yystackp, yyk);
7125 yyremoveDeletes (yystackp);
7126 yycompressStack (yystackp);
7127
7128 /* Now pop stack until we find a state that shifts the error token. */
7129 yystackp->yyerrState = 3;
7130 while (yystackp->yytops.yystates[0] != YY_NULLPTR)
7131 {
7132 yyGLRState *yys = yystackp->yytops.yystates[0];
7133 yyj = yypact[yys->yylrState];
7134 if (! yypact_value_is_default (yyj))
7135 {
7136 yyj += YYTERROR;
7137 if (0 <= yyj && yyj <= YYLAST && yycheck[yyj] == YYTERROR
7138 && yyisShiftAction (yytable[yyj]))
7139 {
7140 /* Shift the error token. */
7141 YY_SYMBOL_PRINT ("Shifting", yystos[yytable[yyj]],
7142 &yylval, &yyerrloc);
7143 yyglrShift (yystackp, 0, yytable[yyj],
7144 yys->yyposn, &yylval);
7145 yys = yystackp->yytops.yystates[0];
7146 break;
7147 }
7148 }
7149 if (yys->yypred != YY_NULLPTR)
7150 yydestroyGLRState ("Error: popping", yys, P, tokens, index);
7151 yystackp->yytops.yystates[0] = yys->yypred;
7152 yystackp->yynextFree -= 1;
7153 yystackp->yyspaceLeft += 1;
7154 }
7155 if (yystackp->yytops.yystates[0] == YY_NULLPTR)
7156 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
7157 }
7158
7159 #define YYCHK1(YYE) \
7160 do { \
7161 switch (YYE) { \
7162 case yyok: \
7163 break; \
7164 case yyabort: \
7165 goto yyabortlab; \
7166 case yyaccept: \
7167 goto yyacceptlab; \
7168 case yyerr: \
7169 goto yyuser_error; \
7170 default: \
7171 goto yybuglab; \
7172 } \
7173 } while (0)
7174
7175 /*----------.
7176 | yyparse. |
7177 `----------*/
7178
7179 int
7180 yyparse (struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7181 {
7182 int yyresult;
7183 yyGLRStack yystack;
7184 yyGLRStack* const yystackp = &yystack;
7185 size_t yyposn;
7186
7187 YYDPRINTF ((stderr, "Starting parse\n"));
7188
7189 yychar = YYEMPTY;
7190 yylval = yyval_default;
7191
7192 /* User initialization code. */
7193 #line 106 "src/parser_proc_grammar.y" /* glr.c:2270 */
7194 {
7195 }
7196
7197 #line 7198 "src/parser_proc.c" /* glr.c:2270 */
7198
7199 if (! yyinitGLRStack (yystackp, YYINITDEPTH))
7200 goto yyexhaustedlab;
7201 switch (YYSETJMP (yystack.yyexception_buffer))
7202 {
7203 case 0: break;
7204 case 1: goto yyabortlab;
7205 case 2: goto yyexhaustedlab;
7206 default: goto yybuglab;
7207 }
7208 yyglrShift (&yystack, 0, 0, 0, &yylval);
7209 yyposn = 0;
7210
7211 while (yytrue)
7212 {
7213 /* For efficiency, we have two loops, the first of which is
7214 specialized to deterministic operation (single stack, no
7215 potential ambiguity). */
7216 /* Standard mode */
7217 while (yytrue)
7218 {
7219 yyRuleNum yyrule;
7220 int yyaction;
7221 const short int* yyconflicts;
7222
7223 yyStateNum yystate = yystack.yytops.yystates[0]->yylrState;
7224 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
7225 if (yystate == YYFINAL)
7226 goto yyacceptlab;
7227 if (yyisDefaultedState (yystate))
7228 {
7229 yyrule = yydefaultAction (yystate);
7230 if (yyrule == 0)
7231 {
7232
7233 yyreportSyntaxError (&yystack, P, tokens, index);
7234 goto yyuser_error;
7235 }
7236 YYCHK1 (yyglrReduce (&yystack, 0, yyrule, yytrue, P, tokens, index));
7237 }
7238 else
7239 {
7240 yySymbol yytoken;
7241 if (yychar == YYEMPTY)
7242 {
7243 YYDPRINTF ((stderr, "Reading a token: "));
7244 yychar = yylex (&yylval, P, tokens, index);
7245 }
7246
7247 if (yychar <= YYEOF)
7248 {
7249 yychar = yytoken = YYEOF;
7250 YYDPRINTF ((stderr, "Now at end of input.\n"));
7251 }
7252 else
7253 {
7254 yytoken = YYTRANSLATE (yychar);
7255 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
7256 }
7257
7258 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
7259 if (*yyconflicts != 0)
7260 break;
7261 if (yyisShiftAction (yyaction))
7262 {
7263 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
7264 yychar = YYEMPTY;
7265 yyposn += 1;
7266 yyglrShift (&yystack, 0, yyaction, yyposn, &yylval);
7267 if (0 < yystack.yyerrState)
7268 yystack.yyerrState -= 1;
7269 }
7270 else if (yyisErrorAction (yyaction))
7271 {
7272
7273 yyreportSyntaxError (&yystack, P, tokens, index);
7274 goto yyuser_error;
7275 }
7276 else
7277 YYCHK1 (yyglrReduce (&yystack, 0, -yyaction, yytrue, P, tokens, index));
7278 }
7279 }
7280
7281 while (yytrue)
7282 {
7283 yySymbol yytoken_to_shift;
7284 size_t yys;
7285
7286 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
7287 yystackp->yytops.yylookaheadNeeds[yys] = yychar != YYEMPTY;
7288
7289 /* yyprocessOneStack returns one of three things:
7290
7291 - An error flag. If the caller is yyprocessOneStack, it
7292 immediately returns as well. When the caller is finally
7293 yyparse, it jumps to an error label via YYCHK1.
7294
7295 - yyok, but yyprocessOneStack has invoked yymarkStackDeleted
7296 (&yystack, yys), which sets the top state of yys to NULL. Thus,
7297 yyparse's following invocation of yyremoveDeletes will remove
7298 the stack.
7299
7300 - yyok, when ready to shift a token.
7301
7302 Except in the first case, yyparse will invoke yyremoveDeletes and
7303 then shift the next token onto all remaining stacks. This
7304 synchronization of the shift (that is, after all preceding
7305 reductions on all stacks) helps prevent double destructor calls
7306 on yylval in the event of memory exhaustion. */
7307
7308 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
7309 YYCHK1 (yyprocessOneStack (&yystack, yys, yyposn, P, tokens, index));
7310 yyremoveDeletes (&yystack);
7311 if (yystack.yytops.yysize == 0)
7312 {
7313 yyundeleteLastStack (&yystack);
7314 if (yystack.yytops.yysize == 0)
7315 yyFail (&yystack, P, tokens, index, YY_("syntax error"));
7316 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
7317 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
7318
7319 yyreportSyntaxError (&yystack, P, tokens, index);
7320 goto yyuser_error;
7321 }
7322
7323 /* If any yyglrShift call fails, it will fail after shifting. Thus,
7324 a copy of yylval will already be on stack 0 in the event of a
7325 failure in the following loop. Thus, yychar is set to YYEMPTY
7326 before the loop to make sure the user destructor for yylval isn't
7327 called twice. */
7328 yytoken_to_shift = YYTRANSLATE (yychar);
7329 yychar = YYEMPTY;
7330 yyposn += 1;
7331 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
7332 {
7333 int yyaction;
7334 const short int* yyconflicts;
7335 yyStateNum yystate = yystack.yytops.yystates[yys]->yylrState;
7336 yygetLRActions (yystate, yytoken_to_shift, &yyaction,
7337 &yyconflicts);
7338 /* Note that yyconflicts were handled by yyprocessOneStack. */
7339 YYDPRINTF ((stderr, "On stack %lu, ", (unsigned long int) yys));
7340 YY_SYMBOL_PRINT ("shifting", yytoken_to_shift, &yylval, &yylloc);
7341 yyglrShift (&yystack, yys, yyaction, yyposn,
7342 &yylval);
7343 YYDPRINTF ((stderr, "Stack %lu now in state #%d\n",
7344 (unsigned long int) yys,
7345 yystack.yytops.yystates[yys]->yylrState));
7346 }
7347
7348 if (yystack.yytops.yysize == 1)
7349 {
7350 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
7351 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
7352 yycompressStack (&yystack);
7353 break;
7354 }
7355 }
7356 continue;
7357 yyuser_error:
7358 yyrecoverSyntaxError (&yystack, P, tokens, index);
7359 yyposn = yystack.yytops.yystates[0]->yyposn;
7360 }
7361
7362 yyacceptlab:
7363 yyresult = 0;
7364 goto yyreturn;
7365
7366 yybuglab:
7367 YYASSERT (yyfalse);
7368 goto yyabortlab;
7369
7370 yyabortlab:
7371 yyresult = 1;
7372 goto yyreturn;
7373
7374 yyexhaustedlab:
7375 yyerror (P, tokens, index, YY_("memory exhausted"));
7376 yyresult = 2;
7377 goto yyreturn;
7378
7379 yyreturn:
7380 if (yychar != YYEMPTY)
7381 yydestruct ("Cleanup: discarding lookahead",
7382 YYTRANSLATE (yychar), &yylval, P, tokens, index);
7383
7384 /* If the stack is well-formed, pop the stack until it is empty,
7385 destroying its entries as we go. But free the stack regardless
7386 of whether it is well-formed. */
7387 if (yystack.yyitems)
7388 {
7389 yyGLRState** yystates = yystack.yytops.yystates;
7390 if (yystates)
7391 {
7392 size_t yysize = yystack.yytops.yysize;
7393 size_t yyk;
7394 for (yyk = 0; yyk < yysize; yyk += 1)
7395 if (yystates[yyk])
7396 {
7397 while (yystates[yyk])
7398 {
7399 yyGLRState *yys = yystates[yyk];
7400 if (yys->yypred != YY_NULLPTR)
7401 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
7402 yystates[yyk] = yys->yypred;
7403 yystack.yynextFree -= 1;
7404 yystack.yyspaceLeft += 1;
7405 }
7406 break;
7407 }
7408 }
7409 yyfreeGLRStack (&yystack);
7410 }
7411
7412 return yyresult;
7413 }
7414
7415 /* DEBUGGING ONLY */
7416 #if YYDEBUG
7417 static void
7418 yy_yypstack (yyGLRState* yys)
7419 {
7420 if (yys->yypred)
7421 {
7422 yy_yypstack (yys->yypred);
7423 YYFPRINTF (stderr, " -> ");
7424 }
7425 YYFPRINTF (stderr, "%d@%lu", yys->yylrState,
7426 (unsigned long int) yys->yyposn);
7427 }
7428
7429 static void
7430 yypstates (yyGLRState* yyst)
7431 {
7432 if (yyst == YY_NULLPTR)
7433 YYFPRINTF (stderr, "<null>");
7434 else
7435 yy_yypstack (yyst);
7436 YYFPRINTF (stderr, "\n");
7437 }
7438
7439 static void
7440 yypstack (yyGLRStack* yystackp, size_t yyk)
7441 {
7442 yypstates (yystackp->yytops.yystates[yyk]);
7443 }
7444
7445 #define YYINDEX(YYX) \
7446 ((YYX) == YY_NULLPTR ? -1 : (yyGLRStackItem*) (YYX) - yystackp->yyitems)
7447
7448
7449 static void
7450 yypdumpstack (yyGLRStack* yystackp)
7451 {
7452 yyGLRStackItem* yyp;
7453 size_t yyi;
7454 for (yyp = yystackp->yyitems; yyp < yystackp->yynextFree; yyp += 1)
7455 {
7456 YYFPRINTF (stderr, "%3lu. ",
7457 (unsigned long int) (yyp - yystackp->yyitems));
7458 if (*(yybool *) yyp)
7459 {
7460 YYASSERT (yyp->yystate.yyisState);
7461 YYASSERT (yyp->yyoption.yyisState);
7462 YYFPRINTF (stderr, "Res: %d, LR State: %d, posn: %lu, pred: %ld",
7463 yyp->yystate.yyresolved, yyp->yystate.yylrState,
7464 (unsigned long int) yyp->yystate.yyposn,
7465 (long int) YYINDEX (yyp->yystate.yypred));
7466 if (! yyp->yystate.yyresolved)
7467 YYFPRINTF (stderr, ", firstVal: %ld",
7468 (long int) YYINDEX (yyp->yystate
7469 .yysemantics.yyfirstVal));
7470 }
7471 else
7472 {
7473 YYASSERT (!yyp->yystate.yyisState);
7474 YYASSERT (!yyp->yyoption.yyisState);
7475 YYFPRINTF (stderr, "Option. rule: %d, state: %ld, next: %ld",
7476 yyp->yyoption.yyrule - 1,
7477 (long int) YYINDEX (yyp->yyoption.yystate),
7478 (long int) YYINDEX (yyp->yyoption.yynext));
7479 }
7480 YYFPRINTF (stderr, "\n");
7481 }
7482 YYFPRINTF (stderr, "Tops:");
7483 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
7484 YYFPRINTF (stderr, "%lu: %ld; ", (unsigned long int) yyi,
7485 (long int) YYINDEX (yystackp->yytops.yystates[yyi]));
7486 YYFPRINTF (stderr, "\n");
7487 }
7488 #endif
7489
7490 #undef yylval
7491 #undef yychar
7492 #undef yynerrs
7493
7494 /* Substitute the variable and function names. */
7495 #define yyparse psi_parser_proc_parse
7496 #define yylex psi_parser_proc_lex
7497 #define yyerror psi_parser_proc_error
7498 #define yylval psi_parser_proc_lval
7499 #define yychar psi_parser_proc_char
7500 #define yydebug psi_parser_proc_debug
7501 #define yynerrs psi_parser_proc_nerrs
7502
7503 #line 2016 "src/parser_proc_grammar.y" /* glr.c:2584 */
7504
7505
7506 /* epilogue */
7507
7508 static int psi_parser_proc_lex(YYSTYPE *lvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7509 {
7510 struct psi_token *token;
7511
7512 if (psi_plist_get(tokens, (*index)++, &token)) {
7513 if (P->flags & PSI_DEBUG) {
7514 psi_token_dump(2, token);
7515 }
7516
7517 *((struct psi_token **)lvalp) = token;
7518 return token->type;
7519 } else {
7520 (*index)--;
7521 PSI_DEBUG_PRINT(P, "EOF(%d)\n", PSI_T_EOF);
7522 }
7523
7524 return PSI_T_EOF;
7525 }
7526
7527 static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char *msg)
7528 {
7529 struct psi_token *T = NULL;
7530 size_t last;
7531
7532 if (*index == 0) {
7533 last = 0;
7534 } else {
7535 last = --(*index);
7536 }
7537
7538 psi_plist_get(tokens, last, &T);
7539 if (T) {
7540 P->error(PSI_DATA(P), T, PSI_WARNING, "PSI %s at col %u", msg, T->col);
7541 } else {
7542 P->error(PSI_DATA(P), NULL, PSI_WARNING, "PSI %s", msg);
7543 }
7544 P->errors++;
7545 }
7546