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