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