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