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