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