e2a58b068d5a74ff943eacd7b1fb7948250c2efe
[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 3793
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 625
287 /* YYNRULES -- Number of states. */
288 #define YYNSTATES 880
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, 984, 991, 994, 1004, 1007, 1010, 1013, 1014,
392 1015, 1019, 1022, 1025, 1036, 1039, 1045, 1046, 1050, 1051,
393 1055, 1059, 1065, 1066, 1072, 1075, 1081, 1084, 1087, 1093,
394 1097, 1098, 1102, 1103, 1107, 1108, 1115, 1116, 1120, 1127,
395 1138, 1145, 1156, 1163, 1174, 1185, 1199, 1200, 1212, 1215,
396 1218, 1221, 1228, 1231, 1237, 1246, 1258, 1266, 1269, 1279,
397 1292, 1297, 1305, 1315, 1325, 1328, 1332, 1338, 1352, 1369,
398 1372, 1378, 1385, 1395, 1402, 1405, 1411, 1416, 1424, 1428,
399 1432, 1436, 1440, 1444, 1451, 1455, 1459, 1463, 1467, 1471,
400 1477, 1481, 1488, 1491, 1502, 1506, 1510, 1516, 1529, 1542,
401 1555, 1558, 1565, 1568, 1571, 1574, 1580, 1584, 1591, 1594,
402 1597, 1607, 1610, 1616, 1617, 1623, 1626, 1632, 1633, 1643,
403 1646, 1653, 1658, 1663, 1673, 1676, 1682, 1685, 1691, 1698,
404 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1717,
405 1720, 1726, 1729, 1732, 1735, 1738, 1744, 1748, 1756, 1757,
406 1761, 1768, 1771, 1774, 1777, 1781, 1784, 1790, 1794, 1802,
407 1809, 1817, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832,
408 1833, 1834, 1838, 1841, 1847, 1850, 1856, 1857, 1861, 1864,
409 1870, 1873, 1879, 1886, 1890, 1897, 1900, 1903, 1909, 1916,
410 1919, 1922, 1929, 1934, 1942, 1943, 1944, 1945, 1946, 1947,
411 1948, 1949, 1953, 1956, 1962, 1965, 1971, 1978, 1979, 1983,
412 1990, 1993, 1999, 2007, 2010, 2016
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 -693
479 #define YYTABLE_NINF -624
480
481 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
482 STATE-NUM. */
483 static const short int yypact[] =
484 {
485 694, -693, -693, -693, -693, -693, 45, -693, -693, 2647,
486 1697, 1496, -693, -693, 436, 1370, 3502, 3502, 3502, 2454,
487 49, 270, 55, -693, 1470, 1923, 141, 694, -693, -693,
488 -693, -693, -693, 2873, -693, -693, -693, -693, 157, 146,
489 -693, -693, -693, 154, -693, -54, -693, -693, 54, 145,
490 155, -693, -693, -693, -693, 159, -693, 166, -693, -693,
491 -693, -693, -693, 832, -693, 160, 126, -693, -693, -693,
492 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
493 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
494 -693, -693, -693, -693, -693, -693, -693, 2986, -2, -693,
495 -693, -693, -693, 3502, 3502, 3502, 72, -693, 71, -693,
496 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
497 -693, -693, 460, -693, -693, -693, -693, 189, 958, 958,
498 20, -693, 460, 2534, 2647, 3502, 3502, 2149, 193, -693,
499 -693, -693, 195, 3502, 194, 194, 38, 38, 196, -693,
500 -693, 202, 207, -693, 160, 210, -693, -693, 215, 1923,
501 211, 213, -693, 227, -693, 2488, 1398, -54, 211, -693,
502 -693, 214, -693, 222, 3502, -693, 249, -693, 164, -693,
503 -693, -693, 239, -693, -693, 224, 229, 2680, 2680, 3502,
504 190, 3502, -693, -693, 160, -693, -693, -693, -693, -693,
505 -693, 2873, -693, -693, -693, -693, -693, -693, -693, 140,
506 958, -693, -693, -693, -693, -693, -693, -693, -693, -693,
507 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
508 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
509 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
510 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
511 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
512 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
513 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
514 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
515 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
516 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
517 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
518 -693, -693, -693, 958, -693, -693, -693, -693, -693, -693,
519 -693, -693, 191, 2534, -693, -693, -693, -693, 3099, 2534,
520 230, 3656, -693, 232, 83, -693, 88, -693, -693, -693,
521 -693, 238, 228, 228, 56, 56, 3212, 250, -693, 211,
522 1210, -693, 190, 259, 262, 263, -693, 2082, -693, 160,
523 214, -693, -693, -693, 289, -693, -693, 271, -693, 17,
524 2714, 2873, 100, -693, -693, 131, 256, 149, -693, 2873,
525 2195, 2873, 3502, 2873, -693, -693, 18, -693, -693, -693,
526 -693, -693, 2421, -693, 267, 3502, 269, -693, 3502, 273,
527 -693, -693, -693, -693, 745, 279, -693, 2977, 3502, -693,
528 -693, 2534, -693, -693, -693, -693, -693, -693, -693, -693,
529 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
530 2534, 2534, -693, 274, 1429, 2873, 2873, -693, -693, -693,
531 -693, 160, -693, 1630, -693, -693, -693, -693, -693, -693,
532 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
533 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
534 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
535 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
536 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
537 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
538 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
539 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
540 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
541 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
542 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
543 -693, -693, -693, 1084, -693, 173, 301, -693, -693, -693,
544 -693, -693, -693, 1517, -693, 2421, -693, 3632, -693, -693,
545 3502, -693, -693, -693, 26, 2986, 160, 222, 214, 1664,
546 214, 2342, 2421, 3502, -693, 268, 278, 3680, 272, 288,
547 -693, 293, 302, 287, 300, 163, -693, 303, 306, -693,
548 -693, -693, 2855, -693, 305, 2873, 3271, 160, 310, -693,
549 -693, -693, 311, 3656, 312, 299, 3583, -693, 314, 2149,
550 313, -693, -693, 2760, 1332, 3502, 194, 194, -693, -693,
551 3502, 75, -693, -693, -693, 315, -693, 3680, -693, -693,
552 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
553 316, 142, -693, 55, -693, 319, 1496, 320, 3090, -693,
554 -693, 2421, 2421, 327, -693, -693, 3212, -693, 17, 329,
555 -693, -693, 331, 3680, -693, 1743, -693, 2195, -693, 2873,
556 -693, 55, 2873, -693, 3502, 3384, -693, -693, -693, -693,
557 -693, -693, 332, 333, -693, -693, -693, -693, 2534, 2534,
558 335, -693, 28, 337, -693, 313, 228, 228, 339, -693,
559 528, 338, 528, 307, 2421, -693, 3608, -693, -693, 214,
560 214, 104, 265, 383, 343, 3680, -693, -693, -693, -693,
561 345, 2308, -693, 344, 2873, 167, -693, 346, 269, 347,
562 958, 3443, 3656, 3704, 356, 348, 350, 2873, 354, 337,
563 2873, 2873, -693, -693, 528, -693, 55, 1630, -693, 2421,
564 -693, -693, 343, -693, -693, -693, -693, 355, 2421, 55,
565 -693, 1856, 359, 358, -693, 297, -693, -693, -693, 363,
566 362, 378, 313, 370, -693, 374, -693, 27, -693, 3728,
567 55, 3365, 372, 376, -693, 373, -693, -693, 127, -693,
568 380, 379, -693, 2873, -693, 390, 384, 2421, 1743, 382,
569 -693, 2195, -693, -693, 385, 395, 401, 313, 396, 1969,
570 3203, 268, -693, -693, -693, 397, 2308, -693, -693, 398,
571 402, -693, 399, 403, 404, -693, -693, 1743, -693, 405,
572 -693, 528, 406, 2195, -693, 407, -693, -693, -693, -693
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, 510, 0,
582 0, 0, 623, 283, 0, 0, 0, 278, 279, 285,
583 284, 286, 290, 521, 388, 390, 389, 395, 409, 421,
584 394, 287, 289, 0, 288, 426, 444, 446, 447, 0,
585 0, 456, 292, 291, 293, 0, 294, 0, 404, 399,
586 33, 34, 611, 572, 24, 521, 527, 39, 38, 37,
587 35, 36, 32, 31, 25, 29, 28, 26, 27, 40,
588 580, 579, 577, 575, 576, 578, 574, 573, 581, 30,
589 609, 607, 606, 608, 605, 604, 457, 0, 523, 525,
590 41, 42, 396, 0, 0, 0, 0, 445, 432, 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, 510, 510, 0, 0, 372,
594 377, 466, 376, 0, 516, 516, 391, 392, 393, 507,
595 358, 406, 397, 361, 0, 0, 357, 386, 0, 0,
596 0, 0, 625, 0, 624, 396, 0, 426, 0, 1,
597 280, 518, 467, 0, 522, 411, 415, 413, 417, 410,
598 407, 422, 409, 408, 430, 0, 0, 458, 458, 0,
599 0, 0, 522, 528, 521, 469, 524, 526, 391, 392,
600 393, 0, 431, 323, 324, 325, 327, 328, 326, 322,
601 337, 302, 297, 68, 43, 44, 45, 46, 47, 48,
602 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
603 59, 60, 61, 62, 63, 64, 65, 66, 67, 158,
604 159, 69, 70, 71, 72, 73, 74, 75, 76, 77,
605 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
606 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
607 98, 99, 100, 101, 102, 108, 106, 107, 105, 103,
608 104, 109, 110, 111, 112, 113, 114, 115, 116, 117,
609 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
610 128, 129, 130, 131, 132, 160, 133, 134, 135, 136,
611 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
612 147, 148, 149, 150, 151, 152, 156, 153, 154, 155,
613 157, 339, 305, 338, 298, 313, 314, 299, 322, 301,
614 347, 348, 0, 0, 22, 23, 20, 21, 0, 0,
615 350, 303, 349, 457, 391, 509, 392, 508, 373, 369,
616 378, 0, 0, 0, 0, 0, 0, 0, 295, 0,
617 0, 436, 0, 0, 0, 0, 437, 0, 471, 521,
618 518, 416, 412, 418, 419, 414, 423, 0, 424, 459,
619 0, 521, 0, 460, 462, 0, 486, 0, 484, 0,
620 623, 0, 0, 0, 617, 618, 0, 549, 552, 551,
621 553, 554, 0, 555, 0, 0, 433, 434, 0, 0,
622 330, 340, 506, 505, 0, 0, 501, 0, 0, 345,
623 342, 352, 2, 3, 4, 5, 6, 7, 8, 9,
624 10, 11, 13, 12, 14, 15, 16, 17, 18, 19,
625 0, 0, 370, 0, 0, 0, 0, 474, 473, 475,
626 472, 521, 468, 362, 438, 186, 161, 162, 163, 164,
627 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
628 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
629 185, 274, 275, 187, 188, 189, 190, 191, 192, 193,
630 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
631 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
632 214, 215, 216, 217, 218, 224, 222, 223, 221, 219,
633 220, 225, 226, 227, 228, 229, 230, 231, 232, 233,
634 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
635 244, 245, 246, 247, 248, 276, 249, 250, 251, 252,
636 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
637 263, 264, 265, 266, 267, 268, 272, 269, 270, 271,
638 273, 442, 443, 0, 440, 0, 0, 371, 425, 497,
639 495, 494, 496, 0, 519, 0, 498, 0, 488, 499,
640 0, 470, 420, 428, 0, 465, 0, 463, 518, 0,
641 518, 0, 0, 0, 483, 0, 0, 600, 0, 0,
642 599, 42, 0, 0, 0, 0, 620, 0, 0, 594,
643 529, 550, 0, 455, 0, 0, 331, 521, 0, 502,
644 504, 341, 0, 354, 0, 353, 0, 343, 0, 0,
645 512, 381, 374, 382, 0, 383, 516, 516, 380, 379,
646 0, 497, 366, 367, 368, 0, 364, 363, 439, 441,
647 530, 542, 543, 544, 545, 541, 546, 547, 548, 540,
648 0, 0, 534, 623, 539, 24, 0, 0, 0, 492,
649 520, 0, 0, 0, 429, 427, 464, 450, 0, 0,
650 461, 448, 0, 487, 485, 0, 556, 623, 598, 0,
651 538, 623, 0, 619, 0, 595, 592, 616, 454, 435,
652 332, 335, 0, 333, 503, 500, 346, 351, 0, 0,
653 0, 375, 0, 479, 476, 512, 0, 0, 0, 356,
654 0, 0, 0, 536, 0, 490, 0, 491, 452, 518,
655 518, 497, 0, 31, 30, 562, 567, 563, 565, 566,
656 41, 0, 601, 612, 0, 0, 621, 611, 597, 0,
657 337, 0, 355, 344, 0, 513, 0, 0, 0, 479,
658 385, 384, 453, 531, 0, 535, 623, 362, 489, 0,
659 451, 449, 0, 564, 586, 572, 587, 0, 0, 623,
660 568, 623, 0, 0, 622, 0, 329, 334, 336, 0,
661 0, 0, 512, 480, 477, 0, 532, 0, 537, 493,
662 623, 0, 582, 0, 614, 613, 602, 557, 0, 517,
663 0, 0, 481, 0, 478, 0, 0, 0, 0, 0,
664 603, 623, 610, 593, 0, 0, 0, 512, 0, 588,
665 0, 498, 584, 560, 558, 583, 0, 571, 615, 0,
666 0, 482, 0, 0, 589, 590, 569, 0, 559, 0,
667 514, 0, 0, 623, 585, 0, 533, 570, 591, 515
668 };
669
670 /* YYPGOTO[NTERM-NUM]. */
671 static const short int yypgoto[] =
672 {
673 -693, -323, -129, -7, 108, -693, -693, -693, 415, -693,
674 -693, -693, -693, -693, -693, -693, -693, -693, -693, 322,
675 -693, -693, -693, -126, -693, -301, -693, -693, -693, -693,
676 -693, -341, -693, -693, 282, -203, 22, -189, -156, -6,
677 -693, -693, -693, 423, -693, -693, 285, -693, -693, -693,
678 -693, 304, -693, -693, -693, -693, -504, -693, -135, -693,
679 -119, 444, 47, 3, 40, -693, -693, 281, -463, 5,
680 -33, -693, -693, 105, -346, -693, -305, -693, 7, -693,
681 -138, -342, -693, -121, -693, 52, -693, -428, -418, 80,
682 -692, -124, -351, -51, -3, -693, 394, -693, 473, -693,
683 -243, -639, -682, -693, 128, -387, -693, -366, -666, 120,
684 -232, -693, -693, -660, -693, -693, -693, -693, -693, -693,
685 -693, -693, -693, -669, -395, -376, -693, -693, -693, -693,
686 -693, -693, -193, -21, -664
687 };
688
689 /* YYDEFGOTO[NTERM-NUM]. */
690 static const short int yydefgoto[] =
691 {
692 -1, 692, 595, 171, 331, 581, 26, 27, 28, 29,
693 30, 127, 128, 129, 130, 337, 131, 132, 133, 210,
694 211, 722, 723, 332, 333, 351, 644, 645, 31, 155,
695 156, 665, 666, 32, 138, 650, 651, 652, 33, 34,
696 35, 36, 37, 38, 39, 40, 180, 382, 385, 183,
697 41, 186, 604, 42, 43, 202, 416, 44, 582, 583,
698 584, 45, 46, 47, 141, 49, 50, 392, 393, 51,
699 596, 52, 53, 458, 459, 654, 778, 813, 143, 397,
700 398, 617, 598, 599, 638, 426, 55, 144, 145, 149,
701 733, 362, 378, 173, 418, 98, 99, 56, 57, 681,
702 682, 618, 683, 684, 406, 407, 408, 852, 853, 854,
703 757, 758, 759, 100, 839, 855, 797, 863, 864, 409,
704 628, 769, 410, 619, 620, 101, 802, 825, 411, 412,
705 413, 625, 626, 622, 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, 96, 334, 349, 109, 97, 54, 629, 146,
714 147, 148, 352, 157, 191, 108, 455, 456, 140, 631,
715 142, 363, 364, 365, 621, 371, 656, 621, 451, 601,
716 174, 391, 391, 376, 54, 597, 657, 139, 762, 756,
717 48, 761, 427, 779, 743, 760, 335, 66, 430, 65,
718 48, 710, 694, 775, 58, 630, 59, 107, 783, 695,
719 786, 48, 192, 776, 48, 48, 66, 48, 160, -516,
720 632, 185, 168, 361, -516, 158, 1, 2, 3, 4,
721 5, 6, 7, 8, 420, -447, -466, 457, -466, 154,
722 195, 835, 454, 796, 102, 800, 198, 199, 200, 162,
723 157, 760, 816, -456, 451, 201, -365, 451, -365, -365,
724 399, 400, 401, 402, 403, 209, 404, 405, -391, -511,
725 832, 667, 196, -392, -511, 338, 350, 353, 354, 356,
726 643, 97, 824, 608, 609, -497, 360, -497, -497, 336,
727 140, 169, 142, 415, 62, 842, 700, 743, 700, 646,
728 647, 366, 181, 4, 5, 861, 103, 104, 105, 358,
729 822, 175, 176, 177, 610, 611, 178, 380, 417, 140,
730 383, 142, 858, 384, 856, 741, 742, 187, 760, 179,
731 865, 836, 396, 613, 414, 184, 614, 188, 139, 876,
732 868, 192, 394, 394, 713, 189, 760, 714, 631, 48,
733 804, 635, 190, 856, 878, 48, 369, 760, 765, 66,
734 670, 768, 107, 193, 349, 355, 357, 422, 423, 212,
735 349, 656, 352, 424, 359, -359, 656, -456, 352, 361,
736 -360, 657, -511, 367, 464, 425, 657, 90, 91, 92,
737 93, 94, 95, 175, 176, 177, 368, 370, 178, 372,
738 373, 688, 377, 689, 379, 381, 387, 697, 419, 701,
739 388, 179, 431, 452, 454, 399, 400, 401, 402, 403,
740 703, 404, 405, 453, 1, 2, 3, 4, 5, 6,
741 7, 8, 399, 400, 401, 402, 403, 9, 404, 405,
742 463, 586, 102, 587, 588, 602, 612, 603, 653, 11,
743 633, 640, 349, 635, 671, 636, 648, 672, 705, 706,
744 352, 673, 707, 674, 675, 676, 677, 678, 679, 708,
745 451, 349, 349, 451, 451, 709, 710, 711, 600, 352,
746 352, 621, 712, 728, 680, 715, 350, 716, 718, 730,
747 607, 429, 350, 725, 726, 727, 739, 787, 732, 746,
748 747, 740, -24, 744, 103, 104, 105, 106, 172, 462,
749 748, 22, 749, 755, 750, 770, 615, 771, 623, 774,
750 627, 777, 782, 784, 792, 798, 192, 799, 801, -596,
751 805, 809, 811, 810, 157, 814, 605, 820, 174, 827,
752 780, 781, 826, 159, 828, 624, 829, 830, 790, 791,
753 794, 795, 788, 831, 833, 834, 838, 841, 634, 840,
754 660, 380, 845, 846, 848, 857, 849, 709, 637, 755,
755 859, 642, 658, 659, 350, 621, 860, 772, 773, 862,
756 875, 867, 869, 843, 871, 870, 872, 687, 873, 877,
757 879, 421, 170, 350, 350, 667, 818, 819, 374, 451,
758 451, 735, 844, 391, 339, 391, 821, 140, 192, 142,
759 731, 655, 182, 60, 669, 621, 110, 386, 167, 395,
760 460, 375, 61, 621, 815, 704, 639, 62, 63, 203,
761 204, 205, 64, 80, 81, 82, 83, 84, 85, 86,
762 87, 88, 197, 653, 161, 850, 755, 621, 653, 785,
763 585, 874, 111, 112, 113, 114, 115, 116, 117, 118,
764 119, 120, 121, 122, 755, 123, 124, 125, 126, 616,
765 793, 766, 0, 0, 0, 755, 67, 68, 69, 70,
766 71, 671, 736, 737, 672, 0, 0, 0, 673, 0,
767 674, 675, 676, 677, 678, 679, 0, 0, 72, 0,
768 73, 74, 75, 76, 77, 78, 0, 79, 0, 0,
769 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
770 90, 91, 92, 93, 94, 95, 0, 0, 0, 0,
771 0, 206, 0, 207, 208, 0, 724, 0, 0, 0,
772 0, 0, 0, 693, 0, 0, 0, 0, 195, 349,
773 349, 0, 719, 696, 0, 0, 396, 352, 352, 0,
774 0, 0, 0, 0, 394, 0, 394, 0, 0, 0,
775 172, 0, 0, 0, 0, 0, 0, 0, 0, 721,
776 0, 0, 0, 0, 192, 0, 0, 0, 0, 0,
777 0, 0, 0, 0, 806, 0, 0, 0, 360, 0,
778 174, 0, 140, 738, 142, 0, 655, 140, 0, 142,
779 0, 655, 0, 0, 0, 0, 0, 0, 0, 0,
780 0, 0, 0, 0, 0, 0, 763, 0, 0, 417,
781 157, 0, 417, 0, 0, 0, 0, 0, 0, 462,
782 764, 0, 0, 0, 0, 605, 0, 0, 1, 2,
783 3, 4, 5, 6, 7, 8, 0, 624, 0, 0,
784 0, 9, 0, 0, 0, 0, 10, 0, 0, 0,
785 0, 350, 350, 11, 12, 13, 0, 0, 0, 0,
786 0, 803, 0, 0, 0, 14, 0, 0, 0, 0,
787 0, 0, 0, 0, 812, 0, 0, 658, 659, 1,
788 2, 3, 4, 5, 6, 7, 8, 0, 0, 0,
789 0, 0, 0, 0, 808, 817, 0, 102, 0, 0,
790 0, 422, 423, 0, 0, 0, 0, 15, 16, 17,
791 18, 19, 20, 21, 0, 22, 0, 0, 0, 425,
792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
793 847, 0, 0, 0, 0, 851, 0, 0, 0, 0,
794 23, 0, 0, 0, 0, 24, 0, 25, 0, 0,
795 0, 0, 0, 0, 0, 0, 0, 0, 0, 103,
796 104, 105, -572, 0, 851, -572, -572, -572, -572, -572,
797 -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
798 -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
799 -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
800 -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
801 -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
802 -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
803 -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
804 -572, -572, 0, -572, 0, -572, -572, -572, -572, -572,
805 -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
806 -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
807 -572, -572, -572, -572, -572, -572, -572, -572, -572, 0,
808 -572, -572, 0, -572, -572, -572, -572, -572, 213, 0,
809 0, 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, 240, 0, 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, 289, 0, 290,
817 0, 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, 324, 0, 0, 325, 0, 326,
821 327, 328, 329, 330, 465, 0, 0, 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, 492, 0, 493, 494, 495, 496, 497,
825 370, 668, 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, 539, 0, 540, 0, 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 574, 0, 0, 575, 0, 576, 577, 578, 579, 580,
834 465, 0, 0, 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, 492,
837 0, 493, 494, 495, 496, 497, 370, 0, 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, 539,
842 0, 540, 0, 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, 574, 0, 0, 575,
846 0, 576, 577, 578, 579, 580, 1, 2, 3, 4,
847 5, 6, 7, 8, 0, 0, 0, 0, 0, 9,
848 0, 0, 0, 0, 102, 0, 0, 0, 0, 0,
849 0, 11, 0, 0, 0, 0, 0, 0, 0, 734,
850 0, 0, 0, 0, 1, 2, 3, 4, 5, 6,
851 7, 8, 0, 0, 0, 0, 0, 134, 0, 0,
852 0, 0, 102, 0, 0, 0, 0, 0, 0, 11,
853 0, 0, 1, 2, 3, 4, 5, 6, 7, 8,
854 0, 0, 0, 0, 0, 9, 135, 136, 18, 106,
855 102, 0, 0, 0, 0, 0, 0, 11, 0, 0,
856 0, 0, 0, 1, 2, 3, 4, 5, 6, 7,
857 8, 0, 0, 0, 0, 0, 9, 0, 0, 0,
858 0, 102, 0, 649, 135, 136, 18, 106, 11, 0,
859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
860 0, 0, 0, 0, 1, 2, 3, 4, 5, 6,
861 7, 8, 135, 136, 18, 106, 0, 9, 0, 0,
862 0, 137, 165, 0, 0, 0, 0, 0, 0, 11,
863 1, 2, 3, 4, 5, 6, 7, 8, 0, 0,
864 0, 0, 0, 135, 136, 18, 106, 0, 102, 137,
865 60, 1, 2, 3, 4, 5, 6, 7, 8, 61,
866 0, 0, 0, 0, 62, 63, 589, 0, 0, 685,
867 590, 0, 591, 0, 592, 342, 11, 0, 0, 593,
868 649, 0, 0, 166, 103, 104, 105, 106, 0, 0,
869 0, 0, 0, 0, 344, 345, 66, 0, 0, 0,
870 0, 0, 0, 0, 0, 0, 0, 346, 347, 0,
871 103, 104, 105, 67, 68, 69, 70, 71, 0, 0,
872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
873 0, 103, 104, 105, 686, 72, 0, 73, 74, 75,
874 76, 77, 78, 0, 79, 0, 0, 80, 81, 82,
875 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
876 93, 94, 95, 60, 0, 0, 0, 0, 0, 0,
877 0, 0, 61, 0, 0, 0, 0, 62, 63, 661,
878 662, 663, 64, 590, 0, 591, 664, 592, 342, 0,
879 0, 0, 593, 0, 0, 0, 0, 0, 1, 2,
880 3, 4, 5, 6, 7, 8, 0, 344, 345, 66,
881 0, 698, 0, 0, 0, 0, 102, 0, 0, 0,
882 346, 347, 0, 11, 0, 0, 67, 68, 69, 70,
883 71, 1, 2, 3, 4, 5, 6, 7, 8, 0,
884 0, 0, 0, 0, 9, 0, 0, 0, 72, 102,
885 73, 74, 75, 76, 77, 78, 11, 79, 699, 0,
886 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
887 90, 91, 92, 93, 94, 95, 60, 0, 103, 104,
888 105, 390, 0, 0, 0, 61, 0, 0, 0, 0,
889 62, 63, 751, 0, 0, 64, 590, 0, 591, 0,
890 592, 342, 0, 0, 0, 593, 0, 0, 0, 0,
891 0, 103, 104, 105, 106, 0, 0, 162, 0, 0,
892 344, 345, 66, 0, 0, 0, 0, 0, 0, 0,
893 0, 0, 0, 346, 347, 0, 0, 0, 0, 67,
894 68, 69, 70, 71, 0, 0, 0, 0, 0, 0,
895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
896 0, 72, 752, 753, 74, 75, 76, 77, 78, 0,
897 79, 0, 0, 80, 81, 82, 83, 84, 85, 86,
898 87, 88, 754, 90, 91, 92, 93, 94, 95, 60,
899 0, 0, 0, 0, 0, 0, 0, 0, 61, 0,
900 0, 0, 0, 62, 63, 589, 0, 0, 64, 590,
901 0, 591, 0, 592, 342, 0, 0, 0, 593, 0,
902 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
903 162, 0, 0, 344, 345, 66, 0, 0, 0, 0,
904 0, 0, 0, 0, 0, 0, 346, 347, 0, 0,
905 823, 0, 67, 68, 69, 70, 71, 1, 2, 3,
906 4, 5, 6, 7, 8, 0, 0, 0, 0, 0,
907 9, 0, 0, 0, 72, 102, 73, 74, 75, 76,
908 77, 78, 11, 79, 0, 0, 80, 81, 82, 83,
909 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
910 94, 95, 60, 0, 0, 0, 0, 0, 0, 0,
911 0, 61, 0, 0, 0, 0, 62, 63, 589, 0,
912 0, 64, 590, -623, 591, 0, 592, 342, 0, 0,
913 0, 593, 0, 0, 0, 0, 0, 103, 104, 105,
914 106, 0, 0, 162, 0, 0, 344, 345, 66, 0,
915 0, 0, 0, 0, 0, 0, 0, 0, 0, 346,
916 347, 0, 0, 0, 0, 67, 68, 69, 70, 71,
917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
918 0, 0, 0, 0, 0, 0, 0, 72, 0, 73,
919 74, 75, 76, 77, 78, 0, 79, 0, 0, 80,
920 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
921 91, 92, 93, 94, 95, 60, 0, 0, 0, 0,
922 0, 0, 0, 0, 61, 0, 0, 0, 0, 62,
923 63, 589, 0, 0, 64, 590, 0, 591, 0, 592,
924 342, 0, 0, 0, 593, 0, 0, 0, 0, 0,
925 0, 594, 0, 0, 0, 0, 0, 0, 0, 344,
926 345, 66, 0, 0, 0, 0, 0, 0, 0, 0,
927 0, 0, 346, 347, 0, 0, 0, 0, 67, 68,
928 69, 70, 71, 1, 2, 3, 4, 5, 6, 7,
929 8, 0, 0, 0, 0, 0, 9, 0, 0, 0,
930 72, 102, 73, 74, 75, 76, 77, 78, 11, 79,
931 0, 0, 80, 81, 82, 83, 84, 85, 86, 87,
932 88, 89, 90, 91, 92, 93, 94, 95, 60, 0,
933 0, 0, 0, 0, 0, 0, 0, 61, 0, 0,
934 0, 0, 62, 63, 589, 0, 0, 64, 590, 0,
935 591, 0, 592, 342, 0, 0, 0, 593, 0, 0,
936 0, 0, 0, 135, 136, 18, 106, 0, 0, 162,
937 0, 0, 344, 345, 66, 0, 0, 0, 0, 0,
938 0, 0, 0, 0, 0, 346, 347, 0, 0, 0,
939 0, 67, 68, 69, 70, 71, 0, 0, 0, 0,
940 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
941 0, 0, 0, 72, 0, 73, 74, 75, 76, 77,
942 78, 0, 79, 0, 0, 80, 81, 82, 83, 84,
943 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
944 95, 60, 0, 0, 0, 0, 0, 0, 0, 0,
945 61, 0, 0, 0, 0, 62, 63, 751, 0, 0,
946 64, 590, 0, 591, 0, 592, 342, 0, 0, 0,
947 593, 0, 0, 0, 0, 0, 1, 2, 3, 4,
948 5, 6, 7, 8, 0, 344, 345, 66, 0, 698,
949 0, 0, 0, 0, 102, 0, 0, 0, 346, 347,
950 0, 11, 0, 0, 67, 68, 69, 70, 71, 0,
951 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
952 0, 0, 0, 0, 0, 0, 72, 752, 753, 74,
953 75, 76, 77, 78, 0, 79, 702, 0, 80, 81,
954 82, 83, 84, 85, 86, 87, 88, 754, 90, 91,
955 92, 93, 94, 95, 60, 0, 103, 104, 105, 390,
956 0, 0, 0, 61, 0, 0, 0, 0, 62, 63,
957 589, 0, 0, 64, 590, 0, 591, 0, 592, 342,
958 0, 0, 0, 593, 0, 0, 0, 150, 1, 2,
959 151, 4, 5, 6, 152, 8, 153, 0, 344, 345,
960 66, 154, 0, 0, 0, 0, 102, 0, 0, 0,
961 0, 346, 347, 0, 0, 0, 0, 67, 68, 69,
962 70, 71, 1, 2, 3, 4, 5, 6, 7, 8,
963 0, 0, 0, 0, 0, 9, 0, 0, 0, 72,
964 102, 73, 74, 75, 76, 77, 78, 11, 79, 0,
965 0, 80, 81, 82, 83, 84, 85, 86, 87, 88,
966 89, 90, 91, 92, 93, 94, 95, 60, 103, 104,
967 105, 0, 0, 0, 0, 0, 61, 0, 0, 0,
968 0, 62, 63, 0, 0, 0, 64, 0, 0, 340,
969 0, 341, 342, 0, 0, 0, 343, 0, 0, 0,
970 0, 0, 103, 104, 105, 106, 0, 0, 0, 0,
971 0, 344, 345, 0, 0, 0, 0, 0, 0, 0,
972 0, 0, 0, 0, 346, 347, 0, 0, 0, 0,
973 67, 68, 69, 70, 71, 0, 0, 0, 0, 0,
974 0, 0, 348, 0, 0, 0, 0, 0, 0, 0,
975 0, 0, 72, 0, 73, 74, 75, 76, 77, 78,
976 0, 79, 0, 0, 80, 81, 82, 83, 84, 85,
977 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
978 60, 0, 0, 0, 0, 0, 0, 0, 0, 61,
979 0, 0, 0, 0, 62, 63, 0, 0, 0, 64,
980 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,
981 0, 0, 0, 0, 1, 2, 3, 4, 5, 6,
982 7, 8, 0, 0, 0, 0, 66, 389, 0, 0,
983 0, 0, 102, 0, 0, 0, 0, 0, 0, 11,
984 0, 0, 0, 67, 68, 69, 70, 71, 1, 2,
985 3, 4, 5, 6, 7, 8, 0, 0, 0, 0,
986 0, 606, 0, 0, 0, 72, 102, 73, 74, 75,
987 76, 77, 78, 0, 79, 0, 0, 80, 81, 82,
988 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
989 93, 94, 95, 60, 103, 104, 105, 390, 0, 0,
990 0, 0, 61, 0, 0, 0, 0, 62, 63, 0,
991 0, 0, 64, 0, 0, 0, 0, 0, 0, 0,
992 0, 0, -521, 0, 0, 0, 0, 0, 103, 104,
993 105, 0, 0, 0, 0, 0, 0, 0, 0, 66,
994 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
995 0, 0, 0, 0, 0, 0, 67, 68, 69, 70,
996 71, 0, 0, 0, 0, 0, 0, 0, 0, 0,
997 0, 0, 0, 0, 0, 0, 0, 0, 72, 0,
998 73, 74, 75, 76, 77, 78, 0, 79, 0, 0,
999 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
1000 90, 91, 92, 93, 94, 95, 60, 0, 0, 0,
1001 0, 0, 0, 0, 0, 61, 717, 0, 0, 0,
1002 62, 63, 0, 0, 0, 64, 0, 432, 433, 434,
1003 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1004 445, 446, 447, 448, 449, 0, 0, 0, 0, 0,
1005 691, 0, 66, 0, 0, 0, 0, 0, 0, 0,
1006 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,
1007 68, 69, 70, 71, 0, 0, 0, 0, 0, 0,
1008 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1009 0, 72, 0, 73, 74, 75, 76, 77, 78, 0,
1010 79, 0, 0, 80, 81, 82, 83, 84, 85, 86,
1011 87, 88, 89, 90, 91, 92, 93, 94, 95, 60,
1012 0, 0, 0, 0, 0, 0, 0, 0, 61, 0,
1013 0, 0, 0, 62, 63, 0, 0, 0, 64, 0,
1014 641, 0, 0, 0, 0, 0, 0, 0, 194, 432,
1015 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
1016 443, 444, 445, 446, 447, 448, 449, 0, 0, 0,
1017 0, 0, 450, 0, 0, 0, 0, 0, 0, 0,
1018 0, 0, 67, 68, 69, 70, 71, 0, 0, 0,
1019 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1020 0, 0, 0, 0, 72, 0, 73, 74, 75, 76,
1021 77, 78, 0, 79, 0, 0, 80, 81, 82, 83,
1022 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
1023 94, 95, 60, 0, 0, 0, 0, 0, 0, 0,
1024 0, 61, 0, 0, 0, 0, 62, 63, 0, 0,
1025 0, 64, 0, 745, 0, 0, 0, 0, 0, 0,
1026 0, 428, 432, 433, 434, 435, 436, 437, 438, 439,
1027 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
1028 0, 0, 0, 0, 0, 691, 0, 0, 0, 0,
1029 0, 0, 0, 0, 0, 67, 68, 69, 70, 71,
1030 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1031 0, 0, 0, 0, 0, 0, 0, 72, 0, 73,
1032 74, 75, 76, 77, 78, 0, 79, 0, 0, 80,
1033 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
1034 91, 92, 93, 94, 95, 60, 0, 0, 0, 0,
1035 0, 0, 0, 0, 61, 0, 0, 0, 0, 62,
1036 63, 0, 0, 0, 64, 0, 866, 0, 0, 0,
1037 0, 0, 0, 0, 461, 432, 433, 434, 435, 436,
1038 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
1039 447, 448, 449, 0, 0, 0, 0, 0, 691, 0,
1040 0, 0, 0, 0, 60, 0, 0, 0, 67, 68,
1041 69, 70, 71, 61, 0, 0, 0, 0, 62, 63,
1042 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,
1043 72, 0, 73, 74, 75, 76, 77, 78, 0, 79,
1044 0, 0, 80, 81, 82, 83, 84, 85, 86, 87,
1045 88, 89, 90, 91, 92, 93, 94, 95, 0, 0,
1046 0, 0, 0, 0, 0, 720, 0, 67, 68, 69,
1047 70, 71, 0, 0, 0, 0, 0, 0, 0, 0,
1048 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,
1049 0, 73, 74, 75, 76, 77, 78, 0, 79, 0,
1050 0, 80, 81, 82, 83, 84, 85, 86, 87, 88,
1051 89, 90, 91, 92, 93, 94, 95, 60, 0, 0,
1052 0, 0, 0, 0, 0, 0, 61, 0, 0, 837,
1053 0, 767, 63, 0, 0, 0, 64, 432, 433, 434,
1054 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1055 445, 446, 447, 448, 449, 0, 0, 0, 0, 0,
1056 691, 0, 0, 66, 0, 0, 0, 0, 0, 0,
1057 0, 0, 0, 0, 0, 0, 60, 0, 0, 0,
1058 67, 68, 69, 70, 71, 61, 0, 0, 0, 0,
1059 62, 63, 0, 0, 0, 64, 0, 0, 0, 0,
1060 0, 0, 72, 0, 73, 74, 75, 76, 77, 78,
1061 0, 79, 0, 0, 80, 81, 82, 83, 84, 85,
1062 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1063 0, 0, 0, 0, 0, 60, 0, 807, 0, 67,
1064 68, 69, 70, 71, 61, 0, 0, 0, 0, 62,
1065 63, 0, 0, 0, 64, 0, 0, 0, 0, 0,
1066 0, 72, 0, 73, 74, 75, 76, 77, 78, 0,
1067 79, 0, 0, 80, 81, 82, 83, 84, 85, 86,
1068 87, 88, 89, 90, 91, 92, 93, 94, 95, 0,
1069 0, 0, 0, 0, 0, 0, 0, 0, 67, 68,
1070 69, 70, 71, 0, 0, 0, 0, 0, 0, 0,
1071 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1072 72, 0, 73, 74, 75, 76, 77, 78, 0, 79,
1073 0, 0, 80, 81, 82, 83, 84, 85, 86, 87,
1074 88, 89, 90, 91, 92, 93, 94, 95, 729, 0,
1075 0, 0, 0, 0, 0, 432, 433, 434, 435, 436,
1076 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
1077 447, 448, 449, 789, 0, 0, 0, 0, 450, 0,
1078 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
1079 442, 443, 444, 445, 446, 447, 448, 449, 0, 0,
1080 0, 690, 0, 691, 432, 433, 434, 435, 436, 437,
1081 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
1082 448, 449, 0, 0, 0, 0, 0, 691, 432, 433,
1083 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
1084 444, 445, 446, 447, 448, 449, 0, 0, 0, 0,
1085 0, 450, 432, 433, 434, 435, 436, 437, 438, 439,
1086 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
1087 0, 0, 0, 0, 0, 691, 432, 433, 434, 435,
1088 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
1089 446, 447, 448, 449, 0, 0, 0, 0, 0, 450,
1090 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
1091 442, 443, 444, 445, 446, 447, 448, 449, 0, 0,
1092 0, 0, 0, 691
1093 };
1094
1095 static const short int yycheck[] =
1096 {
1097 33, 22, 9, 129, 133, 11, 9, 0, 403, 16,
1098 17, 18, 133, 19, 65, 10, 362, 363, 15, 406,
1099 15, 145, 146, 147, 400, 160, 454, 403, 351, 380,
1100 33, 187, 188, 168, 27, 377, 454, 15, 707, 705,
1101 0, 705, 343, 735, 683, 705, 26, 49, 349, 32,
1102 10, 24, 26, 25, 9, 37, 11, 10, 740, 33,
1103 742, 21, 65, 35, 24, 25, 49, 27, 21, 31,
1104 412, 125, 25, 35, 36, 26, 4, 5, 6, 7,
1105 8, 9, 10, 11, 210, 31, 32, 31, 34, 17,
1106 97, 64, 36, 753, 22, 761, 103, 104, 105, 44,
1107 106, 761, 784, 32, 427, 34, 31, 430, 33, 34,
1108 92, 93, 94, 95, 96, 122, 98, 99, 35, 36,
1109 812, 463, 124, 35, 36, 132, 133, 134, 135, 136,
1110 431, 134, 801, 33, 34, 31, 143, 33, 34, 119,
1111 137, 0, 137, 194, 17, 18, 609, 786, 611, 450,
1112 451, 154, 6, 7, 8, 847, 84, 85, 86, 137,
1113 799, 4, 5, 6, 33, 34, 9, 174, 201, 166,
1114 6, 166, 841, 9, 838, 33, 34, 32, 838, 22,
1115 849, 820, 189, 34, 191, 31, 37, 32, 166, 871,
1116 856, 194, 187, 188, 31, 36, 856, 34, 585, 159,
1117 33, 34, 36, 867, 873, 165, 159, 867, 712, 49,
1118 37, 715, 165, 87, 343, 135, 136, 26, 27, 30,
1119 349, 649, 343, 32, 31, 23, 654, 32, 349, 35,
1120 23, 649, 36, 23, 369, 44, 654, 110, 111, 112,
1121 113, 114, 115, 4, 5, 6, 31, 36, 9, 36,
1122 23, 593, 38, 595, 32, 6, 32, 608, 118, 610,
1123 31, 22, 32, 31, 36, 92, 93, 94, 95, 96,
1124 612, 98, 99, 35, 4, 5, 6, 7, 8, 9,
1125 10, 11, 92, 93, 94, 95, 96, 17, 98, 99,
1126 40, 32, 22, 31, 31, 6, 40, 26, 454, 29,
1127 33, 22, 431, 34, 3, 32, 32, 6, 40, 31,
1128 431, 10, 40, 12, 13, 14, 15, 16, 17, 31,
1129 643, 450, 451, 646, 647, 32, 24, 40, 379, 450,
1130 451, 707, 32, 34, 33, 32, 343, 31, 33, 25,
1131 391, 348, 349, 33, 33, 33, 31, 40, 35, 691,
1132 692, 35, 33, 33, 84, 85, 86, 87, 391, 366,
1133 33, 91, 33, 705, 33, 33, 399, 34, 401, 34,
1134 403, 34, 33, 35, 109, 32, 379, 32, 34, 33,
1135 33, 25, 32, 35, 390, 31, 389, 32, 391, 31,
1136 736, 737, 33, 123, 97, 402, 33, 35, 749, 750,
1137 17, 18, 744, 25, 34, 31, 34, 34, 415, 33,
1138 461, 418, 32, 34, 24, 33, 32, 32, 424, 761,
1139 25, 428, 455, 456, 431, 801, 25, 728, 729, 33,
1140 25, 34, 34, 828, 35, 33, 33, 593, 34, 33,
1141 33, 333, 27, 450, 451, 787, 787, 789, 166, 772,
1142 773, 654, 828, 609, 132, 611, 798, 454, 461, 454,
1143 649, 454, 39, 3, 583, 841, 30, 182, 24, 188,
1144 365, 167, 12, 849, 779, 613, 424, 17, 18, 19,
1145 20, 21, 22, 100, 101, 102, 103, 104, 105, 106,
1146 107, 108, 98, 649, 21, 837, 838, 873, 654, 742,
1147 372, 867, 66, 67, 68, 69, 70, 71, 72, 73,
1148 74, 75, 76, 77, 856, 79, 80, 81, 82, 399,
1149 752, 714, -1, -1, -1, 867, 66, 67, 68, 69,
1150 70, 3, 656, 657, 6, -1, -1, -1, 10, -1,
1151 12, 13, 14, 15, 16, 17, -1, -1, 88, -1,
1152 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
1153 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1154 110, 111, 112, 113, 114, 115, -1, -1, -1, -1,
1155 -1, 121, -1, 123, 124, -1, 637, -1, -1, -1,
1156 -1, -1, -1, 600, -1, -1, -1, -1, 605, 728,
1157 729, -1, 635, 606, -1, -1, 613, 728, 729, -1,
1158 -1, -1, -1, -1, 609, -1, 611, -1, -1, -1,
1159 653, -1, -1, -1, -1, -1, -1, -1, -1, 636,
1160 -1, -1, -1, -1, 637, -1, -1, -1, -1, -1,
1161 -1, -1, -1, -1, 770, -1, -1, -1, 655, -1,
1162 653, -1, 649, 660, 649, -1, 649, 654, -1, 654,
1163 -1, 654, -1, -1, -1, -1, -1, -1, -1, -1,
1164 -1, -1, -1, -1, -1, -1, 709, -1, -1, 712,
1165 686, -1, 715, -1, -1, -1, -1, -1, -1, 696,
1166 711, -1, -1, -1, -1, 698, -1, -1, 4, 5,
1167 6, 7, 8, 9, 10, 11, -1, 714, -1, -1,
1168 -1, 17, -1, -1, -1, -1, 22, -1, -1, -1,
1169 -1, 728, 729, 29, 30, 31, -1, -1, -1, -1,
1170 -1, 764, -1, -1, -1, 41, -1, -1, -1, -1,
1171 -1, -1, -1, -1, 777, -1, -1, 780, 781, 4,
1172 5, 6, 7, 8, 9, 10, 11, -1, -1, -1,
1173 -1, -1, -1, -1, 771, 786, -1, 22, -1, -1,
1174 -1, 26, 27, -1, -1, -1, -1, 83, 84, 85,
1175 86, 87, 88, 89, -1, 91, -1, -1, -1, 44,
1176 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1177 833, -1, -1, -1, -1, 838, -1, -1, -1, -1,
1178 116, -1, -1, -1, -1, 121, -1, 123, -1, -1,
1179 -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
1180 85, 86, 0, -1, 867, 3, 4, 5, 6, 7,
1181 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
1182 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1183 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1184 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1185 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1186 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1187 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1188 78, 79, -1, 81, -1, 83, 84, 85, 86, 87,
1189 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1190 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
1191 108, 109, 110, 111, 112, 113, 114, 115, 116, -1,
1192 118, 119, -1, 121, 122, 123, 124, 125, 0, -1,
1193 -1, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1194 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1195 22, 23, 24, 25, 26, 27, 28, 29, -1, 31,
1196 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1197 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1198 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1199 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1200 72, 73, 74, 75, 76, 77, 78, 79, -1, 81,
1201 -1, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1202 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1203 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1204 112, 113, 114, 115, 116, -1, -1, 119, -1, 121,
1205 122, 123, 124, 125, 0, -1, -1, 3, 4, 5,
1206 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1207 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1208 26, 27, 28, 29, -1, 31, 32, 33, 34, 35,
1209 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1210 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1211 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1212 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1213 76, 77, 78, 79, -1, 81, -1, 83, 84, 85,
1214 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1215 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1216 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1217 116, -1, -1, 119, -1, 121, 122, 123, 124, 125,
1218 0, -1, -1, 3, 4, 5, 6, 7, 8, 9,
1219 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1220 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1221 -1, 31, 32, 33, 34, 35, 36, -1, 38, 39,
1222 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1223 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1224 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1225 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1226 -1, 81, -1, 83, 84, 85, 86, 87, 88, 89,
1227 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1228 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1229 110, 111, 112, 113, 114, 115, 116, -1, -1, 119,
1230 -1, 121, 122, 123, 124, 125, 4, 5, 6, 7,
1231 8, 9, 10, 11, -1, -1, -1, -1, -1, 17,
1232 -1, -1, -1, -1, 22, -1, -1, -1, -1, -1,
1233 -1, 29, -1, -1, -1, -1, -1, -1, -1, 37,
1234 -1, -1, -1, -1, 4, 5, 6, 7, 8, 9,
1235 10, 11, -1, -1, -1, -1, -1, 17, -1, -1,
1236 -1, -1, 22, -1, -1, -1, -1, -1, -1, 29,
1237 -1, -1, 4, 5, 6, 7, 8, 9, 10, 11,
1238 -1, -1, -1, -1, -1, 17, 84, 85, 86, 87,
1239 22, -1, -1, -1, -1, -1, -1, 29, -1, -1,
1240 -1, -1, -1, 4, 5, 6, 7, 8, 9, 10,
1241 11, -1, -1, -1, -1, -1, 17, -1, -1, -1,
1242 -1, 22, -1, 121, 84, 85, 86, 87, 29, -1,
1243 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1244 -1, -1, -1, -1, 4, 5, 6, 7, 8, 9,
1245 10, 11, 84, 85, 86, 87, -1, 17, -1, -1,
1246 -1, 121, 22, -1, -1, -1, -1, -1, -1, 29,
1247 4, 5, 6, 7, 8, 9, 10, 11, -1, -1,
1248 -1, -1, -1, 84, 85, 86, 87, -1, 22, 121,
1249 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
1250 -1, -1, -1, -1, 17, 18, 19, -1, -1, 22,
1251 23, -1, 25, -1, 27, 28, 29, -1, -1, 32,
1252 121, -1, -1, 83, 84, 85, 86, 87, -1, -1,
1253 -1, -1, -1, -1, 47, 48, 49, -1, -1, -1,
1254 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
1255 84, 85, 86, 66, 67, 68, 69, 70, -1, -1,
1256 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1257 -1, 84, 85, 86, 87, 88, -1, 90, 91, 92,
1258 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
1259 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1260 113, 114, 115, 3, -1, -1, -1, -1, -1, -1,
1261 -1, -1, 12, -1, -1, -1, -1, 17, 18, 19,
1262 20, 21, 22, 23, -1, 25, 26, 27, 28, -1,
1263 -1, -1, 32, -1, -1, -1, -1, -1, 4, 5,
1264 6, 7, 8, 9, 10, 11, -1, 47, 48, 49,
1265 -1, 17, -1, -1, -1, -1, 22, -1, -1, -1,
1266 60, 61, -1, 29, -1, -1, 66, 67, 68, 69,
1267 70, 4, 5, 6, 7, 8, 9, 10, 11, -1,
1268 -1, -1, -1, -1, 17, -1, -1, -1, 88, 22,
1269 90, 91, 92, 93, 94, 95, 29, 97, 64, -1,
1270 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1271 110, 111, 112, 113, 114, 115, 3, -1, 84, 85,
1272 86, 87, -1, -1, -1, 12, -1, -1, -1, -1,
1273 17, 18, 19, -1, -1, 22, 23, -1, 25, -1,
1274 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
1275 -1, 84, 85, 86, 87, -1, -1, 44, -1, -1,
1276 47, 48, 49, -1, -1, -1, -1, -1, -1, -1,
1277 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
1278 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1279 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1280 -1, 88, 89, 90, 91, 92, 93, 94, 95, -1,
1281 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1282 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
1283 -1, -1, -1, -1, -1, -1, -1, -1, 12, -1,
1284 -1, -1, -1, 17, 18, 19, -1, -1, 22, 23,
1285 -1, 25, -1, 27, 28, -1, -1, -1, 32, -1,
1286 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1287 44, -1, -1, 47, 48, 49, -1, -1, -1, -1,
1288 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
1289 64, -1, 66, 67, 68, 69, 70, 4, 5, 6,
1290 7, 8, 9, 10, 11, -1, -1, -1, -1, -1,
1291 17, -1, -1, -1, 88, 22, 90, 91, 92, 93,
1292 94, 95, 29, 97, -1, -1, 100, 101, 102, 103,
1293 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1294 114, 115, 3, -1, -1, -1, -1, -1, -1, -1,
1295 -1, 12, -1, -1, -1, -1, 17, 18, 19, -1,
1296 -1, 22, 23, 24, 25, -1, 27, 28, -1, -1,
1297 -1, 32, -1, -1, -1, -1, -1, 84, 85, 86,
1298 87, -1, -1, 44, -1, -1, 47, 48, 49, -1,
1299 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
1300 61, -1, -1, -1, -1, 66, 67, 68, 69, 70,
1301 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1302 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
1303 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
1304 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1305 111, 112, 113, 114, 115, 3, -1, -1, -1, -1,
1306 -1, -1, -1, -1, 12, -1, -1, -1, -1, 17,
1307 18, 19, -1, -1, 22, 23, -1, 25, -1, 27,
1308 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
1309 -1, 39, -1, -1, -1, -1, -1, -1, -1, 47,
1310 48, 49, -1, -1, -1, -1, -1, -1, -1, -1,
1311 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
1312 68, 69, 70, 4, 5, 6, 7, 8, 9, 10,
1313 11, -1, -1, -1, -1, -1, 17, -1, -1, -1,
1314 88, 22, 90, 91, 92, 93, 94, 95, 29, 97,
1315 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
1316 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
1317 -1, -1, -1, -1, -1, -1, -1, 12, -1, -1,
1318 -1, -1, 17, 18, 19, -1, -1, 22, 23, -1,
1319 25, -1, 27, 28, -1, -1, -1, 32, -1, -1,
1320 -1, -1, -1, 84, 85, 86, 87, -1, -1, 44,
1321 -1, -1, 47, 48, 49, -1, -1, -1, -1, -1,
1322 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
1323 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
1324 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1325 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
1326 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
1327 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1328 115, 3, -1, -1, -1, -1, -1, -1, -1, -1,
1329 12, -1, -1, -1, -1, 17, 18, 19, -1, -1,
1330 22, 23, -1, 25, -1, 27, 28, -1, -1, -1,
1331 32, -1, -1, -1, -1, -1, 4, 5, 6, 7,
1332 8, 9, 10, 11, -1, 47, 48, 49, -1, 17,
1333 -1, -1, -1, -1, 22, -1, -1, -1, 60, 61,
1334 -1, 29, -1, -1, 66, 67, 68, 69, 70, -1,
1335 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1336 -1, -1, -1, -1, -1, -1, 88, 89, 90, 91,
1337 92, 93, 94, 95, -1, 97, 64, -1, 100, 101,
1338 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1339 112, 113, 114, 115, 3, -1, 84, 85, 86, 87,
1340 -1, -1, -1, 12, -1, -1, -1, -1, 17, 18,
1341 19, -1, -1, 22, 23, -1, 25, -1, 27, 28,
1342 -1, -1, -1, 32, -1, -1, -1, 3, 4, 5,
1343 6, 7, 8, 9, 10, 11, 12, -1, 47, 48,
1344 49, 17, -1, -1, -1, -1, 22, -1, -1, -1,
1345 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
1346 69, 70, 4, 5, 6, 7, 8, 9, 10, 11,
1347 -1, -1, -1, -1, -1, 17, -1, -1, -1, 88,
1348 22, 90, 91, 92, 93, 94, 95, 29, 97, -1,
1349 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1350 109, 110, 111, 112, 113, 114, 115, 3, 84, 85,
1351 86, -1, -1, -1, -1, -1, 12, -1, -1, -1,
1352 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
1353 -1, 27, 28, -1, -1, -1, 32, -1, -1, -1,
1354 -1, -1, 84, 85, 86, 87, -1, -1, -1, -1,
1355 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
1356 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
1357 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
1358 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
1359 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
1360 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
1361 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1362 3, -1, -1, -1, -1, -1, -1, -1, -1, 12,
1363 -1, -1, -1, -1, 17, 18, -1, -1, -1, 22,
1364 -1, -1, -1, -1, -1, -1, -1, -1, -1, 32,
1365 -1, -1, -1, -1, 4, 5, 6, 7, 8, 9,
1366 10, 11, -1, -1, -1, -1, 49, 17, -1, -1,
1367 -1, -1, 22, -1, -1, -1, -1, -1, -1, 29,
1368 -1, -1, -1, 66, 67, 68, 69, 70, 4, 5,
1369 6, 7, 8, 9, 10, 11, -1, -1, -1, -1,
1370 -1, 17, -1, -1, -1, 88, 22, 90, 91, 92,
1371 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
1372 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1373 113, 114, 115, 3, 84, 85, 86, 87, -1, -1,
1374 -1, -1, 12, -1, -1, -1, -1, 17, 18, -1,
1375 -1, -1, 22, -1, -1, -1, -1, -1, -1, -1,
1376 -1, -1, 32, -1, -1, -1, -1, -1, 84, 85,
1377 86, -1, -1, -1, -1, -1, -1, -1, -1, 49,
1378 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1379 -1, -1, -1, -1, -1, -1, 66, 67, 68, 69,
1380 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1381 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
1382 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
1383 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1384 110, 111, 112, 113, 114, 115, 3, -1, -1, -1,
1385 -1, -1, -1, -1, -1, 12, 31, -1, -1, -1,
1386 17, 18, -1, -1, -1, 22, -1, 42, 43, 44,
1387 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1388 55, 56, 57, 58, 59, -1, -1, -1, -1, -1,
1389 65, -1, 49, -1, -1, -1, -1, -1, -1, -1,
1390 -1, -1, -1, -1, -1, -1, -1, -1, -1, 66,
1391 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1392 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1393 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
1394 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1395 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
1396 -1, -1, -1, -1, -1, -1, -1, -1, 12, -1,
1397 -1, -1, -1, 17, 18, -1, -1, -1, 22, -1,
1398 33, -1, -1, -1, -1, -1, -1, -1, 32, 42,
1399 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1400 53, 54, 55, 56, 57, 58, 59, -1, -1, -1,
1401 -1, -1, 65, -1, -1, -1, -1, -1, -1, -1,
1402 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
1403 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1404 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
1405 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
1406 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1407 114, 115, 3, -1, -1, -1, -1, -1, -1, -1,
1408 -1, 12, -1, -1, -1, -1, 17, 18, -1, -1,
1409 -1, 22, -1, 33, -1, -1, -1, -1, -1, -1,
1410 -1, 32, 42, 43, 44, 45, 46, 47, 48, 49,
1411 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1412 -1, -1, -1, -1, -1, 65, -1, -1, -1, -1,
1413 -1, -1, -1, -1, -1, 66, 67, 68, 69, 70,
1414 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1415 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
1416 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
1417 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1418 111, 112, 113, 114, 115, 3, -1, -1, -1, -1,
1419 -1, -1, -1, -1, 12, -1, -1, -1, -1, 17,
1420 18, -1, -1, -1, 22, -1, 33, -1, -1, -1,
1421 -1, -1, -1, -1, 32, 42, 43, 44, 45, 46,
1422 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1423 57, 58, 59, -1, -1, -1, -1, -1, 65, -1,
1424 -1, -1, -1, -1, 3, -1, -1, -1, 66, 67,
1425 68, 69, 70, 12, -1, -1, -1, -1, 17, 18,
1426 -1, -1, -1, 22, -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, -1, -1,
1430 -1, -1, -1, -1, -1, 64, -1, 66, 67, 68,
1431 69, 70, -1, -1, -1, -1, -1, -1, -1, -1,
1432 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
1433 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
1434 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1435 109, 110, 111, 112, 113, 114, 115, 3, -1, -1,
1436 -1, -1, -1, -1, -1, -1, 12, -1, -1, 34,
1437 -1, 17, 18, -1, -1, -1, 22, 42, 43, 44,
1438 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1439 55, 56, 57, 58, 59, -1, -1, -1, -1, -1,
1440 65, -1, -1, 49, -1, -1, -1, -1, -1, -1,
1441 -1, -1, -1, -1, -1, -1, 3, -1, -1, -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, 3, -1, 64, -1, 66,
1448 67, 68, 69, 70, 12, -1, -1, -1, -1, 17,
1449 18, -1, -1, -1, 22, -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, -1,
1453 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
1454 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
1455 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1456 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
1457 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
1458 108, 109, 110, 111, 112, 113, 114, 115, 35, -1,
1459 -1, -1, -1, -1, -1, 42, 43, 44, 45, 46,
1460 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1461 57, 58, 59, 35, -1, -1, -1, -1, 65, -1,
1462 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1463 52, 53, 54, 55, 56, 57, 58, 59, -1, -1,
1464 -1, 39, -1, 65, 42, 43, 44, 45, 46, 47,
1465 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1466 58, 59, -1, -1, -1, -1, -1, 65, 42, 43,
1467 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1468 54, 55, 56, 57, 58, 59, -1, -1, -1, -1,
1469 -1, 65, 42, 43, 44, 45, 46, 47, 48, 49,
1470 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1471 -1, -1, -1, -1, -1, 65, 42, 43, 44, 45,
1472 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1473 56, 57, 58, 59, -1, -1, -1, -1, -1, 65,
1474 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1475 52, 53, 54, 55, 56, 57, 58, 59, -1, -1,
1476 -1, -1, -1, 65
1477 };
1478
1479 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1480 symbol of state STATE-NUM. */
1481 static const unsigned short int yystos[] =
1482 {
1483 0, 4, 5, 6, 7, 8, 9, 10, 11, 17,
1484 22, 29, 30, 31, 41, 83, 84, 85, 86, 87,
1485 88, 89, 91, 116, 121, 123, 134, 135, 136, 137,
1486 138, 156, 161, 166, 167, 168, 169, 170, 171, 172,
1487 173, 178, 181, 182, 185, 189, 190, 191, 192, 193,
1488 194, 197, 199, 200, 206, 214, 225, 226, 9, 11,
1489 3, 12, 17, 18, 22, 32, 49, 66, 67, 68,
1490 69, 70, 88, 90, 91, 92, 93, 94, 95, 97,
1491 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1492 110, 111, 112, 113, 114, 115, 131, 222, 223, 224,
1493 241, 253, 22, 84, 85, 86, 87, 190, 197, 167,
1494 30, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1495 75, 76, 77, 79, 80, 81, 82, 139, 140, 141,
1496 142, 144, 145, 146, 17, 84, 85, 121, 162, 164,
1497 191, 192, 197, 206, 215, 216, 131, 131, 131, 217,
1498 3, 6, 10, 12, 17, 157, 158, 167, 26, 123,
1499 190, 226, 44, 261, 262, 22, 83, 189, 190, 0,
1500 136, 131, 198, 221, 222, 4, 5, 6, 9, 22,
1501 174, 6, 171, 177, 31, 125, 179, 32, 32, 36,
1502 36, 221, 222, 87, 32, 131, 124, 224, 131, 131,
1503 131, 34, 183, 19, 20, 21, 121, 123, 124, 131,
1504 147, 148, 30, 0, 3, 4, 5, 6, 7, 8,
1505 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
1506 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1507 29, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1508 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1509 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1510 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1511 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1512 81, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1513 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1514 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1515 112, 113, 114, 115, 116, 119, 121, 122, 123, 124,
1516 125, 132, 151, 152, 151, 26, 119, 143, 131, 147,
1517 25, 27, 28, 32, 47, 48, 60, 61, 78, 130,
1518 131, 153, 211, 131, 131, 217, 131, 217, 164, 31,
1519 131, 35, 219, 219, 219, 219, 222, 23, 31, 190,
1520 36, 186, 36, 23, 162, 179, 186, 38, 220, 32,
1521 131, 6, 175, 6, 9, 176, 174, 32, 31, 17,
1522 87, 166, 195, 196, 197, 195, 131, 207, 208, 92,
1523 93, 94, 95, 96, 98, 99, 232, 233, 234, 247,
1524 250, 256, 257, 258, 131, 221, 184, 198, 222, 118,
1525 151, 132, 26, 27, 32, 44, 213, 153, 32, 131,
1526 153, 32, 42, 43, 44, 45, 46, 47, 48, 49,
1527 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1528 65, 129, 31, 35, 36, 202, 202, 31, 201, 202,
1529 201, 32, 131, 40, 186, 0, 3, 4, 5, 6,
1530 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1531 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1532 27, 28, 29, 31, 32, 33, 34, 35, 38, 39,
1533 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1534 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1535 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1536 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1537 81, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1538 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1539 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1540 112, 113, 114, 115, 116, 119, 121, 122, 123, 124,
1541 125, 133, 186, 187, 188, 232, 32, 31, 31, 19,
1542 23, 25, 27, 32, 39, 130, 198, 209, 210, 211,
1543 221, 220, 6, 26, 180, 222, 17, 221, 33, 34,
1544 33, 34, 40, 34, 37, 198, 237, 209, 229, 251,
1545 252, 253, 261, 198, 131, 259, 260, 198, 248, 252,
1546 37, 233, 209, 33, 131, 34, 32, 167, 212, 213,
1547 22, 33, 131, 153, 154, 155, 153, 153, 32, 121,
1548 163, 164, 165, 166, 203, 206, 215, 216, 198, 198,
1549 221, 19, 20, 21, 26, 159, 160, 209, 37, 188,
1550 37, 3, 6, 10, 12, 13, 14, 15, 16, 17,
1551 33, 227, 228, 230, 231, 22, 87, 166, 209, 209,
1552 39, 65, 129, 131, 26, 33, 222, 220, 17, 64,
1553 196, 220, 64, 209, 208, 40, 31, 40, 31, 32,
1554 24, 40, 32, 31, 34, 32, 31, 31, 33, 198,
1555 64, 131, 149, 150, 221, 33, 33, 33, 34, 35,
1556 25, 165, 35, 218, 37, 163, 219, 219, 131, 31,
1557 35, 33, 34, 229, 33, 33, 209, 209, 33, 33,
1558 33, 19, 89, 90, 109, 209, 236, 238, 239, 240,
1559 241, 262, 251, 198, 261, 184, 260, 17, 184, 249,
1560 33, 34, 153, 153, 34, 25, 35, 34, 204, 218,
1561 202, 202, 33, 230, 35, 228, 230, 40, 209, 35,
1562 220, 220, 109, 238, 17, 18, 241, 244, 32, 32,
1563 236, 34, 254, 198, 33, 33, 151, 64, 131, 25,
1564 35, 32, 198, 205, 31, 204, 230, 261, 159, 209,
1565 32, 209, 229, 64, 251, 255, 33, 31, 97, 33,
1566 35, 25, 218, 34, 31, 64, 229, 34, 34, 242,
1567 33, 34, 18, 252, 253, 32, 34, 198, 24, 32,
1568 209, 198, 235, 236, 237, 243, 262, 33, 251, 25,
1569 25, 218, 33, 245, 246, 251, 33, 34, 236, 34,
1570 33, 35, 33, 34, 235, 25, 230, 33, 251, 33
1571 };
1572
1573 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1574 static const unsigned short int yyr1[] =
1575 {
1576 0, 128, 129, 129, 129, 129, 129, 129, 129, 129,
1577 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
1578 130, 130, 130, 130, 131, 131, 131, 131, 131, 131,
1579 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
1580 131, 131, 131, 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, 132, 132, 132, 132, 132, 132, 132, 132, 132,
1587 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
1588 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
1589 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
1590 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
1591 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
1592 132, 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, 133, 133, 133,
1598 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
1599 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
1600 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
1601 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
1602 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
1603 133, 133, 133, 133, 133, 133, 133, 134, 134, 135,
1604 135, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1605 136, 136, 136, 136, 136, 137, 138, 138, 139, 139,
1606 139, 139, 139, 139, 139, 139, 140, 140, 141, 141,
1607 142, 142, 142, 143, 143, 144, 144, 145, 145, 145,
1608 146, 146, 147, 147, 147, 147, 147, 147, 147, 148,
1609 148, 149, 149, 149, 149, 150, 150, 151, 151, 152,
1610 152, 153, 153, 153, 153, 153, 153, 153, 153, 153,
1611 153, 153, 154, 154, 155, 155, 156, 157, 158, 158,
1612 158, 158, 159, 159, 159, 160, 160, 160, 160, 161,
1613 161, 161, 162, 162, 163, 163, 164, 164, 164, 164,
1614 164, 165, 165, 165, 165, 165, 166, 166, 166, 167,
1615 167, 168, 168, 168, 169, 169, 169, 170, 170, 170,
1616 171, 171, 172, 172, 172, 173, 173, 173, 173, 174,
1617 174, 174, 174, 174, 174, 175, 175, 176, 176, 176,
1618 176, 177, 177, 177, 178, 178, 179, 179, 180, 180,
1619 181, 182, 183, 183, 184, 184, 185, 185, 185, 186,
1620 187, 187, 188, 188, 189, 189, 190, 190, 191, 191,
1621 192, 192, 193, 193, 193, 193, 194, 194, 195, 195,
1622 195, 195, 196, 196, 196, 196, 197, 197, 197, 197,
1623 198, 198, 199, 200, 201, 201, 202, 203, 203, 204,
1624 204, 205, 205, 206, 207, 207, 208, 208, 209, 209,
1625 209, 209, 209, 209, 210, 210, 210, 210, 210, 210,
1626 211, 211, 212, 212, 213, 213, 213, 214, 215, 216,
1627 217, 217, 218, 218, 218, 218, 219, 219, 220, 220,
1628 220, 221, 221, 222, 222, 223, 223, 224, 224, 225,
1629 225, 226, 226, 226, 227, 227, 228, 228, 229, 230,
1630 231, 231, 231, 231, 231, 231, 231, 231, 231, 232,
1631 232, 233, 233, 233, 233, 233, 234, 234, 235, 235,
1632 235, 236, 236, 236, 236, 236, 236, 237, 237, 238,
1633 239, 240, 241, 241, 241, 241, 241, 241, 241, 241,
1634 241, 241, 242, 242, 243, 243, 244, 244, 245, 245,
1635 246, 246, 247, 248, 248, 249, 249, 249, 250, 251,
1636 251, 251, 252, 252, 253, 253, 253, 253, 253, 253,
1637 253, 253, 254, 254, 255, 255, 256, 257, 257, 258,
1638 259, 259, 260, 261, 261, 262
1639 };
1640
1641 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
1642 static const unsigned char yyr2[] =
1643 {
1644 0, 2, 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, 1, 1, 1,
1666 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1667 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1668 1, 1, 1, 1, 1, 1, 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, 1,
1671 1, 1, 1, 1, 1, 1, 1, 0, 1, 1,
1672 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1673 1, 1, 1, 1, 1, 3, 2, 3, 2, 2,
1674 1, 2, 2, 2, 1, 2, 1, 1, 1, 1,
1675 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1676 1, 1, 1, 1, 1, 1, 1, 1, 1, 6,
1677 2, 0, 1, 1, 3, 1, 3, 0, 1, 1,
1678 2, 3, 2, 3, 5, 2, 4, 1, 1, 1,
1679 1, 4, 0, 1, 1, 3, 6, 1, 1, 1,
1680 1, 1, 0, 1, 1, 1, 1, 1, 1, 3,
1681 4, 4, 1, 2, 1, 2, 1, 1, 2, 4,
1682 4, 1, 1, 1, 3, 3, 2, 2, 1, 1,
1683 1, 2, 2, 2, 1, 1, 1, 1, 1, 2,
1684 1, 1, 1, 1, 2, 1, 1, 2, 2, 0,
1685 1, 1, 2, 1, 2, 0, 1, 0, 1, 1,
1686 2, 0, 1, 2, 3, 4, 0, 4, 1, 2,
1687 2, 3, 0, 2, 1, 3, 3, 3, 4, 3,
1688 1, 2, 1, 1, 1, 2, 1, 1, 5, 7,
1689 5, 7, 6, 7, 6, 5, 1, 2, 0, 1,
1690 1, 3, 1, 2, 3, 2, 1, 2, 4, 3,
1691 3, 2, 4, 4, 1, 1, 3, 4, 5, 0,
1692 2, 2, 4, 4, 1, 3, 1, 3, 1, 4,
1693 3, 3, 2, 5, 1, 1, 1, 1, 1, 1,
1694 4, 2, 1, 2, 2, 1, 1, 2, 2, 2,
1695 0, 1, 0, 2, 7, 9, 0, 7, 0, 2,
1696 3, 0, 1, 1, 2, 1, 2, 1, 2, 4,
1697 5, 7, 8, 13, 1, 3, 2, 4, 2, 1,
1698 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1699 2, 1, 1, 1, 1, 1, 3, 6, 1, 2,
1700 1, 1, 1, 1, 2, 1, 1, 3, 4, 6,
1701 8, 5, 1, 1, 1, 1, 1, 1, 1, 1,
1702 1, 1, 0, 2, 1, 3, 1, 1, 0, 1,
1703 1, 3, 3, 6, 1, 0, 1, 1, 3, 1,
1704 1, 3, 5, 6, 1, 1, 1, 1, 1, 1,
1705 1, 1, 0, 2, 1, 3, 3, 1, 1, 3,
1706 1, 3, 4, 0, 1, 1
1707 };
1708
1709
1710 /* YYDPREC[RULE-NUM] -- Dynamic precedence of rule #RULE-NUM (0 if none). */
1711 static const unsigned char yydprec[] =
1712 {
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, 0, 0, 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, 1, 2, 0, 0, 0, 0, 0,
1750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1751 0, 2, 1, 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, 2, 1, 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 0, 0, 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, 2, 1, 0, 0, 0, 0, 0, 0, 0,
1770 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1775 0, 0, 0, 0, 0, 0
1776 };
1777
1778 /* YYMERGER[RULE-NUM] -- Index of merging function for rule #RULE-NUM. */
1779 static const unsigned char yymerger[] =
1780 {
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, 0, 0, 0, 0, 0,
1838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1843 0, 0, 0, 0, 0, 0
1844 };
1845
1846 /* YYIMMEDIATE[RULE-NUM] -- True iff rule #RULE-NUM is not to be deferred, as
1847 in the case of predicates. */
1848 static const yybool yyimmediate[] =
1849 {
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, 0, 0, 0, 0, 0,
1907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1908 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1911 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1912 0, 0, 0, 0, 0, 0
1913 };
1914
1915 /* YYCONFLP[YYPACT[STATE-NUM]] -- Pointer into YYCONFL of start of
1916 list of conflicting reductions corresponding to action entry for
1917 state STATE-NUM in yytable. 0 means no conflicts. The list in
1918 yyconfl is terminated by a rule number of 0. */
1919 static const unsigned short int yyconflp[] =
1920 {
1921 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1922 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1929 0, 0, 0, 0, 0, 7, 0, 0, 0, 0,
1930 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1931 0, 0, 0, 0, 0, 0, 261, 0, 263, 265,
1932 0, 0, 0, 0, 0, 0, 0, 0, 255, 0,
1933 0, 0, 0, 257, 0, 0, 0, 0, 0, 0,
1934 0, 0, 0, 0, 0, 269, 0, 271, 273, 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, 5,
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, 0, 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, 253, 0, 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, 0, 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, 259, 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, 267, 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, 275,
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, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1999 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2000 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2001 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2002 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2003 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2004 0, 0, 9, 0, 0, 11, 13, 15, 17, 19,
2005 21, 23, 25, 27, 29, 31, 33, 35, 37, 39,
2006 41, 43, 45, 47, 49, 51, 53, 55, 57, 59,
2007 61, 63, 65, 67, 69, 71, 73, 75, 77, 79,
2008 81, 83, 85, 87, 89, 91, 93, 95, 97, 99,
2009 101, 103, 105, 107, 109, 111, 113, 115, 117, 119,
2010 121, 123, 125, 127, 129, 131, 133, 135, 137, 139,
2011 141, 143, 145, 147, 149, 151, 153, 155, 157, 159,
2012 161, 163, 0, 165, 0, 167, 169, 171, 173, 175,
2013 177, 179, 181, 183, 185, 187, 189, 191, 193, 195,
2014 197, 199, 201, 203, 205, 207, 209, 211, 213, 215,
2015 217, 219, 221, 223, 225, 227, 229, 231, 233, 0,
2016 235, 237, 0, 239, 241, 243, 245, 247, 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, 0, 0, 0, 0, 0,
2084 0, 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, 1, 0, 0, 0, 0, 3,
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, 0, 0, 0, 0,
2163 0, 0, 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, 249, 0, 0, 0, 0,
2172 251, 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 0, 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, 0, 0, 0, 0, 0, 0,
2292 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2293 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2294 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2295 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2296 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2297 0, 0, 0, 0, 0, 0, 0, 0, 0, 277,
2298 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2299 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2300 0, 0, 0, 279
2301 };
2302
2303 /* YYCONFL[I] -- lists of conflicting rule numbers, each terminated by
2304 0, pointed into by YYCONFLP. */
2305 static const short int yyconfl[] =
2306 {
2307 0, 396, 0, 396, 0, 409, 0, 466, 0, 610,
2308 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2309 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2310 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2311 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2312 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2313 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2314 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2315 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2316 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2317 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2318 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2319 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2320 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2321 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2322 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2323 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2324 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2325 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2326 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2327 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2328 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2329 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2330 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2331 0, 610, 0, 610, 0, 610, 0, 610, 0, 396,
2332 0, 396, 0, 409, 0, 511, 0, 511, 0, 42,
2333 0, 497, 0, 497, 0, 497, 0, 396, 0, 561,
2334 0, 561, 0, 561, 0, 611, 0, 344, 0, 493,
2335 0
2336 };
2337
2338 /* Error token number */
2339 #define YYTERROR 1
2340
2341
2342
2343
2344 #undef yynerrs
2345 #define yynerrs (yystackp->yyerrcnt)
2346 #undef yychar
2347 #define yychar (yystackp->yyrawchar)
2348 #undef yylval
2349 #define yylval (yystackp->yyval)
2350 #undef yylloc
2351 #define yylloc (yystackp->yyloc)
2352 #define psi_parser_proc_nerrs yynerrs
2353 #define psi_parser_proc_char yychar
2354 #define psi_parser_proc_lval yylval
2355 #define psi_parser_proc_lloc yylloc
2356
2357 static const int YYEOF = 0;
2358 static const int YYEMPTY = -2;
2359
2360 typedef enum { yyok, yyaccept, yyabort, yyerr } YYRESULTTAG;
2361
2362 #define YYCHK(YYE) \
2363 do { \
2364 YYRESULTTAG yychk_flag = YYE; \
2365 if (yychk_flag != yyok) \
2366 return yychk_flag; \
2367 } while (0)
2368
2369 #if YYDEBUG
2370
2371 # ifndef YYFPRINTF
2372 # define YYFPRINTF fprintf
2373 # endif
2374
2375 /* This macro is provided for backward compatibility. */
2376 #ifndef YY_LOCATION_PRINT
2377 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2378 #endif
2379
2380
2381 # define YYDPRINTF(Args) \
2382 do { \
2383 if (yydebug) \
2384 YYFPRINTF Args; \
2385 } while (0)
2386
2387
2388 /*----------------------------------------.
2389 | Print this symbol's value on YYOUTPUT. |
2390 `----------------------------------------*/
2391
2392 static void
2393 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
2394 {
2395 FILE *yyo = yyoutput;
2396 YYUSE (yyo);
2397 YYUSE (P);
2398 YYUSE (tokens);
2399 YYUSE (index);
2400 if (!yyvaluep)
2401 return;
2402 YYUSE (yytype);
2403 }
2404
2405
2406 /*--------------------------------.
2407 | Print this symbol on YYOUTPUT. |
2408 `--------------------------------*/
2409
2410 static void
2411 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
2412 {
2413 YYFPRINTF (yyoutput, "%s %s (",
2414 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2415
2416 yy_symbol_value_print (yyoutput, yytype, yyvaluep, P, tokens, index);
2417 YYFPRINTF (yyoutput, ")");
2418 }
2419
2420 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2421 do { \
2422 if (yydebug) \
2423 { \
2424 YYFPRINTF (stderr, "%s ", Title); \
2425 yy_symbol_print (stderr, Type, Value, P, tokens, index); \
2426 YYFPRINTF (stderr, "\n"); \
2427 } \
2428 } while (0)
2429
2430 /* Nonzero means print parse trace. It is left uninitialized so that
2431 multiple parsers can coexist. */
2432 int yydebug;
2433
2434 struct yyGLRStack;
2435 static void yypstack (struct yyGLRStack* yystackp, size_t yyk)
2436 YY_ATTRIBUTE_UNUSED;
2437 static void yypdumpstack (struct yyGLRStack* yystackp)
2438 YY_ATTRIBUTE_UNUSED;
2439
2440 #else /* !YYDEBUG */
2441
2442 # define YYDPRINTF(Args)
2443 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2444
2445 #endif /* !YYDEBUG */
2446
2447 /* YYINITDEPTH -- initial size of the parser's stacks. */
2448 #ifndef YYINITDEPTH
2449 # define YYINITDEPTH 200
2450 #endif
2451
2452 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2453 if the built-in stack extension method is used).
2454
2455 Do not make this value too large; the results are undefined if
2456 SIZE_MAX < YYMAXDEPTH * sizeof (GLRStackItem)
2457 evaluated with infinite-precision integer arithmetic. */
2458
2459 #ifndef YYMAXDEPTH
2460 # define YYMAXDEPTH 10000
2461 #endif
2462
2463 /* Minimum number of free items on the stack allowed after an
2464 allocation. This is to allow allocation and initialization
2465 to be completed by functions that call yyexpandGLRStack before the
2466 stack is expanded, thus insuring that all necessary pointers get
2467 properly redirected to new data. */
2468 #define YYHEADROOM 2
2469
2470 #ifndef YYSTACKEXPANDABLE
2471 # define YYSTACKEXPANDABLE 1
2472 #endif
2473
2474 #if YYSTACKEXPANDABLE
2475 # define YY_RESERVE_GLRSTACK(Yystack) \
2476 do { \
2477 if (Yystack->yyspaceLeft < YYHEADROOM) \
2478 yyexpandGLRStack (Yystack); \
2479 } while (0)
2480 #else
2481 # define YY_RESERVE_GLRSTACK(Yystack) \
2482 do { \
2483 if (Yystack->yyspaceLeft < YYHEADROOM) \
2484 yyMemoryExhausted (Yystack); \
2485 } while (0)
2486 #endif
2487
2488
2489 #if YYERROR_VERBOSE
2490
2491 # ifndef yystpcpy
2492 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2493 # define yystpcpy stpcpy
2494 # else
2495 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2496 YYDEST. */
2497 static char *
2498 yystpcpy (char *yydest, const char *yysrc)
2499 {
2500 char *yyd = yydest;
2501 const char *yys = yysrc;
2502
2503 while ((*yyd++ = *yys++) != '\0')
2504 continue;
2505
2506 return yyd - 1;
2507 }
2508 # endif
2509 # endif
2510
2511 # ifndef yytnamerr
2512 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2513 quotes and backslashes, so that it's suitable for yyerror. The
2514 heuristic is that double-quoting is unnecessary unless the string
2515 contains an apostrophe, a comma, or backslash (other than
2516 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2517 null, do not copy; instead, return the length of what the result
2518 would have been. */
2519 static size_t
2520 yytnamerr (char *yyres, const char *yystr)
2521 {
2522 if (*yystr == '"')
2523 {
2524 size_t yyn = 0;
2525 char const *yyp = yystr;
2526
2527 for (;;)
2528 switch (*++yyp)
2529 {
2530 case '\'':
2531 case ',':
2532 goto do_not_strip_quotes;
2533
2534 case '\\':
2535 if (*++yyp != '\\')
2536 goto do_not_strip_quotes;
2537 /* Fall through. */
2538 default:
2539 if (yyres)
2540 yyres[yyn] = *yyp;
2541 yyn++;
2542 break;
2543
2544 case '"':
2545 if (yyres)
2546 yyres[yyn] = '\0';
2547 return yyn;
2548 }
2549 do_not_strip_quotes: ;
2550 }
2551
2552 if (! yyres)
2553 return strlen (yystr);
2554
2555 return yystpcpy (yyres, yystr) - yyres;
2556 }
2557 # endif
2558
2559 #endif /* !YYERROR_VERBOSE */
2560
2561 /** State numbers, as in LALR(1) machine */
2562 typedef int yyStateNum;
2563
2564 /** Rule numbers, as in LALR(1) machine */
2565 typedef int yyRuleNum;
2566
2567 /** Grammar symbol */
2568 typedef int yySymbol;
2569
2570 /** Item references, as in LALR(1) machine */
2571 typedef short int yyItemNum;
2572
2573 typedef struct yyGLRState yyGLRState;
2574 typedef struct yyGLRStateSet yyGLRStateSet;
2575 typedef struct yySemanticOption yySemanticOption;
2576 typedef union yyGLRStackItem yyGLRStackItem;
2577 typedef struct yyGLRStack yyGLRStack;
2578
2579 struct yyGLRState {
2580 /** Type tag: always true. */
2581 yybool yyisState;
2582 /** Type tag for yysemantics. If true, yysval applies, otherwise
2583 * yyfirstVal applies. */
2584 yybool yyresolved;
2585 /** Number of corresponding LALR(1) machine state. */
2586 yyStateNum yylrState;
2587 /** Preceding state in this stack */
2588 yyGLRState* yypred;
2589 /** Source position of the last token produced by my symbol */
2590 size_t yyposn;
2591 union {
2592 /** First in a chain of alternative reductions producing the
2593 * non-terminal corresponding to this state, threaded through
2594 * yynext. */
2595 yySemanticOption* yyfirstVal;
2596 /** Semantic value for this state. */
2597 YYSTYPE yysval;
2598 } yysemantics;
2599 };
2600
2601 struct yyGLRStateSet {
2602 yyGLRState** yystates;
2603 /** During nondeterministic operation, yylookaheadNeeds tracks which
2604 * stacks have actually needed the current lookahead. During deterministic
2605 * operation, yylookaheadNeeds[0] is not maintained since it would merely
2606 * duplicate yychar != YYEMPTY. */
2607 yybool* yylookaheadNeeds;
2608 size_t yysize, yycapacity;
2609 };
2610
2611 struct yySemanticOption {
2612 /** Type tag: always false. */
2613 yybool yyisState;
2614 /** Rule number for this reduction */
2615 yyRuleNum yyrule;
2616 /** The last RHS state in the list of states to be reduced. */
2617 yyGLRState* yystate;
2618 /** The lookahead for this reduction. */
2619 int yyrawchar;
2620 YYSTYPE yyval;
2621 /** Next sibling in chain of options. To facilitate merging,
2622 * options are chained in decreasing order by address. */
2623 yySemanticOption* yynext;
2624 };
2625
2626 /** Type of the items in the GLR stack. The yyisState field
2627 * indicates which item of the union is valid. */
2628 union yyGLRStackItem {
2629 yyGLRState yystate;
2630 yySemanticOption yyoption;
2631 };
2632
2633 struct yyGLRStack {
2634 int yyerrState;
2635
2636
2637 int yyerrcnt;
2638 int yyrawchar;
2639 YYSTYPE yyval;
2640
2641 YYJMP_BUF yyexception_buffer;
2642 yyGLRStackItem* yyitems;
2643 yyGLRStackItem* yynextFree;
2644 size_t yyspaceLeft;
2645 yyGLRState* yysplitPoint;
2646 yyGLRState* yylastDeleted;
2647 yyGLRStateSet yytops;
2648 };
2649
2650 #if YYSTACKEXPANDABLE
2651 static void yyexpandGLRStack (yyGLRStack* yystackp);
2652 #endif
2653
2654 static _Noreturn void
2655 yyFail (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char* yymsg)
2656 {
2657 if (yymsg != YY_NULLPTR)
2658 yyerror (P, tokens, index, yymsg);
2659 YYLONGJMP (yystackp->yyexception_buffer, 1);
2660 }
2661
2662 static _Noreturn void
2663 yyMemoryExhausted (yyGLRStack* yystackp)
2664 {
2665 YYLONGJMP (yystackp->yyexception_buffer, 2);
2666 }
2667
2668 #if YYDEBUG || YYERROR_VERBOSE
2669 /** A printable representation of TOKEN. */
2670 static inline const char*
2671 yytokenName (yySymbol yytoken)
2672 {
2673 if (yytoken == YYEMPTY)
2674 return "";
2675
2676 return yytname[yytoken];
2677 }
2678 #endif
2679
2680 /** Fill in YYVSP[YYLOW1 .. YYLOW0-1] from the chain of states starting
2681 * at YYVSP[YYLOW0].yystate.yypred. Leaves YYVSP[YYLOW1].yystate.yypred
2682 * containing the pointer to the next state in the chain. */
2683 static void yyfillin (yyGLRStackItem *, int, int) YY_ATTRIBUTE_UNUSED;
2684 static void
2685 yyfillin (yyGLRStackItem *yyvsp, int yylow0, int yylow1)
2686 {
2687 int i;
2688 yyGLRState *s = yyvsp[yylow0].yystate.yypred;
2689 for (i = yylow0-1; i >= yylow1; i -= 1)
2690 {
2691 #if YYDEBUG
2692 yyvsp[i].yystate.yylrState = s->yylrState;
2693 #endif
2694 yyvsp[i].yystate.yyresolved = s->yyresolved;
2695 if (s->yyresolved)
2696 yyvsp[i].yystate.yysemantics.yysval = s->yysemantics.yysval;
2697 else
2698 /* The effect of using yysval or yyloc (in an immediate rule) is
2699 * undefined. */
2700 yyvsp[i].yystate.yysemantics.yyfirstVal = YY_NULLPTR;
2701 s = yyvsp[i].yystate.yypred = s->yypred;
2702 }
2703 }
2704
2705 /* Do nothing if YYNORMAL or if *YYLOW <= YYLOW1. Otherwise, fill in
2706 * YYVSP[YYLOW1 .. *YYLOW-1] as in yyfillin and set *YYLOW = YYLOW1.
2707 * For convenience, always return YYLOW1. */
2708 static inline int yyfill (yyGLRStackItem *, int *, int, yybool)
2709 YY_ATTRIBUTE_UNUSED;
2710 static inline int
2711 yyfill (yyGLRStackItem *yyvsp, int *yylow, int yylow1, yybool yynormal)
2712 {
2713 if (!yynormal && yylow1 < *yylow)
2714 {
2715 yyfillin (yyvsp, *yylow, yylow1);
2716 *yylow = yylow1;
2717 }
2718 return yylow1;
2719 }
2720
2721 /** Perform user action for rule number YYN, with RHS length YYRHSLEN,
2722 * and top stack item YYVSP. YYLVALP points to place to put semantic
2723 * value ($$), and yylocp points to place for location information
2724 * (@$). Returns yyok for normal return, yyaccept for YYACCEPT,
2725 * yyerr for YYERROR, yyabort for YYABORT. */
2726 static YYRESULTTAG
2727 yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp,
2728 yyGLRStack* yystackp,
2729 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
2730 {
2731 yybool yynormal YY_ATTRIBUTE_UNUSED = (yystackp->yysplitPoint == YY_NULLPTR);
2732 int yylow;
2733 YYUSE (yyvalp);
2734 YYUSE (P);
2735 YYUSE (tokens);
2736 YYUSE (index);
2737 YYUSE (yyrhslen);
2738 # undef yyerrok
2739 # define yyerrok (yystackp->yyerrState = 0)
2740 # undef YYACCEPT
2741 # define YYACCEPT return yyaccept
2742 # undef YYABORT
2743 # define YYABORT return yyabort
2744 # undef YYERROR
2745 # define YYERROR return yyerrok, yyerr
2746 # undef YYRECOVERING
2747 # define YYRECOVERING() (yystackp->yyerrState != 0)
2748 # undef yyclearin
2749 # define yyclearin (yychar = YYEMPTY)
2750 # undef YYFILL
2751 # define YYFILL(N) yyfill (yyvsp, &yylow, N, yynormal)
2752 # undef YYBACKUP
2753 # define YYBACKUP(Token, Value) \
2754 return yyerror (P, tokens, index, YY_("syntax error: cannot back up")), \
2755 yyerrok, yyerr
2756
2757 yylow = 1;
2758 if (yyrhslen == 0)
2759 *yyvalp = yyval_default;
2760 else
2761 *yyvalp = yyvsp[YYFILL (1-yyrhslen)].yystate.yysemantics.yysval;
2762 switch (yyn)
2763 {
2764 case 284:
2765 #line 398 "src/parser_proc_grammar.y" /* glr.c:816 */
2766 {
2767 if ((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
2768 psi_cpp_exp_exec((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), P->preproc, PSI_DATA(P));
2769 psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2770 }
2771 }
2772 #line 2773 "src/parser_proc.c" /* glr.c:816 */
2773 break;
2774
2775 case 285:
2776 #line 404 "src/parser_proc_grammar.y" /* glr.c:816 */
2777 {
2778 if (P->file.ln) {
2779 P->error(PSI_DATA(P), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), PSI_WARNING,
2780 "Extra 'lib \"%s\"' statement has no effect", (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text);
2781 } else {
2782 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);
2783 }
2784 }
2785 #line 2786 "src/parser_proc.c" /* glr.c:816 */
2786 break;
2787
2788 case 286:
2789 #line 412 "src/parser_proc_grammar.y" /* glr.c:816 */
2790 {
2791 psi_parser_proc_add_const(P, (*(struct psi_const **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2792 }
2793 #line 2794 "src/parser_proc.c" /* glr.c:816 */
2794 break;
2795
2796 case 287:
2797 #line 415 "src/parser_proc_grammar.y" /* glr.c:816 */
2798 {
2799 psi_parser_proc_add_decl(P, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2800 }
2801 #line 2802 "src/parser_proc.c" /* glr.c:816 */
2802 break;
2803
2804 case 290:
2805 #line 420 "src/parser_proc_grammar.y" /* glr.c:816 */
2806 {
2807 psi_parser_proc_add_typedef(P, (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2808 }
2809 #line 2810 "src/parser_proc.c" /* glr.c:816 */
2810 break;
2811
2812 case 291:
2813 #line 423 "src/parser_proc_grammar.y" /* glr.c:816 */
2814 {
2815 psi_parser_proc_add_struct(P, (*(struct psi_decl_struct **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2816 }
2817 #line 2818 "src/parser_proc.c" /* glr.c:816 */
2818 break;
2819
2820 case 292:
2821 #line 426 "src/parser_proc_grammar.y" /* glr.c:816 */
2822 {
2823 psi_parser_proc_add_union(P, (*(struct psi_decl_union **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2824 }
2825 #line 2826 "src/parser_proc.c" /* glr.c:816 */
2826 break;
2827
2828 case 293:
2829 #line 429 "src/parser_proc_grammar.y" /* glr.c:816 */
2830 {
2831 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2832 }
2833 #line 2834 "src/parser_proc.c" /* glr.c:816 */
2834 break;
2835
2836 case 294:
2837 #line 432 "src/parser_proc_grammar.y" /* glr.c:816 */
2838 {
2839 psi_parser_proc_add_impl(P, (*(struct psi_impl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2840 }
2841 #line 2842 "src/parser_proc.c" /* glr.c:816 */
2842 break;
2843
2844 case 295:
2845 #line 438 "src/parser_proc_grammar.y" /* glr.c:816 */
2846 {
2847 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
2848 }
2849 #line 2850 "src/parser_proc.c" /* glr.c:816 */
2850 break;
2851
2852 case 296:
2853 #line 444 "src/parser_proc_grammar.y" /* glr.c:816 */
2854 {
2855 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
2856 }
2857 #line 2858 "src/parser_proc.c" /* glr.c:816 */
2858 break;
2859
2860 case 297:
2861 #line 447 "src/parser_proc_grammar.y" /* glr.c:816 */
2862 {
2863 (*(struct psi_cpp_exp **)(&(*yyvalp))) = (*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
2864 }
2865 #line 2866 "src/parser_proc.c" /* glr.c:816 */
2866 break;
2867
2868 case 298:
2869 #line 453 "src/parser_proc_grammar.y" /* glr.c:816 */
2870 {
2871 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
2872 struct psi_token *msg = NULL;
2873
2874 if (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0, &msg)) {
2875 size_t index = 1;
2876 struct psi_token *next;
2877
2878 msg = psi_token_copy(msg);
2879 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), index++, &next)) {
2880 struct psi_token *old = msg;
2881 msg = psi_token_cat(" ", 2, msg, next);
2882 free(old);
2883 }
2884 }
2885 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2886
2887 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, msg);
2888 } else {
2889 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, NULL);
2890 }
2891 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2892 }
2893 #line 2894 "src/parser_proc.c" /* glr.c:816 */
2894 break;
2895
2896 case 299:
2897 #line 476 "src/parser_proc_grammar.y" /* glr.c:816 */
2898 {
2899 (*(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))));
2900 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2901 }
2902 #line 2903 "src/parser_proc.c" /* glr.c:816 */
2903 break;
2904
2905 case 300:
2906 #line 480 "src/parser_proc_grammar.y" /* glr.c:816 */
2907 {
2908 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL);
2909 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2910 }
2911 #line 2912 "src/parser_proc.c" /* glr.c:816 */
2912 break;
2913
2914 case 301:
2915 #line 484 "src/parser_proc_grammar.y" /* glr.c:816 */
2916 {
2917 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
2918 (*(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))));
2919 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2920 }
2921 #line 2922 "src/parser_proc.c" /* glr.c:816 */
2922 break;
2923
2924 case 302:
2925 #line 489 "src/parser_proc_grammar.y" /* glr.c:816 */
2926 {
2927 (*(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)));
2928 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2929 }
2930 #line 2931 "src/parser_proc.c" /* glr.c:816 */
2931 break;
2932
2933 case 303:
2934 #line 493 "src/parser_proc_grammar.y" /* glr.c:816 */
2935 {
2936 (*(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)));
2937 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2938 }
2939 #line 2940 "src/parser_proc.c" /* glr.c:816 */
2940 break;
2941
2942 case 304:
2943 #line 497 "src/parser_proc_grammar.y" /* glr.c:816 */
2944 {
2945 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL);
2946 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2947 }
2948 #line 2949 "src/parser_proc.c" /* glr.c:816 */
2949 break;
2950
2951 case 305:
2952 #line 501 "src/parser_proc_grammar.y" /* glr.c:816 */
2953 {
2954 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2955 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
2956 }
2957 #line 2958 "src/parser_proc.c" /* glr.c:816 */
2958 break;
2959
2960 case 329:
2961 #line 555 "src/parser_proc_grammar.y" /* glr.c:816 */
2962 {
2963 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
2964 (*(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);
2965 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
2966 }
2967 #line 2968 "src/parser_proc.c" /* glr.c:816 */
2968 break;
2969
2970 case 330:
2971 #line 560 "src/parser_proc_grammar.y" /* glr.c:816 */
2972 {
2973 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
2974 (*(struct psi_cpp_macro_decl **)(&(*yyvalp))) = psi_cpp_macro_decl_init(NULL, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), NULL);
2975 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2976 }
2977 #line 2978 "src/parser_proc.c" /* glr.c:816 */
2978 break;
2979
2980 case 331:
2981 #line 568 "src/parser_proc_grammar.y" /* glr.c:816 */
2982 {
2983 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL);
2984 }
2985 #line 2986 "src/parser_proc.c" /* glr.c:816 */
2986 break;
2987
2988 case 332:
2989 #line 571 "src/parser_proc_grammar.y" /* glr.c:816 */
2990 {
2991 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL); /* FIXME */
2992 }
2993 #line 2994 "src/parser_proc.c" /* glr.c:816 */
2994 break;
2995
2996 case 334:
2997 #line 575 "src/parser_proc_grammar.y" /* glr.c:816 */
2998 {
2999 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3000 }
3001 #line 3002 "src/parser_proc.c" /* glr.c:816 */
3002 break;
3003
3004 case 335:
3005 #line 581 "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(psi_plist_init((psi_plist_dtor) psi_token_free), &(*(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 336:
3015 #line 586 "src/parser_proc_grammar.y" /* glr.c:816 */
3016 {
3017 (*(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)));
3018 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3019 (*(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)));
3020 }
3021 #line 3022 "src/parser_proc.c" /* glr.c:816 */
3022 break;
3023
3024 case 337:
3025 #line 594 "src/parser_proc_grammar.y" /* glr.c:816 */
3026 {
3027 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3028 }
3029 #line 3030 "src/parser_proc.c" /* glr.c:816 */
3030 break;
3031
3032 case 339:
3033 #line 601 "src/parser_proc_grammar.y" /* glr.c:816 */
3034 {
3035 (*(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)));
3036 (*(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)));
3037 }
3038 #line 3039 "src/parser_proc.c" /* glr.c:816 */
3039 break;
3040
3041 case 340:
3042 #line 605 "src/parser_proc_grammar.y" /* glr.c:816 */
3043 {
3044 (*(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)));
3045 (*(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)));
3046 }
3047 #line 3048 "src/parser_proc.c" /* glr.c:816 */
3048 break;
3049
3050 case 341:
3051 #line 612 "src/parser_proc_grammar.y" /* glr.c:816 */
3052 {
3053 (*(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)));
3054 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3055 }
3056 #line 3057 "src/parser_proc.c" /* glr.c:816 */
3057 break;
3058
3059 case 342:
3060 #line 616 "src/parser_proc_grammar.y" /* glr.c:816 */
3061 {
3062 (*(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)));
3063 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3064 }
3065 #line 3066 "src/parser_proc.c" /* glr.c:816 */
3066 break;
3067
3068 case 343:
3069 #line 620 "src/parser_proc_grammar.y" /* glr.c:816 */
3070 {
3071 (*(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)));
3072 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3073 }
3074 #line 3075 "src/parser_proc.c" /* glr.c:816 */
3075 break;
3076
3077 case 344:
3078 #line 624 "src/parser_proc_grammar.y" /* glr.c:816 */
3079 {
3080 (*(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)));
3081 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3082 }
3083 #line 3084 "src/parser_proc.c" /* glr.c:816 */
3084 break;
3085
3086 case 345:
3087 #line 629 "src/parser_proc_grammar.y" /* glr.c:816 */
3088 {
3089 {
3090 uint8_t exists;
3091
3092 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3093 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3094 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8, &exists, 0));
3095 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3096 }
3097 }
3098 #line 3099 "src/parser_proc.c" /* glr.c:816 */
3099 break;
3100
3101 case 346:
3102 #line 639 "src/parser_proc_grammar.y" /* glr.c:816 */
3103 {
3104 {
3105 uint8_t exists;
3106
3107 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3108 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3109 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8, &exists, 0));
3110 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3111 }
3112 }
3113 #line 3114 "src/parser_proc.c" /* glr.c:816 */
3114 break;
3115
3116 case 347:
3117 #line 649 "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, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->flags));
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 348:
3127 #line 654 "src/parser_proc_grammar.y" /* glr.c:816 */
3128 {
3129 (*(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));
3130 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3131 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3132 }
3133 #line 3134 "src/parser_proc.c" /* glr.c:816 */
3134 break;
3135
3136 case 349:
3137 #line 659 "src/parser_proc_grammar.y" /* glr.c:816 */
3138 {
3139 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3140 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
3141 }
3142 #line 3143 "src/parser_proc.c" /* glr.c:816 */
3143 break;
3144
3145 case 350:
3146 #line 663 "src/parser_proc_grammar.y" /* glr.c:816 */
3147 {
3148 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3149 (*(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));
3150 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3151 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3152 }
3153 #line 3154 "src/parser_proc.c" /* glr.c:816 */
3154 break;
3155
3156 case 351:
3157 #line 669 "src/parser_proc_grammar.y" /* glr.c:816 */
3158 {
3159 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3160 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_FUNCTION,
3161 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));
3162 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3163 }
3164 #line 3165 "src/parser_proc.c" /* glr.c:816 */
3165 break;
3166
3167 case 352:
3168 #line 678 "src/parser_proc_grammar.y" /* glr.c:816 */
3169 {
3170 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3171 }
3172 #line 3173 "src/parser_proc.c" /* glr.c:816 */
3173 break;
3174
3175 case 354:
3176 #line 685 "src/parser_proc_grammar.y" /* glr.c:816 */
3177 {
3178 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_num_exp_free),
3179 &(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3180 }
3181 #line 3182 "src/parser_proc.c" /* glr.c:816 */
3182 break;
3183
3184 case 355:
3185 #line 689 "src/parser_proc_grammar.y" /* glr.c:816 */
3186 {
3187 (*(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)));
3188 }
3189 #line 3190 "src/parser_proc.c" /* glr.c:816 */
3190 break;
3191
3192 case 356:
3193 #line 695 "src/parser_proc_grammar.y" /* glr.c:816 */
3194 {
3195 (*(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)));
3196 (*(struct psi_const **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3197 }
3198 #line 3199 "src/parser_proc.c" /* glr.c:816 */
3199 break;
3200
3201 case 357:
3202 #line 702 "src/parser_proc_grammar.y" /* glr.c:816 */
3203 {
3204 (*(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);
3205 }
3206 #line 3207 "src/parser_proc.c" /* glr.c:816 */
3207 break;
3208
3209 case 362:
3210 #line 715 "src/parser_proc_grammar.y" /* glr.c:816 */
3211 {
3212 (*(struct psi_impl_def_val **)(&(*yyvalp))) = NULL;
3213 }
3214 #line 3215 "src/parser_proc.c" /* glr.c:816 */
3215 break;
3216
3217 case 363:
3218 #line 718 "src/parser_proc_grammar.y" /* glr.c:816 */
3219 {
3220 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)) {
3221 impl_val res = {0};
3222 token_t type = psi_num_exp_exec((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), &res, NULL, &P->preproc->defs);
3223
3224 if (type == PSI_T_FLOAT || type == PSI_T_DOUBLE) {
3225 (*(struct psi_impl_def_val **)(&(*yyvalp))) = psi_impl_def_val_init(type, NULL);
3226 } else {
3227 (*(struct psi_impl_def_val **)(&(*yyvalp))) = psi_impl_def_val_init(PSI_T_INT, NULL);
3228 }
3229
3230 switch (type) {
3231 case PSI_T_UINT8: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u8; break;
3232 case PSI_T_UINT16: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u16; break;
3233 case PSI_T_UINT32: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u32; break;
3234 case PSI_T_UINT64: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u64; break; /* FIXME */
3235 case PSI_T_INT8: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i8; break;
3236 case PSI_T_INT16: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i16; break;
3237 case PSI_T_INT32: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i32; break;
3238 case PSI_T_INT64: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i64; break;
3239 case PSI_T_FLOAT: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.dval = res.fval; break;
3240 case PSI_T_DOUBLE: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.dval = res.dval; break;
3241 default:
3242 assert(0);
3243
3244 }
3245 } else {
3246 (*(struct psi_impl_def_val **)(&(*yyvalp))) = NULL;
3247 }
3248 psi_num_exp_free(&(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3249 }
3250 #line 3251 "src/parser_proc.c" /* glr.c:816 */
3251 break;
3252
3253 case 364:
3254 #line 749 "src/parser_proc_grammar.y" /* glr.c:816 */
3255 {
3256 (*(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);
3257 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3258 }
3259 #line 3260 "src/parser_proc.c" /* glr.c:816 */
3260 break;
3261
3262 case 369:
3263 #line 763 "src/parser_proc_grammar.y" /* glr.c:816 */
3264 {
3265 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3266 }
3267 #line 3268 "src/parser_proc.c" /* glr.c:816 */
3268 break;
3269
3270 case 370:
3271 #line 766 "src/parser_proc_grammar.y" /* glr.c:816 */
3272 {
3273 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3274 psi_decl_type_init(PSI_T_VOID, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->text),
3275 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text, 0, 0)
3276 );
3277 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3278 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3279 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3280 }
3281 #line 3282 "src/parser_proc.c" /* glr.c:816 */
3282 break;
3283
3284 case 371:
3285 #line 775 "src/parser_proc_grammar.y" /* glr.c:816 */
3286 {
3287 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3288 }
3289 #line 3290 "src/parser_proc.c" /* glr.c:816 */
3290 break;
3291
3292 case 372:
3293 #line 781 "src/parser_proc_grammar.y" /* glr.c:816 */
3294 {
3295 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3296 }
3297 #line 3298 "src/parser_proc.c" /* glr.c:816 */
3298 break;
3299
3300 case 373:
3301 #line 784 "src/parser_proc_grammar.y" /* glr.c:816 */
3302 {
3303 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3304 }
3305 #line 3306 "src/parser_proc.c" /* glr.c:816 */
3306 break;
3307
3308 case 374:
3309 #line 790 "src/parser_proc_grammar.y" /* glr.c:816 */
3310 {
3311 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3312 }
3313 #line 3314 "src/parser_proc.c" /* glr.c:816 */
3314 break;
3315
3316 case 375:
3317 #line 793 "src/parser_proc_grammar.y" /* glr.c:816 */
3318 {
3319 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3320 }
3321 #line 3322 "src/parser_proc.c" /* glr.c:816 */
3322 break;
3323
3324 case 377:
3325 #line 800 "src/parser_proc_grammar.y" /* glr.c:816 */
3326 {
3327 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3328 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
3329 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
3330 );
3331 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
3332 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3333 }
3334 #line 3335 "src/parser_proc.c" /* glr.c:816 */
3335 break;
3336
3337 case 378:
3338 #line 808 "src/parser_proc_grammar.y" /* glr.c:816 */
3339 {
3340 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3341 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3342 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->name),
3343 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0, 0)
3344 );
3345 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3346 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->token);
3347 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3348 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3349 }
3350 #line 3351 "src/parser_proc.c" /* glr.c:816 */
3351 break;
3352
3353 case 379:
3354 #line 819 "src/parser_proc_grammar.y" /* glr.c:816 */
3355 {
3356 (*(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)));
3357 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
3358 (*(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)));
3359 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3360 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
3361 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
3362 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
3363 }
3364 #line 3365 "src/parser_proc.c" /* glr.c:816 */
3365 break;
3366
3367 case 380:
3368 #line 828 "src/parser_proc_grammar.y" /* glr.c:816 */
3369 {
3370 (*(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)));
3371 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
3372 (*(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)));
3373 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3374 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
3375 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
3376 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
3377 }
3378 #line 3379 "src/parser_proc.c" /* glr.c:816 */
3379 break;
3380
3381 case 382:
3382 #line 841 "src/parser_proc_grammar.y" /* glr.c:816 */
3383 {
3384 (*(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));
3385 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
3386 }
3387 #line 3388 "src/parser_proc.c" /* glr.c:816 */
3388 break;
3389
3390 case 383:
3391 #line 845 "src/parser_proc_grammar.y" /* glr.c:816 */
3392 {
3393 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3394 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->name),
3395 psi_decl_var_init(NULL, 0, 0)
3396 );
3397 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
3398 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
3399 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3400 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3401 }
3402 #line 3403 "src/parser_proc.c" /* glr.c:816 */
3403 break;
3404
3405 case 384:
3406 #line 855 "src/parser_proc_grammar.y" /* glr.c:816 */
3407 {
3408 (*(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));
3409 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3410 (*(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)));
3411 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3412 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
3413 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
3414 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
3415 }
3416 #line 3417 "src/parser_proc.c" /* glr.c:816 */
3417 break;
3418
3419 case 385:
3420 #line 864 "src/parser_proc_grammar.y" /* glr.c:816 */
3421 {
3422 (*(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));
3423 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3424 (*(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)));
3425 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3426 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
3427 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
3428 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
3429 }
3430 #line 3431 "src/parser_proc.c" /* glr.c:816 */
3431 break;
3432
3433 case 386:
3434 #line 876 "src/parser_proc_grammar.y" /* glr.c:816 */
3435 {
3436 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3437 }
3438 #line 3439 "src/parser_proc.c" /* glr.c:816 */
3439 break;
3440
3441 case 387:
3442 #line 879 "src/parser_proc_grammar.y" /* glr.c:816 */
3443 {
3444 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3445 }
3446 #line 3447 "src/parser_proc.c" /* glr.c:816 */
3447 break;
3448
3449 case 389:
3450 #line 886 "src/parser_proc_grammar.y" /* glr.c:816 */
3451 {
3452 (*(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);
3453 (*(struct psi_decl_type **)(&(*yyvalp)))->token = (*(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 391:
3459 #line 894 "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 392:
3469 #line 899 "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 393:
3479 #line 904 "src/parser_proc_grammar.y" /* glr.c:816 */
3480 {
3481 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3482 (*(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);
3483 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3484 }
3485 #line 3486 "src/parser_proc.c" /* glr.c:816 */
3486 break;
3487
3488 case 396:
3489 #line 914 "src/parser_proc_grammar.y" /* glr.c:816 */
3490 {
3491 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3492 }
3493 #line 3494 "src/parser_proc.c" /* glr.c:816 */
3494 break;
3495
3496 case 397:
3497 #line 920 "src/parser_proc_grammar.y" /* glr.c:816 */
3498 {
3499 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3500 }
3501 #line 3502 "src/parser_proc.c" /* glr.c:816 */
3502 break;
3503
3504 case 398:
3505 #line 923 "src/parser_proc_grammar.y" /* glr.c:816 */
3506 {
3507 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3508 }
3509 #line 3510 "src/parser_proc.c" /* glr.c:816 */
3510 break;
3511
3512 case 399:
3513 #line 926 "src/parser_proc_grammar.y" /* glr.c:816 */
3514 {
3515 (*(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)));
3516 }
3517 #line 3518 "src/parser_proc.c" /* glr.c:816 */
3518 break;
3519
3520 case 402:
3521 #line 937 "src/parser_proc_grammar.y" /* glr.c:816 */
3522 {
3523 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3524 }
3525 #line 3526 "src/parser_proc.c" /* glr.c:816 */
3526 break;
3527
3528 case 403:
3529 #line 940 "src/parser_proc_grammar.y" /* glr.c:816 */
3530 {
3531 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3532 }
3533 #line 3534 "src/parser_proc.c" /* glr.c:816 */
3534 break;
3535
3536 case 404:
3537 #line 943 "src/parser_proc_grammar.y" /* glr.c:816 */
3538 {
3539 (*(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)));
3540 }
3541 #line 3542 "src/parser_proc.c" /* glr.c:816 */
3542 break;
3543
3544 case 405:
3545 #line 949 "src/parser_proc_grammar.y" /* glr.c:816 */
3546 {
3547 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3548 }
3549 #line 3550 "src/parser_proc.c" /* glr.c:816 */
3550 break;
3551
3552 case 406:
3553 #line 952 "src/parser_proc_grammar.y" /* glr.c:816 */
3554 {
3555 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3556 }
3557 #line 3558 "src/parser_proc.c" /* glr.c:816 */
3558 break;
3559
3560 case 407:
3561 #line 955 "src/parser_proc_grammar.y" /* glr.c:816 */
3562 {
3563 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3564 (*(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)));
3565 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3566 } else {
3567 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3568 }
3569 }
3570 #line 3571 "src/parser_proc.c" /* glr.c:816 */
3571 break;
3572
3573 case 408:
3574 #line 963 "src/parser_proc_grammar.y" /* glr.c:816 */
3575 {
3576 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3577 (*(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)));
3578 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3579 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3580 } else {
3581 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3582 }
3583 }
3584 #line 3585 "src/parser_proc.c" /* glr.c:816 */
3585 break;
3586
3587 case 409:
3588 #line 975 "src/parser_proc_grammar.y" /* glr.c:816 */
3589 {
3590 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3591 }
3592 #line 3593 "src/parser_proc.c" /* glr.c:816 */
3593 break;
3594
3595 case 410:
3596 #line 978 "src/parser_proc_grammar.y" /* glr.c:816 */
3597 {
3598 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3599 }
3600 #line 3601 "src/parser_proc.c" /* glr.c:816 */
3601 break;
3602
3603 case 411:
3604 #line 981 "src/parser_proc_grammar.y" /* glr.c:816 */
3605 {
3606 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3607 }
3608 #line 3609 "src/parser_proc.c" /* glr.c:816 */
3609 break;
3610
3611 case 412:
3612 #line 984 "src/parser_proc_grammar.y" /* glr.c:816 */
3613 {
3614 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3615 (*(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)));
3616 } else {
3617 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3618 }
3619 }
3620 #line 3621 "src/parser_proc.c" /* glr.c:816 */
3621 break;
3622
3623 case 413:
3624 #line 991 "src/parser_proc_grammar.y" /* glr.c:816 */
3625 {
3626 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3627 }
3628 #line 3629 "src/parser_proc.c" /* glr.c:816 */
3629 break;
3630
3631 case 414:
3632 #line 994 "src/parser_proc_grammar.y" /* glr.c:816 */
3633 {
3634 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3635 (*(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)));
3636 } else {
3637 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3638 }
3639 }
3640 #line 3641 "src/parser_proc.c" /* glr.c:816 */
3641 break;
3642
3643 case 415:
3644 #line 1004 "src/parser_proc_grammar.y" /* glr.c:816 */
3645 {
3646 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3647 }
3648 #line 3649 "src/parser_proc.c" /* glr.c:816 */
3649 break;
3650
3651 case 417:
3652 #line 1010 "src/parser_proc_grammar.y" /* glr.c:816 */
3653 {
3654 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3655 }
3656 #line 3657 "src/parser_proc.c" /* glr.c:816 */
3657 break;
3658
3659 case 421:
3660 #line 1019 "src/parser_proc_grammar.y" /* glr.c:816 */
3661 {
3662 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3663 }
3664 #line 3665 "src/parser_proc.c" /* glr.c:816 */
3665 break;
3666
3667 case 422:
3668 #line 1022 "src/parser_proc_grammar.y" /* glr.c:816 */
3669 {
3670 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3671 }
3672 #line 3673 "src/parser_proc.c" /* glr.c:816 */
3673 break;
3674
3675 case 423:
3676 #line 1025 "src/parser_proc_grammar.y" /* glr.c:816 */
3677 {
3678 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3679 (*(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)));
3680 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3681 } else {
3682 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3683 }
3684 }
3685 #line 3686 "src/parser_proc.c" /* glr.c:816 */
3686 break;
3687
3688 case 424:
3689 #line 1036 "src/parser_proc_grammar.y" /* glr.c:816 */
3690 {
3691 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3692 }
3693 #line 3694 "src/parser_proc.c" /* glr.c:816 */
3694 break;
3695
3696 case 425:
3697 #line 1039 "src/parser_proc_grammar.y" /* glr.c:816 */
3698 {
3699 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3700 }
3701 #line 3702 "src/parser_proc.c" /* glr.c:816 */
3702 break;
3703
3704 case 431:
3705 #line 1059 "src/parser_proc_grammar.y" /* glr.c:816 */
3706 {
3707 psi_decl_arg_free(&(*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3708 }
3709 #line 3710 "src/parser_proc.c" /* glr.c:816 */
3710 break;
3711
3712 case 433:
3713 #line 1066 "src/parser_proc_grammar.y" /* glr.c:816 */
3714 {
3715 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3716 }
3717 #line 3718 "src/parser_proc.c" /* glr.c:816 */
3718 break;
3719
3720 case 434:
3721 #line 1072 "src/parser_proc_grammar.y" /* glr.c:816 */
3722 {
3723 (*(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)));
3724 }
3725 #line 3726 "src/parser_proc.c" /* glr.c:816 */
3726 break;
3727
3728 case 435:
3729 #line 1075 "src/parser_proc_grammar.y" /* glr.c:816 */
3730 {
3731 (*(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)));
3732 }
3733 #line 3734 "src/parser_proc.c" /* glr.c:816 */
3734 break;
3735
3736 case 436:
3737 #line 1081 "src/parser_proc_grammar.y" /* glr.c:816 */
3738 {
3739 psi_decl_free(&(*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3740 }
3741 #line 3742 "src/parser_proc.c" /* glr.c:816 */
3742 break;
3743
3744 case 437:
3745 #line 1084 "src/parser_proc_grammar.y" /* glr.c:816 */
3746 {
3747 psi_decl_free(&(*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3748 }
3749 #line 3750 "src/parser_proc.c" /* glr.c:816 */
3750 break;
3751
3752 case 438:
3753 #line 1087 "src/parser_proc_grammar.y" /* glr.c:816 */
3754 {
3755 psi_decl_free(&(*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3756 }
3757 #line 3758 "src/parser_proc.c" /* glr.c:816 */
3758 break;
3759
3760 case 445:
3761 #line 1108 "src/parser_proc_grammar.y" /* glr.c:816 */
3762 {
3763 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3764 (*(struct psi_decl **)(&(*yyvalp)))->abi = psi_decl_abi_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
3765 }
3766 #line 3767 "src/parser_proc.c" /* glr.c:816 */
3767 break;
3768
3769 case 448:
3770 #line 1120 "src/parser_proc_grammar.y" /* glr.c:816 */
3771 {
3772 (*(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)));
3773 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3774 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3775 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3776 }
3777 }
3778 #line 3779 "src/parser_proc.c" /* glr.c:816 */
3779 break;
3780
3781 case 449:
3782 #line 1127 "src/parser_proc_grammar.y" /* glr.c:816 */
3783 {
3784 (*(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)));
3785 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
3786 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3787 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3788 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3789 }
3790 }
3791 #line 3792 "src/parser_proc.c" /* glr.c:816 */
3792 break;
3793
3794 case 450:
3795 #line 1138 "src/parser_proc_grammar.y" /* glr.c:816 */
3796 {
3797 (*(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)));
3798 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3799 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3800 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3801 }
3802 }
3803 #line 3804 "src/parser_proc.c" /* glr.c:816 */
3804 break;
3805
3806 case 451:
3807 #line 1145 "src/parser_proc_grammar.y" /* glr.c:816 */
3808 {
3809 (*(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)));
3810 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
3811 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3812 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3813 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3814 }
3815 }
3816 #line 3817 "src/parser_proc.c" /* glr.c:816 */
3817 break;
3818
3819 case 452:
3820 #line 1156 "src/parser_proc_grammar.y" /* glr.c:816 */
3821 {
3822 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3823 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3824 (*(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));
3825 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3826 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3827 }
3828 #line 3829 "src/parser_proc.c" /* glr.c:816 */
3829 break;
3830
3831 case 453:
3832 #line 1163 "src/parser_proc_grammar.y" /* glr.c:816 */
3833 {
3834 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3835 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3836 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3837 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),
3838 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)
3839 );
3840 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
3841 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3842 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3843 }
3844 #line 3845 "src/parser_proc.c" /* glr.c:816 */
3845 break;
3846
3847 case 454:
3848 #line 1174 "src/parser_proc_grammar.y" /* glr.c:816 */
3849 {
3850 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3851 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3852 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3853 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),
3854 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)
3855 );
3856 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
3857 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3858 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3859 }
3860 #line 3861 "src/parser_proc.c" /* glr.c:816 */
3861 break;
3862
3863 case 455:
3864 #line 1185 "src/parser_proc_grammar.y" /* glr.c:816 */
3865 {
3866 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3867 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3868 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3869 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),
3870 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text, 0, 0)
3871 );
3872 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
3873 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3874 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3875 }
3876 #line 3877 "src/parser_proc.c" /* glr.c:816 */
3877 break;
3878
3879 case 457:
3880 #line 1200 "src/parser_proc_grammar.y" /* glr.c:816 */
3881 {
3882 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3883 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),
3884 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0, 0)
3885 );
3886 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3887 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3888 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3889 }
3890 #line 3891 "src/parser_proc.c" /* glr.c:816 */
3891 break;
3892
3893 case 458:
3894 #line 1212 "src/parser_proc_grammar.y" /* glr.c:816 */
3895 {
3896 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3897 }
3898 #line 3899 "src/parser_proc.c" /* glr.c:816 */
3899 break;
3900
3901 case 459:
3902 #line 1215 "src/parser_proc_grammar.y" /* glr.c:816 */
3903 {
3904 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3905 }
3906 #line 3907 "src/parser_proc.c" /* glr.c:816 */
3907 break;
3908
3909 case 460:
3910 #line 1218 "src/parser_proc_grammar.y" /* glr.c:816 */
3911 {
3912 (*(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)));
3913 }
3914 #line 3915 "src/parser_proc.c" /* glr.c:816 */
3915 break;
3916
3917 case 461:
3918 #line 1221 "src/parser_proc_grammar.y" /* glr.c:816 */
3919 {
3920 (*(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)));
3921 }
3922 #line 3923 "src/parser_proc.c" /* glr.c:816 */
3923 break;
3924
3925 case 462:
3926 #line 1228 "src/parser_proc_grammar.y" /* glr.c:816 */
3927 {
3928 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3929 }
3930 #line 3931 "src/parser_proc.c" /* glr.c:816 */
3931 break;
3932
3933 case 463:
3934 #line 1231 "src/parser_proc_grammar.y" /* glr.c:816 */
3935 {
3936 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3937 (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)),
3938 psi_decl_var_init(NULL, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0)
3939 );
3940 }
3941 #line 3942 "src/parser_proc.c" /* glr.c:816 */
3942 break;
3943
3944 case 464:
3945 #line 1237 "src/parser_proc_grammar.y" /* glr.c:816 */
3946 {
3947 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3948 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),
3949 psi_decl_var_init(NULL, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0)
3950 );
3951 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3952 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3953 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3954 }
3955 #line 3956 "src/parser_proc.c" /* glr.c:816 */
3956 break;
3957
3958 case 465:
3959 #line 1246 "src/parser_proc_grammar.y" /* glr.c:816 */
3960 {
3961 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3962 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),
3963 psi_decl_var_init(NULL, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0)
3964 );
3965 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3966 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3967 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3968 }
3969 #line 3970 "src/parser_proc.c" /* glr.c:816 */
3970 break;
3971
3972 case 466:
3973 #line 1258 "src/parser_proc_grammar.y" /* glr.c:816 */
3974 {
3975 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3976 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
3977 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
3978 );
3979 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
3980 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3981 }
3982 #line 3983 "src/parser_proc.c" /* glr.c:816 */
3983 break;
3984
3985 case 467:
3986 #line 1266 "src/parser_proc_grammar.y" /* glr.c:816 */
3987 {
3988 (*(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)));
3989 }
3990 #line 3991 "src/parser_proc.c" /* glr.c:816 */
3991 break;
3992
3993 case 468:
3994 #line 1269 "src/parser_proc_grammar.y" /* glr.c:816 */
3995 {
3996 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3997 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3998 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),
3999 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)
4000 );
4001 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4002 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4003 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4004 }
4005 #line 4006 "src/parser_proc.c" /* glr.c:816 */
4006 break;
4007
4008 case 469:
4009 #line 1279 "src/parser_proc_grammar.y" /* glr.c:816 */
4010 {
4011 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4012 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
4013 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),
4014 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)
4015 );
4016 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4017 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4018 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4019 }
4020 #line 4021 "src/parser_proc.c" /* glr.c:816 */
4021 break;
4022
4023 case 470:
4024 #line 1292 "src/parser_proc_grammar.y" /* glr.c:816 */
4025 {
4026 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4027 (*(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)));
4028 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4029 }
4030 #line 4031 "src/parser_proc.c" /* glr.c:816 */
4031 break;
4032
4033 case 471:
4034 #line 1297 "src/parser_proc_grammar.y" /* glr.c:816 */
4035 {
4036 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4037 (*(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)));
4038 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4039 }
4040 #line 4041 "src/parser_proc.c" /* glr.c:816 */
4041 break;
4042
4043 case 472:
4044 #line 1305 "src/parser_proc_grammar.y" /* glr.c:816 */
4045 {
4046 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4047 (*(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)));
4048 (*(struct psi_decl_union **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
4049 (*(struct psi_decl_union **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
4050 (*(struct psi_decl_union **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4051 }
4052 #line 4053 "src/parser_proc.c" /* glr.c:816 */
4053 break;
4054
4055 case 473:
4056 #line 1315 "src/parser_proc_grammar.y" /* glr.c:816 */
4057 {
4058 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4059 (*(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)));
4060 (*(struct psi_decl_struct **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
4061 (*(struct psi_decl_struct **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
4062 (*(struct psi_decl_struct **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4063 }
4064 #line 4065 "src/parser_proc.c" /* glr.c:816 */
4065 break;
4066
4067 case 474:
4068 #line 1325 "src/parser_proc_grammar.y" /* glr.c:816 */
4069 {
4070 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4071 }
4072 #line 4073 "src/parser_proc.c" /* glr.c:816 */
4073 break;
4074
4075 case 476:
4076 #line 1332 "src/parser_proc_grammar.y" /* glr.c:816 */
4077 {
4078 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4079 }
4080 #line 4081 "src/parser_proc.c" /* glr.c:816 */
4081 break;
4082
4083 case 477:
4084 #line 1338 "src/parser_proc_grammar.y" /* glr.c:816 */
4085 {
4086 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4087 (*(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)));
4088 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
4089 size_t i = 0;
4090 struct psi_decl_arg *arg;
4091
4092 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
4093 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
4094 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
4095 }
4096 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4097 }
4098 }
4099 #line 4100 "src/parser_proc.c" /* glr.c:816 */
4100 break;
4101
4102 case 478:
4103 #line 1352 "src/parser_proc_grammar.y" /* glr.c:816 */
4104 {
4105 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4106 (*(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)));
4107 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
4108 size_t i = 0;
4109 struct psi_decl_arg *arg;
4110
4111 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
4112 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
4113 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
4114 }
4115 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4116 }
4117 }
4118 #line 4119 "src/parser_proc.c" /* glr.c:816 */
4119 break;
4120
4121 case 479:
4122 #line 1369 "src/parser_proc_grammar.y" /* glr.c:816 */
4123 {
4124 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4125 }
4126 #line 4127 "src/parser_proc.c" /* glr.c:816 */
4127 break;
4128
4129 case 480:
4130 #line 1372 "src/parser_proc_grammar.y" /* glr.c:816 */
4131 {
4132 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4133 }
4134 #line 4135 "src/parser_proc.c" /* glr.c:816 */
4135 break;
4136
4137 case 481:
4138 #line 1378 "src/parser_proc_grammar.y" /* glr.c:816 */
4139 {
4140 {
4141 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4142 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4143 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &arg);
4144 }
4145 }
4146 #line 4147 "src/parser_proc.c" /* glr.c:816 */
4147 break;
4148
4149 case 482:
4150 #line 1385 "src/parser_proc_grammar.y" /* glr.c:816 */
4151 {
4152 {
4153 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4154 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4155 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), &arg);
4156 }
4157 }
4158 #line 4159 "src/parser_proc.c" /* glr.c:816 */
4159 break;
4160
4161 case 483:
4162 #line 1395 "src/parser_proc_grammar.y" /* glr.c:816 */
4163 {
4164 (*(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)));
4165 (*(struct psi_decl_enum **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
4166 }
4167 #line 4168 "src/parser_proc.c" /* glr.c:816 */
4168 break;
4169
4170 case 484:
4171 #line 1402 "src/parser_proc_grammar.y" /* glr.c:816 */
4172 {
4173 (*(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)));
4174 }
4175 #line 4176 "src/parser_proc.c" /* glr.c:816 */
4176 break;
4177
4178 case 485:
4179 #line 1405 "src/parser_proc_grammar.y" /* glr.c:816 */
4180 {
4181 (*(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)));
4182 }
4183 #line 4184 "src/parser_proc.c" /* glr.c:816 */
4184 break;
4185
4186 case 486:
4187 #line 1411 "src/parser_proc_grammar.y" /* glr.c:816 */
4188 {
4189 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4190 (*(struct psi_decl_enum_item **)(&(*yyvalp))) = psi_decl_enum_item_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, NULL);
4191 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4192 }
4193 #line 4194 "src/parser_proc.c" /* glr.c:816 */
4194 break;
4195
4196 case 487:
4197 #line 1416 "src/parser_proc_grammar.y" /* glr.c:816 */
4198 {
4199 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4200 (*(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)));
4201 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4202 }
4203 #line 4204 "src/parser_proc.c" /* glr.c:816 */
4204 break;
4205
4206 case 488:
4207 #line 1424 "src/parser_proc_grammar.y" /* glr.c:816 */
4208 {
4209 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4210 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4211 }
4212 #line 4213 "src/parser_proc.c" /* glr.c:816 */
4213 break;
4214
4215 case 489:
4216 #line 1428 "src/parser_proc_grammar.y" /* glr.c:816 */
4217 {
4218 (*(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)));
4219 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->token);
4220 }
4221 #line 4222 "src/parser_proc.c" /* glr.c:816 */
4222 break;
4223
4224 case 490:
4225 #line 1432 "src/parser_proc_grammar.y" /* glr.c:816 */
4226 {
4227 (*(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)));
4228 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4229 }
4230 #line 4231 "src/parser_proc.c" /* glr.c:816 */
4231 break;
4232
4233 case 491:
4234 #line 1436 "src/parser_proc_grammar.y" /* glr.c:816 */
4235 {
4236 (*(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)));
4237 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4238 }
4239 #line 4240 "src/parser_proc.c" /* glr.c:816 */
4240 break;
4241
4242 case 492:
4243 #line 1440 "src/parser_proc_grammar.y" /* glr.c:816 */
4244 {
4245 (*(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)));
4246 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4247 }
4248 #line 4249 "src/parser_proc.c" /* glr.c:816 */
4249 break;
4250
4251 case 493:
4252 #line 1444 "src/parser_proc_grammar.y" /* glr.c:816 */
4253 {
4254 (*(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)));
4255 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4256 }
4257 #line 4258 "src/parser_proc.c" /* glr.c:816 */
4258 break;
4259
4260 case 494:
4261 #line 1451 "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, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->flags);
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 495:
4270 #line 1455 "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 496:
4279 #line 1459 "src/parser_proc_grammar.y" /* glr.c:816 */
4280 {
4281 (*(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);
4282 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4283 }
4284 #line 4285 "src/parser_proc.c" /* glr.c:816 */
4285 break;
4286
4287 case 497:
4288 #line 1463 "src/parser_proc_grammar.y" /* glr.c:816 */
4289 {
4290 (*(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);
4291 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4292 }
4293 #line 4294 "src/parser_proc.c" /* glr.c:816 */
4294 break;
4295
4296 case 498:
4297 #line 1467 "src/parser_proc_grammar.y" /* glr.c:816 */
4298 {
4299 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_NAME, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0);
4300 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4301 }
4302 #line 4303 "src/parser_proc.c" /* glr.c:816 */
4303 break;
4304
4305 case 499:
4306 #line 1471 "src/parser_proc_grammar.y" /* glr.c:816 */
4307 {
4308 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4309 }
4310 #line 4311 "src/parser_proc.c" /* glr.c:816 */
4311 break;
4312
4313 case 500:
4314 #line 1477 "src/parser_proc_grammar.y" /* glr.c:816 */
4315 {
4316 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4317 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4318 }
4319 #line 4320 "src/parser_proc.c" /* glr.c:816 */
4320 break;
4321
4322 case 501:
4323 #line 1481 "src/parser_proc_grammar.y" /* glr.c:816 */
4324 {
4325 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4326 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4327 }
4328 #line 4329 "src/parser_proc.c" /* glr.c:816 */
4329 break;
4330
4331 case 502:
4332 #line 1488 "src/parser_proc_grammar.y" /* glr.c:816 */
4333 {
4334 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4335 }
4336 #line 4337 "src/parser_proc.c" /* glr.c:816 */
4337 break;
4338
4339 case 503:
4340 #line 1491 "src/parser_proc_grammar.y" /* glr.c:816 */
4341 {
4342 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4343 int8_t sizeof_void_p = sizeof(void *);
4344 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0);
4345 } else {
4346 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_SIZEOF, (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), 0);
4347 }
4348 }
4349 #line 4350 "src/parser_proc.c" /* glr.c:816 */
4350 break;
4351
4352 case 504:
4353 #line 1502 "src/parser_proc_grammar.y" /* glr.c:816 */
4354 {
4355 int8_t sizeof_void_p = sizeof(void *);
4356 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0);
4357 }
4358 #line 4359 "src/parser_proc.c" /* glr.c:816 */
4359 break;
4360
4361 case 505:
4362 #line 1506 "src/parser_proc_grammar.y" /* glr.c:816 */
4363 {
4364 int8_t sizeof_a = sizeof('a');
4365 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_a, 0);
4366 }
4367 #line 4368 "src/parser_proc.c" /* glr.c:816 */
4368 break;
4369
4370 case 506:
4371 #line 1510 "src/parser_proc_grammar.y" /* glr.c:816 */
4372 {
4373 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT64, &(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->size, 0);
4374 }
4375 #line 4376 "src/parser_proc.c" /* glr.c:816 */
4376 break;
4377
4378 case 507:
4379 #line 1516 "src/parser_proc_grammar.y" /* glr.c:816 */
4380 {
4381 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4382 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4383 } else {
4384 char digest[17];
4385
4386 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
4387 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
4388 }
4389 }
4390 #line 4391 "src/parser_proc.c" /* glr.c:816 */
4391 break;
4392
4393 case 508:
4394 #line 1529 "src/parser_proc_grammar.y" /* glr.c:816 */
4395 {
4396 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4397 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4398 } else {
4399 char digest[17];
4400
4401 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
4402 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
4403 }
4404 }
4405 #line 4406 "src/parser_proc.c" /* glr.c:816 */
4406 break;
4407
4408 case 509:
4409 #line 1542 "src/parser_proc_grammar.y" /* glr.c:816 */
4410 {
4411 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4412 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4413 } else {
4414 char digest[17];
4415
4416 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
4417 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
4418 }
4419 }
4420 #line 4421 "src/parser_proc.c" /* glr.c:816 */
4421 break;
4422
4423 case 510:
4424 #line 1555 "src/parser_proc_grammar.y" /* glr.c:816 */
4425 {
4426 (*(struct psi_token **)(&(*yyvalp))) = NULL;
4427 }
4428 #line 4429 "src/parser_proc.c" /* glr.c:816 */
4429 break;
4430
4431 case 511:
4432 #line 1558 "src/parser_proc_grammar.y" /* glr.c:816 */
4433 {
4434 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4435 (*(struct psi_token **)(&(*yyvalp)))->type = PSI_T_NAME;
4436 }
4437 #line 4438 "src/parser_proc.c" /* glr.c:816 */
4438 break;
4439
4440 case 512:
4441 #line 1565 "src/parser_proc_grammar.y" /* glr.c:816 */
4442 {
4443 (*(struct psi_layout **)(&(*yyvalp))) = NULL;
4444 }
4445 #line 4446 "src/parser_proc.c" /* glr.c:816 */
4446 break;
4447
4448 case 513:
4449 #line 1568 "src/parser_proc_grammar.y" /* glr.c:816 */
4450 {
4451 (*(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));
4452 }
4453 #line 4454 "src/parser_proc.c" /* glr.c:816 */
4454 break;
4455
4456 case 514:
4457 #line 1571 "src/parser_proc_grammar.y" /* glr.c:816 */
4458 {
4459 (*(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);
4460 }
4461 #line 4462 "src/parser_proc.c" /* glr.c:816 */
4462 break;
4463
4464 case 515:
4465 #line 1574 "src/parser_proc_grammar.y" /* glr.c:816 */
4466 {
4467 (*(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));
4468 }
4469 #line 4470 "src/parser_proc.c" /* glr.c:816 */
4470 break;
4471
4472 case 516:
4473 #line 1580 "src/parser_proc_grammar.y" /* glr.c:816 */
4474 {
4475 (*(struct psi_layout*)(&(*yyvalp))).pos = 0;
4476 (*(struct psi_layout*)(&(*yyvalp))).len = 0;
4477 }
4478 #line 4479 "src/parser_proc.c" /* glr.c:816 */
4479 break;
4480
4481 case 517:
4482 #line 1584 "src/parser_proc_grammar.y" /* glr.c:816 */
4483 {
4484 (*(struct psi_layout*)(&(*yyvalp))).pos = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text);
4485 (*(struct psi_layout*)(&(*yyvalp))).len = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
4486 }
4487 #line 4488 "src/parser_proc.c" /* glr.c:816 */
4488 break;
4489
4490 case 518:
4491 #line 1591 "src/parser_proc_grammar.y" /* glr.c:816 */
4492 {
4493 (*(size_t*)(&(*yyvalp))) = 0;
4494 }
4495 #line 4496 "src/parser_proc.c" /* glr.c:816 */
4496 break;
4497
4498 case 519:
4499 #line 1594 "src/parser_proc_grammar.y" /* glr.c:816 */
4500 {
4501 (*(size_t*)(&(*yyvalp))) = 0;
4502 }
4503 #line 4504 "src/parser_proc.c" /* glr.c:816 */
4504 break;
4505
4506 case 520:
4507 #line 1597 "src/parser_proc_grammar.y" /* glr.c:816 */
4508 {
4509 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)) {
4510 (*(size_t*)(&(*yyvalp))) = psi_long_num_exp((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), NULL, &P->preproc->defs);
4511 } else {
4512 (*(size_t*)(&(*yyvalp))) = 0;
4513 }
4514 }
4515 #line 4516 "src/parser_proc.c" /* glr.c:816 */
4516 break;
4517
4518 case 521:
4519 #line 1607 "src/parser_proc_grammar.y" /* glr.c:816 */
4520 {
4521 (*(size_t*)(&(*yyvalp))) = 0;
4522 }
4523 #line 4524 "src/parser_proc.c" /* glr.c:816 */
4524 break;
4525
4526 case 522:
4527 #line 1610 "src/parser_proc_grammar.y" /* glr.c:816 */
4528 {
4529 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4530 }
4531 #line 4532 "src/parser_proc.c" /* glr.c:816 */
4532 break;
4533
4534 case 524:
4535 #line 1617 "src/parser_proc_grammar.y" /* glr.c:816 */
4536 {
4537 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4538 }
4539 #line 4540 "src/parser_proc.c" /* glr.c:816 */
4540 break;
4541
4542 case 525:
4543 #line 1623 "src/parser_proc_grammar.y" /* glr.c:816 */
4544 {
4545 (*(size_t*)(&(*yyvalp))) = 1;
4546 }
4547 #line 4548 "src/parser_proc.c" /* glr.c:816 */
4548 break;
4549
4550 case 526:
4551 #line 1626 "src/parser_proc_grammar.y" /* glr.c:816 */
4552 {
4553 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)) + 1;
4554 }
4555 #line 4556 "src/parser_proc.c" /* glr.c:816 */
4556 break;
4557
4558 case 529:
4559 #line 1643 "src/parser_proc_grammar.y" /* glr.c:816 */
4560 {
4561 (*(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)));
4562 }
4563 #line 4564 "src/parser_proc.c" /* glr.c:816 */
4564 break;
4565
4566 case 530:
4567 #line 1646 "src/parser_proc_grammar.y" /* glr.c:816 */
4568 {
4569 (*(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)));
4570 (*(struct psi_impl_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->static_memory = 1;
4571 }
4572 #line 4573 "src/parser_proc.c" /* glr.c:816 */
4573 break;
4574
4575 case 531:
4576 #line 1653 "src/parser_proc_grammar.y" /* glr.c:816 */
4577 {
4578 (*(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)));
4579 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
4580 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval));
4581 }
4582 #line 4583 "src/parser_proc.c" /* glr.c:816 */
4583 break;
4584
4585 case 532:
4586 #line 1658 "src/parser_proc_grammar.y" /* glr.c:816 */
4587 {
4588 (*(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)));
4589 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4590 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval));
4591 }
4592 #line 4593 "src/parser_proc.c" /* glr.c:816 */
4593 break;
4594
4595 case 533:
4596 #line 1663 "src/parser_proc_grammar.y" /* glr.c:816 */
4597 {
4598 (*(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)));
4599 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval)));
4600 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-11)].yystate.yysemantics.yysval));
4601 (*(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);
4602 (*(struct psi_impl_func **)(&(*yyvalp)))->vararg->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4603 }
4604 #line 4605 "src/parser_proc.c" /* glr.c:816 */
4605 break;
4606
4607 case 534:
4608 #line 1673 "src/parser_proc_grammar.y" /* glr.c:816 */
4609 {
4610 (*(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)));
4611 }
4612 #line 4613 "src/parser_proc.c" /* glr.c:816 */
4613 break;
4614
4615 case 535:
4616 #line 1676 "src/parser_proc_grammar.y" /* glr.c:816 */
4617 {
4618 (*(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)));
4619 }
4620 #line 4621 "src/parser_proc.c" /* glr.c:816 */
4621 break;
4622
4623 case 536:
4624 #line 1682 "src/parser_proc_grammar.y" /* glr.c:816 */
4625 {
4626 (*(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);
4627 }
4628 #line 4629 "src/parser_proc.c" /* glr.c:816 */
4629 break;
4630
4631 case 537:
4632 #line 1685 "src/parser_proc_grammar.y" /* glr.c:816 */
4633 {
4634 (*(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)));
4635 }
4636 #line 4637 "src/parser_proc.c" /* glr.c:816 */
4637 break;
4638
4639 case 538:
4640 #line 1691 "src/parser_proc_grammar.y" /* glr.c:816 */
4641 {
4642 (*(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)));
4643 (*(struct psi_impl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4644 }
4645 #line 4646 "src/parser_proc.c" /* glr.c:816 */
4646 break;
4647
4648 case 539:
4649 #line 1698 "src/parser_proc_grammar.y" /* glr.c:816 */
4650 {
4651 (*(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);
4652 (*(struct psi_impl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4653 }
4654 #line 4655 "src/parser_proc.c" /* glr.c:816 */
4655 break;
4656
4657 case 549:
4658 #line 1717 "src/parser_proc_grammar.y" /* glr.c:816 */
4659 {
4660 (*(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)));
4661 }
4662 #line 4663 "src/parser_proc.c" /* glr.c:816 */
4663 break;
4664
4665 case 550:
4666 #line 1720 "src/parser_proc_grammar.y" /* glr.c:816 */
4667 {
4668 (*(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)));
4669 }
4670 #line 4671 "src/parser_proc.c" /* glr.c:816 */
4671 break;
4672
4673 case 551:
4674 #line 1726 "src/parser_proc_grammar.y" /* glr.c:816 */
4675 {
4676 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_return_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4677 }
4678 #line 4679 "src/parser_proc.c" /* glr.c:816 */
4679 break;
4680
4681 case 552:
4682 #line 1729 "src/parser_proc_grammar.y" /* glr.c:816 */
4683 {
4684 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_let_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4685 }
4686 #line 4687 "src/parser_proc.c" /* glr.c:816 */
4687 break;
4688
4689 case 553:
4690 #line 1732 "src/parser_proc_grammar.y" /* glr.c:816 */
4691 {
4692 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_set_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4693 }
4694 #line 4695 "src/parser_proc.c" /* glr.c:816 */
4695 break;
4696
4697 case 554:
4698 #line 1735 "src/parser_proc_grammar.y" /* glr.c:816 */
4699 {
4700 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_assert_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4701 }
4702 #line 4703 "src/parser_proc.c" /* glr.c:816 */
4703 break;
4704
4705 case 555:
4706 #line 1738 "src/parser_proc_grammar.y" /* glr.c:816 */
4707 {
4708 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_free_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4709 }
4710 #line 4711 "src/parser_proc.c" /* glr.c:816 */
4711 break;
4712
4713 case 556:
4714 #line 1744 "src/parser_proc_grammar.y" /* glr.c:816 */
4715 {
4716 (*(struct psi_let_stmt **)(&(*yyvalp))) = psi_let_stmt_init((*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4717 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4718 }
4719 #line 4720 "src/parser_proc.c" /* glr.c:816 */
4720 break;
4721
4722 case 557:
4723 #line 1748 "src/parser_proc_grammar.y" /* glr.c:816 */
4724 {
4725 (*(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))));
4726 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4727 (*(struct psi_let_stmt **)(&(*yyvalp)))->exp->is_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4728 }
4729 #line 4730 "src/parser_proc.c" /* glr.c:816 */
4730 break;
4731
4732 case 559:
4733 #line 1757 "src/parser_proc_grammar.y" /* glr.c:816 */
4734 {
4735 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4736 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = true;
4737 }
4738 #line 4739 "src/parser_proc.c" /* glr.c:816 */
4739 break;
4740
4741 case 560:
4742 #line 1761 "src/parser_proc_grammar.y" /* glr.c:816 */
4743 {
4744 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4745 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = false;
4746 }
4747 #line 4748 "src/parser_proc.c" /* glr.c:816 */
4748 break;
4749
4750 case 561:
4751 #line 1768 "src/parser_proc_grammar.y" /* glr.c:816 */
4752 {
4753 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_NULL, NULL);
4754 }
4755 #line 4756 "src/parser_proc.c" /* glr.c:816 */
4756 break;
4757
4758 case 562:
4759 #line 1771 "src/parser_proc_grammar.y" /* glr.c:816 */
4760 {
4761 (*(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)));
4762 }
4763 #line 4764 "src/parser_proc.c" /* glr.c:816 */
4764 break;
4765
4766 case 563:
4767 #line 1774 "src/parser_proc_grammar.y" /* glr.c:816 */
4768 {
4769 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4770 }
4771 #line 4772 "src/parser_proc.c" /* glr.c:816 */
4772 break;
4773
4774 case 564:
4775 #line 1777 "src/parser_proc_grammar.y" /* glr.c:816 */
4776 {
4777 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4778 (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->static_memory = 1;
4779 }
4780 #line 4781 "src/parser_proc.c" /* glr.c:816 */
4781 break;
4782
4783 case 565:
4784 #line 1781 "src/parser_proc_grammar.y" /* glr.c:816 */
4785 {
4786 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLBACK, (*(struct psi_let_callback **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4787 }
4788 #line 4789 "src/parser_proc.c" /* glr.c:816 */
4789 break;
4790
4791 case 566:
4792 #line 1784 "src/parser_proc_grammar.y" /* glr.c:816 */
4793 {
4794 (*(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)));
4795 }
4796 #line 4797 "src/parser_proc.c" /* glr.c:816 */
4797 break;
4798
4799 case 567:
4800 #line 1790 "src/parser_proc_grammar.y" /* glr.c:816 */
4801 {
4802 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4803 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4804 }
4805 #line 4806 "src/parser_proc.c" /* glr.c:816 */
4806 break;
4807
4808 case 568:
4809 #line 1794 "src/parser_proc_grammar.y" /* glr.c:816 */
4810 {
4811 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4812 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = 1;
4813 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
4814 }
4815 #line 4816 "src/parser_proc.c" /* glr.c:816 */
4816 break;
4817
4818 case 569:
4819 #line 1802 "src/parser_proc_grammar.y" /* glr.c:816 */
4820 {
4821 (*(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)));
4822 (*(struct psi_let_calloc **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4823 }
4824 #line 4825 "src/parser_proc.c" /* glr.c:816 */
4825 break;
4826
4827 case 570:
4828 #line 1809 "src/parser_proc_grammar.y" /* glr.c:816 */
4829 {
4830 (*(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)));
4831 (*(struct psi_let_callback **)(&(*yyvalp)))->func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
4832 (*(struct psi_let_callback **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval)));
4833 }
4834 #line 4835 "src/parser_proc.c" /* glr.c:816 */
4835 break;
4836
4837 case 571:
4838 #line 1817 "src/parser_proc_grammar.y" /* glr.c:816 */
4839 {
4840 (*(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)));
4841 (*(struct psi_let_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
4842 (*(struct psi_let_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4843 }
4844 #line 4845 "src/parser_proc.c" /* glr.c:816 */
4845 break;
4846
4847 case 582:
4848 #line 1838 "src/parser_proc_grammar.y" /* glr.c:816 */
4849 {
4850 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4851 }
4852 #line 4853 "src/parser_proc.c" /* glr.c:816 */
4853 break;
4854
4855 case 583:
4856 #line 1841 "src/parser_proc_grammar.y" /* glr.c:816 */
4857 {
4858 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4859 }
4860 #line 4861 "src/parser_proc.c" /* glr.c:816 */
4861 break;
4862
4863 case 584:
4864 #line 1847 "src/parser_proc_grammar.y" /* glr.c:816 */
4865 {
4866 (*(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)));
4867 }
4868 #line 4869 "src/parser_proc.c" /* glr.c:816 */
4869 break;
4870
4871 case 585:
4872 #line 1850 "src/parser_proc_grammar.y" /* glr.c:816 */
4873 {
4874 (*(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)));
4875 }
4876 #line 4877 "src/parser_proc.c" /* glr.c:816 */
4877 break;
4878
4879 case 588:
4880 #line 1861 "src/parser_proc_grammar.y" /* glr.c:816 */
4881 {
4882 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4883 }
4884 #line 4885 "src/parser_proc.c" /* glr.c:816 */
4885 break;
4886
4887 case 589:
4888 #line 1864 "src/parser_proc_grammar.y" /* glr.c:816 */
4889 {
4890 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4891 }
4892 #line 4893 "src/parser_proc.c" /* glr.c:816 */
4893 break;
4894
4895 case 590:
4896 #line 1870 "src/parser_proc_grammar.y" /* glr.c:816 */
4897 {
4898 (*(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)));
4899 }
4900 #line 4901 "src/parser_proc.c" /* glr.c:816 */
4901 break;
4902
4903 case 591:
4904 #line 1873 "src/parser_proc_grammar.y" /* glr.c:816 */
4905 {
4906 (*(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)));
4907 }
4908 #line 4909 "src/parser_proc.c" /* glr.c:816 */
4909 break;
4910
4911 case 592:
4912 #line 1879 "src/parser_proc_grammar.y" /* glr.c:816 */
4913 {
4914 (*(struct psi_return_stmt **)(&(*yyvalp))) = psi_return_stmt_init((*(struct psi_return_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4915 (*(struct psi_return_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4916 }
4917 #line 4918 "src/parser_proc.c" /* glr.c:816 */
4918 break;
4919
4920 case 593:
4921 #line 1886 "src/parser_proc_grammar.y" /* glr.c:816 */
4922 {
4923 (*(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))));
4924 (*(struct psi_return_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->token);
4925 }
4926 #line 4927 "src/parser_proc.c" /* glr.c:816 */
4927 break;
4928
4929 case 594:
4930 #line 1890 "src/parser_proc_grammar.y" /* glr.c:816 */
4931 {
4932 (*(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))));
4933 (*(struct psi_return_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4934 }
4935 #line 4936 "src/parser_proc.c" /* glr.c:816 */
4936 break;
4937
4938 case 595:
4939 #line 1897 "src/parser_proc_grammar.y" /* glr.c:816 */
4940 {
4941 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4942 }
4943 #line 4944 "src/parser_proc.c" /* glr.c:816 */
4944 break;
4945
4946 case 596:
4947 #line 1900 "src/parser_proc_grammar.y" /* glr.c:816 */
4948 {
4949 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4950 }
4951 #line 4952 "src/parser_proc.c" /* glr.c:816 */
4952 break;
4953
4954 case 597:
4955 #line 1903 "src/parser_proc_grammar.y" /* glr.c:816 */
4956 {
4957 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4958 }
4959 #line 4960 "src/parser_proc.c" /* glr.c:816 */
4960 break;
4961
4962 case 598:
4963 #line 1909 "src/parser_proc_grammar.y" /* glr.c:816 */
4964 {
4965 (*(struct psi_set_stmt **)(&(*yyvalp))) = psi_set_stmt_init((*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4966 (*(struct psi_set_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4967 }
4968 #line 4969 "src/parser_proc.c" /* glr.c:816 */
4969 break;
4970
4971 case 599:
4972 #line 1916 "src/parser_proc_grammar.y" /* glr.c:816 */
4973 {
4974 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_FUNC, (*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4975 }
4976 #line 4977 "src/parser_proc.c" /* glr.c:816 */
4977 break;
4978
4979 case 600:
4980 #line 1919 "src/parser_proc_grammar.y" /* glr.c:816 */
4981 {
4982 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_NUMEXP, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4983 }
4984 #line 4985 "src/parser_proc.c" /* glr.c:816 */
4985 break;
4986
4987 case 601:
4988 #line 1922 "src/parser_proc_grammar.y" /* glr.c:816 */
4989 {
4990 (*(struct psi_set_exp **)(&(*yyvalp))) = (*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4991 (*(struct psi_set_exp **)(&(*yyvalp)))->var = (*(struct psi_impl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4992 }
4993 #line 4994 "src/parser_proc.c" /* glr.c:816 */
4994 break;
4995
4996 case 602:
4997 #line 1929 "src/parser_proc_grammar.y" /* glr.c:816 */
4998 {
4999 (*(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)));
5000 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
5001 (*(struct psi_set_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5002 }
5003 #line 5004 "src/parser_proc.c" /* glr.c:816 */
5004 break;
5005
5006 case 603:
5007 #line 1934 "src/parser_proc_grammar.y" /* glr.c:816 */
5008 {
5009 (*(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)));
5010 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
5011 (*(struct psi_set_func **)(&(*yyvalp)))->recursive = 1;
5012 }
5013 #line 5014 "src/parser_proc.c" /* glr.c:816 */
5014 break;
5015
5016 case 612:
5017 #line 1953 "src/parser_proc_grammar.y" /* glr.c:816 */
5018 {
5019 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5020 }
5021 #line 5022 "src/parser_proc.c" /* glr.c:816 */
5022 break;
5023
5024 case 613:
5025 #line 1956 "src/parser_proc_grammar.y" /* glr.c:816 */
5026 {
5027 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5028 }
5029 #line 5030 "src/parser_proc.c" /* glr.c:816 */
5030 break;
5031
5032 case 614:
5033 #line 1962 "src/parser_proc_grammar.y" /* glr.c:816 */
5034 {
5035 (*(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)));
5036 }
5037 #line 5038 "src/parser_proc.c" /* glr.c:816 */
5038 break;
5039
5040 case 615:
5041 #line 1965 "src/parser_proc_grammar.y" /* glr.c:816 */
5042 {
5043 (*(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)));
5044 }
5045 #line 5046 "src/parser_proc.c" /* glr.c:816 */
5046 break;
5047
5048 case 616:
5049 #line 1971 "src/parser_proc_grammar.y" /* glr.c:816 */
5050 {
5051 (*(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)));
5052 (*(struct psi_assert_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5053 }
5054 #line 5055 "src/parser_proc.c" /* glr.c:816 */
5055 break;
5056
5057 case 619:
5058 #line 1983 "src/parser_proc_grammar.y" /* glr.c:816 */
5059 {
5060 (*(struct psi_free_stmt **)(&(*yyvalp))) = psi_free_stmt_init((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5061 (*(struct psi_free_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5062 }
5063 #line 5064 "src/parser_proc.c" /* glr.c:816 */
5064 break;
5065
5066 case 620:
5067 #line 1990 "src/parser_proc_grammar.y" /* glr.c:816 */
5068 {
5069 (*(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)));
5070 }
5071 #line 5072 "src/parser_proc.c" /* glr.c:816 */
5072 break;
5073
5074 case 621:
5075 #line 1993 "src/parser_proc_grammar.y" /* glr.c:816 */
5076 {
5077 (*(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)));
5078 }
5079 #line 5080 "src/parser_proc.c" /* glr.c:816 */
5080 break;
5081
5082 case 622:
5083 #line 1999 "src/parser_proc_grammar.y" /* glr.c:816 */
5084 {
5085 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5086 (*(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)));
5087 (*(struct psi_free_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5088 }
5089 #line 5090 "src/parser_proc.c" /* glr.c:816 */
5090 break;
5091
5092 case 623:
5093 #line 2007 "src/parser_proc_grammar.y" /* glr.c:816 */
5094 {
5095 (*(bool*)(&(*yyvalp))) = false;
5096 }
5097 #line 5098 "src/parser_proc.c" /* glr.c:816 */
5098 break;
5099
5100 case 624:
5101 #line 2010 "src/parser_proc_grammar.y" /* glr.c:816 */
5102 {
5103 (*(bool*)(&(*yyvalp))) = true;
5104 }
5105 #line 5106 "src/parser_proc.c" /* glr.c:816 */
5106 break;
5107
5108
5109 #line 5110 "src/parser_proc.c" /* glr.c:816 */
5110 default: break;
5111 }
5112
5113 return yyok;
5114 # undef yyerrok
5115 # undef YYABORT
5116 # undef YYACCEPT
5117 # undef YYERROR
5118 # undef YYBACKUP
5119 # undef yyclearin
5120 # undef YYRECOVERING
5121 }
5122
5123
5124 static void
5125 yyuserMerge (int yyn, YYSTYPE* yy0, YYSTYPE* yy1)
5126 {
5127 YYUSE (yy0);
5128 YYUSE (yy1);
5129
5130 switch (yyn)
5131 {
5132
5133 default: break;
5134 }
5135 }
5136
5137 /* Bison grammar-table manipulation. */
5138
5139 /*-----------------------------------------------.
5140 | Release the memory associated to this symbol. |
5141 `-----------------------------------------------*/
5142
5143 static void
5144 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
5145 {
5146 YYUSE (yyvaluep);
5147 YYUSE (P);
5148 YYUSE (tokens);
5149 YYUSE (index);
5150 if (!yymsg)
5151 yymsg = "Deleting";
5152 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
5153
5154 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
5155 switch (yytype)
5156 {
5157 case 129: /* binary_op_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 130: /* unary_op_token */
5164 #line 262 "src/parser_proc_grammar.y" /* glr.c:846 */
5165 {}
5166 #line 5167 "src/parser_proc.c" /* glr.c:846 */
5167 break;
5168
5169 case 131: /* name_token */
5170 #line 262 "src/parser_proc_grammar.y" /* glr.c:846 */
5171 {}
5172 #line 5173 "src/parser_proc.c" /* glr.c:846 */
5173 break;
5174
5175 case 132: /* any_noeol_token */
5176 #line 262 "src/parser_proc_grammar.y" /* glr.c:846 */
5177 {}
5178 #line 5179 "src/parser_proc.c" /* glr.c:846 */
5179 break;
5180
5181 case 137: /* lib */
5182 #line 256 "src/parser_proc_grammar.y" /* glr.c:846 */
5183 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5184 #line 5185 "src/parser_proc.c" /* glr.c:846 */
5185 break;
5186
5187 case 138: /* cpp */
5188 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
5189 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
5190 #line 5191 "src/parser_proc.c" /* glr.c:846 */
5191 break;
5192
5193 case 139: /* cpp_exp */
5194 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
5195 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
5196 #line 5197 "src/parser_proc.c" /* glr.c:846 */
5197 break;
5198
5199 case 141: /* cpp_message_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 142: /* cpp_include_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 143: /* cpp_header_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 144: /* cpp_no_arg_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 145: /* cpp_name_arg_token */
5224 #line 259 "src/parser_proc_grammar.y" /* glr.c:846 */
5225 {}
5226 #line 5227 "src/parser_proc.c" /* glr.c:846 */
5227 break;
5228
5229 case 146: /* cpp_exp_arg_token */
5230 #line 259 "src/parser_proc_grammar.y" /* glr.c:846 */
5231 {}
5232 #line 5233 "src/parser_proc.c" /* glr.c:846 */
5233 break;
5234
5235 case 147: /* cpp_special_name_token */
5236 #line 259 "src/parser_proc_grammar.y" /* glr.c:846 */
5237 {}
5238 #line 5239 "src/parser_proc.c" /* glr.c:846 */
5239 break;
5240
5241 case 148: /* cpp_macro_decl */
5242 #line 273 "src/parser_proc_grammar.y" /* glr.c:846 */
5243 {psi_cpp_macro_decl_free(&(*(struct psi_cpp_macro_decl **)(&(*yyvaluep))));}
5244 #line 5245 "src/parser_proc.c" /* glr.c:846 */
5245 break;
5246
5247 case 149: /* cpp_macro_sig */
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 150: /* cpp_macro_sig_args */
5254 #line 275 "src/parser_proc_grammar.y" /* glr.c:846 */
5255 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5256 #line 5257 "src/parser_proc.c" /* glr.c:846 */
5257 break;
5258
5259 case 151: /* cpp_macro_decl_tokens */
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 152: /* cpp_macro_decl_token_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 153: /* cpp_macro_exp */
5272 #line 277 "src/parser_proc_grammar.y" /* glr.c:846 */
5273 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
5274 #line 5275 "src/parser_proc.c" /* glr.c:846 */
5275 break;
5276
5277 case 154: /* cpp_macro_call_args */
5278 #line 275 "src/parser_proc_grammar.y" /* glr.c:846 */
5279 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5280 #line 5281 "src/parser_proc.c" /* glr.c:846 */
5281 break;
5282
5283 case 155: /* cpp_macro_call_arg_list */
5284 #line 275 "src/parser_proc_grammar.y" /* glr.c:846 */
5285 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5286 #line 5287 "src/parser_proc.c" /* glr.c:846 */
5287 break;
5288
5289 case 156: /* constant */
5290 #line 283 "src/parser_proc_grammar.y" /* glr.c:846 */
5291 {psi_const_free(&(*(struct psi_const **)(&(*yyvaluep))));}
5292 #line 5293 "src/parser_proc.c" /* glr.c:846 */
5293 break;
5294
5295 case 157: /* constant_type */
5296 #line 285 "src/parser_proc_grammar.y" /* glr.c:846 */
5297 {psi_const_type_free(&(*(struct psi_const_type **)(&(*yyvaluep))));}
5298 #line 5299 "src/parser_proc.c" /* glr.c:846 */
5299 break;
5300
5301 case 158: /* constant_type_token */
5302 #line 280 "src/parser_proc_grammar.y" /* glr.c:846 */
5303 {}
5304 #line 5305 "src/parser_proc.c" /* glr.c:846 */
5305 break;
5306
5307 case 159: /* impl_def_val */
5308 #line 287 "src/parser_proc_grammar.y" /* glr.c:846 */
5309 {psi_impl_def_val_free(&(*(struct psi_impl_def_val **)(&(*yyvaluep))));}
5310 #line 5311 "src/parser_proc.c" /* glr.c:846 */
5311 break;
5312
5313 case 160: /* impl_def_val_token */
5314 #line 280 "src/parser_proc_grammar.y" /* glr.c:846 */
5315 {}
5316 #line 5317 "src/parser_proc.c" /* glr.c:846 */
5317 break;
5318
5319 case 161: /* decl_typedef */
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 162: /* typedef */
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 163: /* typedef_anon */
5332 #line 297 "src/parser_proc_grammar.y" /* glr.c:846 */
5333 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5334 #line 5335 "src/parser_proc.c" /* glr.c:846 */
5335 break;
5336
5337 case 164: /* typedef_decl */
5338 #line 297 "src/parser_proc_grammar.y" /* glr.c:846 */
5339 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5340 #line 5341 "src/parser_proc.c" /* glr.c:846 */
5341 break;
5342
5343 case 165: /* typedef_anon_decl */
5344 #line 297 "src/parser_proc_grammar.y" /* glr.c:846 */
5345 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5346 #line 5347 "src/parser_proc.c" /* glr.c:846 */
5347 break;
5348
5349 case 166: /* qualified_decl_type */
5350 #line 293 "src/parser_proc_grammar.y" /* glr.c:846 */
5351 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
5352 #line 5353 "src/parser_proc.c" /* glr.c:846 */
5353 break;
5354
5355 case 167: /* decl_type */
5356 #line 293 "src/parser_proc_grammar.y" /* glr.c:846 */
5357 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
5358 #line 5359 "src/parser_proc.c" /* glr.c:846 */
5359 break;
5360
5361 case 168: /* decl_type_complex */
5362 #line 293 "src/parser_proc_grammar.y" /* glr.c:846 */
5363 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
5364 #line 5365 "src/parser_proc.c" /* glr.c:846 */
5365 break;
5366
5367 case 169: /* decl_type_simple */
5368 #line 290 "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 170: /* decl_real_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 171: /* int_signed */
5380 #line 268 "src/parser_proc_grammar.y" /* glr.c:846 */
5381 {}
5382 #line 5383 "src/parser_proc.c" /* glr.c:846 */
5383 break;
5384
5385 case 172: /* int_width */
5386 #line 265 "src/parser_proc_grammar.y" /* glr.c:846 */
5387 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5388 #line 5389 "src/parser_proc.c" /* glr.c:846 */
5389 break;
5390
5391 case 173: /* decl_int_type */
5392 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
5393 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5394 #line 5395 "src/parser_proc.c" /* glr.c:846 */
5395 break;
5396
5397 case 174: /* int_signed_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 175: /* signed_short_types */
5404 #line 268 "src/parser_proc_grammar.y" /* glr.c:846 */
5405 {}
5406 #line 5407 "src/parser_proc.c" /* glr.c:846 */
5407 break;
5408
5409 case 176: /* signed_long_types */
5410 #line 268 "src/parser_proc_grammar.y" /* glr.c:846 */
5411 {}
5412 #line 5413 "src/parser_proc.c" /* glr.c:846 */
5413 break;
5414
5415 case 177: /* int_width_types */
5416 #line 265 "src/parser_proc_grammar.y" /* glr.c:846 */
5417 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5418 #line 5419 "src/parser_proc.c" /* glr.c:846 */
5419 break;
5420
5421 case 178: /* decl_stmt */
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 184: /* decl_vars */
5428 #line 309 "src/parser_proc_grammar.y" /* glr.c:846 */
5429 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5430 #line 5431 "src/parser_proc.c" /* glr.c:846 */
5431 break;
5432
5433 case 189: /* decl */
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 190: /* decl_body */
5440 #line 295 "src/parser_proc_grammar.y" /* glr.c:846 */
5441 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5442 #line 5443 "src/parser_proc.c" /* glr.c:846 */
5443 break;
5444
5445 case 191: /* decl_func_body */
5446 #line 295 "src/parser_proc_grammar.y" /* glr.c:846 */
5447 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5448 #line 5449 "src/parser_proc.c" /* glr.c:846 */
5449 break;
5450
5451 case 192: /* decl_functor_body */
5452 #line 295 "src/parser_proc_grammar.y" /* glr.c:846 */
5453 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5454 #line 5455 "src/parser_proc.c" /* glr.c:846 */
5455 break;
5456
5457 case 193: /* decl_functor */
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 194: /* decl_func */
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 195: /* decl_args */
5470 #line 309 "src/parser_proc_grammar.y" /* glr.c:846 */
5471 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5472 #line 5473 "src/parser_proc.c" /* glr.c:846 */
5473 break;
5474
5475 case 196: /* decl_anon_arg */
5476 #line 297 "src/parser_proc_grammar.y" /* glr.c:846 */
5477 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5478 #line 5479 "src/parser_proc.c" /* glr.c:846 */
5479 break;
5480
5481 case 197: /* decl_arg */
5482 #line 297 "src/parser_proc_grammar.y" /* glr.c:846 */
5483 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5484 #line 5485 "src/parser_proc.c" /* glr.c:846 */
5485 break;
5486
5487 case 198: /* decl_var */
5488 #line 299 "src/parser_proc_grammar.y" /* glr.c:846 */
5489 {psi_decl_var_free(&(*(struct psi_decl_var **)(&(*yyvaluep))));}
5490 #line 5491 "src/parser_proc.c" /* glr.c:846 */
5491 break;
5492
5493 case 199: /* decl_union */
5494 #line 303 "src/parser_proc_grammar.y" /* glr.c:846 */
5495 {psi_decl_union_free(&(*(struct psi_decl_union **)(&(*yyvaluep))));}
5496 #line 5497 "src/parser_proc.c" /* glr.c:846 */
5497 break;
5498
5499 case 200: /* decl_struct */
5500 #line 301 "src/parser_proc_grammar.y" /* glr.c:846 */
5501 {psi_decl_struct_free(&(*(struct psi_decl_struct **)(&(*yyvaluep))));}
5502 #line 5503 "src/parser_proc.c" /* glr.c:846 */
5503 break;
5504
5505 case 201: /* decl_struct_args */
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 202: /* struct_args_block */
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 203: /* struct_args */
5518 #line 309 "src/parser_proc_grammar.y" /* glr.c:846 */
5519 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5520 #line 5521 "src/parser_proc.c" /* glr.c:846 */
5521 break;
5522
5523 case 204: /* struct_arg_var_list */
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 205: /* decl_vars_with_layout */
5530 #line 309 "src/parser_proc_grammar.y" /* glr.c:846 */
5531 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5532 #line 5533 "src/parser_proc.c" /* glr.c:846 */
5533 break;
5534
5535 case 206: /* decl_enum */
5536 #line 305 "src/parser_proc_grammar.y" /* glr.c:846 */
5537 {psi_decl_enum_free(&(*(struct psi_decl_enum **)(&(*yyvaluep))));}
5538 #line 5539 "src/parser_proc.c" /* glr.c:846 */
5539 break;
5540
5541 case 207: /* decl_enum_items */
5542 #line 309 "src/parser_proc_grammar.y" /* glr.c:846 */
5543 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5544 #line 5545 "src/parser_proc.c" /* glr.c:846 */
5545 break;
5546
5547 case 208: /* decl_enum_item */
5548 #line 307 "src/parser_proc_grammar.y" /* glr.c:846 */
5549 {psi_decl_enum_item_free(&(*(struct psi_decl_enum_item **)(&(*yyvaluep))));}
5550 #line 5551 "src/parser_proc.c" /* glr.c:846 */
5551 break;
5552
5553 case 209: /* num_exp */
5554 #line 365 "src/parser_proc_grammar.y" /* glr.c:846 */
5555 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
5556 #line 5557 "src/parser_proc.c" /* glr.c:846 */
5557 break;
5558
5559 case 210: /* number */
5560 #line 367 "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 211: /* sizeof */
5566 #line 317 "src/parser_proc_grammar.y" /* glr.c:846 */
5567 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
5568 #line 5569 "src/parser_proc.c" /* glr.c:846 */
5569 break;
5570
5571 case 212: /* sizeof_body */
5572 #line 317 "src/parser_proc_grammar.y" /* glr.c:846 */
5573 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
5574 #line 5575 "src/parser_proc.c" /* glr.c:846 */
5575 break;
5576
5577 case 213: /* sizeof_body_notypes */
5578 #line 317 "src/parser_proc_grammar.y" /* glr.c:846 */
5579 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
5580 #line 5581 "src/parser_proc.c" /* glr.c:846 */
5581 break;
5582
5583 case 214: /* enum_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 215: /* union_name */
5590 #line 256 "src/parser_proc_grammar.y" /* glr.c:846 */
5591 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5592 #line 5593 "src/parser_proc.c" /* glr.c:846 */
5593 break;
5594
5595 case 216: /* struct_name */
5596 #line 256 "src/parser_proc_grammar.y" /* glr.c:846 */
5597 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5598 #line 5599 "src/parser_proc.c" /* glr.c:846 */
5599 break;
5600
5601 case 217: /* optional_name */
5602 #line 256 "src/parser_proc_grammar.y" /* glr.c:846 */
5603 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5604 #line 5605 "src/parser_proc.c" /* glr.c:846 */
5605 break;
5606
5607 case 218: /* decl_layout */
5608 #line 314 "src/parser_proc_grammar.y" /* glr.c:846 */
5609 {psi_layout_free(&(*(struct psi_layout **)(&(*yyvaluep))));}
5610 #line 5611 "src/parser_proc.c" /* glr.c:846 */
5611 break;
5612
5613 case 219: /* align_and_size */
5614 #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */
5615 {}
5616 #line 5617 "src/parser_proc.c" /* glr.c:846 */
5617 break;
5618
5619 case 220: /* array_size */
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 221: /* indirection */
5626 #line 370 "src/parser_proc_grammar.y" /* glr.c:846 */
5627 {}
5628 #line 5629 "src/parser_proc.c" /* glr.c:846 */
5629 break;
5630
5631 case 222: /* pointers */
5632 #line 370 "src/parser_proc_grammar.y" /* glr.c:846 */
5633 {}
5634 #line 5635 "src/parser_proc.c" /* glr.c:846 */
5635 break;
5636
5637 case 223: /* asterisks */
5638 #line 370 "src/parser_proc_grammar.y" /* glr.c:846 */
5639 {}
5640 #line 5641 "src/parser_proc.c" /* glr.c:846 */
5641 break;
5642
5643 case 225: /* impl */
5644 #line 320 "src/parser_proc_grammar.y" /* glr.c:846 */
5645 {psi_impl_free(&(*(struct psi_impl **)(&(*yyvaluep))));}
5646 #line 5647 "src/parser_proc.c" /* glr.c:846 */
5647 break;
5648
5649 case 226: /* impl_func */
5650 #line 322 "src/parser_proc_grammar.y" /* glr.c:846 */
5651 {psi_impl_func_free(&(*(struct psi_impl_func **)(&(*yyvaluep))));}
5652 #line 5653 "src/parser_proc.c" /* glr.c:846 */
5653 break;
5654
5655 case 227: /* impl_args */
5656 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5657 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5658 #line 5659 "src/parser_proc.c" /* glr.c:846 */
5659 break;
5660
5661 case 228: /* impl_arg */
5662 #line 324 "src/parser_proc_grammar.y" /* glr.c:846 */
5663 {psi_impl_arg_free(&(*(struct psi_impl_arg **)(&(*yyvaluep))));}
5664 #line 5665 "src/parser_proc.c" /* glr.c:846 */
5665 break;
5666
5667 case 229: /* impl_var */
5668 #line 328 "src/parser_proc_grammar.y" /* glr.c:846 */
5669 {psi_impl_var_free(&(*(struct psi_impl_var **)(&(*yyvaluep))));}
5670 #line 5671 "src/parser_proc.c" /* glr.c:846 */
5671 break;
5672
5673 case 230: /* impl_type */
5674 #line 326 "src/parser_proc_grammar.y" /* glr.c:846 */
5675 {psi_impl_type_free(&(*(struct psi_impl_type **)(&(*yyvaluep))));}
5676 #line 5677 "src/parser_proc.c" /* glr.c:846 */
5677 break;
5678
5679 case 231: /* impl_type_token */
5680 #line 360 "src/parser_proc_grammar.y" /* glr.c:846 */
5681 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5682 #line 5683 "src/parser_proc.c" /* glr.c:846 */
5683 break;
5684
5685 case 232: /* impl_stmts */
5686 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5687 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5688 #line 5689 "src/parser_proc.c" /* glr.c:846 */
5689 break;
5690
5691 case 233: /* impl_stmt */
5692 #line 358 "src/parser_proc_grammar.y" /* glr.c:846 */
5693 {psi_impl_stmt_free(&(*(struct psi_token ***)(&(*yyvaluep))));}
5694 #line 5695 "src/parser_proc.c" /* glr.c:846 */
5695 break;
5696
5697 case 234: /* let_stmt */
5698 #line 331 "src/parser_proc_grammar.y" /* glr.c:846 */
5699 {psi_let_stmt_free(&(*(struct psi_let_stmt **)(&(*yyvaluep))));}
5700 #line 5701 "src/parser_proc.c" /* glr.c:846 */
5701 break;
5702
5703 case 235: /* let_exp */
5704 #line 333 "src/parser_proc_grammar.y" /* glr.c:846 */
5705 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
5706 #line 5707 "src/parser_proc.c" /* glr.c:846 */
5707 break;
5708
5709 case 236: /* let_exp_byref */
5710 #line 333 "src/parser_proc_grammar.y" /* glr.c:846 */
5711 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
5712 #line 5713 "src/parser_proc.c" /* glr.c:846 */
5713 break;
5714
5715 case 237: /* let_exp_assign */
5716 #line 333 "src/parser_proc_grammar.y" /* glr.c:846 */
5717 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
5718 #line 5719 "src/parser_proc.c" /* glr.c:846 */
5719 break;
5720
5721 case 238: /* let_calloc */
5722 #line 335 "src/parser_proc_grammar.y" /* glr.c:846 */
5723 {psi_let_calloc_free(&(*(struct psi_let_calloc **)(&(*yyvaluep))));}
5724 #line 5725 "src/parser_proc.c" /* glr.c:846 */
5725 break;
5726
5727 case 239: /* let_callback */
5728 #line 337 "src/parser_proc_grammar.y" /* glr.c:846 */
5729 {psi_let_callback_free(&(*(struct psi_let_callback **)(&(*yyvaluep))));}
5730 #line 5731 "src/parser_proc.c" /* glr.c:846 */
5731 break;
5732
5733 case 240: /* let_func */
5734 #line 339 "src/parser_proc_grammar.y" /* glr.c:846 */
5735 {psi_let_func_free(&(*(struct psi_let_func **)(&(*yyvaluep))));}
5736 #line 5737 "src/parser_proc.c" /* glr.c:846 */
5737 break;
5738
5739 case 241: /* let_func_token */
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 242: /* let_func_exps */
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 243: /* let_exps */
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 244: /* callback_rval */
5758 #line 360 "src/parser_proc_grammar.y" /* glr.c:846 */
5759 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5760 #line 5761 "src/parser_proc.c" /* glr.c:846 */
5761 break;
5762
5763 case 245: /* callback_arg_list */
5764 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5765 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5766 #line 5767 "src/parser_proc.c" /* glr.c:846 */
5767 break;
5768
5769 case 246: /* callback_args */
5770 #line 362 "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 247: /* return_stmt */
5776 #line 349 "src/parser_proc_grammar.y" /* glr.c:846 */
5777 {psi_return_stmt_free(&(*(struct psi_return_stmt **)(&(*yyvaluep))));}
5778 #line 5779 "src/parser_proc.c" /* glr.c:846 */
5779 break;
5780
5781 case 248: /* return_exp */
5782 #line 351 "src/parser_proc_grammar.y" /* glr.c:846 */
5783 {psi_return_exp_free(&(*(struct psi_return_exp **)(&(*yyvaluep))));}
5784 #line 5785 "src/parser_proc.c" /* glr.c:846 */
5785 break;
5786
5787 case 249: /* call_decl_vars */
5788 #line 309 "src/parser_proc_grammar.y" /* glr.c:846 */
5789 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5790 #line 5791 "src/parser_proc.c" /* glr.c:846 */
5791 break;
5792
5793 case 250: /* set_stmt */
5794 #line 341 "src/parser_proc_grammar.y" /* glr.c:846 */
5795 {psi_set_stmt_free(&(*(struct psi_set_stmt **)(&(*yyvaluep))));}
5796 #line 5797 "src/parser_proc.c" /* glr.c:846 */
5797 break;
5798
5799 case 251: /* set_exp */
5800 #line 343 "src/parser_proc_grammar.y" /* glr.c:846 */
5801 {psi_set_exp_free(&(*(struct psi_set_exp **)(&(*yyvaluep))));}
5802 #line 5803 "src/parser_proc.c" /* glr.c:846 */
5803 break;
5804
5805 case 252: /* set_func */
5806 #line 345 "src/parser_proc_grammar.y" /* glr.c:846 */
5807 {psi_set_func_free(&(*(struct psi_set_func **)(&(*yyvaluep))));}
5808 #line 5809 "src/parser_proc.c" /* glr.c:846 */
5809 break;
5810
5811 case 253: /* set_func_token */
5812 #line 360 "src/parser_proc_grammar.y" /* glr.c:846 */
5813 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5814 #line 5815 "src/parser_proc.c" /* glr.c:846 */
5815 break;
5816
5817 case 254: /* set_func_exps */
5818 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5819 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5820 #line 5821 "src/parser_proc.c" /* glr.c:846 */
5821 break;
5822
5823 case 255: /* set_exps */
5824 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5825 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5826 #line 5827 "src/parser_proc.c" /* glr.c:846 */
5827 break;
5828
5829 case 256: /* assert_stmt */
5830 #line 347 "src/parser_proc_grammar.y" /* glr.c:846 */
5831 {psi_assert_stmt_free(&(*(struct psi_assert_stmt **)(&(*yyvaluep))));}
5832 #line 5833 "src/parser_proc.c" /* glr.c:846 */
5833 break;
5834
5835 case 257: /* assert_stmt_token */
5836 #line 360 "src/parser_proc_grammar.y" /* glr.c:846 */
5837 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5838 #line 5839 "src/parser_proc.c" /* glr.c:846 */
5839 break;
5840
5841 case 258: /* free_stmt */
5842 #line 353 "src/parser_proc_grammar.y" /* glr.c:846 */
5843 {psi_free_stmt_free(&(*(struct psi_free_stmt **)(&(*yyvaluep))));}
5844 #line 5845 "src/parser_proc.c" /* glr.c:846 */
5845 break;
5846
5847 case 259: /* free_exps */
5848 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5849 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5850 #line 5851 "src/parser_proc.c" /* glr.c:846 */
5851 break;
5852
5853 case 260: /* free_exp */
5854 #line 355 "src/parser_proc_grammar.y" /* glr.c:846 */
5855 {psi_free_exp_free(&(*(struct psi_free_exp **)(&(*yyvaluep))));}
5856 #line 5857 "src/parser_proc.c" /* glr.c:846 */
5857 break;
5858
5859 case 261: /* reference */
5860 #line 372 "src/parser_proc_grammar.y" /* glr.c:846 */
5861 {}
5862 #line 5863 "src/parser_proc.c" /* glr.c:846 */
5863 break;
5864
5865
5866 default:
5867 break;
5868 }
5869 YY_IGNORE_MAYBE_UNINITIALIZED_END
5870 }
5871
5872 /** Number of symbols composing the right hand side of rule #RULE. */
5873 static inline int
5874 yyrhsLength (yyRuleNum yyrule)
5875 {
5876 return yyr2[yyrule];
5877 }
5878
5879 static void
5880 yydestroyGLRState (char const *yymsg, yyGLRState *yys, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
5881 {
5882 if (yys->yyresolved)
5883 yydestruct (yymsg, yystos[yys->yylrState],
5884 &yys->yysemantics.yysval, P, tokens, index);
5885 else
5886 {
5887 #if YYDEBUG
5888 if (yydebug)
5889 {
5890 if (yys->yysemantics.yyfirstVal)
5891 YYFPRINTF (stderr, "%s unresolved", yymsg);
5892 else
5893 YYFPRINTF (stderr, "%s incomplete", yymsg);
5894 YY_SYMBOL_PRINT ("", yystos[yys->yylrState], YY_NULLPTR, &yys->yyloc);
5895 }
5896 #endif
5897
5898 if (yys->yysemantics.yyfirstVal)
5899 {
5900 yySemanticOption *yyoption = yys->yysemantics.yyfirstVal;
5901 yyGLRState *yyrh;
5902 int yyn;
5903 for (yyrh = yyoption->yystate, yyn = yyrhsLength (yyoption->yyrule);
5904 yyn > 0;
5905 yyrh = yyrh->yypred, yyn -= 1)
5906 yydestroyGLRState (yymsg, yyrh, P, tokens, index);
5907 }
5908 }
5909 }
5910
5911 /** Left-hand-side symbol for rule #YYRULE. */
5912 static inline yySymbol
5913 yylhsNonterm (yyRuleNum yyrule)
5914 {
5915 return yyr1[yyrule];
5916 }
5917
5918 #define yypact_value_is_default(Yystate) \
5919 (!!((Yystate) == (-693)))
5920
5921 /** True iff LR state YYSTATE has only a default reduction (regardless
5922 * of token). */
5923 static inline yybool
5924 yyisDefaultedState (yyStateNum yystate)
5925 {
5926 return yypact_value_is_default (yypact[yystate]);
5927 }
5928
5929 /** The default reduction for YYSTATE, assuming it has one. */
5930 static inline yyRuleNum
5931 yydefaultAction (yyStateNum yystate)
5932 {
5933 return yydefact[yystate];
5934 }
5935
5936 #define yytable_value_is_error(Yytable_value) \
5937 0
5938
5939 /** Set *YYACTION to the action to take in YYSTATE on seeing YYTOKEN.
5940 * Result R means
5941 * R < 0: Reduce on rule -R.
5942 * R = 0: Error.
5943 * R > 0: Shift to state R.
5944 * Set *YYCONFLICTS to a pointer into yyconfl to a 0-terminated list
5945 * of conflicting reductions.
5946 */
5947 static inline void
5948 yygetLRActions (yyStateNum yystate, int yytoken,
5949 int* yyaction, const short int** yyconflicts)
5950 {
5951 int yyindex = yypact[yystate] + yytoken;
5952 if (yypact_value_is_default (yypact[yystate])
5953 || yyindex < 0 || YYLAST < yyindex || yycheck[yyindex] != yytoken)
5954 {
5955 *yyaction = -yydefact[yystate];
5956 *yyconflicts = yyconfl;
5957 }
5958 else if (! yytable_value_is_error (yytable[yyindex]))
5959 {
5960 *yyaction = yytable[yyindex];
5961 *yyconflicts = yyconfl + yyconflp[yyindex];
5962 }
5963 else
5964 {
5965 *yyaction = 0;
5966 *yyconflicts = yyconfl + yyconflp[yyindex];
5967 }
5968 }
5969
5970 /** Compute post-reduction state.
5971 * \param yystate the current state
5972 * \param yysym the nonterminal to push on the stack
5973 */
5974 static inline yyStateNum
5975 yyLRgotoState (yyStateNum yystate, yySymbol yysym)
5976 {
5977 int yyr = yypgoto[yysym - YYNTOKENS] + yystate;
5978 if (0 <= yyr && yyr <= YYLAST && yycheck[yyr] == yystate)
5979 return yytable[yyr];
5980 else
5981 return yydefgoto[yysym - YYNTOKENS];
5982 }
5983
5984 static inline yybool
5985 yyisShiftAction (int yyaction)
5986 {
5987 return 0 < yyaction;
5988 }
5989
5990 static inline yybool
5991 yyisErrorAction (int yyaction)
5992 {
5993 return yyaction == 0;
5994 }
5995
5996 /* GLRStates */
5997
5998 /** Return a fresh GLRStackItem in YYSTACKP. The item is an LR state
5999 * if YYISSTATE, and otherwise a semantic option. Callers should call
6000 * YY_RESERVE_GLRSTACK afterwards to make sure there is sufficient
6001 * headroom. */
6002
6003 static inline yyGLRStackItem*
6004 yynewGLRStackItem (yyGLRStack* yystackp, yybool yyisState)
6005 {
6006 yyGLRStackItem* yynewItem = yystackp->yynextFree;
6007 yystackp->yyspaceLeft -= 1;
6008 yystackp->yynextFree += 1;
6009 yynewItem->yystate.yyisState = yyisState;
6010 return yynewItem;
6011 }
6012
6013 /** Add a new semantic action that will execute the action for rule
6014 * YYRULE on the semantic values in YYRHS to the list of
6015 * alternative actions for YYSTATE. Assumes that YYRHS comes from
6016 * stack #YYK of *YYSTACKP. */
6017 static void
6018 yyaddDeferredAction (yyGLRStack* yystackp, size_t yyk, yyGLRState* yystate,
6019 yyGLRState* yyrhs, yyRuleNum yyrule)
6020 {
6021 yySemanticOption* yynewOption =
6022 &yynewGLRStackItem (yystackp, yyfalse)->yyoption;
6023 YYASSERT (!yynewOption->yyisState);
6024 yynewOption->yystate = yyrhs;
6025 yynewOption->yyrule = yyrule;
6026 if (yystackp->yytops.yylookaheadNeeds[yyk])
6027 {
6028 yynewOption->yyrawchar = yychar;
6029 yynewOption->yyval = yylval;
6030 }
6031 else
6032 yynewOption->yyrawchar = YYEMPTY;
6033 yynewOption->yynext = yystate->yysemantics.yyfirstVal;
6034 yystate->yysemantics.yyfirstVal = yynewOption;
6035
6036 YY_RESERVE_GLRSTACK (yystackp);
6037 }
6038
6039 /* GLRStacks */
6040
6041 /** Initialize YYSET to a singleton set containing an empty stack. */
6042 static yybool
6043 yyinitStateSet (yyGLRStateSet* yyset)
6044 {
6045 yyset->yysize = 1;
6046 yyset->yycapacity = 16;
6047 yyset->yystates = (yyGLRState**) YYMALLOC (16 * sizeof yyset->yystates[0]);
6048 if (! yyset->yystates)
6049 return yyfalse;
6050 yyset->yystates[0] = YY_NULLPTR;
6051 yyset->yylookaheadNeeds =
6052 (yybool*) YYMALLOC (16 * sizeof yyset->yylookaheadNeeds[0]);
6053 if (! yyset->yylookaheadNeeds)
6054 {
6055 YYFREE (yyset->yystates);
6056 return yyfalse;
6057 }
6058 return yytrue;
6059 }
6060
6061 static void yyfreeStateSet (yyGLRStateSet* yyset)
6062 {
6063 YYFREE (yyset->yystates);
6064 YYFREE (yyset->yylookaheadNeeds);
6065 }
6066
6067 /** Initialize *YYSTACKP to a single empty stack, with total maximum
6068 * capacity for all stacks of YYSIZE. */
6069 static yybool
6070 yyinitGLRStack (yyGLRStack* yystackp, size_t yysize)
6071 {
6072 yystackp->yyerrState = 0;
6073 yynerrs = 0;
6074 yystackp->yyspaceLeft = yysize;
6075 yystackp->yyitems =
6076 (yyGLRStackItem*) YYMALLOC (yysize * sizeof yystackp->yynextFree[0]);
6077 if (!yystackp->yyitems)
6078 return yyfalse;
6079 yystackp->yynextFree = yystackp->yyitems;
6080 yystackp->yysplitPoint = YY_NULLPTR;
6081 yystackp->yylastDeleted = YY_NULLPTR;
6082 return yyinitStateSet (&yystackp->yytops);
6083 }
6084
6085
6086 #if YYSTACKEXPANDABLE
6087 # define YYRELOC(YYFROMITEMS,YYTOITEMS,YYX,YYTYPE) \
6088 &((YYTOITEMS) - ((YYFROMITEMS) - (yyGLRStackItem*) (YYX)))->YYTYPE
6089
6090 /** If *YYSTACKP is expandable, extend it. WARNING: Pointers into the
6091 stack from outside should be considered invalid after this call.
6092 We always expand when there are 1 or fewer items left AFTER an
6093 allocation, so that we can avoid having external pointers exist
6094 across an allocation. */
6095 static void
6096 yyexpandGLRStack (yyGLRStack* yystackp)
6097 {
6098 yyGLRStackItem* yynewItems;
6099 yyGLRStackItem* yyp0, *yyp1;
6100 size_t yynewSize;
6101 size_t yyn;
6102 size_t yysize = yystackp->yynextFree - yystackp->yyitems;
6103 if (YYMAXDEPTH - YYHEADROOM < yysize)
6104 yyMemoryExhausted (yystackp);
6105 yynewSize = 2*yysize;
6106 if (YYMAXDEPTH < yynewSize)
6107 yynewSize = YYMAXDEPTH;
6108 yynewItems = (yyGLRStackItem*) YYMALLOC (yynewSize * sizeof yynewItems[0]);
6109 if (! yynewItems)
6110 yyMemoryExhausted (yystackp);
6111 for (yyp0 = yystackp->yyitems, yyp1 = yynewItems, yyn = yysize;
6112 0 < yyn;
6113 yyn -= 1, yyp0 += 1, yyp1 += 1)
6114 {
6115 *yyp1 = *yyp0;
6116 if (*(yybool *) yyp0)
6117 {
6118 yyGLRState* yys0 = &yyp0->yystate;
6119 yyGLRState* yys1 = &yyp1->yystate;
6120 if (yys0->yypred != YY_NULLPTR)
6121 yys1->yypred =
6122 YYRELOC (yyp0, yyp1, yys0->yypred, yystate);
6123 if (! yys0->yyresolved && yys0->yysemantics.yyfirstVal != YY_NULLPTR)
6124 yys1->yysemantics.yyfirstVal =
6125 YYRELOC (yyp0, yyp1, yys0->yysemantics.yyfirstVal, yyoption);
6126 }
6127 else
6128 {
6129 yySemanticOption* yyv0 = &yyp0->yyoption;
6130 yySemanticOption* yyv1 = &yyp1->yyoption;
6131 if (yyv0->yystate != YY_NULLPTR)
6132 yyv1->yystate = YYRELOC (yyp0, yyp1, yyv0->yystate, yystate);
6133 if (yyv0->yynext != YY_NULLPTR)
6134 yyv1->yynext = YYRELOC (yyp0, yyp1, yyv0->yynext, yyoption);
6135 }
6136 }
6137 if (yystackp->yysplitPoint != YY_NULLPTR)
6138 yystackp->yysplitPoint = YYRELOC (yystackp->yyitems, yynewItems,
6139 yystackp->yysplitPoint, yystate);
6140
6141 for (yyn = 0; yyn < yystackp->yytops.yysize; yyn += 1)
6142 if (yystackp->yytops.yystates[yyn] != YY_NULLPTR)
6143 yystackp->yytops.yystates[yyn] =
6144 YYRELOC (yystackp->yyitems, yynewItems,
6145 yystackp->yytops.yystates[yyn], yystate);
6146 YYFREE (yystackp->yyitems);
6147 yystackp->yyitems = yynewItems;
6148 yystackp->yynextFree = yynewItems + yysize;
6149 yystackp->yyspaceLeft = yynewSize - yysize;
6150 }
6151 #endif
6152
6153 static void
6154 yyfreeGLRStack (yyGLRStack* yystackp)
6155 {
6156 YYFREE (yystackp->yyitems);
6157 yyfreeStateSet (&yystackp->yytops);
6158 }
6159
6160 /** Assuming that YYS is a GLRState somewhere on *YYSTACKP, update the
6161 * splitpoint of *YYSTACKP, if needed, so that it is at least as deep as
6162 * YYS. */
6163 static inline void
6164 yyupdateSplit (yyGLRStack* yystackp, yyGLRState* yys)
6165 {
6166 if (yystackp->yysplitPoint != YY_NULLPTR && yystackp->yysplitPoint > yys)
6167 yystackp->yysplitPoint = yys;
6168 }
6169
6170 /** Invalidate stack #YYK in *YYSTACKP. */
6171 static inline void
6172 yymarkStackDeleted (yyGLRStack* yystackp, size_t yyk)
6173 {
6174 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
6175 yystackp->yylastDeleted = yystackp->yytops.yystates[yyk];
6176 yystackp->yytops.yystates[yyk] = YY_NULLPTR;
6177 }
6178
6179 /** Undelete the last stack in *YYSTACKP that was marked as deleted. Can
6180 only be done once after a deletion, and only when all other stacks have
6181 been deleted. */
6182 static void
6183 yyundeleteLastStack (yyGLRStack* yystackp)
6184 {
6185 if (yystackp->yylastDeleted == YY_NULLPTR || yystackp->yytops.yysize != 0)
6186 return;
6187 yystackp->yytops.yystates[0] = yystackp->yylastDeleted;
6188 yystackp->yytops.yysize = 1;
6189 YYDPRINTF ((stderr, "Restoring last deleted stack as stack #0.\n"));
6190 yystackp->yylastDeleted = YY_NULLPTR;
6191 }
6192
6193 static inline void
6194 yyremoveDeletes (yyGLRStack* yystackp)
6195 {
6196 size_t yyi, yyj;
6197 yyi = yyj = 0;
6198 while (yyj < yystackp->yytops.yysize)
6199 {
6200 if (yystackp->yytops.yystates[yyi] == YY_NULLPTR)
6201 {
6202 if (yyi == yyj)
6203 {
6204 YYDPRINTF ((stderr, "Removing dead stacks.\n"));
6205 }
6206 yystackp->yytops.yysize -= 1;
6207 }
6208 else
6209 {
6210 yystackp->yytops.yystates[yyj] = yystackp->yytops.yystates[yyi];
6211 /* In the current implementation, it's unnecessary to copy
6212 yystackp->yytops.yylookaheadNeeds[yyi] since, after
6213 yyremoveDeletes returns, the parser immediately either enters
6214 deterministic operation or shifts a token. However, it doesn't
6215 hurt, and the code might evolve to need it. */
6216 yystackp->yytops.yylookaheadNeeds[yyj] =
6217 yystackp->yytops.yylookaheadNeeds[yyi];
6218 if (yyj != yyi)
6219 {
6220 YYDPRINTF ((stderr, "Rename stack %lu -> %lu.\n",
6221 (unsigned long int) yyi, (unsigned long int) yyj));
6222 }
6223 yyj += 1;
6224 }
6225 yyi += 1;
6226 }
6227 }
6228
6229 /** Shift to a new state on stack #YYK of *YYSTACKP, corresponding to LR
6230 * state YYLRSTATE, at input position YYPOSN, with (resolved) semantic
6231 * value *YYVALP and source location *YYLOCP. */
6232 static inline void
6233 yyglrShift (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
6234 size_t yyposn,
6235 YYSTYPE* yyvalp)
6236 {
6237 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
6238
6239 yynewState->yylrState = yylrState;
6240 yynewState->yyposn = yyposn;
6241 yynewState->yyresolved = yytrue;
6242 yynewState->yypred = yystackp->yytops.yystates[yyk];
6243 yynewState->yysemantics.yysval = *yyvalp;
6244 yystackp->yytops.yystates[yyk] = yynewState;
6245
6246 YY_RESERVE_GLRSTACK (yystackp);
6247 }
6248
6249 /** Shift stack #YYK of *YYSTACKP, to a new state corresponding to LR
6250 * state YYLRSTATE, at input position YYPOSN, with the (unresolved)
6251 * semantic value of YYRHS under the action for YYRULE. */
6252 static inline void
6253 yyglrShiftDefer (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
6254 size_t yyposn, yyGLRState* yyrhs, yyRuleNum yyrule)
6255 {
6256 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
6257 YYASSERT (yynewState->yyisState);
6258
6259 yynewState->yylrState = yylrState;
6260 yynewState->yyposn = yyposn;
6261 yynewState->yyresolved = yyfalse;
6262 yynewState->yypred = yystackp->yytops.yystates[yyk];
6263 yynewState->yysemantics.yyfirstVal = YY_NULLPTR;
6264 yystackp->yytops.yystates[yyk] = yynewState;
6265
6266 /* Invokes YY_RESERVE_GLRSTACK. */
6267 yyaddDeferredAction (yystackp, yyk, yynewState, yyrhs, yyrule);
6268 }
6269
6270 #if !YYDEBUG
6271 # define YY_REDUCE_PRINT(Args)
6272 #else
6273 # define YY_REDUCE_PRINT(Args) \
6274 do { \
6275 if (yydebug) \
6276 yy_reduce_print Args; \
6277 } while (0)
6278
6279 /*----------------------------------------------------------------------.
6280 | Report that stack #YYK of *YYSTACKP is going to be reduced by YYRULE. |
6281 `----------------------------------------------------------------------*/
6282
6283 static inline void
6284 yy_reduce_print (int yynormal, yyGLRStackItem* yyvsp, size_t yyk,
6285 yyRuleNum yyrule, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6286 {
6287 int yynrhs = yyrhsLength (yyrule);
6288 int yyi;
6289 YYFPRINTF (stderr, "Reducing stack %lu by rule %d (line %lu):\n",
6290 (unsigned long int) yyk, yyrule - 1,
6291 (unsigned long int) yyrline[yyrule]);
6292 if (! yynormal)
6293 yyfillin (yyvsp, 1, -yynrhs);
6294 /* The symbols being reduced. */
6295 for (yyi = 0; yyi < yynrhs; yyi++)
6296 {
6297 YYFPRINTF (stderr, " $%d = ", yyi + 1);
6298 yy_symbol_print (stderr,
6299 yystos[yyvsp[yyi - yynrhs + 1].yystate.yylrState],
6300 &yyvsp[yyi - yynrhs + 1].yystate.yysemantics.yysval
6301 , P, tokens, index);
6302 if (!yyvsp[yyi - yynrhs + 1].yystate.yyresolved)
6303 YYFPRINTF (stderr, " (unresolved)");
6304 YYFPRINTF (stderr, "\n");
6305 }
6306 }
6307 #endif
6308
6309 /** Pop the symbols consumed by reduction #YYRULE from the top of stack
6310 * #YYK of *YYSTACKP, and perform the appropriate semantic action on their
6311 * semantic values. Assumes that all ambiguities in semantic values
6312 * have been previously resolved. Set *YYVALP to the resulting value,
6313 * and *YYLOCP to the computed location (if any). Return value is as
6314 * for userAction. */
6315 static inline YYRESULTTAG
6316 yydoAction (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
6317 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6318 {
6319 int yynrhs = yyrhsLength (yyrule);
6320
6321 if (yystackp->yysplitPoint == YY_NULLPTR)
6322 {
6323 /* Standard special case: single stack. */
6324 yyGLRStackItem* yyrhs = (yyGLRStackItem*) yystackp->yytops.yystates[yyk];
6325 YYASSERT (yyk == 0);
6326 yystackp->yynextFree -= yynrhs;
6327 yystackp->yyspaceLeft += yynrhs;
6328 yystackp->yytops.yystates[0] = & yystackp->yynextFree[-1].yystate;
6329 YY_REDUCE_PRINT ((1, yyrhs, yyk, yyrule, P, tokens, index));
6330 return yyuserAction (yyrule, yynrhs, yyrhs, yystackp,
6331 yyvalp, P, tokens, index);
6332 }
6333 else
6334 {
6335 int yyi;
6336 yyGLRState* yys;
6337 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
6338 yys = yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred
6339 = yystackp->yytops.yystates[yyk];
6340 for (yyi = 0; yyi < yynrhs; yyi += 1)
6341 {
6342 yys = yys->yypred;
6343 YYASSERT (yys);
6344 }
6345 yyupdateSplit (yystackp, yys);
6346 yystackp->yytops.yystates[yyk] = yys;
6347 YY_REDUCE_PRINT ((0, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1, yyk, yyrule, P, tokens, index));
6348 return yyuserAction (yyrule, yynrhs, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
6349 yystackp, yyvalp, P, tokens, index);
6350 }
6351 }
6352
6353 /** Pop items off stack #YYK of *YYSTACKP according to grammar rule YYRULE,
6354 * and push back on the resulting nonterminal symbol. Perform the
6355 * semantic action associated with YYRULE and store its value with the
6356 * newly pushed state, if YYFORCEEVAL or if *YYSTACKP is currently
6357 * unambiguous. Otherwise, store the deferred semantic action with
6358 * the new state. If the new state would have an identical input
6359 * position, LR state, and predecessor to an existing state on the stack,
6360 * it is identified with that existing state, eliminating stack #YYK from
6361 * *YYSTACKP. In this case, the semantic value is
6362 * added to the options for the existing state's semantic value.
6363 */
6364 static inline YYRESULTTAG
6365 yyglrReduce (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
6366 yybool yyforceEval, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6367 {
6368 size_t yyposn = yystackp->yytops.yystates[yyk]->yyposn;
6369
6370 if (yyforceEval || yystackp->yysplitPoint == YY_NULLPTR)
6371 {
6372 YYSTYPE yysval;
6373
6374 YYRESULTTAG yyflag = yydoAction (yystackp, yyk, yyrule, &yysval, P, tokens, index);
6375 if (yyflag == yyerr && yystackp->yysplitPoint != YY_NULLPTR)
6376 {
6377 YYDPRINTF ((stderr, "Parse on stack %lu rejected by rule #%d.\n",
6378 (unsigned long int) yyk, yyrule - 1));
6379 }
6380 if (yyflag != yyok)
6381 return yyflag;
6382 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyrule], &yysval, &yyloc);
6383 yyglrShift (yystackp, yyk,
6384 yyLRgotoState (yystackp->yytops.yystates[yyk]->yylrState,
6385 yylhsNonterm (yyrule)),
6386 yyposn, &yysval);
6387 }
6388 else
6389 {
6390 size_t yyi;
6391 int yyn;
6392 yyGLRState* yys, *yys0 = yystackp->yytops.yystates[yyk];
6393 yyStateNum yynewLRState;
6394
6395 for (yys = yystackp->yytops.yystates[yyk], yyn = yyrhsLength (yyrule);
6396 0 < yyn; yyn -= 1)
6397 {
6398 yys = yys->yypred;
6399 YYASSERT (yys);
6400 }
6401 yyupdateSplit (yystackp, yys);
6402 yynewLRState = yyLRgotoState (yys->yylrState, yylhsNonterm (yyrule));
6403 YYDPRINTF ((stderr,
6404 "Reduced stack %lu by rule #%d; action deferred. "
6405 "Now in state %d.\n",
6406 (unsigned long int) yyk, yyrule - 1, yynewLRState));
6407 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
6408 if (yyi != yyk && yystackp->yytops.yystates[yyi] != YY_NULLPTR)
6409 {
6410 yyGLRState *yysplit = yystackp->yysplitPoint;
6411 yyGLRState *yyp = yystackp->yytops.yystates[yyi];
6412 while (yyp != yys && yyp != yysplit && yyp->yyposn >= yyposn)
6413 {
6414 if (yyp->yylrState == yynewLRState && yyp->yypred == yys)
6415 {
6416 yyaddDeferredAction (yystackp, yyk, yyp, yys0, yyrule);
6417 yymarkStackDeleted (yystackp, yyk);
6418 YYDPRINTF ((stderr, "Merging stack %lu into stack %lu.\n",
6419 (unsigned long int) yyk,
6420 (unsigned long int) yyi));
6421 return yyok;
6422 }
6423 yyp = yyp->yypred;
6424 }
6425 }
6426 yystackp->yytops.yystates[yyk] = yys;
6427 yyglrShiftDefer (yystackp, yyk, yynewLRState, yyposn, yys0, yyrule);
6428 }
6429 return yyok;
6430 }
6431
6432 static size_t
6433 yysplitStack (yyGLRStack* yystackp, size_t yyk)
6434 {
6435 if (yystackp->yysplitPoint == YY_NULLPTR)
6436 {
6437 YYASSERT (yyk == 0);
6438 yystackp->yysplitPoint = yystackp->yytops.yystates[yyk];
6439 }
6440 if (yystackp->yytops.yysize >= yystackp->yytops.yycapacity)
6441 {
6442 yyGLRState** yynewStates;
6443 yybool* yynewLookaheadNeeds;
6444
6445 yynewStates = YY_NULLPTR;
6446
6447 if (yystackp->yytops.yycapacity
6448 > (YYSIZEMAX / (2 * sizeof yynewStates[0])))
6449 yyMemoryExhausted (yystackp);
6450 yystackp->yytops.yycapacity *= 2;
6451
6452 yynewStates =
6453 (yyGLRState**) YYREALLOC (yystackp->yytops.yystates,
6454 (yystackp->yytops.yycapacity
6455 * sizeof yynewStates[0]));
6456 if (yynewStates == YY_NULLPTR)
6457 yyMemoryExhausted (yystackp);
6458 yystackp->yytops.yystates = yynewStates;
6459
6460 yynewLookaheadNeeds =
6461 (yybool*) YYREALLOC (yystackp->yytops.yylookaheadNeeds,
6462 (yystackp->yytops.yycapacity
6463 * sizeof yynewLookaheadNeeds[0]));
6464 if (yynewLookaheadNeeds == YY_NULLPTR)
6465 yyMemoryExhausted (yystackp);
6466 yystackp->yytops.yylookaheadNeeds = yynewLookaheadNeeds;
6467 }
6468 yystackp->yytops.yystates[yystackp->yytops.yysize]
6469 = yystackp->yytops.yystates[yyk];
6470 yystackp->yytops.yylookaheadNeeds[yystackp->yytops.yysize]
6471 = yystackp->yytops.yylookaheadNeeds[yyk];
6472 yystackp->yytops.yysize += 1;
6473 return yystackp->yytops.yysize-1;
6474 }
6475
6476 /** True iff YYY0 and YYY1 represent identical options at the top level.
6477 * That is, they represent the same rule applied to RHS symbols
6478 * that produce the same terminal symbols. */
6479 static yybool
6480 yyidenticalOptions (yySemanticOption* yyy0, yySemanticOption* yyy1)
6481 {
6482 if (yyy0->yyrule == yyy1->yyrule)
6483 {
6484 yyGLRState *yys0, *yys1;
6485 int yyn;
6486 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
6487 yyn = yyrhsLength (yyy0->yyrule);
6488 yyn > 0;
6489 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
6490 if (yys0->yyposn != yys1->yyposn)
6491 return yyfalse;
6492 return yytrue;
6493 }
6494 else
6495 return yyfalse;
6496 }
6497
6498 /** Assuming identicalOptions (YYY0,YYY1), destructively merge the
6499 * alternative semantic values for the RHS-symbols of YYY1 and YYY0. */
6500 static void
6501 yymergeOptionSets (yySemanticOption* yyy0, yySemanticOption* yyy1)
6502 {
6503 yyGLRState *yys0, *yys1;
6504 int yyn;
6505 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
6506 yyn = yyrhsLength (yyy0->yyrule);
6507 yyn > 0;
6508 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
6509 {
6510 if (yys0 == yys1)
6511 break;
6512 else if (yys0->yyresolved)
6513 {
6514 yys1->yyresolved = yytrue;
6515 yys1->yysemantics.yysval = yys0->yysemantics.yysval;
6516 }
6517 else if (yys1->yyresolved)
6518 {
6519 yys0->yyresolved = yytrue;
6520 yys0->yysemantics.yysval = yys1->yysemantics.yysval;
6521 }
6522 else
6523 {
6524 yySemanticOption** yyz0p = &yys0->yysemantics.yyfirstVal;
6525 yySemanticOption* yyz1 = yys1->yysemantics.yyfirstVal;
6526 while (yytrue)
6527 {
6528 if (yyz1 == *yyz0p || yyz1 == YY_NULLPTR)
6529 break;
6530 else if (*yyz0p == YY_NULLPTR)
6531 {
6532 *yyz0p = yyz1;
6533 break;
6534 }
6535 else if (*yyz0p < yyz1)
6536 {
6537 yySemanticOption* yyz = *yyz0p;
6538 *yyz0p = yyz1;
6539 yyz1 = yyz1->yynext;
6540 (*yyz0p)->yynext = yyz;
6541 }
6542 yyz0p = &(*yyz0p)->yynext;
6543 }
6544 yys1->yysemantics.yyfirstVal = yys0->yysemantics.yyfirstVal;
6545 }
6546 }
6547 }
6548
6549 /** Y0 and Y1 represent two possible actions to take in a given
6550 * parsing state; return 0 if no combination is possible,
6551 * 1 if user-mergeable, 2 if Y0 is preferred, 3 if Y1 is preferred. */
6552 static int
6553 yypreference (yySemanticOption* y0, yySemanticOption* y1)
6554 {
6555 yyRuleNum r0 = y0->yyrule, r1 = y1->yyrule;
6556 int p0 = yydprec[r0], p1 = yydprec[r1];
6557
6558 if (p0 == p1)
6559 {
6560 if (yymerger[r0] == 0 || yymerger[r0] != yymerger[r1])
6561 return 0;
6562 else
6563 return 1;
6564 }
6565 if (p0 == 0 || p1 == 0)
6566 return 0;
6567 if (p0 < p1)
6568 return 3;
6569 if (p1 < p0)
6570 return 2;
6571 return 0;
6572 }
6573
6574 static YYRESULTTAG yyresolveValue (yyGLRState* yys,
6575 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index);
6576
6577
6578 /** Resolve the previous YYN states starting at and including state YYS
6579 * on *YYSTACKP. If result != yyok, some states may have been left
6580 * unresolved possibly with empty semantic option chains. Regardless
6581 * of whether result = yyok, each state has been left with consistent
6582 * data so that yydestroyGLRState can be invoked if necessary. */
6583 static YYRESULTTAG
6584 yyresolveStates (yyGLRState* yys, int yyn,
6585 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6586 {
6587 if (0 < yyn)
6588 {
6589 YYASSERT (yys->yypred);
6590 YYCHK (yyresolveStates (yys->yypred, yyn-1, yystackp, P, tokens, index));
6591 if (! yys->yyresolved)
6592 YYCHK (yyresolveValue (yys, yystackp, P, tokens, index));
6593 }
6594 return yyok;
6595 }
6596
6597 /** Resolve the states for the RHS of YYOPT on *YYSTACKP, perform its
6598 * user action, and return the semantic value and location in *YYVALP
6599 * and *YYLOCP. Regardless of whether result = yyok, all RHS states
6600 * have been destroyed (assuming the user action destroys all RHS
6601 * semantic values if invoked). */
6602 static YYRESULTTAG
6603 yyresolveAction (yySemanticOption* yyopt, yyGLRStack* yystackp,
6604 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6605 {
6606 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
6607 int yynrhs = yyrhsLength (yyopt->yyrule);
6608 YYRESULTTAG yyflag =
6609 yyresolveStates (yyopt->yystate, yynrhs, yystackp, P, tokens, index);
6610 if (yyflag != yyok)
6611 {
6612 yyGLRState *yys;
6613 for (yys = yyopt->yystate; yynrhs > 0; yys = yys->yypred, yynrhs -= 1)
6614 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
6615 return yyflag;
6616 }
6617
6618 yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred = yyopt->yystate;
6619 {
6620 int yychar_current = yychar;
6621 YYSTYPE yylval_current = yylval;
6622 yychar = yyopt->yyrawchar;
6623 yylval = yyopt->yyval;
6624 yyflag = yyuserAction (yyopt->yyrule, yynrhs,
6625 yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
6626 yystackp, yyvalp, P, tokens, index);
6627 yychar = yychar_current;
6628 yylval = yylval_current;
6629 }
6630 return yyflag;
6631 }
6632
6633 #if YYDEBUG
6634 static void
6635 yyreportTree (yySemanticOption* yyx, int yyindent)
6636 {
6637 int yynrhs = yyrhsLength (yyx->yyrule);
6638 int yyi;
6639 yyGLRState* yys;
6640 yyGLRState* yystates[1 + YYMAXRHS];
6641 yyGLRState yyleftmost_state;
6642
6643 for (yyi = yynrhs, yys = yyx->yystate; 0 < yyi; yyi -= 1, yys = yys->yypred)
6644 yystates[yyi] = yys;
6645 if (yys == YY_NULLPTR)
6646 {
6647 yyleftmost_state.yyposn = 0;
6648 yystates[0] = &yyleftmost_state;
6649 }
6650 else
6651 yystates[0] = yys;
6652
6653 if (yyx->yystate->yyposn < yys->yyposn + 1)
6654 YYFPRINTF (stderr, "%*s%s -> <Rule %d, empty>\n",
6655 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
6656 yyx->yyrule - 1);
6657 else
6658 YYFPRINTF (stderr, "%*s%s -> <Rule %d, tokens %lu .. %lu>\n",
6659 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
6660 yyx->yyrule - 1, (unsigned long int) (yys->yyposn + 1),
6661 (unsigned long int) yyx->yystate->yyposn);
6662 for (yyi = 1; yyi <= yynrhs; yyi += 1)
6663 {
6664 if (yystates[yyi]->yyresolved)
6665 {
6666 if (yystates[yyi-1]->yyposn+1 > yystates[yyi]->yyposn)
6667 YYFPRINTF (stderr, "%*s%s <empty>\n", yyindent+2, "",
6668 yytokenName (yystos[yystates[yyi]->yylrState]));
6669 else
6670 YYFPRINTF (stderr, "%*s%s <tokens %lu .. %lu>\n", yyindent+2, "",
6671 yytokenName (yystos[yystates[yyi]->yylrState]),
6672 (unsigned long int) (yystates[yyi-1]->yyposn + 1),
6673 (unsigned long int) yystates[yyi]->yyposn);
6674 }
6675 else
6676 yyreportTree (yystates[yyi]->yysemantics.yyfirstVal, yyindent+2);
6677 }
6678 }
6679 #endif
6680
6681 static YYRESULTTAG
6682 yyreportAmbiguity (yySemanticOption* yyx0,
6683 yySemanticOption* yyx1, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6684 {
6685 YYUSE (yyx0);
6686 YYUSE (yyx1);
6687
6688 #if YYDEBUG
6689 YYFPRINTF (stderr, "Ambiguity detected.\n");
6690 YYFPRINTF (stderr, "Option 1,\n");
6691 yyreportTree (yyx0, 2);
6692 YYFPRINTF (stderr, "\nOption 2,\n");
6693 yyreportTree (yyx1, 2);
6694 YYFPRINTF (stderr, "\n");
6695 #endif
6696
6697 yyerror (P, tokens, index, YY_("syntax is ambiguous"));
6698 return yyabort;
6699 }
6700
6701 /** Resolve the ambiguity represented in state YYS in *YYSTACKP,
6702 * perform the indicated actions, and set the semantic value of YYS.
6703 * If result != yyok, the chain of semantic options in YYS has been
6704 * cleared instead or it has been left unmodified except that
6705 * redundant options may have been removed. Regardless of whether
6706 * result = yyok, YYS has been left with consistent data so that
6707 * yydestroyGLRState can be invoked if necessary. */
6708 static YYRESULTTAG
6709 yyresolveValue (yyGLRState* yys, yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6710 {
6711 yySemanticOption* yyoptionList = yys->yysemantics.yyfirstVal;
6712 yySemanticOption* yybest = yyoptionList;
6713 yySemanticOption** yypp;
6714 yybool yymerge = yyfalse;
6715 YYSTYPE yysval;
6716 YYRESULTTAG yyflag;
6717
6718 for (yypp = &yyoptionList->yynext; *yypp != YY_NULLPTR; )
6719 {
6720 yySemanticOption* yyp = *yypp;
6721
6722 if (yyidenticalOptions (yybest, yyp))
6723 {
6724 yymergeOptionSets (yybest, yyp);
6725 *yypp = yyp->yynext;
6726 }
6727 else
6728 {
6729 switch (yypreference (yybest, yyp))
6730 {
6731 case 0:
6732 return yyreportAmbiguity (yybest, yyp, P, tokens, index);
6733 break;
6734 case 1:
6735 yymerge = yytrue;
6736 break;
6737 case 2:
6738 break;
6739 case 3:
6740 yybest = yyp;
6741 yymerge = yyfalse;
6742 break;
6743 default:
6744 /* This cannot happen so it is not worth a YYASSERT (yyfalse),
6745 but some compilers complain if the default case is
6746 omitted. */
6747 break;
6748 }
6749 yypp = &yyp->yynext;
6750 }
6751 }
6752
6753 if (yymerge)
6754 {
6755 yySemanticOption* yyp;
6756 int yyprec = yydprec[yybest->yyrule];
6757 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
6758 if (yyflag == yyok)
6759 for (yyp = yybest->yynext; yyp != YY_NULLPTR; yyp = yyp->yynext)
6760 {
6761 if (yyprec == yydprec[yyp->yyrule])
6762 {
6763 YYSTYPE yysval_other;
6764 yyflag = yyresolveAction (yyp, yystackp, &yysval_other, P, tokens, index);
6765 if (yyflag != yyok)
6766 {
6767 yydestruct ("Cleanup: discarding incompletely merged value for",
6768 yystos[yys->yylrState],
6769 &yysval, P, tokens, index);
6770 break;
6771 }
6772 yyuserMerge (yymerger[yyp->yyrule], &yysval, &yysval_other);
6773 }
6774 }
6775 }
6776 else
6777 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
6778
6779 if (yyflag == yyok)
6780 {
6781 yys->yyresolved = yytrue;
6782 yys->yysemantics.yysval = yysval;
6783 }
6784 else
6785 yys->yysemantics.yyfirstVal = YY_NULLPTR;
6786 return yyflag;
6787 }
6788
6789 static YYRESULTTAG
6790 yyresolveStack (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6791 {
6792 if (yystackp->yysplitPoint != YY_NULLPTR)
6793 {
6794 yyGLRState* yys;
6795 int yyn;
6796
6797 for (yyn = 0, yys = yystackp->yytops.yystates[0];
6798 yys != yystackp->yysplitPoint;
6799 yys = yys->yypred, yyn += 1)
6800 continue;
6801 YYCHK (yyresolveStates (yystackp->yytops.yystates[0], yyn, yystackp
6802 , P, tokens, index));
6803 }
6804 return yyok;
6805 }
6806
6807 static void
6808 yycompressStack (yyGLRStack* yystackp)
6809 {
6810 yyGLRState* yyp, *yyq, *yyr;
6811
6812 if (yystackp->yytops.yysize != 1 || yystackp->yysplitPoint == YY_NULLPTR)
6813 return;
6814
6815 for (yyp = yystackp->yytops.yystates[0], yyq = yyp->yypred, yyr = YY_NULLPTR;
6816 yyp != yystackp->yysplitPoint;
6817 yyr = yyp, yyp = yyq, yyq = yyp->yypred)
6818 yyp->yypred = yyr;
6819
6820 yystackp->yyspaceLeft += yystackp->yynextFree - yystackp->yyitems;
6821 yystackp->yynextFree = ((yyGLRStackItem*) yystackp->yysplitPoint) + 1;
6822 yystackp->yyspaceLeft -= yystackp->yynextFree - yystackp->yyitems;
6823 yystackp->yysplitPoint = YY_NULLPTR;
6824 yystackp->yylastDeleted = YY_NULLPTR;
6825
6826 while (yyr != YY_NULLPTR)
6827 {
6828 yystackp->yynextFree->yystate = *yyr;
6829 yyr = yyr->yypred;
6830 yystackp->yynextFree->yystate.yypred = &yystackp->yynextFree[-1].yystate;
6831 yystackp->yytops.yystates[0] = &yystackp->yynextFree->yystate;
6832 yystackp->yynextFree += 1;
6833 yystackp->yyspaceLeft -= 1;
6834 }
6835 }
6836
6837 static YYRESULTTAG
6838 yyprocessOneStack (yyGLRStack* yystackp, size_t yyk,
6839 size_t yyposn, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6840 {
6841 while (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
6842 {
6843 yyStateNum yystate = yystackp->yytops.yystates[yyk]->yylrState;
6844 YYDPRINTF ((stderr, "Stack %lu Entering state %d\n",
6845 (unsigned long int) yyk, yystate));
6846
6847 YYASSERT (yystate != YYFINAL);
6848
6849 if (yyisDefaultedState (yystate))
6850 {
6851 YYRESULTTAG yyflag;
6852 yyRuleNum yyrule = yydefaultAction (yystate);
6853 if (yyrule == 0)
6854 {
6855 YYDPRINTF ((stderr, "Stack %lu dies.\n",
6856 (unsigned long int) yyk));
6857 yymarkStackDeleted (yystackp, yyk);
6858 return yyok;
6859 }
6860 yyflag = yyglrReduce (yystackp, yyk, yyrule, yyimmediate[yyrule], P, tokens, index);
6861 if (yyflag == yyerr)
6862 {
6863 YYDPRINTF ((stderr,
6864 "Stack %lu dies "
6865 "(predicate failure or explicit user error).\n",
6866 (unsigned long int) yyk));
6867 yymarkStackDeleted (yystackp, yyk);
6868 return yyok;
6869 }
6870 if (yyflag != yyok)
6871 return yyflag;
6872 }
6873 else
6874 {
6875 yySymbol yytoken;
6876 int yyaction;
6877 const short int* yyconflicts;
6878
6879 yystackp->yytops.yylookaheadNeeds[yyk] = yytrue;
6880 if (yychar == YYEMPTY)
6881 {
6882 YYDPRINTF ((stderr, "Reading a token: "));
6883 yychar = yylex (&yylval, P, tokens, index);
6884 }
6885
6886 if (yychar <= YYEOF)
6887 {
6888 yychar = yytoken = YYEOF;
6889 YYDPRINTF ((stderr, "Now at end of input.\n"));
6890 }
6891 else
6892 {
6893 yytoken = YYTRANSLATE (yychar);
6894 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
6895 }
6896
6897 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
6898
6899 while (*yyconflicts != 0)
6900 {
6901 YYRESULTTAG yyflag;
6902 size_t yynewStack = yysplitStack (yystackp, yyk);
6903 YYDPRINTF ((stderr, "Splitting off stack %lu from %lu.\n",
6904 (unsigned long int) yynewStack,
6905 (unsigned long int) yyk));
6906 yyflag = yyglrReduce (yystackp, yynewStack,
6907 *yyconflicts,
6908 yyimmediate[*yyconflicts], P, tokens, index);
6909 if (yyflag == yyok)
6910 YYCHK (yyprocessOneStack (yystackp, yynewStack,
6911 yyposn, P, tokens, index));
6912 else if (yyflag == yyerr)
6913 {
6914 YYDPRINTF ((stderr, "Stack %lu dies.\n",
6915 (unsigned long int) yynewStack));
6916 yymarkStackDeleted (yystackp, yynewStack);
6917 }
6918 else
6919 return yyflag;
6920 yyconflicts += 1;
6921 }
6922
6923 if (yyisShiftAction (yyaction))
6924 break;
6925 else if (yyisErrorAction (yyaction))
6926 {
6927 YYDPRINTF ((stderr, "Stack %lu dies.\n",
6928 (unsigned long int) yyk));
6929 yymarkStackDeleted (yystackp, yyk);
6930 break;
6931 }
6932 else
6933 {
6934 YYRESULTTAG yyflag = yyglrReduce (yystackp, yyk, -yyaction,
6935 yyimmediate[-yyaction], P, tokens, index);
6936 if (yyflag == yyerr)
6937 {
6938 YYDPRINTF ((stderr,
6939 "Stack %lu dies "
6940 "(predicate failure or explicit user error).\n",
6941 (unsigned long int) yyk));
6942 yymarkStackDeleted (yystackp, yyk);
6943 break;
6944 }
6945 else if (yyflag != yyok)
6946 return yyflag;
6947 }
6948 }
6949 }
6950 return yyok;
6951 }
6952
6953 static void
6954 yyreportSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6955 {
6956 if (yystackp->yyerrState != 0)
6957 return;
6958 #if ! YYERROR_VERBOSE
6959 yyerror (P, tokens, index, YY_("syntax error"));
6960 #else
6961 {
6962 yySymbol yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
6963 size_t yysize0 = yytnamerr (YY_NULLPTR, yytokenName (yytoken));
6964 size_t yysize = yysize0;
6965 yybool yysize_overflow = yyfalse;
6966 char* yymsg = YY_NULLPTR;
6967 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
6968 /* Internationalized format string. */
6969 const char *yyformat = YY_NULLPTR;
6970 /* Arguments of yyformat. */
6971 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
6972 /* Number of reported tokens (one for the "unexpected", one per
6973 "expected"). */
6974 int yycount = 0;
6975
6976 /* There are many possibilities here to consider:
6977 - If this state is a consistent state with a default action, then
6978 the only way this function was invoked is if the default action
6979 is an error action. In that case, don't check for expected
6980 tokens because there are none.
6981 - The only way there can be no lookahead present (in yychar) is if
6982 this state is a consistent state with a default action. Thus,
6983 detecting the absence of a lookahead is sufficient to determine
6984 that there is no unexpected or expected token to report. In that
6985 case, just report a simple "syntax error".
6986 - Don't assume there isn't a lookahead just because this state is a
6987 consistent state with a default action. There might have been a
6988 previous inconsistent state, consistent state with a non-default
6989 action, or user semantic action that manipulated yychar.
6990 - Of course, the expected token list depends on states to have
6991 correct lookahead information, and it depends on the parser not
6992 to perform extra reductions after fetching a lookahead from the
6993 scanner and before detecting a syntax error. Thus, state merging
6994 (from LALR or IELR) and default reductions corrupt the expected
6995 token list. However, the list is correct for canonical LR with
6996 one exception: it will still contain any token that will not be
6997 accepted due to an error action in a later state.
6998 */
6999 if (yytoken != YYEMPTY)
7000 {
7001 int yyn = yypact[yystackp->yytops.yystates[0]->yylrState];
7002 yyarg[yycount++] = yytokenName (yytoken);
7003 if (!yypact_value_is_default (yyn))
7004 {
7005 /* Start YYX at -YYN if negative to avoid negative indexes in
7006 YYCHECK. In other words, skip the first -YYN actions for this
7007 state because they are default actions. */
7008 int yyxbegin = yyn < 0 ? -yyn : 0;
7009 /* Stay within bounds of both yycheck and yytname. */
7010 int yychecklim = YYLAST - yyn + 1;
7011 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
7012 int yyx;
7013 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
7014 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
7015 && !yytable_value_is_error (yytable[yyx + yyn]))
7016 {
7017 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
7018 {
7019 yycount = 1;
7020 yysize = yysize0;
7021 break;
7022 }
7023 yyarg[yycount++] = yytokenName (yyx);
7024 {
7025 size_t yysz = yysize + yytnamerr (YY_NULLPTR, yytokenName (yyx));
7026 yysize_overflow |= yysz < yysize;
7027 yysize = yysz;
7028 }
7029 }
7030 }
7031 }
7032
7033 switch (yycount)
7034 {
7035 #define YYCASE_(N, S) \
7036 case N: \
7037 yyformat = S; \
7038 break
7039 YYCASE_(0, YY_("syntax error"));
7040 YYCASE_(1, YY_("syntax error, unexpected %s"));
7041 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
7042 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
7043 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
7044 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
7045 #undef YYCASE_
7046 }
7047
7048 {
7049 size_t yysz = yysize + strlen (yyformat);
7050 yysize_overflow |= yysz < yysize;
7051 yysize = yysz;
7052 }
7053
7054 if (!yysize_overflow)
7055 yymsg = (char *) YYMALLOC (yysize);
7056
7057 if (yymsg)
7058 {
7059 char *yyp = yymsg;
7060 int yyi = 0;
7061 while ((*yyp = *yyformat))
7062 {
7063 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
7064 {
7065 yyp += yytnamerr (yyp, yyarg[yyi++]);
7066 yyformat += 2;
7067 }
7068 else
7069 {
7070 yyp++;
7071 yyformat++;
7072 }
7073 }
7074 yyerror (P, tokens, index, yymsg);
7075 YYFREE (yymsg);
7076 }
7077 else
7078 {
7079 yyerror (P, tokens, index, YY_("syntax error"));
7080 yyMemoryExhausted (yystackp);
7081 }
7082 }
7083 #endif /* YYERROR_VERBOSE */
7084 yynerrs += 1;
7085 }
7086
7087 /* Recover from a syntax error on *YYSTACKP, assuming that *YYSTACKP->YYTOKENP,
7088 yylval, and yylloc are the syntactic category, semantic value, and location
7089 of the lookahead. */
7090 static void
7091 yyrecoverSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7092 {
7093 size_t yyk;
7094 int yyj;
7095
7096 if (yystackp->yyerrState == 3)
7097 /* We just shifted the error token and (perhaps) took some
7098 reductions. Skip tokens until we can proceed. */
7099 while (yytrue)
7100 {
7101 yySymbol yytoken;
7102 if (yychar == YYEOF)
7103 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
7104 if (yychar != YYEMPTY)
7105 {
7106 yytoken = YYTRANSLATE (yychar);
7107 yydestruct ("Error: discarding",
7108 yytoken, &yylval, P, tokens, index);
7109 }
7110 YYDPRINTF ((stderr, "Reading a token: "));
7111 yychar = yylex (&yylval, P, tokens, index);
7112 if (yychar <= YYEOF)
7113 {
7114 yychar = yytoken = YYEOF;
7115 YYDPRINTF ((stderr, "Now at end of input.\n"));
7116 }
7117 else
7118 {
7119 yytoken = YYTRANSLATE (yychar);
7120 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
7121 }
7122 yyj = yypact[yystackp->yytops.yystates[0]->yylrState];
7123 if (yypact_value_is_default (yyj))
7124 return;
7125 yyj += yytoken;
7126 if (yyj < 0 || YYLAST < yyj || yycheck[yyj] != yytoken)
7127 {
7128 if (yydefact[yystackp->yytops.yystates[0]->yylrState] != 0)
7129 return;
7130 }
7131 else if (! yytable_value_is_error (yytable[yyj]))
7132 return;
7133 }
7134
7135 /* Reduce to one stack. */
7136 for (yyk = 0; yyk < yystackp->yytops.yysize; yyk += 1)
7137 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
7138 break;
7139 if (yyk >= yystackp->yytops.yysize)
7140 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
7141 for (yyk += 1; yyk < yystackp->yytops.yysize; yyk += 1)
7142 yymarkStackDeleted (yystackp, yyk);
7143 yyremoveDeletes (yystackp);
7144 yycompressStack (yystackp);
7145
7146 /* Now pop stack until we find a state that shifts the error token. */
7147 yystackp->yyerrState = 3;
7148 while (yystackp->yytops.yystates[0] != YY_NULLPTR)
7149 {
7150 yyGLRState *yys = yystackp->yytops.yystates[0];
7151 yyj = yypact[yys->yylrState];
7152 if (! yypact_value_is_default (yyj))
7153 {
7154 yyj += YYTERROR;
7155 if (0 <= yyj && yyj <= YYLAST && yycheck[yyj] == YYTERROR
7156 && yyisShiftAction (yytable[yyj]))
7157 {
7158 /* Shift the error token. */
7159 YY_SYMBOL_PRINT ("Shifting", yystos[yytable[yyj]],
7160 &yylval, &yyerrloc);
7161 yyglrShift (yystackp, 0, yytable[yyj],
7162 yys->yyposn, &yylval);
7163 yys = yystackp->yytops.yystates[0];
7164 break;
7165 }
7166 }
7167 if (yys->yypred != YY_NULLPTR)
7168 yydestroyGLRState ("Error: popping", yys, P, tokens, index);
7169 yystackp->yytops.yystates[0] = yys->yypred;
7170 yystackp->yynextFree -= 1;
7171 yystackp->yyspaceLeft += 1;
7172 }
7173 if (yystackp->yytops.yystates[0] == YY_NULLPTR)
7174 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
7175 }
7176
7177 #define YYCHK1(YYE) \
7178 do { \
7179 switch (YYE) { \
7180 case yyok: \
7181 break; \
7182 case yyabort: \
7183 goto yyabortlab; \
7184 case yyaccept: \
7185 goto yyacceptlab; \
7186 case yyerr: \
7187 goto yyuser_error; \
7188 default: \
7189 goto yybuglab; \
7190 } \
7191 } while (0)
7192
7193 /*----------.
7194 | yyparse. |
7195 `----------*/
7196
7197 int
7198 yyparse (struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7199 {
7200 int yyresult;
7201 yyGLRStack yystack;
7202 yyGLRStack* const yystackp = &yystack;
7203 size_t yyposn;
7204
7205 YYDPRINTF ((stderr, "Starting parse\n"));
7206
7207 yychar = YYEMPTY;
7208 yylval = yyval_default;
7209
7210 /* User initialization code. */
7211 #line 106 "src/parser_proc_grammar.y" /* glr.c:2270 */
7212 {
7213 }
7214
7215 #line 7216 "src/parser_proc.c" /* glr.c:2270 */
7216
7217 if (! yyinitGLRStack (yystackp, YYINITDEPTH))
7218 goto yyexhaustedlab;
7219 switch (YYSETJMP (yystack.yyexception_buffer))
7220 {
7221 case 0: break;
7222 case 1: goto yyabortlab;
7223 case 2: goto yyexhaustedlab;
7224 default: goto yybuglab;
7225 }
7226 yyglrShift (&yystack, 0, 0, 0, &yylval);
7227 yyposn = 0;
7228
7229 while (yytrue)
7230 {
7231 /* For efficiency, we have two loops, the first of which is
7232 specialized to deterministic operation (single stack, no
7233 potential ambiguity). */
7234 /* Standard mode */
7235 while (yytrue)
7236 {
7237 yyRuleNum yyrule;
7238 int yyaction;
7239 const short int* yyconflicts;
7240
7241 yyStateNum yystate = yystack.yytops.yystates[0]->yylrState;
7242 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
7243 if (yystate == YYFINAL)
7244 goto yyacceptlab;
7245 if (yyisDefaultedState (yystate))
7246 {
7247 yyrule = yydefaultAction (yystate);
7248 if (yyrule == 0)
7249 {
7250
7251 yyreportSyntaxError (&yystack, P, tokens, index);
7252 goto yyuser_error;
7253 }
7254 YYCHK1 (yyglrReduce (&yystack, 0, yyrule, yytrue, P, tokens, index));
7255 }
7256 else
7257 {
7258 yySymbol yytoken;
7259 if (yychar == YYEMPTY)
7260 {
7261 YYDPRINTF ((stderr, "Reading a token: "));
7262 yychar = yylex (&yylval, P, tokens, index);
7263 }
7264
7265 if (yychar <= YYEOF)
7266 {
7267 yychar = yytoken = YYEOF;
7268 YYDPRINTF ((stderr, "Now at end of input.\n"));
7269 }
7270 else
7271 {
7272 yytoken = YYTRANSLATE (yychar);
7273 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
7274 }
7275
7276 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
7277 if (*yyconflicts != 0)
7278 break;
7279 if (yyisShiftAction (yyaction))
7280 {
7281 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
7282 yychar = YYEMPTY;
7283 yyposn += 1;
7284 yyglrShift (&yystack, 0, yyaction, yyposn, &yylval);
7285 if (0 < yystack.yyerrState)
7286 yystack.yyerrState -= 1;
7287 }
7288 else if (yyisErrorAction (yyaction))
7289 {
7290
7291 yyreportSyntaxError (&yystack, P, tokens, index);
7292 goto yyuser_error;
7293 }
7294 else
7295 YYCHK1 (yyglrReduce (&yystack, 0, -yyaction, yytrue, P, tokens, index));
7296 }
7297 }
7298
7299 while (yytrue)
7300 {
7301 yySymbol yytoken_to_shift;
7302 size_t yys;
7303
7304 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
7305 yystackp->yytops.yylookaheadNeeds[yys] = yychar != YYEMPTY;
7306
7307 /* yyprocessOneStack returns one of three things:
7308
7309 - An error flag. If the caller is yyprocessOneStack, it
7310 immediately returns as well. When the caller is finally
7311 yyparse, it jumps to an error label via YYCHK1.
7312
7313 - yyok, but yyprocessOneStack has invoked yymarkStackDeleted
7314 (&yystack, yys), which sets the top state of yys to NULL. Thus,
7315 yyparse's following invocation of yyremoveDeletes will remove
7316 the stack.
7317
7318 - yyok, when ready to shift a token.
7319
7320 Except in the first case, yyparse will invoke yyremoveDeletes and
7321 then shift the next token onto all remaining stacks. This
7322 synchronization of the shift (that is, after all preceding
7323 reductions on all stacks) helps prevent double destructor calls
7324 on yylval in the event of memory exhaustion. */
7325
7326 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
7327 YYCHK1 (yyprocessOneStack (&yystack, yys, yyposn, P, tokens, index));
7328 yyremoveDeletes (&yystack);
7329 if (yystack.yytops.yysize == 0)
7330 {
7331 yyundeleteLastStack (&yystack);
7332 if (yystack.yytops.yysize == 0)
7333 yyFail (&yystack, P, tokens, index, YY_("syntax error"));
7334 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
7335 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
7336
7337 yyreportSyntaxError (&yystack, P, tokens, index);
7338 goto yyuser_error;
7339 }
7340
7341 /* If any yyglrShift call fails, it will fail after shifting. Thus,
7342 a copy of yylval will already be on stack 0 in the event of a
7343 failure in the following loop. Thus, yychar is set to YYEMPTY
7344 before the loop to make sure the user destructor for yylval isn't
7345 called twice. */
7346 yytoken_to_shift = YYTRANSLATE (yychar);
7347 yychar = YYEMPTY;
7348 yyposn += 1;
7349 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
7350 {
7351 int yyaction;
7352 const short int* yyconflicts;
7353 yyStateNum yystate = yystack.yytops.yystates[yys]->yylrState;
7354 yygetLRActions (yystate, yytoken_to_shift, &yyaction,
7355 &yyconflicts);
7356 /* Note that yyconflicts were handled by yyprocessOneStack. */
7357 YYDPRINTF ((stderr, "On stack %lu, ", (unsigned long int) yys));
7358 YY_SYMBOL_PRINT ("shifting", yytoken_to_shift, &yylval, &yylloc);
7359 yyglrShift (&yystack, yys, yyaction, yyposn,
7360 &yylval);
7361 YYDPRINTF ((stderr, "Stack %lu now in state #%d\n",
7362 (unsigned long int) yys,
7363 yystack.yytops.yystates[yys]->yylrState));
7364 }
7365
7366 if (yystack.yytops.yysize == 1)
7367 {
7368 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
7369 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
7370 yycompressStack (&yystack);
7371 break;
7372 }
7373 }
7374 continue;
7375 yyuser_error:
7376 yyrecoverSyntaxError (&yystack, P, tokens, index);
7377 yyposn = yystack.yytops.yystates[0]->yyposn;
7378 }
7379
7380 yyacceptlab:
7381 yyresult = 0;
7382 goto yyreturn;
7383
7384 yybuglab:
7385 YYASSERT (yyfalse);
7386 goto yyabortlab;
7387
7388 yyabortlab:
7389 yyresult = 1;
7390 goto yyreturn;
7391
7392 yyexhaustedlab:
7393 yyerror (P, tokens, index, YY_("memory exhausted"));
7394 yyresult = 2;
7395 goto yyreturn;
7396
7397 yyreturn:
7398 if (yychar != YYEMPTY)
7399 yydestruct ("Cleanup: discarding lookahead",
7400 YYTRANSLATE (yychar), &yylval, P, tokens, index);
7401
7402 /* If the stack is well-formed, pop the stack until it is empty,
7403 destroying its entries as we go. But free the stack regardless
7404 of whether it is well-formed. */
7405 if (yystack.yyitems)
7406 {
7407 yyGLRState** yystates = yystack.yytops.yystates;
7408 if (yystates)
7409 {
7410 size_t yysize = yystack.yytops.yysize;
7411 size_t yyk;
7412 for (yyk = 0; yyk < yysize; yyk += 1)
7413 if (yystates[yyk])
7414 {
7415 while (yystates[yyk])
7416 {
7417 yyGLRState *yys = yystates[yyk];
7418 if (yys->yypred != YY_NULLPTR)
7419 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
7420 yystates[yyk] = yys->yypred;
7421 yystack.yynextFree -= 1;
7422 yystack.yyspaceLeft += 1;
7423 }
7424 break;
7425 }
7426 }
7427 yyfreeGLRStack (&yystack);
7428 }
7429
7430 return yyresult;
7431 }
7432
7433 /* DEBUGGING ONLY */
7434 #if YYDEBUG
7435 static void
7436 yy_yypstack (yyGLRState* yys)
7437 {
7438 if (yys->yypred)
7439 {
7440 yy_yypstack (yys->yypred);
7441 YYFPRINTF (stderr, " -> ");
7442 }
7443 YYFPRINTF (stderr, "%d@%lu", yys->yylrState,
7444 (unsigned long int) yys->yyposn);
7445 }
7446
7447 static void
7448 yypstates (yyGLRState* yyst)
7449 {
7450 if (yyst == YY_NULLPTR)
7451 YYFPRINTF (stderr, "<null>");
7452 else
7453 yy_yypstack (yyst);
7454 YYFPRINTF (stderr, "\n");
7455 }
7456
7457 static void
7458 yypstack (yyGLRStack* yystackp, size_t yyk)
7459 {
7460 yypstates (yystackp->yytops.yystates[yyk]);
7461 }
7462
7463 #define YYINDEX(YYX) \
7464 ((YYX) == YY_NULLPTR ? -1 : (yyGLRStackItem*) (YYX) - yystackp->yyitems)
7465
7466
7467 static void
7468 yypdumpstack (yyGLRStack* yystackp)
7469 {
7470 yyGLRStackItem* yyp;
7471 size_t yyi;
7472 for (yyp = yystackp->yyitems; yyp < yystackp->yynextFree; yyp += 1)
7473 {
7474 YYFPRINTF (stderr, "%3lu. ",
7475 (unsigned long int) (yyp - yystackp->yyitems));
7476 if (*(yybool *) yyp)
7477 {
7478 YYASSERT (yyp->yystate.yyisState);
7479 YYASSERT (yyp->yyoption.yyisState);
7480 YYFPRINTF (stderr, "Res: %d, LR State: %d, posn: %lu, pred: %ld",
7481 yyp->yystate.yyresolved, yyp->yystate.yylrState,
7482 (unsigned long int) yyp->yystate.yyposn,
7483 (long int) YYINDEX (yyp->yystate.yypred));
7484 if (! yyp->yystate.yyresolved)
7485 YYFPRINTF (stderr, ", firstVal: %ld",
7486 (long int) YYINDEX (yyp->yystate
7487 .yysemantics.yyfirstVal));
7488 }
7489 else
7490 {
7491 YYASSERT (!yyp->yystate.yyisState);
7492 YYASSERT (!yyp->yyoption.yyisState);
7493 YYFPRINTF (stderr, "Option. rule: %d, state: %ld, next: %ld",
7494 yyp->yyoption.yyrule - 1,
7495 (long int) YYINDEX (yyp->yyoption.yystate),
7496 (long int) YYINDEX (yyp->yyoption.yynext));
7497 }
7498 YYFPRINTF (stderr, "\n");
7499 }
7500 YYFPRINTF (stderr, "Tops:");
7501 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
7502 YYFPRINTF (stderr, "%lu: %ld; ", (unsigned long int) yyi,
7503 (long int) YYINDEX (yystackp->yytops.yystates[yyi]));
7504 YYFPRINTF (stderr, "\n");
7505 }
7506 #endif
7507
7508 #undef yylval
7509 #undef yychar
7510 #undef yynerrs
7511
7512 /* Substitute the variable and function names. */
7513 #define yyparse psi_parser_proc_parse
7514 #define yylex psi_parser_proc_lex
7515 #define yyerror psi_parser_proc_error
7516 #define yylval psi_parser_proc_lval
7517 #define yychar psi_parser_proc_char
7518 #define yydebug psi_parser_proc_debug
7519 #define yynerrs psi_parser_proc_nerrs
7520
7521 #line 2019 "src/parser_proc_grammar.y" /* glr.c:2584 */
7522
7523
7524 /* epilogue */
7525
7526 static int psi_parser_proc_lex(YYSTYPE *lvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7527 {
7528 struct psi_token *token;
7529
7530 if (psi_plist_get(tokens, (*index)++, &token)) {
7531 if (P->flags & PSI_DEBUG) {
7532 psi_token_dump(2, token);
7533 }
7534
7535 *((struct psi_token **)lvalp) = token;
7536 return token->type;
7537 } else {
7538 (*index)--;
7539 PSI_DEBUG_PRINT(P, "EOF(%d)\n", PSI_T_EOF);
7540 }
7541
7542 return PSI_T_EOF;
7543 }
7544
7545 static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char *msg)
7546 {
7547 struct psi_token *T = NULL;
7548 size_t last;
7549
7550 if (*index == 0) {
7551 last = 0;
7552 } else {
7553 last = --(*index);
7554 }
7555
7556 psi_plist_get(tokens, last, &T);
7557 if (T) {
7558 P->error(PSI_DATA(P), T, PSI_WARNING, "PSI %s at col %u", msg, T->col);
7559 } else {
7560 P->error(PSI_DATA(P), NULL, PSI_WARNING, "PSI %s", msg);
7561 }
7562 P->errors++;
7563 }
7564