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