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