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