1 /* A Bison parser, made by GNU Bison 3.0.4. */
3 /* Skeleton implementation for Bison GLR parsers in C
5 Copyright (C) 2002-2015 Free Software Foundation, Inc.
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.
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.
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/>. */
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.
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
33 /* C GLR parser skeleton written by Paul Hilfinger. */
35 /* Identify Bison output. */
39 #define YYBISON_VERSION "3.0.4"
42 #define YYSKELETON_NAME "glr.c"
48 /* "%code top" blocks. */
49 #line 1 "src/parser_proc_grammar.y" /* glr.c:222 */
51 #include "php_psi_stdinc.h"
53 #line 54 "src/parser_proc.c" /* glr.c:222 */
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
63 /* First part of user declarations. */
65 #line 66 "src/parser_proc.c" /* glr.c:240 */
68 # if defined __cplusplus && 201103L <= __cplusplus
69 # define YY_NULLPTR nullptr
75 #include "parser_proc.h"
77 /* Enabling verbose error messages. */
78 #ifdef YYERROR_VERBOSE
79 # undef YYERROR_VERBOSE
80 # define YYERROR_VERBOSE 1
82 # define YYERROR_VERBOSE 1
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
;
91 /* Copy the second part of user declarations. */
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 */
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
);
107 static inline void psi_parser_proc_add_struct(struct psi_parser
*P
, struct psi_decl_struct
*strct
)
111 P
->structs
= psi_plist_init((psi_plist_dtor
) psi_decl_struct_free
);
113 P
->structs
= psi_plist_add(P
->structs
, &strct
);
115 static inline void psi_parser_proc_add_union(struct psi_parser
*P
, struct psi_decl_union
*u
)
119 P
->unions
= psi_plist_init((psi_plist_dtor
) psi_decl_union_free
);
121 P
->unions
= psi_plist_add(P
->unions
, &u
);
123 static inline void psi_parser_proc_add_enum(struct psi_parser
*P
, struct psi_decl_enum
*e
)
127 P
->enums
= psi_plist_init((psi_plist_dtor
) psi_decl_enum_free
);
129 P
->enums
= psi_plist_add(P
->enums
, &e
);
131 static inline void psi_parser_proc_add_from_typedef(struct psi_parser
*P
, struct psi_decl_arg
*def
)
133 if (def
->type
->real
.def
) {
134 switch (def
->type
->type
) {
136 psi_parser_proc_add_struct(P
, def
->type
->real
.strct
);
139 psi_parser_proc_add_union(P
, def
->type
->real
.unn
);
142 psi_parser_proc_add_enum(P
, def
->type
->real
.enm
);
149 static inline void psi_parser_proc_add_typedef(struct psi_parser
*P
, struct psi_decl_arg
*def
)
153 P
->types
= psi_plist_init((psi_plist_dtor
) psi_decl_arg_free
);
155 P
->types
= psi_plist_add(P
->types
, &def
);
156 psi_parser_proc_add_from_typedef(P
, def
);
158 static inline void psi_parser_proc_add_const(struct psi_parser
*P
, struct psi_const
*cnst
) {
161 P
->consts
= psi_plist_init((psi_plist_dtor
) psi_const_free
);
163 P
->consts
= psi_plist_add(P
->consts
, &cnst
);
166 static inline void psi_parser_proc_add_decl(struct psi_parser
*P
, struct psi_decl
*decl
) {
169 P
->decls
= psi_plist_init((psi_plist_dtor
) psi_decl_free
);
171 P
->decls
= psi_plist_add(P
->decls
, &decl
);
173 static inline void psi_parser_proc_add_impl(struct psi_parser
*P
, struct psi_impl
*impl
) {
176 P
->impls
= psi_plist_init((psi_plist_dtor
) psi_impl_free
);
178 P
->impls
= psi_plist_add(P
->impls
, &impl
);
183 #line 184 "src/parser_proc.c" /* glr.c:264 */
190 # if defined YYENABLE_NLS && YYENABLE_NLS
192 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
193 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
197 # define YY_(Msgid) Msgid
205 # define YYMALLOC malloc
208 # define YYREALLOC realloc
211 #define YYSIZEMAX ((size_t) -1)
216 typedef unsigned char yybool
;
223 # define YYJMP_BUF jmp_buf
224 # define YYSETJMP(Env) setjmp (Env)
226 # define YYLONGJMP(Env, Val) (longjmp (Env, Val), YYASSERT (0))
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)
235 # define YY_ATTRIBUTE(Spec) /* empty */
239 #ifndef YY_ATTRIBUTE_PURE
240 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
243 #ifndef YY_ATTRIBUTE_UNUSED
244 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
247 #if !defined _Noreturn \
248 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
249 # if defined _MSC_VER && 1200 <= _MSC_VER
250 # define _Noreturn __declspec (noreturn)
252 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
256 /* Suppress unused-variable warnings by "using" E. */
257 #if ! defined lint || defined __GNUC__
258 # define YYUSE(E) ((void) (E))
260 # define YYUSE(E) /* empty */
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")
272 # define YY_INITIAL_VALUE(Value) Value
274 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
275 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
276 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
278 #ifndef YY_INITIAL_VALUE
279 # define YY_INITIAL_VALUE(Value) /* Nothing. */
284 # define YYASSERT(Condition) ((void) ((Condition) || (abort (), 0)))
287 /* YYFINAL -- State number of the termination state. */
289 /* YYLAST -- Last index in YYTABLE. */
292 /* YYNTOKENS -- Number of terminals. */
293 #define YYNTOKENS 132
294 /* YYNNTS -- Number of nonterminals. */
296 /* YYNRULES -- Number of rules. */
298 /* YYNRULES -- Number of states. */
299 #define YYNSTATES 685
300 /* YYMAXRHS -- Maximum number of symbols on right-hand side of rule. */
302 /* YYMAXLEFT -- Maximum number of symbols to the left of a handle
303 accessed by $0, $-1, etc., in any rule. */
306 /* YYTRANSLATE(X) -- Bison symbol number corresponding to X. */
308 #define YYMAXUTOK 386
310 #define YYTRANSLATE(YYX) \
311 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
313 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
314 static const unsigned char yytranslate
[] =
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
358 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
359 static const unsigned short int yyrline
[] =
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, 1198, 1212, 1216, 1233, 1240, 1243, 1249,
396 1254, 1262, 1266, 1270, 1274, 1278, 1282, 1289, 1293, 1297,
397 1301, 1308, 1321, 1334, 1347, 1350, 1357, 1360, 1366, 1370,
398 1377, 1380, 1386, 1389, 1395, 1396, 1402, 1405, 1417, 1420,
399 1427, 1432, 1437, 1447, 1450, 1456, 1459, 1465, 1472, 1479,
400 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1491, 1494,
401 1500, 1503, 1506, 1509, 1512, 1518, 1522, 1530, 1531, 1535,
402 1542, 1545, 1548, 1551, 1554, 1560, 1564, 1572, 1579, 1587,
403 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604,
404 1608, 1611, 1617, 1620, 1626, 1627, 1631, 1634, 1640, 1643,
405 1649, 1656, 1663, 1666, 1669, 1676, 1681, 1689, 1690, 1691,
406 1692, 1693, 1694, 1695, 1696, 1700, 1703, 1709, 1712, 1718,
407 1725, 1726, 1730, 1737, 1740, 1746, 1754, 1757, 1763
411 #if YYDEBUG || YYERROR_VERBOSE || 1
412 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
413 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
414 static const char *const yytname
[] =
416 "\"end of file\"", "error", "$undefined", "BOOL", "CHAR", "SHORT",
417 "INT", "SIGNED", "UNSIGNED", "LONG", "FLOAT", "DOUBLE", "STRING",
418 "MIXED", "ARRAY", "OBJECT", "CALLABLE", "VOID", "ZVAL", "INT8", "UINT8",
419 "INT16", "UINT16", "INT32", "UINT32", "INT64", "UINT64", "NULL", "TRUE",
420 "FALSE", "NAME", "NSNAME", "DOLLAR_NAME", "NUMBER", "QUOTED_STRING",
421 "QUOTED_CHAR", "\"end of line\"", "\";\"", "\"(\"", "\")\"", "\",\"",
422 "\":\"", "\"{\"", "\"}\"", "\"[\"", "\"]\"", "\"=\"", "\"#\"", "\"|\"",
423 "\"^\"", "\"&\"", "\"<<\"", "\">>\"", "\"+\"", "\"-\"", "\"*\"", "\"/\"",
424 "\"%\"", "\"<\"", "\">\"", "\">=\"", "\"<=\"", "\"||\"", "\"&&\"",
425 "\"==\"", "\"!=\"", "\"~\"", "\"!\"", "\".\"", "\"\\\\\"", "\"...\"",
426 "\"?\"", "PRAGMA", "PRAGMA_ONCE", "LINE", "ERROR", "WARNING", "IF",
427 "IFDEF", "IFNDEF", "ELSE", "ELIF", "ENDIF", "DEFINE", "DEFINED", "UNDEF",
428 "IMPORT", "INCLUDE", "INCLUDE_NEXT", "TYPEDEF", "STRUCT", "UNION",
429 "ENUM", "CONST", "LIB", "STATIC", "CALLBACK", "FUNCTION", "LET", "SET",
430 "TEMP", "FREE", "RETURN", "PRE_ASSERT", "POST_ASSERT", "BOOLVAL",
431 "INTVAL", "STRVAL", "PATHVAL", "STRLEN", "FLOATVAL", "ARRVAL", "OBJVAL",
432 "COUNT", "CALLOC", "TO_BOOL", "TO_INT", "TO_STRING", "TO_FLOAT",
433 "TO_ARRAY", "TO_OBJECT", "COMMENT", "WHITESPACE", "NO_WHITESPACE",
434 "CPP_HEADER", "CPP_ATTRIBUTE", "CPP_EXTENSION", "CPP_PASTE",
435 "CPP_RESTRICT", "CPP_ASM", "BINARY", "UNARY", "$accept",
436 "binary_op_token", "unary_op_token", "name_token", "any_noeol_token",
437 "file", "blocks", "block", "lib", "cpp", "cpp_exp", "cpp_ignored_token",
438 "cpp_message_token", "cpp_include_token", "cpp_header_token",
439 "cpp_no_arg_token", "cpp_name_arg_token", "cpp_exp_arg_token",
440 "cpp_special_name_token", "cpp_macro_decl", "cpp_macro_sig",
441 "cpp_macro_sig_args", "cpp_macro_decl_tokens",
442 "cpp_macro_decl_token_list", "cpp_macro_exp", "cpp_macro_call_args",
443 "cpp_macro_call_arg_list", "constant", "constant_type",
444 "constant_type_token", "impl_def_val", "impl_def_val_token",
445 "decl_typedef", "typedef", "const_decl_type", "decl_type",
446 "decl_type_complex", "decl_type_simple", "decl_real_type",
447 "decl_stdint_type", "int_signed", "int_width", "decl_int_type",
448 "int_signed_types", "signed_short_types", "signed_long_types",
449 "int_width_types", "decl_stmt", "decl_asm", "ignored_quoted_strings",
450 "decl_ext_var_stmt", "decl_ext_var", "decl_ext_var_list", "decl_vars",
451 "decl", "decl_body", "decl_func_body", "decl_functor_body",
452 "decl_functor", "decl_func", "decl_args", "decl_arg", "decl_var",
453 "decl_union", "decl_struct", "decl_struct_args", "struct_args_block",
454 "struct_args", "decl_enum", "decl_enum_items", "decl_enum_item",
455 "num_exp", "number", "enum_name", "union_name", "struct_name",
456 "optional_name", "decl_layout", "align_and_size", "array_size",
457 "indirection", "pointers", "asterisks", "impl", "impl_func", "impl_args",
458 "impl_arg", "impl_var", "impl_type", "impl_type_token", "impl_stmts",
459 "impl_stmt", "let_stmt", "let_exp", "let_exp_byref", "let_exp_assign",
460 "let_calloc", "let_callback", "let_func", "let_func_token",
461 "let_func_exps", "let_exps", "callback_rval", "callback_arg_list",
462 "callback_args", "return_stmt", "set_stmt", "set_exp", "set_func",
463 "set_func_token", "set_func_exps", "set_exps", "assert_stmt",
464 "assert_stmt_token", "free_stmt", "free_exps", "free_exp", "reference",
469 #define YYPACT_NINF -540
470 #define YYTABLE_NINF -467
472 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
474 static const short int yypact
[] =
476 924, -540, -540, -540, -540, -540, 31, -540, -540, 2059,
477 -540, -540, -540, -540, -540, -540, -540, -540, 2586, -540,
478 -540, 247, 2613, 2442, 2442, 2442, 248, 46, 19, 86,
479 -540, 2663, 124, 924, -540, -540, -540, -540, -540, 2108,
480 -540, -540, -540, -540, -540, 73, 56, -540, -540, -540,
481 110, 24, -540, -540, 15, 137, 150, -540, -540, -540,
482 -540, 135, -540, 140, -540, -540, -540, -540, -540, 634,
483 -540, 146, -540, -540, -540, -540, -540, -540, -540, -540,
484 -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
485 -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
486 -540, 2226, -16, -540, -540, -540, 2442, 2442, 2442, 2767,
487 -540, 11, -540, -540, -540, -540, -540, -540, -540, -540,
488 -540, -540, -540, -540, 883, -540, -540, -540, -540, 182,
489 764, 764, -5, -540, 883, 1941, 2442, 2442, 184, 1705,
490 -540, -540, 181, 2442, 183, 183, 81, 81, 180, -540,
491 -540, 192, 194, -540, 146, 196, -540, -540, 191, 187,
492 -540, 201, -540, 2690, 24, -540, -540, 189, -540, 199,
493 2442, -540, 228, -540, 78, -540, -540, 73, -540, -540,
494 200, 204, 2717, 2717, 2442, 113, 2442, -540, 146, -540,
495 -540, -540, -540, -540, -540, 2108, -540, -540, -540, -540,
496 -540, -540, 126, 764, -540, -540, -540, -540, -540, -540,
497 -540, -540, -540, -540, -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 764, -540, -540, -540, -540, -540, -540, -540, -540, 1941,
510 -540, -540, -540, -540, 2275, 1941, 223, 2888, 32, -540,
511 32, -540, -540, -540, -540, 234, 237, 237, 83, 83,
512 2393, 230, -540, 113, 243, 255, 264, -540, 146, 189,
513 -540, -540, -540, -540, -540, -540, 265, -540, 10, 54,
514 -540, 121, 252, 103, -540, 2108, 1520, 2108, 2442, 74,
515 -540, -540, 144, -540, -540, -540, -540, -540, 1823, -540,
516 261, 2442, 262, -540, 2442, 263, -540, -540, 478, 2442,
517 -540, -540, 1941, -540, -540, -540, -540, -540, -540, -540,
518 -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
519 -540, 1941, 1941, 266, 2613, 2108, 2108, -540, -540, -540,
520 -540, 146, -540, 68, 251, 44, -540, 258, 2442, -540,
521 -540, 4, 189, 1018, 189, 2559, 1823, 2442, -540, 259,
522 271, -540, -540, -540, 1048, 1823, -540, 2912, -540, 268,
523 273, -540, 277, 279, 270, 293, 111, -540, -540, 280,
524 277, -540, -540, 409, -540, 298, 2108, 2442, -540, 304,
525 2888, 305, 307, 2839, -540, 312, 125, 1677, -540, -540,
526 2442, -540, -540, -540, -540, -540, 319, -540, -540, -540,
527 -540, -540, -540, -540, -540, -540, -540, -540, 317, 133,
528 -540, 86, -540, -540, 320, -540, -540, -540, 10, 321,
529 -540, -540, 322, 2912, -540, 1166, -540, 323, 2794, 324,
530 548, -540, 1823, 1823, 1520, -540, 2108, -540, 86, 2108,
531 -540, 2442, -540, -540, -540, -540, -540, 326, 327, -540,
532 -540, 1941, 1941, 328, 2108, 325, 332, -540, 139, 331,
533 -540, 274, 330, 274, 329, -540, 189, 189, -540, 97,
534 334, 2912, -540, -540, -540, -540, 335, 1638, 1823, -540,
535 2864, -540, -540, 336, 2108, 156, -540, 764, 2442, 2888,
536 2936, 344, 112, 340, -540, 2108, 342, -540, -540, 274,
537 -540, 86, 68, -540, -540, -540, -540, -540, 343, 1823,
538 86, -540, -540, 1823, 1284, 345, 346, -540, -540, -540,
539 347, -540, 349, 134, -540, -540, 1, -540, 86, 2812,
540 348, 2960, 350, -540, 351, -540, -540, -540, 352, -540,
541 355, 356, 1823, 1166, 354, -540, 1520, 357, 360, 1402,
542 2782, 259, -540, -540, -540, 362, 1638, -540, -540, 361,
543 363, 364, 365, -540, -540, 1166, -540, -540, 274, 368,
544 1520, -540, -540, -540, -540
547 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
548 Performed when YYTABLE does not specify something else to do. Zero
549 means the default is an error. */
550 static const unsigned short int yydefact
[] =
552 163, 284, 281, 285, 279, 280, 282, 268, 269, 0,
553 271, 272, 273, 274, 275, 276, 277, 278, 267, 168,
554 167, 0, 0, 0, 0, 364, 0, 0, 0, 466,
555 169, 0, 0, 164, 165, 171, 170, 172, 175, 372,
556 258, 260, 259, 265, 266, 288, 298, 264, 173, 174,
557 0, 303, 313, 315, 316, 0, 0, 325, 177, 176,
558 178, 0, 179, 0, 283, 270, 32, 33, 454, 420,
559 24, 372, 376, 38, 37, 36, 34, 35, 31, 30,
560 28, 27, 25, 26, 428, 427, 425, 423, 424, 426,
561 422, 421, 429, 29, 452, 450, 449, 451, 448, 447,
562 326, 0, 374, 39, 40, 267, 0, 0, 0, 0,
563 314, 309, 181, 192, 189, 191, 193, 194, 205, 202,
564 203, 200, 206, 201, 0, 204, 195, 196, 197, 0,
565 219, 219, 0, 185, 0, 0, 364, 364, 0, 372,
566 252, 331, 251, 0, 368, 368, 261, 262, 263, 361,
567 239, 285, 268, 242, 0, 0, 238, 257, 0, 0,
568 468, 0, 467, 267, 303, 1, 166, 370, 332, 0,
569 373, 289, 293, 291, 295, 286, 299, 288, 287, 307,
570 0, 0, 327, 327, 0, 0, 0, 373, 372, 334,
571 377, 375, 261, 262, 263, 0, 308, 208, 209, 210,
572 212, 211, 207, 219, 187, 182, 74, 41, 42, 43,
573 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
574 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
575 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
576 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
577 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
578 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
579 105, 106, 107, 108, 114, 112, 113, 111, 109, 110,
580 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
581 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
582 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
583 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
584 155, 156, 157, 158, 161, 159, 160, 162, 221, 190,
585 220, 183, 198, 199, 184, 207, 186, 229, 230, 0,
586 22, 23, 20, 21, 0, 0, 231, 188, 261, 363,
587 262, 362, 250, 256, 253, 0, 0, 0, 0, 0,
588 0, 0, 180, 0, 0, 0, 0, 336, 372, 370,
589 294, 290, 296, 297, 292, 300, 0, 301, 328, 0,
590 329, 0, 349, 0, 347, 0, 466, 0, 0, 0,
591 460, 461, 0, 398, 401, 400, 402, 403, 0, 404,
592 0, 0, 310, 311, 0, 0, 214, 222, 0, 0,
593 227, 224, 233, 2, 3, 4, 5, 6, 7, 8,
594 9, 10, 11, 13, 12, 14, 15, 16, 17, 18,
595 19, 0, 0, 0, 0, 0, 0, 339, 338, 340,
596 337, 372, 333, 243, 0, 0, 302, 0, 0, 335,
597 305, 0, 370, 0, 370, 0, 0, 0, 346, 0,
598 0, 358, 357, 359, 0, 0, 360, 443, 351, 0,
599 0, 442, 40, 0, 0, 0, 0, 463, 453, 0,
600 0, 378, 399, 0, 324, 0, 0, 215, 223, 0,
601 235, 0, 234, 0, 225, 0, 366, 0, 255, 254,
602 0, 245, 247, 248, 246, 249, 0, 244, 379, 391,
603 392, 393, 394, 390, 395, 396, 397, 389, 0, 0,
604 383, 466, 388, 371, 0, 306, 304, 319, 0, 0,
605 330, 317, 0, 350, 348, 0, 405, 24, 0, 0,
606 0, 355, 0, 0, 466, 441, 0, 387, 466, 0,
607 462, 0, 440, 459, 323, 312, 217, 0, 216, 228,
608 232, 0, 0, 0, 0, 0, 0, 341, 366, 0,
609 237, 0, 0, 0, 385, 321, 370, 370, 410, 30,
610 29, 414, 415, 411, 412, 413, 39, 0, 0, 353,
611 0, 354, 444, 455, 0, 0, 464, 219, 0, 236,
612 226, 0, 0, 0, 342, 0, 0, 322, 380, 0,
613 384, 466, 243, 320, 318, 434, 420, 435, 0, 0,
614 466, 416, 352, 0, 466, 0, 0, 465, 213, 218,
615 0, 343, 0, 0, 344, 381, 0, 386, 466, 0,
616 430, 356, 0, 457, 456, 445, 406, 369, 0, 345,
617 0, 0, 0, 0, 0, 446, 466, 0, 0, 436,
618 0, 360, 432, 409, 407, 431, 0, 419, 458, 0,
619 0, 0, 437, 438, 417, 0, 408, 367, 0, 0,
620 466, 433, 382, 418, 439
623 /* YYPGOTO[NTERM-NUM]. */
624 static const short int yypgoto
[] =
626 -540, -336, -119, -3, 65, -540, -540, 375, -540, -540,
627 -540, -540, -540, -540, -540, -540, -540, -540, 276, -540,
628 -540, -540, -122, -540, -322, -540, -540, -540, -540, -540,
629 -201, -540, -540, -409, -15, -24, -540, -540, -540, 275,
630 366, -540, -540, 236, -540, -540, -540, -540, 253, -540,
631 -540, -540, -540, -519, 385, 0, -19, 13, -540, -540,
632 235, -14, -39, -540, -540, 62, -159, -540, 36, -540,
633 -35, -357, -540, -540, -540, -540, 63, -145, -17, -341,
634 -61, -4, -540, -540, 396, -540, -148, -494, -539, -540,
635 64, -355, -540, -249, -521, 45, -540, -540, -540, -511,
636 -540, -540, -540, -540, -540, -540, -540, -518, 42, -374,
637 -540, -540, -540, -540, -540, -540, -118, -28, -516
640 /* YYDEFGOTO[NTERM-NUM]. */
641 static const short int yydefgoto
[] =
643 -1, 543, 465, 167, 328, 32, 33, 34, 35, 36,
644 129, 130, 131, 132, 334, 133, 134, 135, 203, 204,
645 557, 558, 329, 330, 347, 491, 492, 37, 155, 156,
646 506, 507, 38, 138, 39, 40, 41, 42, 43, 44,
647 45, 46, 47, 175, 371, 374, 178, 48, 181, 451,
648 49, 50, 196, 402, 51, 52, 53, 141, 55, 56,
649 379, 57, 466, 58, 59, 438, 439, 497, 143, 383,
650 384, 467, 468, 61, 144, 145, 149, 566, 356, 367,
651 169, 404, 102, 62, 63, 519, 520, 469, 521, 522,
652 392, 393, 394, 662, 663, 664, 583, 584, 585, 103,
653 654, 665, 618, 671, 672, 395, 396, 470, 471, 104,
654 625, 644, 397, 398, 399, 476, 477, 473, 162
657 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
658 positive, shift that token. If negative, reduce the rule whose
659 number is the opposite. If YYTABLE_NINF, syntax error. */
660 static const short int yytable
[] =
662 168, 161, 157, 140, 111, 101, 100, 139, 142, 331,
663 186, 432, 472, 54, 582, 480, 345, 408, 110, 587,
664 146, 147, 148, 411, 586, 496, 592, 574, 449, 332,
665 595, 54, 608, 547, 611, 170, 60, 482, 525, 190,
666 64, 483, 65, 526, 54, 602, 54, 509, 71, -325,
667 510, 195, -316, -331, 511, -331, 512, 513, 514, 515,
668 516, 517, 176, 4, 5, 72, 621, 187, 617, 60,
669 635, 650, 432, -365, -365, 432, 586, 171, 172, 173,
670 158, 406, 174, 518, 372, 157, 633, 373, 568, 482,
671 490, 68, 478, 452, 453, 501, 502, 503, 189, 533,
672 168, 504, 505, 192, 193, 194, 643, 540, 541, 493,
673 494, 527, 191, 531, 615, 616, 29, 574, -368, 333,
674 437, 202, 355, -368, 165, 434, 640, 401, 357, 358,
675 359, 335, 346, 348, 350, 170, 160, 666, 668, 682,
676 354, 673, 586, 457, 651, 676, 458, 179, 550, 631,
677 360, 551, 486, 180, 432, 586, 403, 432, 432, 666,
678 454, 455, 684, 110, 586, 564, 565, 369, 380, 380,
679 472, 649, 572, 573, 486, 182, 54, 184, 581, 605,
680 565, 382, 185, 400, 187, 590, 591, 481, 183, 94,
681 95, 96, 97, 98, 99, 627, 486, 435, 436, 349,
682 351, 72, 84, 85, 86, 87, 88, 89, 90, 91,
683 92, 385, 386, 387, 388, 389, 390, 391, 205, -325,
684 345, 352, -365, -240, 355, -241, 345, 361, 362, 363,
685 581, 622, 364, 366, 370, 613, 614, 368, 376, 599,
686 600, 377, 385, 386, 387, 388, 389, 390, 391, 405,
687 472, 150, 1, 2, 151, 4, 5, 6, 152, 8,
688 153, 412, 639, 432, 432, 154, 641, 10, 11, 12,
689 13, 14, 15, 16, 17, 433, 443, 509, 105, 434,
690 510, 445, 472, 112, 511, 472, 512, 513, 514, 515,
691 516, 517, 446, 345, 508, 660, 581, 447, 456, 450,
692 484, 487, 486, 523, 495, 535, 472, 448, 536, 581,
693 545, 547, 345, 345, 544, 546, 548, 552, 581, 113,
694 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
695 124, 549, 125, 126, 127, 128, 346, 554, 106, 107,
696 108, 410, 346, 559, 560, 563, 459, 561, 474, 385,
697 386, 387, 388, 389, 390, 391, 570, 442, 571, 575,
698 576, 577, -24, 588, 187, 597, 603, 598, 601, 604,
699 607, 609, 619, 620, 101, 612, 624, 630, 632, 634,
700 500, 638, 648, 646, 645, 475, 647, 658, 653, 655,
701 669, 656, 657, 667, 659, 407, 498, 499, 485, 670,
702 677, 369, 675, 679, 678, 680, 489, 683, 166, 346,
703 336, 637, 177, 375, 353, 140, 164, 365, 381, 139,
704 142, 440, 534, 606, 159, 610, 681, 444, 346, 346,
705 460, 479, 0, 596, 0, 0, 0, 187, 0, 530,
706 0, 530, 345, 345, 0, 524, 553, 555, 0, 539,
707 0, 0, 0, 0, 382, 0, 0, 413, 414, 415,
708 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
709 426, 427, 428, 429, 430, 628, 0, 0, 140, 0,
710 542, 0, 139, 142, 556, 0, 0, 0, 0, 0,
711 0, 0, 0, 0, 0, 0, 0, 569, 0, 0,
712 0, 0, 0, 0, 0, 0, 0, 593, 0, 0,
713 403, 0, 0, 0, 157, 0, 0, 488, 0, 0,
714 594, 0, 0, 0, 101, 403, 413, 414, 415, 416,
715 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
716 427, 428, 429, 430, 0, 0, 0, 0, 475, 431,
717 0, 0, 0, 0, 0, 626, 0, 0, 346, 346,
718 0, 0, 0, 0, 0, 0, 403, 0, 0, 0,
719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
720 0, 0, 0, 636, 0, 0, 0, 589, 0, 0,
721 0, 0, 0, 0, 0, 629, 413, 414, 415, 416,
722 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
723 427, 428, 429, 430, 661, 0, 0, 0, 0, 542,
724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
725 0, 0, 0, 0, -420, 0, 661, -420, -420, -420,
726 -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
727 -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
728 -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
729 -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
730 -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
731 -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
732 -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
733 -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
734 0, -420, 0, -420, -420, -420, -420, -420, -420, -420,
735 -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
736 -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
737 -420, -420, -420, -420, -420, -420, 0, -420, -420, 0,
738 -420, -420, -420, -420, 206, 0, 0, 207, 208, 209,
739 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
740 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
741 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
742 0, 240, 241, 242, 243, 244, 245, 246, 247, 248,
743 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
744 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
745 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
746 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
747 0, 289, 0, 290, 291, 292, 293, 294, 295, 296,
748 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
749 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
750 317, 318, 319, 320, 321, 322, 66, 0, 323, 0,
751 324, 325, 326, 327, 0, 67, 0, 0, 0, 0,
752 68, 69, 0, 0, 0, 0, 0, 0, 0, 0,
753 197, 198, 199, 70, 0, 0, 0, 0, 0, 0,
754 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,
755 3, 4, 5, 6, 7, 8, 0, 0, 0, 0,
756 0, 9, 0, 10, 11, 12, 13, 14, 15, 16,
757 17, 0, 0, 0, 18, 73, 74, 75, 76, 77,
758 19, 20, 0, 0, 0, 0, 0, 0, 0, 0,
759 0, 21, 0, 0, 0, 0, 0, 78, 0, 79,
760 0, 80, 81, 82, 83, 0, 0, 0, 84, 85,
761 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
762 96, 97, 98, 99, 0, 0, 0, 0, 0, 200,
763 0, 201, 0, 22, 23, 24, 25, 26, 27, 28,
764 0, 29, 1, 2, 3, 4, 5, 6, 7, 8,
765 0, 0, 0, 0, 0, 528, 0, 10, 11, 12,
766 13, 14, 15, 16, 17, 30, 0, 0, 105, 0,
767 31, 66, 1, 2, 3, 4, 5, 6, 7, 8,
768 67, 0, 0, 0, 0, 68, 69, 10, 11, 12,
769 13, 14, 15, 16, 17, 0, 0, 0, 537, 461,
770 0, 462, 0, 463, 0, 0, 464, 0, 529, 0,
771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
772 0, 340, 341, 72, 0, 0, 0, 0, 106, 107,
773 108, 109, 0, 0, 342, 343, 0, 0, 0, 0,
774 73, 74, 75, 76, 77, 0, 0, 0, 0, 0,
775 0, 0, 0, 0, 0, 0, 0, 0, 106, 107,
776 108, 538, 78, 0, 79, 0, 80, 81, 82, 83,
777 0, 0, 0, 84, 85, 86, 87, 88, 89, 90,
778 91, 92, 93, 94, 95, 96, 97, 98, 99, 66,
779 0, 0, 0, 0, 0, 0, 0, 0, 67, 0,
780 0, 0, 0, 68, 69, 0, 0, 0, 0, 0,
781 0, 0, 0, 578, 0, 0, 70, 461, 0, 462,
782 0, 463, 0, 0, 464, 0, 0, 0, 0, 0,
783 0, 0, 0, 0, 0, 0, 160, 0, 0, 340,
784 341, 72, 0, 0, 0, 0, 0, 0, 0, 0,
785 0, 0, 342, 343, 0, 0, 0, 0, 73, 74,
786 75, 76, 77, 0, 0, 0, 0, 0, 0, 0,
787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
788 78, 0, 579, 0, 80, 81, 82, 83, 0, 0,
789 0, 84, 85, 86, 87, 88, 89, 90, 91, 92,
790 580, 94, 95, 96, 97, 98, 99, 66, 0, 0,
791 0, 0, 0, 0, 0, 0, 67, 0, 0, 0,
792 0, 68, 69, 0, 0, 0, 0, 0, 0, 0,
793 0, 0, 0, 0, 70, 461, 0, 462, 0, 463,
794 0, 0, 464, 0, 0, 0, 0, 0, 0, 0,
795 0, 0, 0, 0, 160, 0, 0, 340, 341, 72,
796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
797 342, 343, 0, 0, 642, 0, 73, 74, 75, 76,
798 77, 0, 0, 0, 0, 0, 0, 0, 0, 0,
799 0, 0, 0, 0, 0, 0, 0, 0, 78, 0,
800 79, 0, 80, 81, 82, 83, 0, 0, 0, 84,
801 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
802 95, 96, 97, 98, 99, 66, 0, 0, 0, 0,
803 0, 0, 0, 0, 67, 0, 0, 0, 0, 68,
804 69, 0, 0, 0, 0, 0, 0, 0, 0, 0,
805 0, 0, 70, 461, -466, 462, 0, 463, 0, 0,
806 464, 0, 0, 0, 0, 0, 0, 0, 0, 0,
807 0, 0, 160, 0, 0, 340, 341, 72, 0, 0,
808 0, 0, 0, 0, 0, 0, 0, 0, 342, 343,
809 0, 0, 0, 0, 73, 74, 75, 76, 77, 0,
810 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
811 0, 0, 0, 0, 0, 0, 78, 0, 79, 0,
812 80, 81, 82, 83, 0, 0, 0, 84, 85, 86,
813 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
814 97, 98, 99, 66, 0, 0, 0, 0, 0, 0,
815 0, 0, 67, 0, 0, 0, 0, 68, 69, 0,
816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
817 70, 461, 0, 462, 0, 463, 0, 0, 464, 0,
818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
819 160, 0, 0, 340, 341, 72, 0, 0, 0, 0,
820 0, 0, 0, 0, 0, 0, 342, 343, 0, 0,
821 0, 0, 73, 74, 75, 76, 77, 0, 0, 0,
822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
823 0, 0, 0, 0, 78, 0, 79, 0, 80, 81,
824 82, 83, 0, 0, 0, 84, 85, 86, 87, 88,
825 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
826 99, 66, 0, 0, 0, 0, 0, 0, 0, 0,
827 67, 0, 0, 0, 0, 68, 69, 0, 0, 0,
828 0, 0, 0, 0, 0, 578, 0, 0, 70, 461,
829 0, 462, 0, 463, 0, 0, 464, 0, 0, 0,
830 0, 1, 2, 3, 4, 5, 6, 7, 8, 0,
831 0, 340, 341, 72, 9, 0, 10, 11, 12, 13,
832 14, 15, 16, 17, 342, 343, 0, 105, 66, 0,
833 73, 74, 75, 76, 77, 0, 0, 67, 0, 0,
834 567, 0, 68, 69, 10, 11, 12, 13, 14, 15,
835 16, 17, 78, 0, 579, 70, 80, 81, 82, 83,
836 0, 0, 0, 84, 85, 86, 87, 88, 89, 90,
837 91, 92, 580, 94, 95, 96, 97, 98, 99, 0,
838 72, 0, 0, 0, 0, 0, 0, 136, 137, 25,
839 109, 0, 0, 0, 0, 0, 0, 73, 74, 75,
840 76, 77, 0, 0, 0, 0, 0, 0, 0, 0,
841 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,
842 0, 79, 0, 80, 81, 82, 83, 0, 0, 0,
843 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
844 94, 95, 96, 97, 98, 99, 66, 0, 0, 0,
845 0, 0, 0, 0, 0, 67, 0, 0, 0, 0,
846 68, 69, 0, 0, 0, 0, 0, 0, 0, 0,
847 0, 0, 0, 70, 461, 0, 462, 0, 463, 0,
848 0, 464, 0, 0, 0, 0, 0, 0, 0, 0,
849 0, 0, 0, 0, 0, 0, 340, 341, 72, 0,
850 0, 0, 0, 0, 0, 0, 0, 0, 0, 342,
851 343, 0, 0, 0, 0, 73, 74, 75, 76, 77,
852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
853 0, 0, 0, 0, 0, 0, 0, 78, 0, 79,
854 0, 80, 81, 82, 83, 0, 0, 0, 84, 85,
855 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
856 96, 97, 98, 99, 66, 0, 0, 0, 0, 0,
857 0, 0, 0, 67, 0, 0, 0, 0, 68, 69,
858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
859 0, 70, 0, 0, 337, 0, 338, 0, 0, 339,
860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
861 0, 0, 0, 0, 340, 341, 0, 0, 0, 0,
862 0, 0, 0, 0, 0, 0, 0, 342, 343, 0,
863 0, 0, 0, 73, 74, 75, 76, 77, 0, 0,
864 0, 0, 0, 0, 0, 344, 0, 0, 0, 0,
865 0, 0, 0, 0, 0, 78, 0, 79, 0, 80,
866 81, 82, 83, 0, 0, 0, 84, 85, 86, 87,
867 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
868 98, 99, 66, 0, 0, 0, 0, 0, 0, 0,
869 0, 67, 0, 0, 0, 0, 68, 69, 0, 0,
870 0, 0, 0, 0, 0, 0, 0, 0, 0, 70,
871 0, 0, 0, 0, 0, 0, 0, 71, 0, 0,
872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
873 0, 66, 0, 0, 72, 0, 0, 0, 0, 0,
874 67, 0, 0, 0, 0, 68, 69, 0, 0, 0,
875 0, 73, 74, 75, 76, 77, 0, 0, 70, 0,
876 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
877 0, 0, 0, 78, 0, 79, 0, 80, 81, 82,
878 83, 0, 0, 72, 84, 85, 86, 87, 88, 89,
879 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
880 73, 74, 75, 76, 77, 0, 0, 0, 0, 0,
881 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
882 0, 0, 78, 0, 79, 0, 80, 81, 82, 83,
883 0, 0, 0, 84, 85, 86, 87, 88, 89, 90,
884 91, 92, 93, 94, 95, 96, 97, 98, 99, 66,
885 0, 0, 0, 0, 0, 0, 0, 0, 67, 0,
886 0, 0, 0, 68, 69, 0, 0, 0, 0, 0,
887 0, 0, 0, 0, 0, 0, 70, 0, 0, 0,
888 0, 0, 0, 0, 188, 0, 0, 0, 0, 0,
889 0, 0, 0, 0, 0, 0, 0, 0, 66, 0,
890 0, 0, 0, 0, 0, 0, 0, 67, 0, 0,
891 0, 0, 68, 69, 0, 0, 0, 0, 73, 74,
892 75, 76, 77, 0, 0, 70, 0, 0, 0, 0,
893 0, 0, 0, 409, 0, 0, 0, 0, 0, 0,
894 78, 0, 79, 0, 80, 81, 82, 83, 0, 0,
895 0, 84, 85, 86, 87, 88, 89, 90, 91, 92,
896 93, 94, 95, 96, 97, 98, 99, 73, 74, 75,
897 76, 77, 0, 0, 0, 0, 0, 0, 0, 0,
898 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,
899 0, 79, 0, 80, 81, 82, 83, 0, 0, 0,
900 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
901 94, 95, 96, 97, 98, 99, 66, 0, 0, 0,
902 0, 0, 0, 0, 0, 67, 0, 0, 0, 0,
903 68, 69, 0, 0, 0, 0, 0, 0, 0, 0,
904 0, 0, 0, 70, 0, 0, 0, 0, 0, 0,
905 0, 441, 0, 0, 0, 0, 0, 0, 0, 0,
906 0, 0, 0, 0, 0, 66, 0, 0, 0, 0,
907 0, 0, 0, 0, 67, 0, 0, 0, 0, 68,
908 69, 0, 0, 0, 0, 73, 74, 75, 76, 77,
909 0, 0, 70, 0, 0, 0, 0, 0, 0, 0,
910 0, 0, 0, 0, 0, 0, 0, 78, 0, 79,
911 0, 80, 81, 82, 83, 0, 0, 0, 84, 85,
912 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
913 96, 97, 98, 99, 73, 74, 75, 76, 77, 0,
914 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
915 0, 0, 0, 0, 0, 0, 78, 0, 79, 0,
916 80, 81, 82, 83, 0, 0, 0, 84, 85, 86,
917 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
918 97, 98, 99, 1, 2, 3, 4, 5, 6, 7,
919 8, 0, 0, 0, 0, 0, 528, 0, 10, 11,
920 12, 13, 14, 15, 16, 17, 0, 0, 0, 105,
921 1, 2, 3, 4, 5, 6, 7, 8, 0, 0,
922 0, 0, 0, 9, 0, 10, 11, 12, 13, 14,
923 15, 16, 17, 0, 0, 0, 105, 1, 2, 3,
924 4, 5, 6, 7, 8, 0, 0, 0, 0, 532,
925 9, 0, 10, 11, 12, 13, 14, 15, 16, 17,
926 0, 0, 0, 105, 0, 0, 0, 0, 0, 106,
927 107, 108, 109, 0, 0, 0, 0, 0, 0, 0,
928 0, 0, 0, 0, 0, 0, 0, 1, 2, 3,
929 4, 5, 6, 7, 8, 0, 106, 107, 108, 109,
930 9, 0, 10, 11, 12, 13, 14, 15, 16, 17,
931 0, 0, 0, 163, 1, 2, 3, 4, 5, 6,
932 7, 8, 0, 136, 137, 25, 109, 9, 0, 10,
933 11, 12, 13, 14, 15, 16, 17, 0, 0, 0,
934 105, 1, 2, 3, 4, 5, 6, 7, 8, 0,
935 0, 0, 0, 0, 378, 0, 10, 11, 12, 13,
936 14, 15, 16, 17, 0, 0, 0, 105, 0, 0,
937 0, 0, 0, 106, 107, 108, 109, 0, 0, 0,
938 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
939 0, 1, 2, 3, 4, 5, 6, 7, 8, 0,
940 106, 107, 108, 109, 154, 0, 10, 11, 12, 13,
941 14, 15, 16, 17, 0, 0, 0, 105, 1, 2,
942 3, 4, 5, 6, 7, 8, 0, 106, 107, 108,
943 109, 0, 0, 10, 11, 12, 13, 14, 15, 16,
944 17, 674, 0, 0, 105, 0, 0, 0, 0, 0,
945 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
946 423, 424, 425, 426, 427, 428, 429, 430, 0, 0,
947 0, 0, 652, 542, 0, 0, 0, 106, 107, 108,
948 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
949 423, 424, 425, 426, 427, 428, 429, 430, 0, 0,
950 562, 0, 0, 542, 106, 107, 108, 413, 414, 415,
951 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
952 426, 427, 428, 429, 430, 623, 0, 0, 0, 0,
953 431, 0, 413, 414, 415, 416, 417, 418, 419, 420,
954 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
955 0, 0, 0, 0, 0, 542, 413, 414, 415, 416,
956 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
957 427, 428, 429, 430, 0, 0, 0, 0, 0, 431,
958 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
959 423, 424, 425, 426, 427, 428, 429, 430, 0, 0,
960 0, 0, 0, 542, 413, 414, 415, 416, 417, 418,
961 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
962 429, 430, 0, 0, 0, 0, 0, 431, 413, 414,
963 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
964 425, 426, 427, 428, 429, 430, 0, 0, 0, 0,
968 static const short int yycheck
[] =
970 39, 29, 26, 22, 18, 9, 9, 22, 22, 131,
971 71, 347, 386, 0, 535, 389, 135, 339, 18, 535,
972 23, 24, 25, 345, 535, 434, 544, 521, 369, 34,
973 549, 18, 571, 32, 573, 39, 0, 392, 34, 55,
974 9, 398, 11, 39, 31, 564, 33, 3, 38, 38,
975 6, 40, 37, 38, 10, 40, 12, 13, 14, 15,
976 16, 17, 6, 7, 8, 55, 587, 71, 579, 33,
977 609, 70, 408, 41, 42, 411, 587, 4, 5, 6,
978 34, 203, 9, 39, 6, 109, 605, 9, 497, 444,
979 412, 17, 18, 39, 40, 27, 28, 29, 101, 456,
980 139, 33, 34, 106, 107, 108, 624, 464, 465, 431,
981 432, 452, 128, 454, 17, 18, 97, 611, 37, 124,
982 37, 124, 41, 42, 0, 42, 620, 188, 145, 146,
983 147, 134, 135, 136, 137, 139, 50, 653, 656, 678,
984 143, 659, 653, 40, 638, 666, 43, 37, 37, 37,
985 154, 40, 40, 129, 490, 666, 195, 493, 494, 675,
986 39, 40, 680, 163, 675, 40, 41, 170, 182, 183,
987 544, 37, 39, 40, 40, 38, 163, 42, 535, 40,
988 41, 184, 42, 186, 188, 542, 543, 43, 38, 115,
989 116, 117, 118, 119, 120, 39, 40, 356, 357, 136,
990 137, 55, 105, 106, 107, 108, 109, 110, 111, 112,
991 113, 98, 99, 100, 101, 102, 103, 104, 36, 38,
992 339, 37, 42, 31, 41, 31, 345, 31, 37, 42,
993 587, 588, 31, 44, 6, 576, 577, 38, 38, 561,
994 562, 37, 98, 99, 100, 101, 102, 103, 104, 123,
995 624, 3, 4, 5, 6, 7, 8, 9, 10, 11,
996 12, 38, 619, 599, 600, 17, 623, 19, 20, 21,
997 22, 23, 24, 25, 26, 41, 46, 3, 30, 42,
998 6, 38, 656, 36, 10, 659, 12, 13, 14, 15,
999 16, 17, 37, 412, 43, 652, 653, 33, 46, 34,
1000 39, 38, 40, 45, 38, 46, 680, 368, 37, 666,
1001 37, 32, 431, 432, 46, 38, 46, 37, 675, 72,
1002 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1003 83, 38, 85, 86, 87, 88, 339, 39, 90, 91,
1004 92, 344, 345, 39, 39, 33, 385, 40, 387, 98,
1005 99, 100, 101, 102, 103, 104, 37, 360, 41, 39,
1006 39, 39, 39, 39, 368, 39, 41, 40, 40, 37,
1007 39, 41, 38, 38, 378, 46, 40, 33, 38, 37,
1008 441, 38, 33, 37, 39, 388, 39, 32, 40, 39,
1009 33, 40, 40, 39, 38, 330, 435, 436, 401, 39,
1010 39, 404, 40, 39, 41, 40, 409, 39, 33, 412,
1011 134, 612, 46, 177, 139, 434, 31, 164, 183, 434,
1012 434, 359, 457, 568, 28, 573, 675, 363, 431, 432,
1013 385, 389, -1, 551, -1, -1, -1, 441, -1, 453,
1014 -1, 455, 561, 562, -1, 448, 37, 486, -1, 464,
1015 -1, -1, -1, -1, 457, -1, -1, 48, 49, 50,
1016 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1017 61, 62, 63, 64, 65, 597, -1, -1, 497, -1,
1018 71, -1, 497, 497, 487, -1, -1, -1, -1, -1,
1019 -1, -1, -1, -1, -1, -1, -1, 500, -1, -1,
1020 -1, -1, -1, -1, -1, -1, -1, 546, -1, -1,
1021 549, -1, -1, -1, 538, -1, -1, 39, -1, -1,
1022 548, -1, -1, -1, 528, 564, 48, 49, 50, 51,
1023 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1024 62, 63, 64, 65, -1, -1, -1, -1, 551, 71,
1025 -1, -1, -1, -1, -1, 594, -1, -1, 561, 562,
1026 -1, -1, -1, -1, -1, -1, 605, -1, -1, -1,
1027 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1028 -1, -1, -1, 611, -1, -1, -1, 39, -1, -1,
1029 -1, -1, -1, -1, -1, 598, 48, 49, 50, 51,
1030 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1031 62, 63, 64, 65, 653, -1, -1, -1, -1, 71,
1032 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1033 -1, -1, -1, -1, 0, -1, 675, 3, 4, 5,
1034 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1035 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1036 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1037 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1038 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1039 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1040 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1041 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1042 -1, 87, -1, 89, 90, 91, 92, 93, 94, 95,
1043 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1044 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1045 116, 117, 118, 119, 120, 121, -1, 123, 124, -1,
1046 126, 127, 128, 129, 0, -1, -1, 3, 4, 5,
1047 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1048 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1049 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1050 -1, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1051 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1052 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1053 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1054 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1055 -1, 87, -1, 89, 90, 91, 92, 93, 94, 95,
1056 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1057 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1058 116, 117, 118, 119, 120, 121, 3, -1, 124, -1,
1059 126, 127, 128, 129, -1, 12, -1, -1, -1, -1,
1060 17, 18, -1, -1, -1, -1, -1, -1, -1, -1,
1061 27, 28, 29, 30, -1, -1, -1, -1, -1, -1,
1062 -1, -1, -1, -1, -1, -1, -1, -1, 4, 5,
1063 6, 7, 8, 9, 10, 11, -1, -1, -1, -1,
1064 -1, 17, -1, 19, 20, 21, 22, 23, 24, 25,
1065 26, -1, -1, -1, 30, 72, 73, 74, 75, 76,
1066 36, 37, -1, -1, -1, -1, -1, -1, -1, -1,
1067 -1, 47, -1, -1, -1, -1, -1, 94, -1, 96,
1068 -1, 98, 99, 100, 101, -1, -1, -1, 105, 106,
1069 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1070 117, 118, 119, 120, -1, -1, -1, -1, -1, 126,
1071 -1, 128, -1, 89, 90, 91, 92, 93, 94, 95,
1072 -1, 97, 4, 5, 6, 7, 8, 9, 10, 11,
1073 -1, -1, -1, -1, -1, 17, -1, 19, 20, 21,
1074 22, 23, 24, 25, 26, 121, -1, -1, 30, -1,
1075 126, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1076 12, -1, -1, -1, -1, 17, 18, 19, 20, 21,
1077 22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
1078 -1, 33, -1, 35, -1, -1, 38, -1, 70, -1,
1079 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1080 -1, 53, 54, 55, -1, -1, -1, -1, 90, 91,
1081 92, 93, -1, -1, 66, 67, -1, -1, -1, -1,
1082 72, 73, 74, 75, 76, -1, -1, -1, -1, -1,
1083 -1, -1, -1, -1, -1, -1, -1, -1, 90, 91,
1084 92, 93, 94, -1, 96, -1, 98, 99, 100, 101,
1085 -1, -1, -1, 105, 106, 107, 108, 109, 110, 111,
1086 112, 113, 114, 115, 116, 117, 118, 119, 120, 3,
1087 -1, -1, -1, -1, -1, -1, -1, -1, 12, -1,
1088 -1, -1, -1, 17, 18, -1, -1, -1, -1, -1,
1089 -1, -1, -1, 27, -1, -1, 30, 31, -1, 33,
1090 -1, 35, -1, -1, 38, -1, -1, -1, -1, -1,
1091 -1, -1, -1, -1, -1, -1, 50, -1, -1, 53,
1092 54, 55, -1, -1, -1, -1, -1, -1, -1, -1,
1093 -1, -1, 66, 67, -1, -1, -1, -1, 72, 73,
1094 74, 75, 76, -1, -1, -1, -1, -1, -1, -1,
1095 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1096 94, -1, 96, -1, 98, 99, 100, 101, -1, -1,
1097 -1, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1098 114, 115, 116, 117, 118, 119, 120, 3, -1, -1,
1099 -1, -1, -1, -1, -1, -1, 12, -1, -1, -1,
1100 -1, 17, 18, -1, -1, -1, -1, -1, -1, -1,
1101 -1, -1, -1, -1, 30, 31, -1, 33, -1, 35,
1102 -1, -1, 38, -1, -1, -1, -1, -1, -1, -1,
1103 -1, -1, -1, -1, 50, -1, -1, 53, 54, 55,
1104 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1105 66, 67, -1, -1, 70, -1, 72, 73, 74, 75,
1106 76, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1107 -1, -1, -1, -1, -1, -1, -1, -1, 94, -1,
1108 96, -1, 98, 99, 100, 101, -1, -1, -1, 105,
1109 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1110 116, 117, 118, 119, 120, 3, -1, -1, -1, -1,
1111 -1, -1, -1, -1, 12, -1, -1, -1, -1, 17,
1112 18, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1113 -1, -1, 30, 31, 32, 33, -1, 35, -1, -1,
1114 38, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1115 -1, -1, 50, -1, -1, 53, 54, 55, -1, -1,
1116 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
1117 -1, -1, -1, -1, 72, 73, 74, 75, 76, -1,
1118 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1119 -1, -1, -1, -1, -1, -1, 94, -1, 96, -1,
1120 98, 99, 100, 101, -1, -1, -1, 105, 106, 107,
1121 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1122 118, 119, 120, 3, -1, -1, -1, -1, -1, -1,
1123 -1, -1, 12, -1, -1, -1, -1, 17, 18, -1,
1124 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1125 30, 31, -1, 33, -1, 35, -1, -1, 38, -1,
1126 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1127 50, -1, -1, 53, 54, 55, -1, -1, -1, -1,
1128 -1, -1, -1, -1, -1, -1, 66, 67, -1, -1,
1129 -1, -1, 72, 73, 74, 75, 76, -1, -1, -1,
1130 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1131 -1, -1, -1, -1, 94, -1, 96, -1, 98, 99,
1132 100, 101, -1, -1, -1, 105, 106, 107, 108, 109,
1133 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
1134 120, 3, -1, -1, -1, -1, -1, -1, -1, -1,
1135 12, -1, -1, -1, -1, 17, 18, -1, -1, -1,
1136 -1, -1, -1, -1, -1, 27, -1, -1, 30, 31,
1137 -1, 33, -1, 35, -1, -1, 38, -1, -1, -1,
1138 -1, 4, 5, 6, 7, 8, 9, 10, 11, -1,
1139 -1, 53, 54, 55, 17, -1, 19, 20, 21, 22,
1140 23, 24, 25, 26, 66, 67, -1, 30, 3, -1,
1141 72, 73, 74, 75, 76, -1, -1, 12, -1, -1,
1142 43, -1, 17, 18, 19, 20, 21, 22, 23, 24,
1143 25, 26, 94, -1, 96, 30, 98, 99, 100, 101,
1144 -1, -1, -1, 105, 106, 107, 108, 109, 110, 111,
1145 112, 113, 114, 115, 116, 117, 118, 119, 120, -1,
1146 55, -1, -1, -1, -1, -1, -1, 90, 91, 92,
1147 93, -1, -1, -1, -1, -1, -1, 72, 73, 74,
1148 75, 76, -1, -1, -1, -1, -1, -1, -1, -1,
1149 -1, -1, -1, -1, -1, -1, -1, -1, -1, 94,
1150 -1, 96, -1, 98, 99, 100, 101, -1, -1, -1,
1151 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1152 115, 116, 117, 118, 119, 120, 3, -1, -1, -1,
1153 -1, -1, -1, -1, -1, 12, -1, -1, -1, -1,
1154 17, 18, -1, -1, -1, -1, -1, -1, -1, -1,
1155 -1, -1, -1, 30, 31, -1, 33, -1, 35, -1,
1156 -1, 38, -1, -1, -1, -1, -1, -1, -1, -1,
1157 -1, -1, -1, -1, -1, -1, 53, 54, 55, -1,
1158 -1, -1, -1, -1, -1, -1, -1, -1, -1, 66,
1159 67, -1, -1, -1, -1, 72, 73, 74, 75, 76,
1160 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1161 -1, -1, -1, -1, -1, -1, -1, 94, -1, 96,
1162 -1, 98, 99, 100, 101, -1, -1, -1, 105, 106,
1163 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1164 117, 118, 119, 120, 3, -1, -1, -1, -1, -1,
1165 -1, -1, -1, 12, -1, -1, -1, -1, 17, 18,
1166 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1167 -1, 30, -1, -1, 33, -1, 35, -1, -1, 38,
1168 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1169 -1, -1, -1, -1, 53, 54, -1, -1, -1, -1,
1170 -1, -1, -1, -1, -1, -1, -1, 66, 67, -1,
1171 -1, -1, -1, 72, 73, 74, 75, 76, -1, -1,
1172 -1, -1, -1, -1, -1, 84, -1, -1, -1, -1,
1173 -1, -1, -1, -1, -1, 94, -1, 96, -1, 98,
1174 99, 100, 101, -1, -1, -1, 105, 106, 107, 108,
1175 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
1176 119, 120, 3, -1, -1, -1, -1, -1, -1, -1,
1177 -1, 12, -1, -1, -1, -1, 17, 18, -1, -1,
1178 -1, -1, -1, -1, -1, -1, -1, -1, -1, 30,
1179 -1, -1, -1, -1, -1, -1, -1, 38, -1, -1,
1180 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1181 -1, 3, -1, -1, 55, -1, -1, -1, -1, -1,
1182 12, -1, -1, -1, -1, 17, 18, -1, -1, -1,
1183 -1, 72, 73, 74, 75, 76, -1, -1, 30, -1,
1184 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1185 -1, -1, -1, 94, -1, 96, -1, 98, 99, 100,
1186 101, -1, -1, 55, 105, 106, 107, 108, 109, 110,
1187 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
1188 72, 73, 74, 75, 76, -1, -1, -1, -1, -1,
1189 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1190 -1, -1, 94, -1, 96, -1, 98, 99, 100, 101,
1191 -1, -1, -1, 105, 106, 107, 108, 109, 110, 111,
1192 112, 113, 114, 115, 116, 117, 118, 119, 120, 3,
1193 -1, -1, -1, -1, -1, -1, -1, -1, 12, -1,
1194 -1, -1, -1, 17, 18, -1, -1, -1, -1, -1,
1195 -1, -1, -1, -1, -1, -1, 30, -1, -1, -1,
1196 -1, -1, -1, -1, 38, -1, -1, -1, -1, -1,
1197 -1, -1, -1, -1, -1, -1, -1, -1, 3, -1,
1198 -1, -1, -1, -1, -1, -1, -1, 12, -1, -1,
1199 -1, -1, 17, 18, -1, -1, -1, -1, 72, 73,
1200 74, 75, 76, -1, -1, 30, -1, -1, -1, -1,
1201 -1, -1, -1, 38, -1, -1, -1, -1, -1, -1,
1202 94, -1, 96, -1, 98, 99, 100, 101, -1, -1,
1203 -1, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1204 114, 115, 116, 117, 118, 119, 120, 72, 73, 74,
1205 75, 76, -1, -1, -1, -1, -1, -1, -1, -1,
1206 -1, -1, -1, -1, -1, -1, -1, -1, -1, 94,
1207 -1, 96, -1, 98, 99, 100, 101, -1, -1, -1,
1208 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1209 115, 116, 117, 118, 119, 120, 3, -1, -1, -1,
1210 -1, -1, -1, -1, -1, 12, -1, -1, -1, -1,
1211 17, 18, -1, -1, -1, -1, -1, -1, -1, -1,
1212 -1, -1, -1, 30, -1, -1, -1, -1, -1, -1,
1213 -1, 38, -1, -1, -1, -1, -1, -1, -1, -1,
1214 -1, -1, -1, -1, -1, 3, -1, -1, -1, -1,
1215 -1, -1, -1, -1, 12, -1, -1, -1, -1, 17,
1216 18, -1, -1, -1, -1, 72, 73, 74, 75, 76,
1217 -1, -1, 30, -1, -1, -1, -1, -1, -1, -1,
1218 -1, -1, -1, -1, -1, -1, -1, 94, -1, 96,
1219 -1, 98, 99, 100, 101, -1, -1, -1, 105, 106,
1220 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1221 117, 118, 119, 120, 72, 73, 74, 75, 76, -1,
1222 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1223 -1, -1, -1, -1, -1, -1, 94, -1, 96, -1,
1224 98, 99, 100, 101, -1, -1, -1, 105, 106, 107,
1225 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1226 118, 119, 120, 4, 5, 6, 7, 8, 9, 10,
1227 11, -1, -1, -1, -1, -1, 17, -1, 19, 20,
1228 21, 22, 23, 24, 25, 26, -1, -1, -1, 30,
1229 4, 5, 6, 7, 8, 9, 10, 11, -1, -1,
1230 -1, -1, -1, 17, -1, 19, 20, 21, 22, 23,
1231 24, 25, 26, -1, -1, -1, 30, 4, 5, 6,
1232 7, 8, 9, 10, 11, -1, -1, -1, -1, 70,
1233 17, -1, 19, 20, 21, 22, 23, 24, 25, 26,
1234 -1, -1, -1, 30, -1, -1, -1, -1, -1, 90,
1235 91, 92, 93, -1, -1, -1, -1, -1, -1, -1,
1236 -1, -1, -1, -1, -1, -1, -1, 4, 5, 6,
1237 7, 8, 9, 10, 11, -1, 90, 91, 92, 93,
1238 17, -1, 19, 20, 21, 22, 23, 24, 25, 26,
1239 -1, -1, -1, 30, 4, 5, 6, 7, 8, 9,
1240 10, 11, -1, 90, 91, 92, 93, 17, -1, 19,
1241 20, 21, 22, 23, 24, 25, 26, -1, -1, -1,
1242 30, 4, 5, 6, 7, 8, 9, 10, 11, -1,
1243 -1, -1, -1, -1, 17, -1, 19, 20, 21, 22,
1244 23, 24, 25, 26, -1, -1, -1, 30, -1, -1,
1245 -1, -1, -1, 90, 91, 92, 93, -1, -1, -1,
1246 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1247 -1, 4, 5, 6, 7, 8, 9, 10, 11, -1,
1248 90, 91, 92, 93, 17, -1, 19, 20, 21, 22,
1249 23, 24, 25, 26, -1, -1, -1, 30, 4, 5,
1250 6, 7, 8, 9, 10, 11, -1, 90, 91, 92,
1251 93, -1, -1, 19, 20, 21, 22, 23, 24, 25,
1252 26, 39, -1, -1, 30, -1, -1, -1, -1, -1,
1253 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1254 58, 59, 60, 61, 62, 63, 64, 65, -1, -1,
1255 -1, -1, 40, 71, -1, -1, -1, 90, 91, 92,
1256 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1257 58, 59, 60, 61, 62, 63, 64, 65, -1, -1,
1258 41, -1, -1, 71, 90, 91, 92, 48, 49, 50,
1259 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1260 61, 62, 63, 64, 65, 41, -1, -1, -1, -1,
1261 71, -1, 48, 49, 50, 51, 52, 53, 54, 55,
1262 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1263 -1, -1, -1, -1, -1, 71, 48, 49, 50, 51,
1264 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1265 62, 63, 64, 65, -1, -1, -1, -1, -1, 71,
1266 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1267 58, 59, 60, 61, 62, 63, 64, 65, -1, -1,
1268 -1, -1, -1, 71, 48, 49, 50, 51, 52, 53,
1269 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1270 64, 65, -1, -1, -1, -1, -1, 71, 48, 49,
1271 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1272 60, 61, 62, 63, 64, 65, -1, -1, -1, -1,
1276 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1277 symbol of state STATE-NUM. */
1278 static const unsigned char yystos
[] =
1280 0, 4, 5, 6, 7, 8, 9, 10, 11, 17,
1281 19, 20, 21, 22, 23, 24, 25, 26, 30, 36,
1282 37, 47, 89, 90, 91, 92, 93, 94, 95, 97,
1283 121, 126, 137, 138, 139, 140, 141, 159, 164, 166,
1284 167, 168, 169, 170, 171, 172, 173, 174, 179, 182,
1285 183, 186, 187, 188, 189, 190, 191, 193, 195, 196,
1286 200, 205, 215, 216, 9, 11, 3, 12, 17, 18,
1287 30, 38, 55, 72, 73, 74, 75, 76, 94, 96,
1288 98, 99, 100, 101, 105, 106, 107, 108, 109, 110,
1289 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
1290 135, 213, 214, 231, 241, 30, 90, 91, 92, 93,
1291 187, 193, 36, 72, 73, 74, 75, 76, 77, 78,
1292 79, 80, 81, 82, 83, 85, 86, 87, 88, 142,
1293 143, 144, 145, 147, 148, 149, 90, 91, 165, 166,
1294 188, 189, 193, 200, 206, 207, 135, 135, 135, 208,
1295 3, 6, 10, 12, 17, 160, 161, 167, 34, 216,
1296 50, 249, 250, 30, 186, 0, 139, 135, 194, 212,
1297 213, 4, 5, 6, 9, 175, 6, 172, 178, 37,
1298 129, 180, 38, 38, 42, 42, 212, 213, 38, 135,
1299 55, 128, 135, 135, 135, 40, 184, 27, 28, 29,
1300 126, 128, 135, 150, 151, 36, 0, 3, 4, 5,
1301 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1302 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1303 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1304 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1305 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1306 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1307 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1308 77, 78, 79, 80, 81, 82, 83, 84, 85, 87,
1309 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1310 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1311 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
1312 119, 120, 121, 124, 126, 127, 128, 129, 136, 154,
1313 155, 154, 34, 124, 146, 135, 150, 33, 35, 38,
1314 53, 54, 66, 67, 84, 134, 135, 156, 135, 208,
1315 135, 208, 37, 171, 135, 41, 210, 210, 210, 210,
1316 213, 31, 37, 42, 31, 180, 44, 211, 38, 135,
1317 6, 176, 6, 9, 177, 175, 38, 37, 17, 192,
1318 193, 192, 135, 201, 202, 98, 99, 100, 101, 102,
1319 103, 104, 222, 223, 224, 237, 238, 244, 245, 246,
1320 135, 212, 185, 194, 213, 123, 154, 136, 156, 38,
1321 135, 156, 38, 48, 49, 50, 51, 52, 53, 54,
1322 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1323 65, 71, 133, 41, 42, 198, 198, 37, 197, 198,
1324 197, 38, 135, 46, 222, 38, 37, 33, 212, 211,
1325 34, 181, 39, 40, 39, 40, 46, 40, 43, 194,
1326 227, 31, 33, 35, 38, 134, 194, 203, 204, 219,
1327 239, 240, 241, 249, 194, 135, 247, 248, 18, 240,
1328 241, 43, 223, 203, 39, 135, 40, 38, 39, 135,
1329 156, 157, 158, 156, 156, 38, 165, 199, 194, 194,
1330 212, 27, 28, 29, 33, 34, 162, 163, 43, 3,
1331 6, 10, 12, 13, 14, 15, 16, 17, 39, 217,
1332 218, 220, 221, 45, 135, 34, 39, 211, 17, 70,
1333 193, 211, 70, 203, 202, 46, 37, 30, 93, 166,
1334 203, 203, 71, 133, 46, 37, 38, 32, 46, 38,
1335 37, 40, 37, 37, 39, 194, 135, 152, 153, 39,
1336 39, 40, 41, 33, 40, 41, 209, 43, 165, 135,
1337 37, 41, 39, 40, 219, 39, 39, 39, 27, 96,
1338 114, 203, 226, 228, 229, 230, 231, 250, 39, 39,
1339 203, 203, 239, 194, 249, 185, 248, 39, 40, 156,
1340 156, 40, 185, 41, 37, 40, 209, 39, 220, 41,
1341 218, 220, 46, 211, 211, 17, 18, 231, 234, 38,
1342 38, 226, 203, 41, 40, 242, 194, 39, 154, 135,
1343 33, 37, 38, 185, 37, 220, 249, 162, 38, 203,
1344 219, 203, 70, 239, 243, 39, 37, 39, 33, 37,
1345 70, 219, 40, 40, 232, 39, 40, 40, 32, 38,
1346 203, 194, 225, 226, 227, 233, 250, 39, 239, 33,
1347 39, 235, 236, 239, 39, 40, 226, 39, 41, 39,
1348 40, 225, 220, 39, 239
1351 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1352 static const unsigned char yyr1
[] =
1354 0, 132, 133, 133, 133, 133, 133, 133, 133, 133,
1355 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
1356 134, 134, 134, 134, 135, 135, 135, 135, 135, 135,
1357 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
1358 135, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1359 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1360 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1361 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1362 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1363 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1364 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1365 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1366 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1367 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1368 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1369 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1370 136, 136, 136, 137, 137, 138, 138, 139, 139, 139,
1371 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
1372 140, 141, 141, 142, 142, 142, 142, 142, 142, 142,
1373 142, 143, 143, 144, 144, 145, 145, 145, 146, 146,
1374 147, 147, 148, 148, 148, 149, 149, 150, 150, 150,
1375 150, 150, 150, 151, 151, 152, 152, 153, 153, 154,
1376 154, 155, 155, 156, 156, 156, 156, 156, 156, 156,
1377 156, 156, 156, 157, 157, 158, 158, 159, 160, 161,
1378 161, 161, 161, 162, 162, 163, 163, 163, 163, 163,
1379 164, 165, 165, 165, 165, 165, 165, 166, 166, 167,
1380 167, 168, 168, 168, 169, 169, 169, 169, 170, 170,
1381 170, 171, 171, 171, 171, 171, 171, 171, 171, 172,
1382 172, 173, 173, 173, 174, 174, 174, 174, 175, 175,
1383 175, 175, 175, 176, 176, 177, 177, 177, 178, 178,
1384 178, 179, 179, 180, 180, 181, 181, 182, 183, 184,
1385 184, 185, 185, 186, 186, 187, 187, 188, 188, 189,
1386 189, 190, 190, 190, 190, 191, 191, 192, 192, 192,
1387 192, 193, 193, 193, 193, 194, 194, 195, 196, 197,
1388 197, 198, 199, 199, 199, 199, 200, 201, 201, 202,
1389 202, 203, 203, 203, 203, 203, 203, 204, 204, 204,
1390 204, 205, 206, 207, 208, 208, 209, 209, 210, 210,
1391 211, 211, 212, 212, 213, 213, 214, 214, 215, 215,
1392 216, 216, 216, 217, 217, 218, 218, 219, 220, 221,
1393 221, 221, 221, 221, 221, 221, 221, 221, 222, 222,
1394 223, 223, 223, 223, 223, 224, 224, 225, 225, 225,
1395 226, 226, 226, 226, 226, 227, 227, 228, 229, 230,
1396 231, 231, 231, 231, 231, 231, 231, 231, 231, 231,
1397 232, 232, 233, 233, 234, 234, 235, 235, 236, 236,
1398 237, 238, 239, 239, 239, 240, 240, 241, 241, 241,
1399 241, 241, 241, 241, 241, 242, 242, 243, 243, 244,
1400 245, 245, 246, 247, 247, 248, 249, 249, 250
1403 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
1404 static const unsigned char yyr2
[] =
1406 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1407 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1408 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1409 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1410 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1411 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1412 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1413 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1414 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1415 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1416 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1417 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1418 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1419 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1420 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1421 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1422 1, 1, 1, 0, 1, 1, 2, 1, 1, 1,
1423 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1424 3, 2, 3, 2, 2, 1, 2, 2, 2, 1,
1425 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1426 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1427 1, 1, 1, 6, 2, 0, 1, 1, 3, 0,
1428 1, 1, 2, 3, 2, 3, 5, 2, 4, 1,
1429 1, 1, 4, 0, 1, 1, 3, 6, 1, 1,
1430 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
1431 3, 1, 1, 2, 4, 4, 2, 2, 1, 1,
1432 1, 2, 2, 2, 1, 1, 1, 1, 1, 1,
1433 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1434 1, 1, 1, 2, 1, 1, 2, 2, 0, 1,
1435 2, 1, 2, 0, 1, 0, 1, 1, 0, 1,
1436 2, 3, 4, 0, 4, 1, 2, 2, 3, 0,
1437 2, 1, 3, 1, 2, 1, 1, 5, 7, 5,
1438 7, 6, 7, 6, 5, 1, 2, 0, 1, 1,
1439 3, 1, 2, 4, 3, 3, 2, 4, 4, 1,
1440 1, 3, 3, 4, 4, 5, 4, 1, 3, 1,
1441 3, 1, 4, 3, 3, 2, 5, 1, 1, 1,
1442 1, 2, 2, 2, 0, 1, 0, 7, 0, 7,
1443 0, 3, 0, 1, 1, 2, 1, 2, 4, 5,
1444 7, 8, 13, 1, 3, 2, 4, 2, 1, 1,
1445 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
1446 1, 1, 1, 1, 1, 3, 6, 1, 2, 1,
1447 1, 1, 1, 1, 1, 3, 4, 6, 8, 5,
1448 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1449 0, 2, 1, 3, 1, 1, 0, 1, 1, 3,
1450 3, 3, 1, 1, 3, 5, 6, 1, 1, 1,
1451 1, 1, 1, 1, 1, 0, 2, 1, 3, 3,
1452 1, 1, 3, 1, 3, 4, 0, 1, 1
1456 /* YYDPREC[RULE-NUM] -- Dynamic precedence of rule #RULE-NUM (0 if none). */
1457 static const unsigned char yydprec
[] =
1459 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1466 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1467 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1470 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1471 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1472 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1473 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1505 0, 0, 0, 0, 0, 0, 0, 0, 0
1508 /* YYMERGER[RULE-NUM] -- Index of merging function for rule #RULE-NUM. */
1509 static const unsigned char yymerger
[] =
1511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1513 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1524 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1527 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1530 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1531 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1534 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1540 0, 0, 0, 0, 0, 0, 0, 0, 0, 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
1560 /* YYIMMEDIATE[RULE-NUM] -- True iff rule #RULE-NUM is not to be deferred, as
1561 in the case of predicates. */
1562 static const yybool yyimmediate
[] =
1564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1565 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1567 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1570 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1571 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1572 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1574 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1575 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1576 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1577 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1578 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1579 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1582 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1583 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1584 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1585 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1586 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1587 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1588 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1589 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1590 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1593 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1595 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1596 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1598 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1600 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1601 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1602 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1603 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1604 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1605 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1606 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1607 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1608 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1609 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1610 0, 0, 0, 0, 0, 0, 0, 0, 0
1613 /* YYCONFLP[YYPACT[STATE-NUM]] -- Pointer into YYCONFL of start of
1614 list of conflicting reductions corresponding to action entry for
1615 state STATE-NUM in yytable. 0 means no conflicts. The list in
1616 yyconfl is terminated by a rule number of 0. */
1617 static const unsigned short int yyconflp
[] =
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, 5, 0, 0, 0, 0, 0, 0, 0,
1625 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1626 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1627 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1632 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1633 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1634 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1635 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1636 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1637 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1638 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1639 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1640 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1641 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1642 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1643 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1647 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1648 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1649 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1650 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1654 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1655 0, 0, 259, 0, 0, 0, 0, 0, 0, 0,
1656 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1657 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1658 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1659 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1662 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1667 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1668 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1670 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1671 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1673 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1674 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1676 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1677 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1678 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1679 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1680 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1681 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1682 0, 0, 0, 0, 7, 0, 0, 9, 11, 13,
1683 15, 17, 19, 21, 23, 25, 27, 29, 31, 33,
1684 35, 37, 39, 41, 43, 45, 47, 49, 51, 53,
1685 55, 57, 59, 61, 63, 65, 67, 69, 71, 73,
1686 75, 77, 79, 81, 83, 85, 87, 89, 91, 93,
1687 95, 97, 99, 101, 103, 105, 107, 109, 111, 113,
1688 115, 117, 119, 121, 123, 125, 127, 129, 131, 133,
1689 135, 137, 139, 141, 143, 145, 147, 149, 151, 153,
1690 155, 157, 159, 161, 163, 165, 167, 169, 171, 173,
1691 0, 175, 0, 177, 179, 181, 183, 185, 187, 189,
1692 191, 193, 195, 197, 199, 201, 203, 205, 207, 209,
1693 211, 213, 215, 217, 219, 221, 223, 225, 227, 229,
1694 231, 233, 235, 237, 239, 241, 0, 243, 245, 0,
1695 247, 249, 251, 253, 0, 0, 0, 0, 0, 0,
1696 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1697 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1698 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1699 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1700 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1701 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1702 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1703 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1704 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1705 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1706 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1707 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1709 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1712 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1713 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1714 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1715 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1717 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1725 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1726 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1728 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1734 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1737 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1740 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1743 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1748 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1755 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0,
1880 0, 0, 0, 0, 0, 0, 3, 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, 255, 0, 0,
1890 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1891 257, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1893 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1894 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1897 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1898 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1899 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1902 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1908 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1911 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1912 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1914 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1918 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1919 0, 0, 0, 0, 0, 0, 0, 261, 0, 0,
1920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1921 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1925 /* YYCONFL[I] -- lists of conflicting rule numbers, each terminated by
1926 0, pointed into by YYCONFLP. */
1927 static const short int yyconfl
[] =
1929 0, 267, 0, 267, 0, 331, 0, 453, 0, 453,
1930 0, 453, 0, 453, 0, 453, 0, 453, 0, 453,
1931 0, 453, 0, 453, 0, 453, 0, 453, 0, 453,
1932 0, 453, 0, 453, 0, 453, 0, 453, 0, 453,
1933 0, 453, 0, 453, 0, 453, 0, 453, 0, 453,
1934 0, 453, 0, 453, 0, 453, 0, 453, 0, 453,
1935 0, 453, 0, 453, 0, 453, 0, 453, 0, 453,
1936 0, 453, 0, 453, 0, 453, 0, 453, 0, 453,
1937 0, 453, 0, 453, 0, 453, 0, 453, 0, 453,
1938 0, 453, 0, 453, 0, 453, 0, 453, 0, 453,
1939 0, 453, 0, 453, 0, 453, 0, 453, 0, 453,
1940 0, 453, 0, 453, 0, 453, 0, 453, 0, 453,
1941 0, 453, 0, 453, 0, 453, 0, 453, 0, 453,
1942 0, 453, 0, 453, 0, 453, 0, 453, 0, 453,
1943 0, 453, 0, 453, 0, 453, 0, 453, 0, 453,
1944 0, 453, 0, 453, 0, 453, 0, 453, 0, 453,
1945 0, 453, 0, 453, 0, 453, 0, 453, 0, 453,
1946 0, 453, 0, 453, 0, 453, 0, 453, 0, 453,
1947 0, 453, 0, 453, 0, 453, 0, 453, 0, 453,
1948 0, 453, 0, 453, 0, 453, 0, 453, 0, 453,
1949 0, 453, 0, 453, 0, 453, 0, 453, 0, 453,
1950 0, 453, 0, 453, 0, 453, 0, 453, 0, 453,
1951 0, 453, 0, 453, 0, 453, 0, 453, 0, 453,
1952 0, 453, 0, 453, 0, 453, 0, 453, 0, 453,
1953 0, 453, 0, 453, 0, 453, 0, 453, 0, 453,
1954 0, 453, 0, 453, 0, 267, 0, 267, 0, 267,
1958 /* Error token number */
1965 #define yynerrs (yystackp->yyerrcnt)
1967 #define yychar (yystackp->yyrawchar)
1969 #define yylval (yystackp->yyval)
1971 #define yylloc (yystackp->yyloc)
1972 #define psi_parser_proc_nerrs yynerrs
1973 #define psi_parser_proc_char yychar
1974 #define psi_parser_proc_lval yylval
1975 #define psi_parser_proc_lloc yylloc
1977 static const int YYEOF
= 0;
1978 static const int YYEMPTY
= -2;
1980 typedef enum { yyok
, yyaccept
, yyabort
, yyerr
} YYRESULTTAG
;
1982 #define YYCHK(YYE) \
1984 YYRESULTTAG yychk_flag = YYE; \
1985 if (yychk_flag != yyok) \
1986 return yychk_flag; \
1992 # define YYFPRINTF fprintf
1995 /* This macro is provided for backward compatibility. */
1996 #ifndef YY_LOCATION_PRINT
1997 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2001 # define YYDPRINTF(Args) \
2008 /*----------------------------------------.
2009 | Print this symbol's value on YYOUTPUT. |
2010 `----------------------------------------*/
2013 yy_symbol_value_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
2015 FILE *yyo
= yyoutput
;
2026 /*--------------------------------.
2027 | Print this symbol on YYOUTPUT. |
2028 `--------------------------------*/
2031 yy_symbol_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
2033 YYFPRINTF (yyoutput
, "%s %s (",
2034 yytype
< YYNTOKENS
? "token" : "nterm", yytname
[yytype
]);
2036 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
, P
, tokens
, index
);
2037 YYFPRINTF (yyoutput
, ")");
2040 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2044 YYFPRINTF (stderr, "%s ", Title); \
2045 yy_symbol_print (stderr, Type, Value, P, tokens, index); \
2046 YYFPRINTF (stderr, "\n"); \
2050 /* Nonzero means print parse trace. It is left uninitialized so that
2051 multiple parsers can coexist. */
2055 static void yypstack (struct yyGLRStack
* yystackp
, size_t yyk
)
2056 YY_ATTRIBUTE_UNUSED
;
2057 static void yypdumpstack (struct yyGLRStack
* yystackp
)
2058 YY_ATTRIBUTE_UNUSED
;
2060 #else /* !YYDEBUG */
2062 # define YYDPRINTF(Args)
2063 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2065 #endif /* !YYDEBUG */
2067 /* YYINITDEPTH -- initial size of the parser's stacks. */
2069 # define YYINITDEPTH 200
2072 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2073 if the built-in stack extension method is used).
2075 Do not make this value too large; the results are undefined if
2076 SIZE_MAX < YYMAXDEPTH * sizeof (GLRStackItem)
2077 evaluated with infinite-precision integer arithmetic. */
2080 # define YYMAXDEPTH 10000
2083 /* Minimum number of free items on the stack allowed after an
2084 allocation. This is to allow allocation and initialization
2085 to be completed by functions that call yyexpandGLRStack before the
2086 stack is expanded, thus insuring that all necessary pointers get
2087 properly redirected to new data. */
2088 #define YYHEADROOM 2
2090 #ifndef YYSTACKEXPANDABLE
2091 # define YYSTACKEXPANDABLE 1
2094 #if YYSTACKEXPANDABLE
2095 # define YY_RESERVE_GLRSTACK(Yystack) \
2097 if (Yystack->yyspaceLeft < YYHEADROOM) \
2098 yyexpandGLRStack (Yystack); \
2101 # define YY_RESERVE_GLRSTACK(Yystack) \
2103 if (Yystack->yyspaceLeft < YYHEADROOM) \
2104 yyMemoryExhausted (Yystack); \
2112 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2113 # define yystpcpy stpcpy
2115 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2118 yystpcpy (char *yydest
, const char *yysrc
)
2121 const char *yys
= yysrc
;
2123 while ((*yyd
++ = *yys
++) != '\0')
2132 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2133 quotes and backslashes, so that it's suitable for yyerror. The
2134 heuristic is that double-quoting is unnecessary unless the string
2135 contains an apostrophe, a comma, or backslash (other than
2136 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2137 null, do not copy; instead, return the length of what the result
2140 yytnamerr (char *yyres
, const char *yystr
)
2145 char const *yyp
= yystr
;
2152 goto do_not_strip_quotes
;
2156 goto do_not_strip_quotes
;
2169 do_not_strip_quotes
: ;
2173 return strlen (yystr
);
2175 return yystpcpy (yyres
, yystr
) - yyres
;
2179 #endif /* !YYERROR_VERBOSE */
2181 /** State numbers, as in LALR(1) machine */
2182 typedef int yyStateNum
;
2184 /** Rule numbers, as in LALR(1) machine */
2185 typedef int yyRuleNum
;
2187 /** Grammar symbol */
2188 typedef int yySymbol
;
2190 /** Item references, as in LALR(1) machine */
2191 typedef short int yyItemNum
;
2193 typedef struct yyGLRState yyGLRState
;
2194 typedef struct yyGLRStateSet yyGLRStateSet
;
2195 typedef struct yySemanticOption yySemanticOption
;
2196 typedef union yyGLRStackItem yyGLRStackItem
;
2197 typedef struct yyGLRStack yyGLRStack
;
2200 /** Type tag: always true. */
2202 /** Type tag for yysemantics. If true, yysval applies, otherwise
2203 * yyfirstVal applies. */
2205 /** Number of corresponding LALR(1) machine state. */
2206 yyStateNum yylrState
;
2207 /** Preceding state in this stack */
2209 /** Source position of the last token produced by my symbol */
2212 /** First in a chain of alternative reductions producing the
2213 * non-terminal corresponding to this state, threaded through
2215 yySemanticOption
* yyfirstVal
;
2216 /** Semantic value for this state. */
2221 struct yyGLRStateSet
{
2222 yyGLRState
** yystates
;
2223 /** During nondeterministic operation, yylookaheadNeeds tracks which
2224 * stacks have actually needed the current lookahead. During deterministic
2225 * operation, yylookaheadNeeds[0] is not maintained since it would merely
2226 * duplicate yychar != YYEMPTY. */
2227 yybool
* yylookaheadNeeds
;
2228 size_t yysize
, yycapacity
;
2231 struct yySemanticOption
{
2232 /** Type tag: always false. */
2234 /** Rule number for this reduction */
2236 /** The last RHS state in the list of states to be reduced. */
2237 yyGLRState
* yystate
;
2238 /** The lookahead for this reduction. */
2241 /** Next sibling in chain of options. To facilitate merging,
2242 * options are chained in decreasing order by address. */
2243 yySemanticOption
* yynext
;
2246 /** Type of the items in the GLR stack. The yyisState field
2247 * indicates which item of the union is valid. */
2248 union yyGLRStackItem
{
2250 yySemanticOption yyoption
;
2261 YYJMP_BUF yyexception_buffer
;
2262 yyGLRStackItem
* yyitems
;
2263 yyGLRStackItem
* yynextFree
;
2265 yyGLRState
* yysplitPoint
;
2266 yyGLRState
* yylastDeleted
;
2267 yyGLRStateSet yytops
;
2270 #if YYSTACKEXPANDABLE
2271 static void yyexpandGLRStack (yyGLRStack
* yystackp
);
2274 static _Noreturn
void
2275 yyFail (yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
, const char* yymsg
)
2277 if (yymsg
!= YY_NULLPTR
)
2278 yyerror (P
, tokens
, index
, yymsg
);
2279 YYLONGJMP (yystackp
->yyexception_buffer
, 1);
2282 static _Noreturn
void
2283 yyMemoryExhausted (yyGLRStack
* yystackp
)
2285 YYLONGJMP (yystackp
->yyexception_buffer
, 2);
2288 #if YYDEBUG || YYERROR_VERBOSE
2289 /** A printable representation of TOKEN. */
2290 static inline const char*
2291 yytokenName (yySymbol yytoken
)
2293 if (yytoken
== YYEMPTY
)
2296 return yytname
[yytoken
];
2300 /** Fill in YYVSP[YYLOW1 .. YYLOW0-1] from the chain of states starting
2301 * at YYVSP[YYLOW0].yystate.yypred. Leaves YYVSP[YYLOW1].yystate.yypred
2302 * containing the pointer to the next state in the chain. */
2303 static void yyfillin (yyGLRStackItem
*, int, int) YY_ATTRIBUTE_UNUSED
;
2305 yyfillin (yyGLRStackItem
*yyvsp
, int yylow0
, int yylow1
)
2308 yyGLRState
*s
= yyvsp
[yylow0
].yystate
.yypred
;
2309 for (i
= yylow0
-1; i
>= yylow1
; i
-= 1)
2312 yyvsp
[i
].yystate
.yylrState
= s
->yylrState
;
2314 yyvsp
[i
].yystate
.yyresolved
= s
->yyresolved
;
2316 yyvsp
[i
].yystate
.yysemantics
.yysval
= s
->yysemantics
.yysval
;
2318 /* The effect of using yysval or yyloc (in an immediate rule) is
2320 yyvsp
[i
].yystate
.yysemantics
.yyfirstVal
= YY_NULLPTR
;
2321 s
= yyvsp
[i
].yystate
.yypred
= s
->yypred
;
2325 /* Do nothing if YYNORMAL or if *YYLOW <= YYLOW1. Otherwise, fill in
2326 * YYVSP[YYLOW1 .. *YYLOW-1] as in yyfillin and set *YYLOW = YYLOW1.
2327 * For convenience, always return YYLOW1. */
2328 static inline int yyfill (yyGLRStackItem
*, int *, int, yybool
)
2329 YY_ATTRIBUTE_UNUSED
;
2331 yyfill (yyGLRStackItem
*yyvsp
, int *yylow
, int yylow1
, yybool yynormal
)
2333 if (!yynormal
&& yylow1
< *yylow
)
2335 yyfillin (yyvsp
, *yylow
, yylow1
);
2341 /** Perform user action for rule number YYN, with RHS length YYRHSLEN,
2342 * and top stack item YYVSP. YYLVALP points to place to put semantic
2343 * value ($$), and yylocp points to place for location information
2344 * (@$). Returns yyok for normal return, yyaccept for YYACCEPT,
2345 * yyerr for YYERROR, yyabort for YYABORT. */
2347 yyuserAction (yyRuleNum yyn
, size_t yyrhslen
, yyGLRStackItem
* yyvsp
,
2348 yyGLRStack
* yystackp
,
2349 YYSTYPE
* yyvalp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
2351 yybool yynormal YY_ATTRIBUTE_UNUSED
= (yystackp
->yysplitPoint
== YY_NULLPTR
);
2359 # define yyerrok (yystackp->yyerrState = 0)
2361 # define YYACCEPT return yyaccept
2363 # define YYABORT return yyabort
2365 # define YYERROR return yyerrok, yyerr
2366 # undef YYRECOVERING
2367 # define YYRECOVERING() (yystackp->yyerrState != 0)
2369 # define yyclearin (yychar = YYEMPTY)
2371 # define YYFILL(N) yyfill (yyvsp, &yylow, N, yynormal)
2373 # define YYBACKUP(Token, Value) \
2374 return yyerror (P, tokens, index, YY_("syntax error: cannot back up")), \
2379 *yyvalp
= yyval_default
;
2381 *yyvalp
= yyvsp
[YYFILL (1-yyrhslen
)].yystate
.yysemantics
.yysval
;
2385 #line 410 "src/parser_proc_grammar.y" /* glr.c:816 */
2387 if ((*(struct psi_cpp_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2388 psi_cpp_exp_exec((*(struct psi_cpp_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), P
->preproc
, PSI_DATA(P
));
2389 psi_cpp_exp_free(&(*(struct psi_cpp_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2392 #line 2393 "src/parser_proc.c" /* glr.c:816 */
2396 #line 416 "src/parser_proc_grammar.y" /* glr.c:816 */
2399 P
->error(PSI_DATA(P
), (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), PSI_WARNING
,
2400 "Extra 'lib \"%s\"' statement has no effect", (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
);
2402 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
);
2405 #line 2406 "src/parser_proc.c" /* glr.c:816 */
2409 #line 424 "src/parser_proc_grammar.y" /* glr.c:816 */
2411 psi_parser_proc_add_const(P
, (*(struct psi_const
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2413 #line 2414 "src/parser_proc.c" /* glr.c:816 */
2417 #line 427 "src/parser_proc_grammar.y" /* glr.c:816 */
2419 psi_parser_proc_add_decl(P
, (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2421 #line 2422 "src/parser_proc.c" /* glr.c:816 */
2425 #line 431 "src/parser_proc_grammar.y" /* glr.c:816 */
2427 psi_parser_proc_add_typedef(P
, (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2429 #line 2430 "src/parser_proc.c" /* glr.c:816 */
2433 #line 434 "src/parser_proc_grammar.y" /* glr.c:816 */
2435 psi_parser_proc_add_struct(P
, (*(struct psi_decl_struct
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2437 #line 2438 "src/parser_proc.c" /* glr.c:816 */
2441 #line 437 "src/parser_proc_grammar.y" /* glr.c:816 */
2443 psi_parser_proc_add_union(P
, (*(struct psi_decl_union
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2445 #line 2446 "src/parser_proc.c" /* glr.c:816 */
2449 #line 440 "src/parser_proc_grammar.y" /* glr.c:816 */
2451 psi_parser_proc_add_enum(P
, (*(struct psi_decl_enum
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2453 #line 2454 "src/parser_proc.c" /* glr.c:816 */
2457 #line 443 "src/parser_proc_grammar.y" /* glr.c:816 */
2459 psi_parser_proc_add_impl(P
, (*(struct psi_impl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2461 #line 2462 "src/parser_proc.c" /* glr.c:816 */
2465 #line 449 "src/parser_proc_grammar.y" /* glr.c:816 */
2467 (*(struct psi_token
**)(&(*yyvalp
))) = (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2469 #line 2470 "src/parser_proc.c" /* glr.c:816 */
2473 #line 455 "src/parser_proc_grammar.y" /* glr.c:816 */
2475 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = NULL
;
2477 #line 2478 "src/parser_proc.c" /* glr.c:816 */
2481 #line 458 "src/parser_proc_grammar.y" /* glr.c:816 */
2483 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = (*(struct psi_cpp_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2485 #line 2486 "src/parser_proc.c" /* glr.c:816 */
2489 #line 464 "src/parser_proc_grammar.y" /* glr.c:816 */
2491 if ((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2492 struct psi_token
*msg
= NULL
;
2494 if (psi_plist_get((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), 0, &msg
)) {
2496 struct psi_token
*next
;
2498 msg
= psi_token_copy(msg
);
2499 while (psi_plist_get((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), index
++, &next
)) {
2500 struct psi_token
*old
= msg
;
2501 msg
= psi_token_cat(" ", 2, msg
, next
);
2505 psi_plist_free((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2507 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, msg
);
2509 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, NULL
);
2511 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2513 #line 2514 "src/parser_proc.c" /* glr.c:816 */
2517 #line 487 "src/parser_proc_grammar.y" /* glr.c:816 */
2519 (*(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
))));
2520 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2522 #line 2523 "src/parser_proc.c" /* glr.c:816 */
2526 #line 491 "src/parser_proc_grammar.y" /* glr.c:816 */
2528 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
, NULL
);
2529 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2531 #line 2532 "src/parser_proc.c" /* glr.c:816 */
2535 #line 495 "src/parser_proc_grammar.y" /* glr.c:816 */
2537 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2538 (*(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
))));
2539 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2541 #line 2542 "src/parser_proc.c" /* glr.c:816 */
2545 #line 500 "src/parser_proc_grammar.y" /* glr.c:816 */
2547 (*(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
)));
2548 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2550 #line 2551 "src/parser_proc.c" /* glr.c:816 */
2554 #line 504 "src/parser_proc_grammar.y" /* glr.c:816 */
2556 (*(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
)));
2557 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2559 #line 2560 "src/parser_proc.c" /* glr.c:816 */
2563 #line 508 "src/parser_proc_grammar.y" /* glr.c:816 */
2565 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
, NULL
);
2566 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2568 #line 2569 "src/parser_proc.c" /* glr.c:816 */
2572 #line 512 "src/parser_proc_grammar.y" /* glr.c:816 */
2574 psi_plist_free((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2575 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = NULL
;
2577 #line 2578 "src/parser_proc.c" /* glr.c:816 */
2581 #line 565 "src/parser_proc_grammar.y" /* glr.c:816 */
2583 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2584 (*(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
);
2585 (*(struct psi_cpp_macro_decl
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
2587 #line 2588 "src/parser_proc.c" /* glr.c:816 */
2591 #line 570 "src/parser_proc_grammar.y" /* glr.c:816 */
2593 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2594 (*(struct psi_cpp_macro_decl
**)(&(*yyvalp
))) = psi_cpp_macro_decl_init(NULL
, (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), NULL
);
2595 (*(struct psi_cpp_macro_decl
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2597 #line 2598 "src/parser_proc.c" /* glr.c:816 */
2601 #line 578 "src/parser_proc_grammar.y" /* glr.c:816 */
2603 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_init(NULL
);
2605 #line 2606 "src/parser_proc.c" /* glr.c:816 */
2609 #line 585 "src/parser_proc_grammar.y" /* glr.c:816 */
2611 (*(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
)));
2612 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2613 (*(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
)));
2615 #line 2616 "src/parser_proc.c" /* glr.c:816 */
2619 #line 590 "src/parser_proc_grammar.y" /* glr.c:816 */
2621 (*(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
)));
2622 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2623 (*(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
)));
2625 #line 2626 "src/parser_proc.c" /* glr.c:816 */
2629 #line 598 "src/parser_proc_grammar.y" /* glr.c:816 */
2631 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
2633 #line 2634 "src/parser_proc.c" /* glr.c:816 */
2637 #line 605 "src/parser_proc_grammar.y" /* glr.c:816 */
2639 (*(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
)));
2640 (*(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
)));
2642 #line 2643 "src/parser_proc.c" /* glr.c:816 */
2646 #line 609 "src/parser_proc_grammar.y" /* glr.c:816 */
2648 (*(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
)));
2649 (*(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
)));
2651 #line 2652 "src/parser_proc.c" /* glr.c:816 */
2655 #line 616 "src/parser_proc_grammar.y" /* glr.c:816 */
2657 (*(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
)));
2658 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
2660 #line 2661 "src/parser_proc.c" /* glr.c:816 */
2664 #line 620 "src/parser_proc_grammar.y" /* glr.c:816 */
2666 (*(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
)));
2667 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2669 #line 2670 "src/parser_proc.c" /* glr.c:816 */
2673 #line 624 "src/parser_proc_grammar.y" /* glr.c:816 */
2675 (*(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
)));
2676 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2678 #line 2679 "src/parser_proc.c" /* glr.c:816 */
2682 #line 628 "src/parser_proc_grammar.y" /* glr.c:816 */
2684 (*(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
)));
2685 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2687 #line 2688 "src/parser_proc.c" /* glr.c:816 */
2691 #line 633 "src/parser_proc_grammar.y" /* glr.c:816 */
2696 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2697 exists
= psi_cpp_defined(P
->preproc
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2698 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8
, &exists
, 0));
2699 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2702 #line 2703 "src/parser_proc.c" /* glr.c:816 */
2706 #line 643 "src/parser_proc_grammar.y" /* glr.c:816 */
2711 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2712 exists
= psi_cpp_defined(P
->preproc
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2713 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8
, &exists
, 0));
2714 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2717 #line 2718 "src/parser_proc.c" /* glr.c:816 */
2721 #line 653 "src/parser_proc_grammar.y" /* glr.c:816 */
2723 (*(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
));
2724 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2725 (*(struct psi_num_exp
**)(&(*yyvalp
)))->data
.n
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2727 #line 2728 "src/parser_proc.c" /* glr.c:816 */
2731 #line 658 "src/parser_proc_grammar.y" /* glr.c:816 */
2733 (*(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));
2734 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2735 (*(struct psi_num_exp
**)(&(*yyvalp
)))->data
.n
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2737 #line 2738 "src/parser_proc.c" /* glr.c:816 */
2741 #line 663 "src/parser_proc_grammar.y" /* glr.c:816 */
2743 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2744 (*(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));
2745 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2746 (*(struct psi_num_exp
**)(&(*yyvalp
)))->data
.n
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2748 #line 2749 "src/parser_proc.c" /* glr.c:816 */
2752 #line 669 "src/parser_proc_grammar.y" /* glr.c:816 */
2754 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2755 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num(psi_number_init(PSI_T_FUNCTION
,
2756 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));
2757 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2759 #line 2760 "src/parser_proc.c" /* glr.c:816 */
2763 #line 678 "src/parser_proc_grammar.y" /* glr.c:816 */
2765 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
2767 #line 2768 "src/parser_proc.c" /* glr.c:816 */
2771 #line 685 "src/parser_proc_grammar.y" /* glr.c:816 */
2773 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add(psi_plist_init((psi_plist_dtor
) psi_num_exp_free
),
2774 &(*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2776 #line 2777 "src/parser_proc.c" /* glr.c:816 */
2780 #line 689 "src/parser_proc_grammar.y" /* glr.c:816 */
2782 (*(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
)));
2784 #line 2785 "src/parser_proc.c" /* glr.c:816 */
2788 #line 695 "src/parser_proc_grammar.y" /* glr.c:816 */
2790 (*(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
)));
2791 (*(struct psi_const
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2793 #line 2794 "src/parser_proc.c" /* glr.c:816 */
2797 #line 702 "src/parser_proc_grammar.y" /* glr.c:816 */
2799 (*(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
);
2801 #line 2802 "src/parser_proc.c" /* glr.c:816 */
2805 #line 715 "src/parser_proc_grammar.y" /* glr.c:816 */
2807 (*(struct psi_impl_def_val
**)(&(*yyvalp
))) = NULL
;
2809 #line 2810 "src/parser_proc.c" /* glr.c:816 */
2813 #line 718 "src/parser_proc_grammar.y" /* glr.c:816 */
2815 (*(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
);
2816 (*(struct psi_impl_def_val
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2818 #line 2819 "src/parser_proc.c" /* glr.c:816 */
2822 #line 733 "src/parser_proc_grammar.y" /* glr.c:816 */
2824 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2826 #line 2827 "src/parser_proc.c" /* glr.c:816 */
2830 #line 740 "src/parser_proc_grammar.y" /* glr.c:816 */
2832 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
2833 psi_decl_type_init(PSI_T_FUNCTION
, (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->var
->name
),
2834 psi_decl_var_copy((*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->var
)
2836 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->token
);
2837 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.func
= (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
2839 #line 2840 "src/parser_proc.c" /* glr.c:816 */
2843 #line 748 "src/parser_proc_grammar.y" /* glr.c:816 */
2845 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2846 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
2847 psi_decl_type_init(PSI_T_ENUM
, (*(struct psi_decl_enum
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->name
),
2848 psi_decl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, 0, 0)
2850 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2851 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_decl_enum
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->token
);
2852 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.enm
= (*(struct psi_decl_enum
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2854 #line 2855 "src/parser_proc.c" /* glr.c:816 */
2858 #line 758 "src/parser_proc_grammar.y" /* glr.c:816 */
2860 (*(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
)));
2861 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
));
2862 (*(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
)));
2863 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.strct
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2864 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.strct
->align
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)).pos
;
2865 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.strct
->size
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)).len
;
2867 #line 2868 "src/parser_proc.c" /* glr.c:816 */
2871 #line 766 "src/parser_proc_grammar.y" /* glr.c:816 */
2873 (*(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
)));
2874 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
));
2875 (*(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
)));
2876 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.unn
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2877 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.unn
->align
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)).pos
;
2878 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.unn
->size
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)).len
;
2880 #line 2881 "src/parser_proc.c" /* glr.c:816 */
2884 #line 774 "src/parser_proc_grammar.y" /* glr.c:816 */
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((*(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));
2888 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2890 #line 2891 "src/parser_proc.c" /* glr.c:816 */
2894 #line 782 "src/parser_proc_grammar.y" /* glr.c:816 */
2896 (*(struct psi_decl_type
**)(&(*yyvalp
))) = (*(struct psi_decl_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
2898 #line 2899 "src/parser_proc.c" /* glr.c:816 */
2902 #line 789 "src/parser_proc_grammar.y" /* glr.c:816 */
2904 (*(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
);
2905 (*(struct psi_decl_type
**)(&(*yyvalp
)))->token
= (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
2907 #line 2908 "src/parser_proc.c" /* glr.c:816 */
2911 #line 797 "src/parser_proc_grammar.y" /* glr.c:816 */
2913 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2914 (*(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
);
2915 (*(struct psi_decl_type
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2917 #line 2918 "src/parser_proc.c" /* glr.c:816 */
2921 #line 802 "src/parser_proc_grammar.y" /* glr.c:816 */
2923 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2924 (*(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
);
2925 (*(struct psi_decl_type
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2927 #line 2928 "src/parser_proc.c" /* glr.c:816 */
2931 #line 807 "src/parser_proc_grammar.y" /* glr.c:816 */
2933 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2934 (*(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
);
2935 (*(struct psi_decl_type
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2937 #line 2938 "src/parser_proc.c" /* glr.c:816 */
2941 #line 817 "src/parser_proc_grammar.y" /* glr.c:816 */
2943 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2945 #line 2946 "src/parser_proc.c" /* glr.c:816 */
2949 #line 820 "src/parser_proc_grammar.y" /* glr.c:816 */
2951 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2953 #line 2954 "src/parser_proc.c" /* glr.c:816 */
2957 #line 826 "src/parser_proc_grammar.y" /* glr.c:816 */
2959 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2961 #line 2962 "src/parser_proc.c" /* glr.c:816 */
2965 #line 829 "src/parser_proc_grammar.y" /* glr.c:816 */
2967 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2969 #line 2970 "src/parser_proc.c" /* glr.c:816 */
2973 #line 832 "src/parser_proc_grammar.y" /* glr.c:816 */
2975 (*(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
)));
2977 #line 2978 "src/parser_proc.c" /* glr.c:816 */
2981 #line 854 "src/parser_proc_grammar.y" /* glr.c:816 */
2983 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2985 #line 2986 "src/parser_proc.c" /* glr.c:816 */
2989 #line 857 "src/parser_proc_grammar.y" /* glr.c:816 */
2991 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2993 #line 2994 "src/parser_proc.c" /* glr.c:816 */
2997 #line 860 "src/parser_proc_grammar.y" /* glr.c:816 */
2999 (*(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
)));
3001 #line 3002 "src/parser_proc.c" /* glr.c:816 */
3005 #line 866 "src/parser_proc_grammar.y" /* glr.c:816 */
3007 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3009 #line 3010 "src/parser_proc.c" /* glr.c:816 */
3013 #line 869 "src/parser_proc_grammar.y" /* glr.c:816 */
3015 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3017 #line 3018 "src/parser_proc.c" /* glr.c:816 */
3021 #line 872 "src/parser_proc_grammar.y" /* glr.c:816 */
3023 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3024 (*(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
)));
3025 free((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3027 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3030 #line 3031 "src/parser_proc.c" /* glr.c:816 */
3034 #line 880 "src/parser_proc_grammar.y" /* glr.c:816 */
3036 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3037 (*(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
)));
3038 free((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3039 free((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3041 (*(struct psi_token
**)(&(*yyvalp
))) = (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
3044 #line 3045 "src/parser_proc.c" /* glr.c:816 */
3048 #line 892 "src/parser_proc_grammar.y" /* glr.c:816 */
3050 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
3052 #line 3053 "src/parser_proc.c" /* glr.c:816 */
3056 #line 895 "src/parser_proc_grammar.y" /* glr.c:816 */
3058 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3060 #line 3061 "src/parser_proc.c" /* glr.c:816 */
3064 #line 898 "src/parser_proc_grammar.y" /* glr.c:816 */
3066 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3067 (*(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
)));
3069 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3072 #line 3073 "src/parser_proc.c" /* glr.c:816 */
3076 #line 905 "src/parser_proc_grammar.y" /* glr.c:816 */
3078 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3080 #line 3081 "src/parser_proc.c" /* glr.c:816 */
3084 #line 908 "src/parser_proc_grammar.y" /* glr.c:816 */
3086 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3087 (*(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
)));
3089 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3092 #line 3093 "src/parser_proc.c" /* glr.c:816 */
3096 #line 918 "src/parser_proc_grammar.y" /* glr.c:816 */
3098 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
3100 #line 3101 "src/parser_proc.c" /* glr.c:816 */
3104 #line 924 "src/parser_proc_grammar.y" /* glr.c:816 */
3106 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
3108 #line 3109 "src/parser_proc.c" /* glr.c:816 */
3112 #line 932 "src/parser_proc_grammar.y" /* glr.c:816 */
3114 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
3116 #line 3117 "src/parser_proc.c" /* glr.c:816 */
3120 #line 935 "src/parser_proc_grammar.y" /* glr.c:816 */
3122 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3124 #line 3125 "src/parser_proc.c" /* glr.c:816 */
3128 #line 938 "src/parser_proc_grammar.y" /* glr.c:816 */
3130 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3131 (*(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
)));
3132 free((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3134 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3137 #line 3138 "src/parser_proc.c" /* glr.c:816 */
3141 #line 949 "src/parser_proc_grammar.y" /* glr.c:816 */
3143 (*(struct psi_decl
**)(&(*yyvalp
))) = (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3145 #line 3146 "src/parser_proc.c" /* glr.c:816 */
3149 #line 952 "src/parser_proc_grammar.y" /* glr.c:816 */
3151 (*(struct psi_decl
**)(&(*yyvalp
))) = (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3153 #line 3154 "src/parser_proc.c" /* glr.c:816 */
3157 #line 972 "src/parser_proc_grammar.y" /* glr.c:816 */
3159 psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3161 #line 3162 "src/parser_proc.c" /* glr.c:816 */
3165 #line 979 "src/parser_proc_grammar.y" /* glr.c:816 */
3167 psi_plist_free((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3169 #line 3170 "src/parser_proc.c" /* glr.c:816 */
3173 #line 985 "src/parser_proc_grammar.y" /* glr.c:816 */
3175 (*(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
)));
3177 #line 3178 "src/parser_proc.c" /* glr.c:816 */
3181 #line 988 "src/parser_proc_grammar.y" /* glr.c:816 */
3183 (*(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
)));
3185 #line 3186 "src/parser_proc.c" /* glr.c:816 */
3189 #line 995 "src/parser_proc_grammar.y" /* glr.c:816 */
3191 (*(struct psi_decl
**)(&(*yyvalp
))) = (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3192 (*(struct psi_decl
**)(&(*yyvalp
)))->abi
= psi_decl_abi_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
);
3194 #line 3195 "src/parser_proc.c" /* glr.c:816 */
3198 #line 1007 "src/parser_proc_grammar.y" /* glr.c:816 */
3200 (*(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
)));
3201 if ((*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3202 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->pointer_level
+= 1;
3203 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->array_size
= (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3206 #line 3207 "src/parser_proc.c" /* glr.c:816 */
3210 #line 1014 "src/parser_proc_grammar.y" /* glr.c:816 */
3212 (*(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
)));
3213 (*(struct psi_decl
**)(&(*yyvalp
)))->varargs
= 1;
3214 if ((*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3215 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->pointer_level
+= 1;
3216 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->array_size
= (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3219 #line 3220 "src/parser_proc.c" /* glr.c:816 */
3223 #line 1025 "src/parser_proc_grammar.y" /* glr.c:816 */
3225 (*(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
)));
3226 if ((*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3227 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->pointer_level
+= 1;
3228 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->array_size
= (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3231 #line 3232 "src/parser_proc.c" /* glr.c:816 */
3235 #line 1032 "src/parser_proc_grammar.y" /* glr.c:816 */
3237 (*(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
)));
3238 (*(struct psi_decl
**)(&(*yyvalp
)))->varargs
= 1;
3239 if ((*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3240 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->pointer_level
+= 1;
3241 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->array_size
= (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3244 #line 3245 "src/parser_proc.c" /* glr.c:816 */
3248 #line 1043 "src/parser_proc_grammar.y" /* glr.c:816 */
3250 (void) (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3251 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3252 (*(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));
3253 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3254 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3256 #line 3257 "src/parser_proc.c" /* glr.c:816 */
3260 #line 1050 "src/parser_proc_grammar.y" /* glr.c:816 */
3262 (void) (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3263 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3264 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3265 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
),
3266 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)
3268 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
3269 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3270 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3272 #line 3273 "src/parser_proc.c" /* glr.c:816 */
3276 #line 1061 "src/parser_proc_grammar.y" /* glr.c:816 */
3278 (void) (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3279 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3280 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3281 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
),
3282 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)
3284 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
3285 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3286 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3288 #line 3289 "src/parser_proc.c" /* glr.c:816 */
3292 #line 1072 "src/parser_proc_grammar.y" /* glr.c:816 */
3294 (void) (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3295 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3296 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3297 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
),
3298 psi_decl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
, 0, 0)
3300 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
3301 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3302 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3304 #line 3305 "src/parser_proc.c" /* glr.c:816 */
3308 #line 1087 "src/parser_proc_grammar.y" /* glr.c:816 */
3310 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3311 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
),
3312 psi_decl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, 0, 0)
3314 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3315 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3316 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3318 #line 3319 "src/parser_proc.c" /* glr.c:816 */
3322 #line 1099 "src/parser_proc_grammar.y" /* glr.c:816 */
3324 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
3326 #line 3327 "src/parser_proc.c" /* glr.c:816 */
3330 #line 1102 "src/parser_proc_grammar.y" /* glr.c:816 */
3332 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
3334 #line 3335 "src/parser_proc.c" /* glr.c:816 */
3338 #line 1105 "src/parser_proc_grammar.y" /* glr.c:816 */
3340 (*(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
)));
3342 #line 3343 "src/parser_proc.c" /* glr.c:816 */
3346 #line 1108 "src/parser_proc_grammar.y" /* glr.c:816 */
3348 (*(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
)));
3350 #line 3351 "src/parser_proc.c" /* glr.c:816 */
3354 #line 1114 "src/parser_proc_grammar.y" /* glr.c:816 */
3356 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3357 psi_decl_type_init(PSI_T_FUNCTION
, (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->var
->name
),
3358 psi_decl_var_copy((*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->var
)
3360 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->token
);
3361 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.func
= (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3363 #line 3364 "src/parser_proc.c" /* glr.c:816 */
3367 #line 1122 "src/parser_proc_grammar.y" /* glr.c:816 */
3369 (*(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
)));
3371 #line 3372 "src/parser_proc.c" /* glr.c:816 */
3375 #line 1125 "src/parser_proc_grammar.y" /* glr.c:816 */
3377 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3378 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3379 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
),
3380 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)
3382 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3383 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3384 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3386 #line 3387 "src/parser_proc.c" /* glr.c:816 */
3390 #line 1135 "src/parser_proc_grammar.y" /* glr.c:816 */
3392 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3393 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3394 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
),
3395 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)
3397 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3398 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3399 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3401 #line 3402 "src/parser_proc.c" /* glr.c:816 */
3405 #line 1148 "src/parser_proc_grammar.y" /* glr.c:816 */
3407 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3408 (*(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
)));
3409 (*(struct psi_decl_var
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3411 #line 3412 "src/parser_proc.c" /* glr.c:816 */
3415 #line 1153 "src/parser_proc_grammar.y" /* glr.c:816 */
3417 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3418 (*(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
)));
3419 (*(struct psi_decl_var
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3421 #line 3422 "src/parser_proc.c" /* glr.c:816 */
3425 #line 1161 "src/parser_proc_grammar.y" /* glr.c:816 */
3427 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3428 (*(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
)));
3429 (*(struct psi_decl_union
**)(&(*yyvalp
)))->align
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)).pos
;
3430 (*(struct psi_decl_union
**)(&(*yyvalp
)))->size
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)).len
;
3431 (*(struct psi_decl_union
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3433 #line 3434 "src/parser_proc.c" /* glr.c:816 */
3437 #line 1171 "src/parser_proc_grammar.y" /* glr.c:816 */
3439 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3440 (*(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
)));
3441 (*(struct psi_decl_struct
**)(&(*yyvalp
)))->align
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)).pos
;
3442 (*(struct psi_decl_struct
**)(&(*yyvalp
)))->size
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)).len
;
3443 (*(struct psi_decl_struct
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3445 #line 3446 "src/parser_proc.c" /* glr.c:816 */
3449 #line 1181 "src/parser_proc_grammar.y" /* glr.c:816 */
3451 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
3453 #line 3454 "src/parser_proc.c" /* glr.c:816 */
3457 #line 1188 "src/parser_proc_grammar.y" /* glr.c:816 */
3459 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
3461 #line 3462 "src/parser_proc.c" /* glr.c:816 */
3465 #line 1194 "src/parser_proc_grammar.y" /* glr.c:816 */
3467 (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->layout
= (*(struct psi_layout
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
3468 (*(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 (-2)].yystate
.yysemantics
.yysval
)));
3470 #line 3471 "src/parser_proc.c" /* glr.c:816 */
3474 #line 1198 "src/parser_proc_grammar.y" /* glr.c:816 */
3476 (*(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
)));
3479 struct psi_decl_var
*var
;
3481 while (psi_plist_get((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), i
++, &var
)) {
3482 struct psi_decl_arg
*arg
= psi_decl_arg_init(psi_decl_type_copy((*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->type
), var
);
3484 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add((*(struct psi_plist
**)(&(*yyvalp
))), &arg
);
3487 free((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3489 #line 3490 "src/parser_proc.c" /* glr.c:816 */
3493 #line 1212 "src/parser_proc_grammar.y" /* glr.c:816 */
3495 (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->layout
= (*(struct psi_layout
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
3496 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)), &(*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3498 #line 3499 "src/parser_proc.c" /* glr.c:816 */
3502 #line 1216 "src/parser_proc_grammar.y" /* glr.c:816 */
3504 (*(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
)));
3507 struct psi_decl_var
*var
;
3509 while (psi_plist_get((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), i
++, &var
)) {
3510 struct psi_decl_arg
*arg
= psi_decl_arg_init(psi_decl_type_copy((*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->type
), var
);
3512 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add((*(struct psi_plist
**)(&(*yyvalp
))), &arg
);
3515 free((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3517 #line 3518 "src/parser_proc.c" /* glr.c:816 */
3521 #line 1233 "src/parser_proc_grammar.y" /* glr.c:816 */
3523 (*(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
)));
3524 (*(struct psi_decl_enum
**)(&(*yyvalp
)))->token
= (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
));
3526 #line 3527 "src/parser_proc.c" /* glr.c:816 */
3530 #line 1240 "src/parser_proc_grammar.y" /* glr.c:816 */
3532 (*(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
)));
3534 #line 3535 "src/parser_proc.c" /* glr.c:816 */
3538 #line 1243 "src/parser_proc_grammar.y" /* glr.c:816 */
3540 (*(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
)));
3542 #line 3543 "src/parser_proc.c" /* glr.c:816 */
3546 #line 1249 "src/parser_proc_grammar.y" /* glr.c:816 */
3548 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3549 (*(struct psi_decl_enum_item
**)(&(*yyvalp
))) = psi_decl_enum_item_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, NULL
);
3550 (*(struct psi_decl_enum_item
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3552 #line 3553 "src/parser_proc.c" /* glr.c:816 */
3556 #line 1254 "src/parser_proc_grammar.y" /* glr.c:816 */
3558 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3559 (*(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
)));
3560 (*(struct psi_decl_enum_item
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3562 #line 3563 "src/parser_proc.c" /* glr.c:816 */
3566 #line 1262 "src/parser_proc_grammar.y" /* glr.c:816 */
3568 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num((*(struct psi_number
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3569 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_number
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->token
);
3571 #line 3572 "src/parser_proc.c" /* glr.c:816 */
3575 #line 1266 "src/parser_proc_grammar.y" /* glr.c:816 */
3577 (*(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
)));
3578 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_decl_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->token
);
3580 #line 3581 "src/parser_proc.c" /* glr.c:816 */
3584 #line 1270 "src/parser_proc_grammar.y" /* glr.c:816 */
3586 (*(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
)));
3587 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3589 #line 3590 "src/parser_proc.c" /* glr.c:816 */
3593 #line 1274 "src/parser_proc_grammar.y" /* glr.c:816 */
3595 (*(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
)));
3596 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3598 #line 3599 "src/parser_proc.c" /* glr.c:816 */
3602 #line 1278 "src/parser_proc_grammar.y" /* glr.c:816 */
3604 (*(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
)));
3605 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3607 #line 3608 "src/parser_proc.c" /* glr.c:816 */
3611 #line 1282 "src/parser_proc_grammar.y" /* glr.c:816 */
3613 (*(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
)));
3614 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
3616 #line 3617 "src/parser_proc.c" /* glr.c:816 */
3620 #line 1289 "src/parser_proc_grammar.y" /* glr.c:816 */
3622 (*(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
);
3623 (*(struct psi_number
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3625 #line 3626 "src/parser_proc.c" /* glr.c:816 */
3629 #line 1293 "src/parser_proc_grammar.y" /* glr.c:816 */
3631 (*(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);
3632 (*(struct psi_number
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3634 #line 3635 "src/parser_proc.c" /* glr.c:816 */
3638 #line 1297 "src/parser_proc_grammar.y" /* glr.c:816 */
3640 (*(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);
3641 (*(struct psi_number
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3643 #line 3644 "src/parser_proc.c" /* glr.c:816 */
3647 #line 1301 "src/parser_proc_grammar.y" /* glr.c:816 */
3649 (*(struct psi_number
**)(&(*yyvalp
))) = psi_number_init(PSI_T_NAME
, (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), 0);
3650 (*(struct psi_number
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->token
);
3652 #line 3653 "src/parser_proc.c" /* glr.c:816 */
3656 #line 1308 "src/parser_proc_grammar.y" /* glr.c:816 */
3658 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3659 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3663 psi_token_hash((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), digest
);
3664 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_append("@", psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))), 1, digest
);
3667 #line 3668 "src/parser_proc.c" /* glr.c:816 */
3671 #line 1321 "src/parser_proc_grammar.y" /* glr.c:816 */
3673 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3674 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3678 psi_token_hash((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), digest
);
3679 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_append("@", psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))), 1, digest
);
3682 #line 3683 "src/parser_proc.c" /* glr.c:816 */
3686 #line 1334 "src/parser_proc_grammar.y" /* glr.c:816 */
3688 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3689 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3693 psi_token_hash((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), digest
);
3694 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_append("@", psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))), 1, digest
);
3697 #line 3698 "src/parser_proc.c" /* glr.c:816 */
3701 #line 1347 "src/parser_proc_grammar.y" /* glr.c:816 */
3703 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
3705 #line 3706 "src/parser_proc.c" /* glr.c:816 */
3709 #line 1350 "src/parser_proc_grammar.y" /* glr.c:816 */
3711 (*(struct psi_token
**)(&(*yyvalp
))) = (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3712 (*(struct psi_token
**)(&(*yyvalp
)))->type
= PSI_T_NAME
;
3714 #line 3715 "src/parser_proc.c" /* glr.c:816 */
3718 #line 1357 "src/parser_proc_grammar.y" /* glr.c:816 */
3720 (*(struct psi_layout
**)(&(*yyvalp
))) = NULL
;
3722 #line 3723 "src/parser_proc.c" /* glr.c:816 */
3726 #line 1360 "src/parser_proc_grammar.y" /* glr.c:816 */
3728 (*(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
));
3730 #line 3731 "src/parser_proc.c" /* glr.c:816 */
3734 #line 1366 "src/parser_proc_grammar.y" /* glr.c:816 */
3736 (*(struct psi_layout
*)(&(*yyvalp
))).pos
= 0;
3737 (*(struct psi_layout
*)(&(*yyvalp
))).len
= 0;
3739 #line 3740 "src/parser_proc.c" /* glr.c:816 */
3743 #line 1370 "src/parser_proc_grammar.y" /* glr.c:816 */
3745 (*(struct psi_layout
*)(&(*yyvalp
))).pos
= atol((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->text
);
3746 (*(struct psi_layout
*)(&(*yyvalp
))).len
= atol((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
);
3748 #line 3749 "src/parser_proc.c" /* glr.c:816 */
3752 #line 1377 "src/parser_proc_grammar.y" /* glr.c:816 */
3754 (*(size_t*)(&(*yyvalp
))) = 0;
3756 #line 3757 "src/parser_proc.c" /* glr.c:816 */
3760 #line 1380 "src/parser_proc_grammar.y" /* glr.c:816 */
3762 (*(size_t*)(&(*yyvalp
))) = atol((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
);
3764 #line 3765 "src/parser_proc.c" /* glr.c:816 */
3768 #line 1386 "src/parser_proc_grammar.y" /* glr.c:816 */
3770 (*(size_t*)(&(*yyvalp
))) = 0;
3772 #line 3773 "src/parser_proc.c" /* glr.c:816 */
3776 #line 1389 "src/parser_proc_grammar.y" /* glr.c:816 */
3778 (*(size_t*)(&(*yyvalp
))) = (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3780 #line 3781 "src/parser_proc.c" /* glr.c:816 */
3784 #line 1396 "src/parser_proc_grammar.y" /* glr.c:816 */
3786 (*(size_t*)(&(*yyvalp
))) = (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
3788 #line 3789 "src/parser_proc.c" /* glr.c:816 */
3792 #line 1402 "src/parser_proc_grammar.y" /* glr.c:816 */
3794 (*(size_t*)(&(*yyvalp
))) = 1;
3796 #line 3797 "src/parser_proc.c" /* glr.c:816 */
3800 #line 1405 "src/parser_proc_grammar.y" /* glr.c:816 */
3802 (*(size_t*)(&(*yyvalp
))) = (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)) + 1;
3804 #line 3805 "src/parser_proc.c" /* glr.c:816 */
3808 #line 1417 "src/parser_proc_grammar.y" /* glr.c:816 */
3810 (*(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
)));
3812 #line 3813 "src/parser_proc.c" /* glr.c:816 */
3816 #line 1420 "src/parser_proc_grammar.y" /* glr.c:816 */
3818 (*(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
)));
3819 (*(struct psi_impl_func
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->static_memory
= 1;
3821 #line 3822 "src/parser_proc.c" /* glr.c:816 */
3825 #line 1427 "src/parser_proc_grammar.y" /* glr.c:816 */
3827 (*(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
)));
3828 (*(struct psi_impl_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
3829 (*(struct psi_impl_func
**)(&(*yyvalp
)))->return_reference
= (*(bool*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
));
3831 #line 3832 "src/parser_proc.c" /* glr.c:816 */
3835 #line 1432 "src/parser_proc_grammar.y" /* glr.c:816 */
3837 (*(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
)));
3838 (*(struct psi_impl_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
3839 (*(struct psi_impl_func
**)(&(*yyvalp
)))->return_reference
= (*(bool*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-6)].yystate
.yysemantics
.yysval
));
3841 #line 3842 "src/parser_proc.c" /* glr.c:816 */
3845 #line 1437 "src/parser_proc_grammar.y" /* glr.c:816 */
3847 (*(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
)));
3848 (*(struct psi_impl_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-10)].yystate
.yysemantics
.yysval
)));
3849 (*(struct psi_impl_func
**)(&(*yyvalp
)))->return_reference
= (*(bool*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-11)].yystate
.yysemantics
.yysval
));
3850 (*(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
);
3851 (*(struct psi_impl_func
**)(&(*yyvalp
)))->vararg
->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
3853 #line 3854 "src/parser_proc.c" /* glr.c:816 */
3857 #line 1447 "src/parser_proc_grammar.y" /* glr.c:816 */
3859 (*(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
)));
3861 #line 3862 "src/parser_proc.c" /* glr.c:816 */
3865 #line 1450 "src/parser_proc_grammar.y" /* glr.c:816 */
3867 (*(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
)));
3869 #line 3870 "src/parser_proc.c" /* glr.c:816 */
3873 #line 1456 "src/parser_proc_grammar.y" /* glr.c:816 */
3875 (*(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
);
3877 #line 3878 "src/parser_proc.c" /* glr.c:816 */
3881 #line 1459 "src/parser_proc_grammar.y" /* glr.c:816 */
3883 (*(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
)));
3885 #line 3886 "src/parser_proc.c" /* glr.c:816 */
3889 #line 1465 "src/parser_proc_grammar.y" /* glr.c:816 */
3891 (*(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
)));
3892 (*(struct psi_impl_var
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3894 #line 3895 "src/parser_proc.c" /* glr.c:816 */
3898 #line 1472 "src/parser_proc_grammar.y" /* glr.c:816 */
3900 (*(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
);
3901 (*(struct psi_impl_type
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3903 #line 3904 "src/parser_proc.c" /* glr.c:816 */
3907 #line 1491 "src/parser_proc_grammar.y" /* glr.c:816 */
3909 (*(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
)));
3911 #line 3912 "src/parser_proc.c" /* glr.c:816 */
3915 #line 1494 "src/parser_proc_grammar.y" /* glr.c:816 */
3917 (*(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
)));
3919 #line 3920 "src/parser_proc.c" /* glr.c:816 */
3923 #line 1500 "src/parser_proc_grammar.y" /* glr.c:816 */
3925 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_return_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3927 #line 3928 "src/parser_proc.c" /* glr.c:816 */
3931 #line 1503 "src/parser_proc_grammar.y" /* glr.c:816 */
3933 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_let_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3935 #line 3936 "src/parser_proc.c" /* glr.c:816 */
3939 #line 1506 "src/parser_proc_grammar.y" /* glr.c:816 */
3941 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_set_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3943 #line 3944 "src/parser_proc.c" /* glr.c:816 */
3947 #line 1509 "src/parser_proc_grammar.y" /* glr.c:816 */
3949 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_assert_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3951 #line 3952 "src/parser_proc.c" /* glr.c:816 */
3955 #line 1512 "src/parser_proc_grammar.y" /* glr.c:816 */
3957 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_free_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3959 #line 3960 "src/parser_proc.c" /* glr.c:816 */
3963 #line 1518 "src/parser_proc_grammar.y" /* glr.c:816 */
3965 (*(struct psi_let_stmt
**)(&(*yyvalp
))) = psi_let_stmt_init((*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3966 (*(struct psi_let_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3968 #line 3969 "src/parser_proc.c" /* glr.c:816 */
3972 #line 1522 "src/parser_proc_grammar.y" /* glr.c:816 */
3974 (*(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
))));
3975 (*(struct psi_let_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
3976 (*(struct psi_let_stmt
**)(&(*yyvalp
)))->exp
->is_reference
= (*(bool*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3978 #line 3979 "src/parser_proc.c" /* glr.c:816 */
3982 #line 1531 "src/parser_proc_grammar.y" /* glr.c:816 */
3984 (*(struct psi_let_exp
**)(&(*yyvalp
))) = (*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3985 (*(struct psi_let_exp
**)(&(*yyvalp
)))->is_reference
= true;
3987 #line 3988 "src/parser_proc.c" /* glr.c:816 */
3991 #line 1535 "src/parser_proc_grammar.y" /* glr.c:816 */
3993 (*(struct psi_let_exp
**)(&(*yyvalp
))) = (*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3994 (*(struct psi_let_exp
**)(&(*yyvalp
)))->is_reference
= false;
3996 #line 3997 "src/parser_proc.c" /* glr.c:816 */
4000 #line 1542 "src/parser_proc_grammar.y" /* glr.c:816 */
4002 (*(struct psi_let_exp
**)(&(*yyvalp
))) = psi_let_exp_init(PSI_LET_NULL
, NULL
);
4004 #line 4005 "src/parser_proc.c" /* glr.c:816 */
4008 #line 1545 "src/parser_proc_grammar.y" /* glr.c:816 */
4010 (*(struct psi_let_exp
**)(&(*yyvalp
))) = psi_let_exp_init(PSI_LET_CALLOC
, (*(struct psi_let_calloc
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4012 #line 4013 "src/parser_proc.c" /* glr.c:816 */
4016 #line 1548 "src/parser_proc_grammar.y" /* glr.c:816 */
4018 (*(struct psi_let_exp
**)(&(*yyvalp
))) = psi_let_exp_init(PSI_LET_CALLBACK
, (*(struct psi_let_callback
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4020 #line 4021 "src/parser_proc.c" /* glr.c:816 */
4024 #line 1551 "src/parser_proc_grammar.y" /* glr.c:816 */
4026 (*(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
)));
4028 #line 4029 "src/parser_proc.c" /* glr.c:816 */
4032 #line 1554 "src/parser_proc_grammar.y" /* glr.c:816 */
4034 (*(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
)));
4036 #line 4037 "src/parser_proc.c" /* glr.c:816 */
4040 #line 1560 "src/parser_proc_grammar.y" /* glr.c:816 */
4042 (*(struct psi_let_exp
**)(&(*yyvalp
))) = (*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4043 (*(struct psi_let_exp
**)(&(*yyvalp
)))->var
= (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
4045 #line 4046 "src/parser_proc.c" /* glr.c:816 */
4049 #line 1564 "src/parser_proc_grammar.y" /* glr.c:816 */
4051 (*(struct psi_let_exp
**)(&(*yyvalp
))) = (*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4052 (*(struct psi_let_exp
**)(&(*yyvalp
)))->is_reference
= 1;
4053 (*(struct psi_let_exp
**)(&(*yyvalp
)))->var
= (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
));
4055 #line 4056 "src/parser_proc.c" /* glr.c:816 */
4059 #line 1572 "src/parser_proc_grammar.y" /* glr.c:816 */
4061 (*(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
)));
4062 (*(struct psi_let_calloc
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
4064 #line 4065 "src/parser_proc.c" /* glr.c:816 */
4068 #line 1579 "src/parser_proc_grammar.y" /* glr.c:816 */
4070 (*(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
)));
4071 (*(struct psi_let_callback
**)(&(*yyvalp
)))->func
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-6)].yystate
.yysemantics
.yysval
)));
4072 (*(struct psi_let_callback
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-7)].yystate
.yysemantics
.yysval
)));
4074 #line 4075 "src/parser_proc.c" /* glr.c:816 */
4078 #line 1587 "src/parser_proc_grammar.y" /* glr.c:816 */
4080 (*(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
)));
4081 (*(struct psi_let_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
4082 (*(struct psi_let_func
**)(&(*yyvalp
)))->inner
= (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
4084 #line 4085 "src/parser_proc.c" /* glr.c:816 */
4088 #line 1608 "src/parser_proc_grammar.y" /* glr.c:816 */
4090 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
4092 #line 4093 "src/parser_proc.c" /* glr.c:816 */
4096 #line 1611 "src/parser_proc_grammar.y" /* glr.c:816 */
4098 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4100 #line 4101 "src/parser_proc.c" /* glr.c:816 */
4104 #line 1617 "src/parser_proc_grammar.y" /* glr.c:816 */
4106 (*(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
)));
4108 #line 4109 "src/parser_proc.c" /* glr.c:816 */
4112 #line 1620 "src/parser_proc_grammar.y" /* glr.c:816 */
4114 (*(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
)));
4116 #line 4117 "src/parser_proc.c" /* glr.c:816 */
4120 #line 1631 "src/parser_proc_grammar.y" /* glr.c:816 */
4122 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
4124 #line 4125 "src/parser_proc.c" /* glr.c:816 */
4128 #line 1634 "src/parser_proc_grammar.y" /* glr.c:816 */
4130 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4132 #line 4133 "src/parser_proc.c" /* glr.c:816 */
4136 #line 1640 "src/parser_proc_grammar.y" /* glr.c:816 */
4138 (*(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
)));
4140 #line 4141 "src/parser_proc.c" /* glr.c:816 */
4144 #line 1643 "src/parser_proc_grammar.y" /* glr.c:816 */
4146 (*(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
)));
4148 #line 4149 "src/parser_proc.c" /* glr.c:816 */
4152 #line 1649 "src/parser_proc_grammar.y" /* glr.c:816 */
4154 (*(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
))));
4155 (*(struct psi_return_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
4157 #line 4158 "src/parser_proc.c" /* glr.c:816 */
4161 #line 1656 "src/parser_proc_grammar.y" /* glr.c:816 */
4163 (*(struct psi_set_stmt
**)(&(*yyvalp
))) = psi_set_stmt_init((*(struct psi_set_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
4164 (*(struct psi_set_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
4166 #line 4167 "src/parser_proc.c" /* glr.c:816 */
4170 #line 1663 "src/parser_proc_grammar.y" /* glr.c:816 */
4172 (*(struct psi_set_exp
**)(&(*yyvalp
))) = psi_set_exp_init(PSI_SET_FUNC
, (*(struct psi_set_func
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4174 #line 4175 "src/parser_proc.c" /* glr.c:816 */
4178 #line 1666 "src/parser_proc_grammar.y" /* glr.c:816 */
4180 (*(struct psi_set_exp
**)(&(*yyvalp
))) = psi_set_exp_init(PSI_SET_NUMEXP
, (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4182 #line 4183 "src/parser_proc.c" /* glr.c:816 */
4186 #line 1669 "src/parser_proc_grammar.y" /* glr.c:816 */
4188 (*(struct psi_set_exp
**)(&(*yyvalp
))) = (*(struct psi_set_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4189 (*(struct psi_set_exp
**)(&(*yyvalp
)))->var
= (*(struct psi_impl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
4191 #line 4192 "src/parser_proc.c" /* glr.c:816 */
4195 #line 1676 "src/parser_proc_grammar.y" /* glr.c:816 */
4197 (*(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
)));
4198 (*(struct psi_set_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
4199 (*(struct psi_set_func
**)(&(*yyvalp
)))->inner
= (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
4201 #line 4202 "src/parser_proc.c" /* glr.c:816 */
4205 #line 1681 "src/parser_proc_grammar.y" /* glr.c:816 */
4207 (*(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
)));
4208 (*(struct psi_set_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
4209 (*(struct psi_set_func
**)(&(*yyvalp
)))->recursive
= 1;
4211 #line 4212 "src/parser_proc.c" /* glr.c:816 */
4215 #line 1700 "src/parser_proc_grammar.y" /* glr.c:816 */
4217 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
4219 #line 4220 "src/parser_proc.c" /* glr.c:816 */
4223 #line 1703 "src/parser_proc_grammar.y" /* glr.c:816 */
4225 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4227 #line 4228 "src/parser_proc.c" /* glr.c:816 */
4231 #line 1709 "src/parser_proc_grammar.y" /* glr.c:816 */
4233 (*(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
)));
4235 #line 4236 "src/parser_proc.c" /* glr.c:816 */
4239 #line 1712 "src/parser_proc_grammar.y" /* glr.c:816 */
4241 (*(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
)));
4243 #line 4244 "src/parser_proc.c" /* glr.c:816 */
4247 #line 1718 "src/parser_proc_grammar.y" /* glr.c:816 */
4249 (*(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
)));
4250 (*(struct psi_assert_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
4252 #line 4253 "src/parser_proc.c" /* glr.c:816 */
4256 #line 1730 "src/parser_proc_grammar.y" /* glr.c:816 */
4258 (*(struct psi_free_stmt
**)(&(*yyvalp
))) = psi_free_stmt_init((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
4259 (*(struct psi_free_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
4261 #line 4262 "src/parser_proc.c" /* glr.c:816 */
4265 #line 1737 "src/parser_proc_grammar.y" /* glr.c:816 */
4267 (*(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
)));
4269 #line 4270 "src/parser_proc.c" /* glr.c:816 */
4273 #line 1740 "src/parser_proc_grammar.y" /* glr.c:816 */
4275 (*(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
)));
4277 #line 4278 "src/parser_proc.c" /* glr.c:816 */
4281 #line 1746 "src/parser_proc_grammar.y" /* glr.c:816 */
4283 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
4284 (*(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
)));
4285 (*(struct psi_free_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
4287 #line 4288 "src/parser_proc.c" /* glr.c:816 */
4291 #line 1754 "src/parser_proc_grammar.y" /* glr.c:816 */
4293 (*(bool*)(&(*yyvalp
))) = false;
4295 #line 4296 "src/parser_proc.c" /* glr.c:816 */
4299 #line 1757 "src/parser_proc_grammar.y" /* glr.c:816 */
4301 (*(bool*)(&(*yyvalp
))) = true;
4303 #line 4304 "src/parser_proc.c" /* glr.c:816 */
4307 #line 4308 "src/parser_proc.c" /* glr.c:816 */
4318 # undef YYRECOVERING
4323 yyuserMerge (int yyn
, YYSTYPE
* yy0
, YYSTYPE
* yy1
)
4335 /* Bison grammar-table manipulation. */
4337 /*-----------------------------------------------.
4338 | Release the memory associated to this symbol. |
4339 `-----------------------------------------------*/
4342 yydestruct (const char *yymsg
, int yytype
, YYSTYPE
*yyvaluep
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
4350 YY_SYMBOL_PRINT (yymsg
, yytype
, yyvaluep
, yylocationp
);
4352 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4355 case 133: /* binary_op_token */
4356 #line 277 "src/parser_proc_grammar.y" /* glr.c:846 */
4358 #line 4359 "src/parser_proc.c" /* glr.c:846 */
4361 case 134: /* unary_op_token */
4362 #line 277 "src/parser_proc_grammar.y" /* glr.c:846 */
4364 #line 4365 "src/parser_proc.c" /* glr.c:846 */
4367 case 135: /* name_token */
4368 #line 277 "src/parser_proc_grammar.y" /* glr.c:846 */
4370 #line 4371 "src/parser_proc.c" /* glr.c:846 */
4373 case 136: /* any_noeol_token */
4374 #line 277 "src/parser_proc_grammar.y" /* glr.c:846 */
4376 #line 4377 "src/parser_proc.c" /* glr.c:846 */
4380 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
4381 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4382 #line 4383 "src/parser_proc.c" /* glr.c:846 */
4386 #line 286 "src/parser_proc_grammar.y" /* glr.c:846 */
4387 {psi_cpp_exp_free(&(*(struct psi_cpp_exp
**)(&(*yyvaluep
))));}
4388 #line 4389 "src/parser_proc.c" /* glr.c:846 */
4391 case 142: /* cpp_exp */
4392 #line 286 "src/parser_proc_grammar.y" /* glr.c:846 */
4393 {psi_cpp_exp_free(&(*(struct psi_cpp_exp
**)(&(*yyvaluep
))));}
4394 #line 4395 "src/parser_proc.c" /* glr.c:846 */
4397 case 144: /* cpp_message_token */
4398 #line 274 "src/parser_proc_grammar.y" /* glr.c:846 */
4400 #line 4401 "src/parser_proc.c" /* glr.c:846 */
4403 case 145: /* cpp_include_token */
4404 #line 274 "src/parser_proc_grammar.y" /* glr.c:846 */
4406 #line 4407 "src/parser_proc.c" /* glr.c:846 */
4409 case 146: /* cpp_header_token */
4410 #line 274 "src/parser_proc_grammar.y" /* glr.c:846 */
4412 #line 4413 "src/parser_proc.c" /* glr.c:846 */
4415 case 147: /* cpp_no_arg_token */
4416 #line 274 "src/parser_proc_grammar.y" /* glr.c:846 */
4418 #line 4419 "src/parser_proc.c" /* glr.c:846 */
4421 case 148: /* cpp_name_arg_token */
4422 #line 274 "src/parser_proc_grammar.y" /* glr.c:846 */
4424 #line 4425 "src/parser_proc.c" /* glr.c:846 */
4427 case 149: /* cpp_exp_arg_token */
4428 #line 274 "src/parser_proc_grammar.y" /* glr.c:846 */
4430 #line 4431 "src/parser_proc.c" /* glr.c:846 */
4433 case 150: /* cpp_special_name_token */
4434 #line 274 "src/parser_proc_grammar.y" /* glr.c:846 */
4436 #line 4437 "src/parser_proc.c" /* glr.c:846 */
4439 case 151: /* cpp_macro_decl */
4440 #line 288 "src/parser_proc_grammar.y" /* glr.c:846 */
4441 {psi_cpp_macro_decl_free(&(*(struct psi_cpp_macro_decl
**)(&(*yyvaluep
))));}
4442 #line 4443 "src/parser_proc.c" /* glr.c:846 */
4445 case 152: /* cpp_macro_sig */
4446 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
4447 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4448 #line 4449 "src/parser_proc.c" /* glr.c:846 */
4451 case 153: /* cpp_macro_sig_args */
4452 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
4453 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4454 #line 4455 "src/parser_proc.c" /* glr.c:846 */
4457 case 154: /* cpp_macro_decl_tokens */
4458 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
4459 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4460 #line 4461 "src/parser_proc.c" /* glr.c:846 */
4463 case 155: /* cpp_macro_decl_token_list */
4464 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
4465 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4466 #line 4467 "src/parser_proc.c" /* glr.c:846 */
4469 case 156: /* cpp_macro_exp */
4470 #line 292 "src/parser_proc_grammar.y" /* glr.c:846 */
4471 {psi_num_exp_free(&(*(struct psi_num_exp
**)(&(*yyvaluep
))));}
4472 #line 4473 "src/parser_proc.c" /* glr.c:846 */
4475 case 157: /* cpp_macro_call_args */
4476 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
4477 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4478 #line 4479 "src/parser_proc.c" /* glr.c:846 */
4481 case 158: /* cpp_macro_call_arg_list */
4482 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
4483 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4484 #line 4485 "src/parser_proc.c" /* glr.c:846 */
4487 case 159: /* constant */
4488 #line 298 "src/parser_proc_grammar.y" /* glr.c:846 */
4489 {psi_const_free(&(*(struct psi_const
**)(&(*yyvaluep
))));}
4490 #line 4491 "src/parser_proc.c" /* glr.c:846 */
4493 case 160: /* constant_type */
4494 #line 300 "src/parser_proc_grammar.y" /* glr.c:846 */
4495 {psi_const_type_free(&(*(struct psi_const_type
**)(&(*yyvaluep
))));}
4496 #line 4497 "src/parser_proc.c" /* glr.c:846 */
4499 case 161: /* constant_type_token */
4500 #line 295 "src/parser_proc_grammar.y" /* glr.c:846 */
4502 #line 4503 "src/parser_proc.c" /* glr.c:846 */
4505 case 162: /* impl_def_val */
4506 #line 302 "src/parser_proc_grammar.y" /* glr.c:846 */
4507 {psi_impl_def_val_free(&(*(struct psi_impl_def_val
**)(&(*yyvaluep
))));}
4508 #line 4509 "src/parser_proc.c" /* glr.c:846 */
4511 case 163: /* impl_def_val_token */
4512 #line 295 "src/parser_proc_grammar.y" /* glr.c:846 */
4514 #line 4515 "src/parser_proc.c" /* glr.c:846 */
4517 case 164: /* decl_typedef */
4518 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
4519 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4520 #line 4521 "src/parser_proc.c" /* glr.c:846 */
4523 case 165: /* typedef */
4524 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
4525 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4526 #line 4527 "src/parser_proc.c" /* glr.c:846 */
4529 case 166: /* const_decl_type */
4530 #line 311 "src/parser_proc_grammar.y" /* glr.c:846 */
4531 {psi_decl_type_free(&(*(struct psi_decl_type
**)(&(*yyvaluep
))));}
4532 #line 4533 "src/parser_proc.c" /* glr.c:846 */
4535 case 167: /* decl_type */
4536 #line 311 "src/parser_proc_grammar.y" /* glr.c:846 */
4537 {psi_decl_type_free(&(*(struct psi_decl_type
**)(&(*yyvaluep
))));}
4538 #line 4539 "src/parser_proc.c" /* glr.c:846 */
4541 case 168: /* decl_type_complex */
4542 #line 311 "src/parser_proc_grammar.y" /* glr.c:846 */
4543 {psi_decl_type_free(&(*(struct psi_decl_type
**)(&(*yyvaluep
))));}
4544 #line 4545 "src/parser_proc.c" /* glr.c:846 */
4547 case 169: /* decl_type_simple */
4548 #line 305 "src/parser_proc_grammar.y" /* glr.c:846 */
4549 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4550 #line 4551 "src/parser_proc.c" /* glr.c:846 */
4553 case 170: /* decl_real_type */
4554 #line 305 "src/parser_proc_grammar.y" /* glr.c:846 */
4555 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4556 #line 4557 "src/parser_proc.c" /* glr.c:846 */
4559 case 171: /* decl_stdint_type */
4560 #line 308 "src/parser_proc_grammar.y" /* glr.c:846 */
4562 #line 4563 "src/parser_proc.c" /* glr.c:846 */
4565 case 172: /* int_signed */
4566 #line 283 "src/parser_proc_grammar.y" /* glr.c:846 */
4568 #line 4569 "src/parser_proc.c" /* glr.c:846 */
4571 case 173: /* int_width */
4572 #line 280 "src/parser_proc_grammar.y" /* glr.c:846 */
4573 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4574 #line 4575 "src/parser_proc.c" /* glr.c:846 */
4577 case 174: /* decl_int_type */
4578 #line 305 "src/parser_proc_grammar.y" /* glr.c:846 */
4579 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4580 #line 4581 "src/parser_proc.c" /* glr.c:846 */
4583 case 175: /* int_signed_types */
4584 #line 280 "src/parser_proc_grammar.y" /* glr.c:846 */
4585 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4586 #line 4587 "src/parser_proc.c" /* glr.c:846 */
4589 case 176: /* signed_short_types */
4590 #line 283 "src/parser_proc_grammar.y" /* glr.c:846 */
4592 #line 4593 "src/parser_proc.c" /* glr.c:846 */
4595 case 177: /* signed_long_types */
4596 #line 283 "src/parser_proc_grammar.y" /* glr.c:846 */
4598 #line 4599 "src/parser_proc.c" /* glr.c:846 */
4601 case 178: /* int_width_types */
4602 #line 280 "src/parser_proc_grammar.y" /* glr.c:846 */
4603 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4604 #line 4605 "src/parser_proc.c" /* glr.c:846 */
4607 case 179: /* decl_stmt */
4608 #line 313 "src/parser_proc_grammar.y" /* glr.c:846 */
4609 {psi_decl_free(&(*(struct psi_decl
**)(&(*yyvaluep
))));}
4610 #line 4611 "src/parser_proc.c" /* glr.c:846 */
4613 case 185: /* decl_vars */
4614 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
4615 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4616 #line 4617 "src/parser_proc.c" /* glr.c:846 */
4619 case 186: /* decl */
4620 #line 313 "src/parser_proc_grammar.y" /* glr.c:846 */
4621 {psi_decl_free(&(*(struct psi_decl
**)(&(*yyvaluep
))));}
4622 #line 4623 "src/parser_proc.c" /* glr.c:846 */
4625 case 187: /* decl_body */
4626 #line 313 "src/parser_proc_grammar.y" /* glr.c:846 */
4627 {psi_decl_free(&(*(struct psi_decl
**)(&(*yyvaluep
))));}
4628 #line 4629 "src/parser_proc.c" /* glr.c:846 */
4631 case 188: /* decl_func_body */
4632 #line 313 "src/parser_proc_grammar.y" /* glr.c:846 */
4633 {psi_decl_free(&(*(struct psi_decl
**)(&(*yyvaluep
))));}
4634 #line 4635 "src/parser_proc.c" /* glr.c:846 */
4637 case 189: /* decl_functor_body */
4638 #line 313 "src/parser_proc_grammar.y" /* glr.c:846 */
4639 {psi_decl_free(&(*(struct psi_decl
**)(&(*yyvaluep
))));}
4640 #line 4641 "src/parser_proc.c" /* glr.c:846 */
4643 case 190: /* decl_functor */
4644 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
4645 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4646 #line 4647 "src/parser_proc.c" /* glr.c:846 */
4649 case 191: /* decl_func */
4650 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
4651 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4652 #line 4653 "src/parser_proc.c" /* glr.c:846 */
4655 case 192: /* decl_args */
4656 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
4657 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4658 #line 4659 "src/parser_proc.c" /* glr.c:846 */
4661 case 193: /* decl_arg */
4662 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
4663 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4664 #line 4665 "src/parser_proc.c" /* glr.c:846 */
4667 case 194: /* decl_var */
4668 #line 317 "src/parser_proc_grammar.y" /* glr.c:846 */
4669 {psi_decl_var_free(&(*(struct psi_decl_var
**)(&(*yyvaluep
))));}
4670 #line 4671 "src/parser_proc.c" /* glr.c:846 */
4673 case 195: /* decl_union */
4674 #line 321 "src/parser_proc_grammar.y" /* glr.c:846 */
4675 {psi_decl_union_free(&(*(struct psi_decl_union
**)(&(*yyvaluep
))));}
4676 #line 4677 "src/parser_proc.c" /* glr.c:846 */
4679 case 196: /* decl_struct */
4680 #line 319 "src/parser_proc_grammar.y" /* glr.c:846 */
4681 {psi_decl_struct_free(&(*(struct psi_decl_struct
**)(&(*yyvaluep
))));}
4682 #line 4683 "src/parser_proc.c" /* glr.c:846 */
4685 case 197: /* decl_struct_args */
4686 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
4687 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4688 #line 4689 "src/parser_proc.c" /* glr.c:846 */
4691 case 198: /* struct_args_block */
4692 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
4693 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4694 #line 4695 "src/parser_proc.c" /* glr.c:846 */
4697 case 199: /* struct_args */
4698 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
4699 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4700 #line 4701 "src/parser_proc.c" /* glr.c:846 */
4703 case 200: /* decl_enum */
4704 #line 323 "src/parser_proc_grammar.y" /* glr.c:846 */
4705 {psi_decl_enum_free(&(*(struct psi_decl_enum
**)(&(*yyvaluep
))));}
4706 #line 4707 "src/parser_proc.c" /* glr.c:846 */
4709 case 201: /* decl_enum_items */
4710 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
4711 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4712 #line 4713 "src/parser_proc.c" /* glr.c:846 */
4715 case 202: /* decl_enum_item */
4716 #line 325 "src/parser_proc_grammar.y" /* glr.c:846 */
4717 {psi_decl_enum_item_free(&(*(struct psi_decl_enum_item
**)(&(*yyvaluep
))));}
4718 #line 4719 "src/parser_proc.c" /* glr.c:846 */
4721 case 203: /* num_exp */
4722 #line 378 "src/parser_proc_grammar.y" /* glr.c:846 */
4723 {psi_num_exp_free(&(*(struct psi_num_exp
**)(&(*yyvaluep
))));}
4724 #line 4725 "src/parser_proc.c" /* glr.c:846 */
4727 case 204: /* number */
4728 #line 380 "src/parser_proc_grammar.y" /* glr.c:846 */
4729 {psi_number_free(&(*(struct psi_number
**)(&(*yyvaluep
))));}
4730 #line 4731 "src/parser_proc.c" /* glr.c:846 */
4733 case 205: /* enum_name */
4734 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
4735 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4736 #line 4737 "src/parser_proc.c" /* glr.c:846 */
4739 case 206: /* union_name */
4740 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
4741 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4742 #line 4743 "src/parser_proc.c" /* glr.c:846 */
4745 case 207: /* struct_name */
4746 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
4747 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4748 #line 4749 "src/parser_proc.c" /* glr.c:846 */
4751 case 208: /* optional_name */
4752 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
4753 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4754 #line 4755 "src/parser_proc.c" /* glr.c:846 */
4757 case 209: /* decl_layout */
4758 #line 332 "src/parser_proc_grammar.y" /* glr.c:846 */
4759 {psi_layout_free(&(*(struct psi_layout
**)(&(*yyvaluep
))));}
4760 #line 4761 "src/parser_proc.c" /* glr.c:846 */
4763 case 210: /* align_and_size */
4764 #line 330 "src/parser_proc_grammar.y" /* glr.c:846 */
4766 #line 4767 "src/parser_proc.c" /* glr.c:846 */
4769 case 211: /* array_size */
4770 #line 383 "src/parser_proc_grammar.y" /* glr.c:846 */
4772 #line 4773 "src/parser_proc.c" /* glr.c:846 */
4775 case 212: /* indirection */
4776 #line 383 "src/parser_proc_grammar.y" /* glr.c:846 */
4778 #line 4779 "src/parser_proc.c" /* glr.c:846 */
4781 case 213: /* pointers */
4782 #line 383 "src/parser_proc_grammar.y" /* glr.c:846 */
4784 #line 4785 "src/parser_proc.c" /* glr.c:846 */
4787 case 214: /* asterisks */
4788 #line 383 "src/parser_proc_grammar.y" /* glr.c:846 */
4790 #line 4791 "src/parser_proc.c" /* glr.c:846 */
4793 case 215: /* impl */
4794 #line 335 "src/parser_proc_grammar.y" /* glr.c:846 */
4795 {psi_impl_free(&(*(struct psi_impl
**)(&(*yyvaluep
))));}
4796 #line 4797 "src/parser_proc.c" /* glr.c:846 */
4799 case 216: /* impl_func */
4800 #line 337 "src/parser_proc_grammar.y" /* glr.c:846 */
4801 {psi_impl_func_free(&(*(struct psi_impl_func
**)(&(*yyvaluep
))));}
4802 #line 4803 "src/parser_proc.c" /* glr.c:846 */
4805 case 217: /* impl_args */
4806 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
4807 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4808 #line 4809 "src/parser_proc.c" /* glr.c:846 */
4811 case 218: /* impl_arg */
4812 #line 339 "src/parser_proc_grammar.y" /* glr.c:846 */
4813 {psi_impl_arg_free(&(*(struct psi_impl_arg
**)(&(*yyvaluep
))));}
4814 #line 4815 "src/parser_proc.c" /* glr.c:846 */
4817 case 219: /* impl_var */
4818 #line 343 "src/parser_proc_grammar.y" /* glr.c:846 */
4819 {psi_impl_var_free(&(*(struct psi_impl_var
**)(&(*yyvaluep
))));}
4820 #line 4821 "src/parser_proc.c" /* glr.c:846 */
4823 case 220: /* impl_type */
4824 #line 341 "src/parser_proc_grammar.y" /* glr.c:846 */
4825 {psi_impl_type_free(&(*(struct psi_impl_type
**)(&(*yyvaluep
))));}
4826 #line 4827 "src/parser_proc.c" /* glr.c:846 */
4829 case 221: /* impl_type_token */
4830 #line 373 "src/parser_proc_grammar.y" /* glr.c:846 */
4831 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4832 #line 4833 "src/parser_proc.c" /* glr.c:846 */
4835 case 222: /* impl_stmts */
4836 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
4837 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4838 #line 4839 "src/parser_proc.c" /* glr.c:846 */
4841 case 223: /* impl_stmt */
4842 #line 371 "src/parser_proc_grammar.y" /* glr.c:846 */
4843 {psi_impl_stmt_free(&(*(struct psi_token
***)(&(*yyvaluep
))));}
4844 #line 4845 "src/parser_proc.c" /* glr.c:846 */
4847 case 224: /* let_stmt */
4848 #line 346 "src/parser_proc_grammar.y" /* glr.c:846 */
4849 {psi_let_stmt_free(&(*(struct psi_let_stmt
**)(&(*yyvaluep
))));}
4850 #line 4851 "src/parser_proc.c" /* glr.c:846 */
4853 case 225: /* let_exp */
4854 #line 348 "src/parser_proc_grammar.y" /* glr.c:846 */
4855 {psi_let_exp_free(&(*(struct psi_let_exp
**)(&(*yyvaluep
))));}
4856 #line 4857 "src/parser_proc.c" /* glr.c:846 */
4859 case 226: /* let_exp_byref */
4860 #line 348 "src/parser_proc_grammar.y" /* glr.c:846 */
4861 {psi_let_exp_free(&(*(struct psi_let_exp
**)(&(*yyvaluep
))));}
4862 #line 4863 "src/parser_proc.c" /* glr.c:846 */
4865 case 227: /* let_exp_assign */
4866 #line 348 "src/parser_proc_grammar.y" /* glr.c:846 */
4867 {psi_let_exp_free(&(*(struct psi_let_exp
**)(&(*yyvaluep
))));}
4868 #line 4869 "src/parser_proc.c" /* glr.c:846 */
4871 case 228: /* let_calloc */
4872 #line 350 "src/parser_proc_grammar.y" /* glr.c:846 */
4873 {psi_let_calloc_free(&(*(struct psi_let_calloc
**)(&(*yyvaluep
))));}
4874 #line 4875 "src/parser_proc.c" /* glr.c:846 */
4877 case 229: /* let_callback */
4878 #line 352 "src/parser_proc_grammar.y" /* glr.c:846 */
4879 {psi_let_callback_free(&(*(struct psi_let_callback
**)(&(*yyvaluep
))));}
4880 #line 4881 "src/parser_proc.c" /* glr.c:846 */
4883 case 230: /* let_func */
4884 #line 354 "src/parser_proc_grammar.y" /* glr.c:846 */
4885 {psi_let_func_free(&(*(struct psi_let_func
**)(&(*yyvaluep
))));}
4886 #line 4887 "src/parser_proc.c" /* glr.c:846 */
4889 case 231: /* let_func_token */
4890 #line 373 "src/parser_proc_grammar.y" /* glr.c:846 */
4891 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4892 #line 4893 "src/parser_proc.c" /* glr.c:846 */
4895 case 232: /* let_func_exps */
4896 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
4897 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4898 #line 4899 "src/parser_proc.c" /* glr.c:846 */
4901 case 233: /* let_exps */
4902 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
4903 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4904 #line 4905 "src/parser_proc.c" /* glr.c:846 */
4907 case 234: /* callback_rval */
4908 #line 373 "src/parser_proc_grammar.y" /* glr.c:846 */
4909 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4910 #line 4911 "src/parser_proc.c" /* glr.c:846 */
4913 case 235: /* callback_arg_list */
4914 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
4915 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4916 #line 4917 "src/parser_proc.c" /* glr.c:846 */
4919 case 236: /* callback_args */
4920 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
4921 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4922 #line 4923 "src/parser_proc.c" /* glr.c:846 */
4925 case 237: /* return_stmt */
4926 #line 364 "src/parser_proc_grammar.y" /* glr.c:846 */
4927 {psi_return_stmt_free(&(*(struct psi_return_stmt
**)(&(*yyvaluep
))));}
4928 #line 4929 "src/parser_proc.c" /* glr.c:846 */
4931 case 238: /* set_stmt */
4932 #line 356 "src/parser_proc_grammar.y" /* glr.c:846 */
4933 {psi_set_stmt_free(&(*(struct psi_set_stmt
**)(&(*yyvaluep
))));}
4934 #line 4935 "src/parser_proc.c" /* glr.c:846 */
4937 case 239: /* set_exp */
4938 #line 358 "src/parser_proc_grammar.y" /* glr.c:846 */
4939 {psi_set_exp_free(&(*(struct psi_set_exp
**)(&(*yyvaluep
))));}
4940 #line 4941 "src/parser_proc.c" /* glr.c:846 */
4943 case 240: /* set_func */
4944 #line 360 "src/parser_proc_grammar.y" /* glr.c:846 */
4945 {psi_set_func_free(&(*(struct psi_set_func
**)(&(*yyvaluep
))));}
4946 #line 4947 "src/parser_proc.c" /* glr.c:846 */
4949 case 241: /* set_func_token */
4950 #line 373 "src/parser_proc_grammar.y" /* glr.c:846 */
4951 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4952 #line 4953 "src/parser_proc.c" /* glr.c:846 */
4955 case 242: /* set_func_exps */
4956 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
4957 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4958 #line 4959 "src/parser_proc.c" /* glr.c:846 */
4961 case 243: /* set_exps */
4962 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
4963 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4964 #line 4965 "src/parser_proc.c" /* glr.c:846 */
4967 case 244: /* assert_stmt */
4968 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
4969 {psi_assert_stmt_free(&(*(struct psi_assert_stmt
**)(&(*yyvaluep
))));}
4970 #line 4971 "src/parser_proc.c" /* glr.c:846 */
4973 case 245: /* assert_stmt_token */
4974 #line 373 "src/parser_proc_grammar.y" /* glr.c:846 */
4975 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4976 #line 4977 "src/parser_proc.c" /* glr.c:846 */
4979 case 246: /* free_stmt */
4980 #line 366 "src/parser_proc_grammar.y" /* glr.c:846 */
4981 {psi_free_stmt_free(&(*(struct psi_free_stmt
**)(&(*yyvaluep
))));}
4982 #line 4983 "src/parser_proc.c" /* glr.c:846 */
4985 case 247: /* free_exps */
4986 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
4987 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4988 #line 4989 "src/parser_proc.c" /* glr.c:846 */
4991 case 248: /* free_exp */
4992 #line 368 "src/parser_proc_grammar.y" /* glr.c:846 */
4993 {psi_free_exp_free(&(*(struct psi_free_exp
**)(&(*yyvaluep
))));}
4994 #line 4995 "src/parser_proc.c" /* glr.c:846 */
4997 case 249: /* reference */
4998 #line 385 "src/parser_proc_grammar.y" /* glr.c:846 */
5000 #line 5001 "src/parser_proc.c" /* glr.c:846 */
5007 YY_IGNORE_MAYBE_UNINITIALIZED_END
5010 /** Number of symbols composing the right hand side of rule #RULE. */
5012 yyrhsLength (yyRuleNum yyrule
)
5014 return yyr2
[yyrule
];
5018 yydestroyGLRState (char const *yymsg
, yyGLRState
*yys
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5020 if (yys
->yyresolved
)
5021 yydestruct (yymsg
, yystos
[yys
->yylrState
],
5022 &yys
->yysemantics
.yysval
, P
, tokens
, index
);
5028 if (yys
->yysemantics
.yyfirstVal
)
5029 YYFPRINTF (stderr
, "%s unresolved", yymsg
);
5031 YYFPRINTF (stderr
, "%s incomplete", yymsg
);
5032 YY_SYMBOL_PRINT ("", yystos
[yys
->yylrState
], YY_NULLPTR
, &yys
->yyloc
);
5036 if (yys
->yysemantics
.yyfirstVal
)
5038 yySemanticOption
*yyoption
= yys
->yysemantics
.yyfirstVal
;
5041 for (yyrh
= yyoption
->yystate
, yyn
= yyrhsLength (yyoption
->yyrule
);
5043 yyrh
= yyrh
->yypred
, yyn
-= 1)
5044 yydestroyGLRState (yymsg
, yyrh
, P
, tokens
, index
);
5049 /** Left-hand-side symbol for rule #YYRULE. */
5050 static inline yySymbol
5051 yylhsNonterm (yyRuleNum yyrule
)
5053 return yyr1
[yyrule
];
5056 #define yypact_value_is_default(Yystate) \
5057 (!!((Yystate) == (-540)))
5059 /** True iff LR state YYSTATE has only a default reduction (regardless
5061 static inline yybool
5062 yyisDefaultedState (yyStateNum yystate
)
5064 return yypact_value_is_default (yypact
[yystate
]);
5067 /** The default reduction for YYSTATE, assuming it has one. */
5068 static inline yyRuleNum
5069 yydefaultAction (yyStateNum yystate
)
5071 return yydefact
[yystate
];
5074 #define yytable_value_is_error(Yytable_value) \
5077 /** Set *YYACTION to the action to take in YYSTATE on seeing YYTOKEN.
5079 * R < 0: Reduce on rule -R.
5081 * R > 0: Shift to state R.
5082 * Set *YYCONFLICTS to a pointer into yyconfl to a 0-terminated list
5083 * of conflicting reductions.
5086 yygetLRActions (yyStateNum yystate
, int yytoken
,
5087 int* yyaction
, const short int** yyconflicts
)
5089 int yyindex
= yypact
[yystate
] + yytoken
;
5090 if (yypact_value_is_default (yypact
[yystate
])
5091 || yyindex
< 0 || YYLAST
< yyindex
|| yycheck
[yyindex
] != yytoken
)
5093 *yyaction
= -yydefact
[yystate
];
5094 *yyconflicts
= yyconfl
;
5096 else if (! yytable_value_is_error (yytable
[yyindex
]))
5098 *yyaction
= yytable
[yyindex
];
5099 *yyconflicts
= yyconfl
+ yyconflp
[yyindex
];
5104 *yyconflicts
= yyconfl
+ yyconflp
[yyindex
];
5108 /** Compute post-reduction state.
5109 * \param yystate the current state
5110 * \param yysym the nonterminal to push on the stack
5112 static inline yyStateNum
5113 yyLRgotoState (yyStateNum yystate
, yySymbol yysym
)
5115 int yyr
= yypgoto
[yysym
- YYNTOKENS
] + yystate
;
5116 if (0 <= yyr
&& yyr
<= YYLAST
&& yycheck
[yyr
] == yystate
)
5117 return yytable
[yyr
];
5119 return yydefgoto
[yysym
- YYNTOKENS
];
5122 static inline yybool
5123 yyisShiftAction (int yyaction
)
5125 return 0 < yyaction
;
5128 static inline yybool
5129 yyisErrorAction (int yyaction
)
5131 return yyaction
== 0;
5136 /** Return a fresh GLRStackItem in YYSTACKP. The item is an LR state
5137 * if YYISSTATE, and otherwise a semantic option. Callers should call
5138 * YY_RESERVE_GLRSTACK afterwards to make sure there is sufficient
5141 static inline yyGLRStackItem
*
5142 yynewGLRStackItem (yyGLRStack
* yystackp
, yybool yyisState
)
5144 yyGLRStackItem
* yynewItem
= yystackp
->yynextFree
;
5145 yystackp
->yyspaceLeft
-= 1;
5146 yystackp
->yynextFree
+= 1;
5147 yynewItem
->yystate
.yyisState
= yyisState
;
5151 /** Add a new semantic action that will execute the action for rule
5152 * YYRULE on the semantic values in YYRHS to the list of
5153 * alternative actions for YYSTATE. Assumes that YYRHS comes from
5154 * stack #YYK of *YYSTACKP. */
5156 yyaddDeferredAction (yyGLRStack
* yystackp
, size_t yyk
, yyGLRState
* yystate
,
5157 yyGLRState
* yyrhs
, yyRuleNum yyrule
)
5159 yySemanticOption
* yynewOption
=
5160 &yynewGLRStackItem (yystackp
, yyfalse
)->yyoption
;
5161 YYASSERT (!yynewOption
->yyisState
);
5162 yynewOption
->yystate
= yyrhs
;
5163 yynewOption
->yyrule
= yyrule
;
5164 if (yystackp
->yytops
.yylookaheadNeeds
[yyk
])
5166 yynewOption
->yyrawchar
= yychar
;
5167 yynewOption
->yyval
= yylval
;
5170 yynewOption
->yyrawchar
= YYEMPTY
;
5171 yynewOption
->yynext
= yystate
->yysemantics
.yyfirstVal
;
5172 yystate
->yysemantics
.yyfirstVal
= yynewOption
;
5174 YY_RESERVE_GLRSTACK (yystackp
);
5179 /** Initialize YYSET to a singleton set containing an empty stack. */
5181 yyinitStateSet (yyGLRStateSet
* yyset
)
5184 yyset
->yycapacity
= 16;
5185 yyset
->yystates
= (yyGLRState
**) YYMALLOC (16 * sizeof yyset
->yystates
[0]);
5186 if (! yyset
->yystates
)
5188 yyset
->yystates
[0] = YY_NULLPTR
;
5189 yyset
->yylookaheadNeeds
=
5190 (yybool
*) YYMALLOC (16 * sizeof yyset
->yylookaheadNeeds
[0]);
5191 if (! yyset
->yylookaheadNeeds
)
5193 YYFREE (yyset
->yystates
);
5199 static void yyfreeStateSet (yyGLRStateSet
* yyset
)
5201 YYFREE (yyset
->yystates
);
5202 YYFREE (yyset
->yylookaheadNeeds
);
5205 /** Initialize *YYSTACKP to a single empty stack, with total maximum
5206 * capacity for all stacks of YYSIZE. */
5208 yyinitGLRStack (yyGLRStack
* yystackp
, size_t yysize
)
5210 yystackp
->yyerrState
= 0;
5212 yystackp
->yyspaceLeft
= yysize
;
5214 (yyGLRStackItem
*) YYMALLOC (yysize
* sizeof yystackp
->yynextFree
[0]);
5215 if (!yystackp
->yyitems
)
5217 yystackp
->yynextFree
= yystackp
->yyitems
;
5218 yystackp
->yysplitPoint
= YY_NULLPTR
;
5219 yystackp
->yylastDeleted
= YY_NULLPTR
;
5220 return yyinitStateSet (&yystackp
->yytops
);
5224 #if YYSTACKEXPANDABLE
5225 # define YYRELOC(YYFROMITEMS,YYTOITEMS,YYX,YYTYPE) \
5226 &((YYTOITEMS) - ((YYFROMITEMS) - (yyGLRStackItem*) (YYX)))->YYTYPE
5228 /** If *YYSTACKP is expandable, extend it. WARNING: Pointers into the
5229 stack from outside should be considered invalid after this call.
5230 We always expand when there are 1 or fewer items left AFTER an
5231 allocation, so that we can avoid having external pointers exist
5232 across an allocation. */
5234 yyexpandGLRStack (yyGLRStack
* yystackp
)
5236 yyGLRStackItem
* yynewItems
;
5237 yyGLRStackItem
* yyp0
, *yyp1
;
5240 size_t yysize
= yystackp
->yynextFree
- yystackp
->yyitems
;
5241 if (YYMAXDEPTH
- YYHEADROOM
< yysize
)
5242 yyMemoryExhausted (yystackp
);
5243 yynewSize
= 2*yysize
;
5244 if (YYMAXDEPTH
< yynewSize
)
5245 yynewSize
= YYMAXDEPTH
;
5246 yynewItems
= (yyGLRStackItem
*) YYMALLOC (yynewSize
* sizeof yynewItems
[0]);
5248 yyMemoryExhausted (yystackp
);
5249 for (yyp0
= yystackp
->yyitems
, yyp1
= yynewItems
, yyn
= yysize
;
5251 yyn
-= 1, yyp0
+= 1, yyp1
+= 1)
5254 if (*(yybool
*) yyp0
)
5256 yyGLRState
* yys0
= &yyp0
->yystate
;
5257 yyGLRState
* yys1
= &yyp1
->yystate
;
5258 if (yys0
->yypred
!= YY_NULLPTR
)
5260 YYRELOC (yyp0
, yyp1
, yys0
->yypred
, yystate
);
5261 if (! yys0
->yyresolved
&& yys0
->yysemantics
.yyfirstVal
!= YY_NULLPTR
)
5262 yys1
->yysemantics
.yyfirstVal
=
5263 YYRELOC (yyp0
, yyp1
, yys0
->yysemantics
.yyfirstVal
, yyoption
);
5267 yySemanticOption
* yyv0
= &yyp0
->yyoption
;
5268 yySemanticOption
* yyv1
= &yyp1
->yyoption
;
5269 if (yyv0
->yystate
!= YY_NULLPTR
)
5270 yyv1
->yystate
= YYRELOC (yyp0
, yyp1
, yyv0
->yystate
, yystate
);
5271 if (yyv0
->yynext
!= YY_NULLPTR
)
5272 yyv1
->yynext
= YYRELOC (yyp0
, yyp1
, yyv0
->yynext
, yyoption
);
5275 if (yystackp
->yysplitPoint
!= YY_NULLPTR
)
5276 yystackp
->yysplitPoint
= YYRELOC (yystackp
->yyitems
, yynewItems
,
5277 yystackp
->yysplitPoint
, yystate
);
5279 for (yyn
= 0; yyn
< yystackp
->yytops
.yysize
; yyn
+= 1)
5280 if (yystackp
->yytops
.yystates
[yyn
] != YY_NULLPTR
)
5281 yystackp
->yytops
.yystates
[yyn
] =
5282 YYRELOC (yystackp
->yyitems
, yynewItems
,
5283 yystackp
->yytops
.yystates
[yyn
], yystate
);
5284 YYFREE (yystackp
->yyitems
);
5285 yystackp
->yyitems
= yynewItems
;
5286 yystackp
->yynextFree
= yynewItems
+ yysize
;
5287 yystackp
->yyspaceLeft
= yynewSize
- yysize
;
5292 yyfreeGLRStack (yyGLRStack
* yystackp
)
5294 YYFREE (yystackp
->yyitems
);
5295 yyfreeStateSet (&yystackp
->yytops
);
5298 /** Assuming that YYS is a GLRState somewhere on *YYSTACKP, update the
5299 * splitpoint of *YYSTACKP, if needed, so that it is at least as deep as
5302 yyupdateSplit (yyGLRStack
* yystackp
, yyGLRState
* yys
)
5304 if (yystackp
->yysplitPoint
!= YY_NULLPTR
&& yystackp
->yysplitPoint
> yys
)
5305 yystackp
->yysplitPoint
= yys
;
5308 /** Invalidate stack #YYK in *YYSTACKP. */
5310 yymarkStackDeleted (yyGLRStack
* yystackp
, size_t yyk
)
5312 if (yystackp
->yytops
.yystates
[yyk
] != YY_NULLPTR
)
5313 yystackp
->yylastDeleted
= yystackp
->yytops
.yystates
[yyk
];
5314 yystackp
->yytops
.yystates
[yyk
] = YY_NULLPTR
;
5317 /** Undelete the last stack in *YYSTACKP that was marked as deleted. Can
5318 only be done once after a deletion, and only when all other stacks have
5321 yyundeleteLastStack (yyGLRStack
* yystackp
)
5323 if (yystackp
->yylastDeleted
== YY_NULLPTR
|| yystackp
->yytops
.yysize
!= 0)
5325 yystackp
->yytops
.yystates
[0] = yystackp
->yylastDeleted
;
5326 yystackp
->yytops
.yysize
= 1;
5327 YYDPRINTF ((stderr
, "Restoring last deleted stack as stack #0.\n"));
5328 yystackp
->yylastDeleted
= YY_NULLPTR
;
5332 yyremoveDeletes (yyGLRStack
* yystackp
)
5336 while (yyj
< yystackp
->yytops
.yysize
)
5338 if (yystackp
->yytops
.yystates
[yyi
] == YY_NULLPTR
)
5342 YYDPRINTF ((stderr
, "Removing dead stacks.\n"));
5344 yystackp
->yytops
.yysize
-= 1;
5348 yystackp
->yytops
.yystates
[yyj
] = yystackp
->yytops
.yystates
[yyi
];
5349 /* In the current implementation, it's unnecessary to copy
5350 yystackp->yytops.yylookaheadNeeds[yyi] since, after
5351 yyremoveDeletes returns, the parser immediately either enters
5352 deterministic operation or shifts a token. However, it doesn't
5353 hurt, and the code might evolve to need it. */
5354 yystackp
->yytops
.yylookaheadNeeds
[yyj
] =
5355 yystackp
->yytops
.yylookaheadNeeds
[yyi
];
5358 YYDPRINTF ((stderr
, "Rename stack %lu -> %lu.\n",
5359 (unsigned long int) yyi
, (unsigned long int) yyj
));
5367 /** Shift to a new state on stack #YYK of *YYSTACKP, corresponding to LR
5368 * state YYLRSTATE, at input position YYPOSN, with (resolved) semantic
5369 * value *YYVALP and source location *YYLOCP. */
5371 yyglrShift (yyGLRStack
* yystackp
, size_t yyk
, yyStateNum yylrState
,
5375 yyGLRState
* yynewState
= &yynewGLRStackItem (yystackp
, yytrue
)->yystate
;
5377 yynewState
->yylrState
= yylrState
;
5378 yynewState
->yyposn
= yyposn
;
5379 yynewState
->yyresolved
= yytrue
;
5380 yynewState
->yypred
= yystackp
->yytops
.yystates
[yyk
];
5381 yynewState
->yysemantics
.yysval
= *yyvalp
;
5382 yystackp
->yytops
.yystates
[yyk
] = yynewState
;
5384 YY_RESERVE_GLRSTACK (yystackp
);
5387 /** Shift stack #YYK of *YYSTACKP, to a new state corresponding to LR
5388 * state YYLRSTATE, at input position YYPOSN, with the (unresolved)
5389 * semantic value of YYRHS under the action for YYRULE. */
5391 yyglrShiftDefer (yyGLRStack
* yystackp
, size_t yyk
, yyStateNum yylrState
,
5392 size_t yyposn
, yyGLRState
* yyrhs
, yyRuleNum yyrule
)
5394 yyGLRState
* yynewState
= &yynewGLRStackItem (yystackp
, yytrue
)->yystate
;
5395 YYASSERT (yynewState
->yyisState
);
5397 yynewState
->yylrState
= yylrState
;
5398 yynewState
->yyposn
= yyposn
;
5399 yynewState
->yyresolved
= yyfalse
;
5400 yynewState
->yypred
= yystackp
->yytops
.yystates
[yyk
];
5401 yynewState
->yysemantics
.yyfirstVal
= YY_NULLPTR
;
5402 yystackp
->yytops
.yystates
[yyk
] = yynewState
;
5404 /* Invokes YY_RESERVE_GLRSTACK. */
5405 yyaddDeferredAction (yystackp
, yyk
, yynewState
, yyrhs
, yyrule
);
5409 # define YY_REDUCE_PRINT(Args)
5411 # define YY_REDUCE_PRINT(Args) \
5414 yy_reduce_print Args; \
5417 /*----------------------------------------------------------------------.
5418 | Report that stack #YYK of *YYSTACKP is going to be reduced by YYRULE. |
5419 `----------------------------------------------------------------------*/
5422 yy_reduce_print (int yynormal
, yyGLRStackItem
* yyvsp
, size_t yyk
,
5423 yyRuleNum yyrule
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5425 int yynrhs
= yyrhsLength (yyrule
);
5427 YYFPRINTF (stderr
, "Reducing stack %lu by rule %d (line %lu):\n",
5428 (unsigned long int) yyk
, yyrule
- 1,
5429 (unsigned long int) yyrline
[yyrule
]);
5431 yyfillin (yyvsp
, 1, -yynrhs
);
5432 /* The symbols being reduced. */
5433 for (yyi
= 0; yyi
< yynrhs
; yyi
++)
5435 YYFPRINTF (stderr
, " $%d = ", yyi
+ 1);
5436 yy_symbol_print (stderr
,
5437 yystos
[yyvsp
[yyi
- yynrhs
+ 1].yystate
.yylrState
],
5438 &yyvsp
[yyi
- yynrhs
+ 1].yystate
.yysemantics
.yysval
5439 , P
, tokens
, index
);
5440 if (!yyvsp
[yyi
- yynrhs
+ 1].yystate
.yyresolved
)
5441 YYFPRINTF (stderr
, " (unresolved)");
5442 YYFPRINTF (stderr
, "\n");
5447 /** Pop the symbols consumed by reduction #YYRULE from the top of stack
5448 * #YYK of *YYSTACKP, and perform the appropriate semantic action on their
5449 * semantic values. Assumes that all ambiguities in semantic values
5450 * have been previously resolved. Set *YYVALP to the resulting value,
5451 * and *YYLOCP to the computed location (if any). Return value is as
5452 * for userAction. */
5453 static inline YYRESULTTAG
5454 yydoAction (yyGLRStack
* yystackp
, size_t yyk
, yyRuleNum yyrule
,
5455 YYSTYPE
* yyvalp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5457 int yynrhs
= yyrhsLength (yyrule
);
5459 if (yystackp
->yysplitPoint
== YY_NULLPTR
)
5461 /* Standard special case: single stack. */
5462 yyGLRStackItem
* yyrhs
= (yyGLRStackItem
*) yystackp
->yytops
.yystates
[yyk
];
5463 YYASSERT (yyk
== 0);
5464 yystackp
->yynextFree
-= yynrhs
;
5465 yystackp
->yyspaceLeft
+= yynrhs
;
5466 yystackp
->yytops
.yystates
[0] = & yystackp
->yynextFree
[-1].yystate
;
5467 YY_REDUCE_PRINT ((1, yyrhs
, yyk
, yyrule
, P
, tokens
, index
));
5468 return yyuserAction (yyrule
, yynrhs
, yyrhs
, yystackp
,
5469 yyvalp
, P
, tokens
, index
);
5475 yyGLRStackItem yyrhsVals
[YYMAXRHS
+ YYMAXLEFT
+ 1];
5476 yys
= yyrhsVals
[YYMAXRHS
+ YYMAXLEFT
].yystate
.yypred
5477 = yystackp
->yytops
.yystates
[yyk
];
5478 for (yyi
= 0; yyi
< yynrhs
; yyi
+= 1)
5483 yyupdateSplit (yystackp
, yys
);
5484 yystackp
->yytops
.yystates
[yyk
] = yys
;
5485 YY_REDUCE_PRINT ((0, yyrhsVals
+ YYMAXRHS
+ YYMAXLEFT
- 1, yyk
, yyrule
, P
, tokens
, index
));
5486 return yyuserAction (yyrule
, yynrhs
, yyrhsVals
+ YYMAXRHS
+ YYMAXLEFT
- 1,
5487 yystackp
, yyvalp
, P
, tokens
, index
);
5491 /** Pop items off stack #YYK of *YYSTACKP according to grammar rule YYRULE,
5492 * and push back on the resulting nonterminal symbol. Perform the
5493 * semantic action associated with YYRULE and store its value with the
5494 * newly pushed state, if YYFORCEEVAL or if *YYSTACKP is currently
5495 * unambiguous. Otherwise, store the deferred semantic action with
5496 * the new state. If the new state would have an identical input
5497 * position, LR state, and predecessor to an existing state on the stack,
5498 * it is identified with that existing state, eliminating stack #YYK from
5499 * *YYSTACKP. In this case, the semantic value is
5500 * added to the options for the existing state's semantic value.
5502 static inline YYRESULTTAG
5503 yyglrReduce (yyGLRStack
* yystackp
, size_t yyk
, yyRuleNum yyrule
,
5504 yybool yyforceEval
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5506 size_t yyposn
= yystackp
->yytops
.yystates
[yyk
]->yyposn
;
5508 if (yyforceEval
|| yystackp
->yysplitPoint
== YY_NULLPTR
)
5512 YYRESULTTAG yyflag
= yydoAction (yystackp
, yyk
, yyrule
, &yysval
, P
, tokens
, index
);
5513 if (yyflag
== yyerr
&& yystackp
->yysplitPoint
!= YY_NULLPTR
)
5515 YYDPRINTF ((stderr
, "Parse on stack %lu rejected by rule #%d.\n",
5516 (unsigned long int) yyk
, yyrule
- 1));
5520 YY_SYMBOL_PRINT ("-> $$ =", yyr1
[yyrule
], &yysval
, &yyloc
);
5521 yyglrShift (yystackp
, yyk
,
5522 yyLRgotoState (yystackp
->yytops
.yystates
[yyk
]->yylrState
,
5523 yylhsNonterm (yyrule
)),
5530 yyGLRState
* yys
, *yys0
= yystackp
->yytops
.yystates
[yyk
];
5531 yyStateNum yynewLRState
;
5533 for (yys
= yystackp
->yytops
.yystates
[yyk
], yyn
= yyrhsLength (yyrule
);
5539 yyupdateSplit (yystackp
, yys
);
5540 yynewLRState
= yyLRgotoState (yys
->yylrState
, yylhsNonterm (yyrule
));
5542 "Reduced stack %lu by rule #%d; action deferred. "
5543 "Now in state %d.\n",
5544 (unsigned long int) yyk
, yyrule
- 1, yynewLRState
));
5545 for (yyi
= 0; yyi
< yystackp
->yytops
.yysize
; yyi
+= 1)
5546 if (yyi
!= yyk
&& yystackp
->yytops
.yystates
[yyi
] != YY_NULLPTR
)
5548 yyGLRState
*yysplit
= yystackp
->yysplitPoint
;
5549 yyGLRState
*yyp
= yystackp
->yytops
.yystates
[yyi
];
5550 while (yyp
!= yys
&& yyp
!= yysplit
&& yyp
->yyposn
>= yyposn
)
5552 if (yyp
->yylrState
== yynewLRState
&& yyp
->yypred
== yys
)
5554 yyaddDeferredAction (yystackp
, yyk
, yyp
, yys0
, yyrule
);
5555 yymarkStackDeleted (yystackp
, yyk
);
5556 YYDPRINTF ((stderr
, "Merging stack %lu into stack %lu.\n",
5557 (unsigned long int) yyk
,
5558 (unsigned long int) yyi
));
5564 yystackp
->yytops
.yystates
[yyk
] = yys
;
5565 yyglrShiftDefer (yystackp
, yyk
, yynewLRState
, yyposn
, yys0
, yyrule
);
5571 yysplitStack (yyGLRStack
* yystackp
, size_t yyk
)
5573 if (yystackp
->yysplitPoint
== YY_NULLPTR
)
5575 YYASSERT (yyk
== 0);
5576 yystackp
->yysplitPoint
= yystackp
->yytops
.yystates
[yyk
];
5578 if (yystackp
->yytops
.yysize
>= yystackp
->yytops
.yycapacity
)
5580 yyGLRState
** yynewStates
;
5581 yybool
* yynewLookaheadNeeds
;
5583 yynewStates
= YY_NULLPTR
;
5585 if (yystackp
->yytops
.yycapacity
5586 > (YYSIZEMAX
/ (2 * sizeof yynewStates
[0])))
5587 yyMemoryExhausted (yystackp
);
5588 yystackp
->yytops
.yycapacity
*= 2;
5591 (yyGLRState
**) YYREALLOC (yystackp
->yytops
.yystates
,
5592 (yystackp
->yytops
.yycapacity
5593 * sizeof yynewStates
[0]));
5594 if (yynewStates
== YY_NULLPTR
)
5595 yyMemoryExhausted (yystackp
);
5596 yystackp
->yytops
.yystates
= yynewStates
;
5598 yynewLookaheadNeeds
=
5599 (yybool
*) YYREALLOC (yystackp
->yytops
.yylookaheadNeeds
,
5600 (yystackp
->yytops
.yycapacity
5601 * sizeof yynewLookaheadNeeds
[0]));
5602 if (yynewLookaheadNeeds
== YY_NULLPTR
)
5603 yyMemoryExhausted (yystackp
);
5604 yystackp
->yytops
.yylookaheadNeeds
= yynewLookaheadNeeds
;
5606 yystackp
->yytops
.yystates
[yystackp
->yytops
.yysize
]
5607 = yystackp
->yytops
.yystates
[yyk
];
5608 yystackp
->yytops
.yylookaheadNeeds
[yystackp
->yytops
.yysize
]
5609 = yystackp
->yytops
.yylookaheadNeeds
[yyk
];
5610 yystackp
->yytops
.yysize
+= 1;
5611 return yystackp
->yytops
.yysize
-1;
5614 /** True iff YYY0 and YYY1 represent identical options at the top level.
5615 * That is, they represent the same rule applied to RHS symbols
5616 * that produce the same terminal symbols. */
5618 yyidenticalOptions (yySemanticOption
* yyy0
, yySemanticOption
* yyy1
)
5620 if (yyy0
->yyrule
== yyy1
->yyrule
)
5622 yyGLRState
*yys0
, *yys1
;
5624 for (yys0
= yyy0
->yystate
, yys1
= yyy1
->yystate
,
5625 yyn
= yyrhsLength (yyy0
->yyrule
);
5627 yys0
= yys0
->yypred
, yys1
= yys1
->yypred
, yyn
-= 1)
5628 if (yys0
->yyposn
!= yys1
->yyposn
)
5636 /** Assuming identicalOptions (YYY0,YYY1), destructively merge the
5637 * alternative semantic values for the RHS-symbols of YYY1 and YYY0. */
5639 yymergeOptionSets (yySemanticOption
* yyy0
, yySemanticOption
* yyy1
)
5641 yyGLRState
*yys0
, *yys1
;
5643 for (yys0
= yyy0
->yystate
, yys1
= yyy1
->yystate
,
5644 yyn
= yyrhsLength (yyy0
->yyrule
);
5646 yys0
= yys0
->yypred
, yys1
= yys1
->yypred
, yyn
-= 1)
5650 else if (yys0
->yyresolved
)
5652 yys1
->yyresolved
= yytrue
;
5653 yys1
->yysemantics
.yysval
= yys0
->yysemantics
.yysval
;
5655 else if (yys1
->yyresolved
)
5657 yys0
->yyresolved
= yytrue
;
5658 yys0
->yysemantics
.yysval
= yys1
->yysemantics
.yysval
;
5662 yySemanticOption
** yyz0p
= &yys0
->yysemantics
.yyfirstVal
;
5663 yySemanticOption
* yyz1
= yys1
->yysemantics
.yyfirstVal
;
5666 if (yyz1
== *yyz0p
|| yyz1
== YY_NULLPTR
)
5668 else if (*yyz0p
== YY_NULLPTR
)
5673 else if (*yyz0p
< yyz1
)
5675 yySemanticOption
* yyz
= *yyz0p
;
5677 yyz1
= yyz1
->yynext
;
5678 (*yyz0p
)->yynext
= yyz
;
5680 yyz0p
= &(*yyz0p
)->yynext
;
5682 yys1
->yysemantics
.yyfirstVal
= yys0
->yysemantics
.yyfirstVal
;
5687 /** Y0 and Y1 represent two possible actions to take in a given
5688 * parsing state; return 0 if no combination is possible,
5689 * 1 if user-mergeable, 2 if Y0 is preferred, 3 if Y1 is preferred. */
5691 yypreference (yySemanticOption
* y0
, yySemanticOption
* y1
)
5693 yyRuleNum r0
= y0
->yyrule
, r1
= y1
->yyrule
;
5694 int p0
= yydprec
[r0
], p1
= yydprec
[r1
];
5698 if (yymerger
[r0
] == 0 || yymerger
[r0
] != yymerger
[r1
])
5703 if (p0
== 0 || p1
== 0)
5712 static YYRESULTTAG
yyresolveValue (yyGLRState
* yys
,
5713 yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
);
5716 /** Resolve the previous YYN states starting at and including state YYS
5717 * on *YYSTACKP. If result != yyok, some states may have been left
5718 * unresolved possibly with empty semantic option chains. Regardless
5719 * of whether result = yyok, each state has been left with consistent
5720 * data so that yydestroyGLRState can be invoked if necessary. */
5722 yyresolveStates (yyGLRState
* yys
, int yyn
,
5723 yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5727 YYASSERT (yys
->yypred
);
5728 YYCHK (yyresolveStates (yys
->yypred
, yyn
-1, yystackp
, P
, tokens
, index
));
5729 if (! yys
->yyresolved
)
5730 YYCHK (yyresolveValue (yys
, yystackp
, P
, tokens
, index
));
5735 /** Resolve the states for the RHS of YYOPT on *YYSTACKP, perform its
5736 * user action, and return the semantic value and location in *YYVALP
5737 * and *YYLOCP. Regardless of whether result = yyok, all RHS states
5738 * have been destroyed (assuming the user action destroys all RHS
5739 * semantic values if invoked). */
5741 yyresolveAction (yySemanticOption
* yyopt
, yyGLRStack
* yystackp
,
5742 YYSTYPE
* yyvalp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5744 yyGLRStackItem yyrhsVals
[YYMAXRHS
+ YYMAXLEFT
+ 1];
5745 int yynrhs
= yyrhsLength (yyopt
->yyrule
);
5746 YYRESULTTAG yyflag
=
5747 yyresolveStates (yyopt
->yystate
, yynrhs
, yystackp
, P
, tokens
, index
);
5751 for (yys
= yyopt
->yystate
; yynrhs
> 0; yys
= yys
->yypred
, yynrhs
-= 1)
5752 yydestroyGLRState ("Cleanup: popping", yys
, P
, tokens
, index
);
5756 yyrhsVals
[YYMAXRHS
+ YYMAXLEFT
].yystate
.yypred
= yyopt
->yystate
;
5758 int yychar_current
= yychar
;
5759 YYSTYPE yylval_current
= yylval
;
5760 yychar
= yyopt
->yyrawchar
;
5761 yylval
= yyopt
->yyval
;
5762 yyflag
= yyuserAction (yyopt
->yyrule
, yynrhs
,
5763 yyrhsVals
+ YYMAXRHS
+ YYMAXLEFT
- 1,
5764 yystackp
, yyvalp
, P
, tokens
, index
);
5765 yychar
= yychar_current
;
5766 yylval
= yylval_current
;
5773 yyreportTree (yySemanticOption
* yyx
, int yyindent
)
5775 int yynrhs
= yyrhsLength (yyx
->yyrule
);
5778 yyGLRState
* yystates
[1 + YYMAXRHS
];
5779 yyGLRState yyleftmost_state
;
5781 for (yyi
= yynrhs
, yys
= yyx
->yystate
; 0 < yyi
; yyi
-= 1, yys
= yys
->yypred
)
5782 yystates
[yyi
] = yys
;
5783 if (yys
== YY_NULLPTR
)
5785 yyleftmost_state
.yyposn
= 0;
5786 yystates
[0] = &yyleftmost_state
;
5791 if (yyx
->yystate
->yyposn
< yys
->yyposn
+ 1)
5792 YYFPRINTF (stderr
, "%*s%s -> <Rule %d, empty>\n",
5793 yyindent
, "", yytokenName (yylhsNonterm (yyx
->yyrule
)),
5796 YYFPRINTF (stderr
, "%*s%s -> <Rule %d, tokens %lu .. %lu>\n",
5797 yyindent
, "", yytokenName (yylhsNonterm (yyx
->yyrule
)),
5798 yyx
->yyrule
- 1, (unsigned long int) (yys
->yyposn
+ 1),
5799 (unsigned long int) yyx
->yystate
->yyposn
);
5800 for (yyi
= 1; yyi
<= yynrhs
; yyi
+= 1)
5802 if (yystates
[yyi
]->yyresolved
)
5804 if (yystates
[yyi
-1]->yyposn
+1 > yystates
[yyi
]->yyposn
)
5805 YYFPRINTF (stderr
, "%*s%s <empty>\n", yyindent
+2, "",
5806 yytokenName (yystos
[yystates
[yyi
]->yylrState
]));
5808 YYFPRINTF (stderr
, "%*s%s <tokens %lu .. %lu>\n", yyindent
+2, "",
5809 yytokenName (yystos
[yystates
[yyi
]->yylrState
]),
5810 (unsigned long int) (yystates
[yyi
-1]->yyposn
+ 1),
5811 (unsigned long int) yystates
[yyi
]->yyposn
);
5814 yyreportTree (yystates
[yyi
]->yysemantics
.yyfirstVal
, yyindent
+2);
5820 yyreportAmbiguity (yySemanticOption
* yyx0
,
5821 yySemanticOption
* yyx1
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5827 YYFPRINTF (stderr
, "Ambiguity detected.\n");
5828 YYFPRINTF (stderr
, "Option 1,\n");
5829 yyreportTree (yyx0
, 2);
5830 YYFPRINTF (stderr
, "\nOption 2,\n");
5831 yyreportTree (yyx1
, 2);
5832 YYFPRINTF (stderr
, "\n");
5835 yyerror (P
, tokens
, index
, YY_("syntax is ambiguous"));
5839 /** Resolve the ambiguity represented in state YYS in *YYSTACKP,
5840 * perform the indicated actions, and set the semantic value of YYS.
5841 * If result != yyok, the chain of semantic options in YYS has been
5842 * cleared instead or it has been left unmodified except that
5843 * redundant options may have been removed. Regardless of whether
5844 * result = yyok, YYS has been left with consistent data so that
5845 * yydestroyGLRState can be invoked if necessary. */
5847 yyresolveValue (yyGLRState
* yys
, yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5849 yySemanticOption
* yyoptionList
= yys
->yysemantics
.yyfirstVal
;
5850 yySemanticOption
* yybest
= yyoptionList
;
5851 yySemanticOption
** yypp
;
5852 yybool yymerge
= yyfalse
;
5856 for (yypp
= &yyoptionList
->yynext
; *yypp
!= YY_NULLPTR
; )
5858 yySemanticOption
* yyp
= *yypp
;
5860 if (yyidenticalOptions (yybest
, yyp
))
5862 yymergeOptionSets (yybest
, yyp
);
5863 *yypp
= yyp
->yynext
;
5867 switch (yypreference (yybest
, yyp
))
5870 return yyreportAmbiguity (yybest
, yyp
, P
, tokens
, index
);
5882 /* This cannot happen so it is not worth a YYASSERT (yyfalse),
5883 but some compilers complain if the default case is
5887 yypp
= &yyp
->yynext
;
5893 yySemanticOption
* yyp
;
5894 int yyprec
= yydprec
[yybest
->yyrule
];
5895 yyflag
= yyresolveAction (yybest
, yystackp
, &yysval
, P
, tokens
, index
);
5897 for (yyp
= yybest
->yynext
; yyp
!= YY_NULLPTR
; yyp
= yyp
->yynext
)
5899 if (yyprec
== yydprec
[yyp
->yyrule
])
5901 YYSTYPE yysval_other
;
5902 yyflag
= yyresolveAction (yyp
, yystackp
, &yysval_other
, P
, tokens
, index
);
5905 yydestruct ("Cleanup: discarding incompletely merged value for",
5906 yystos
[yys
->yylrState
],
5907 &yysval
, P
, tokens
, index
);
5910 yyuserMerge (yymerger
[yyp
->yyrule
], &yysval
, &yysval_other
);
5915 yyflag
= yyresolveAction (yybest
, yystackp
, &yysval
, P
, tokens
, index
);
5919 yys
->yyresolved
= yytrue
;
5920 yys
->yysemantics
.yysval
= yysval
;
5923 yys
->yysemantics
.yyfirstVal
= YY_NULLPTR
;
5928 yyresolveStack (yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5930 if (yystackp
->yysplitPoint
!= YY_NULLPTR
)
5935 for (yyn
= 0, yys
= yystackp
->yytops
.yystates
[0];
5936 yys
!= yystackp
->yysplitPoint
;
5937 yys
= yys
->yypred
, yyn
+= 1)
5939 YYCHK (yyresolveStates (yystackp
->yytops
.yystates
[0], yyn
, yystackp
5940 , P
, tokens
, index
));
5946 yycompressStack (yyGLRStack
* yystackp
)
5948 yyGLRState
* yyp
, *yyq
, *yyr
;
5950 if (yystackp
->yytops
.yysize
!= 1 || yystackp
->yysplitPoint
== YY_NULLPTR
)
5953 for (yyp
= yystackp
->yytops
.yystates
[0], yyq
= yyp
->yypred
, yyr
= YY_NULLPTR
;
5954 yyp
!= yystackp
->yysplitPoint
;
5955 yyr
= yyp
, yyp
= yyq
, yyq
= yyp
->yypred
)
5958 yystackp
->yyspaceLeft
+= yystackp
->yynextFree
- yystackp
->yyitems
;
5959 yystackp
->yynextFree
= ((yyGLRStackItem
*) yystackp
->yysplitPoint
) + 1;
5960 yystackp
->yyspaceLeft
-= yystackp
->yynextFree
- yystackp
->yyitems
;
5961 yystackp
->yysplitPoint
= YY_NULLPTR
;
5962 yystackp
->yylastDeleted
= YY_NULLPTR
;
5964 while (yyr
!= YY_NULLPTR
)
5966 yystackp
->yynextFree
->yystate
= *yyr
;
5968 yystackp
->yynextFree
->yystate
.yypred
= &yystackp
->yynextFree
[-1].yystate
;
5969 yystackp
->yytops
.yystates
[0] = &yystackp
->yynextFree
->yystate
;
5970 yystackp
->yynextFree
+= 1;
5971 yystackp
->yyspaceLeft
-= 1;
5976 yyprocessOneStack (yyGLRStack
* yystackp
, size_t yyk
,
5977 size_t yyposn
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5979 while (yystackp
->yytops
.yystates
[yyk
] != YY_NULLPTR
)
5981 yyStateNum yystate
= yystackp
->yytops
.yystates
[yyk
]->yylrState
;
5982 YYDPRINTF ((stderr
, "Stack %lu Entering state %d\n",
5983 (unsigned long int) yyk
, yystate
));
5985 YYASSERT (yystate
!= YYFINAL
);
5987 if (yyisDefaultedState (yystate
))
5990 yyRuleNum yyrule
= yydefaultAction (yystate
);
5993 YYDPRINTF ((stderr
, "Stack %lu dies.\n",
5994 (unsigned long int) yyk
));
5995 yymarkStackDeleted (yystackp
, yyk
);
5998 yyflag
= yyglrReduce (yystackp
, yyk
, yyrule
, yyimmediate
[yyrule
], P
, tokens
, index
);
5999 if (yyflag
== yyerr
)
6003 "(predicate failure or explicit user error).\n",
6004 (unsigned long int) yyk
));
6005 yymarkStackDeleted (yystackp
, yyk
);
6015 const short int* yyconflicts
;
6017 yystackp
->yytops
.yylookaheadNeeds
[yyk
] = yytrue
;
6018 if (yychar
== YYEMPTY
)
6020 YYDPRINTF ((stderr
, "Reading a token: "));
6021 yychar
= yylex (&yylval
, P
, tokens
, index
);
6024 if (yychar
<= YYEOF
)
6026 yychar
= yytoken
= YYEOF
;
6027 YYDPRINTF ((stderr
, "Now at end of input.\n"));
6031 yytoken
= YYTRANSLATE (yychar
);
6032 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
6035 yygetLRActions (yystate
, yytoken
, &yyaction
, &yyconflicts
);
6037 while (*yyconflicts
!= 0)
6040 size_t yynewStack
= yysplitStack (yystackp
, yyk
);
6041 YYDPRINTF ((stderr
, "Splitting off stack %lu from %lu.\n",
6042 (unsigned long int) yynewStack
,
6043 (unsigned long int) yyk
));
6044 yyflag
= yyglrReduce (yystackp
, yynewStack
,
6046 yyimmediate
[*yyconflicts
], P
, tokens
, index
);
6048 YYCHK (yyprocessOneStack (yystackp
, yynewStack
,
6049 yyposn
, P
, tokens
, index
));
6050 else if (yyflag
== yyerr
)
6052 YYDPRINTF ((stderr
, "Stack %lu dies.\n",
6053 (unsigned long int) yynewStack
));
6054 yymarkStackDeleted (yystackp
, yynewStack
);
6061 if (yyisShiftAction (yyaction
))
6063 else if (yyisErrorAction (yyaction
))
6065 YYDPRINTF ((stderr
, "Stack %lu dies.\n",
6066 (unsigned long int) yyk
));
6067 yymarkStackDeleted (yystackp
, yyk
);
6072 YYRESULTTAG yyflag
= yyglrReduce (yystackp
, yyk
, -yyaction
,
6073 yyimmediate
[-yyaction
], P
, tokens
, index
);
6074 if (yyflag
== yyerr
)
6078 "(predicate failure or explicit user error).\n",
6079 (unsigned long int) yyk
));
6080 yymarkStackDeleted (yystackp
, yyk
);
6083 else if (yyflag
!= yyok
)
6092 yyreportSyntaxError (yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6094 if (yystackp
->yyerrState
!= 0)
6096 #if ! YYERROR_VERBOSE
6097 yyerror (P
, tokens
, index
, YY_("syntax error"));
6100 yySymbol yytoken
= yychar
== YYEMPTY
? YYEMPTY
: YYTRANSLATE (yychar
);
6101 size_t yysize0
= yytnamerr (YY_NULLPTR
, yytokenName (yytoken
));
6102 size_t yysize
= yysize0
;
6103 yybool yysize_overflow
= yyfalse
;
6104 char* yymsg
= YY_NULLPTR
;
6105 enum { YYERROR_VERBOSE_ARGS_MAXIMUM
= 5 };
6106 /* Internationalized format string. */
6107 const char *yyformat
= YY_NULLPTR
;
6108 /* Arguments of yyformat. */
6109 char const *yyarg
[YYERROR_VERBOSE_ARGS_MAXIMUM
];
6110 /* Number of reported tokens (one for the "unexpected", one per
6114 /* There are many possibilities here to consider:
6115 - If this state is a consistent state with a default action, then
6116 the only way this function was invoked is if the default action
6117 is an error action. In that case, don't check for expected
6118 tokens because there are none.
6119 - The only way there can be no lookahead present (in yychar) is if
6120 this state is a consistent state with a default action. Thus,
6121 detecting the absence of a lookahead is sufficient to determine
6122 that there is no unexpected or expected token to report. In that
6123 case, just report a simple "syntax error".
6124 - Don't assume there isn't a lookahead just because this state is a
6125 consistent state with a default action. There might have been a
6126 previous inconsistent state, consistent state with a non-default
6127 action, or user semantic action that manipulated yychar.
6128 - Of course, the expected token list depends on states to have
6129 correct lookahead information, and it depends on the parser not
6130 to perform extra reductions after fetching a lookahead from the
6131 scanner and before detecting a syntax error. Thus, state merging
6132 (from LALR or IELR) and default reductions corrupt the expected
6133 token list. However, the list is correct for canonical LR with
6134 one exception: it will still contain any token that will not be
6135 accepted due to an error action in a later state.
6137 if (yytoken
!= YYEMPTY
)
6139 int yyn
= yypact
[yystackp
->yytops
.yystates
[0]->yylrState
];
6140 yyarg
[yycount
++] = yytokenName (yytoken
);
6141 if (!yypact_value_is_default (yyn
))
6143 /* Start YYX at -YYN if negative to avoid negative indexes in
6144 YYCHECK. In other words, skip the first -YYN actions for this
6145 state because they are default actions. */
6146 int yyxbegin
= yyn
< 0 ? -yyn
: 0;
6147 /* Stay within bounds of both yycheck and yytname. */
6148 int yychecklim
= YYLAST
- yyn
+ 1;
6149 int yyxend
= yychecklim
< YYNTOKENS
? yychecklim
: YYNTOKENS
;
6151 for (yyx
= yyxbegin
; yyx
< yyxend
; ++yyx
)
6152 if (yycheck
[yyx
+ yyn
] == yyx
&& yyx
!= YYTERROR
6153 && !yytable_value_is_error (yytable
[yyx
+ yyn
]))
6155 if (yycount
== YYERROR_VERBOSE_ARGS_MAXIMUM
)
6161 yyarg
[yycount
++] = yytokenName (yyx
);
6163 size_t yysz
= yysize
+ yytnamerr (YY_NULLPTR
, yytokenName (yyx
));
6164 yysize_overflow
|= yysz
< yysize
;
6173 #define YYCASE_(N, S) \
6177 YYCASE_(0, YY_("syntax error"));
6178 YYCASE_(1, YY_("syntax error, unexpected %s"));
6179 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
6180 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
6181 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
6182 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
6187 size_t yysz
= yysize
+ strlen (yyformat
);
6188 yysize_overflow
|= yysz
< yysize
;
6192 if (!yysize_overflow
)
6193 yymsg
= (char *) YYMALLOC (yysize
);
6199 while ((*yyp
= *yyformat
))
6201 if (*yyp
== '%' && yyformat
[1] == 's' && yyi
< yycount
)
6203 yyp
+= yytnamerr (yyp
, yyarg
[yyi
++]);
6212 yyerror (P
, tokens
, index
, yymsg
);
6217 yyerror (P
, tokens
, index
, YY_("syntax error"));
6218 yyMemoryExhausted (yystackp
);
6221 #endif /* YYERROR_VERBOSE */
6225 /* Recover from a syntax error on *YYSTACKP, assuming that *YYSTACKP->YYTOKENP,
6226 yylval, and yylloc are the syntactic category, semantic value, and location
6227 of the lookahead. */
6229 yyrecoverSyntaxError (yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6234 if (yystackp
->yyerrState
== 3)
6235 /* We just shifted the error token and (perhaps) took some
6236 reductions. Skip tokens until we can proceed. */
6240 if (yychar
== YYEOF
)
6241 yyFail (yystackp
, P
, tokens
, index
, YY_NULLPTR
);
6242 if (yychar
!= YYEMPTY
)
6244 yytoken
= YYTRANSLATE (yychar
);
6245 yydestruct ("Error: discarding",
6246 yytoken
, &yylval
, P
, tokens
, index
);
6248 YYDPRINTF ((stderr
, "Reading a token: "));
6249 yychar
= yylex (&yylval
, P
, tokens
, index
);
6250 if (yychar
<= YYEOF
)
6252 yychar
= yytoken
= YYEOF
;
6253 YYDPRINTF ((stderr
, "Now at end of input.\n"));
6257 yytoken
= YYTRANSLATE (yychar
);
6258 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
6260 yyj
= yypact
[yystackp
->yytops
.yystates
[0]->yylrState
];
6261 if (yypact_value_is_default (yyj
))
6264 if (yyj
< 0 || YYLAST
< yyj
|| yycheck
[yyj
] != yytoken
)
6266 if (yydefact
[yystackp
->yytops
.yystates
[0]->yylrState
] != 0)
6269 else if (! yytable_value_is_error (yytable
[yyj
]))
6273 /* Reduce to one stack. */
6274 for (yyk
= 0; yyk
< yystackp
->yytops
.yysize
; yyk
+= 1)
6275 if (yystackp
->yytops
.yystates
[yyk
] != YY_NULLPTR
)
6277 if (yyk
>= yystackp
->yytops
.yysize
)
6278 yyFail (yystackp
, P
, tokens
, index
, YY_NULLPTR
);
6279 for (yyk
+= 1; yyk
< yystackp
->yytops
.yysize
; yyk
+= 1)
6280 yymarkStackDeleted (yystackp
, yyk
);
6281 yyremoveDeletes (yystackp
);
6282 yycompressStack (yystackp
);
6284 /* Now pop stack until we find a state that shifts the error token. */
6285 yystackp
->yyerrState
= 3;
6286 while (yystackp
->yytops
.yystates
[0] != YY_NULLPTR
)
6288 yyGLRState
*yys
= yystackp
->yytops
.yystates
[0];
6289 yyj
= yypact
[yys
->yylrState
];
6290 if (! yypact_value_is_default (yyj
))
6293 if (0 <= yyj
&& yyj
<= YYLAST
&& yycheck
[yyj
] == YYTERROR
6294 && yyisShiftAction (yytable
[yyj
]))
6296 /* Shift the error token. */
6297 YY_SYMBOL_PRINT ("Shifting", yystos
[yytable
[yyj
]],
6298 &yylval
, &yyerrloc
);
6299 yyglrShift (yystackp
, 0, yytable
[yyj
],
6300 yys
->yyposn
, &yylval
);
6301 yys
= yystackp
->yytops
.yystates
[0];
6305 if (yys
->yypred
!= YY_NULLPTR
)
6306 yydestroyGLRState ("Error: popping", yys
, P
, tokens
, index
);
6307 yystackp
->yytops
.yystates
[0] = yys
->yypred
;
6308 yystackp
->yynextFree
-= 1;
6309 yystackp
->yyspaceLeft
+= 1;
6311 if (yystackp
->yytops
.yystates
[0] == YY_NULLPTR
)
6312 yyFail (yystackp
, P
, tokens
, index
, YY_NULLPTR
);
6315 #define YYCHK1(YYE) \
6325 goto yyuser_error; \
6336 yyparse (struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6340 yyGLRStack
* const yystackp
= &yystack
;
6343 YYDPRINTF ((stderr
, "Starting parse\n"));
6346 yylval
= yyval_default
;
6348 /* User initialization code. */
6349 #line 117 "src/parser_proc_grammar.y" /* glr.c:2270 */
6353 #line 6354 "src/parser_proc.c" /* glr.c:2270 */
6355 if (! yyinitGLRStack (yystackp
, YYINITDEPTH
))
6356 goto yyexhaustedlab
;
6357 switch (YYSETJMP (yystack
.yyexception_buffer
))
6360 case 1: goto yyabortlab
;
6361 case 2: goto yyexhaustedlab
;
6362 default: goto yybuglab
;
6364 yyglrShift (&yystack
, 0, 0, 0, &yylval
);
6369 /* For efficiency, we have two loops, the first of which is
6370 specialized to deterministic operation (single stack, no
6371 potential ambiguity). */
6377 const short int* yyconflicts
;
6379 yyStateNum yystate
= yystack
.yytops
.yystates
[0]->yylrState
;
6380 YYDPRINTF ((stderr
, "Entering state %d\n", yystate
));
6381 if (yystate
== YYFINAL
)
6383 if (yyisDefaultedState (yystate
))
6385 yyrule
= yydefaultAction (yystate
);
6389 yyreportSyntaxError (&yystack
, P
, tokens
, index
);
6392 YYCHK1 (yyglrReduce (&yystack
, 0, yyrule
, yytrue
, P
, tokens
, index
));
6397 if (yychar
== YYEMPTY
)
6399 YYDPRINTF ((stderr
, "Reading a token: "));
6400 yychar
= yylex (&yylval
, P
, tokens
, index
);
6403 if (yychar
<= YYEOF
)
6405 yychar
= yytoken
= YYEOF
;
6406 YYDPRINTF ((stderr
, "Now at end of input.\n"));
6410 yytoken
= YYTRANSLATE (yychar
);
6411 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
6414 yygetLRActions (yystate
, yytoken
, &yyaction
, &yyconflicts
);
6415 if (*yyconflicts
!= 0)
6417 if (yyisShiftAction (yyaction
))
6419 YY_SYMBOL_PRINT ("Shifting", yytoken
, &yylval
, &yylloc
);
6422 yyglrShift (&yystack
, 0, yyaction
, yyposn
, &yylval
);
6423 if (0 < yystack
.yyerrState
)
6424 yystack
.yyerrState
-= 1;
6426 else if (yyisErrorAction (yyaction
))
6429 yyreportSyntaxError (&yystack
, P
, tokens
, index
);
6433 YYCHK1 (yyglrReduce (&yystack
, 0, -yyaction
, yytrue
, P
, tokens
, index
));
6439 yySymbol yytoken_to_shift
;
6442 for (yys
= 0; yys
< yystack
.yytops
.yysize
; yys
+= 1)
6443 yystackp
->yytops
.yylookaheadNeeds
[yys
] = yychar
!= YYEMPTY
;
6445 /* yyprocessOneStack returns one of three things:
6447 - An error flag. If the caller is yyprocessOneStack, it
6448 immediately returns as well. When the caller is finally
6449 yyparse, it jumps to an error label via YYCHK1.
6451 - yyok, but yyprocessOneStack has invoked yymarkStackDeleted
6452 (&yystack, yys), which sets the top state of yys to NULL. Thus,
6453 yyparse's following invocation of yyremoveDeletes will remove
6456 - yyok, when ready to shift a token.
6458 Except in the first case, yyparse will invoke yyremoveDeletes and
6459 then shift the next token onto all remaining stacks. This
6460 synchronization of the shift (that is, after all preceding
6461 reductions on all stacks) helps prevent double destructor calls
6462 on yylval in the event of memory exhaustion. */
6464 for (yys
= 0; yys
< yystack
.yytops
.yysize
; yys
+= 1)
6465 YYCHK1 (yyprocessOneStack (&yystack
, yys
, yyposn
, P
, tokens
, index
));
6466 yyremoveDeletes (&yystack
);
6467 if (yystack
.yytops
.yysize
== 0)
6469 yyundeleteLastStack (&yystack
);
6470 if (yystack
.yytops
.yysize
== 0)
6471 yyFail (&yystack
, P
, tokens
, index
, YY_("syntax error"));
6472 YYCHK1 (yyresolveStack (&yystack
, P
, tokens
, index
));
6473 YYDPRINTF ((stderr
, "Returning to deterministic operation.\n"));
6475 yyreportSyntaxError (&yystack
, P
, tokens
, index
);
6479 /* If any yyglrShift call fails, it will fail after shifting. Thus,
6480 a copy of yylval will already be on stack 0 in the event of a
6481 failure in the following loop. Thus, yychar is set to YYEMPTY
6482 before the loop to make sure the user destructor for yylval isn't
6484 yytoken_to_shift
= YYTRANSLATE (yychar
);
6487 for (yys
= 0; yys
< yystack
.yytops
.yysize
; yys
+= 1)
6490 const short int* yyconflicts
;
6491 yyStateNum yystate
= yystack
.yytops
.yystates
[yys
]->yylrState
;
6492 yygetLRActions (yystate
, yytoken_to_shift
, &yyaction
,
6494 /* Note that yyconflicts were handled by yyprocessOneStack. */
6495 YYDPRINTF ((stderr
, "On stack %lu, ", (unsigned long int) yys
));
6496 YY_SYMBOL_PRINT ("shifting", yytoken_to_shift
, &yylval
, &yylloc
);
6497 yyglrShift (&yystack
, yys
, yyaction
, yyposn
,
6499 YYDPRINTF ((stderr
, "Stack %lu now in state #%d\n",
6500 (unsigned long int) yys
,
6501 yystack
.yytops
.yystates
[yys
]->yylrState
));
6504 if (yystack
.yytops
.yysize
== 1)
6506 YYCHK1 (yyresolveStack (&yystack
, P
, tokens
, index
));
6507 YYDPRINTF ((stderr
, "Returning to deterministic operation.\n"));
6508 yycompressStack (&yystack
);
6514 yyrecoverSyntaxError (&yystack
, P
, tokens
, index
);
6515 yyposn
= yystack
.yytops
.yystates
[0]->yyposn
;
6531 yyerror (P
, tokens
, index
, YY_("memory exhausted"));
6536 if (yychar
!= YYEMPTY
)
6537 yydestruct ("Cleanup: discarding lookahead",
6538 YYTRANSLATE (yychar
), &yylval
, P
, tokens
, index
);
6540 /* If the stack is well-formed, pop the stack until it is empty,
6541 destroying its entries as we go. But free the stack regardless
6542 of whether it is well-formed. */
6543 if (yystack
.yyitems
)
6545 yyGLRState
** yystates
= yystack
.yytops
.yystates
;
6548 size_t yysize
= yystack
.yytops
.yysize
;
6550 for (yyk
= 0; yyk
< yysize
; yyk
+= 1)
6553 while (yystates
[yyk
])
6555 yyGLRState
*yys
= yystates
[yyk
];
6556 if (yys
->yypred
!= YY_NULLPTR
)
6557 yydestroyGLRState ("Cleanup: popping", yys
, P
, tokens
, index
);
6558 yystates
[yyk
] = yys
->yypred
;
6559 yystack
.yynextFree
-= 1;
6560 yystack
.yyspaceLeft
+= 1;
6565 yyfreeGLRStack (&yystack
);
6571 /* DEBUGGING ONLY */
6574 yy_yypstack (yyGLRState
* yys
)
6578 yy_yypstack (yys
->yypred
);
6579 YYFPRINTF (stderr
, " -> ");
6581 YYFPRINTF (stderr
, "%d@%lu", yys
->yylrState
,
6582 (unsigned long int) yys
->yyposn
);
6586 yypstates (yyGLRState
* yyst
)
6588 if (yyst
== YY_NULLPTR
)
6589 YYFPRINTF (stderr
, "<null>");
6592 YYFPRINTF (stderr
, "\n");
6596 yypstack (yyGLRStack
* yystackp
, size_t yyk
)
6598 yypstates (yystackp
->yytops
.yystates
[yyk
]);
6601 #define YYINDEX(YYX) \
6602 ((YYX) == YY_NULLPTR ? -1 : (yyGLRStackItem*) (YYX) - yystackp->yyitems)
6606 yypdumpstack (yyGLRStack
* yystackp
)
6608 yyGLRStackItem
* yyp
;
6610 for (yyp
= yystackp
->yyitems
; yyp
< yystackp
->yynextFree
; yyp
+= 1)
6612 YYFPRINTF (stderr
, "%3lu. ",
6613 (unsigned long int) (yyp
- yystackp
->yyitems
));
6614 if (*(yybool
*) yyp
)
6616 YYASSERT (yyp
->yystate
.yyisState
);
6617 YYASSERT (yyp
->yyoption
.yyisState
);
6618 YYFPRINTF (stderr
, "Res: %d, LR State: %d, posn: %lu, pred: %ld",
6619 yyp
->yystate
.yyresolved
, yyp
->yystate
.yylrState
,
6620 (unsigned long int) yyp
->yystate
.yyposn
,
6621 (long int) YYINDEX (yyp
->yystate
.yypred
));
6622 if (! yyp
->yystate
.yyresolved
)
6623 YYFPRINTF (stderr
, ", firstVal: %ld",
6624 (long int) YYINDEX (yyp
->yystate
6625 .yysemantics
.yyfirstVal
));
6629 YYASSERT (!yyp
->yystate
.yyisState
);
6630 YYASSERT (!yyp
->yyoption
.yyisState
);
6631 YYFPRINTF (stderr
, "Option. rule: %d, state: %ld, next: %ld",
6632 yyp
->yyoption
.yyrule
- 1,
6633 (long int) YYINDEX (yyp
->yyoption
.yystate
),
6634 (long int) YYINDEX (yyp
->yyoption
.yynext
));
6636 YYFPRINTF (stderr
, "\n");
6638 YYFPRINTF (stderr
, "Tops:");
6639 for (yyi
= 0; yyi
< yystackp
->yytops
.yysize
; yyi
+= 1)
6640 YYFPRINTF (stderr
, "%lu: %ld; ", (unsigned long int) yyi
,
6641 (long int) YYINDEX (yystackp
->yytops
.yystates
[yyi
]));
6642 YYFPRINTF (stderr
, "\n");
6650 /* Substitute the variable and function names. */
6651 #define yyparse psi_parser_proc_parse
6652 #define yylex psi_parser_proc_lex
6653 #define yyerror psi_parser_proc_error
6654 #define yylval psi_parser_proc_lval
6655 #define yychar psi_parser_proc_char
6656 #define yydebug psi_parser_proc_debug
6657 #define yynerrs psi_parser_proc_nerrs
6659 #line 1766 "src/parser_proc_grammar.y" /* glr.c:2584 */
6664 static int psi_parser_proc_lex(YYSTYPE
*lvalp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6666 struct psi_token
*token
;
6668 if (psi_plist_get(tokens
, (*index
)++, &token
)) {
6669 if (P
->flags
& PSI_DEBUG
) {
6670 psi_token_dump(2, token
);
6673 *((struct psi_token
**)lvalp
) = token
;
6677 PSI_DEBUG_PRINT(P
, "EOF(%d)\n", PSI_T_EOF
);
6683 static void psi_parser_proc_error(struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
, const char *msg
)
6685 struct psi_token
*T
= NULL
;
6694 psi_plist_get(tokens
, last
, &T
);
6696 P
->error(PSI_DATA(P
), T
, PSI_WARNING
, "PSI %s at col %u", msg
, T
->col
);
6698 P
->error(PSI_DATA(P
), NULL
, PSI_WARNING
, "PSI %s", msg
);