parser: consolidate tokens
[m6w6/ext-psi] / src / parser_proc.c
1 /* A Bison parser, made by GNU Bison 3.0.4. */
2
3 /* Skeleton implementation for Bison GLR parsers in C
4
5 Copyright (C) 2002-2015 Free Software Foundation, Inc.
6
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
20 /* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
29
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
32
33 /* C GLR parser skeleton written by Paul Hilfinger. */
34
35 /* Identify Bison output. */
36 #define YYBISON 1
37
38 /* Bison version. */
39 #define YYBISON_VERSION "3.0.4"
40
41 /* Skeleton name. */
42 #define YYSKELETON_NAME "glr.c"
43
44 /* Pure parsers. */
45 #define YYPURE 1
46
47
48 /* "%code top" blocks. */
49 #line 1 "src/parser_proc_grammar.y" /* glr.c:222 */
50
51 #include "php_psi_stdinc.h"
52
53 #line 54 "src/parser_proc.c" /* glr.c:222 */
54
55
56 /* Substitute the variable and function names. */
57 #define yyparse psi_parser_proc_parse
58 #define yylex psi_parser_proc_lex
59 #define yyerror psi_parser_proc_error
60 #define yydebug psi_parser_proc_debug
61
62
63 /* First part of user declarations. */
64
65 #line 66 "src/parser_proc.c" /* glr.c:240 */
66
67 # ifndef YY_NULLPTR
68 # if defined __cplusplus && 201103L <= __cplusplus
69 # define YY_NULLPTR nullptr
70 # else
71 # define YY_NULLPTR 0
72 # endif
73 # endif
74
75 #include "parser_proc.h"
76
77 /* Enabling verbose error messages. */
78 #ifdef YYERROR_VERBOSE
79 # undef YYERROR_VERBOSE
80 # define YYERROR_VERBOSE 1
81 #else
82 # define YYERROR_VERBOSE 1
83 #endif
84
85 /* Default (constant) value used for initialization for null
86 right-hand sides. Unlike the standard yacc.c template, here we set
87 the default value of $$ to a zeroed-out value. Since the default
88 value is undefined, this behavior is technically correct. */
89 static YYSTYPE yyval_default;
90
91 /* Copy the second part of user declarations. */
92
93 #line 94 "src/parser_proc.c" /* glr.c:263 */
94 /* Unqualified %code blocks. */
95 #line 5 "src/parser_proc_grammar.y" /* glr.c:264 */
96
97 #include <assert.h>
98 #include <stdarg.h>
99
100 #include "plist.h"
101 #include "parser.h"
102
103 #define YYDEBUG 1
104 #define PSI_PARSER_PROC_DEBUG 1
105
106 static int psi_parser_proc_lex(YYSTYPE *u, struct psi_parser *P, struct psi_plist *tokens, size_t *index);
107 static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char *msg);
108
109 static inline void psi_parser_proc_add_struct(struct psi_parser *P, struct psi_decl_struct *strct)
110 {
111 assert(strct);
112 if (!P->structs) {
113 P->structs = psi_plist_init((psi_plist_dtor) psi_decl_struct_free);
114 }
115 P->structs = psi_plist_add(P->structs, &strct);
116 }
117 static inline void psi_parser_proc_add_union(struct psi_parser *P, struct psi_decl_union *u)
118 {
119 assert(u);
120 if (!P->unions) {
121 P->unions = psi_plist_init((psi_plist_dtor) psi_decl_union_free);
122 }
123 P->unions = psi_plist_add(P->unions, &u);
124 }
125 static inline void psi_parser_proc_add_enum(struct psi_parser *P, struct psi_decl_enum *e)
126 {
127 assert(e);
128 if (!P->enums) {
129 P->enums = psi_plist_init((psi_plist_dtor) psi_decl_enum_free);
130 }
131 P->enums = psi_plist_add(P->enums, &e);
132 }
133 static inline void psi_parser_proc_add_typedef(struct psi_parser *P, struct psi_decl_arg *def)
134 {
135 assert(def);
136 if (!P->types) {
137 P->types = psi_plist_init((psi_plist_dtor) psi_decl_arg_free);
138 }
139 P->types = psi_plist_add(P->types, &def);
140 }
141 static inline void psi_parser_proc_add_const(struct psi_parser *P, struct psi_const *cnst) {
142 assert(cnst);
143 if (!P->consts) {
144 P->consts = psi_plist_init((psi_plist_dtor) psi_const_free);
145 }
146 P->consts = psi_plist_add(P->consts, &cnst);
147
148 }
149 static inline void psi_parser_proc_add_decl(struct psi_parser *P, struct psi_decl *decl) {
150 assert(decl);
151
152 if (psi_decl_is_blacklisted(decl->func->var->name)) {
153 psi_decl_free(&decl);
154 return;
155 }
156
157 if (!P->decls) {
158 P->decls = psi_plist_init((psi_plist_dtor) psi_decl_free);
159 }
160 P->decls = psi_plist_add(P->decls, &decl);
161 }
162 static inline void psi_parser_proc_add_impl(struct psi_parser *P, struct psi_impl *impl) {
163 assert(impl);
164 if (!P->impls) {
165 P->impls = psi_plist_init((psi_plist_dtor) psi_impl_free);
166 }
167 P->impls = psi_plist_add(P->impls, &impl);
168 }
169
170 /* end code */
171
172 #line 173 "src/parser_proc.c" /* glr.c:264 */
173
174 #include <stdio.h>
175 #include <stdlib.h>
176 #include <string.h>
177
178 #ifndef YY_
179 # if defined YYENABLE_NLS && YYENABLE_NLS
180 # if ENABLE_NLS
181 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
182 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
183 # endif
184 # endif
185 # ifndef YY_
186 # define YY_(Msgid) Msgid
187 # endif
188 #endif
189
190 #ifndef YYFREE
191 # define YYFREE free
192 #endif
193 #ifndef YYMALLOC
194 # define YYMALLOC malloc
195 #endif
196 #ifndef YYREALLOC
197 # define YYREALLOC realloc
198 #endif
199
200 #define YYSIZEMAX ((size_t) -1)
201
202 #ifdef __cplusplus
203 typedef bool yybool;
204 #else
205 typedef unsigned char yybool;
206 #endif
207 #define yytrue 1
208 #define yyfalse 0
209
210 #ifndef YYSETJMP
211 # include <setjmp.h>
212 # define YYJMP_BUF jmp_buf
213 # define YYSETJMP(Env) setjmp (Env)
214 /* Pacify clang. */
215 # define YYLONGJMP(Env, Val) (longjmp (Env, Val), YYASSERT (0))
216 #endif
217
218 #ifndef YY_ATTRIBUTE
219 # if (defined __GNUC__ \
220 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
221 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
222 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
223 # else
224 # define YY_ATTRIBUTE(Spec) /* empty */
225 # endif
226 #endif
227
228 #ifndef YY_ATTRIBUTE_PURE
229 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
230 #endif
231
232 #ifndef YY_ATTRIBUTE_UNUSED
233 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
234 #endif
235
236 #if !defined _Noreturn \
237 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
238 # if defined _MSC_VER && 1200 <= _MSC_VER
239 # define _Noreturn __declspec (noreturn)
240 # else
241 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
242 # endif
243 #endif
244
245 /* Suppress unused-variable warnings by "using" E. */
246 #if ! defined lint || defined __GNUC__
247 # define YYUSE(E) ((void) (E))
248 #else
249 # define YYUSE(E) /* empty */
250 #endif
251
252 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
253 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
254 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
255 _Pragma ("GCC diagnostic push") \
256 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
257 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
258 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
259 _Pragma ("GCC diagnostic pop")
260 #else
261 # define YY_INITIAL_VALUE(Value) Value
262 #endif
263 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
264 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
265 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
266 #endif
267 #ifndef YY_INITIAL_VALUE
268 # define YY_INITIAL_VALUE(Value) /* Nothing. */
269 #endif
270
271
272 #ifndef YYASSERT
273 # define YYASSERT(Condition) ((void) ((Condition) || (abort (), 0)))
274 #endif
275
276 /* YYFINAL -- State number of the termination state. */
277 #define YYFINAL 169
278 /* YYLAST -- Last index in YYTABLE. */
279 #define YYLAST 3793
280
281 /* YYNTOKENS -- Number of terminals. */
282 #define YYNTOKENS 140
283 /* YYNNTS -- Number of nonterminals. */
284 #define YYNNTS 135
285 /* YYNRULES -- Number of rules. */
286 #define YYNRULES 625
287 /* YYNRULES -- Number of states. */
288 #define YYNSTATES 880
289 /* YYMAXRHS -- Maximum number of symbols on right-hand side of rule. */
290 #define YYMAXRHS 13
291 /* YYMAXLEFT -- Maximum number of symbols to the left of a handle
292 accessed by $0, $-1, etc., in any rule. */
293 #define YYMAXLEFT 0
294
295 /* YYTRANSLATE(X) -- Bison symbol number corresponding to X. */
296 #define YYUNDEFTOK 2
297 #define YYMAXUTOK 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, 1588, 1591, 1594, 1600, 1604, 1611, 1614,
403 1617, 1627, 1630, 1636, 1637, 1643, 1646, 1652, 1653, 1663,
404 1666, 1673, 1678, 1683, 1693, 1696, 1702, 1705, 1711, 1718,
405 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1737,
406 1740, 1746, 1749, 1752, 1755, 1758, 1764, 1768, 1776, 1777,
407 1781, 1788, 1791, 1794, 1797, 1801, 1804, 1810, 1814, 1822,
408 1829, 1837, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852,
409 1853, 1854, 1858, 1861, 1867, 1870, 1876, 1877, 1881, 1884,
410 1890, 1893, 1899, 1906, 1910, 1917, 1920, 1923, 1929, 1936,
411 1939, 1942, 1949, 1954, 1962, 1963, 1964, 1965, 1966, 1967,
412 1968, 1969, 1973, 1976, 1982, 1985, 1991, 1998, 1999, 2003,
413 2010, 2013, 2019, 2027, 2030, 2036
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", "decl_layout", "align_and_size",
467 "array_size", "indirection", "pointers", "asterisks", "asterisk", "impl",
468 "impl_func", "impl_args", "impl_arg", "impl_var", "impl_type",
469 "impl_type_token", "impl_stmts", "impl_stmt", "let_stmt", "let_exp",
470 "let_exp_byref", "let_exp_assign", "let_calloc", "let_callback",
471 "let_func", "let_func_token", "let_func_exps", "let_exps",
472 "callback_rval", "callback_arg_list", "callback_args", "return_stmt",
473 "return_exp", "call_decl_vars", "set_stmt", "set_exp", "set_func",
474 "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 -693
481 #define YYTABLE_NINF -624
482
483 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
484 STATE-NUM. */
485 static const short int yypact[] =
486 {
487 694, -693, -693, -693, -693, -693, 45, -693, -693, 2647,
488 1697, 1496, -693, -693, 436, 1370, 3502, 3502, 3502, 2454,
489 49, 270, 55, -693, 1470, 1923, 141, 694, -693, -693,
490 -693, -693, -693, 2873, -693, -693, -693, -693, 157, 146,
491 -693, -693, -693, 154, -693, -54, -693, -693, 54, 145,
492 155, -693, -693, -693, -693, 159, -693, 166, -693, -693,
493 -693, -693, -693, 832, -693, 160, 126, -693, -693, -693,
494 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
495 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
496 -693, -693, -693, -693, -693, -693, -693, 2986, -2, -693,
497 -693, -693, -693, 3502, 3502, 3502, 72, -693, 71, -693,
498 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
499 -693, -693, 460, -693, -693, -693, -693, 189, 958, 958,
500 20, -693, 460, 2534, 2647, 3502, 3502, 2149, 193, -693,
501 -693, -693, 195, 3502, 194, 194, 38, 38, 196, -693,
502 -693, 202, 207, -693, 160, 210, -693, -693, 215, 1923,
503 211, 213, -693, 227, -693, 2488, 1398, -54, 211, -693,
504 -693, 214, -693, 222, 3502, -693, 249, -693, 164, -693,
505 -693, -693, 239, -693, -693, 224, 229, 2680, 2680, 3502,
506 190, 3502, -693, -693, 160, -693, -693, -693, -693, -693,
507 -693, 2873, -693, -693, -693, -693, -693, -693, -693, 140,
508 958, -693, -693, -693, -693, -693, -693, -693, -693, -693,
509 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
510 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
511 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
512 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
513 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
514 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
515 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
516 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
517 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
518 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
519 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
520 -693, -693, -693, 958, -693, -693, -693, -693, -693, -693,
521 -693, -693, 191, 2534, -693, -693, -693, -693, 3099, 2534,
522 230, 3656, -693, 232, 83, -693, 88, -693, -693, -693,
523 -693, 238, 228, 228, 56, 56, 3212, 250, -693, 211,
524 1210, -693, 190, 259, 262, 263, -693, 2082, -693, 160,
525 214, -693, -693, -693, 289, -693, -693, 271, -693, 17,
526 2714, 2873, 100, -693, -693, 131, 256, 149, -693, 2873,
527 2195, 2873, 3502, 2873, -693, -693, 18, -693, -693, -693,
528 -693, -693, 2421, -693, 267, 3502, 269, -693, 3502, 273,
529 -693, -693, -693, -693, 745, 279, -693, 2977, 3502, -693,
530 -693, 2534, -693, -693, -693, -693, -693, -693, -693, -693,
531 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
532 2534, 2534, -693, 274, 1429, 2873, 2873, -693, -693, -693,
533 -693, 160, -693, 1630, -693, -693, -693, -693, -693, -693,
534 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
535 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
536 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
537 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
538 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
539 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
540 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
541 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
542 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
543 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
544 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
545 -693, -693, -693, 1084, -693, 173, 301, -693, -693, -693,
546 -693, -693, -693, 1517, -693, 2421, -693, 3632, -693, -693,
547 3502, -693, -693, -693, 26, 2986, 160, 222, 214, 1664,
548 214, 2342, 2421, 3502, -693, 268, 278, 3680, 272, 288,
549 -693, 293, 302, 287, 300, 163, -693, 303, 306, -693,
550 -693, -693, 2855, -693, 305, 2873, 3271, 160, 310, -693,
551 -693, -693, 311, 3656, 312, 299, 3583, -693, 314, 2149,
552 313, -693, -693, 2760, 1332, 3502, 194, 194, -693, -693,
553 3502, 75, -693, -693, -693, 315, -693, 3680, -693, -693,
554 -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
555 316, 142, -693, 55, -693, 319, 1496, 320, 3090, -693,
556 -693, 2421, 2421, 327, -693, -693, 3212, -693, 17, 329,
557 -693, -693, 331, 3680, -693, 1743, -693, 2195, -693, 2873,
558 -693, 55, 2873, -693, 3502, 3384, -693, -693, -693, -693,
559 -693, -693, 332, 333, -693, -693, -693, -693, 2534, 2534,
560 335, -693, 28, 337, -693, 313, 228, 228, 339, -693,
561 528, 338, 528, 307, 2421, -693, 3608, -693, -693, 214,
562 214, 104, 265, 383, 343, 3680, -693, -693, -693, -693,
563 345, 2308, -693, 344, 2873, 167, -693, 346, 269, 347,
564 958, 3443, 3656, 3704, 356, 348, 350, 2873, 354, 337,
565 2873, 2873, -693, -693, 528, -693, 55, 1630, -693, 2421,
566 -693, -693, 343, -693, -693, -693, -693, 355, 2421, 55,
567 -693, 1856, 359, 358, -693, 297, -693, -693, -693, 363,
568 362, 378, 313, 370, -693, 374, -693, 27, -693, 3728,
569 55, 3365, 372, 376, -693, 373, -693, -693, 127, -693,
570 380, 379, -693, 2873, -693, 390, 384, 2421, 1743, 382,
571 -693, 2195, -693, -693, 385, 395, 401, 313, 396, 1969,
572 3203, 268, -693, -693, -693, 397, 2308, -693, -693, 398,
573 402, -693, 399, 403, 404, -693, -693, 1743, -693, 405,
574 -693, 528, 406, 2195, -693, 407, -693, -693, -693, -693
575 };
576
577 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
578 Performed when YYTABLE does not specify something else to do. Zero
579 means the default is an error. */
580 static const unsigned short int yydefact[] =
581 {
582 277, 405, 402, 406, 400, 401, 403, 397, 398, 0,
583 396, 0, 282, 281, 0, 0, 0, 0, 510, 0,
584 0, 0, 623, 283, 0, 0, 0, 278, 279, 285,
585 284, 286, 290, 521, 388, 390, 389, 395, 409, 421,
586 394, 287, 289, 0, 288, 426, 444, 446, 447, 0,
587 0, 456, 292, 291, 293, 0, 294, 0, 404, 399,
588 33, 34, 611, 572, 24, 521, 527, 39, 38, 37,
589 35, 36, 32, 31, 25, 29, 28, 26, 27, 40,
590 580, 579, 577, 575, 576, 578, 574, 573, 581, 30,
591 609, 607, 606, 608, 605, 604, 457, 0, 523, 525,
592 41, 42, 396, 0, 0, 0, 0, 445, 432, 387,
593 296, 307, 304, 306, 308, 309, 320, 317, 318, 315,
594 321, 316, 0, 319, 310, 311, 312, 0, 337, 337,
595 0, 300, 0, 0, 0, 510, 510, 0, 0, 372,
596 377, 466, 376, 0, 516, 516, 391, 392, 393, 507,
597 358, 406, 397, 361, 0, 0, 357, 386, 0, 0,
598 0, 0, 625, 0, 624, 396, 0, 426, 0, 1,
599 280, 518, 467, 0, 522, 411, 415, 413, 417, 410,
600 407, 422, 409, 408, 430, 0, 0, 458, 458, 0,
601 0, 0, 522, 528, 521, 469, 524, 526, 391, 392,
602 393, 0, 431, 323, 324, 325, 327, 328, 326, 322,
603 337, 302, 297, 68, 43, 44, 45, 46, 47, 48,
604 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
605 59, 60, 61, 62, 63, 64, 65, 66, 67, 158,
606 159, 69, 70, 71, 72, 73, 74, 75, 76, 77,
607 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
608 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
609 98, 99, 100, 101, 102, 108, 106, 107, 105, 103,
610 104, 109, 110, 111, 112, 113, 114, 115, 116, 117,
611 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
612 128, 129, 130, 131, 132, 160, 133, 134, 135, 136,
613 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
614 147, 148, 149, 150, 151, 152, 156, 153, 154, 155,
615 157, 339, 305, 338, 298, 313, 314, 299, 322, 301,
616 347, 348, 0, 0, 22, 23, 20, 21, 0, 0,
617 350, 303, 349, 457, 391, 509, 392, 508, 373, 369,
618 378, 0, 0, 0, 0, 0, 0, 0, 295, 0,
619 0, 436, 0, 0, 0, 0, 437, 0, 471, 521,
620 518, 416, 412, 418, 419, 414, 423, 0, 424, 459,
621 0, 521, 0, 460, 462, 0, 486, 0, 484, 0,
622 623, 0, 0, 0, 617, 618, 0, 549, 552, 551,
623 553, 554, 0, 555, 0, 0, 433, 434, 0, 0,
624 330, 340, 506, 505, 0, 0, 501, 0, 0, 345,
625 342, 352, 2, 3, 4, 5, 6, 7, 8, 9,
626 10, 11, 13, 12, 14, 15, 16, 17, 18, 19,
627 0, 0, 370, 0, 0, 0, 0, 474, 473, 475,
628 472, 521, 468, 362, 438, 186, 161, 162, 163, 164,
629 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
630 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
631 185, 274, 275, 187, 188, 189, 190, 191, 192, 193,
632 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
633 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
634 214, 215, 216, 217, 218, 224, 222, 223, 221, 219,
635 220, 225, 226, 227, 228, 229, 230, 231, 232, 233,
636 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
637 244, 245, 246, 247, 248, 276, 249, 250, 251, 252,
638 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
639 263, 264, 265, 266, 267, 268, 272, 269, 270, 271,
640 273, 442, 443, 0, 440, 0, 0, 371, 425, 497,
641 495, 494, 496, 0, 519, 0, 498, 0, 488, 499,
642 0, 470, 420, 428, 0, 465, 0, 463, 518, 0,
643 518, 0, 0, 0, 483, 0, 0, 600, 0, 0,
644 599, 42, 0, 0, 0, 0, 620, 0, 0, 594,
645 529, 550, 0, 455, 0, 0, 331, 521, 0, 502,
646 504, 341, 0, 354, 0, 353, 0, 343, 0, 0,
647 512, 381, 374, 382, 0, 383, 516, 516, 380, 379,
648 0, 497, 366, 367, 368, 0, 364, 363, 439, 441,
649 530, 542, 543, 544, 545, 541, 546, 547, 548, 540,
650 0, 0, 534, 623, 539, 24, 0, 0, 0, 492,
651 520, 0, 0, 0, 429, 427, 464, 450, 0, 0,
652 461, 448, 0, 487, 485, 0, 556, 623, 598, 0,
653 538, 623, 0, 619, 0, 595, 592, 616, 454, 435,
654 332, 335, 0, 333, 503, 500, 346, 351, 0, 0,
655 0, 375, 0, 479, 476, 512, 0, 0, 0, 356,
656 0, 0, 0, 536, 0, 490, 0, 491, 452, 518,
657 518, 497, 0, 31, 30, 562, 567, 563, 565, 566,
658 41, 0, 601, 612, 0, 0, 621, 611, 597, 0,
659 337, 0, 355, 344, 0, 513, 0, 0, 0, 479,
660 385, 384, 453, 531, 0, 535, 623, 362, 489, 0,
661 451, 449, 0, 564, 586, 572, 587, 0, 0, 623,
662 568, 623, 0, 0, 622, 0, 329, 334, 336, 0,
663 0, 0, 512, 480, 477, 0, 532, 0, 537, 493,
664 623, 0, 582, 0, 614, 613, 602, 557, 0, 517,
665 0, 0, 481, 0, 478, 0, 0, 0, 0, 0,
666 603, 623, 610, 593, 0, 0, 0, 512, 0, 588,
667 0, 498, 584, 560, 558, 583, 0, 571, 615, 0,
668 0, 482, 0, 0, 589, 590, 569, 0, 559, 0,
669 514, 0, 0, 623, 585, 0, 533, 570, 591, 515
670 };
671
672 /* YYPGOTO[NTERM-NUM]. */
673 static const short int yypgoto[] =
674 {
675 -693, -323, -129, -7, 108, -693, -693, -693, 415, -693,
676 -693, -693, -693, -693, -693, -693, -693, -693, -693, 322,
677 -693, -693, -693, -126, -693, -301, -693, -693, -693, -693,
678 -693, -341, -693, -693, 282, -203, 22, -189, -156, -6,
679 -693, -693, -693, 423, -693, -693, 285, -693, -693, -693,
680 -693, 304, -693, -693, -693, -693, -504, -693, -135, -693,
681 -119, 444, 47, 3, 40, -693, -693, 281, -463, 5,
682 -33, -693, -693, 105, -346, -693, -305, -693, 7, -693,
683 -138, -342, -693, -121, -693, 52, -693, -428, -418, 80,
684 -692, -124, -351, -51, -3, -693, 394, -693, 473, -693,
685 -243, -639, -682, -693, 128, -387, -693, -366, -666, 120,
686 -232, -693, -693, -660, -693, -693, -693, -693, -693, -693,
687 -693, -693, -693, -669, -395, -376, -693, -693, -693, -693,
688 -693, -693, -193, -21, -664
689 };
690
691 /* YYDEFGOTO[NTERM-NUM]. */
692 static const short int yydefgoto[] =
693 {
694 -1, 692, 595, 171, 331, 581, 26, 27, 28, 29,
695 30, 127, 128, 129, 130, 337, 131, 132, 133, 210,
696 211, 722, 723, 332, 333, 351, 644, 645, 31, 155,
697 156, 665, 666, 32, 138, 650, 651, 652, 33, 34,
698 35, 36, 37, 38, 39, 40, 180, 382, 385, 183,
699 41, 186, 604, 42, 43, 202, 416, 44, 582, 583,
700 584, 45, 46, 47, 141, 49, 50, 392, 393, 51,
701 596, 52, 53, 458, 459, 654, 778, 813, 143, 397,
702 398, 617, 598, 599, 638, 426, 55, 144, 145, 149,
703 733, 362, 378, 173, 418, 98, 99, 56, 57, 681,
704 682, 618, 683, 684, 406, 407, 408, 852, 853, 854,
705 757, 758, 759, 100, 839, 855, 797, 863, 864, 409,
706 628, 769, 410, 619, 620, 101, 802, 825, 411, 412,
707 413, 625, 626, 622, 164
708 };
709
710 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
711 positive, shift that token. If negative, reduce the rule whose
712 number is the opposite. If YYTABLE_NINF, syntax error. */
713 static const short int yytable[] =
714 {
715 172, 163, 96, 334, 349, 109, 97, 54, 629, 146,
716 147, 148, 352, 157, 191, 108, 455, 456, 140, 631,
717 142, 363, 364, 365, 621, 371, 656, 621, 451, 601,
718 174, 391, 391, 376, 54, 597, 657, 139, 762, 756,
719 48, 761, 427, 779, 743, 760, 335, 66, 430, 65,
720 48, 710, 694, 775, 58, 630, 59, 107, 783, 695,
721 786, 48, 192, 776, 48, 48, 66, 48, 160, -516,
722 632, 185, 168, 361, -516, 158, 1, 2, 3, 4,
723 5, 6, 7, 8, 420, -447, -466, 457, -466, 154,
724 195, 835, 454, 796, 102, 800, 198, 199, 200, 162,
725 157, 760, 816, -456, 451, 201, -365, 451, -365, -365,
726 399, 400, 401, 402, 403, 209, 404, 405, -391, -511,
727 832, 667, 196, -392, -511, 338, 350, 353, 354, 356,
728 643, 97, 824, 608, 609, -497, 360, -497, -497, 336,
729 140, 169, 142, 415, 62, 842, 700, 743, 700, 646,
730 647, 366, 181, 4, 5, 861, 103, 104, 105, 358,
731 822, 175, 176, 177, 610, 611, 178, 380, 417, 140,
732 383, 142, 858, 384, 856, 741, 742, 187, 760, 179,
733 865, 836, 396, 613, 414, 184, 614, 188, 139, 876,
734 868, 192, 394, 394, 713, 189, 760, 714, 631, 48,
735 804, 635, 190, 856, 878, 48, 369, 760, 765, 66,
736 670, 768, 107, 193, 349, 355, 357, 422, 423, 212,
737 349, 656, 352, 424, 359, -359, 656, -456, 352, 361,
738 -360, 657, -511, 367, 464, 425, 657, 90, 91, 92,
739 93, 94, 95, 175, 176, 177, 368, 370, 178, 372,
740 373, 688, 377, 689, 379, 381, 387, 697, 419, 701,
741 388, 179, 431, 452, 454, 399, 400, 401, 402, 403,
742 703, 404, 405, 453, 1, 2, 3, 4, 5, 6,
743 7, 8, 399, 400, 401, 402, 403, 9, 404, 405,
744 463, 586, 102, 587, 588, 602, 612, 603, 653, 11,
745 633, 640, 349, 635, 671, 636, 648, 672, 705, 706,
746 352, 673, 707, 674, 675, 676, 677, 678, 679, 708,
747 451, 349, 349, 451, 451, 709, 710, 711, 600, 352,
748 352, 621, 712, 728, 680, 715, 350, 716, 718, 730,
749 607, 429, 350, 725, 726, 727, 739, 787, 732, 746,
750 747, 740, -24, 744, 103, 104, 105, 106, 172, 462,
751 748, 22, 749, 755, 750, 770, 615, 771, 623, 774,
752 627, 777, 782, 784, 792, 798, 192, 799, 801, -596,
753 805, 809, 811, 810, 157, 814, 605, 820, 174, 827,
754 780, 781, 826, 159, 828, 624, 829, 830, 790, 791,
755 794, 795, 788, 831, 833, 834, 838, 841, 634, 840,
756 660, 380, 845, 846, 848, 857, 849, 709, 637, 755,
757 859, 642, 658, 659, 350, 621, 860, 772, 773, 862,
758 875, 867, 869, 843, 871, 870, 872, 687, 873, 877,
759 879, 421, 170, 350, 350, 667, 818, 819, 374, 451,
760 451, 735, 844, 391, 339, 391, 821, 140, 192, 142,
761 731, 655, 182, 60, 669, 621, 110, 386, 167, 395,
762 460, 375, 61, 621, 815, 704, 639, 62, 63, 203,
763 204, 205, 64, 80, 81, 82, 83, 84, 85, 86,
764 87, 88, 197, 653, 161, 850, 755, 621, 653, 785,
765 585, 874, 111, 112, 113, 114, 115, 116, 117, 118,
766 119, 120, 121, 122, 755, 123, 124, 125, 126, 616,
767 793, 766, 0, 0, 0, 755, 67, 68, 69, 70,
768 71, 671, 736, 737, 672, 0, 0, 0, 673, 0,
769 674, 675, 676, 677, 678, 679, 0, 0, 72, 0,
770 73, 74, 75, 76, 77, 78, 0, 79, 0, 0,
771 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
772 90, 91, 92, 93, 94, 95, 0, 0, 0, 0,
773 0, 206, 0, 207, 208, 0, 724, 0, 0, 0,
774 0, 0, 0, 693, 0, 0, 0, 0, 195, 349,
775 349, 0, 719, 696, 0, 0, 396, 352, 352, 0,
776 0, 0, 0, 0, 394, 0, 394, 0, 0, 0,
777 172, 0, 0, 0, 0, 0, 0, 0, 0, 721,
778 0, 0, 0, 0, 192, 0, 0, 0, 0, 0,
779 0, 0, 0, 0, 806, 0, 0, 0, 360, 0,
780 174, 0, 140, 738, 142, 0, 655, 140, 0, 142,
781 0, 655, 0, 0, 0, 0, 0, 0, 0, 0,
782 0, 0, 0, 0, 0, 0, 763, 0, 0, 417,
783 157, 0, 417, 0, 0, 0, 0, 0, 0, 462,
784 764, 0, 0, 0, 0, 605, 0, 0, 1, 2,
785 3, 4, 5, 6, 7, 8, 0, 624, 0, 0,
786 0, 9, 0, 0, 0, 0, 10, 0, 0, 0,
787 0, 350, 350, 11, 12, 13, 0, 0, 0, 0,
788 0, 803, 0, 0, 0, 14, 0, 0, 0, 0,
789 0, 0, 0, 0, 812, 0, 0, 658, 659, 1,
790 2, 3, 4, 5, 6, 7, 8, 0, 0, 0,
791 0, 0, 0, 0, 808, 817, 0, 102, 0, 0,
792 0, 422, 423, 0, 0, 0, 0, 15, 16, 17,
793 18, 19, 20, 21, 0, 22, 0, 0, 0, 425,
794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
795 847, 0, 0, 0, 0, 851, 0, 0, 0, 0,
796 23, 0, 0, 0, 0, 24, 0, 25, 0, 0,
797 0, 0, 0, 0, 0, 0, 0, 0, 0, 103,
798 104, 105, -572, 0, 851, -572, -572, -572, -572, -572,
799 -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
800 -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
801 -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
802 -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
803 -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
804 -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
805 -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
806 -572, -572, 0, -572, 0, -572, -572, -572, -572, -572,
807 -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
808 -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
809 -572, -572, -572, -572, -572, -572, -572, -572, -572, 0,
810 -572, -572, 0, -572, -572, -572, -572, -572, 213, 0,
811 0, 214, 215, 216, 217, 218, 219, 220, 221, 222,
812 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
813 233, 234, 235, 236, 237, 238, 239, 240, 0, 241,
814 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
815 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
816 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
817 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
818 282, 283, 284, 285, 286, 287, 288, 289, 0, 290,
819 0, 291, 292, 293, 294, 295, 296, 297, 298, 299,
820 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
821 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
822 320, 321, 322, 323, 324, 0, 0, 325, 0, 326,
823 327, 328, 329, 330, 465, 0, 0, 466, 467, 468,
824 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
825 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
826 489, 490, 491, 492, 0, 493, 494, 495, 496, 497,
827 370, 668, 498, 499, 500, 501, 502, 503, 504, 505,
828 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
829 516, 517, 518, 519, 520, 521, 522, 523, 524, 525,
830 526, 527, 528, 529, 530, 531, 532, 533, 534, 535,
831 536, 537, 538, 539, 0, 540, 0, 541, 542, 543,
832 544, 545, 546, 547, 548, 549, 550, 551, 552, 553,
833 554, 555, 556, 557, 558, 559, 560, 561, 562, 563,
834 564, 565, 566, 567, 568, 569, 570, 571, 572, 573,
835 574, 0, 0, 575, 0, 576, 577, 578, 579, 580,
836 465, 0, 0, 466, 467, 468, 469, 470, 471, 472,
837 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
838 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
839 0, 493, 494, 495, 496, 497, 370, 0, 498, 499,
840 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
841 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
842 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
843 530, 531, 532, 533, 534, 535, 536, 537, 538, 539,
844 0, 540, 0, 541, 542, 543, 544, 545, 546, 547,
845 548, 549, 550, 551, 552, 553, 554, 555, 556, 557,
846 558, 559, 560, 561, 562, 563, 564, 565, 566, 567,
847 568, 569, 570, 571, 572, 573, 574, 0, 0, 575,
848 0, 576, 577, 578, 579, 580, 1, 2, 3, 4,
849 5, 6, 7, 8, 0, 0, 0, 0, 0, 9,
850 0, 0, 0, 0, 102, 0, 0, 0, 0, 0,
851 0, 11, 0, 0, 0, 0, 0, 0, 0, 734,
852 0, 0, 0, 0, 1, 2, 3, 4, 5, 6,
853 7, 8, 0, 0, 0, 0, 0, 134, 0, 0,
854 0, 0, 102, 0, 0, 0, 0, 0, 0, 11,
855 0, 0, 1, 2, 3, 4, 5, 6, 7, 8,
856 0, 0, 0, 0, 0, 9, 135, 136, 18, 106,
857 102, 0, 0, 0, 0, 0, 0, 11, 0, 0,
858 0, 0, 0, 1, 2, 3, 4, 5, 6, 7,
859 8, 0, 0, 0, 0, 0, 9, 0, 0, 0,
860 0, 102, 0, 649, 135, 136, 18, 106, 11, 0,
861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
862 0, 0, 0, 0, 1, 2, 3, 4, 5, 6,
863 7, 8, 135, 136, 18, 106, 0, 9, 0, 0,
864 0, 137, 165, 0, 0, 0, 0, 0, 0, 11,
865 1, 2, 3, 4, 5, 6, 7, 8, 0, 0,
866 0, 0, 0, 135, 136, 18, 106, 0, 102, 137,
867 60, 1, 2, 3, 4, 5, 6, 7, 8, 61,
868 0, 0, 0, 0, 62, 63, 589, 0, 0, 685,
869 590, 0, 591, 0, 592, 342, 11, 0, 0, 593,
870 649, 0, 0, 166, 103, 104, 105, 106, 0, 0,
871 0, 0, 0, 0, 344, 345, 66, 0, 0, 0,
872 0, 0, 0, 0, 0, 0, 0, 346, 347, 0,
873 103, 104, 105, 67, 68, 69, 70, 71, 0, 0,
874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
875 0, 103, 104, 105, 686, 72, 0, 73, 74, 75,
876 76, 77, 78, 0, 79, 0, 0, 80, 81, 82,
877 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
878 93, 94, 95, 60, 0, 0, 0, 0, 0, 0,
879 0, 0, 61, 0, 0, 0, 0, 62, 63, 661,
880 662, 663, 64, 590, 0, 591, 664, 592, 342, 0,
881 0, 0, 593, 0, 0, 0, 0, 0, 1, 2,
882 3, 4, 5, 6, 7, 8, 0, 344, 345, 66,
883 0, 698, 0, 0, 0, 0, 102, 0, 0, 0,
884 346, 347, 0, 11, 0, 0, 67, 68, 69, 70,
885 71, 1, 2, 3, 4, 5, 6, 7, 8, 0,
886 0, 0, 0, 0, 9, 0, 0, 0, 72, 102,
887 73, 74, 75, 76, 77, 78, 11, 79, 699, 0,
888 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
889 90, 91, 92, 93, 94, 95, 60, 0, 103, 104,
890 105, 390, 0, 0, 0, 61, 0, 0, 0, 0,
891 62, 63, 751, 0, 0, 64, 590, 0, 591, 0,
892 592, 342, 0, 0, 0, 593, 0, 0, 0, 0,
893 0, 103, 104, 105, 106, 0, 0, 162, 0, 0,
894 344, 345, 66, 0, 0, 0, 0, 0, 0, 0,
895 0, 0, 0, 346, 347, 0, 0, 0, 0, 67,
896 68, 69, 70, 71, 0, 0, 0, 0, 0, 0,
897 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
898 0, 72, 752, 753, 74, 75, 76, 77, 78, 0,
899 79, 0, 0, 80, 81, 82, 83, 84, 85, 86,
900 87, 88, 754, 90, 91, 92, 93, 94, 95, 60,
901 0, 0, 0, 0, 0, 0, 0, 0, 61, 0,
902 0, 0, 0, 62, 63, 589, 0, 0, 64, 590,
903 0, 591, 0, 592, 342, 0, 0, 0, 593, 0,
904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
905 162, 0, 0, 344, 345, 66, 0, 0, 0, 0,
906 0, 0, 0, 0, 0, 0, 346, 347, 0, 0,
907 823, 0, 67, 68, 69, 70, 71, 1, 2, 3,
908 4, 5, 6, 7, 8, 0, 0, 0, 0, 0,
909 9, 0, 0, 0, 72, 102, 73, 74, 75, 76,
910 77, 78, 11, 79, 0, 0, 80, 81, 82, 83,
911 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
912 94, 95, 60, 0, 0, 0, 0, 0, 0, 0,
913 0, 61, 0, 0, 0, 0, 62, 63, 589, 0,
914 0, 64, 590, -623, 591, 0, 592, 342, 0, 0,
915 0, 593, 0, 0, 0, 0, 0, 103, 104, 105,
916 106, 0, 0, 162, 0, 0, 344, 345, 66, 0,
917 0, 0, 0, 0, 0, 0, 0, 0, 0, 346,
918 347, 0, 0, 0, 0, 67, 68, 69, 70, 71,
919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
920 0, 0, 0, 0, 0, 0, 0, 72, 0, 73,
921 74, 75, 76, 77, 78, 0, 79, 0, 0, 80,
922 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
923 91, 92, 93, 94, 95, 60, 0, 0, 0, 0,
924 0, 0, 0, 0, 61, 0, 0, 0, 0, 62,
925 63, 589, 0, 0, 64, 590, 0, 591, 0, 592,
926 342, 0, 0, 0, 593, 0, 0, 0, 0, 0,
927 0, 594, 0, 0, 0, 0, 0, 0, 0, 344,
928 345, 66, 0, 0, 0, 0, 0, 0, 0, 0,
929 0, 0, 346, 347, 0, 0, 0, 0, 67, 68,
930 69, 70, 71, 1, 2, 3, 4, 5, 6, 7,
931 8, 0, 0, 0, 0, 0, 9, 0, 0, 0,
932 72, 102, 73, 74, 75, 76, 77, 78, 11, 79,
933 0, 0, 80, 81, 82, 83, 84, 85, 86, 87,
934 88, 89, 90, 91, 92, 93, 94, 95, 60, 0,
935 0, 0, 0, 0, 0, 0, 0, 61, 0, 0,
936 0, 0, 62, 63, 589, 0, 0, 64, 590, 0,
937 591, 0, 592, 342, 0, 0, 0, 593, 0, 0,
938 0, 0, 0, 135, 136, 18, 106, 0, 0, 162,
939 0, 0, 344, 345, 66, 0, 0, 0, 0, 0,
940 0, 0, 0, 0, 0, 346, 347, 0, 0, 0,
941 0, 67, 68, 69, 70, 71, 0, 0, 0, 0,
942 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
943 0, 0, 0, 72, 0, 73, 74, 75, 76, 77,
944 78, 0, 79, 0, 0, 80, 81, 82, 83, 84,
945 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
946 95, 60, 0, 0, 0, 0, 0, 0, 0, 0,
947 61, 0, 0, 0, 0, 62, 63, 751, 0, 0,
948 64, 590, 0, 591, 0, 592, 342, 0, 0, 0,
949 593, 0, 0, 0, 0, 0, 1, 2, 3, 4,
950 5, 6, 7, 8, 0, 344, 345, 66, 0, 698,
951 0, 0, 0, 0, 102, 0, 0, 0, 346, 347,
952 0, 11, 0, 0, 67, 68, 69, 70, 71, 0,
953 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
954 0, 0, 0, 0, 0, 0, 72, 752, 753, 74,
955 75, 76, 77, 78, 0, 79, 702, 0, 80, 81,
956 82, 83, 84, 85, 86, 87, 88, 754, 90, 91,
957 92, 93, 94, 95, 60, 0, 103, 104, 105, 390,
958 0, 0, 0, 61, 0, 0, 0, 0, 62, 63,
959 589, 0, 0, 64, 590, 0, 591, 0, 592, 342,
960 0, 0, 0, 593, 0, 0, 0, 150, 1, 2,
961 151, 4, 5, 6, 152, 8, 153, 0, 344, 345,
962 66, 154, 0, 0, 0, 0, 102, 0, 0, 0,
963 0, 346, 347, 0, 0, 0, 0, 67, 68, 69,
964 70, 71, 1, 2, 3, 4, 5, 6, 7, 8,
965 0, 0, 0, 0, 0, 9, 0, 0, 0, 72,
966 102, 73, 74, 75, 76, 77, 78, 11, 79, 0,
967 0, 80, 81, 82, 83, 84, 85, 86, 87, 88,
968 89, 90, 91, 92, 93, 94, 95, 60, 103, 104,
969 105, 0, 0, 0, 0, 0, 61, 0, 0, 0,
970 0, 62, 63, 0, 0, 0, 64, 0, 0, 340,
971 0, 341, 342, 0, 0, 0, 343, 0, 0, 0,
972 0, 0, 103, 104, 105, 106, 0, 0, 0, 0,
973 0, 344, 345, 0, 0, 0, 0, 0, 0, 0,
974 0, 0, 0, 0, 346, 347, 0, 0, 0, 0,
975 67, 68, 69, 70, 71, 0, 0, 0, 0, 0,
976 0, 0, 348, 0, 0, 0, 0, 0, 0, 0,
977 0, 0, 72, 0, 73, 74, 75, 76, 77, 78,
978 0, 79, 0, 0, 80, 81, 82, 83, 84, 85,
979 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
980 60, 0, 0, 0, 0, 0, 0, 0, 0, 61,
981 0, 0, 0, 0, 62, 63, 0, 0, 0, 64,
982 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,
983 0, 0, 0, 0, 1, 2, 3, 4, 5, 6,
984 7, 8, 0, 0, 0, 0, 66, 389, 0, 0,
985 0, 0, 102, 0, 0, 0, 0, 0, 0, 11,
986 0, 0, 0, 67, 68, 69, 70, 71, 1, 2,
987 3, 4, 5, 6, 7, 8, 0, 0, 0, 0,
988 0, 606, 0, 0, 0, 72, 102, 73, 74, 75,
989 76, 77, 78, 0, 79, 0, 0, 80, 81, 82,
990 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
991 93, 94, 95, 60, 103, 104, 105, 390, 0, 0,
992 0, 0, 61, 0, 0, 0, 0, 62, 63, 0,
993 0, 0, 64, 0, 0, 0, 0, 0, 0, 0,
994 0, 0, -521, 0, 0, 0, 0, 0, 103, 104,
995 105, 0, 0, 0, 0, 0, 0, 0, 0, 66,
996 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
997 0, 0, 0, 0, 0, 0, 67, 68, 69, 70,
998 71, 0, 0, 0, 0, 0, 0, 0, 0, 0,
999 0, 0, 0, 0, 0, 0, 0, 0, 72, 0,
1000 73, 74, 75, 76, 77, 78, 0, 79, 0, 0,
1001 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
1002 90, 91, 92, 93, 94, 95, 60, 0, 0, 0,
1003 0, 0, 0, 0, 0, 61, 717, 0, 0, 0,
1004 62, 63, 0, 0, 0, 64, 0, 432, 433, 434,
1005 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1006 445, 446, 447, 448, 449, 0, 0, 0, 0, 0,
1007 691, 0, 66, 0, 0, 0, 0, 0, 0, 0,
1008 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,
1009 68, 69, 70, 71, 0, 0, 0, 0, 0, 0,
1010 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1011 0, 72, 0, 73, 74, 75, 76, 77, 78, 0,
1012 79, 0, 0, 80, 81, 82, 83, 84, 85, 86,
1013 87, 88, 89, 90, 91, 92, 93, 94, 95, 60,
1014 0, 0, 0, 0, 0, 0, 0, 0, 61, 0,
1015 0, 0, 0, 62, 63, 0, 0, 0, 64, 0,
1016 641, 0, 0, 0, 0, 0, 0, 0, 194, 432,
1017 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
1018 443, 444, 445, 446, 447, 448, 449, 0, 0, 0,
1019 0, 0, 450, 0, 0, 0, 0, 0, 0, 0,
1020 0, 0, 67, 68, 69, 70, 71, 0, 0, 0,
1021 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1022 0, 0, 0, 0, 72, 0, 73, 74, 75, 76,
1023 77, 78, 0, 79, 0, 0, 80, 81, 82, 83,
1024 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
1025 94, 95, 60, 0, 0, 0, 0, 0, 0, 0,
1026 0, 61, 0, 0, 0, 0, 62, 63, 0, 0,
1027 0, 64, 0, 745, 0, 0, 0, 0, 0, 0,
1028 0, 428, 432, 433, 434, 435, 436, 437, 438, 439,
1029 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
1030 0, 0, 0, 0, 0, 691, 0, 0, 0, 0,
1031 0, 0, 0, 0, 0, 67, 68, 69, 70, 71,
1032 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1033 0, 0, 0, 0, 0, 0, 0, 72, 0, 73,
1034 74, 75, 76, 77, 78, 0, 79, 0, 0, 80,
1035 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
1036 91, 92, 93, 94, 95, 60, 0, 0, 0, 0,
1037 0, 0, 0, 0, 61, 0, 0, 0, 0, 62,
1038 63, 0, 0, 0, 64, 0, 866, 0, 0, 0,
1039 0, 0, 0, 0, 461, 432, 433, 434, 435, 436,
1040 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
1041 447, 448, 449, 0, 0, 0, 0, 0, 691, 0,
1042 0, 0, 0, 0, 60, 0, 0, 0, 67, 68,
1043 69, 70, 71, 61, 0, 0, 0, 0, 62, 63,
1044 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,
1045 72, 0, 73, 74, 75, 76, 77, 78, 0, 79,
1046 0, 0, 80, 81, 82, 83, 84, 85, 86, 87,
1047 88, 89, 90, 91, 92, 93, 94, 95, 0, 0,
1048 0, 0, 0, 0, 0, 720, 0, 67, 68, 69,
1049 70, 71, 0, 0, 0, 0, 0, 0, 0, 0,
1050 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,
1051 0, 73, 74, 75, 76, 77, 78, 0, 79, 0,
1052 0, 80, 81, 82, 83, 84, 85, 86, 87, 88,
1053 89, 90, 91, 92, 93, 94, 95, 60, 0, 0,
1054 0, 0, 0, 0, 0, 0, 61, 0, 0, 837,
1055 0, 767, 63, 0, 0, 0, 64, 432, 433, 434,
1056 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1057 445, 446, 447, 448, 449, 0, 0, 0, 0, 0,
1058 691, 0, 0, 66, 0, 0, 0, 0, 0, 0,
1059 0, 0, 0, 0, 0, 0, 60, 0, 0, 0,
1060 67, 68, 69, 70, 71, 61, 0, 0, 0, 0,
1061 62, 63, 0, 0, 0, 64, 0, 0, 0, 0,
1062 0, 0, 72, 0, 73, 74, 75, 76, 77, 78,
1063 0, 79, 0, 0, 80, 81, 82, 83, 84, 85,
1064 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1065 0, 0, 0, 0, 0, 60, 0, 807, 0, 67,
1066 68, 69, 70, 71, 61, 0, 0, 0, 0, 62,
1067 63, 0, 0, 0, 64, 0, 0, 0, 0, 0,
1068 0, 72, 0, 73, 74, 75, 76, 77, 78, 0,
1069 79, 0, 0, 80, 81, 82, 83, 84, 85, 86,
1070 87, 88, 89, 90, 91, 92, 93, 94, 95, 0,
1071 0, 0, 0, 0, 0, 0, 0, 0, 67, 68,
1072 69, 70, 71, 0, 0, 0, 0, 0, 0, 0,
1073 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1074 72, 0, 73, 74, 75, 76, 77, 78, 0, 79,
1075 0, 0, 80, 81, 82, 83, 84, 85, 86, 87,
1076 88, 89, 90, 91, 92, 93, 94, 95, 729, 0,
1077 0, 0, 0, 0, 0, 432, 433, 434, 435, 436,
1078 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
1079 447, 448, 449, 789, 0, 0, 0, 0, 450, 0,
1080 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
1081 442, 443, 444, 445, 446, 447, 448, 449, 0, 0,
1082 0, 690, 0, 691, 432, 433, 434, 435, 436, 437,
1083 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
1084 448, 449, 0, 0, 0, 0, 0, 691, 432, 433,
1085 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
1086 444, 445, 446, 447, 448, 449, 0, 0, 0, 0,
1087 0, 450, 432, 433, 434, 435, 436, 437, 438, 439,
1088 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
1089 0, 0, 0, 0, 0, 691, 432, 433, 434, 435,
1090 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
1091 446, 447, 448, 449, 0, 0, 0, 0, 0, 450,
1092 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
1093 442, 443, 444, 445, 446, 447, 448, 449, 0, 0,
1094 0, 0, 0, 691
1095 };
1096
1097 static const short int yycheck[] =
1098 {
1099 33, 22, 9, 129, 133, 11, 9, 0, 403, 16,
1100 17, 18, 133, 19, 65, 10, 362, 363, 15, 406,
1101 15, 145, 146, 147, 400, 160, 454, 403, 351, 380,
1102 33, 187, 188, 168, 27, 377, 454, 15, 707, 705,
1103 0, 705, 343, 735, 683, 705, 26, 49, 349, 32,
1104 10, 24, 26, 25, 9, 37, 11, 10, 740, 33,
1105 742, 21, 65, 35, 24, 25, 49, 27, 21, 31,
1106 412, 125, 25, 35, 36, 26, 4, 5, 6, 7,
1107 8, 9, 10, 11, 210, 31, 32, 31, 34, 17,
1108 97, 64, 36, 753, 22, 761, 103, 104, 105, 44,
1109 106, 761, 784, 32, 427, 34, 31, 430, 33, 34,
1110 92, 93, 94, 95, 96, 122, 98, 99, 35, 36,
1111 812, 463, 124, 35, 36, 132, 133, 134, 135, 136,
1112 431, 134, 801, 33, 34, 31, 143, 33, 34, 119,
1113 137, 0, 137, 194, 17, 18, 609, 786, 611, 450,
1114 451, 154, 6, 7, 8, 847, 84, 85, 86, 137,
1115 799, 4, 5, 6, 33, 34, 9, 174, 201, 166,
1116 6, 166, 841, 9, 838, 33, 34, 32, 838, 22,
1117 849, 820, 189, 34, 191, 31, 37, 32, 166, 871,
1118 856, 194, 187, 188, 31, 36, 856, 34, 585, 159,
1119 33, 34, 36, 867, 873, 165, 159, 867, 712, 49,
1120 37, 715, 165, 87, 343, 135, 136, 26, 27, 30,
1121 349, 649, 343, 32, 31, 23, 654, 32, 349, 35,
1122 23, 649, 36, 23, 369, 44, 654, 110, 111, 112,
1123 113, 114, 115, 4, 5, 6, 31, 36, 9, 36,
1124 23, 593, 38, 595, 32, 6, 32, 608, 118, 610,
1125 31, 22, 32, 31, 36, 92, 93, 94, 95, 96,
1126 612, 98, 99, 35, 4, 5, 6, 7, 8, 9,
1127 10, 11, 92, 93, 94, 95, 96, 17, 98, 99,
1128 40, 32, 22, 31, 31, 6, 40, 26, 454, 29,
1129 33, 22, 431, 34, 3, 32, 32, 6, 40, 31,
1130 431, 10, 40, 12, 13, 14, 15, 16, 17, 31,
1131 643, 450, 451, 646, 647, 32, 24, 40, 379, 450,
1132 451, 707, 32, 34, 33, 32, 343, 31, 33, 25,
1133 391, 348, 349, 33, 33, 33, 31, 40, 35, 691,
1134 692, 35, 33, 33, 84, 85, 86, 87, 391, 366,
1135 33, 91, 33, 705, 33, 33, 399, 34, 401, 34,
1136 403, 34, 33, 35, 109, 32, 379, 32, 34, 33,
1137 33, 25, 32, 35, 390, 31, 389, 32, 391, 31,
1138 736, 737, 33, 123, 97, 402, 33, 35, 749, 750,
1139 17, 18, 744, 25, 34, 31, 34, 34, 415, 33,
1140 461, 418, 32, 34, 24, 33, 32, 32, 424, 761,
1141 25, 428, 455, 456, 431, 801, 25, 728, 729, 33,
1142 25, 34, 34, 828, 35, 33, 33, 593, 34, 33,
1143 33, 333, 27, 450, 451, 787, 787, 789, 166, 772,
1144 773, 654, 828, 609, 132, 611, 798, 454, 461, 454,
1145 649, 454, 39, 3, 583, 841, 30, 182, 24, 188,
1146 365, 167, 12, 849, 779, 613, 424, 17, 18, 19,
1147 20, 21, 22, 100, 101, 102, 103, 104, 105, 106,
1148 107, 108, 98, 649, 21, 837, 838, 873, 654, 742,
1149 372, 867, 66, 67, 68, 69, 70, 71, 72, 73,
1150 74, 75, 76, 77, 856, 79, 80, 81, 82, 399,
1151 752, 714, -1, -1, -1, 867, 66, 67, 68, 69,
1152 70, 3, 656, 657, 6, -1, -1, -1, 10, -1,
1153 12, 13, 14, 15, 16, 17, -1, -1, 88, -1,
1154 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
1155 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1156 110, 111, 112, 113, 114, 115, -1, -1, -1, -1,
1157 -1, 121, -1, 123, 124, -1, 637, -1, -1, -1,
1158 -1, -1, -1, 600, -1, -1, -1, -1, 605, 728,
1159 729, -1, 635, 606, -1, -1, 613, 728, 729, -1,
1160 -1, -1, -1, -1, 609, -1, 611, -1, -1, -1,
1161 653, -1, -1, -1, -1, -1, -1, -1, -1, 636,
1162 -1, -1, -1, -1, 637, -1, -1, -1, -1, -1,
1163 -1, -1, -1, -1, 770, -1, -1, -1, 655, -1,
1164 653, -1, 649, 660, 649, -1, 649, 654, -1, 654,
1165 -1, 654, -1, -1, -1, -1, -1, -1, -1, -1,
1166 -1, -1, -1, -1, -1, -1, 709, -1, -1, 712,
1167 686, -1, 715, -1, -1, -1, -1, -1, -1, 696,
1168 711, -1, -1, -1, -1, 698, -1, -1, 4, 5,
1169 6, 7, 8, 9, 10, 11, -1, 714, -1, -1,
1170 -1, 17, -1, -1, -1, -1, 22, -1, -1, -1,
1171 -1, 728, 729, 29, 30, 31, -1, -1, -1, -1,
1172 -1, 764, -1, -1, -1, 41, -1, -1, -1, -1,
1173 -1, -1, -1, -1, 777, -1, -1, 780, 781, 4,
1174 5, 6, 7, 8, 9, 10, 11, -1, -1, -1,
1175 -1, -1, -1, -1, 771, 786, -1, 22, -1, -1,
1176 -1, 26, 27, -1, -1, -1, -1, 83, 84, 85,
1177 86, 87, 88, 89, -1, 91, -1, -1, -1, 44,
1178 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1179 833, -1, -1, -1, -1, 838, -1, -1, -1, -1,
1180 116, -1, -1, -1, -1, 121, -1, 123, -1, -1,
1181 -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
1182 85, 86, 0, -1, 867, 3, 4, 5, 6, 7,
1183 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
1184 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1185 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1186 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1187 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1188 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1189 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1190 78, 79, -1, 81, -1, 83, 84, 85, 86, 87,
1191 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1192 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
1193 108, 109, 110, 111, 112, 113, 114, 115, 116, -1,
1194 118, 119, -1, 121, 122, 123, 124, 125, 0, -1,
1195 -1, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1196 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1197 22, 23, 24, 25, 26, 27, 28, 29, -1, 31,
1198 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1199 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1200 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1201 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1202 72, 73, 74, 75, 76, 77, 78, 79, -1, 81,
1203 -1, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1204 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1205 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1206 112, 113, 114, 115, 116, -1, -1, 119, -1, 121,
1207 122, 123, 124, 125, 0, -1, -1, 3, 4, 5,
1208 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1209 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1210 26, 27, 28, 29, -1, 31, 32, 33, 34, 35,
1211 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1212 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1213 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1214 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1215 76, 77, 78, 79, -1, 81, -1, 83, 84, 85,
1216 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1217 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1218 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1219 116, -1, -1, 119, -1, 121, 122, 123, 124, 125,
1220 0, -1, -1, 3, 4, 5, 6, 7, 8, 9,
1221 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1222 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1223 -1, 31, 32, 33, 34, 35, 36, -1, 38, 39,
1224 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1225 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1226 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1227 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1228 -1, 81, -1, 83, 84, 85, 86, 87, 88, 89,
1229 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1230 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1231 110, 111, 112, 113, 114, 115, 116, -1, -1, 119,
1232 -1, 121, 122, 123, 124, 125, 4, 5, 6, 7,
1233 8, 9, 10, 11, -1, -1, -1, -1, -1, 17,
1234 -1, -1, -1, -1, 22, -1, -1, -1, -1, -1,
1235 -1, 29, -1, -1, -1, -1, -1, -1, -1, 37,
1236 -1, -1, -1, -1, 4, 5, 6, 7, 8, 9,
1237 10, 11, -1, -1, -1, -1, -1, 17, -1, -1,
1238 -1, -1, 22, -1, -1, -1, -1, -1, -1, 29,
1239 -1, -1, 4, 5, 6, 7, 8, 9, 10, 11,
1240 -1, -1, -1, -1, -1, 17, 84, 85, 86, 87,
1241 22, -1, -1, -1, -1, -1, -1, 29, -1, -1,
1242 -1, -1, -1, 4, 5, 6, 7, 8, 9, 10,
1243 11, -1, -1, -1, -1, -1, 17, -1, -1, -1,
1244 -1, 22, -1, 121, 84, 85, 86, 87, 29, -1,
1245 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1246 -1, -1, -1, -1, 4, 5, 6, 7, 8, 9,
1247 10, 11, 84, 85, 86, 87, -1, 17, -1, -1,
1248 -1, 121, 22, -1, -1, -1, -1, -1, -1, 29,
1249 4, 5, 6, 7, 8, 9, 10, 11, -1, -1,
1250 -1, -1, -1, 84, 85, 86, 87, -1, 22, 121,
1251 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
1252 -1, -1, -1, -1, 17, 18, 19, -1, -1, 22,
1253 23, -1, 25, -1, 27, 28, 29, -1, -1, 32,
1254 121, -1, -1, 83, 84, 85, 86, 87, -1, -1,
1255 -1, -1, -1, -1, 47, 48, 49, -1, -1, -1,
1256 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
1257 84, 85, 86, 66, 67, 68, 69, 70, -1, -1,
1258 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1259 -1, 84, 85, 86, 87, 88, -1, 90, 91, 92,
1260 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
1261 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1262 113, 114, 115, 3, -1, -1, -1, -1, -1, -1,
1263 -1, -1, 12, -1, -1, -1, -1, 17, 18, 19,
1264 20, 21, 22, 23, -1, 25, 26, 27, 28, -1,
1265 -1, -1, 32, -1, -1, -1, -1, -1, 4, 5,
1266 6, 7, 8, 9, 10, 11, -1, 47, 48, 49,
1267 -1, 17, -1, -1, -1, -1, 22, -1, -1, -1,
1268 60, 61, -1, 29, -1, -1, 66, 67, 68, 69,
1269 70, 4, 5, 6, 7, 8, 9, 10, 11, -1,
1270 -1, -1, -1, -1, 17, -1, -1, -1, 88, 22,
1271 90, 91, 92, 93, 94, 95, 29, 97, 64, -1,
1272 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1273 110, 111, 112, 113, 114, 115, 3, -1, 84, 85,
1274 86, 87, -1, -1, -1, 12, -1, -1, -1, -1,
1275 17, 18, 19, -1, -1, 22, 23, -1, 25, -1,
1276 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
1277 -1, 84, 85, 86, 87, -1, -1, 44, -1, -1,
1278 47, 48, 49, -1, -1, -1, -1, -1, -1, -1,
1279 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
1280 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1281 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1282 -1, 88, 89, 90, 91, 92, 93, 94, 95, -1,
1283 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1284 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
1285 -1, -1, -1, -1, -1, -1, -1, -1, 12, -1,
1286 -1, -1, -1, 17, 18, 19, -1, -1, 22, 23,
1287 -1, 25, -1, 27, 28, -1, -1, -1, 32, -1,
1288 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1289 44, -1, -1, 47, 48, 49, -1, -1, -1, -1,
1290 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
1291 64, -1, 66, 67, 68, 69, 70, 4, 5, 6,
1292 7, 8, 9, 10, 11, -1, -1, -1, -1, -1,
1293 17, -1, -1, -1, 88, 22, 90, 91, 92, 93,
1294 94, 95, 29, 97, -1, -1, 100, 101, 102, 103,
1295 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1296 114, 115, 3, -1, -1, -1, -1, -1, -1, -1,
1297 -1, 12, -1, -1, -1, -1, 17, 18, 19, -1,
1298 -1, 22, 23, 24, 25, -1, 27, 28, -1, -1,
1299 -1, 32, -1, -1, -1, -1, -1, 84, 85, 86,
1300 87, -1, -1, 44, -1, -1, 47, 48, 49, -1,
1301 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
1302 61, -1, -1, -1, -1, 66, 67, 68, 69, 70,
1303 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1304 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
1305 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
1306 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1307 111, 112, 113, 114, 115, 3, -1, -1, -1, -1,
1308 -1, -1, -1, -1, 12, -1, -1, -1, -1, 17,
1309 18, 19, -1, -1, 22, 23, -1, 25, -1, 27,
1310 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
1311 -1, 39, -1, -1, -1, -1, -1, -1, -1, 47,
1312 48, 49, -1, -1, -1, -1, -1, -1, -1, -1,
1313 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
1314 68, 69, 70, 4, 5, 6, 7, 8, 9, 10,
1315 11, -1, -1, -1, -1, -1, 17, -1, -1, -1,
1316 88, 22, 90, 91, 92, 93, 94, 95, 29, 97,
1317 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
1318 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
1319 -1, -1, -1, -1, -1, -1, -1, 12, -1, -1,
1320 -1, -1, 17, 18, 19, -1, -1, 22, 23, -1,
1321 25, -1, 27, 28, -1, -1, -1, 32, -1, -1,
1322 -1, -1, -1, 84, 85, 86, 87, -1, -1, 44,
1323 -1, -1, 47, 48, 49, -1, -1, -1, -1, -1,
1324 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
1325 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
1326 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1327 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
1328 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
1329 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1330 115, 3, -1, -1, -1, -1, -1, -1, -1, -1,
1331 12, -1, -1, -1, -1, 17, 18, 19, -1, -1,
1332 22, 23, -1, 25, -1, 27, 28, -1, -1, -1,
1333 32, -1, -1, -1, -1, -1, 4, 5, 6, 7,
1334 8, 9, 10, 11, -1, 47, 48, 49, -1, 17,
1335 -1, -1, -1, -1, 22, -1, -1, -1, 60, 61,
1336 -1, 29, -1, -1, 66, 67, 68, 69, 70, -1,
1337 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1338 -1, -1, -1, -1, -1, -1, 88, 89, 90, 91,
1339 92, 93, 94, 95, -1, 97, 64, -1, 100, 101,
1340 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1341 112, 113, 114, 115, 3, -1, 84, 85, 86, 87,
1342 -1, -1, -1, 12, -1, -1, -1, -1, 17, 18,
1343 19, -1, -1, 22, 23, -1, 25, -1, 27, 28,
1344 -1, -1, -1, 32, -1, -1, -1, 3, 4, 5,
1345 6, 7, 8, 9, 10, 11, 12, -1, 47, 48,
1346 49, 17, -1, -1, -1, -1, 22, -1, -1, -1,
1347 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
1348 69, 70, 4, 5, 6, 7, 8, 9, 10, 11,
1349 -1, -1, -1, -1, -1, 17, -1, -1, -1, 88,
1350 22, 90, 91, 92, 93, 94, 95, 29, 97, -1,
1351 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1352 109, 110, 111, 112, 113, 114, 115, 3, 84, 85,
1353 86, -1, -1, -1, -1, -1, 12, -1, -1, -1,
1354 -1, 17, 18, -1, -1, -1, 22, -1, -1, 25,
1355 -1, 27, 28, -1, -1, -1, 32, -1, -1, -1,
1356 -1, -1, 84, 85, 86, 87, -1, -1, -1, -1,
1357 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
1358 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
1359 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
1360 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
1361 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
1362 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
1363 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1364 3, -1, -1, -1, -1, -1, -1, -1, -1, 12,
1365 -1, -1, -1, -1, 17, 18, -1, -1, -1, 22,
1366 -1, -1, -1, -1, -1, -1, -1, -1, -1, 32,
1367 -1, -1, -1, -1, 4, 5, 6, 7, 8, 9,
1368 10, 11, -1, -1, -1, -1, 49, 17, -1, -1,
1369 -1, -1, 22, -1, -1, -1, -1, -1, -1, 29,
1370 -1, -1, -1, 66, 67, 68, 69, 70, 4, 5,
1371 6, 7, 8, 9, 10, 11, -1, -1, -1, -1,
1372 -1, 17, -1, -1, -1, 88, 22, 90, 91, 92,
1373 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
1374 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1375 113, 114, 115, 3, 84, 85, 86, 87, -1, -1,
1376 -1, -1, 12, -1, -1, -1, -1, 17, 18, -1,
1377 -1, -1, 22, -1, -1, -1, -1, -1, -1, -1,
1378 -1, -1, 32, -1, -1, -1, -1, -1, 84, 85,
1379 86, -1, -1, -1, -1, -1, -1, -1, -1, 49,
1380 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1381 -1, -1, -1, -1, -1, -1, 66, 67, 68, 69,
1382 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1383 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
1384 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
1385 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1386 110, 111, 112, 113, 114, 115, 3, -1, -1, -1,
1387 -1, -1, -1, -1, -1, 12, 31, -1, -1, -1,
1388 17, 18, -1, -1, -1, 22, -1, 42, 43, 44,
1389 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1390 55, 56, 57, 58, 59, -1, -1, -1, -1, -1,
1391 65, -1, 49, -1, -1, -1, -1, -1, -1, -1,
1392 -1, -1, -1, -1, -1, -1, -1, -1, -1, 66,
1393 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1394 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1395 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
1396 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1397 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
1398 -1, -1, -1, -1, -1, -1, -1, -1, 12, -1,
1399 -1, -1, -1, 17, 18, -1, -1, -1, 22, -1,
1400 33, -1, -1, -1, -1, -1, -1, -1, 32, 42,
1401 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1402 53, 54, 55, 56, 57, 58, 59, -1, -1, -1,
1403 -1, -1, 65, -1, -1, -1, -1, -1, -1, -1,
1404 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
1405 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1406 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
1407 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
1408 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1409 114, 115, 3, -1, -1, -1, -1, -1, -1, -1,
1410 -1, 12, -1, -1, -1, -1, 17, 18, -1, -1,
1411 -1, 22, -1, 33, -1, -1, -1, -1, -1, -1,
1412 -1, 32, 42, 43, 44, 45, 46, 47, 48, 49,
1413 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1414 -1, -1, -1, -1, -1, 65, -1, -1, -1, -1,
1415 -1, -1, -1, -1, -1, 66, 67, 68, 69, 70,
1416 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1417 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
1418 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
1419 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1420 111, 112, 113, 114, 115, 3, -1, -1, -1, -1,
1421 -1, -1, -1, -1, 12, -1, -1, -1, -1, 17,
1422 18, -1, -1, -1, 22, -1, 33, -1, -1, -1,
1423 -1, -1, -1, -1, 32, 42, 43, 44, 45, 46,
1424 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1425 57, 58, 59, -1, -1, -1, -1, -1, 65, -1,
1426 -1, -1, -1, -1, 3, -1, -1, -1, 66, 67,
1427 68, 69, 70, 12, -1, -1, -1, -1, 17, 18,
1428 -1, -1, -1, 22, -1, -1, -1, -1, -1, -1,
1429 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
1430 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
1431 108, 109, 110, 111, 112, 113, 114, 115, -1, -1,
1432 -1, -1, -1, -1, -1, 64, -1, 66, 67, 68,
1433 69, 70, -1, -1, -1, -1, -1, -1, -1, -1,
1434 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
1435 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
1436 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1437 109, 110, 111, 112, 113, 114, 115, 3, -1, -1,
1438 -1, -1, -1, -1, -1, -1, 12, -1, -1, 34,
1439 -1, 17, 18, -1, -1, -1, 22, 42, 43, 44,
1440 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1441 55, 56, 57, 58, 59, -1, -1, -1, -1, -1,
1442 65, -1, -1, 49, -1, -1, -1, -1, -1, -1,
1443 -1, -1, -1, -1, -1, -1, 3, -1, -1, -1,
1444 66, 67, 68, 69, 70, 12, -1, -1, -1, -1,
1445 17, 18, -1, -1, -1, 22, -1, -1, -1, -1,
1446 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
1447 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
1448 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1449 -1, -1, -1, -1, -1, 3, -1, 64, -1, 66,
1450 67, 68, 69, 70, 12, -1, -1, -1, -1, 17,
1451 18, -1, -1, -1, 22, -1, -1, -1, -1, -1,
1452 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
1453 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1454 107, 108, 109, 110, 111, 112, 113, 114, 115, -1,
1455 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
1456 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
1457 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1458 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
1459 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
1460 108, 109, 110, 111, 112, 113, 114, 115, 35, -1,
1461 -1, -1, -1, -1, -1, 42, 43, 44, 45, 46,
1462 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1463 57, 58, 59, 35, -1, -1, -1, -1, 65, -1,
1464 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1465 52, 53, 54, 55, 56, 57, 58, 59, -1, -1,
1466 -1, 39, -1, 65, 42, 43, 44, 45, 46, 47,
1467 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1468 58, 59, -1, -1, -1, -1, -1, 65, 42, 43,
1469 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1470 54, 55, 56, 57, 58, 59, -1, -1, -1, -1,
1471 -1, 65, 42, 43, 44, 45, 46, 47, 48, 49,
1472 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1473 -1, -1, -1, -1, -1, 65, 42, 43, 44, 45,
1474 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1475 56, 57, 58, 59, -1, -1, -1, -1, -1, 65,
1476 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1477 52, 53, 54, 55, 56, 57, 58, 59, -1, -1,
1478 -1, -1, -1, 65
1479 };
1480
1481 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1482 symbol of state STATE-NUM. */
1483 static const unsigned short int yystos[] =
1484 {
1485 0, 4, 5, 6, 7, 8, 9, 10, 11, 17,
1486 22, 29, 30, 31, 41, 83, 84, 85, 86, 87,
1487 88, 89, 91, 116, 121, 123, 146, 147, 148, 149,
1488 150, 168, 173, 178, 179, 180, 181, 182, 183, 184,
1489 185, 190, 193, 194, 197, 201, 202, 203, 204, 205,
1490 206, 209, 211, 212, 218, 226, 237, 238, 9, 11,
1491 3, 12, 17, 18, 22, 32, 49, 66, 67, 68,
1492 69, 70, 88, 90, 91, 92, 93, 94, 95, 97,
1493 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1494 110, 111, 112, 113, 114, 115, 143, 234, 235, 236,
1495 253, 265, 22, 84, 85, 86, 87, 202, 209, 179,
1496 30, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1497 75, 76, 77, 79, 80, 81, 82, 151, 152, 153,
1498 154, 156, 157, 158, 17, 84, 85, 121, 174, 176,
1499 203, 204, 209, 218, 227, 228, 143, 143, 143, 229,
1500 3, 6, 10, 12, 17, 169, 170, 179, 26, 123,
1501 202, 238, 44, 273, 274, 22, 83, 201, 202, 0,
1502 148, 143, 210, 233, 234, 4, 5, 6, 9, 22,
1503 186, 6, 183, 189, 31, 125, 191, 32, 32, 36,
1504 36, 233, 234, 87, 32, 143, 124, 236, 143, 143,
1505 143, 34, 195, 19, 20, 21, 121, 123, 124, 143,
1506 159, 160, 30, 0, 3, 4, 5, 6, 7, 8,
1507 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
1508 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1509 29, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1510 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1511 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1512 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1513 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1514 81, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1515 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1516 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1517 112, 113, 114, 115, 116, 119, 121, 122, 123, 124,
1518 125, 144, 163, 164, 163, 26, 119, 155, 143, 159,
1519 25, 27, 28, 32, 47, 48, 60, 61, 78, 142,
1520 143, 165, 223, 143, 143, 229, 143, 229, 176, 31,
1521 143, 35, 231, 231, 231, 231, 234, 23, 31, 202,
1522 36, 198, 36, 23, 174, 191, 198, 38, 232, 32,
1523 143, 6, 187, 6, 9, 188, 186, 32, 31, 17,
1524 87, 178, 207, 208, 209, 207, 143, 219, 220, 92,
1525 93, 94, 95, 96, 98, 99, 244, 245, 246, 259,
1526 262, 268, 269, 270, 143, 233, 196, 210, 234, 118,
1527 163, 144, 26, 27, 32, 44, 225, 165, 32, 143,
1528 165, 32, 42, 43, 44, 45, 46, 47, 48, 49,
1529 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1530 65, 141, 31, 35, 36, 214, 214, 31, 213, 214,
1531 213, 32, 143, 40, 198, 0, 3, 4, 5, 6,
1532 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1533 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1534 27, 28, 29, 31, 32, 33, 34, 35, 38, 39,
1535 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1536 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1537 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1538 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1539 81, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1540 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1541 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1542 112, 113, 114, 115, 116, 119, 121, 122, 123, 124,
1543 125, 145, 198, 199, 200, 244, 32, 31, 31, 19,
1544 23, 25, 27, 32, 39, 142, 210, 221, 222, 223,
1545 233, 232, 6, 26, 192, 234, 17, 233, 33, 34,
1546 33, 34, 40, 34, 37, 210, 249, 221, 241, 263,
1547 264, 265, 273, 210, 143, 271, 272, 210, 260, 264,
1548 37, 245, 221, 33, 143, 34, 32, 179, 224, 225,
1549 22, 33, 143, 165, 166, 167, 165, 165, 32, 121,
1550 175, 176, 177, 178, 215, 218, 227, 228, 210, 210,
1551 233, 19, 20, 21, 26, 171, 172, 221, 37, 200,
1552 37, 3, 6, 10, 12, 13, 14, 15, 16, 17,
1553 33, 239, 240, 242, 243, 22, 87, 178, 221, 221,
1554 39, 65, 141, 143, 26, 33, 234, 232, 17, 64,
1555 208, 232, 64, 221, 220, 40, 31, 40, 31, 32,
1556 24, 40, 32, 31, 34, 32, 31, 31, 33, 210,
1557 64, 143, 161, 162, 233, 33, 33, 33, 34, 35,
1558 25, 177, 35, 230, 37, 175, 231, 231, 143, 31,
1559 35, 33, 34, 241, 33, 33, 221, 221, 33, 33,
1560 33, 19, 89, 90, 109, 221, 248, 250, 251, 252,
1561 253, 274, 263, 210, 273, 196, 272, 17, 196, 261,
1562 33, 34, 165, 165, 34, 25, 35, 34, 216, 230,
1563 214, 214, 33, 242, 35, 240, 242, 40, 221, 35,
1564 232, 232, 109, 250, 17, 18, 253, 256, 32, 32,
1565 248, 34, 266, 210, 33, 33, 163, 64, 143, 25,
1566 35, 32, 210, 217, 31, 216, 242, 273, 171, 221,
1567 32, 221, 241, 64, 263, 267, 33, 31, 97, 33,
1568 35, 25, 230, 34, 31, 64, 241, 34, 34, 254,
1569 33, 34, 18, 264, 265, 32, 34, 210, 24, 32,
1570 221, 210, 247, 248, 249, 255, 274, 33, 263, 25,
1571 25, 230, 33, 257, 258, 263, 33, 34, 248, 34,
1572 33, 35, 33, 34, 247, 25, 242, 33, 263, 33
1573 };
1574
1575 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1576 static const unsigned short int yyr1[] =
1577 {
1578 0, 140, 141, 141, 141, 141, 141, 141, 141, 141,
1579 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
1580 142, 142, 142, 142, 143, 143, 143, 143, 143, 143,
1581 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
1582 143, 143, 143, 144, 144, 144, 144, 144, 144, 144,
1583 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1584 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1585 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1586 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1587 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1588 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1589 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1590 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1591 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1592 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1593 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1594 144, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1595 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1596 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1597 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1598 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1599 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1600 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1601 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1602 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1603 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1604 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1605 145, 145, 145, 145, 145, 145, 145, 146, 146, 147,
1606 147, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1607 148, 148, 148, 148, 148, 149, 150, 150, 151, 151,
1608 151, 151, 151, 151, 151, 151, 152, 152, 153, 153,
1609 154, 154, 154, 155, 155, 156, 156, 157, 157, 157,
1610 158, 158, 159, 159, 159, 159, 159, 159, 159, 160,
1611 160, 161, 161, 161, 161, 162, 162, 163, 163, 164,
1612 164, 165, 165, 165, 165, 165, 165, 165, 165, 165,
1613 165, 165, 166, 166, 167, 167, 168, 169, 170, 170,
1614 170, 170, 171, 171, 171, 172, 172, 172, 172, 173,
1615 173, 173, 174, 174, 175, 175, 176, 176, 176, 176,
1616 176, 177, 177, 177, 177, 177, 178, 178, 178, 179,
1617 179, 180, 180, 180, 181, 181, 181, 182, 182, 182,
1618 183, 183, 184, 184, 184, 185, 185, 185, 185, 186,
1619 186, 186, 186, 186, 186, 187, 187, 188, 188, 188,
1620 188, 189, 189, 189, 190, 190, 191, 191, 192, 192,
1621 193, 194, 195, 195, 196, 196, 197, 197, 197, 198,
1622 199, 199, 200, 200, 201, 201, 202, 202, 203, 203,
1623 204, 204, 205, 205, 205, 205, 206, 206, 207, 207,
1624 207, 207, 208, 208, 208, 208, 209, 209, 209, 209,
1625 210, 210, 211, 212, 213, 213, 214, 215, 215, 216,
1626 216, 217, 217, 218, 219, 219, 220, 220, 221, 221,
1627 221, 221, 221, 221, 222, 222, 222, 222, 222, 222,
1628 223, 223, 224, 224, 225, 225, 225, 226, 227, 228,
1629 229, 229, 230, 230, 230, 230, 231, 231, 232, 232,
1630 232, 233, 233, 234, 234, 235, 235, 236, 236, 237,
1631 237, 238, 238, 238, 239, 239, 240, 240, 241, 242,
1632 243, 243, 243, 243, 243, 243, 243, 243, 243, 244,
1633 244, 245, 245, 245, 245, 245, 246, 246, 247, 247,
1634 247, 248, 248, 248, 248, 248, 248, 249, 249, 250,
1635 251, 252, 253, 253, 253, 253, 253, 253, 253, 253,
1636 253, 253, 254, 254, 255, 255, 256, 256, 257, 257,
1637 258, 258, 259, 260, 260, 261, 261, 261, 262, 263,
1638 263, 263, 264, 264, 265, 265, 265, 265, 265, 265,
1639 265, 265, 266, 266, 267, 267, 268, 269, 269, 270,
1640 271, 271, 272, 273, 273, 274
1641 };
1642
1643 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
1644 static const unsigned char yyr2[] =
1645 {
1646 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1647 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1648 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1649 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1650 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1651 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1652 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1653 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1654 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1655 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1656 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1657 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1658 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1659 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1660 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1661 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1662 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1663 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1664 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1665 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1666 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1667 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1668 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1669 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1670 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1671 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1672 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1673 1, 1, 1, 1, 1, 1, 1, 0, 1, 1,
1674 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1675 1, 1, 1, 1, 1, 3, 2, 3, 2, 2,
1676 1, 2, 2, 2, 1, 2, 1, 1, 1, 1,
1677 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1678 1, 1, 1, 1, 1, 1, 1, 1, 1, 6,
1679 2, 0, 1, 1, 3, 1, 3, 0, 1, 1,
1680 2, 3, 2, 3, 5, 2, 4, 1, 1, 1,
1681 1, 4, 0, 1, 1, 3, 6, 1, 1, 1,
1682 1, 1, 0, 1, 1, 1, 1, 1, 1, 3,
1683 4, 4, 1, 2, 1, 2, 1, 1, 2, 4,
1684 4, 1, 1, 1, 3, 3, 2, 2, 1, 1,
1685 1, 2, 2, 2, 1, 1, 1, 1, 1, 2,
1686 1, 1, 1, 1, 2, 1, 1, 2, 2, 0,
1687 1, 1, 2, 1, 2, 0, 1, 0, 1, 1,
1688 2, 0, 1, 2, 3, 4, 0, 4, 1, 2,
1689 2, 3, 0, 2, 1, 3, 3, 3, 4, 3,
1690 1, 2, 1, 1, 1, 2, 1, 1, 5, 7,
1691 5, 7, 6, 7, 6, 5, 1, 2, 0, 1,
1692 1, 3, 1, 2, 3, 2, 1, 2, 4, 3,
1693 3, 2, 4, 4, 1, 1, 3, 4, 5, 0,
1694 2, 2, 4, 4, 1, 3, 1, 3, 1, 4,
1695 3, 3, 2, 5, 1, 1, 1, 1, 1, 1,
1696 4, 2, 1, 2, 2, 1, 1, 2, 2, 2,
1697 0, 1, 0, 2, 7, 9, 0, 7, 0, 2,
1698 3, 0, 1, 1, 2, 1, 2, 1, 2, 4,
1699 5, 7, 8, 13, 1, 3, 2, 4, 2, 1,
1700 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1701 2, 1, 1, 1, 1, 1, 3, 6, 1, 2,
1702 1, 1, 1, 1, 2, 1, 1, 3, 4, 6,
1703 8, 5, 1, 1, 1, 1, 1, 1, 1, 1,
1704 1, 1, 0, 2, 1, 3, 1, 1, 0, 1,
1705 1, 3, 3, 6, 1, 0, 1, 1, 3, 1,
1706 1, 3, 5, 6, 1, 1, 1, 1, 1, 1,
1707 1, 1, 0, 2, 1, 3, 3, 1, 1, 3,
1708 1, 3, 4, 0, 1, 1
1709 };
1710
1711
1712 /* YYDPREC[RULE-NUM] -- Dynamic precedence of rule #RULE-NUM (0 if none). */
1713 static const unsigned char yydprec[] =
1714 {
1715 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1717 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1725 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1726 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1728 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1734 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1737 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1740 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1743 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1748 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1751 0, 0, 0, 1, 2, 0, 0, 0, 0, 0,
1752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1753 0, 2, 1, 0, 0, 0, 0, 0, 0, 0,
1754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1759 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1761 0, 0, 2, 1, 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, 2, 1, 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
1778 };
1779
1780 /* YYMERGER[RULE-NUM] -- Index of merging function for rule #RULE-NUM. */
1781 static const unsigned char yymerger[] =
1782 {
1783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1799 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1803 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1807 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1808 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1810 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1812 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1813 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1814 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1815 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1825 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1845 0, 0, 0, 0, 0, 0
1846 };
1847
1848 /* YYIMMEDIATE[RULE-NUM] -- True iff rule #RULE-NUM is not to be deferred, as
1849 in the case of predicates. */
1850 static const yybool yyimmediate[] =
1851 {
1852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1863 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1865 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1866 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1870 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1876 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1877 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1878 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1879 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1880 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1881 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1882 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1883 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1886 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1887 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1888 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1889 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1890 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1891 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1893 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1894 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1897 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1898 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1899 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1902 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1908 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1911 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1912 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1914 0, 0, 0, 0, 0, 0
1915 };
1916
1917 /* YYCONFLP[YYPACT[STATE-NUM]] -- Pointer into YYCONFL of start of
1918 list of conflicting reductions corresponding to action entry for
1919 state STATE-NUM in yytable. 0 means no conflicts. The list in
1920 yyconfl is terminated by a rule number of 0. */
1921 static const unsigned short int yyconflp[] =
1922 {
1923 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1924 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1926 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1930 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1931 0, 0, 0, 0, 0, 7, 0, 0, 0, 0,
1932 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1933 0, 0, 0, 0, 0, 0, 261, 0, 263, 265,
1934 0, 0, 0, 0, 0, 0, 0, 0, 255, 0,
1935 0, 0, 0, 257, 0, 0, 0, 0, 0, 0,
1936 0, 0, 0, 0, 0, 269, 0, 271, 273, 0,
1937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1938 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1940 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
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, 253, 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, 259, 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, 267, 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, 275,
1961 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1962 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1963 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1964 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1965 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1966 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1967 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1968 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1969 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1970 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1971 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1972 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1973 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1975 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1976 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1977 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1978 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1979 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1980 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1981 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1982 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1983 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1984 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1985 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1986 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1987 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1988 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1989 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1990 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1991 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1992 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1993 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1994 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1995 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1996 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1997 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1998 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1999 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2000 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2001 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2002 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2003 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2004 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2005 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2006 0, 0, 9, 0, 0, 11, 13, 15, 17, 19,
2007 21, 23, 25, 27, 29, 31, 33, 35, 37, 39,
2008 41, 43, 45, 47, 49, 51, 53, 55, 57, 59,
2009 61, 63, 65, 67, 69, 71, 73, 75, 77, 79,
2010 81, 83, 85, 87, 89, 91, 93, 95, 97, 99,
2011 101, 103, 105, 107, 109, 111, 113, 115, 117, 119,
2012 121, 123, 125, 127, 129, 131, 133, 135, 137, 139,
2013 141, 143, 145, 147, 149, 151, 153, 155, 157, 159,
2014 161, 163, 0, 165, 0, 167, 169, 171, 173, 175,
2015 177, 179, 181, 183, 185, 187, 189, 191, 193, 195,
2016 197, 199, 201, 203, 205, 207, 209, 211, 213, 215,
2017 217, 219, 221, 223, 225, 227, 229, 231, 233, 0,
2018 235, 237, 0, 239, 241, 243, 245, 247, 0, 0,
2019 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2020 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2021 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2022 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2023 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2024 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2025 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2026 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2027 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2028 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2029 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2030 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2031 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2032 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2033 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2034 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2035 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2036 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2037 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2038 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2039 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2040 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2041 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2042 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2043 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2044 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2045 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2046 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2047 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2048 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2049 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2050 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2051 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2052 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2053 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2054 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2055 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2056 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2057 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2058 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2059 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2060 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2061 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2062 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2063 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2064 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2065 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2066 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2067 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2068 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2069 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2070 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2071 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2072 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2073 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2074 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2075 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2076 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2077 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2078 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2079 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2080 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2081 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2082 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2083 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2084 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2085 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2086 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2087 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2088 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2089 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2090 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2091 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2092 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2093 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2094 0, 0, 0, 0, 1, 0, 0, 0, 0, 3,
2095 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2096 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2097 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2098 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2099 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2100 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2101 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2102 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2103 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2104 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2105 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2106 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2107 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2108 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2109 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2110 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2111 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2112 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2113 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2114 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2115 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2116 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2117 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2118 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2119 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2120 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2121 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2122 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2123 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2125 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2126 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2127 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2128 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2129 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2130 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2131 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2132 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2133 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2134 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2135 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2136 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2137 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2138 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2139 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2140 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2141 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2142 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2143 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2144 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2145 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2146 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2147 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2148 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2149 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2150 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2151 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2152 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2153 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2154 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2155 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2156 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2157 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2159 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2160 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2161 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2162 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2163 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2164 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2165 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2166 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2167 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2168 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2169 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2170 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2171 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2172 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2173 0, 0, 0, 0, 0, 249, 0, 0, 0, 0,
2174 251, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2175 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2176 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2177 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2178 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2180 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2181 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2182 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2183 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2184 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2185 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2186 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2187 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2188 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2189 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2190 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2191 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2192 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2193 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2194 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2195 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2196 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2197 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2198 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2199 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2200 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2201 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2202 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2203 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2204 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2205 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2206 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2207 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2208 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2209 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2210 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2211 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2212 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2213 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2214 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2215 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2216 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2217 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2218 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2219 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2220 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2222 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2223 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2224 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2225 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2226 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2227 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2228 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2229 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2230 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2231 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2232 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2233 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2234 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2235 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2236 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2237 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2238 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2239 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2240 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2242 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2243 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2244 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2245 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2246 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2247 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2248 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2249 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2250 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2251 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2252 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2253 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2254 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2255 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2256 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2257 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2258 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2259 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2260 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2261 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2262 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2263 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2264 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2265 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2266 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2267 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2268 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2269 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2270 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2271 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2272 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2273 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2274 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2275 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2276 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2277 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2278 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2279 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2280 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2281 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2282 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2283 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2284 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2285 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2286 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2287 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2288 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2289 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2290 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2291 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2292 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2293 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2294 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2295 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2296 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2297 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2298 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2299 0, 0, 0, 0, 0, 0, 0, 0, 0, 277,
2300 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2301 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2302 0, 0, 0, 279
2303 };
2304
2305 /* YYCONFL[I] -- lists of conflicting rule numbers, each terminated by
2306 0, pointed into by YYCONFLP. */
2307 static const short int yyconfl[] =
2308 {
2309 0, 396, 0, 396, 0, 409, 0, 466, 0, 610,
2310 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2311 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2312 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2313 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2314 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2315 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2316 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2317 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2318 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2319 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2320 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2321 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2322 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2323 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2324 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2325 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2326 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2327 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2328 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2329 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2330 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2331 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2332 0, 610, 0, 610, 0, 610, 0, 610, 0, 610,
2333 0, 610, 0, 610, 0, 610, 0, 610, 0, 396,
2334 0, 396, 0, 409, 0, 511, 0, 511, 0, 42,
2335 0, 497, 0, 497, 0, 497, 0, 396, 0, 561,
2336 0, 561, 0, 561, 0, 611, 0, 344, 0, 493,
2337 0
2338 };
2339
2340 /* Error token number */
2341 #define YYTERROR 1
2342
2343
2344
2345
2346 #undef yynerrs
2347 #define yynerrs (yystackp->yyerrcnt)
2348 #undef yychar
2349 #define yychar (yystackp->yyrawchar)
2350 #undef yylval
2351 #define yylval (yystackp->yyval)
2352 #undef yylloc
2353 #define yylloc (yystackp->yyloc)
2354 #define psi_parser_proc_nerrs yynerrs
2355 #define psi_parser_proc_char yychar
2356 #define psi_parser_proc_lval yylval
2357 #define psi_parser_proc_lloc yylloc
2358
2359 static const int YYEOF = 0;
2360 static const int YYEMPTY = -2;
2361
2362 typedef enum { yyok, yyaccept, yyabort, yyerr } YYRESULTTAG;
2363
2364 #define YYCHK(YYE) \
2365 do { \
2366 YYRESULTTAG yychk_flag = YYE; \
2367 if (yychk_flag != yyok) \
2368 return yychk_flag; \
2369 } while (0)
2370
2371 #if YYDEBUG
2372
2373 # ifndef YYFPRINTF
2374 # define YYFPRINTF fprintf
2375 # endif
2376
2377 /* This macro is provided for backward compatibility. */
2378 #ifndef YY_LOCATION_PRINT
2379 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2380 #endif
2381
2382
2383 # define YYDPRINTF(Args) \
2384 do { \
2385 if (yydebug) \
2386 YYFPRINTF Args; \
2387 } while (0)
2388
2389
2390 /*----------------------------------------.
2391 | Print this symbol's value on YYOUTPUT. |
2392 `----------------------------------------*/
2393
2394 static void
2395 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
2396 {
2397 FILE *yyo = yyoutput;
2398 YYUSE (yyo);
2399 YYUSE (P);
2400 YYUSE (tokens);
2401 YYUSE (index);
2402 if (!yyvaluep)
2403 return;
2404 YYUSE (yytype);
2405 }
2406
2407
2408 /*--------------------------------.
2409 | Print this symbol on YYOUTPUT. |
2410 `--------------------------------*/
2411
2412 static void
2413 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
2414 {
2415 YYFPRINTF (yyoutput, "%s %s (",
2416 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2417
2418 yy_symbol_value_print (yyoutput, yytype, yyvaluep, P, tokens, index);
2419 YYFPRINTF (yyoutput, ")");
2420 }
2421
2422 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2423 do { \
2424 if (yydebug) \
2425 { \
2426 YYFPRINTF (stderr, "%s ", Title); \
2427 yy_symbol_print (stderr, Type, Value, P, tokens, index); \
2428 YYFPRINTF (stderr, "\n"); \
2429 } \
2430 } while (0)
2431
2432 /* Nonzero means print parse trace. It is left uninitialized so that
2433 multiple parsers can coexist. */
2434 int yydebug;
2435
2436 struct yyGLRStack;
2437 static void yypstack (struct yyGLRStack* yystackp, size_t yyk)
2438 YY_ATTRIBUTE_UNUSED;
2439 static void yypdumpstack (struct yyGLRStack* yystackp)
2440 YY_ATTRIBUTE_UNUSED;
2441
2442 #else /* !YYDEBUG */
2443
2444 # define YYDPRINTF(Args)
2445 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2446
2447 #endif /* !YYDEBUG */
2448
2449 /* YYINITDEPTH -- initial size of the parser's stacks. */
2450 #ifndef YYINITDEPTH
2451 # define YYINITDEPTH 200
2452 #endif
2453
2454 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2455 if the built-in stack extension method is used).
2456
2457 Do not make this value too large; the results are undefined if
2458 SIZE_MAX < YYMAXDEPTH * sizeof (GLRStackItem)
2459 evaluated with infinite-precision integer arithmetic. */
2460
2461 #ifndef YYMAXDEPTH
2462 # define YYMAXDEPTH 10000
2463 #endif
2464
2465 /* Minimum number of free items on the stack allowed after an
2466 allocation. This is to allow allocation and initialization
2467 to be completed by functions that call yyexpandGLRStack before the
2468 stack is expanded, thus insuring that all necessary pointers get
2469 properly redirected to new data. */
2470 #define YYHEADROOM 2
2471
2472 #ifndef YYSTACKEXPANDABLE
2473 # define YYSTACKEXPANDABLE 1
2474 #endif
2475
2476 #if YYSTACKEXPANDABLE
2477 # define YY_RESERVE_GLRSTACK(Yystack) \
2478 do { \
2479 if (Yystack->yyspaceLeft < YYHEADROOM) \
2480 yyexpandGLRStack (Yystack); \
2481 } while (0)
2482 #else
2483 # define YY_RESERVE_GLRSTACK(Yystack) \
2484 do { \
2485 if (Yystack->yyspaceLeft < YYHEADROOM) \
2486 yyMemoryExhausted (Yystack); \
2487 } while (0)
2488 #endif
2489
2490
2491 #if YYERROR_VERBOSE
2492
2493 # ifndef yystpcpy
2494 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2495 # define yystpcpy stpcpy
2496 # else
2497 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2498 YYDEST. */
2499 static char *
2500 yystpcpy (char *yydest, const char *yysrc)
2501 {
2502 char *yyd = yydest;
2503 const char *yys = yysrc;
2504
2505 while ((*yyd++ = *yys++) != '\0')
2506 continue;
2507
2508 return yyd - 1;
2509 }
2510 # endif
2511 # endif
2512
2513 # ifndef yytnamerr
2514 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2515 quotes and backslashes, so that it's suitable for yyerror. The
2516 heuristic is that double-quoting is unnecessary unless the string
2517 contains an apostrophe, a comma, or backslash (other than
2518 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2519 null, do not copy; instead, return the length of what the result
2520 would have been. */
2521 static size_t
2522 yytnamerr (char *yyres, const char *yystr)
2523 {
2524 if (*yystr == '"')
2525 {
2526 size_t yyn = 0;
2527 char const *yyp = yystr;
2528
2529 for (;;)
2530 switch (*++yyp)
2531 {
2532 case '\'':
2533 case ',':
2534 goto do_not_strip_quotes;
2535
2536 case '\\':
2537 if (*++yyp != '\\')
2538 goto do_not_strip_quotes;
2539 /* Fall through. */
2540 default:
2541 if (yyres)
2542 yyres[yyn] = *yyp;
2543 yyn++;
2544 break;
2545
2546 case '"':
2547 if (yyres)
2548 yyres[yyn] = '\0';
2549 return yyn;
2550 }
2551 do_not_strip_quotes: ;
2552 }
2553
2554 if (! yyres)
2555 return strlen (yystr);
2556
2557 return yystpcpy (yyres, yystr) - yyres;
2558 }
2559 # endif
2560
2561 #endif /* !YYERROR_VERBOSE */
2562
2563 /** State numbers, as in LALR(1) machine */
2564 typedef int yyStateNum;
2565
2566 /** Rule numbers, as in LALR(1) machine */
2567 typedef int yyRuleNum;
2568
2569 /** Grammar symbol */
2570 typedef int yySymbol;
2571
2572 /** Item references, as in LALR(1) machine */
2573 typedef short int yyItemNum;
2574
2575 typedef struct yyGLRState yyGLRState;
2576 typedef struct yyGLRStateSet yyGLRStateSet;
2577 typedef struct yySemanticOption yySemanticOption;
2578 typedef union yyGLRStackItem yyGLRStackItem;
2579 typedef struct yyGLRStack yyGLRStack;
2580
2581 struct yyGLRState {
2582 /** Type tag: always true. */
2583 yybool yyisState;
2584 /** Type tag for yysemantics. If true, yysval applies, otherwise
2585 * yyfirstVal applies. */
2586 yybool yyresolved;
2587 /** Number of corresponding LALR(1) machine state. */
2588 yyStateNum yylrState;
2589 /** Preceding state in this stack */
2590 yyGLRState* yypred;
2591 /** Source position of the last token produced by my symbol */
2592 size_t yyposn;
2593 union {
2594 /** First in a chain of alternative reductions producing the
2595 * non-terminal corresponding to this state, threaded through
2596 * yynext. */
2597 yySemanticOption* yyfirstVal;
2598 /** Semantic value for this state. */
2599 YYSTYPE yysval;
2600 } yysemantics;
2601 };
2602
2603 struct yyGLRStateSet {
2604 yyGLRState** yystates;
2605 /** During nondeterministic operation, yylookaheadNeeds tracks which
2606 * stacks have actually needed the current lookahead. During deterministic
2607 * operation, yylookaheadNeeds[0] is not maintained since it would merely
2608 * duplicate yychar != YYEMPTY. */
2609 yybool* yylookaheadNeeds;
2610 size_t yysize, yycapacity;
2611 };
2612
2613 struct yySemanticOption {
2614 /** Type tag: always false. */
2615 yybool yyisState;
2616 /** Rule number for this reduction */
2617 yyRuleNum yyrule;
2618 /** The last RHS state in the list of states to be reduced. */
2619 yyGLRState* yystate;
2620 /** The lookahead for this reduction. */
2621 int yyrawchar;
2622 YYSTYPE yyval;
2623 /** Next sibling in chain of options. To facilitate merging,
2624 * options are chained in decreasing order by address. */
2625 yySemanticOption* yynext;
2626 };
2627
2628 /** Type of the items in the GLR stack. The yyisState field
2629 * indicates which item of the union is valid. */
2630 union yyGLRStackItem {
2631 yyGLRState yystate;
2632 yySemanticOption yyoption;
2633 };
2634
2635 struct yyGLRStack {
2636 int yyerrState;
2637
2638
2639 int yyerrcnt;
2640 int yyrawchar;
2641 YYSTYPE yyval;
2642
2643 YYJMP_BUF yyexception_buffer;
2644 yyGLRStackItem* yyitems;
2645 yyGLRStackItem* yynextFree;
2646 size_t yyspaceLeft;
2647 yyGLRState* yysplitPoint;
2648 yyGLRState* yylastDeleted;
2649 yyGLRStateSet yytops;
2650 };
2651
2652 #if YYSTACKEXPANDABLE
2653 static void yyexpandGLRStack (yyGLRStack* yystackp);
2654 #endif
2655
2656 static _Noreturn void
2657 yyFail (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char* yymsg)
2658 {
2659 if (yymsg != YY_NULLPTR)
2660 yyerror (P, tokens, index, yymsg);
2661 YYLONGJMP (yystackp->yyexception_buffer, 1);
2662 }
2663
2664 static _Noreturn void
2665 yyMemoryExhausted (yyGLRStack* yystackp)
2666 {
2667 YYLONGJMP (yystackp->yyexception_buffer, 2);
2668 }
2669
2670 #if YYDEBUG || YYERROR_VERBOSE
2671 /** A printable representation of TOKEN. */
2672 static inline const char*
2673 yytokenName (yySymbol yytoken)
2674 {
2675 if (yytoken == YYEMPTY)
2676 return "";
2677
2678 return yytname[yytoken];
2679 }
2680 #endif
2681
2682 /** Fill in YYVSP[YYLOW1 .. YYLOW0-1] from the chain of states starting
2683 * at YYVSP[YYLOW0].yystate.yypred. Leaves YYVSP[YYLOW1].yystate.yypred
2684 * containing the pointer to the next state in the chain. */
2685 static void yyfillin (yyGLRStackItem *, int, int) YY_ATTRIBUTE_UNUSED;
2686 static void
2687 yyfillin (yyGLRStackItem *yyvsp, int yylow0, int yylow1)
2688 {
2689 int i;
2690 yyGLRState *s = yyvsp[yylow0].yystate.yypred;
2691 for (i = yylow0-1; i >= yylow1; i -= 1)
2692 {
2693 #if YYDEBUG
2694 yyvsp[i].yystate.yylrState = s->yylrState;
2695 #endif
2696 yyvsp[i].yystate.yyresolved = s->yyresolved;
2697 if (s->yyresolved)
2698 yyvsp[i].yystate.yysemantics.yysval = s->yysemantics.yysval;
2699 else
2700 /* The effect of using yysval or yyloc (in an immediate rule) is
2701 * undefined. */
2702 yyvsp[i].yystate.yysemantics.yyfirstVal = YY_NULLPTR;
2703 s = yyvsp[i].yystate.yypred = s->yypred;
2704 }
2705 }
2706
2707 /* Do nothing if YYNORMAL or if *YYLOW <= YYLOW1. Otherwise, fill in
2708 * YYVSP[YYLOW1 .. *YYLOW-1] as in yyfillin and set *YYLOW = YYLOW1.
2709 * For convenience, always return YYLOW1. */
2710 static inline int yyfill (yyGLRStackItem *, int *, int, yybool)
2711 YY_ATTRIBUTE_UNUSED;
2712 static inline int
2713 yyfill (yyGLRStackItem *yyvsp, int *yylow, int yylow1, yybool yynormal)
2714 {
2715 if (!yynormal && yylow1 < *yylow)
2716 {
2717 yyfillin (yyvsp, *yylow, yylow1);
2718 *yylow = yylow1;
2719 }
2720 return yylow1;
2721 }
2722
2723 /** Perform user action for rule number YYN, with RHS length YYRHSLEN,
2724 * and top stack item YYVSP. YYLVALP points to place to put semantic
2725 * value ($$), and yylocp points to place for location information
2726 * (@$). Returns yyok for normal return, yyaccept for YYACCEPT,
2727 * yyerr for YYERROR, yyabort for YYABORT. */
2728 static YYRESULTTAG
2729 yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp,
2730 yyGLRStack* yystackp,
2731 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
2732 {
2733 yybool yynormal YY_ATTRIBUTE_UNUSED = (yystackp->yysplitPoint == YY_NULLPTR);
2734 int yylow;
2735 YYUSE (yyvalp);
2736 YYUSE (P);
2737 YYUSE (tokens);
2738 YYUSE (index);
2739 YYUSE (yyrhslen);
2740 # undef yyerrok
2741 # define yyerrok (yystackp->yyerrState = 0)
2742 # undef YYACCEPT
2743 # define YYACCEPT return yyaccept
2744 # undef YYABORT
2745 # define YYABORT return yyabort
2746 # undef YYERROR
2747 # define YYERROR return yyerrok, yyerr
2748 # undef YYRECOVERING
2749 # define YYRECOVERING() (yystackp->yyerrState != 0)
2750 # undef yyclearin
2751 # define yyclearin (yychar = YYEMPTY)
2752 # undef YYFILL
2753 # define YYFILL(N) yyfill (yyvsp, &yylow, N, yynormal)
2754 # undef YYBACKUP
2755 # define YYBACKUP(Token, Value) \
2756 return yyerror (P, tokens, index, YY_("syntax error: cannot back up")), \
2757 yyerrok, yyerr
2758
2759 yylow = 1;
2760 if (yyrhslen == 0)
2761 *yyvalp = yyval_default;
2762 else
2763 *yyvalp = yyvsp[YYFILL (1-yyrhslen)].yystate.yysemantics.yysval;
2764 switch (yyn)
2765 {
2766 case 284:
2767 #line 418 "src/parser_proc_grammar.y" /* glr.c:816 */
2768 {
2769 if ((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
2770 psi_cpp_exp_exec((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), P->preproc, PSI_DATA(P));
2771 psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2772 }
2773 }
2774 #line 2775 "src/parser_proc.c" /* glr.c:816 */
2775 break;
2776
2777 case 285:
2778 #line 424 "src/parser_proc_grammar.y" /* glr.c:816 */
2779 {
2780 if (P->file.ln) {
2781 P->error(PSI_DATA(P), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), PSI_WARNING,
2782 "Extra 'lib \"%s\"' statement has no effect", (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text);
2783 } else {
2784 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);
2785 }
2786 }
2787 #line 2788 "src/parser_proc.c" /* glr.c:816 */
2788 break;
2789
2790 case 286:
2791 #line 432 "src/parser_proc_grammar.y" /* glr.c:816 */
2792 {
2793 psi_parser_proc_add_const(P, (*(struct psi_const **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2794 }
2795 #line 2796 "src/parser_proc.c" /* glr.c:816 */
2796 break;
2797
2798 case 287:
2799 #line 435 "src/parser_proc_grammar.y" /* glr.c:816 */
2800 {
2801 psi_parser_proc_add_decl(P, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2802 }
2803 #line 2804 "src/parser_proc.c" /* glr.c:816 */
2804 break;
2805
2806 case 290:
2807 #line 440 "src/parser_proc_grammar.y" /* glr.c:816 */
2808 {
2809 psi_parser_proc_add_typedef(P, (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2810 }
2811 #line 2812 "src/parser_proc.c" /* glr.c:816 */
2812 break;
2813
2814 case 291:
2815 #line 443 "src/parser_proc_grammar.y" /* glr.c:816 */
2816 {
2817 psi_parser_proc_add_struct(P, (*(struct psi_decl_struct **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2818 }
2819 #line 2820 "src/parser_proc.c" /* glr.c:816 */
2820 break;
2821
2822 case 292:
2823 #line 446 "src/parser_proc_grammar.y" /* glr.c:816 */
2824 {
2825 psi_parser_proc_add_union(P, (*(struct psi_decl_union **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2826 }
2827 #line 2828 "src/parser_proc.c" /* glr.c:816 */
2828 break;
2829
2830 case 293:
2831 #line 449 "src/parser_proc_grammar.y" /* glr.c:816 */
2832 {
2833 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2834 }
2835 #line 2836 "src/parser_proc.c" /* glr.c:816 */
2836 break;
2837
2838 case 294:
2839 #line 452 "src/parser_proc_grammar.y" /* glr.c:816 */
2840 {
2841 psi_parser_proc_add_impl(P, (*(struct psi_impl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2842 }
2843 #line 2844 "src/parser_proc.c" /* glr.c:816 */
2844 break;
2845
2846 case 295:
2847 #line 458 "src/parser_proc_grammar.y" /* glr.c:816 */
2848 {
2849 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
2850 }
2851 #line 2852 "src/parser_proc.c" /* glr.c:816 */
2852 break;
2853
2854 case 296:
2855 #line 464 "src/parser_proc_grammar.y" /* glr.c:816 */
2856 {
2857 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
2858 }
2859 #line 2860 "src/parser_proc.c" /* glr.c:816 */
2860 break;
2861
2862 case 297:
2863 #line 467 "src/parser_proc_grammar.y" /* glr.c:816 */
2864 {
2865 (*(struct psi_cpp_exp **)(&(*yyvalp))) = (*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
2866 }
2867 #line 2868 "src/parser_proc.c" /* glr.c:816 */
2868 break;
2869
2870 case 298:
2871 #line 473 "src/parser_proc_grammar.y" /* glr.c:816 */
2872 {
2873 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
2874 struct psi_token *msg = NULL;
2875
2876 if (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0, &msg)) {
2877 size_t index = 1;
2878 struct psi_token *next;
2879
2880 msg = psi_token_copy(msg);
2881 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), index++, &next)) {
2882 struct psi_token *old = msg;
2883 msg = psi_token_cat(" ", 2, msg, next);
2884 free(old);
2885 }
2886 }
2887 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2888
2889 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, msg);
2890 } else {
2891 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, NULL);
2892 }
2893 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2894 }
2895 #line 2896 "src/parser_proc.c" /* glr.c:816 */
2896 break;
2897
2898 case 299:
2899 #line 496 "src/parser_proc_grammar.y" /* glr.c:816 */
2900 {
2901 (*(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))));
2902 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2903 }
2904 #line 2905 "src/parser_proc.c" /* glr.c:816 */
2905 break;
2906
2907 case 300:
2908 #line 500 "src/parser_proc_grammar.y" /* glr.c:816 */
2909 {
2910 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL);
2911 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2912 }
2913 #line 2914 "src/parser_proc.c" /* glr.c:816 */
2914 break;
2915
2916 case 301:
2917 #line 504 "src/parser_proc_grammar.y" /* glr.c:816 */
2918 {
2919 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
2920 (*(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))));
2921 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2922 }
2923 #line 2924 "src/parser_proc.c" /* glr.c:816 */
2924 break;
2925
2926 case 302:
2927 #line 509 "src/parser_proc_grammar.y" /* glr.c:816 */
2928 {
2929 (*(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)));
2930 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2931 }
2932 #line 2933 "src/parser_proc.c" /* glr.c:816 */
2933 break;
2934
2935 case 303:
2936 #line 513 "src/parser_proc_grammar.y" /* glr.c:816 */
2937 {
2938 (*(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)));
2939 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2940 }
2941 #line 2942 "src/parser_proc.c" /* glr.c:816 */
2942 break;
2943
2944 case 304:
2945 #line 517 "src/parser_proc_grammar.y" /* glr.c:816 */
2946 {
2947 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL);
2948 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2949 }
2950 #line 2951 "src/parser_proc.c" /* glr.c:816 */
2951 break;
2952
2953 case 305:
2954 #line 521 "src/parser_proc_grammar.y" /* glr.c:816 */
2955 {
2956 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2957 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
2958 }
2959 #line 2960 "src/parser_proc.c" /* glr.c:816 */
2960 break;
2961
2962 case 329:
2963 #line 575 "src/parser_proc_grammar.y" /* glr.c:816 */
2964 {
2965 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
2966 (*(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);
2967 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
2968 }
2969 #line 2970 "src/parser_proc.c" /* glr.c:816 */
2970 break;
2971
2972 case 330:
2973 #line 580 "src/parser_proc_grammar.y" /* glr.c:816 */
2974 {
2975 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
2976 (*(struct psi_cpp_macro_decl **)(&(*yyvalp))) = psi_cpp_macro_decl_init(NULL, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), NULL);
2977 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2978 }
2979 #line 2980 "src/parser_proc.c" /* glr.c:816 */
2980 break;
2981
2982 case 331:
2983 #line 588 "src/parser_proc_grammar.y" /* glr.c:816 */
2984 {
2985 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL);
2986 }
2987 #line 2988 "src/parser_proc.c" /* glr.c:816 */
2988 break;
2989
2990 case 332:
2991 #line 591 "src/parser_proc_grammar.y" /* glr.c:816 */
2992 {
2993 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL); /* FIXME */
2994 }
2995 #line 2996 "src/parser_proc.c" /* glr.c:816 */
2996 break;
2997
2998 case 334:
2999 #line 595 "src/parser_proc_grammar.y" /* glr.c:816 */
3000 {
3001 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3002 }
3003 #line 3004 "src/parser_proc.c" /* glr.c:816 */
3004 break;
3005
3006 case 335:
3007 #line 601 "src/parser_proc_grammar.y" /* glr.c:816 */
3008 {
3009 (*(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)));
3010 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3011 (*(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)));
3012 }
3013 #line 3014 "src/parser_proc.c" /* glr.c:816 */
3014 break;
3015
3016 case 336:
3017 #line 606 "src/parser_proc_grammar.y" /* glr.c:816 */
3018 {
3019 (*(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)));
3020 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3021 (*(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)));
3022 }
3023 #line 3024 "src/parser_proc.c" /* glr.c:816 */
3024 break;
3025
3026 case 337:
3027 #line 614 "src/parser_proc_grammar.y" /* glr.c:816 */
3028 {
3029 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3030 }
3031 #line 3032 "src/parser_proc.c" /* glr.c:816 */
3032 break;
3033
3034 case 339:
3035 #line 621 "src/parser_proc_grammar.y" /* glr.c:816 */
3036 {
3037 (*(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)));
3038 (*(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)));
3039 }
3040 #line 3041 "src/parser_proc.c" /* glr.c:816 */
3041 break;
3042
3043 case 340:
3044 #line 625 "src/parser_proc_grammar.y" /* glr.c:816 */
3045 {
3046 (*(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)));
3047 (*(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)));
3048 }
3049 #line 3050 "src/parser_proc.c" /* glr.c:816 */
3050 break;
3051
3052 case 341:
3053 #line 632 "src/parser_proc_grammar.y" /* glr.c:816 */
3054 {
3055 (*(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)));
3056 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3057 }
3058 #line 3059 "src/parser_proc.c" /* glr.c:816 */
3059 break;
3060
3061 case 342:
3062 #line 636 "src/parser_proc_grammar.y" /* glr.c:816 */
3063 {
3064 (*(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)));
3065 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3066 }
3067 #line 3068 "src/parser_proc.c" /* glr.c:816 */
3068 break;
3069
3070 case 343:
3071 #line 640 "src/parser_proc_grammar.y" /* glr.c:816 */
3072 {
3073 (*(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)));
3074 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3075 }
3076 #line 3077 "src/parser_proc.c" /* glr.c:816 */
3077 break;
3078
3079 case 344:
3080 #line 644 "src/parser_proc_grammar.y" /* glr.c:816 */
3081 {
3082 (*(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)));
3083 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3084 }
3085 #line 3086 "src/parser_proc.c" /* glr.c:816 */
3086 break;
3087
3088 case 345:
3089 #line 649 "src/parser_proc_grammar.y" /* glr.c:816 */
3090 {
3091 {
3092 uint8_t exists;
3093
3094 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3095 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3096 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8, &exists, 0));
3097 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3098 }
3099 }
3100 #line 3101 "src/parser_proc.c" /* glr.c:816 */
3101 break;
3102
3103 case 346:
3104 #line 659 "src/parser_proc_grammar.y" /* glr.c:816 */
3105 {
3106 {
3107 uint8_t exists;
3108
3109 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3110 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3111 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8, &exists, 0));
3112 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3113 }
3114 }
3115 #line 3116 "src/parser_proc.c" /* glr.c:816 */
3116 break;
3117
3118 case 347:
3119 #line 669 "src/parser_proc_grammar.y" /* glr.c:816 */
3120 {
3121 (*(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));
3122 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3123 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3124 }
3125 #line 3126 "src/parser_proc.c" /* glr.c:816 */
3126 break;
3127
3128 case 348:
3129 #line 674 "src/parser_proc_grammar.y" /* glr.c:816 */
3130 {
3131 (*(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));
3132 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3133 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3134 }
3135 #line 3136 "src/parser_proc.c" /* glr.c:816 */
3136 break;
3137
3138 case 349:
3139 #line 679 "src/parser_proc_grammar.y" /* glr.c:816 */
3140 {
3141 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3142 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
3143 }
3144 #line 3145 "src/parser_proc.c" /* glr.c:816 */
3145 break;
3146
3147 case 350:
3148 #line 683 "src/parser_proc_grammar.y" /* glr.c:816 */
3149 {
3150 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3151 (*(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));
3152 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3153 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3154 }
3155 #line 3156 "src/parser_proc.c" /* glr.c:816 */
3156 break;
3157
3158 case 351:
3159 #line 689 "src/parser_proc_grammar.y" /* glr.c:816 */
3160 {
3161 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3162 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_FUNCTION,
3163 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));
3164 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3165 }
3166 #line 3167 "src/parser_proc.c" /* glr.c:816 */
3167 break;
3168
3169 case 352:
3170 #line 698 "src/parser_proc_grammar.y" /* glr.c:816 */
3171 {
3172 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3173 }
3174 #line 3175 "src/parser_proc.c" /* glr.c:816 */
3175 break;
3176
3177 case 354:
3178 #line 705 "src/parser_proc_grammar.y" /* glr.c:816 */
3179 {
3180 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_num_exp_free),
3181 &(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3182 }
3183 #line 3184 "src/parser_proc.c" /* glr.c:816 */
3184 break;
3185
3186 case 355:
3187 #line 709 "src/parser_proc_grammar.y" /* glr.c:816 */
3188 {
3189 (*(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)));
3190 }
3191 #line 3192 "src/parser_proc.c" /* glr.c:816 */
3192 break;
3193
3194 case 356:
3195 #line 715 "src/parser_proc_grammar.y" /* glr.c:816 */
3196 {
3197 (*(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)));
3198 (*(struct psi_const **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3199 }
3200 #line 3201 "src/parser_proc.c" /* glr.c:816 */
3201 break;
3202
3203 case 357:
3204 #line 722 "src/parser_proc_grammar.y" /* glr.c:816 */
3205 {
3206 (*(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);
3207 }
3208 #line 3209 "src/parser_proc.c" /* glr.c:816 */
3209 break;
3210
3211 case 362:
3212 #line 735 "src/parser_proc_grammar.y" /* glr.c:816 */
3213 {
3214 (*(struct psi_impl_def_val **)(&(*yyvalp))) = NULL;
3215 }
3216 #line 3217 "src/parser_proc.c" /* glr.c:816 */
3217 break;
3218
3219 case 363:
3220 #line 738 "src/parser_proc_grammar.y" /* glr.c:816 */
3221 {
3222 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)) {
3223 impl_val res = {0};
3224 token_t type = psi_num_exp_exec((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), &res, NULL, &P->preproc->defs);
3225
3226 if (type == PSI_T_FLOAT || type == PSI_T_DOUBLE) {
3227 (*(struct psi_impl_def_val **)(&(*yyvalp))) = psi_impl_def_val_init(type, NULL);
3228 } else {
3229 (*(struct psi_impl_def_val **)(&(*yyvalp))) = psi_impl_def_val_init(PSI_T_INT, NULL);
3230 }
3231
3232 switch (type) {
3233 case PSI_T_UINT8: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u8; break;
3234 case PSI_T_UINT16: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u16; break;
3235 case PSI_T_UINT32: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u32; break;
3236 case PSI_T_UINT64: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u64; break; /* FIXME */
3237 case PSI_T_INT8: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i8; break;
3238 case PSI_T_INT16: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i16; break;
3239 case PSI_T_INT32: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i32; break;
3240 case PSI_T_INT64: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i64; break;
3241 case PSI_T_FLOAT: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.dval = res.fval; break;
3242 case PSI_T_DOUBLE: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.dval = res.dval; break;
3243 default:
3244 assert(0);
3245
3246 }
3247 } else {
3248 (*(struct psi_impl_def_val **)(&(*yyvalp))) = NULL;
3249 }
3250 psi_num_exp_free(&(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3251 }
3252 #line 3253 "src/parser_proc.c" /* glr.c:816 */
3253 break;
3254
3255 case 364:
3256 #line 769 "src/parser_proc_grammar.y" /* glr.c:816 */
3257 {
3258 (*(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);
3259 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3260 }
3261 #line 3262 "src/parser_proc.c" /* glr.c:816 */
3262 break;
3263
3264 case 369:
3265 #line 783 "src/parser_proc_grammar.y" /* glr.c:816 */
3266 {
3267 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3268 }
3269 #line 3270 "src/parser_proc.c" /* glr.c:816 */
3270 break;
3271
3272 case 370:
3273 #line 786 "src/parser_proc_grammar.y" /* glr.c:816 */
3274 {
3275 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3276 psi_decl_type_init(PSI_T_VOID, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->text),
3277 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text, 0, 0)
3278 );
3279 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3280 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3281 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3282 }
3283 #line 3284 "src/parser_proc.c" /* glr.c:816 */
3284 break;
3285
3286 case 371:
3287 #line 795 "src/parser_proc_grammar.y" /* glr.c:816 */
3288 {
3289 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3290 }
3291 #line 3292 "src/parser_proc.c" /* glr.c:816 */
3292 break;
3293
3294 case 372:
3295 #line 801 "src/parser_proc_grammar.y" /* glr.c:816 */
3296 {
3297 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3298 }
3299 #line 3300 "src/parser_proc.c" /* glr.c:816 */
3300 break;
3301
3302 case 373:
3303 #line 804 "src/parser_proc_grammar.y" /* glr.c:816 */
3304 {
3305 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3306 }
3307 #line 3308 "src/parser_proc.c" /* glr.c:816 */
3308 break;
3309
3310 case 374:
3311 #line 810 "src/parser_proc_grammar.y" /* glr.c:816 */
3312 {
3313 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3314 }
3315 #line 3316 "src/parser_proc.c" /* glr.c:816 */
3316 break;
3317
3318 case 375:
3319 #line 813 "src/parser_proc_grammar.y" /* glr.c:816 */
3320 {
3321 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3322 }
3323 #line 3324 "src/parser_proc.c" /* glr.c:816 */
3324 break;
3325
3326 case 377:
3327 #line 820 "src/parser_proc_grammar.y" /* glr.c:816 */
3328 {
3329 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3330 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
3331 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
3332 );
3333 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
3334 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3335 }
3336 #line 3337 "src/parser_proc.c" /* glr.c:816 */
3337 break;
3338
3339 case 378:
3340 #line 828 "src/parser_proc_grammar.y" /* glr.c:816 */
3341 {
3342 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3343 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3344 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->name),
3345 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0, 0)
3346 );
3347 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3348 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->token);
3349 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3350 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3351 }
3352 #line 3353 "src/parser_proc.c" /* glr.c:816 */
3353 break;
3354
3355 case 379:
3356 #line 839 "src/parser_proc_grammar.y" /* glr.c:816 */
3357 {
3358 (*(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)));
3359 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
3360 (*(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)));
3361 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3362 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
3363 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
3364 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
3365 }
3366 #line 3367 "src/parser_proc.c" /* glr.c:816 */
3367 break;
3368
3369 case 380:
3370 #line 848 "src/parser_proc_grammar.y" /* glr.c:816 */
3371 {
3372 (*(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)));
3373 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
3374 (*(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)));
3375 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3376 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
3377 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
3378 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
3379 }
3380 #line 3381 "src/parser_proc.c" /* glr.c:816 */
3381 break;
3382
3383 case 382:
3384 #line 861 "src/parser_proc_grammar.y" /* glr.c:816 */
3385 {
3386 (*(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));
3387 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
3388 }
3389 #line 3390 "src/parser_proc.c" /* glr.c:816 */
3390 break;
3391
3392 case 383:
3393 #line 865 "src/parser_proc_grammar.y" /* glr.c:816 */
3394 {
3395 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3396 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->name),
3397 psi_decl_var_init(NULL, 0, 0)
3398 );
3399 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
3400 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
3401 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3402 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3403 }
3404 #line 3405 "src/parser_proc.c" /* glr.c:816 */
3405 break;
3406
3407 case 384:
3408 #line 875 "src/parser_proc_grammar.y" /* glr.c:816 */
3409 {
3410 (*(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));
3411 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3412 (*(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)));
3413 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3414 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
3415 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
3416 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
3417 }
3418 #line 3419 "src/parser_proc.c" /* glr.c:816 */
3419 break;
3420
3421 case 385:
3422 #line 884 "src/parser_proc_grammar.y" /* glr.c:816 */
3423 {
3424 (*(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));
3425 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3426 (*(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)));
3427 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3428 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
3429 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
3430 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
3431 }
3432 #line 3433 "src/parser_proc.c" /* glr.c:816 */
3433 break;
3434
3435 case 386:
3436 #line 896 "src/parser_proc_grammar.y" /* glr.c:816 */
3437 {
3438 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3439 }
3440 #line 3441 "src/parser_proc.c" /* glr.c:816 */
3441 break;
3442
3443 case 387:
3444 #line 899 "src/parser_proc_grammar.y" /* glr.c:816 */
3445 {
3446 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3447 }
3448 #line 3449 "src/parser_proc.c" /* glr.c:816 */
3449 break;
3450
3451 case 389:
3452 #line 906 "src/parser_proc_grammar.y" /* glr.c:816 */
3453 {
3454 (*(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);
3455 (*(struct psi_decl_type **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3456 }
3457 #line 3458 "src/parser_proc.c" /* glr.c:816 */
3458 break;
3459
3460 case 391:
3461 #line 914 "src/parser_proc_grammar.y" /* glr.c:816 */
3462 {
3463 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3464 (*(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);
3465 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3466 }
3467 #line 3468 "src/parser_proc.c" /* glr.c:816 */
3468 break;
3469
3470 case 392:
3471 #line 919 "src/parser_proc_grammar.y" /* glr.c:816 */
3472 {
3473 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3474 (*(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);
3475 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3476 }
3477 #line 3478 "src/parser_proc.c" /* glr.c:816 */
3478 break;
3479
3480 case 393:
3481 #line 924 "src/parser_proc_grammar.y" /* glr.c:816 */
3482 {
3483 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3484 (*(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);
3485 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3486 }
3487 #line 3488 "src/parser_proc.c" /* glr.c:816 */
3488 break;
3489
3490 case 396:
3491 #line 934 "src/parser_proc_grammar.y" /* glr.c:816 */
3492 {
3493 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3494 }
3495 #line 3496 "src/parser_proc.c" /* glr.c:816 */
3496 break;
3497
3498 case 397:
3499 #line 940 "src/parser_proc_grammar.y" /* glr.c:816 */
3500 {
3501 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3502 }
3503 #line 3504 "src/parser_proc.c" /* glr.c:816 */
3504 break;
3505
3506 case 398:
3507 #line 943 "src/parser_proc_grammar.y" /* glr.c:816 */
3508 {
3509 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3510 }
3511 #line 3512 "src/parser_proc.c" /* glr.c:816 */
3512 break;
3513
3514 case 399:
3515 #line 946 "src/parser_proc_grammar.y" /* glr.c:816 */
3516 {
3517 (*(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)));
3518 }
3519 #line 3520 "src/parser_proc.c" /* glr.c:816 */
3520 break;
3521
3522 case 402:
3523 #line 957 "src/parser_proc_grammar.y" /* glr.c:816 */
3524 {
3525 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3526 }
3527 #line 3528 "src/parser_proc.c" /* glr.c:816 */
3528 break;
3529
3530 case 403:
3531 #line 960 "src/parser_proc_grammar.y" /* glr.c:816 */
3532 {
3533 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3534 }
3535 #line 3536 "src/parser_proc.c" /* glr.c:816 */
3536 break;
3537
3538 case 404:
3539 #line 963 "src/parser_proc_grammar.y" /* glr.c:816 */
3540 {
3541 (*(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)));
3542 }
3543 #line 3544 "src/parser_proc.c" /* glr.c:816 */
3544 break;
3545
3546 case 405:
3547 #line 969 "src/parser_proc_grammar.y" /* glr.c:816 */
3548 {
3549 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3550 }
3551 #line 3552 "src/parser_proc.c" /* glr.c:816 */
3552 break;
3553
3554 case 406:
3555 #line 972 "src/parser_proc_grammar.y" /* glr.c:816 */
3556 {
3557 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3558 }
3559 #line 3560 "src/parser_proc.c" /* glr.c:816 */
3560 break;
3561
3562 case 407:
3563 #line 975 "src/parser_proc_grammar.y" /* glr.c:816 */
3564 {
3565 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3566 (*(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)));
3567 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3568 } else {
3569 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3570 }
3571 }
3572 #line 3573 "src/parser_proc.c" /* glr.c:816 */
3573 break;
3574
3575 case 408:
3576 #line 983 "src/parser_proc_grammar.y" /* glr.c:816 */
3577 {
3578 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3579 (*(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)));
3580 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3581 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3582 } else {
3583 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3584 }
3585 }
3586 #line 3587 "src/parser_proc.c" /* glr.c:816 */
3587 break;
3588
3589 case 409:
3590 #line 995 "src/parser_proc_grammar.y" /* glr.c:816 */
3591 {
3592 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3593 }
3594 #line 3595 "src/parser_proc.c" /* glr.c:816 */
3595 break;
3596
3597 case 410:
3598 #line 998 "src/parser_proc_grammar.y" /* glr.c:816 */
3599 {
3600 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3601 }
3602 #line 3603 "src/parser_proc.c" /* glr.c:816 */
3603 break;
3604
3605 case 411:
3606 #line 1001 "src/parser_proc_grammar.y" /* glr.c:816 */
3607 {
3608 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3609 }
3610 #line 3611 "src/parser_proc.c" /* glr.c:816 */
3611 break;
3612
3613 case 412:
3614 #line 1004 "src/parser_proc_grammar.y" /* glr.c:816 */
3615 {
3616 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3617 (*(struct psi_token **)(&(*yyvalp))) = psi_token_cat(" ", 2, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3618 } else {
3619 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3620 }
3621 }
3622 #line 3623 "src/parser_proc.c" /* glr.c:816 */
3623 break;
3624
3625 case 413:
3626 #line 1011 "src/parser_proc_grammar.y" /* glr.c:816 */
3627 {
3628 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3629 }
3630 #line 3631 "src/parser_proc.c" /* glr.c:816 */
3631 break;
3632
3633 case 414:
3634 #line 1014 "src/parser_proc_grammar.y" /* glr.c:816 */
3635 {
3636 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3637 (*(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)));
3638 } else {
3639 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3640 }
3641 }
3642 #line 3643 "src/parser_proc.c" /* glr.c:816 */
3643 break;
3644
3645 case 415:
3646 #line 1024 "src/parser_proc_grammar.y" /* glr.c:816 */
3647 {
3648 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3649 }
3650 #line 3651 "src/parser_proc.c" /* glr.c:816 */
3651 break;
3652
3653 case 417:
3654 #line 1030 "src/parser_proc_grammar.y" /* glr.c:816 */
3655 {
3656 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3657 }
3658 #line 3659 "src/parser_proc.c" /* glr.c:816 */
3659 break;
3660
3661 case 421:
3662 #line 1039 "src/parser_proc_grammar.y" /* glr.c:816 */
3663 {
3664 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3665 }
3666 #line 3667 "src/parser_proc.c" /* glr.c:816 */
3667 break;
3668
3669 case 422:
3670 #line 1042 "src/parser_proc_grammar.y" /* glr.c:816 */
3671 {
3672 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3673 }
3674 #line 3675 "src/parser_proc.c" /* glr.c:816 */
3675 break;
3676
3677 case 423:
3678 #line 1045 "src/parser_proc_grammar.y" /* glr.c:816 */
3679 {
3680 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3681 (*(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)));
3682 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3683 } else {
3684 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3685 }
3686 }
3687 #line 3688 "src/parser_proc.c" /* glr.c:816 */
3688 break;
3689
3690 case 424:
3691 #line 1056 "src/parser_proc_grammar.y" /* glr.c:816 */
3692 {
3693 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3694 }
3695 #line 3696 "src/parser_proc.c" /* glr.c:816 */
3696 break;
3697
3698 case 425:
3699 #line 1059 "src/parser_proc_grammar.y" /* glr.c:816 */
3700 {
3701 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3702 }
3703 #line 3704 "src/parser_proc.c" /* glr.c:816 */
3704 break;
3705
3706 case 431:
3707 #line 1079 "src/parser_proc_grammar.y" /* glr.c:816 */
3708 {
3709 psi_decl_arg_free(&(*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3710 }
3711 #line 3712 "src/parser_proc.c" /* glr.c:816 */
3712 break;
3713
3714 case 433:
3715 #line 1086 "src/parser_proc_grammar.y" /* glr.c:816 */
3716 {
3717 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3718 }
3719 #line 3720 "src/parser_proc.c" /* glr.c:816 */
3720 break;
3721
3722 case 434:
3723 #line 1092 "src/parser_proc_grammar.y" /* glr.c:816 */
3724 {
3725 (*(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)));
3726 }
3727 #line 3728 "src/parser_proc.c" /* glr.c:816 */
3728 break;
3729
3730 case 435:
3731 #line 1095 "src/parser_proc_grammar.y" /* glr.c:816 */
3732 {
3733 (*(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)));
3734 }
3735 #line 3736 "src/parser_proc.c" /* glr.c:816 */
3736 break;
3737
3738 case 436:
3739 #line 1101 "src/parser_proc_grammar.y" /* glr.c:816 */
3740 {
3741 psi_decl_free(&(*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3742 }
3743 #line 3744 "src/parser_proc.c" /* glr.c:816 */
3744 break;
3745
3746 case 437:
3747 #line 1104 "src/parser_proc_grammar.y" /* glr.c:816 */
3748 {
3749 psi_decl_free(&(*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3750 }
3751 #line 3752 "src/parser_proc.c" /* glr.c:816 */
3752 break;
3753
3754 case 438:
3755 #line 1107 "src/parser_proc_grammar.y" /* glr.c:816 */
3756 {
3757 psi_decl_free(&(*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3758 }
3759 #line 3760 "src/parser_proc.c" /* glr.c:816 */
3760 break;
3761
3762 case 445:
3763 #line 1128 "src/parser_proc_grammar.y" /* glr.c:816 */
3764 {
3765 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3766 (*(struct psi_decl **)(&(*yyvalp)))->abi = psi_decl_abi_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
3767 }
3768 #line 3769 "src/parser_proc.c" /* glr.c:816 */
3769 break;
3770
3771 case 448:
3772 #line 1140 "src/parser_proc_grammar.y" /* glr.c:816 */
3773 {
3774 (*(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)));
3775 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3776 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3777 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3778 }
3779 }
3780 #line 3781 "src/parser_proc.c" /* glr.c:816 */
3781 break;
3782
3783 case 449:
3784 #line 1147 "src/parser_proc_grammar.y" /* glr.c:816 */
3785 {
3786 (*(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)));
3787 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
3788 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3789 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3790 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3791 }
3792 }
3793 #line 3794 "src/parser_proc.c" /* glr.c:816 */
3794 break;
3795
3796 case 450:
3797 #line 1158 "src/parser_proc_grammar.y" /* glr.c:816 */
3798 {
3799 (*(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)));
3800 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3801 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3802 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3803 }
3804 }
3805 #line 3806 "src/parser_proc.c" /* glr.c:816 */
3806 break;
3807
3808 case 451:
3809 #line 1165 "src/parser_proc_grammar.y" /* glr.c:816 */
3810 {
3811 (*(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)));
3812 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
3813 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3814 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3815 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3816 }
3817 }
3818 #line 3819 "src/parser_proc.c" /* glr.c:816 */
3819 break;
3820
3821 case 452:
3822 #line 1176 "src/parser_proc_grammar.y" /* glr.c:816 */
3823 {
3824 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3825 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3826 (*(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));
3827 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3828 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3829 }
3830 #line 3831 "src/parser_proc.c" /* glr.c:816 */
3831 break;
3832
3833 case 453:
3834 #line 1183 "src/parser_proc_grammar.y" /* glr.c:816 */
3835 {
3836 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3837 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3838 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3839 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),
3840 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)
3841 );
3842 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
3843 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3844 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3845 }
3846 #line 3847 "src/parser_proc.c" /* glr.c:816 */
3847 break;
3848
3849 case 454:
3850 #line 1194 "src/parser_proc_grammar.y" /* glr.c:816 */
3851 {
3852 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3853 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3854 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3855 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),
3856 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)
3857 );
3858 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
3859 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3860 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3861 }
3862 #line 3863 "src/parser_proc.c" /* glr.c:816 */
3863 break;
3864
3865 case 455:
3866 #line 1205 "src/parser_proc_grammar.y" /* glr.c:816 */
3867 {
3868 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3869 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3870 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3871 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),
3872 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text, 0, 0)
3873 );
3874 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
3875 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3876 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3877 }
3878 #line 3879 "src/parser_proc.c" /* glr.c:816 */
3879 break;
3880
3881 case 457:
3882 #line 1220 "src/parser_proc_grammar.y" /* glr.c:816 */
3883 {
3884 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3885 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),
3886 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0, 0)
3887 );
3888 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3889 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3890 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3891 }
3892 #line 3893 "src/parser_proc.c" /* glr.c:816 */
3893 break;
3894
3895 case 458:
3896 #line 1232 "src/parser_proc_grammar.y" /* glr.c:816 */
3897 {
3898 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3899 }
3900 #line 3901 "src/parser_proc.c" /* glr.c:816 */
3901 break;
3902
3903 case 459:
3904 #line 1235 "src/parser_proc_grammar.y" /* glr.c:816 */
3905 {
3906 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3907 }
3908 #line 3909 "src/parser_proc.c" /* glr.c:816 */
3909 break;
3910
3911 case 460:
3912 #line 1238 "src/parser_proc_grammar.y" /* glr.c:816 */
3913 {
3914 (*(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)));
3915 }
3916 #line 3917 "src/parser_proc.c" /* glr.c:816 */
3917 break;
3918
3919 case 461:
3920 #line 1241 "src/parser_proc_grammar.y" /* glr.c:816 */
3921 {
3922 (*(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)));
3923 }
3924 #line 3925 "src/parser_proc.c" /* glr.c:816 */
3925 break;
3926
3927 case 462:
3928 #line 1248 "src/parser_proc_grammar.y" /* glr.c:816 */
3929 {
3930 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3931 }
3932 #line 3933 "src/parser_proc.c" /* glr.c:816 */
3933 break;
3934
3935 case 463:
3936 #line 1251 "src/parser_proc_grammar.y" /* glr.c:816 */
3937 {
3938 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3939 (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)),
3940 psi_decl_var_init(NULL, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0)
3941 );
3942 }
3943 #line 3944 "src/parser_proc.c" /* glr.c:816 */
3944 break;
3945
3946 case 464:
3947 #line 1257 "src/parser_proc_grammar.y" /* glr.c:816 */
3948 {
3949 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3950 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),
3951 psi_decl_var_init(NULL, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0)
3952 );
3953 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3954 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3955 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3956 }
3957 #line 3958 "src/parser_proc.c" /* glr.c:816 */
3958 break;
3959
3960 case 465:
3961 #line 1266 "src/parser_proc_grammar.y" /* glr.c:816 */
3962 {
3963 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3964 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),
3965 psi_decl_var_init(NULL, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0)
3966 );
3967 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3968 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3969 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3970 }
3971 #line 3972 "src/parser_proc.c" /* glr.c:816 */
3972 break;
3973
3974 case 466:
3975 #line 1278 "src/parser_proc_grammar.y" /* glr.c:816 */
3976 {
3977 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3978 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
3979 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
3980 );
3981 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
3982 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3983 }
3984 #line 3985 "src/parser_proc.c" /* glr.c:816 */
3985 break;
3986
3987 case 467:
3988 #line 1286 "src/parser_proc_grammar.y" /* glr.c:816 */
3989 {
3990 (*(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)));
3991 }
3992 #line 3993 "src/parser_proc.c" /* glr.c:816 */
3993 break;
3994
3995 case 468:
3996 #line 1289 "src/parser_proc_grammar.y" /* glr.c:816 */
3997 {
3998 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3999 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
4000 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),
4001 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)
4002 );
4003 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4004 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4005 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4006 }
4007 #line 4008 "src/parser_proc.c" /* glr.c:816 */
4008 break;
4009
4010 case 469:
4011 #line 1299 "src/parser_proc_grammar.y" /* glr.c:816 */
4012 {
4013 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4014 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
4015 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),
4016 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)
4017 );
4018 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4019 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4020 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4021 }
4022 #line 4023 "src/parser_proc.c" /* glr.c:816 */
4023 break;
4024
4025 case 470:
4026 #line 1312 "src/parser_proc_grammar.y" /* glr.c:816 */
4027 {
4028 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4029 (*(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)));
4030 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4031 }
4032 #line 4033 "src/parser_proc.c" /* glr.c:816 */
4033 break;
4034
4035 case 471:
4036 #line 1317 "src/parser_proc_grammar.y" /* glr.c:816 */
4037 {
4038 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4039 (*(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)));
4040 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4041 }
4042 #line 4043 "src/parser_proc.c" /* glr.c:816 */
4043 break;
4044
4045 case 472:
4046 #line 1325 "src/parser_proc_grammar.y" /* glr.c:816 */
4047 {
4048 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4049 (*(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)));
4050 (*(struct psi_decl_union **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
4051 (*(struct psi_decl_union **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
4052 (*(struct psi_decl_union **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4053 }
4054 #line 4055 "src/parser_proc.c" /* glr.c:816 */
4055 break;
4056
4057 case 473:
4058 #line 1335 "src/parser_proc_grammar.y" /* glr.c:816 */
4059 {
4060 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4061 (*(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)));
4062 (*(struct psi_decl_struct **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
4063 (*(struct psi_decl_struct **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
4064 (*(struct psi_decl_struct **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4065 }
4066 #line 4067 "src/parser_proc.c" /* glr.c:816 */
4067 break;
4068
4069 case 474:
4070 #line 1345 "src/parser_proc_grammar.y" /* glr.c:816 */
4071 {
4072 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4073 }
4074 #line 4075 "src/parser_proc.c" /* glr.c:816 */
4075 break;
4076
4077 case 476:
4078 #line 1352 "src/parser_proc_grammar.y" /* glr.c:816 */
4079 {
4080 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4081 }
4082 #line 4083 "src/parser_proc.c" /* glr.c:816 */
4083 break;
4084
4085 case 477:
4086 #line 1358 "src/parser_proc_grammar.y" /* glr.c:816 */
4087 {
4088 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4089 (*(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)));
4090 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
4091 size_t i = 0;
4092 struct psi_decl_arg *arg;
4093
4094 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
4095 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
4096 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
4097 }
4098 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4099 }
4100 }
4101 #line 4102 "src/parser_proc.c" /* glr.c:816 */
4102 break;
4103
4104 case 478:
4105 #line 1372 "src/parser_proc_grammar.y" /* glr.c:816 */
4106 {
4107 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4108 (*(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)));
4109 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
4110 size_t i = 0;
4111 struct psi_decl_arg *arg;
4112
4113 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
4114 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
4115 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
4116 }
4117 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4118 }
4119 }
4120 #line 4121 "src/parser_proc.c" /* glr.c:816 */
4121 break;
4122
4123 case 479:
4124 #line 1389 "src/parser_proc_grammar.y" /* glr.c:816 */
4125 {
4126 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4127 }
4128 #line 4129 "src/parser_proc.c" /* glr.c:816 */
4129 break;
4130
4131 case 480:
4132 #line 1392 "src/parser_proc_grammar.y" /* glr.c:816 */
4133 {
4134 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4135 }
4136 #line 4137 "src/parser_proc.c" /* glr.c:816 */
4137 break;
4138
4139 case 481:
4140 #line 1398 "src/parser_proc_grammar.y" /* glr.c:816 */
4141 {
4142 {
4143 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4144 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4145 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &arg);
4146 }
4147 }
4148 #line 4149 "src/parser_proc.c" /* glr.c:816 */
4149 break;
4150
4151 case 482:
4152 #line 1405 "src/parser_proc_grammar.y" /* glr.c:816 */
4153 {
4154 {
4155 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4156 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4157 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), &arg);
4158 }
4159 }
4160 #line 4161 "src/parser_proc.c" /* glr.c:816 */
4161 break;
4162
4163 case 483:
4164 #line 1415 "src/parser_proc_grammar.y" /* glr.c:816 */
4165 {
4166 (*(struct psi_decl_enum **)(&(*yyvalp))) = psi_decl_enum_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4167 (*(struct psi_decl_enum **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
4168 }
4169 #line 4170 "src/parser_proc.c" /* glr.c:816 */
4170 break;
4171
4172 case 484:
4173 #line 1422 "src/parser_proc_grammar.y" /* glr.c:816 */
4174 {
4175 (*(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)));
4176 }
4177 #line 4178 "src/parser_proc.c" /* glr.c:816 */
4178 break;
4179
4180 case 485:
4181 #line 1425 "src/parser_proc_grammar.y" /* glr.c:816 */
4182 {
4183 (*(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)));
4184 }
4185 #line 4186 "src/parser_proc.c" /* glr.c:816 */
4186 break;
4187
4188 case 486:
4189 #line 1431 "src/parser_proc_grammar.y" /* glr.c:816 */
4190 {
4191 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4192 (*(struct psi_decl_enum_item **)(&(*yyvalp))) = psi_decl_enum_item_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, NULL);
4193 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4194 }
4195 #line 4196 "src/parser_proc.c" /* glr.c:816 */
4196 break;
4197
4198 case 487:
4199 #line 1436 "src/parser_proc_grammar.y" /* glr.c:816 */
4200 {
4201 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4202 (*(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)));
4203 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4204 }
4205 #line 4206 "src/parser_proc.c" /* glr.c:816 */
4206 break;
4207
4208 case 488:
4209 #line 1444 "src/parser_proc_grammar.y" /* glr.c:816 */
4210 {
4211 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4212 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4213 }
4214 #line 4215 "src/parser_proc.c" /* glr.c:816 */
4215 break;
4216
4217 case 489:
4218 #line 1448 "src/parser_proc_grammar.y" /* glr.c:816 */
4219 {
4220 (*(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)));
4221 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->token);
4222 }
4223 #line 4224 "src/parser_proc.c" /* glr.c:816 */
4224 break;
4225
4226 case 490:
4227 #line 1452 "src/parser_proc_grammar.y" /* glr.c:816 */
4228 {
4229 (*(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)));
4230 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4231 }
4232 #line 4233 "src/parser_proc.c" /* glr.c:816 */
4233 break;
4234
4235 case 491:
4236 #line 1456 "src/parser_proc_grammar.y" /* glr.c:816 */
4237 {
4238 (*(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)));
4239 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4240 }
4241 #line 4242 "src/parser_proc.c" /* glr.c:816 */
4242 break;
4243
4244 case 492:
4245 #line 1460 "src/parser_proc_grammar.y" /* glr.c:816 */
4246 {
4247 (*(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)));
4248 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4249 }
4250 #line 4251 "src/parser_proc.c" /* glr.c:816 */
4251 break;
4252
4253 case 493:
4254 #line 1464 "src/parser_proc_grammar.y" /* glr.c:816 */
4255 {
4256 (*(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)));
4257 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4258 }
4259 #line 4260 "src/parser_proc.c" /* glr.c:816 */
4260 break;
4261
4262 case 494:
4263 #line 1471 "src/parser_proc_grammar.y" /* glr.c:816 */
4264 {
4265 (*(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);
4266 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4267 }
4268 #line 4269 "src/parser_proc.c" /* glr.c:816 */
4269 break;
4270
4271 case 495:
4272 #line 1475 "src/parser_proc_grammar.y" /* glr.c:816 */
4273 {
4274 (*(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);
4275 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4276 }
4277 #line 4278 "src/parser_proc.c" /* glr.c:816 */
4278 break;
4279
4280 case 496:
4281 #line 1479 "src/parser_proc_grammar.y" /* glr.c:816 */
4282 {
4283 (*(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);
4284 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4285 }
4286 #line 4287 "src/parser_proc.c" /* glr.c:816 */
4287 break;
4288
4289 case 497:
4290 #line 1483 "src/parser_proc_grammar.y" /* glr.c:816 */
4291 {
4292 (*(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);
4293 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4294 }
4295 #line 4296 "src/parser_proc.c" /* glr.c:816 */
4296 break;
4297
4298 case 498:
4299 #line 1487 "src/parser_proc_grammar.y" /* glr.c:816 */
4300 {
4301 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_NAME, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0);
4302 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4303 }
4304 #line 4305 "src/parser_proc.c" /* glr.c:816 */
4305 break;
4306
4307 case 499:
4308 #line 1491 "src/parser_proc_grammar.y" /* glr.c:816 */
4309 {
4310 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4311 }
4312 #line 4313 "src/parser_proc.c" /* glr.c:816 */
4313 break;
4314
4315 case 500:
4316 #line 1497 "src/parser_proc_grammar.y" /* glr.c:816 */
4317 {
4318 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4319 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4320 }
4321 #line 4322 "src/parser_proc.c" /* glr.c:816 */
4322 break;
4323
4324 case 501:
4325 #line 1501 "src/parser_proc_grammar.y" /* glr.c:816 */
4326 {
4327 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4328 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4329 }
4330 #line 4331 "src/parser_proc.c" /* glr.c:816 */
4331 break;
4332
4333 case 502:
4334 #line 1508 "src/parser_proc_grammar.y" /* glr.c:816 */
4335 {
4336 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4337 }
4338 #line 4339 "src/parser_proc.c" /* glr.c:816 */
4339 break;
4340
4341 case 503:
4342 #line 1511 "src/parser_proc_grammar.y" /* glr.c:816 */
4343 {
4344 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4345 int8_t sizeof_void_p = sizeof(void *);
4346 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0);
4347 } else {
4348 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_SIZEOF, (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), 0);
4349 }
4350 }
4351 #line 4352 "src/parser_proc.c" /* glr.c:816 */
4352 break;
4353
4354 case 504:
4355 #line 1522 "src/parser_proc_grammar.y" /* glr.c:816 */
4356 {
4357 int8_t sizeof_void_p = sizeof(void *);
4358 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0);
4359 }
4360 #line 4361 "src/parser_proc.c" /* glr.c:816 */
4361 break;
4362
4363 case 505:
4364 #line 1526 "src/parser_proc_grammar.y" /* glr.c:816 */
4365 {
4366 int8_t sizeof_a = sizeof('a');
4367 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_a, 0);
4368 }
4369 #line 4370 "src/parser_proc.c" /* glr.c:816 */
4370 break;
4371
4372 case 506:
4373 #line 1530 "src/parser_proc_grammar.y" /* glr.c:816 */
4374 {
4375 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT64, &(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->size, 0);
4376 }
4377 #line 4378 "src/parser_proc.c" /* glr.c:816 */
4378 break;
4379
4380 case 507:
4381 #line 1536 "src/parser_proc_grammar.y" /* glr.c:816 */
4382 {
4383 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4384 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4385 } else {
4386 char digest[17];
4387
4388 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
4389 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
4390 }
4391 }
4392 #line 4393 "src/parser_proc.c" /* glr.c:816 */
4393 break;
4394
4395 case 508:
4396 #line 1549 "src/parser_proc_grammar.y" /* glr.c:816 */
4397 {
4398 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4399 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4400 } else {
4401 char digest[17];
4402
4403 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
4404 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
4405 }
4406 }
4407 #line 4408 "src/parser_proc.c" /* glr.c:816 */
4408 break;
4409
4410 case 509:
4411 #line 1562 "src/parser_proc_grammar.y" /* glr.c:816 */
4412 {
4413 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4414 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4415 } else {
4416 char digest[17];
4417
4418 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
4419 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
4420 }
4421 }
4422 #line 4423 "src/parser_proc.c" /* glr.c:816 */
4423 break;
4424
4425 case 510:
4426 #line 1575 "src/parser_proc_grammar.y" /* glr.c:816 */
4427 {
4428 (*(struct psi_token **)(&(*yyvalp))) = NULL;
4429 }
4430 #line 4431 "src/parser_proc.c" /* glr.c:816 */
4431 break;
4432
4433 case 511:
4434 #line 1578 "src/parser_proc_grammar.y" /* glr.c:816 */
4435 {
4436 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4437 (*(struct psi_token **)(&(*yyvalp)))->type = PSI_T_NAME;
4438 }
4439 #line 4440 "src/parser_proc.c" /* glr.c:816 */
4440 break;
4441
4442 case 512:
4443 #line 1585 "src/parser_proc_grammar.y" /* glr.c:816 */
4444 {
4445 (*(struct psi_layout **)(&(*yyvalp))) = NULL;
4446 }
4447 #line 4448 "src/parser_proc.c" /* glr.c:816 */
4448 break;
4449
4450 case 513:
4451 #line 1588 "src/parser_proc_grammar.y" /* glr.c:816 */
4452 {
4453 (*(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));
4454 }
4455 #line 4456 "src/parser_proc.c" /* glr.c:816 */
4456 break;
4457
4458 case 514:
4459 #line 1591 "src/parser_proc_grammar.y" /* glr.c:816 */
4460 {
4461 (*(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);
4462 }
4463 #line 4464 "src/parser_proc.c" /* glr.c:816 */
4464 break;
4465
4466 case 515:
4467 #line 1594 "src/parser_proc_grammar.y" /* glr.c:816 */
4468 {
4469 (*(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));
4470 }
4471 #line 4472 "src/parser_proc.c" /* glr.c:816 */
4472 break;
4473
4474 case 516:
4475 #line 1600 "src/parser_proc_grammar.y" /* glr.c:816 */
4476 {
4477 (*(struct psi_layout*)(&(*yyvalp))).pos = 0;
4478 (*(struct psi_layout*)(&(*yyvalp))).len = 0;
4479 }
4480 #line 4481 "src/parser_proc.c" /* glr.c:816 */
4481 break;
4482
4483 case 517:
4484 #line 1604 "src/parser_proc_grammar.y" /* glr.c:816 */
4485 {
4486 (*(struct psi_layout*)(&(*yyvalp))).pos = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text);
4487 (*(struct psi_layout*)(&(*yyvalp))).len = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
4488 }
4489 #line 4490 "src/parser_proc.c" /* glr.c:816 */
4490 break;
4491
4492 case 518:
4493 #line 1611 "src/parser_proc_grammar.y" /* glr.c:816 */
4494 {
4495 (*(size_t*)(&(*yyvalp))) = 0;
4496 }
4497 #line 4498 "src/parser_proc.c" /* glr.c:816 */
4498 break;
4499
4500 case 519:
4501 #line 1614 "src/parser_proc_grammar.y" /* glr.c:816 */
4502 {
4503 (*(size_t*)(&(*yyvalp))) = 0;
4504 }
4505 #line 4506 "src/parser_proc.c" /* glr.c:816 */
4506 break;
4507
4508 case 520:
4509 #line 1617 "src/parser_proc_grammar.y" /* glr.c:816 */
4510 {
4511 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)) {
4512 (*(size_t*)(&(*yyvalp))) = psi_long_num_exp((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), NULL, &P->preproc->defs);
4513 } else {
4514 (*(size_t*)(&(*yyvalp))) = 0;
4515 }
4516 }
4517 #line 4518 "src/parser_proc.c" /* glr.c:816 */
4518 break;
4519
4520 case 521:
4521 #line 1627 "src/parser_proc_grammar.y" /* glr.c:816 */
4522 {
4523 (*(size_t*)(&(*yyvalp))) = 0;
4524 }
4525 #line 4526 "src/parser_proc.c" /* glr.c:816 */
4526 break;
4527
4528 case 522:
4529 #line 1630 "src/parser_proc_grammar.y" /* glr.c:816 */
4530 {
4531 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4532 }
4533 #line 4534 "src/parser_proc.c" /* glr.c:816 */
4534 break;
4535
4536 case 524:
4537 #line 1637 "src/parser_proc_grammar.y" /* glr.c:816 */
4538 {
4539 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4540 }
4541 #line 4542 "src/parser_proc.c" /* glr.c:816 */
4542 break;
4543
4544 case 525:
4545 #line 1643 "src/parser_proc_grammar.y" /* glr.c:816 */
4546 {
4547 (*(size_t*)(&(*yyvalp))) = 1;
4548 }
4549 #line 4550 "src/parser_proc.c" /* glr.c:816 */
4550 break;
4551
4552 case 526:
4553 #line 1646 "src/parser_proc_grammar.y" /* glr.c:816 */
4554 {
4555 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)) + 1;
4556 }
4557 #line 4558 "src/parser_proc.c" /* glr.c:816 */
4558 break;
4559
4560 case 529:
4561 #line 1663 "src/parser_proc_grammar.y" /* glr.c:816 */
4562 {
4563 (*(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)));
4564 }
4565 #line 4566 "src/parser_proc.c" /* glr.c:816 */
4566 break;
4567
4568 case 530:
4569 #line 1666 "src/parser_proc_grammar.y" /* glr.c:816 */
4570 {
4571 (*(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)));
4572 (*(struct psi_impl_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->static_memory = 1;
4573 }
4574 #line 4575 "src/parser_proc.c" /* glr.c:816 */
4575 break;
4576
4577 case 531:
4578 #line 1673 "src/parser_proc_grammar.y" /* glr.c:816 */
4579 {
4580 (*(struct psi_impl_func **)(&(*yyvalp))) = psi_impl_func_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval))->text, NULL, (*(struct psi_impl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4581 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
4582 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval));
4583 }
4584 #line 4585 "src/parser_proc.c" /* glr.c:816 */
4585 break;
4586
4587 case 532:
4588 #line 1678 "src/parser_proc_grammar.y" /* glr.c:816 */
4589 {
4590 (*(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)));
4591 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4592 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval));
4593 }
4594 #line 4595 "src/parser_proc.c" /* glr.c:816 */
4595 break;
4596
4597 case 533:
4598 #line 1683 "src/parser_proc_grammar.y" /* glr.c:816 */
4599 {
4600 (*(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)));
4601 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval)));
4602 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-11)].yystate.yysemantics.yysval));
4603 (*(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);
4604 (*(struct psi_impl_func **)(&(*yyvalp)))->vararg->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4605 }
4606 #line 4607 "src/parser_proc.c" /* glr.c:816 */
4607 break;
4608
4609 case 534:
4610 #line 1693 "src/parser_proc_grammar.y" /* glr.c:816 */
4611 {
4612 (*(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)));
4613 }
4614 #line 4615 "src/parser_proc.c" /* glr.c:816 */
4615 break;
4616
4617 case 535:
4618 #line 1696 "src/parser_proc_grammar.y" /* glr.c:816 */
4619 {
4620 (*(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)));
4621 }
4622 #line 4623 "src/parser_proc.c" /* glr.c:816 */
4623 break;
4624
4625 case 536:
4626 #line 1702 "src/parser_proc_grammar.y" /* glr.c:816 */
4627 {
4628 (*(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);
4629 }
4630 #line 4631 "src/parser_proc.c" /* glr.c:816 */
4631 break;
4632
4633 case 537:
4634 #line 1705 "src/parser_proc_grammar.y" /* glr.c:816 */
4635 {
4636 (*(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)));
4637 }
4638 #line 4639 "src/parser_proc.c" /* glr.c:816 */
4639 break;
4640
4641 case 538:
4642 #line 1711 "src/parser_proc_grammar.y" /* glr.c:816 */
4643 {
4644 (*(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)));
4645 (*(struct psi_impl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4646 }
4647 #line 4648 "src/parser_proc.c" /* glr.c:816 */
4648 break;
4649
4650 case 539:
4651 #line 1718 "src/parser_proc_grammar.y" /* glr.c:816 */
4652 {
4653 (*(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);
4654 (*(struct psi_impl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4655 }
4656 #line 4657 "src/parser_proc.c" /* glr.c:816 */
4657 break;
4658
4659 case 549:
4660 #line 1737 "src/parser_proc_grammar.y" /* glr.c:816 */
4661 {
4662 (*(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)));
4663 }
4664 #line 4665 "src/parser_proc.c" /* glr.c:816 */
4665 break;
4666
4667 case 550:
4668 #line 1740 "src/parser_proc_grammar.y" /* glr.c:816 */
4669 {
4670 (*(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)));
4671 }
4672 #line 4673 "src/parser_proc.c" /* glr.c:816 */
4673 break;
4674
4675 case 551:
4676 #line 1746 "src/parser_proc_grammar.y" /* glr.c:816 */
4677 {
4678 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_return_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4679 }
4680 #line 4681 "src/parser_proc.c" /* glr.c:816 */
4681 break;
4682
4683 case 552:
4684 #line 1749 "src/parser_proc_grammar.y" /* glr.c:816 */
4685 {
4686 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_let_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4687 }
4688 #line 4689 "src/parser_proc.c" /* glr.c:816 */
4689 break;
4690
4691 case 553:
4692 #line 1752 "src/parser_proc_grammar.y" /* glr.c:816 */
4693 {
4694 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_set_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4695 }
4696 #line 4697 "src/parser_proc.c" /* glr.c:816 */
4697 break;
4698
4699 case 554:
4700 #line 1755 "src/parser_proc_grammar.y" /* glr.c:816 */
4701 {
4702 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_assert_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4703 }
4704 #line 4705 "src/parser_proc.c" /* glr.c:816 */
4705 break;
4706
4707 case 555:
4708 #line 1758 "src/parser_proc_grammar.y" /* glr.c:816 */
4709 {
4710 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_free_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4711 }
4712 #line 4713 "src/parser_proc.c" /* glr.c:816 */
4713 break;
4714
4715 case 556:
4716 #line 1764 "src/parser_proc_grammar.y" /* glr.c:816 */
4717 {
4718 (*(struct psi_let_stmt **)(&(*yyvalp))) = psi_let_stmt_init((*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4719 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4720 }
4721 #line 4722 "src/parser_proc.c" /* glr.c:816 */
4722 break;
4723
4724 case 557:
4725 #line 1768 "src/parser_proc_grammar.y" /* glr.c:816 */
4726 {
4727 (*(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))));
4728 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4729 (*(struct psi_let_stmt **)(&(*yyvalp)))->exp->is_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4730 }
4731 #line 4732 "src/parser_proc.c" /* glr.c:816 */
4732 break;
4733
4734 case 559:
4735 #line 1777 "src/parser_proc_grammar.y" /* glr.c:816 */
4736 {
4737 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4738 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = true;
4739 }
4740 #line 4741 "src/parser_proc.c" /* glr.c:816 */
4741 break;
4742
4743 case 560:
4744 #line 1781 "src/parser_proc_grammar.y" /* glr.c:816 */
4745 {
4746 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4747 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = false;
4748 }
4749 #line 4750 "src/parser_proc.c" /* glr.c:816 */
4750 break;
4751
4752 case 561:
4753 #line 1788 "src/parser_proc_grammar.y" /* glr.c:816 */
4754 {
4755 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_NULL, NULL);
4756 }
4757 #line 4758 "src/parser_proc.c" /* glr.c:816 */
4758 break;
4759
4760 case 562:
4761 #line 1791 "src/parser_proc_grammar.y" /* glr.c:816 */
4762 {
4763 (*(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)));
4764 }
4765 #line 4766 "src/parser_proc.c" /* glr.c:816 */
4766 break;
4767
4768 case 563:
4769 #line 1794 "src/parser_proc_grammar.y" /* glr.c:816 */
4770 {
4771 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4772 }
4773 #line 4774 "src/parser_proc.c" /* glr.c:816 */
4774 break;
4775
4776 case 564:
4777 #line 1797 "src/parser_proc_grammar.y" /* glr.c:816 */
4778 {
4779 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4780 (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->static_memory = 1;
4781 }
4782 #line 4783 "src/parser_proc.c" /* glr.c:816 */
4783 break;
4784
4785 case 565:
4786 #line 1801 "src/parser_proc_grammar.y" /* glr.c:816 */
4787 {
4788 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLBACK, (*(struct psi_let_callback **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4789 }
4790 #line 4791 "src/parser_proc.c" /* glr.c:816 */
4791 break;
4792
4793 case 566:
4794 #line 1804 "src/parser_proc_grammar.y" /* glr.c:816 */
4795 {
4796 (*(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)));
4797 }
4798 #line 4799 "src/parser_proc.c" /* glr.c:816 */
4799 break;
4800
4801 case 567:
4802 #line 1810 "src/parser_proc_grammar.y" /* glr.c:816 */
4803 {
4804 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4805 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4806 }
4807 #line 4808 "src/parser_proc.c" /* glr.c:816 */
4808 break;
4809
4810 case 568:
4811 #line 1814 "src/parser_proc_grammar.y" /* glr.c:816 */
4812 {
4813 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4814 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = 1;
4815 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
4816 }
4817 #line 4818 "src/parser_proc.c" /* glr.c:816 */
4818 break;
4819
4820 case 569:
4821 #line 1822 "src/parser_proc_grammar.y" /* glr.c:816 */
4822 {
4823 (*(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)));
4824 (*(struct psi_let_calloc **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4825 }
4826 #line 4827 "src/parser_proc.c" /* glr.c:816 */
4827 break;
4828
4829 case 570:
4830 #line 1829 "src/parser_proc_grammar.y" /* glr.c:816 */
4831 {
4832 (*(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)));
4833 (*(struct psi_let_callback **)(&(*yyvalp)))->func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
4834 (*(struct psi_let_callback **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval)));
4835 }
4836 #line 4837 "src/parser_proc.c" /* glr.c:816 */
4837 break;
4838
4839 case 571:
4840 #line 1837 "src/parser_proc_grammar.y" /* glr.c:816 */
4841 {
4842 (*(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)));
4843 (*(struct psi_let_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
4844 (*(struct psi_let_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4845 }
4846 #line 4847 "src/parser_proc.c" /* glr.c:816 */
4847 break;
4848
4849 case 582:
4850 #line 1858 "src/parser_proc_grammar.y" /* glr.c:816 */
4851 {
4852 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4853 }
4854 #line 4855 "src/parser_proc.c" /* glr.c:816 */
4855 break;
4856
4857 case 583:
4858 #line 1861 "src/parser_proc_grammar.y" /* glr.c:816 */
4859 {
4860 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4861 }
4862 #line 4863 "src/parser_proc.c" /* glr.c:816 */
4863 break;
4864
4865 case 584:
4866 #line 1867 "src/parser_proc_grammar.y" /* glr.c:816 */
4867 {
4868 (*(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)));
4869 }
4870 #line 4871 "src/parser_proc.c" /* glr.c:816 */
4871 break;
4872
4873 case 585:
4874 #line 1870 "src/parser_proc_grammar.y" /* glr.c:816 */
4875 {
4876 (*(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)));
4877 }
4878 #line 4879 "src/parser_proc.c" /* glr.c:816 */
4879 break;
4880
4881 case 588:
4882 #line 1881 "src/parser_proc_grammar.y" /* glr.c:816 */
4883 {
4884 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4885 }
4886 #line 4887 "src/parser_proc.c" /* glr.c:816 */
4887 break;
4888
4889 case 589:
4890 #line 1884 "src/parser_proc_grammar.y" /* glr.c:816 */
4891 {
4892 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4893 }
4894 #line 4895 "src/parser_proc.c" /* glr.c:816 */
4895 break;
4896
4897 case 590:
4898 #line 1890 "src/parser_proc_grammar.y" /* glr.c:816 */
4899 {
4900 (*(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)));
4901 }
4902 #line 4903 "src/parser_proc.c" /* glr.c:816 */
4903 break;
4904
4905 case 591:
4906 #line 1893 "src/parser_proc_grammar.y" /* glr.c:816 */
4907 {
4908 (*(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)));
4909 }
4910 #line 4911 "src/parser_proc.c" /* glr.c:816 */
4911 break;
4912
4913 case 592:
4914 #line 1899 "src/parser_proc_grammar.y" /* glr.c:816 */
4915 {
4916 (*(struct psi_return_stmt **)(&(*yyvalp))) = psi_return_stmt_init((*(struct psi_return_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4917 (*(struct psi_return_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4918 }
4919 #line 4920 "src/parser_proc.c" /* glr.c:816 */
4920 break;
4921
4922 case 593:
4923 #line 1906 "src/parser_proc_grammar.y" /* glr.c:816 */
4924 {
4925 (*(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))));
4926 (*(struct psi_return_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->token);
4927 }
4928 #line 4929 "src/parser_proc.c" /* glr.c:816 */
4929 break;
4930
4931 case 594:
4932 #line 1910 "src/parser_proc_grammar.y" /* glr.c:816 */
4933 {
4934 (*(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))));
4935 (*(struct psi_return_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4936 }
4937 #line 4938 "src/parser_proc.c" /* glr.c:816 */
4938 break;
4939
4940 case 595:
4941 #line 1917 "src/parser_proc_grammar.y" /* glr.c:816 */
4942 {
4943 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4944 }
4945 #line 4946 "src/parser_proc.c" /* glr.c:816 */
4946 break;
4947
4948 case 596:
4949 #line 1920 "src/parser_proc_grammar.y" /* glr.c:816 */
4950 {
4951 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4952 }
4953 #line 4954 "src/parser_proc.c" /* glr.c:816 */
4954 break;
4955
4956 case 597:
4957 #line 1923 "src/parser_proc_grammar.y" /* glr.c:816 */
4958 {
4959 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4960 }
4961 #line 4962 "src/parser_proc.c" /* glr.c:816 */
4962 break;
4963
4964 case 598:
4965 #line 1929 "src/parser_proc_grammar.y" /* glr.c:816 */
4966 {
4967 (*(struct psi_set_stmt **)(&(*yyvalp))) = psi_set_stmt_init((*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4968 (*(struct psi_set_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4969 }
4970 #line 4971 "src/parser_proc.c" /* glr.c:816 */
4971 break;
4972
4973 case 599:
4974 #line 1936 "src/parser_proc_grammar.y" /* glr.c:816 */
4975 {
4976 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_FUNC, (*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4977 }
4978 #line 4979 "src/parser_proc.c" /* glr.c:816 */
4979 break;
4980
4981 case 600:
4982 #line 1939 "src/parser_proc_grammar.y" /* glr.c:816 */
4983 {
4984 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_NUMEXP, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4985 }
4986 #line 4987 "src/parser_proc.c" /* glr.c:816 */
4987 break;
4988
4989 case 601:
4990 #line 1942 "src/parser_proc_grammar.y" /* glr.c:816 */
4991 {
4992 (*(struct psi_set_exp **)(&(*yyvalp))) = (*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4993 (*(struct psi_set_exp **)(&(*yyvalp)))->var = (*(struct psi_impl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4994 }
4995 #line 4996 "src/parser_proc.c" /* glr.c:816 */
4996 break;
4997
4998 case 602:
4999 #line 1949 "src/parser_proc_grammar.y" /* glr.c:816 */
5000 {
5001 (*(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)));
5002 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
5003 (*(struct psi_set_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5004 }
5005 #line 5006 "src/parser_proc.c" /* glr.c:816 */
5006 break;
5007
5008 case 603:
5009 #line 1954 "src/parser_proc_grammar.y" /* glr.c:816 */
5010 {
5011 (*(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)));
5012 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
5013 (*(struct psi_set_func **)(&(*yyvalp)))->recursive = 1;
5014 }
5015 #line 5016 "src/parser_proc.c" /* glr.c:816 */
5016 break;
5017
5018 case 612:
5019 #line 1973 "src/parser_proc_grammar.y" /* glr.c:816 */
5020 {
5021 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5022 }
5023 #line 5024 "src/parser_proc.c" /* glr.c:816 */
5024 break;
5025
5026 case 613:
5027 #line 1976 "src/parser_proc_grammar.y" /* glr.c:816 */
5028 {
5029 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5030 }
5031 #line 5032 "src/parser_proc.c" /* glr.c:816 */
5032 break;
5033
5034 case 614:
5035 #line 1982 "src/parser_proc_grammar.y" /* glr.c:816 */
5036 {
5037 (*(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)));
5038 }
5039 #line 5040 "src/parser_proc.c" /* glr.c:816 */
5040 break;
5041
5042 case 615:
5043 #line 1985 "src/parser_proc_grammar.y" /* glr.c:816 */
5044 {
5045 (*(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)));
5046 }
5047 #line 5048 "src/parser_proc.c" /* glr.c:816 */
5048 break;
5049
5050 case 616:
5051 #line 1991 "src/parser_proc_grammar.y" /* glr.c:816 */
5052 {
5053 (*(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)));
5054 (*(struct psi_assert_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5055 }
5056 #line 5057 "src/parser_proc.c" /* glr.c:816 */
5057 break;
5058
5059 case 619:
5060 #line 2003 "src/parser_proc_grammar.y" /* glr.c:816 */
5061 {
5062 (*(struct psi_free_stmt **)(&(*yyvalp))) = psi_free_stmt_init((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5063 (*(struct psi_free_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5064 }
5065 #line 5066 "src/parser_proc.c" /* glr.c:816 */
5066 break;
5067
5068 case 620:
5069 #line 2010 "src/parser_proc_grammar.y" /* glr.c:816 */
5070 {
5071 (*(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)));
5072 }
5073 #line 5074 "src/parser_proc.c" /* glr.c:816 */
5074 break;
5075
5076 case 621:
5077 #line 2013 "src/parser_proc_grammar.y" /* glr.c:816 */
5078 {
5079 (*(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)));
5080 }
5081 #line 5082 "src/parser_proc.c" /* glr.c:816 */
5082 break;
5083
5084 case 622:
5085 #line 2019 "src/parser_proc_grammar.y" /* glr.c:816 */
5086 {
5087 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5088 (*(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)));
5089 (*(struct psi_free_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5090 }
5091 #line 5092 "src/parser_proc.c" /* glr.c:816 */
5092 break;
5093
5094 case 623:
5095 #line 2027 "src/parser_proc_grammar.y" /* glr.c:816 */
5096 {
5097 (*(bool*)(&(*yyvalp))) = false;
5098 }
5099 #line 5100 "src/parser_proc.c" /* glr.c:816 */
5100 break;
5101
5102 case 624:
5103 #line 2030 "src/parser_proc_grammar.y" /* glr.c:816 */
5104 {
5105 (*(bool*)(&(*yyvalp))) = true;
5106 }
5107 #line 5108 "src/parser_proc.c" /* glr.c:816 */
5108 break;
5109
5110
5111 #line 5112 "src/parser_proc.c" /* glr.c:816 */
5112 default: break;
5113 }
5114
5115 return yyok;
5116 # undef yyerrok
5117 # undef YYABORT
5118 # undef YYACCEPT
5119 # undef YYERROR
5120 # undef YYBACKUP
5121 # undef yyclearin
5122 # undef YYRECOVERING
5123 }
5124
5125
5126 static void
5127 yyuserMerge (int yyn, YYSTYPE* yy0, YYSTYPE* yy1)
5128 {
5129 YYUSE (yy0);
5130 YYUSE (yy1);
5131
5132 switch (yyn)
5133 {
5134
5135 default: break;
5136 }
5137 }
5138
5139 /* Bison grammar-table manipulation. */
5140
5141 /*-----------------------------------------------.
5142 | Release the memory associated to this symbol. |
5143 `-----------------------------------------------*/
5144
5145 static void
5146 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
5147 {
5148 YYUSE (yyvaluep);
5149 YYUSE (P);
5150 YYUSE (tokens);
5151 YYUSE (index);
5152 if (!yymsg)
5153 yymsg = "Deleting";
5154 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
5155
5156 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
5157 switch (yytype)
5158 {
5159 case 141: /* binary_op_token */
5160 #line 282 "src/parser_proc_grammar.y" /* glr.c:846 */
5161 {}
5162 #line 5163 "src/parser_proc.c" /* glr.c:846 */
5163 break;
5164
5165 case 142: /* unary_op_token */
5166 #line 282 "src/parser_proc_grammar.y" /* glr.c:846 */
5167 {}
5168 #line 5169 "src/parser_proc.c" /* glr.c:846 */
5169 break;
5170
5171 case 143: /* name_token */
5172 #line 282 "src/parser_proc_grammar.y" /* glr.c:846 */
5173 {}
5174 #line 5175 "src/parser_proc.c" /* glr.c:846 */
5175 break;
5176
5177 case 144: /* any_noeol_token */
5178 #line 282 "src/parser_proc_grammar.y" /* glr.c:846 */
5179 {}
5180 #line 5181 "src/parser_proc.c" /* glr.c:846 */
5181 break;
5182
5183 case 149: /* lib */
5184 #line 276 "src/parser_proc_grammar.y" /* glr.c:846 */
5185 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5186 #line 5187 "src/parser_proc.c" /* glr.c:846 */
5187 break;
5188
5189 case 150: /* cpp */
5190 #line 291 "src/parser_proc_grammar.y" /* glr.c:846 */
5191 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
5192 #line 5193 "src/parser_proc.c" /* glr.c:846 */
5193 break;
5194
5195 case 151: /* cpp_exp */
5196 #line 291 "src/parser_proc_grammar.y" /* glr.c:846 */
5197 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
5198 #line 5199 "src/parser_proc.c" /* glr.c:846 */
5199 break;
5200
5201 case 153: /* cpp_message_token */
5202 #line 279 "src/parser_proc_grammar.y" /* glr.c:846 */
5203 {}
5204 #line 5205 "src/parser_proc.c" /* glr.c:846 */
5205 break;
5206
5207 case 154: /* cpp_include_token */
5208 #line 279 "src/parser_proc_grammar.y" /* glr.c:846 */
5209 {}
5210 #line 5211 "src/parser_proc.c" /* glr.c:846 */
5211 break;
5212
5213 case 155: /* cpp_header_token */
5214 #line 279 "src/parser_proc_grammar.y" /* glr.c:846 */
5215 {}
5216 #line 5217 "src/parser_proc.c" /* glr.c:846 */
5217 break;
5218
5219 case 156: /* cpp_no_arg_token */
5220 #line 279 "src/parser_proc_grammar.y" /* glr.c:846 */
5221 {}
5222 #line 5223 "src/parser_proc.c" /* glr.c:846 */
5223 break;
5224
5225 case 157: /* cpp_name_arg_token */
5226 #line 279 "src/parser_proc_grammar.y" /* glr.c:846 */
5227 {}
5228 #line 5229 "src/parser_proc.c" /* glr.c:846 */
5229 break;
5230
5231 case 158: /* cpp_exp_arg_token */
5232 #line 279 "src/parser_proc_grammar.y" /* glr.c:846 */
5233 {}
5234 #line 5235 "src/parser_proc.c" /* glr.c:846 */
5235 break;
5236
5237 case 159: /* cpp_special_name_token */
5238 #line 279 "src/parser_proc_grammar.y" /* glr.c:846 */
5239 {}
5240 #line 5241 "src/parser_proc.c" /* glr.c:846 */
5241 break;
5242
5243 case 160: /* cpp_macro_decl */
5244 #line 293 "src/parser_proc_grammar.y" /* glr.c:846 */
5245 {psi_cpp_macro_decl_free(&(*(struct psi_cpp_macro_decl **)(&(*yyvaluep))));}
5246 #line 5247 "src/parser_proc.c" /* glr.c:846 */
5247 break;
5248
5249 case 161: /* cpp_macro_sig */
5250 #line 295 "src/parser_proc_grammar.y" /* glr.c:846 */
5251 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5252 #line 5253 "src/parser_proc.c" /* glr.c:846 */
5253 break;
5254
5255 case 162: /* cpp_macro_sig_args */
5256 #line 295 "src/parser_proc_grammar.y" /* glr.c:846 */
5257 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5258 #line 5259 "src/parser_proc.c" /* glr.c:846 */
5259 break;
5260
5261 case 163: /* cpp_macro_decl_tokens */
5262 #line 295 "src/parser_proc_grammar.y" /* glr.c:846 */
5263 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5264 #line 5265 "src/parser_proc.c" /* glr.c:846 */
5265 break;
5266
5267 case 164: /* cpp_macro_decl_token_list */
5268 #line 295 "src/parser_proc_grammar.y" /* glr.c:846 */
5269 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5270 #line 5271 "src/parser_proc.c" /* glr.c:846 */
5271 break;
5272
5273 case 165: /* cpp_macro_exp */
5274 #line 297 "src/parser_proc_grammar.y" /* glr.c:846 */
5275 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
5276 #line 5277 "src/parser_proc.c" /* glr.c:846 */
5277 break;
5278
5279 case 166: /* cpp_macro_call_args */
5280 #line 295 "src/parser_proc_grammar.y" /* glr.c:846 */
5281 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5282 #line 5283 "src/parser_proc.c" /* glr.c:846 */
5283 break;
5284
5285 case 167: /* cpp_macro_call_arg_list */
5286 #line 295 "src/parser_proc_grammar.y" /* glr.c:846 */
5287 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5288 #line 5289 "src/parser_proc.c" /* glr.c:846 */
5289 break;
5290
5291 case 168: /* constant */
5292 #line 303 "src/parser_proc_grammar.y" /* glr.c:846 */
5293 {psi_const_free(&(*(struct psi_const **)(&(*yyvaluep))));}
5294 #line 5295 "src/parser_proc.c" /* glr.c:846 */
5295 break;
5296
5297 case 169: /* constant_type */
5298 #line 305 "src/parser_proc_grammar.y" /* glr.c:846 */
5299 {psi_const_type_free(&(*(struct psi_const_type **)(&(*yyvaluep))));}
5300 #line 5301 "src/parser_proc.c" /* glr.c:846 */
5301 break;
5302
5303 case 170: /* constant_type_token */
5304 #line 300 "src/parser_proc_grammar.y" /* glr.c:846 */
5305 {}
5306 #line 5307 "src/parser_proc.c" /* glr.c:846 */
5307 break;
5308
5309 case 171: /* impl_def_val */
5310 #line 307 "src/parser_proc_grammar.y" /* glr.c:846 */
5311 {psi_impl_def_val_free(&(*(struct psi_impl_def_val **)(&(*yyvaluep))));}
5312 #line 5313 "src/parser_proc.c" /* glr.c:846 */
5313 break;
5314
5315 case 172: /* impl_def_val_token */
5316 #line 300 "src/parser_proc_grammar.y" /* glr.c:846 */
5317 {}
5318 #line 5319 "src/parser_proc.c" /* glr.c:846 */
5319 break;
5320
5321 case 173: /* decl_typedef */
5322 #line 317 "src/parser_proc_grammar.y" /* glr.c:846 */
5323 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5324 #line 5325 "src/parser_proc.c" /* glr.c:846 */
5325 break;
5326
5327 case 174: /* typedef */
5328 #line 317 "src/parser_proc_grammar.y" /* glr.c:846 */
5329 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5330 #line 5331 "src/parser_proc.c" /* glr.c:846 */
5331 break;
5332
5333 case 175: /* typedef_anon */
5334 #line 317 "src/parser_proc_grammar.y" /* glr.c:846 */
5335 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5336 #line 5337 "src/parser_proc.c" /* glr.c:846 */
5337 break;
5338
5339 case 176: /* typedef_decl */
5340 #line 317 "src/parser_proc_grammar.y" /* glr.c:846 */
5341 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5342 #line 5343 "src/parser_proc.c" /* glr.c:846 */
5343 break;
5344
5345 case 177: /* typedef_anon_decl */
5346 #line 317 "src/parser_proc_grammar.y" /* glr.c:846 */
5347 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5348 #line 5349 "src/parser_proc.c" /* glr.c:846 */
5349 break;
5350
5351 case 178: /* qualified_decl_type */
5352 #line 313 "src/parser_proc_grammar.y" /* glr.c:846 */
5353 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
5354 #line 5355 "src/parser_proc.c" /* glr.c:846 */
5355 break;
5356
5357 case 179: /* decl_type */
5358 #line 313 "src/parser_proc_grammar.y" /* glr.c:846 */
5359 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
5360 #line 5361 "src/parser_proc.c" /* glr.c:846 */
5361 break;
5362
5363 case 180: /* decl_type_complex */
5364 #line 313 "src/parser_proc_grammar.y" /* glr.c:846 */
5365 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
5366 #line 5367 "src/parser_proc.c" /* glr.c:846 */
5367 break;
5368
5369 case 181: /* decl_type_simple */
5370 #line 310 "src/parser_proc_grammar.y" /* glr.c:846 */
5371 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5372 #line 5373 "src/parser_proc.c" /* glr.c:846 */
5373 break;
5374
5375 case 182: /* decl_real_type */
5376 #line 310 "src/parser_proc_grammar.y" /* glr.c:846 */
5377 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5378 #line 5379 "src/parser_proc.c" /* glr.c:846 */
5379 break;
5380
5381 case 183: /* int_signed */
5382 #line 288 "src/parser_proc_grammar.y" /* glr.c:846 */
5383 {}
5384 #line 5385 "src/parser_proc.c" /* glr.c:846 */
5385 break;
5386
5387 case 184: /* int_width */
5388 #line 285 "src/parser_proc_grammar.y" /* glr.c:846 */
5389 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5390 #line 5391 "src/parser_proc.c" /* glr.c:846 */
5391 break;
5392
5393 case 185: /* decl_int_type */
5394 #line 310 "src/parser_proc_grammar.y" /* glr.c:846 */
5395 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5396 #line 5397 "src/parser_proc.c" /* glr.c:846 */
5397 break;
5398
5399 case 186: /* int_signed_types */
5400 #line 285 "src/parser_proc_grammar.y" /* glr.c:846 */
5401 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5402 #line 5403 "src/parser_proc.c" /* glr.c:846 */
5403 break;
5404
5405 case 187: /* signed_short_types */
5406 #line 288 "src/parser_proc_grammar.y" /* glr.c:846 */
5407 {}
5408 #line 5409 "src/parser_proc.c" /* glr.c:846 */
5409 break;
5410
5411 case 188: /* signed_long_types */
5412 #line 288 "src/parser_proc_grammar.y" /* glr.c:846 */
5413 {}
5414 #line 5415 "src/parser_proc.c" /* glr.c:846 */
5415 break;
5416
5417 case 189: /* int_width_types */
5418 #line 285 "src/parser_proc_grammar.y" /* glr.c:846 */
5419 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5420 #line 5421 "src/parser_proc.c" /* glr.c:846 */
5421 break;
5422
5423 case 190: /* decl_stmt */
5424 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
5425 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5426 #line 5427 "src/parser_proc.c" /* glr.c:846 */
5427 break;
5428
5429 case 196: /* decl_vars */
5430 #line 329 "src/parser_proc_grammar.y" /* glr.c:846 */
5431 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5432 #line 5433 "src/parser_proc.c" /* glr.c:846 */
5433 break;
5434
5435 case 201: /* decl */
5436 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
5437 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5438 #line 5439 "src/parser_proc.c" /* glr.c:846 */
5439 break;
5440
5441 case 202: /* decl_body */
5442 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
5443 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5444 #line 5445 "src/parser_proc.c" /* glr.c:846 */
5445 break;
5446
5447 case 203: /* decl_func_body */
5448 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
5449 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5450 #line 5451 "src/parser_proc.c" /* glr.c:846 */
5451 break;
5452
5453 case 204: /* decl_functor_body */
5454 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
5455 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5456 #line 5457 "src/parser_proc.c" /* glr.c:846 */
5457 break;
5458
5459 case 205: /* decl_functor */
5460 #line 317 "src/parser_proc_grammar.y" /* glr.c:846 */
5461 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5462 #line 5463 "src/parser_proc.c" /* glr.c:846 */
5463 break;
5464
5465 case 206: /* decl_func */
5466 #line 317 "src/parser_proc_grammar.y" /* glr.c:846 */
5467 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5468 #line 5469 "src/parser_proc.c" /* glr.c:846 */
5469 break;
5470
5471 case 207: /* decl_args */
5472 #line 329 "src/parser_proc_grammar.y" /* glr.c:846 */
5473 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5474 #line 5475 "src/parser_proc.c" /* glr.c:846 */
5475 break;
5476
5477 case 208: /* decl_anon_arg */
5478 #line 317 "src/parser_proc_grammar.y" /* glr.c:846 */
5479 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5480 #line 5481 "src/parser_proc.c" /* glr.c:846 */
5481 break;
5482
5483 case 209: /* decl_arg */
5484 #line 317 "src/parser_proc_grammar.y" /* glr.c:846 */
5485 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5486 #line 5487 "src/parser_proc.c" /* glr.c:846 */
5487 break;
5488
5489 case 210: /* decl_var */
5490 #line 319 "src/parser_proc_grammar.y" /* glr.c:846 */
5491 {psi_decl_var_free(&(*(struct psi_decl_var **)(&(*yyvaluep))));}
5492 #line 5493 "src/parser_proc.c" /* glr.c:846 */
5493 break;
5494
5495 case 211: /* decl_union */
5496 #line 323 "src/parser_proc_grammar.y" /* glr.c:846 */
5497 {psi_decl_union_free(&(*(struct psi_decl_union **)(&(*yyvaluep))));}
5498 #line 5499 "src/parser_proc.c" /* glr.c:846 */
5499 break;
5500
5501 case 212: /* decl_struct */
5502 #line 321 "src/parser_proc_grammar.y" /* glr.c:846 */
5503 {psi_decl_struct_free(&(*(struct psi_decl_struct **)(&(*yyvaluep))));}
5504 #line 5505 "src/parser_proc.c" /* glr.c:846 */
5505 break;
5506
5507 case 213: /* decl_struct_args */
5508 #line 329 "src/parser_proc_grammar.y" /* glr.c:846 */
5509 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5510 #line 5511 "src/parser_proc.c" /* glr.c:846 */
5511 break;
5512
5513 case 214: /* struct_args_block */
5514 #line 329 "src/parser_proc_grammar.y" /* glr.c:846 */
5515 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5516 #line 5517 "src/parser_proc.c" /* glr.c:846 */
5517 break;
5518
5519 case 215: /* struct_args */
5520 #line 329 "src/parser_proc_grammar.y" /* glr.c:846 */
5521 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5522 #line 5523 "src/parser_proc.c" /* glr.c:846 */
5523 break;
5524
5525 case 216: /* struct_arg_var_list */
5526 #line 329 "src/parser_proc_grammar.y" /* glr.c:846 */
5527 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5528 #line 5529 "src/parser_proc.c" /* glr.c:846 */
5529 break;
5530
5531 case 217: /* decl_vars_with_layout */
5532 #line 329 "src/parser_proc_grammar.y" /* glr.c:846 */
5533 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5534 #line 5535 "src/parser_proc.c" /* glr.c:846 */
5535 break;
5536
5537 case 218: /* decl_enum */
5538 #line 325 "src/parser_proc_grammar.y" /* glr.c:846 */
5539 {psi_decl_enum_free(&(*(struct psi_decl_enum **)(&(*yyvaluep))));}
5540 #line 5541 "src/parser_proc.c" /* glr.c:846 */
5541 break;
5542
5543 case 219: /* decl_enum_items */
5544 #line 329 "src/parser_proc_grammar.y" /* glr.c:846 */
5545 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5546 #line 5547 "src/parser_proc.c" /* glr.c:846 */
5547 break;
5548
5549 case 220: /* decl_enum_item */
5550 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
5551 {psi_decl_enum_item_free(&(*(struct psi_decl_enum_item **)(&(*yyvaluep))));}
5552 #line 5553 "src/parser_proc.c" /* glr.c:846 */
5553 break;
5554
5555 case 221: /* num_exp */
5556 #line 385 "src/parser_proc_grammar.y" /* glr.c:846 */
5557 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
5558 #line 5559 "src/parser_proc.c" /* glr.c:846 */
5559 break;
5560
5561 case 222: /* number */
5562 #line 387 "src/parser_proc_grammar.y" /* glr.c:846 */
5563 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
5564 #line 5565 "src/parser_proc.c" /* glr.c:846 */
5565 break;
5566
5567 case 223: /* sizeof */
5568 #line 337 "src/parser_proc_grammar.y" /* glr.c:846 */
5569 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
5570 #line 5571 "src/parser_proc.c" /* glr.c:846 */
5571 break;
5572
5573 case 224: /* sizeof_body */
5574 #line 337 "src/parser_proc_grammar.y" /* glr.c:846 */
5575 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
5576 #line 5577 "src/parser_proc.c" /* glr.c:846 */
5577 break;
5578
5579 case 225: /* sizeof_body_notypes */
5580 #line 337 "src/parser_proc_grammar.y" /* glr.c:846 */
5581 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
5582 #line 5583 "src/parser_proc.c" /* glr.c:846 */
5583 break;
5584
5585 case 226: /* enum_name */
5586 #line 276 "src/parser_proc_grammar.y" /* glr.c:846 */
5587 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5588 #line 5589 "src/parser_proc.c" /* glr.c:846 */
5589 break;
5590
5591 case 227: /* union_name */
5592 #line 276 "src/parser_proc_grammar.y" /* glr.c:846 */
5593 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5594 #line 5595 "src/parser_proc.c" /* glr.c:846 */
5595 break;
5596
5597 case 228: /* struct_name */
5598 #line 276 "src/parser_proc_grammar.y" /* glr.c:846 */
5599 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5600 #line 5601 "src/parser_proc.c" /* glr.c:846 */
5601 break;
5602
5603 case 229: /* optional_name */
5604 #line 276 "src/parser_proc_grammar.y" /* glr.c:846 */
5605 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5606 #line 5607 "src/parser_proc.c" /* glr.c:846 */
5607 break;
5608
5609 case 230: /* decl_layout */
5610 #line 334 "src/parser_proc_grammar.y" /* glr.c:846 */
5611 {psi_layout_free(&(*(struct psi_layout **)(&(*yyvaluep))));}
5612 #line 5613 "src/parser_proc.c" /* glr.c:846 */
5613 break;
5614
5615 case 231: /* align_and_size */
5616 #line 332 "src/parser_proc_grammar.y" /* glr.c:846 */
5617 {}
5618 #line 5619 "src/parser_proc.c" /* glr.c:846 */
5619 break;
5620
5621 case 232: /* array_size */
5622 #line 390 "src/parser_proc_grammar.y" /* glr.c:846 */
5623 {}
5624 #line 5625 "src/parser_proc.c" /* glr.c:846 */
5625 break;
5626
5627 case 233: /* indirection */
5628 #line 390 "src/parser_proc_grammar.y" /* glr.c:846 */
5629 {}
5630 #line 5631 "src/parser_proc.c" /* glr.c:846 */
5631 break;
5632
5633 case 234: /* pointers */
5634 #line 390 "src/parser_proc_grammar.y" /* glr.c:846 */
5635 {}
5636 #line 5637 "src/parser_proc.c" /* glr.c:846 */
5637 break;
5638
5639 case 235: /* asterisks */
5640 #line 390 "src/parser_proc_grammar.y" /* glr.c:846 */
5641 {}
5642 #line 5643 "src/parser_proc.c" /* glr.c:846 */
5643 break;
5644
5645 case 237: /* impl */
5646 #line 340 "src/parser_proc_grammar.y" /* glr.c:846 */
5647 {psi_impl_free(&(*(struct psi_impl **)(&(*yyvaluep))));}
5648 #line 5649 "src/parser_proc.c" /* glr.c:846 */
5649 break;
5650
5651 case 238: /* impl_func */
5652 #line 342 "src/parser_proc_grammar.y" /* glr.c:846 */
5653 {psi_impl_func_free(&(*(struct psi_impl_func **)(&(*yyvaluep))));}
5654 #line 5655 "src/parser_proc.c" /* glr.c:846 */
5655 break;
5656
5657 case 239: /* impl_args */
5658 #line 382 "src/parser_proc_grammar.y" /* glr.c:846 */
5659 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5660 #line 5661 "src/parser_proc.c" /* glr.c:846 */
5661 break;
5662
5663 case 240: /* impl_arg */
5664 #line 344 "src/parser_proc_grammar.y" /* glr.c:846 */
5665 {psi_impl_arg_free(&(*(struct psi_impl_arg **)(&(*yyvaluep))));}
5666 #line 5667 "src/parser_proc.c" /* glr.c:846 */
5667 break;
5668
5669 case 241: /* impl_var */
5670 #line 348 "src/parser_proc_grammar.y" /* glr.c:846 */
5671 {psi_impl_var_free(&(*(struct psi_impl_var **)(&(*yyvaluep))));}
5672 #line 5673 "src/parser_proc.c" /* glr.c:846 */
5673 break;
5674
5675 case 242: /* impl_type */
5676 #line 346 "src/parser_proc_grammar.y" /* glr.c:846 */
5677 {psi_impl_type_free(&(*(struct psi_impl_type **)(&(*yyvaluep))));}
5678 #line 5679 "src/parser_proc.c" /* glr.c:846 */
5679 break;
5680
5681 case 243: /* impl_type_token */
5682 #line 380 "src/parser_proc_grammar.y" /* glr.c:846 */
5683 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5684 #line 5685 "src/parser_proc.c" /* glr.c:846 */
5685 break;
5686
5687 case 244: /* impl_stmts */
5688 #line 382 "src/parser_proc_grammar.y" /* glr.c:846 */
5689 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5690 #line 5691 "src/parser_proc.c" /* glr.c:846 */
5691 break;
5692
5693 case 245: /* impl_stmt */
5694 #line 378 "src/parser_proc_grammar.y" /* glr.c:846 */
5695 {psi_impl_stmt_free(&(*(struct psi_token ***)(&(*yyvaluep))));}
5696 #line 5697 "src/parser_proc.c" /* glr.c:846 */
5697 break;
5698
5699 case 246: /* let_stmt */
5700 #line 351 "src/parser_proc_grammar.y" /* glr.c:846 */
5701 {psi_let_stmt_free(&(*(struct psi_let_stmt **)(&(*yyvaluep))));}
5702 #line 5703 "src/parser_proc.c" /* glr.c:846 */
5703 break;
5704
5705 case 247: /* let_exp */
5706 #line 353 "src/parser_proc_grammar.y" /* glr.c:846 */
5707 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
5708 #line 5709 "src/parser_proc.c" /* glr.c:846 */
5709 break;
5710
5711 case 248: /* let_exp_byref */
5712 #line 353 "src/parser_proc_grammar.y" /* glr.c:846 */
5713 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
5714 #line 5715 "src/parser_proc.c" /* glr.c:846 */
5715 break;
5716
5717 case 249: /* let_exp_assign */
5718 #line 353 "src/parser_proc_grammar.y" /* glr.c:846 */
5719 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
5720 #line 5721 "src/parser_proc.c" /* glr.c:846 */
5721 break;
5722
5723 case 250: /* let_calloc */
5724 #line 355 "src/parser_proc_grammar.y" /* glr.c:846 */
5725 {psi_let_calloc_free(&(*(struct psi_let_calloc **)(&(*yyvaluep))));}
5726 #line 5727 "src/parser_proc.c" /* glr.c:846 */
5727 break;
5728
5729 case 251: /* let_callback */
5730 #line 357 "src/parser_proc_grammar.y" /* glr.c:846 */
5731 {psi_let_callback_free(&(*(struct psi_let_callback **)(&(*yyvaluep))));}
5732 #line 5733 "src/parser_proc.c" /* glr.c:846 */
5733 break;
5734
5735 case 252: /* let_func */
5736 #line 359 "src/parser_proc_grammar.y" /* glr.c:846 */
5737 {psi_let_func_free(&(*(struct psi_let_func **)(&(*yyvaluep))));}
5738 #line 5739 "src/parser_proc.c" /* glr.c:846 */
5739 break;
5740
5741 case 253: /* let_func_token */
5742 #line 380 "src/parser_proc_grammar.y" /* glr.c:846 */
5743 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5744 #line 5745 "src/parser_proc.c" /* glr.c:846 */
5745 break;
5746
5747 case 254: /* let_func_exps */
5748 #line 382 "src/parser_proc_grammar.y" /* glr.c:846 */
5749 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5750 #line 5751 "src/parser_proc.c" /* glr.c:846 */
5751 break;
5752
5753 case 255: /* let_exps */
5754 #line 382 "src/parser_proc_grammar.y" /* glr.c:846 */
5755 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5756 #line 5757 "src/parser_proc.c" /* glr.c:846 */
5757 break;
5758
5759 case 256: /* callback_rval */
5760 #line 380 "src/parser_proc_grammar.y" /* glr.c:846 */
5761 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5762 #line 5763 "src/parser_proc.c" /* glr.c:846 */
5763 break;
5764
5765 case 257: /* callback_arg_list */
5766 #line 382 "src/parser_proc_grammar.y" /* glr.c:846 */
5767 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5768 #line 5769 "src/parser_proc.c" /* glr.c:846 */
5769 break;
5770
5771 case 258: /* callback_args */
5772 #line 382 "src/parser_proc_grammar.y" /* glr.c:846 */
5773 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5774 #line 5775 "src/parser_proc.c" /* glr.c:846 */
5775 break;
5776
5777 case 259: /* return_stmt */
5778 #line 369 "src/parser_proc_grammar.y" /* glr.c:846 */
5779 {psi_return_stmt_free(&(*(struct psi_return_stmt **)(&(*yyvaluep))));}
5780 #line 5781 "src/parser_proc.c" /* glr.c:846 */
5781 break;
5782
5783 case 260: /* return_exp */
5784 #line 371 "src/parser_proc_grammar.y" /* glr.c:846 */
5785 {psi_return_exp_free(&(*(struct psi_return_exp **)(&(*yyvaluep))));}
5786 #line 5787 "src/parser_proc.c" /* glr.c:846 */
5787 break;
5788
5789 case 261: /* call_decl_vars */
5790 #line 329 "src/parser_proc_grammar.y" /* glr.c:846 */
5791 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5792 #line 5793 "src/parser_proc.c" /* glr.c:846 */
5793 break;
5794
5795 case 262: /* set_stmt */
5796 #line 361 "src/parser_proc_grammar.y" /* glr.c:846 */
5797 {psi_set_stmt_free(&(*(struct psi_set_stmt **)(&(*yyvaluep))));}
5798 #line 5799 "src/parser_proc.c" /* glr.c:846 */
5799 break;
5800
5801 case 263: /* set_exp */
5802 #line 363 "src/parser_proc_grammar.y" /* glr.c:846 */
5803 {psi_set_exp_free(&(*(struct psi_set_exp **)(&(*yyvaluep))));}
5804 #line 5805 "src/parser_proc.c" /* glr.c:846 */
5805 break;
5806
5807 case 264: /* set_func */
5808 #line 365 "src/parser_proc_grammar.y" /* glr.c:846 */
5809 {psi_set_func_free(&(*(struct psi_set_func **)(&(*yyvaluep))));}
5810 #line 5811 "src/parser_proc.c" /* glr.c:846 */
5811 break;
5812
5813 case 265: /* set_func_token */
5814 #line 380 "src/parser_proc_grammar.y" /* glr.c:846 */
5815 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5816 #line 5817 "src/parser_proc.c" /* glr.c:846 */
5817 break;
5818
5819 case 266: /* set_func_exps */
5820 #line 382 "src/parser_proc_grammar.y" /* glr.c:846 */
5821 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5822 #line 5823 "src/parser_proc.c" /* glr.c:846 */
5823 break;
5824
5825 case 267: /* set_exps */
5826 #line 382 "src/parser_proc_grammar.y" /* glr.c:846 */
5827 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5828 #line 5829 "src/parser_proc.c" /* glr.c:846 */
5829 break;
5830
5831 case 268: /* assert_stmt */
5832 #line 367 "src/parser_proc_grammar.y" /* glr.c:846 */
5833 {psi_assert_stmt_free(&(*(struct psi_assert_stmt **)(&(*yyvaluep))));}
5834 #line 5835 "src/parser_proc.c" /* glr.c:846 */
5835 break;
5836
5837 case 269: /* assert_stmt_token */
5838 #line 380 "src/parser_proc_grammar.y" /* glr.c:846 */
5839 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5840 #line 5841 "src/parser_proc.c" /* glr.c:846 */
5841 break;
5842
5843 case 270: /* free_stmt */
5844 #line 373 "src/parser_proc_grammar.y" /* glr.c:846 */
5845 {psi_free_stmt_free(&(*(struct psi_free_stmt **)(&(*yyvaluep))));}
5846 #line 5847 "src/parser_proc.c" /* glr.c:846 */
5847 break;
5848
5849 case 271: /* free_exps */
5850 #line 382 "src/parser_proc_grammar.y" /* glr.c:846 */
5851 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5852 #line 5853 "src/parser_proc.c" /* glr.c:846 */
5853 break;
5854
5855 case 272: /* free_exp */
5856 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
5857 {psi_free_exp_free(&(*(struct psi_free_exp **)(&(*yyvaluep))));}
5858 #line 5859 "src/parser_proc.c" /* glr.c:846 */
5859 break;
5860
5861 case 273: /* reference */
5862 #line 392 "src/parser_proc_grammar.y" /* glr.c:846 */
5863 {}
5864 #line 5865 "src/parser_proc.c" /* glr.c:846 */
5865 break;
5866
5867
5868 default:
5869 break;
5870 }
5871 YY_IGNORE_MAYBE_UNINITIALIZED_END
5872 }
5873
5874 /** Number of symbols composing the right hand side of rule #RULE. */
5875 static inline int
5876 yyrhsLength (yyRuleNum yyrule)
5877 {
5878 return yyr2[yyrule];
5879 }
5880
5881 static void
5882 yydestroyGLRState (char const *yymsg, yyGLRState *yys, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
5883 {
5884 if (yys->yyresolved)
5885 yydestruct (yymsg, yystos[yys->yylrState],
5886 &yys->yysemantics.yysval, P, tokens, index);
5887 else
5888 {
5889 #if YYDEBUG
5890 if (yydebug)
5891 {
5892 if (yys->yysemantics.yyfirstVal)
5893 YYFPRINTF (stderr, "%s unresolved", yymsg);
5894 else
5895 YYFPRINTF (stderr, "%s incomplete", yymsg);
5896 YY_SYMBOL_PRINT ("", yystos[yys->yylrState], YY_NULLPTR, &yys->yyloc);
5897 }
5898 #endif
5899
5900 if (yys->yysemantics.yyfirstVal)
5901 {
5902 yySemanticOption *yyoption = yys->yysemantics.yyfirstVal;
5903 yyGLRState *yyrh;
5904 int yyn;
5905 for (yyrh = yyoption->yystate, yyn = yyrhsLength (yyoption->yyrule);
5906 yyn > 0;
5907 yyrh = yyrh->yypred, yyn -= 1)
5908 yydestroyGLRState (yymsg, yyrh, P, tokens, index);
5909 }
5910 }
5911 }
5912
5913 /** Left-hand-side symbol for rule #YYRULE. */
5914 static inline yySymbol
5915 yylhsNonterm (yyRuleNum yyrule)
5916 {
5917 return yyr1[yyrule];
5918 }
5919
5920 #define yypact_value_is_default(Yystate) \
5921 (!!((Yystate) == (-693)))
5922
5923 /** True iff LR state YYSTATE has only a default reduction (regardless
5924 * of token). */
5925 static inline yybool
5926 yyisDefaultedState (yyStateNum yystate)
5927 {
5928 return yypact_value_is_default (yypact[yystate]);
5929 }
5930
5931 /** The default reduction for YYSTATE, assuming it has one. */
5932 static inline yyRuleNum
5933 yydefaultAction (yyStateNum yystate)
5934 {
5935 return yydefact[yystate];
5936 }
5937
5938 #define yytable_value_is_error(Yytable_value) \
5939 0
5940
5941 /** Set *YYACTION to the action to take in YYSTATE on seeing YYTOKEN.
5942 * Result R means
5943 * R < 0: Reduce on rule -R.
5944 * R = 0: Error.
5945 * R > 0: Shift to state R.
5946 * Set *YYCONFLICTS to a pointer into yyconfl to a 0-terminated list
5947 * of conflicting reductions.
5948 */
5949 static inline void
5950 yygetLRActions (yyStateNum yystate, int yytoken,
5951 int* yyaction, const short int** yyconflicts)
5952 {
5953 int yyindex = yypact[yystate] + yytoken;
5954 if (yypact_value_is_default (yypact[yystate])
5955 || yyindex < 0 || YYLAST < yyindex || yycheck[yyindex] != yytoken)
5956 {
5957 *yyaction = -yydefact[yystate];
5958 *yyconflicts = yyconfl;
5959 }
5960 else if (! yytable_value_is_error (yytable[yyindex]))
5961 {
5962 *yyaction = yytable[yyindex];
5963 *yyconflicts = yyconfl + yyconflp[yyindex];
5964 }
5965 else
5966 {
5967 *yyaction = 0;
5968 *yyconflicts = yyconfl + yyconflp[yyindex];
5969 }
5970 }
5971
5972 /** Compute post-reduction state.
5973 * \param yystate the current state
5974 * \param yysym the nonterminal to push on the stack
5975 */
5976 static inline yyStateNum
5977 yyLRgotoState (yyStateNum yystate, yySymbol yysym)
5978 {
5979 int yyr = yypgoto[yysym - YYNTOKENS] + yystate;
5980 if (0 <= yyr && yyr <= YYLAST && yycheck[yyr] == yystate)
5981 return yytable[yyr];
5982 else
5983 return yydefgoto[yysym - YYNTOKENS];
5984 }
5985
5986 static inline yybool
5987 yyisShiftAction (int yyaction)
5988 {
5989 return 0 < yyaction;
5990 }
5991
5992 static inline yybool
5993 yyisErrorAction (int yyaction)
5994 {
5995 return yyaction == 0;
5996 }
5997
5998 /* GLRStates */
5999
6000 /** Return a fresh GLRStackItem in YYSTACKP. The item is an LR state
6001 * if YYISSTATE, and otherwise a semantic option. Callers should call
6002 * YY_RESERVE_GLRSTACK afterwards to make sure there is sufficient
6003 * headroom. */
6004
6005 static inline yyGLRStackItem*
6006 yynewGLRStackItem (yyGLRStack* yystackp, yybool yyisState)
6007 {
6008 yyGLRStackItem* yynewItem = yystackp->yynextFree;
6009 yystackp->yyspaceLeft -= 1;
6010 yystackp->yynextFree += 1;
6011 yynewItem->yystate.yyisState = yyisState;
6012 return yynewItem;
6013 }
6014
6015 /** Add a new semantic action that will execute the action for rule
6016 * YYRULE on the semantic values in YYRHS to the list of
6017 * alternative actions for YYSTATE. Assumes that YYRHS comes from
6018 * stack #YYK of *YYSTACKP. */
6019 static void
6020 yyaddDeferredAction (yyGLRStack* yystackp, size_t yyk, yyGLRState* yystate,
6021 yyGLRState* yyrhs, yyRuleNum yyrule)
6022 {
6023 yySemanticOption* yynewOption =
6024 &yynewGLRStackItem (yystackp, yyfalse)->yyoption;
6025 YYASSERT (!yynewOption->yyisState);
6026 yynewOption->yystate = yyrhs;
6027 yynewOption->yyrule = yyrule;
6028 if (yystackp->yytops.yylookaheadNeeds[yyk])
6029 {
6030 yynewOption->yyrawchar = yychar;
6031 yynewOption->yyval = yylval;
6032 }
6033 else
6034 yynewOption->yyrawchar = YYEMPTY;
6035 yynewOption->yynext = yystate->yysemantics.yyfirstVal;
6036 yystate->yysemantics.yyfirstVal = yynewOption;
6037
6038 YY_RESERVE_GLRSTACK (yystackp);
6039 }
6040
6041 /* GLRStacks */
6042
6043 /** Initialize YYSET to a singleton set containing an empty stack. */
6044 static yybool
6045 yyinitStateSet (yyGLRStateSet* yyset)
6046 {
6047 yyset->yysize = 1;
6048 yyset->yycapacity = 16;
6049 yyset->yystates = (yyGLRState**) YYMALLOC (16 * sizeof yyset->yystates[0]);
6050 if (! yyset->yystates)
6051 return yyfalse;
6052 yyset->yystates[0] = YY_NULLPTR;
6053 yyset->yylookaheadNeeds =
6054 (yybool*) YYMALLOC (16 * sizeof yyset->yylookaheadNeeds[0]);
6055 if (! yyset->yylookaheadNeeds)
6056 {
6057 YYFREE (yyset->yystates);
6058 return yyfalse;
6059 }
6060 return yytrue;
6061 }
6062
6063 static void yyfreeStateSet (yyGLRStateSet* yyset)
6064 {
6065 YYFREE (yyset->yystates);
6066 YYFREE (yyset->yylookaheadNeeds);
6067 }
6068
6069 /** Initialize *YYSTACKP to a single empty stack, with total maximum
6070 * capacity for all stacks of YYSIZE. */
6071 static yybool
6072 yyinitGLRStack (yyGLRStack* yystackp, size_t yysize)
6073 {
6074 yystackp->yyerrState = 0;
6075 yynerrs = 0;
6076 yystackp->yyspaceLeft = yysize;
6077 yystackp->yyitems =
6078 (yyGLRStackItem*) YYMALLOC (yysize * sizeof yystackp->yynextFree[0]);
6079 if (!yystackp->yyitems)
6080 return yyfalse;
6081 yystackp->yynextFree = yystackp->yyitems;
6082 yystackp->yysplitPoint = YY_NULLPTR;
6083 yystackp->yylastDeleted = YY_NULLPTR;
6084 return yyinitStateSet (&yystackp->yytops);
6085 }
6086
6087
6088 #if YYSTACKEXPANDABLE
6089 # define YYRELOC(YYFROMITEMS,YYTOITEMS,YYX,YYTYPE) \
6090 &((YYTOITEMS) - ((YYFROMITEMS) - (yyGLRStackItem*) (YYX)))->YYTYPE
6091
6092 /** If *YYSTACKP is expandable, extend it. WARNING: Pointers into the
6093 stack from outside should be considered invalid after this call.
6094 We always expand when there are 1 or fewer items left AFTER an
6095 allocation, so that we can avoid having external pointers exist
6096 across an allocation. */
6097 static void
6098 yyexpandGLRStack (yyGLRStack* yystackp)
6099 {
6100 yyGLRStackItem* yynewItems;
6101 yyGLRStackItem* yyp0, *yyp1;
6102 size_t yynewSize;
6103 size_t yyn;
6104 size_t yysize = yystackp->yynextFree - yystackp->yyitems;
6105 if (YYMAXDEPTH - YYHEADROOM < yysize)
6106 yyMemoryExhausted (yystackp);
6107 yynewSize = 2*yysize;
6108 if (YYMAXDEPTH < yynewSize)
6109 yynewSize = YYMAXDEPTH;
6110 yynewItems = (yyGLRStackItem*) YYMALLOC (yynewSize * sizeof yynewItems[0]);
6111 if (! yynewItems)
6112 yyMemoryExhausted (yystackp);
6113 for (yyp0 = yystackp->yyitems, yyp1 = yynewItems, yyn = yysize;
6114 0 < yyn;
6115 yyn -= 1, yyp0 += 1, yyp1 += 1)
6116 {
6117 *yyp1 = *yyp0;
6118 if (*(yybool *) yyp0)
6119 {
6120 yyGLRState* yys0 = &yyp0->yystate;
6121 yyGLRState* yys1 = &yyp1->yystate;
6122 if (yys0->yypred != YY_NULLPTR)
6123 yys1->yypred =
6124 YYRELOC (yyp0, yyp1, yys0->yypred, yystate);
6125 if (! yys0->yyresolved && yys0->yysemantics.yyfirstVal != YY_NULLPTR)
6126 yys1->yysemantics.yyfirstVal =
6127 YYRELOC (yyp0, yyp1, yys0->yysemantics.yyfirstVal, yyoption);
6128 }
6129 else
6130 {
6131 yySemanticOption* yyv0 = &yyp0->yyoption;
6132 yySemanticOption* yyv1 = &yyp1->yyoption;
6133 if (yyv0->yystate != YY_NULLPTR)
6134 yyv1->yystate = YYRELOC (yyp0, yyp1, yyv0->yystate, yystate);
6135 if (yyv0->yynext != YY_NULLPTR)
6136 yyv1->yynext = YYRELOC (yyp0, yyp1, yyv0->yynext, yyoption);
6137 }
6138 }
6139 if (yystackp->yysplitPoint != YY_NULLPTR)
6140 yystackp->yysplitPoint = YYRELOC (yystackp->yyitems, yynewItems,
6141 yystackp->yysplitPoint, yystate);
6142
6143 for (yyn = 0; yyn < yystackp->yytops.yysize; yyn += 1)
6144 if (yystackp->yytops.yystates[yyn] != YY_NULLPTR)
6145 yystackp->yytops.yystates[yyn] =
6146 YYRELOC (yystackp->yyitems, yynewItems,
6147 yystackp->yytops.yystates[yyn], yystate);
6148 YYFREE (yystackp->yyitems);
6149 yystackp->yyitems = yynewItems;
6150 yystackp->yynextFree = yynewItems + yysize;
6151 yystackp->yyspaceLeft = yynewSize - yysize;
6152 }
6153 #endif
6154
6155 static void
6156 yyfreeGLRStack (yyGLRStack* yystackp)
6157 {
6158 YYFREE (yystackp->yyitems);
6159 yyfreeStateSet (&yystackp->yytops);
6160 }
6161
6162 /** Assuming that YYS is a GLRState somewhere on *YYSTACKP, update the
6163 * splitpoint of *YYSTACKP, if needed, so that it is at least as deep as
6164 * YYS. */
6165 static inline void
6166 yyupdateSplit (yyGLRStack* yystackp, yyGLRState* yys)
6167 {
6168 if (yystackp->yysplitPoint != YY_NULLPTR && yystackp->yysplitPoint > yys)
6169 yystackp->yysplitPoint = yys;
6170 }
6171
6172 /** Invalidate stack #YYK in *YYSTACKP. */
6173 static inline void
6174 yymarkStackDeleted (yyGLRStack* yystackp, size_t yyk)
6175 {
6176 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
6177 yystackp->yylastDeleted = yystackp->yytops.yystates[yyk];
6178 yystackp->yytops.yystates[yyk] = YY_NULLPTR;
6179 }
6180
6181 /** Undelete the last stack in *YYSTACKP that was marked as deleted. Can
6182 only be done once after a deletion, and only when all other stacks have
6183 been deleted. */
6184 static void
6185 yyundeleteLastStack (yyGLRStack* yystackp)
6186 {
6187 if (yystackp->yylastDeleted == YY_NULLPTR || yystackp->yytops.yysize != 0)
6188 return;
6189 yystackp->yytops.yystates[0] = yystackp->yylastDeleted;
6190 yystackp->yytops.yysize = 1;
6191 YYDPRINTF ((stderr, "Restoring last deleted stack as stack #0.\n"));
6192 yystackp->yylastDeleted = YY_NULLPTR;
6193 }
6194
6195 static inline void
6196 yyremoveDeletes (yyGLRStack* yystackp)
6197 {
6198 size_t yyi, yyj;
6199 yyi = yyj = 0;
6200 while (yyj < yystackp->yytops.yysize)
6201 {
6202 if (yystackp->yytops.yystates[yyi] == YY_NULLPTR)
6203 {
6204 if (yyi == yyj)
6205 {
6206 YYDPRINTF ((stderr, "Removing dead stacks.\n"));
6207 }
6208 yystackp->yytops.yysize -= 1;
6209 }
6210 else
6211 {
6212 yystackp->yytops.yystates[yyj] = yystackp->yytops.yystates[yyi];
6213 /* In the current implementation, it's unnecessary to copy
6214 yystackp->yytops.yylookaheadNeeds[yyi] since, after
6215 yyremoveDeletes returns, the parser immediately either enters
6216 deterministic operation or shifts a token. However, it doesn't
6217 hurt, and the code might evolve to need it. */
6218 yystackp->yytops.yylookaheadNeeds[yyj] =
6219 yystackp->yytops.yylookaheadNeeds[yyi];
6220 if (yyj != yyi)
6221 {
6222 YYDPRINTF ((stderr, "Rename stack %lu -> %lu.\n",
6223 (unsigned long int) yyi, (unsigned long int) yyj));
6224 }
6225 yyj += 1;
6226 }
6227 yyi += 1;
6228 }
6229 }
6230
6231 /** Shift to a new state on stack #YYK of *YYSTACKP, corresponding to LR
6232 * state YYLRSTATE, at input position YYPOSN, with (resolved) semantic
6233 * value *YYVALP and source location *YYLOCP. */
6234 static inline void
6235 yyglrShift (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
6236 size_t yyposn,
6237 YYSTYPE* yyvalp)
6238 {
6239 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
6240
6241 yynewState->yylrState = yylrState;
6242 yynewState->yyposn = yyposn;
6243 yynewState->yyresolved = yytrue;
6244 yynewState->yypred = yystackp->yytops.yystates[yyk];
6245 yynewState->yysemantics.yysval = *yyvalp;
6246 yystackp->yytops.yystates[yyk] = yynewState;
6247
6248 YY_RESERVE_GLRSTACK (yystackp);
6249 }
6250
6251 /** Shift stack #YYK of *YYSTACKP, to a new state corresponding to LR
6252 * state YYLRSTATE, at input position YYPOSN, with the (unresolved)
6253 * semantic value of YYRHS under the action for YYRULE. */
6254 static inline void
6255 yyglrShiftDefer (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
6256 size_t yyposn, yyGLRState* yyrhs, yyRuleNum yyrule)
6257 {
6258 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
6259 YYASSERT (yynewState->yyisState);
6260
6261 yynewState->yylrState = yylrState;
6262 yynewState->yyposn = yyposn;
6263 yynewState->yyresolved = yyfalse;
6264 yynewState->yypred = yystackp->yytops.yystates[yyk];
6265 yynewState->yysemantics.yyfirstVal = YY_NULLPTR;
6266 yystackp->yytops.yystates[yyk] = yynewState;
6267
6268 /* Invokes YY_RESERVE_GLRSTACK. */
6269 yyaddDeferredAction (yystackp, yyk, yynewState, yyrhs, yyrule);
6270 }
6271
6272 #if !YYDEBUG
6273 # define YY_REDUCE_PRINT(Args)
6274 #else
6275 # define YY_REDUCE_PRINT(Args) \
6276 do { \
6277 if (yydebug) \
6278 yy_reduce_print Args; \
6279 } while (0)
6280
6281 /*----------------------------------------------------------------------.
6282 | Report that stack #YYK of *YYSTACKP is going to be reduced by YYRULE. |
6283 `----------------------------------------------------------------------*/
6284
6285 static inline void
6286 yy_reduce_print (int yynormal, yyGLRStackItem* yyvsp, size_t yyk,
6287 yyRuleNum yyrule, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6288 {
6289 int yynrhs = yyrhsLength (yyrule);
6290 int yyi;
6291 YYFPRINTF (stderr, "Reducing stack %lu by rule %d (line %lu):\n",
6292 (unsigned long int) yyk, yyrule - 1,
6293 (unsigned long int) yyrline[yyrule]);
6294 if (! yynormal)
6295 yyfillin (yyvsp, 1, -yynrhs);
6296 /* The symbols being reduced. */
6297 for (yyi = 0; yyi < yynrhs; yyi++)
6298 {
6299 YYFPRINTF (stderr, " $%d = ", yyi + 1);
6300 yy_symbol_print (stderr,
6301 yystos[yyvsp[yyi - yynrhs + 1].yystate.yylrState],
6302 &yyvsp[yyi - yynrhs + 1].yystate.yysemantics.yysval
6303 , P, tokens, index);
6304 if (!yyvsp[yyi - yynrhs + 1].yystate.yyresolved)
6305 YYFPRINTF (stderr, " (unresolved)");
6306 YYFPRINTF (stderr, "\n");
6307 }
6308 }
6309 #endif
6310
6311 /** Pop the symbols consumed by reduction #YYRULE from the top of stack
6312 * #YYK of *YYSTACKP, and perform the appropriate semantic action on their
6313 * semantic values. Assumes that all ambiguities in semantic values
6314 * have been previously resolved. Set *YYVALP to the resulting value,
6315 * and *YYLOCP to the computed location (if any). Return value is as
6316 * for userAction. */
6317 static inline YYRESULTTAG
6318 yydoAction (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
6319 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6320 {
6321 int yynrhs = yyrhsLength (yyrule);
6322
6323 if (yystackp->yysplitPoint == YY_NULLPTR)
6324 {
6325 /* Standard special case: single stack. */
6326 yyGLRStackItem* yyrhs = (yyGLRStackItem*) yystackp->yytops.yystates[yyk];
6327 YYASSERT (yyk == 0);
6328 yystackp->yynextFree -= yynrhs;
6329 yystackp->yyspaceLeft += yynrhs;
6330 yystackp->yytops.yystates[0] = & yystackp->yynextFree[-1].yystate;
6331 YY_REDUCE_PRINT ((1, yyrhs, yyk, yyrule, P, tokens, index));
6332 return yyuserAction (yyrule, yynrhs, yyrhs, yystackp,
6333 yyvalp, P, tokens, index);
6334 }
6335 else
6336 {
6337 int yyi;
6338 yyGLRState* yys;
6339 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
6340 yys = yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred
6341 = yystackp->yytops.yystates[yyk];
6342 for (yyi = 0; yyi < yynrhs; yyi += 1)
6343 {
6344 yys = yys->yypred;
6345 YYASSERT (yys);
6346 }
6347 yyupdateSplit (yystackp, yys);
6348 yystackp->yytops.yystates[yyk] = yys;
6349 YY_REDUCE_PRINT ((0, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1, yyk, yyrule, P, tokens, index));
6350 return yyuserAction (yyrule, yynrhs, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
6351 yystackp, yyvalp, P, tokens, index);
6352 }
6353 }
6354
6355 /** Pop items off stack #YYK of *YYSTACKP according to grammar rule YYRULE,
6356 * and push back on the resulting nonterminal symbol. Perform the
6357 * semantic action associated with YYRULE and store its value with the
6358 * newly pushed state, if YYFORCEEVAL or if *YYSTACKP is currently
6359 * unambiguous. Otherwise, store the deferred semantic action with
6360 * the new state. If the new state would have an identical input
6361 * position, LR state, and predecessor to an existing state on the stack,
6362 * it is identified with that existing state, eliminating stack #YYK from
6363 * *YYSTACKP. In this case, the semantic value is
6364 * added to the options for the existing state's semantic value.
6365 */
6366 static inline YYRESULTTAG
6367 yyglrReduce (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
6368 yybool yyforceEval, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6369 {
6370 size_t yyposn = yystackp->yytops.yystates[yyk]->yyposn;
6371
6372 if (yyforceEval || yystackp->yysplitPoint == YY_NULLPTR)
6373 {
6374 YYSTYPE yysval;
6375
6376 YYRESULTTAG yyflag = yydoAction (yystackp, yyk, yyrule, &yysval, P, tokens, index);
6377 if (yyflag == yyerr && yystackp->yysplitPoint != YY_NULLPTR)
6378 {
6379 YYDPRINTF ((stderr, "Parse on stack %lu rejected by rule #%d.\n",
6380 (unsigned long int) yyk, yyrule - 1));
6381 }
6382 if (yyflag != yyok)
6383 return yyflag;
6384 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyrule], &yysval, &yyloc);
6385 yyglrShift (yystackp, yyk,
6386 yyLRgotoState (yystackp->yytops.yystates[yyk]->yylrState,
6387 yylhsNonterm (yyrule)),
6388 yyposn, &yysval);
6389 }
6390 else
6391 {
6392 size_t yyi;
6393 int yyn;
6394 yyGLRState* yys, *yys0 = yystackp->yytops.yystates[yyk];
6395 yyStateNum yynewLRState;
6396
6397 for (yys = yystackp->yytops.yystates[yyk], yyn = yyrhsLength (yyrule);
6398 0 < yyn; yyn -= 1)
6399 {
6400 yys = yys->yypred;
6401 YYASSERT (yys);
6402 }
6403 yyupdateSplit (yystackp, yys);
6404 yynewLRState = yyLRgotoState (yys->yylrState, yylhsNonterm (yyrule));
6405 YYDPRINTF ((stderr,
6406 "Reduced stack %lu by rule #%d; action deferred. "
6407 "Now in state %d.\n",
6408 (unsigned long int) yyk, yyrule - 1, yynewLRState));
6409 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
6410 if (yyi != yyk && yystackp->yytops.yystates[yyi] != YY_NULLPTR)
6411 {
6412 yyGLRState *yysplit = yystackp->yysplitPoint;
6413 yyGLRState *yyp = yystackp->yytops.yystates[yyi];
6414 while (yyp != yys && yyp != yysplit && yyp->yyposn >= yyposn)
6415 {
6416 if (yyp->yylrState == yynewLRState && yyp->yypred == yys)
6417 {
6418 yyaddDeferredAction (yystackp, yyk, yyp, yys0, yyrule);
6419 yymarkStackDeleted (yystackp, yyk);
6420 YYDPRINTF ((stderr, "Merging stack %lu into stack %lu.\n",
6421 (unsigned long int) yyk,
6422 (unsigned long int) yyi));
6423 return yyok;
6424 }
6425 yyp = yyp->yypred;
6426 }
6427 }
6428 yystackp->yytops.yystates[yyk] = yys;
6429 yyglrShiftDefer (yystackp, yyk, yynewLRState, yyposn, yys0, yyrule);
6430 }
6431 return yyok;
6432 }
6433
6434 static size_t
6435 yysplitStack (yyGLRStack* yystackp, size_t yyk)
6436 {
6437 if (yystackp->yysplitPoint == YY_NULLPTR)
6438 {
6439 YYASSERT (yyk == 0);
6440 yystackp->yysplitPoint = yystackp->yytops.yystates[yyk];
6441 }
6442 if (yystackp->yytops.yysize >= yystackp->yytops.yycapacity)
6443 {
6444 yyGLRState** yynewStates;
6445 yybool* yynewLookaheadNeeds;
6446
6447 yynewStates = YY_NULLPTR;
6448
6449 if (yystackp->yytops.yycapacity
6450 > (YYSIZEMAX / (2 * sizeof yynewStates[0])))
6451 yyMemoryExhausted (yystackp);
6452 yystackp->yytops.yycapacity *= 2;
6453
6454 yynewStates =
6455 (yyGLRState**) YYREALLOC (yystackp->yytops.yystates,
6456 (yystackp->yytops.yycapacity
6457 * sizeof yynewStates[0]));
6458 if (yynewStates == YY_NULLPTR)
6459 yyMemoryExhausted (yystackp);
6460 yystackp->yytops.yystates = yynewStates;
6461
6462 yynewLookaheadNeeds =
6463 (yybool*) YYREALLOC (yystackp->yytops.yylookaheadNeeds,
6464 (yystackp->yytops.yycapacity
6465 * sizeof yynewLookaheadNeeds[0]));
6466 if (yynewLookaheadNeeds == YY_NULLPTR)
6467 yyMemoryExhausted (yystackp);
6468 yystackp->yytops.yylookaheadNeeds = yynewLookaheadNeeds;
6469 }
6470 yystackp->yytops.yystates[yystackp->yytops.yysize]
6471 = yystackp->yytops.yystates[yyk];
6472 yystackp->yytops.yylookaheadNeeds[yystackp->yytops.yysize]
6473 = yystackp->yytops.yylookaheadNeeds[yyk];
6474 yystackp->yytops.yysize += 1;
6475 return yystackp->yytops.yysize-1;
6476 }
6477
6478 /** True iff YYY0 and YYY1 represent identical options at the top level.
6479 * That is, they represent the same rule applied to RHS symbols
6480 * that produce the same terminal symbols. */
6481 static yybool
6482 yyidenticalOptions (yySemanticOption* yyy0, yySemanticOption* yyy1)
6483 {
6484 if (yyy0->yyrule == yyy1->yyrule)
6485 {
6486 yyGLRState *yys0, *yys1;
6487 int yyn;
6488 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
6489 yyn = yyrhsLength (yyy0->yyrule);
6490 yyn > 0;
6491 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
6492 if (yys0->yyposn != yys1->yyposn)
6493 return yyfalse;
6494 return yytrue;
6495 }
6496 else
6497 return yyfalse;
6498 }
6499
6500 /** Assuming identicalOptions (YYY0,YYY1), destructively merge the
6501 * alternative semantic values for the RHS-symbols of YYY1 and YYY0. */
6502 static void
6503 yymergeOptionSets (yySemanticOption* yyy0, yySemanticOption* yyy1)
6504 {
6505 yyGLRState *yys0, *yys1;
6506 int yyn;
6507 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
6508 yyn = yyrhsLength (yyy0->yyrule);
6509 yyn > 0;
6510 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
6511 {
6512 if (yys0 == yys1)
6513 break;
6514 else if (yys0->yyresolved)
6515 {
6516 yys1->yyresolved = yytrue;
6517 yys1->yysemantics.yysval = yys0->yysemantics.yysval;
6518 }
6519 else if (yys1->yyresolved)
6520 {
6521 yys0->yyresolved = yytrue;
6522 yys0->yysemantics.yysval = yys1->yysemantics.yysval;
6523 }
6524 else
6525 {
6526 yySemanticOption** yyz0p = &yys0->yysemantics.yyfirstVal;
6527 yySemanticOption* yyz1 = yys1->yysemantics.yyfirstVal;
6528 while (yytrue)
6529 {
6530 if (yyz1 == *yyz0p || yyz1 == YY_NULLPTR)
6531 break;
6532 else if (*yyz0p == YY_NULLPTR)
6533 {
6534 *yyz0p = yyz1;
6535 break;
6536 }
6537 else if (*yyz0p < yyz1)
6538 {
6539 yySemanticOption* yyz = *yyz0p;
6540 *yyz0p = yyz1;
6541 yyz1 = yyz1->yynext;
6542 (*yyz0p)->yynext = yyz;
6543 }
6544 yyz0p = &(*yyz0p)->yynext;
6545 }
6546 yys1->yysemantics.yyfirstVal = yys0->yysemantics.yyfirstVal;
6547 }
6548 }
6549 }
6550
6551 /** Y0 and Y1 represent two possible actions to take in a given
6552 * parsing state; return 0 if no combination is possible,
6553 * 1 if user-mergeable, 2 if Y0 is preferred, 3 if Y1 is preferred. */
6554 static int
6555 yypreference (yySemanticOption* y0, yySemanticOption* y1)
6556 {
6557 yyRuleNum r0 = y0->yyrule, r1 = y1->yyrule;
6558 int p0 = yydprec[r0], p1 = yydprec[r1];
6559
6560 if (p0 == p1)
6561 {
6562 if (yymerger[r0] == 0 || yymerger[r0] != yymerger[r1])
6563 return 0;
6564 else
6565 return 1;
6566 }
6567 if (p0 == 0 || p1 == 0)
6568 return 0;
6569 if (p0 < p1)
6570 return 3;
6571 if (p1 < p0)
6572 return 2;
6573 return 0;
6574 }
6575
6576 static YYRESULTTAG yyresolveValue (yyGLRState* yys,
6577 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index);
6578
6579
6580 /** Resolve the previous YYN states starting at and including state YYS
6581 * on *YYSTACKP. If result != yyok, some states may have been left
6582 * unresolved possibly with empty semantic option chains. Regardless
6583 * of whether result = yyok, each state has been left with consistent
6584 * data so that yydestroyGLRState can be invoked if necessary. */
6585 static YYRESULTTAG
6586 yyresolveStates (yyGLRState* yys, int yyn,
6587 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6588 {
6589 if (0 < yyn)
6590 {
6591 YYASSERT (yys->yypred);
6592 YYCHK (yyresolveStates (yys->yypred, yyn-1, yystackp, P, tokens, index));
6593 if (! yys->yyresolved)
6594 YYCHK (yyresolveValue (yys, yystackp, P, tokens, index));
6595 }
6596 return yyok;
6597 }
6598
6599 /** Resolve the states for the RHS of YYOPT on *YYSTACKP, perform its
6600 * user action, and return the semantic value and location in *YYVALP
6601 * and *YYLOCP. Regardless of whether result = yyok, all RHS states
6602 * have been destroyed (assuming the user action destroys all RHS
6603 * semantic values if invoked). */
6604 static YYRESULTTAG
6605 yyresolveAction (yySemanticOption* yyopt, yyGLRStack* yystackp,
6606 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6607 {
6608 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
6609 int yynrhs = yyrhsLength (yyopt->yyrule);
6610 YYRESULTTAG yyflag =
6611 yyresolveStates (yyopt->yystate, yynrhs, yystackp, P, tokens, index);
6612 if (yyflag != yyok)
6613 {
6614 yyGLRState *yys;
6615 for (yys = yyopt->yystate; yynrhs > 0; yys = yys->yypred, yynrhs -= 1)
6616 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
6617 return yyflag;
6618 }
6619
6620 yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred = yyopt->yystate;
6621 {
6622 int yychar_current = yychar;
6623 YYSTYPE yylval_current = yylval;
6624 yychar = yyopt->yyrawchar;
6625 yylval = yyopt->yyval;
6626 yyflag = yyuserAction (yyopt->yyrule, yynrhs,
6627 yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
6628 yystackp, yyvalp, P, tokens, index);
6629 yychar = yychar_current;
6630 yylval = yylval_current;
6631 }
6632 return yyflag;
6633 }
6634
6635 #if YYDEBUG
6636 static void
6637 yyreportTree (yySemanticOption* yyx, int yyindent)
6638 {
6639 int yynrhs = yyrhsLength (yyx->yyrule);
6640 int yyi;
6641 yyGLRState* yys;
6642 yyGLRState* yystates[1 + YYMAXRHS];
6643 yyGLRState yyleftmost_state;
6644
6645 for (yyi = yynrhs, yys = yyx->yystate; 0 < yyi; yyi -= 1, yys = yys->yypred)
6646 yystates[yyi] = yys;
6647 if (yys == YY_NULLPTR)
6648 {
6649 yyleftmost_state.yyposn = 0;
6650 yystates[0] = &yyleftmost_state;
6651 }
6652 else
6653 yystates[0] = yys;
6654
6655 if (yyx->yystate->yyposn < yys->yyposn + 1)
6656 YYFPRINTF (stderr, "%*s%s -> <Rule %d, empty>\n",
6657 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
6658 yyx->yyrule - 1);
6659 else
6660 YYFPRINTF (stderr, "%*s%s -> <Rule %d, tokens %lu .. %lu>\n",
6661 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
6662 yyx->yyrule - 1, (unsigned long int) (yys->yyposn + 1),
6663 (unsigned long int) yyx->yystate->yyposn);
6664 for (yyi = 1; yyi <= yynrhs; yyi += 1)
6665 {
6666 if (yystates[yyi]->yyresolved)
6667 {
6668 if (yystates[yyi-1]->yyposn+1 > yystates[yyi]->yyposn)
6669 YYFPRINTF (stderr, "%*s%s <empty>\n", yyindent+2, "",
6670 yytokenName (yystos[yystates[yyi]->yylrState]));
6671 else
6672 YYFPRINTF (stderr, "%*s%s <tokens %lu .. %lu>\n", yyindent+2, "",
6673 yytokenName (yystos[yystates[yyi]->yylrState]),
6674 (unsigned long int) (yystates[yyi-1]->yyposn + 1),
6675 (unsigned long int) yystates[yyi]->yyposn);
6676 }
6677 else
6678 yyreportTree (yystates[yyi]->yysemantics.yyfirstVal, yyindent+2);
6679 }
6680 }
6681 #endif
6682
6683 static YYRESULTTAG
6684 yyreportAmbiguity (yySemanticOption* yyx0,
6685 yySemanticOption* yyx1, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6686 {
6687 YYUSE (yyx0);
6688 YYUSE (yyx1);
6689
6690 #if YYDEBUG
6691 YYFPRINTF (stderr, "Ambiguity detected.\n");
6692 YYFPRINTF (stderr, "Option 1,\n");
6693 yyreportTree (yyx0, 2);
6694 YYFPRINTF (stderr, "\nOption 2,\n");
6695 yyreportTree (yyx1, 2);
6696 YYFPRINTF (stderr, "\n");
6697 #endif
6698
6699 yyerror (P, tokens, index, YY_("syntax is ambiguous"));
6700 return yyabort;
6701 }
6702
6703 /** Resolve the ambiguity represented in state YYS in *YYSTACKP,
6704 * perform the indicated actions, and set the semantic value of YYS.
6705 * If result != yyok, the chain of semantic options in YYS has been
6706 * cleared instead or it has been left unmodified except that
6707 * redundant options may have been removed. Regardless of whether
6708 * result = yyok, YYS has been left with consistent data so that
6709 * yydestroyGLRState can be invoked if necessary. */
6710 static YYRESULTTAG
6711 yyresolveValue (yyGLRState* yys, yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6712 {
6713 yySemanticOption* yyoptionList = yys->yysemantics.yyfirstVal;
6714 yySemanticOption* yybest = yyoptionList;
6715 yySemanticOption** yypp;
6716 yybool yymerge = yyfalse;
6717 YYSTYPE yysval;
6718 YYRESULTTAG yyflag;
6719
6720 for (yypp = &yyoptionList->yynext; *yypp != YY_NULLPTR; )
6721 {
6722 yySemanticOption* yyp = *yypp;
6723
6724 if (yyidenticalOptions (yybest, yyp))
6725 {
6726 yymergeOptionSets (yybest, yyp);
6727 *yypp = yyp->yynext;
6728 }
6729 else
6730 {
6731 switch (yypreference (yybest, yyp))
6732 {
6733 case 0:
6734 return yyreportAmbiguity (yybest, yyp, P, tokens, index);
6735 break;
6736 case 1:
6737 yymerge = yytrue;
6738 break;
6739 case 2:
6740 break;
6741 case 3:
6742 yybest = yyp;
6743 yymerge = yyfalse;
6744 break;
6745 default:
6746 /* This cannot happen so it is not worth a YYASSERT (yyfalse),
6747 but some compilers complain if the default case is
6748 omitted. */
6749 break;
6750 }
6751 yypp = &yyp->yynext;
6752 }
6753 }
6754
6755 if (yymerge)
6756 {
6757 yySemanticOption* yyp;
6758 int yyprec = yydprec[yybest->yyrule];
6759 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
6760 if (yyflag == yyok)
6761 for (yyp = yybest->yynext; yyp != YY_NULLPTR; yyp = yyp->yynext)
6762 {
6763 if (yyprec == yydprec[yyp->yyrule])
6764 {
6765 YYSTYPE yysval_other;
6766 yyflag = yyresolveAction (yyp, yystackp, &yysval_other, P, tokens, index);
6767 if (yyflag != yyok)
6768 {
6769 yydestruct ("Cleanup: discarding incompletely merged value for",
6770 yystos[yys->yylrState],
6771 &yysval, P, tokens, index);
6772 break;
6773 }
6774 yyuserMerge (yymerger[yyp->yyrule], &yysval, &yysval_other);
6775 }
6776 }
6777 }
6778 else
6779 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
6780
6781 if (yyflag == yyok)
6782 {
6783 yys->yyresolved = yytrue;
6784 yys->yysemantics.yysval = yysval;
6785 }
6786 else
6787 yys->yysemantics.yyfirstVal = YY_NULLPTR;
6788 return yyflag;
6789 }
6790
6791 static YYRESULTTAG
6792 yyresolveStack (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6793 {
6794 if (yystackp->yysplitPoint != YY_NULLPTR)
6795 {
6796 yyGLRState* yys;
6797 int yyn;
6798
6799 for (yyn = 0, yys = yystackp->yytops.yystates[0];
6800 yys != yystackp->yysplitPoint;
6801 yys = yys->yypred, yyn += 1)
6802 continue;
6803 YYCHK (yyresolveStates (yystackp->yytops.yystates[0], yyn, yystackp
6804 , P, tokens, index));
6805 }
6806 return yyok;
6807 }
6808
6809 static void
6810 yycompressStack (yyGLRStack* yystackp)
6811 {
6812 yyGLRState* yyp, *yyq, *yyr;
6813
6814 if (yystackp->yytops.yysize != 1 || yystackp->yysplitPoint == YY_NULLPTR)
6815 return;
6816
6817 for (yyp = yystackp->yytops.yystates[0], yyq = yyp->yypred, yyr = YY_NULLPTR;
6818 yyp != yystackp->yysplitPoint;
6819 yyr = yyp, yyp = yyq, yyq = yyp->yypred)
6820 yyp->yypred = yyr;
6821
6822 yystackp->yyspaceLeft += yystackp->yynextFree - yystackp->yyitems;
6823 yystackp->yynextFree = ((yyGLRStackItem*) yystackp->yysplitPoint) + 1;
6824 yystackp->yyspaceLeft -= yystackp->yynextFree - yystackp->yyitems;
6825 yystackp->yysplitPoint = YY_NULLPTR;
6826 yystackp->yylastDeleted = YY_NULLPTR;
6827
6828 while (yyr != YY_NULLPTR)
6829 {
6830 yystackp->yynextFree->yystate = *yyr;
6831 yyr = yyr->yypred;
6832 yystackp->yynextFree->yystate.yypred = &yystackp->yynextFree[-1].yystate;
6833 yystackp->yytops.yystates[0] = &yystackp->yynextFree->yystate;
6834 yystackp->yynextFree += 1;
6835 yystackp->yyspaceLeft -= 1;
6836 }
6837 }
6838
6839 static YYRESULTTAG
6840 yyprocessOneStack (yyGLRStack* yystackp, size_t yyk,
6841 size_t yyposn, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6842 {
6843 while (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
6844 {
6845 yyStateNum yystate = yystackp->yytops.yystates[yyk]->yylrState;
6846 YYDPRINTF ((stderr, "Stack %lu Entering state %d\n",
6847 (unsigned long int) yyk, yystate));
6848
6849 YYASSERT (yystate != YYFINAL);
6850
6851 if (yyisDefaultedState (yystate))
6852 {
6853 YYRESULTTAG yyflag;
6854 yyRuleNum yyrule = yydefaultAction (yystate);
6855 if (yyrule == 0)
6856 {
6857 YYDPRINTF ((stderr, "Stack %lu dies.\n",
6858 (unsigned long int) yyk));
6859 yymarkStackDeleted (yystackp, yyk);
6860 return yyok;
6861 }
6862 yyflag = yyglrReduce (yystackp, yyk, yyrule, yyimmediate[yyrule], P, tokens, index);
6863 if (yyflag == yyerr)
6864 {
6865 YYDPRINTF ((stderr,
6866 "Stack %lu dies "
6867 "(predicate failure or explicit user error).\n",
6868 (unsigned long int) yyk));
6869 yymarkStackDeleted (yystackp, yyk);
6870 return yyok;
6871 }
6872 if (yyflag != yyok)
6873 return yyflag;
6874 }
6875 else
6876 {
6877 yySymbol yytoken;
6878 int yyaction;
6879 const short int* yyconflicts;
6880
6881 yystackp->yytops.yylookaheadNeeds[yyk] = yytrue;
6882 if (yychar == YYEMPTY)
6883 {
6884 YYDPRINTF ((stderr, "Reading a token: "));
6885 yychar = yylex (&yylval, P, tokens, index);
6886 }
6887
6888 if (yychar <= YYEOF)
6889 {
6890 yychar = yytoken = YYEOF;
6891 YYDPRINTF ((stderr, "Now at end of input.\n"));
6892 }
6893 else
6894 {
6895 yytoken = YYTRANSLATE (yychar);
6896 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
6897 }
6898
6899 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
6900
6901 while (*yyconflicts != 0)
6902 {
6903 YYRESULTTAG yyflag;
6904 size_t yynewStack = yysplitStack (yystackp, yyk);
6905 YYDPRINTF ((stderr, "Splitting off stack %lu from %lu.\n",
6906 (unsigned long int) yynewStack,
6907 (unsigned long int) yyk));
6908 yyflag = yyglrReduce (yystackp, yynewStack,
6909 *yyconflicts,
6910 yyimmediate[*yyconflicts], P, tokens, index);
6911 if (yyflag == yyok)
6912 YYCHK (yyprocessOneStack (yystackp, yynewStack,
6913 yyposn, P, tokens, index));
6914 else if (yyflag == yyerr)
6915 {
6916 YYDPRINTF ((stderr, "Stack %lu dies.\n",
6917 (unsigned long int) yynewStack));
6918 yymarkStackDeleted (yystackp, yynewStack);
6919 }
6920 else
6921 return yyflag;
6922 yyconflicts += 1;
6923 }
6924
6925 if (yyisShiftAction (yyaction))
6926 break;
6927 else if (yyisErrorAction (yyaction))
6928 {
6929 YYDPRINTF ((stderr, "Stack %lu dies.\n",
6930 (unsigned long int) yyk));
6931 yymarkStackDeleted (yystackp, yyk);
6932 break;
6933 }
6934 else
6935 {
6936 YYRESULTTAG yyflag = yyglrReduce (yystackp, yyk, -yyaction,
6937 yyimmediate[-yyaction], P, tokens, index);
6938 if (yyflag == yyerr)
6939 {
6940 YYDPRINTF ((stderr,
6941 "Stack %lu dies "
6942 "(predicate failure or explicit user error).\n",
6943 (unsigned long int) yyk));
6944 yymarkStackDeleted (yystackp, yyk);
6945 break;
6946 }
6947 else if (yyflag != yyok)
6948 return yyflag;
6949 }
6950 }
6951 }
6952 return yyok;
6953 }
6954
6955 static void
6956 yyreportSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6957 {
6958 if (yystackp->yyerrState != 0)
6959 return;
6960 #if ! YYERROR_VERBOSE
6961 yyerror (P, tokens, index, YY_("syntax error"));
6962 #else
6963 {
6964 yySymbol yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
6965 size_t yysize0 = yytnamerr (YY_NULLPTR, yytokenName (yytoken));
6966 size_t yysize = yysize0;
6967 yybool yysize_overflow = yyfalse;
6968 char* yymsg = YY_NULLPTR;
6969 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
6970 /* Internationalized format string. */
6971 const char *yyformat = YY_NULLPTR;
6972 /* Arguments of yyformat. */
6973 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
6974 /* Number of reported tokens (one for the "unexpected", one per
6975 "expected"). */
6976 int yycount = 0;
6977
6978 /* There are many possibilities here to consider:
6979 - If this state is a consistent state with a default action, then
6980 the only way this function was invoked is if the default action
6981 is an error action. In that case, don't check for expected
6982 tokens because there are none.
6983 - The only way there can be no lookahead present (in yychar) is if
6984 this state is a consistent state with a default action. Thus,
6985 detecting the absence of a lookahead is sufficient to determine
6986 that there is no unexpected or expected token to report. In that
6987 case, just report a simple "syntax error".
6988 - Don't assume there isn't a lookahead just because this state is a
6989 consistent state with a default action. There might have been a
6990 previous inconsistent state, consistent state with a non-default
6991 action, or user semantic action that manipulated yychar.
6992 - Of course, the expected token list depends on states to have
6993 correct lookahead information, and it depends on the parser not
6994 to perform extra reductions after fetching a lookahead from the
6995 scanner and before detecting a syntax error. Thus, state merging
6996 (from LALR or IELR) and default reductions corrupt the expected
6997 token list. However, the list is correct for canonical LR with
6998 one exception: it will still contain any token that will not be
6999 accepted due to an error action in a later state.
7000 */
7001 if (yytoken != YYEMPTY)
7002 {
7003 int yyn = yypact[yystackp->yytops.yystates[0]->yylrState];
7004 yyarg[yycount++] = yytokenName (yytoken);
7005 if (!yypact_value_is_default (yyn))
7006 {
7007 /* Start YYX at -YYN if negative to avoid negative indexes in
7008 YYCHECK. In other words, skip the first -YYN actions for this
7009 state because they are default actions. */
7010 int yyxbegin = yyn < 0 ? -yyn : 0;
7011 /* Stay within bounds of both yycheck and yytname. */
7012 int yychecklim = YYLAST - yyn + 1;
7013 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
7014 int yyx;
7015 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
7016 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
7017 && !yytable_value_is_error (yytable[yyx + yyn]))
7018 {
7019 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
7020 {
7021 yycount = 1;
7022 yysize = yysize0;
7023 break;
7024 }
7025 yyarg[yycount++] = yytokenName (yyx);
7026 {
7027 size_t yysz = yysize + yytnamerr (YY_NULLPTR, yytokenName (yyx));
7028 yysize_overflow |= yysz < yysize;
7029 yysize = yysz;
7030 }
7031 }
7032 }
7033 }
7034
7035 switch (yycount)
7036 {
7037 #define YYCASE_(N, S) \
7038 case N: \
7039 yyformat = S; \
7040 break
7041 YYCASE_(0, YY_("syntax error"));
7042 YYCASE_(1, YY_("syntax error, unexpected %s"));
7043 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
7044 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
7045 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
7046 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
7047 #undef YYCASE_
7048 }
7049
7050 {
7051 size_t yysz = yysize + strlen (yyformat);
7052 yysize_overflow |= yysz < yysize;
7053 yysize = yysz;
7054 }
7055
7056 if (!yysize_overflow)
7057 yymsg = (char *) YYMALLOC (yysize);
7058
7059 if (yymsg)
7060 {
7061 char *yyp = yymsg;
7062 int yyi = 0;
7063 while ((*yyp = *yyformat))
7064 {
7065 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
7066 {
7067 yyp += yytnamerr (yyp, yyarg[yyi++]);
7068 yyformat += 2;
7069 }
7070 else
7071 {
7072 yyp++;
7073 yyformat++;
7074 }
7075 }
7076 yyerror (P, tokens, index, yymsg);
7077 YYFREE (yymsg);
7078 }
7079 else
7080 {
7081 yyerror (P, tokens, index, YY_("syntax error"));
7082 yyMemoryExhausted (yystackp);
7083 }
7084 }
7085 #endif /* YYERROR_VERBOSE */
7086 yynerrs += 1;
7087 }
7088
7089 /* Recover from a syntax error on *YYSTACKP, assuming that *YYSTACKP->YYTOKENP,
7090 yylval, and yylloc are the syntactic category, semantic value, and location
7091 of the lookahead. */
7092 static void
7093 yyrecoverSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7094 {
7095 size_t yyk;
7096 int yyj;
7097
7098 if (yystackp->yyerrState == 3)
7099 /* We just shifted the error token and (perhaps) took some
7100 reductions. Skip tokens until we can proceed. */
7101 while (yytrue)
7102 {
7103 yySymbol yytoken;
7104 if (yychar == YYEOF)
7105 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
7106 if (yychar != YYEMPTY)
7107 {
7108 yytoken = YYTRANSLATE (yychar);
7109 yydestruct ("Error: discarding",
7110 yytoken, &yylval, P, tokens, index);
7111 }
7112 YYDPRINTF ((stderr, "Reading a token: "));
7113 yychar = yylex (&yylval, P, tokens, index);
7114 if (yychar <= YYEOF)
7115 {
7116 yychar = yytoken = YYEOF;
7117 YYDPRINTF ((stderr, "Now at end of input.\n"));
7118 }
7119 else
7120 {
7121 yytoken = YYTRANSLATE (yychar);
7122 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
7123 }
7124 yyj = yypact[yystackp->yytops.yystates[0]->yylrState];
7125 if (yypact_value_is_default (yyj))
7126 return;
7127 yyj += yytoken;
7128 if (yyj < 0 || YYLAST < yyj || yycheck[yyj] != yytoken)
7129 {
7130 if (yydefact[yystackp->yytops.yystates[0]->yylrState] != 0)
7131 return;
7132 }
7133 else if (! yytable_value_is_error (yytable[yyj]))
7134 return;
7135 }
7136
7137 /* Reduce to one stack. */
7138 for (yyk = 0; yyk < yystackp->yytops.yysize; yyk += 1)
7139 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
7140 break;
7141 if (yyk >= yystackp->yytops.yysize)
7142 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
7143 for (yyk += 1; yyk < yystackp->yytops.yysize; yyk += 1)
7144 yymarkStackDeleted (yystackp, yyk);
7145 yyremoveDeletes (yystackp);
7146 yycompressStack (yystackp);
7147
7148 /* Now pop stack until we find a state that shifts the error token. */
7149 yystackp->yyerrState = 3;
7150 while (yystackp->yytops.yystates[0] != YY_NULLPTR)
7151 {
7152 yyGLRState *yys = yystackp->yytops.yystates[0];
7153 yyj = yypact[yys->yylrState];
7154 if (! yypact_value_is_default (yyj))
7155 {
7156 yyj += YYTERROR;
7157 if (0 <= yyj && yyj <= YYLAST && yycheck[yyj] == YYTERROR
7158 && yyisShiftAction (yytable[yyj]))
7159 {
7160 /* Shift the error token. */
7161 YY_SYMBOL_PRINT ("Shifting", yystos[yytable[yyj]],
7162 &yylval, &yyerrloc);
7163 yyglrShift (yystackp, 0, yytable[yyj],
7164 yys->yyposn, &yylval);
7165 yys = yystackp->yytops.yystates[0];
7166 break;
7167 }
7168 }
7169 if (yys->yypred != YY_NULLPTR)
7170 yydestroyGLRState ("Error: popping", yys, P, tokens, index);
7171 yystackp->yytops.yystates[0] = yys->yypred;
7172 yystackp->yynextFree -= 1;
7173 yystackp->yyspaceLeft += 1;
7174 }
7175 if (yystackp->yytops.yystates[0] == YY_NULLPTR)
7176 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
7177 }
7178
7179 #define YYCHK1(YYE) \
7180 do { \
7181 switch (YYE) { \
7182 case yyok: \
7183 break; \
7184 case yyabort: \
7185 goto yyabortlab; \
7186 case yyaccept: \
7187 goto yyacceptlab; \
7188 case yyerr: \
7189 goto yyuser_error; \
7190 default: \
7191 goto yybuglab; \
7192 } \
7193 } while (0)
7194
7195 /*----------.
7196 | yyparse. |
7197 `----------*/
7198
7199 int
7200 yyparse (struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7201 {
7202 int yyresult;
7203 yyGLRStack yystack;
7204 yyGLRStack* const yystackp = &yystack;
7205 size_t yyposn;
7206
7207 YYDPRINTF ((stderr, "Starting parse\n"));
7208
7209 yychar = YYEMPTY;
7210 yylval = yyval_default;
7211
7212 /* User initialization code. */
7213 #line 111 "src/parser_proc_grammar.y" /* glr.c:2270 */
7214 {
7215 }
7216
7217 #line 7218 "src/parser_proc.c" /* glr.c:2270 */
7218
7219 if (! yyinitGLRStack (yystackp, YYINITDEPTH))
7220 goto yyexhaustedlab;
7221 switch (YYSETJMP (yystack.yyexception_buffer))
7222 {
7223 case 0: break;
7224 case 1: goto yyabortlab;
7225 case 2: goto yyexhaustedlab;
7226 default: goto yybuglab;
7227 }
7228 yyglrShift (&yystack, 0, 0, 0, &yylval);
7229 yyposn = 0;
7230
7231 while (yytrue)
7232 {
7233 /* For efficiency, we have two loops, the first of which is
7234 specialized to deterministic operation (single stack, no
7235 potential ambiguity). */
7236 /* Standard mode */
7237 while (yytrue)
7238 {
7239 yyRuleNum yyrule;
7240 int yyaction;
7241 const short int* yyconflicts;
7242
7243 yyStateNum yystate = yystack.yytops.yystates[0]->yylrState;
7244 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
7245 if (yystate == YYFINAL)
7246 goto yyacceptlab;
7247 if (yyisDefaultedState (yystate))
7248 {
7249 yyrule = yydefaultAction (yystate);
7250 if (yyrule == 0)
7251 {
7252
7253 yyreportSyntaxError (&yystack, P, tokens, index);
7254 goto yyuser_error;
7255 }
7256 YYCHK1 (yyglrReduce (&yystack, 0, yyrule, yytrue, P, tokens, index));
7257 }
7258 else
7259 {
7260 yySymbol yytoken;
7261 if (yychar == YYEMPTY)
7262 {
7263 YYDPRINTF ((stderr, "Reading a token: "));
7264 yychar = yylex (&yylval, P, tokens, index);
7265 }
7266
7267 if (yychar <= YYEOF)
7268 {
7269 yychar = yytoken = YYEOF;
7270 YYDPRINTF ((stderr, "Now at end of input.\n"));
7271 }
7272 else
7273 {
7274 yytoken = YYTRANSLATE (yychar);
7275 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
7276 }
7277
7278 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
7279 if (*yyconflicts != 0)
7280 break;
7281 if (yyisShiftAction (yyaction))
7282 {
7283 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
7284 yychar = YYEMPTY;
7285 yyposn += 1;
7286 yyglrShift (&yystack, 0, yyaction, yyposn, &yylval);
7287 if (0 < yystack.yyerrState)
7288 yystack.yyerrState -= 1;
7289 }
7290 else if (yyisErrorAction (yyaction))
7291 {
7292
7293 yyreportSyntaxError (&yystack, P, tokens, index);
7294 goto yyuser_error;
7295 }
7296 else
7297 YYCHK1 (yyglrReduce (&yystack, 0, -yyaction, yytrue, P, tokens, index));
7298 }
7299 }
7300
7301 while (yytrue)
7302 {
7303 yySymbol yytoken_to_shift;
7304 size_t yys;
7305
7306 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
7307 yystackp->yytops.yylookaheadNeeds[yys] = yychar != YYEMPTY;
7308
7309 /* yyprocessOneStack returns one of three things:
7310
7311 - An error flag. If the caller is yyprocessOneStack, it
7312 immediately returns as well. When the caller is finally
7313 yyparse, it jumps to an error label via YYCHK1.
7314
7315 - yyok, but yyprocessOneStack has invoked yymarkStackDeleted
7316 (&yystack, yys), which sets the top state of yys to NULL. Thus,
7317 yyparse's following invocation of yyremoveDeletes will remove
7318 the stack.
7319
7320 - yyok, when ready to shift a token.
7321
7322 Except in the first case, yyparse will invoke yyremoveDeletes and
7323 then shift the next token onto all remaining stacks. This
7324 synchronization of the shift (that is, after all preceding
7325 reductions on all stacks) helps prevent double destructor calls
7326 on yylval in the event of memory exhaustion. */
7327
7328 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
7329 YYCHK1 (yyprocessOneStack (&yystack, yys, yyposn, P, tokens, index));
7330 yyremoveDeletes (&yystack);
7331 if (yystack.yytops.yysize == 0)
7332 {
7333 yyundeleteLastStack (&yystack);
7334 if (yystack.yytops.yysize == 0)
7335 yyFail (&yystack, P, tokens, index, YY_("syntax error"));
7336 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
7337 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
7338
7339 yyreportSyntaxError (&yystack, P, tokens, index);
7340 goto yyuser_error;
7341 }
7342
7343 /* If any yyglrShift call fails, it will fail after shifting. Thus,
7344 a copy of yylval will already be on stack 0 in the event of a
7345 failure in the following loop. Thus, yychar is set to YYEMPTY
7346 before the loop to make sure the user destructor for yylval isn't
7347 called twice. */
7348 yytoken_to_shift = YYTRANSLATE (yychar);
7349 yychar = YYEMPTY;
7350 yyposn += 1;
7351 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
7352 {
7353 int yyaction;
7354 const short int* yyconflicts;
7355 yyStateNum yystate = yystack.yytops.yystates[yys]->yylrState;
7356 yygetLRActions (yystate, yytoken_to_shift, &yyaction,
7357 &yyconflicts);
7358 /* Note that yyconflicts were handled by yyprocessOneStack. */
7359 YYDPRINTF ((stderr, "On stack %lu, ", (unsigned long int) yys));
7360 YY_SYMBOL_PRINT ("shifting", yytoken_to_shift, &yylval, &yylloc);
7361 yyglrShift (&yystack, yys, yyaction, yyposn,
7362 &yylval);
7363 YYDPRINTF ((stderr, "Stack %lu now in state #%d\n",
7364 (unsigned long int) yys,
7365 yystack.yytops.yystates[yys]->yylrState));
7366 }
7367
7368 if (yystack.yytops.yysize == 1)
7369 {
7370 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
7371 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
7372 yycompressStack (&yystack);
7373 break;
7374 }
7375 }
7376 continue;
7377 yyuser_error:
7378 yyrecoverSyntaxError (&yystack, P, tokens, index);
7379 yyposn = yystack.yytops.yystates[0]->yyposn;
7380 }
7381
7382 yyacceptlab:
7383 yyresult = 0;
7384 goto yyreturn;
7385
7386 yybuglab:
7387 YYASSERT (yyfalse);
7388 goto yyabortlab;
7389
7390 yyabortlab:
7391 yyresult = 1;
7392 goto yyreturn;
7393
7394 yyexhaustedlab:
7395 yyerror (P, tokens, index, YY_("memory exhausted"));
7396 yyresult = 2;
7397 goto yyreturn;
7398
7399 yyreturn:
7400 if (yychar != YYEMPTY)
7401 yydestruct ("Cleanup: discarding lookahead",
7402 YYTRANSLATE (yychar), &yylval, P, tokens, index);
7403
7404 /* If the stack is well-formed, pop the stack until it is empty,
7405 destroying its entries as we go. But free the stack regardless
7406 of whether it is well-formed. */
7407 if (yystack.yyitems)
7408 {
7409 yyGLRState** yystates = yystack.yytops.yystates;
7410 if (yystates)
7411 {
7412 size_t yysize = yystack.yytops.yysize;
7413 size_t yyk;
7414 for (yyk = 0; yyk < yysize; yyk += 1)
7415 if (yystates[yyk])
7416 {
7417 while (yystates[yyk])
7418 {
7419 yyGLRState *yys = yystates[yyk];
7420 if (yys->yypred != YY_NULLPTR)
7421 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
7422 yystates[yyk] = yys->yypred;
7423 yystack.yynextFree -= 1;
7424 yystack.yyspaceLeft += 1;
7425 }
7426 break;
7427 }
7428 }
7429 yyfreeGLRStack (&yystack);
7430 }
7431
7432 return yyresult;
7433 }
7434
7435 /* DEBUGGING ONLY */
7436 #if YYDEBUG
7437 static void
7438 yy_yypstack (yyGLRState* yys)
7439 {
7440 if (yys->yypred)
7441 {
7442 yy_yypstack (yys->yypred);
7443 YYFPRINTF (stderr, " -> ");
7444 }
7445 YYFPRINTF (stderr, "%d@%lu", yys->yylrState,
7446 (unsigned long int) yys->yyposn);
7447 }
7448
7449 static void
7450 yypstates (yyGLRState* yyst)
7451 {
7452 if (yyst == YY_NULLPTR)
7453 YYFPRINTF (stderr, "<null>");
7454 else
7455 yy_yypstack (yyst);
7456 YYFPRINTF (stderr, "\n");
7457 }
7458
7459 static void
7460 yypstack (yyGLRStack* yystackp, size_t yyk)
7461 {
7462 yypstates (yystackp->yytops.yystates[yyk]);
7463 }
7464
7465 #define YYINDEX(YYX) \
7466 ((YYX) == YY_NULLPTR ? -1 : (yyGLRStackItem*) (YYX) - yystackp->yyitems)
7467
7468
7469 static void
7470 yypdumpstack (yyGLRStack* yystackp)
7471 {
7472 yyGLRStackItem* yyp;
7473 size_t yyi;
7474 for (yyp = yystackp->yyitems; yyp < yystackp->yynextFree; yyp += 1)
7475 {
7476 YYFPRINTF (stderr, "%3lu. ",
7477 (unsigned long int) (yyp - yystackp->yyitems));
7478 if (*(yybool *) yyp)
7479 {
7480 YYASSERT (yyp->yystate.yyisState);
7481 YYASSERT (yyp->yyoption.yyisState);
7482 YYFPRINTF (stderr, "Res: %d, LR State: %d, posn: %lu, pred: %ld",
7483 yyp->yystate.yyresolved, yyp->yystate.yylrState,
7484 (unsigned long int) yyp->yystate.yyposn,
7485 (long int) YYINDEX (yyp->yystate.yypred));
7486 if (! yyp->yystate.yyresolved)
7487 YYFPRINTF (stderr, ", firstVal: %ld",
7488 (long int) YYINDEX (yyp->yystate
7489 .yysemantics.yyfirstVal));
7490 }
7491 else
7492 {
7493 YYASSERT (!yyp->yystate.yyisState);
7494 YYASSERT (!yyp->yyoption.yyisState);
7495 YYFPRINTF (stderr, "Option. rule: %d, state: %ld, next: %ld",
7496 yyp->yyoption.yyrule - 1,
7497 (long int) YYINDEX (yyp->yyoption.yystate),
7498 (long int) YYINDEX (yyp->yyoption.yynext));
7499 }
7500 YYFPRINTF (stderr, "\n");
7501 }
7502 YYFPRINTF (stderr, "Tops:");
7503 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
7504 YYFPRINTF (stderr, "%lu: %ld; ", (unsigned long int) yyi,
7505 (long int) YYINDEX (yystackp->yytops.yystates[yyi]));
7506 YYFPRINTF (stderr, "\n");
7507 }
7508 #endif
7509
7510 #undef yylval
7511 #undef yychar
7512 #undef yynerrs
7513
7514 /* Substitute the variable and function names. */
7515 #define yyparse psi_parser_proc_parse
7516 #define yylex psi_parser_proc_lex
7517 #define yyerror psi_parser_proc_error
7518 #define yylval psi_parser_proc_lval
7519 #define yychar psi_parser_proc_char
7520 #define yydebug psi_parser_proc_debug
7521 #define yynerrs psi_parser_proc_nerrs
7522
7523 #line 2039 "src/parser_proc_grammar.y" /* glr.c:2584 */
7524
7525
7526 /* epilogue */
7527
7528 static int psi_parser_proc_lex(YYSTYPE *lvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7529 {
7530 struct psi_token *token;
7531
7532 if (psi_plist_get(tokens, (*index)++, &token)) {
7533 if (P->flags & PSI_DEBUG) {
7534 psi_token_dump(2, token);
7535 }
7536
7537 *((struct psi_token **)lvalp) = token;
7538 return token->type;
7539 } else {
7540 (*index)--;
7541 PSI_DEBUG_PRINT(P, "EOF(%d)\n", PSI_T_EOF);
7542 }
7543
7544 return PSI_T_EOF;
7545 }
7546
7547 static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char *msg)
7548 {
7549 struct psi_token *T = NULL;
7550 size_t last;
7551
7552 if (*index == 0) {
7553 last = 0;
7554 } else {
7555 last = --(*index);
7556 }
7557
7558 psi_plist_get(tokens, last, &T);
7559 if (T) {
7560 P->error(PSI_DATA(P), T, PSI_WARNING, "PSI %s at col %u", msg, T->col);
7561 } else {
7562 P->error(PSI_DATA(P), NULL, PSI_WARNING, "PSI %s", msg);
7563 }
7564 P->errors++;
7565 }
7566