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 707
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, 394, 395, 395, 395, 395, 395, 395, 395, 395,
366 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
367 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
368 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
369 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
370 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
371 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
372 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
373 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
374 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
375 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
376 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
377 395, 395, 395, 395, 399, 400, 403, 404, 407, 408,
378 409, 410, 416, 424, 427, 430, 431, 434, 437, 440,
379 443, 449, 455, 458, 464, 487, 491, 495, 500, 504,
380 508, 512, 519, 520, 524, 525, 529, 530, 531, 535,
381 536, 540, 541, 545, 546, 547, 551, 552, 556, 557,
382 558, 559, 560, 561, 565, 570, 578, 581, 585, 590,
383 598, 601, 605, 609, 616, 620, 624, 628, 633, 643,
384 653, 658, 663, 669, 678, 681, 685, 689, 695, 702,
385 708, 709, 710, 711, 715, 718, 725, 726, 727, 728,
386 729, 733, 736, 742, 743, 751, 761, 769, 777, 785,
387 788, 792, 796, 800, 805, 810, 818, 819, 820, 823,
388 829, 832, 835, 841, 842, 843, 844, 845, 846, 847,
389 848, 852, 853, 857, 860, 863, 869, 872, 875, 883,
390 895, 898, 901, 908, 911, 921, 924, 927, 930, 931,
391 935, 938, 941, 952, 955, 961, 962, 966, 967, 971,
392 975, 981, 982, 988, 991, 997, 998, 1005, 1006, 1010,
393 1017, 1028, 1035, 1046, 1053, 1064, 1075, 1089, 1090, 1102,
394 1105, 1108, 1111, 1118, 1121, 1127, 1136, 1148, 1156, 1159,
395 1169, 1182, 1187, 1195, 1205, 1215, 1218, 1222, 1228, 1242,
396 1259, 1262, 1268, 1275, 1285, 1292, 1295, 1301, 1306, 1314,
397 1318, 1322, 1326, 1330, 1334, 1341, 1345, 1349, 1353, 1360,
398 1373, 1386, 1399, 1402, 1409, 1412, 1415, 1418, 1424, 1428,
399 1435, 1438, 1444, 1447, 1453, 1454, 1460, 1463, 1475, 1478,
400 1485, 1490, 1495, 1505, 1508, 1514, 1517, 1523, 1530, 1537,
401 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1549, 1552,
402 1558, 1561, 1564, 1567, 1570, 1576, 1580, 1588, 1589, 1593,
403 1600, 1603, 1606, 1609, 1612, 1618, 1622, 1630, 1637, 1645,
404 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662,
405 1666, 1669, 1675, 1678, 1684, 1685, 1689, 1692, 1698, 1701,
406 1707, 1714, 1721, 1724, 1727, 1734, 1739, 1747, 1748, 1749,
407 1750, 1751, 1752, 1753, 1754, 1758, 1761, 1767, 1770, 1776,
408 1783, 1784, 1788, 1795, 1798, 1804, 1812, 1815, 1821
412 #if YYDEBUG || YYERROR_VERBOSE || 1
413 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
414 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
415 static const char *const yytname
[] =
417 "\"end of file\"", "error", "$undefined", "BOOL", "CHAR", "SHORT",
418 "INT", "SIGNED", "UNSIGNED", "LONG", "FLOAT", "DOUBLE", "STRING",
419 "MIXED", "ARRAY", "OBJECT", "CALLABLE", "VOID", "ZVAL", "INT8", "UINT8",
420 "INT16", "UINT16", "INT32", "UINT32", "INT64", "UINT64", "NULL", "TRUE",
421 "FALSE", "NAME", "NSNAME", "DOLLAR_NAME", "NUMBER", "QUOTED_STRING",
422 "QUOTED_CHAR", "\"end of line\"", "\";\"", "\"(\"", "\")\"", "\",\"",
423 "\":\"", "\"{\"", "\"}\"", "\"[\"", "\"]\"", "\"=\"", "\"#\"", "\"|\"",
424 "\"^\"", "\"&\"", "\"<<\"", "\">>\"", "\"+\"", "\"-\"", "\"*\"", "\"/\"",
425 "\"%\"", "\"<\"", "\">\"", "\">=\"", "\"<=\"", "\"||\"", "\"&&\"",
426 "\"==\"", "\"!=\"", "\"~\"", "\"!\"", "\".\"", "\"\\\\\"", "\"...\"",
427 "\"?\"", "PRAGMA", "PRAGMA_ONCE", "LINE", "ERROR", "WARNING", "IF",
428 "IFDEF", "IFNDEF", "ELSE", "ELIF", "ENDIF", "DEFINE", "DEFINED", "UNDEF",
429 "IMPORT", "INCLUDE", "INCLUDE_NEXT", "TYPEDEF", "STRUCT", "UNION",
430 "ENUM", "CONST", "LIB", "STATIC", "CALLBACK", "FUNCTION", "LET", "SET",
431 "TEMP", "FREE", "RETURN", "PRE_ASSERT", "POST_ASSERT", "BOOLVAL",
432 "INTVAL", "STRVAL", "PATHVAL", "STRLEN", "FLOATVAL", "ARRVAL", "OBJVAL",
433 "COUNT", "CALLOC", "TO_BOOL", "TO_INT", "TO_STRING", "TO_FLOAT",
434 "TO_ARRAY", "TO_OBJECT", "COMMENT", "WHITESPACE", "NO_WHITESPACE",
435 "CPP_HEADER", "CPP_ATTRIBUTE", "CPP_EXTENSION", "CPP_PASTE",
436 "CPP_RESTRICT", "CPP_ASM", "BINARY", "UNARY", "$accept",
437 "binary_op_token", "unary_op_token", "name_token", "any_noeol_token",
438 "file", "blocks", "block", "lib", "cpp", "cpp_exp", "cpp_ignored_token",
439 "cpp_message_token", "cpp_include_token", "cpp_header_token",
440 "cpp_no_arg_token", "cpp_name_arg_token", "cpp_exp_arg_token",
441 "cpp_special_name_token", "cpp_macro_decl", "cpp_macro_sig",
442 "cpp_macro_sig_args", "cpp_macro_decl_tokens",
443 "cpp_macro_decl_token_list", "cpp_macro_exp", "cpp_macro_call_args",
444 "cpp_macro_call_arg_list", "constant", "constant_type",
445 "constant_type_token", "impl_def_val", "impl_def_val_token",
446 "decl_typedef", "typedef", "const_decl_type", "decl_type",
447 "decl_type_complex", "decl_type_simple", "decl_real_type",
448 "decl_stdint_type", "int_signed", "int_width", "decl_int_type",
449 "int_signed_types", "signed_short_types", "signed_long_types",
450 "int_width_types", "decl_stmt", "decl_asm", "ignored_quoted_strings",
451 "decl_ext_var_stmt", "decl_ext_var", "decl_ext_var_list", "decl_vars",
452 "decl", "decl_body", "decl_func_body", "decl_functor_body",
453 "decl_functor", "decl_func", "decl_args", "decl_anon_arg", "decl_arg",
454 "decl_var", "decl_union", "decl_struct", "decl_struct_args",
455 "struct_args_block", "struct_args", "struct_arg_var_list",
456 "decl_vars_with_layout", "decl_enum", "decl_enum_items",
457 "decl_enum_item", "num_exp", "number", "enum_name", "union_name",
458 "struct_name", "optional_name", "decl_layout", "align_and_size",
459 "array_size", "indirection", "pointers", "asterisks", "impl",
460 "impl_func", "impl_args", "impl_arg", "impl_var", "impl_type",
461 "impl_type_token", "impl_stmts", "impl_stmt", "let_stmt", "let_exp",
462 "let_exp_byref", "let_exp_assign", "let_calloc", "let_callback",
463 "let_func", "let_func_token", "let_func_exps", "let_exps",
464 "callback_rval", "callback_arg_list", "callback_args", "return_stmt",
465 "set_stmt", "set_exp", "set_func", "set_func_token", "set_func_exps",
466 "set_exps", "assert_stmt", "assert_stmt_token", "free_stmt", "free_exps",
467 "free_exp", "reference", "byref", YY_NULLPTR
471 #define YYPACT_NINF -554
472 #define YYTABLE_NINF -477
474 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
476 static const short int yypact
[] =
478 464, -554, -554, -554, -554, -554, 79, -554, -554, 2090,
479 -554, -554, -554, -554, -554, -554, -554, -554, 2644, -554,
480 -554, 524, 2694, 2473, 2473, 2473, 933, 14, -59, 8,
481 -554, 307, 62, 464, -554, -554, -554, -554, -554, 2139,
482 -554, -554, -554, -554, -554, 77, 120, -554, -554, -554,
483 30, -18, -554, -554, 60, 80, 103, -554, -554, -554,
484 -554, 108, -554, 111, -554, -554, -554, -554, -554, 653,
485 -554, 100, -554, -554, -554, -554, -554, -554, -554, -554,
486 -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
487 -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
488 -554, -554, 2257, -36, -554, -554, -554, 2473, 2473, 2473,
489 2798, -554, 84, -554, -554, -554, -554, -554, -554, -554,
490 -554, -554, -554, -554, -554, 902, -554, -554, -554, -554,
491 123, 783, 783, -1, -554, 902, 1972, 2473, 2473, 150,
492 1736, -554, -554, 154, 2473, 158, 158, 33, 33, 167,
493 -554, -554, 179, 180, -554, 100, 182, -554, -554, 177,
494 173, -554, 185, -554, 2721, 2694, -18, -554, -554, 175,
495 -554, 183, 2473, -554, 211, -554, 38, -554, -554, 77,
496 -554, -554, 184, 186, 2748, 2748, 2473, 133, 2473, -554,
497 100, -554, -554, -554, -554, -554, -554, 2139, -554, -554,
498 -554, -554, -554, -554, 97, 783, -554, -554, -554, -554,
499 -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
500 -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
501 -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
502 -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
503 -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
504 -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
505 -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
506 -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
507 -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
508 -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
509 -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
510 -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
511 -554, -554, 783, -554, -554, -554, -554, -554, -554, -554,
512 -554, 1972, -554, -554, -554, -554, 2306, 1972, 200, 3001,
513 31, -554, 31, -554, -554, -554, -554, 199, 202, 202,
514 23, 23, 2424, 203, -554, 133, 207, 209, 213, 218,
515 -554, 100, 175, -554, -554, -554, -554, -554, -554, 219,
516 -554, 4, 2825, 2139, 65, -554, -554, 122, 206, 63,
517 -554, 2139, 1500, 2139, 2473, 78, -554, -554, 126, -554,
518 -554, -554, -554, -554, 1854, -554, 223, 2473, 224, -554,
519 2473, 225, -554, -554, 2847, 2473, -554, -554, 1972, -554,
520 -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
521 -554, -554, -554, -554, -554, -554, -554, 1972, 1972, 227,
522 2694, 2139, 2139, -554, -554, -554, -554, 100, -554, 87,
523 157, 40, -554, -554, 230, 2473, -554, -554, 6, 2257,
524 100, 183, 175, 2590, 175, 2617, 1854, 2473, -554, 233,
525 239, -554, -554, -554, 1028, 1854, -554, 3025, -554, 234,
526 244, -554, 245, 250, 238, 247, 106, -554, -554, 253,
527 245, -554, -554, 583, -554, 255, 2139, 2473, -554, 256,
528 3001, 258, 252, 2952, -554, 265, 259, 1777, -554, -554,
529 2473, -554, -554, -554, -554, -554, 262, -554, -554, -554,
530 -554, -554, -554, -554, -554, -554, -554, -554, 260, 145,
531 -554, 8, -554, -554, 263, -554, -554, 2424, -554, 4,
532 264, -554, -554, 266, 3025, -554, 1146, -554, 267, 2852,
533 268, 2874, -554, 1854, 1854, 1500, -554, 2139, -554, 8,
534 2139, -554, 2473, -554, -554, -554, -554, -554, 280, 281,
535 -554, -554, 1972, 1972, 283, 28, 285, -554, 259, 295,
536 -554, 355, 294, 355, 290, -554, 175, 175, -554, 161,
537 300, 3025, -554, -554, -554, -554, 301, 1618, 1854, -554,
538 2977, -554, -554, 302, 2139, 162, -554, 783, 2473, 3001,
539 3049, 310, 299, 311, 2139, 308, 285, -554, -554, 355,
540 -554, 8, 87, -554, -554, -554, -554, -554, 312, 1854,
541 8, -554, -554, 1854, 1264, 309, 314, -554, -554, -554,
542 317, 316, 320, 259, 323, -554, 329, -554, 7, -554,
543 8, 2927, 333, 3073, 321, -554, 335, -554, -554, -554,
544 339, 338, -554, 2139, -554, 347, 342, 1854, 1146, 343,
545 -554, 1500, 348, 350, 259, 345, 1382, 2901, 233, -554,
546 -554, -554, 349, 1618, -554, -554, 351, 346, -554, 352,
547 353, 361, -554, -554, 1146, -554, 354, -554, 355, 356,
548 1500, -554, 365, -554, -554, -554, -554
551 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
552 Performed when YYTABLE does not specify something else to do. Zero
553 means the default is an error. */
554 static const unsigned short int yydefact
[] =
556 164, 286, 283, 287, 281, 282, 284, 270, 271, 0,
557 273, 274, 275, 276, 277, 278, 279, 280, 269, 169,
558 168, 0, 0, 0, 0, 372, 0, 0, 0, 476,
559 170, 0, 0, 165, 166, 172, 171, 173, 176, 382,
560 260, 262, 261, 267, 268, 290, 300, 266, 174, 175,
561 0, 305, 315, 317, 318, 0, 0, 327, 178, 177,
562 179, 0, 180, 0, 285, 272, 33, 34, 464, 430,
563 24, 382, 386, 39, 38, 37, 35, 36, 32, 31,
564 25, 29, 28, 26, 27, 438, 437, 435, 433, 434,
565 436, 432, 431, 439, 30, 462, 460, 459, 461, 458,
566 457, 328, 0, 384, 40, 41, 269, 0, 0, 0,
567 0, 316, 311, 182, 193, 190, 192, 194, 195, 206,
568 203, 204, 201, 207, 202, 0, 205, 196, 197, 198,
569 0, 220, 220, 0, 186, 0, 0, 372, 372, 0,
570 382, 254, 337, 253, 0, 378, 378, 263, 264, 265,
571 369, 240, 287, 270, 243, 0, 0, 239, 259, 0,
572 0, 478, 0, 477, 269, 0, 305, 1, 167, 380,
573 338, 0, 383, 291, 295, 293, 297, 288, 301, 290,
574 289, 309, 0, 0, 329, 329, 0, 0, 0, 383,
575 382, 340, 387, 385, 263, 264, 265, 0, 310, 209,
576 210, 211, 213, 212, 208, 220, 188, 183, 75, 42,
577 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
578 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
579 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
580 73, 74, 76, 77, 78, 79, 80, 81, 82, 83,
581 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
582 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
583 104, 105, 106, 107, 108, 109, 115, 113, 114, 112,
584 110, 111, 116, 117, 118, 119, 120, 121, 122, 123,
585 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
586 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
587 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
588 154, 155, 156, 157, 158, 159, 162, 160, 161, 163,
589 222, 191, 221, 184, 199, 200, 185, 208, 187, 230,
590 231, 0, 22, 23, 20, 21, 0, 0, 232, 189,
591 263, 371, 264, 370, 251, 258, 255, 0, 0, 0,
592 0, 0, 0, 0, 181, 0, 0, 0, 0, 0,
593 342, 382, 380, 296, 292, 298, 299, 294, 302, 0,
594 303, 330, 0, 382, 0, 331, 333, 0, 357, 0,
595 355, 0, 476, 0, 0, 0, 470, 471, 0, 408,
596 411, 410, 412, 413, 0, 414, 0, 0, 312, 313,
597 0, 0, 215, 223, 0, 0, 228, 225, 234, 2,
598 3, 4, 5, 6, 7, 8, 9, 10, 11, 13,
599 12, 14, 15, 16, 17, 18, 19, 0, 0, 0,
600 0, 0, 0, 345, 344, 346, 343, 382, 339, 244,
601 0, 0, 252, 304, 0, 0, 341, 307, 0, 336,
602 0, 334, 380, 0, 380, 0, 0, 0, 354, 0,
603 0, 366, 365, 367, 0, 0, 368, 453, 359, 0,
604 0, 452, 41, 0, 0, 0, 0, 473, 463, 0,
605 0, 388, 409, 0, 326, 0, 0, 216, 224, 0,
606 236, 0, 235, 0, 226, 0, 374, 0, 257, 256,
607 0, 246, 248, 249, 247, 250, 0, 245, 389, 401,
608 402, 403, 404, 400, 405, 406, 407, 399, 0, 0,
609 393, 476, 398, 381, 0, 308, 306, 335, 321, 0,
610 0, 332, 319, 0, 358, 356, 0, 415, 24, 0,
611 0, 0, 363, 0, 0, 476, 451, 0, 397, 476,
612 0, 472, 0, 450, 469, 325, 314, 218, 0, 217,
613 229, 233, 0, 0, 0, 0, 350, 347, 374, 0,
614 238, 0, 0, 0, 395, 323, 380, 380, 420, 31,
615 30, 424, 425, 421, 422, 423, 40, 0, 0, 361,
616 0, 362, 454, 465, 0, 0, 474, 220, 0, 237,
617 227, 0, 375, 0, 0, 0, 350, 324, 390, 0,
618 394, 476, 244, 322, 320, 444, 430, 445, 0, 0,
619 476, 426, 360, 0, 476, 0, 0, 475, 214, 219,
620 0, 0, 0, 374, 351, 348, 0, 391, 0, 396,
621 476, 0, 440, 364, 0, 467, 466, 455, 416, 379,
622 0, 0, 352, 0, 349, 0, 0, 0, 0, 0,
623 456, 476, 0, 0, 374, 0, 446, 0, 368, 442,
624 419, 417, 441, 0, 429, 468, 0, 0, 353, 0,
625 0, 447, 448, 427, 0, 418, 0, 376, 0, 0,
626 476, 443, 0, 392, 428, 449, 377
629 /* YYPGOTO[NTERM-NUM]. */
630 static const short int yypgoto
[] =
632 -554, -323, -129, 0, 56, -554, -554, 357, -554, -554,
633 -554, -554, -554, -554, -554, -554, -554, -554, 270, -554,
634 -554, -554, -127, -554, -325, -554, -554, -554, -554, -554,
635 -216, -554, -554, -152, -11, -23, -554, -554, -554, 269,
636 362, -554, -554, 232, -554, -554, -554, -554, 246, -554,
637 -554, -554, -554, -147, 383, 3, -16, 18, -554, -554,
638 231, -331, -14, -39, -554, -554, 58, -155, -554, -199,
639 -554, 35, -554, -47, -390, -554, -554, -554, -554, 68,
640 -544, 43, -345, -61, -7, -554, -554, 393, -554, -161,
641 -490, -553, -554, 66, -361, -554, -271, -517, 34, -554,
642 -554, -554, -526, -554, -554, -554, -554, -554, -554, -554,
643 -524, 32, -380, -554, -554, -554, -554, -554, -554, -134,
647 /* YYDEFGOTO[NTERM-NUM]. */
648 static const short int yydefgoto
[] =
650 -1, 554, 475, 169, 330, 32, 33, 34, 35, 36,
651 130, 131, 132, 133, 336, 134, 135, 136, 205, 206,
652 568, 569, 331, 332, 349, 501, 502, 37, 156, 157,
653 516, 517, 38, 139, 39, 40, 41, 42, 43, 44,
654 45, 46, 47, 177, 374, 377, 180, 48, 183, 458,
655 49, 50, 198, 408, 51, 52, 53, 142, 55, 56,
656 384, 385, 57, 476, 58, 59, 444, 445, 507, 615,
657 644, 144, 389, 390, 477, 478, 61, 145, 146, 150,
658 576, 358, 370, 171, 410, 103, 62, 63, 529, 530,
659 479, 531, 532, 398, 399, 400, 679, 680, 681, 593,
660 594, 595, 104, 669, 682, 628, 690, 691, 401, 402,
661 480, 481, 105, 635, 656, 403, 404, 405, 486, 487,
665 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
666 positive, shift that token. If negative, reduce the rule whose
667 number is the opposite. If YYTABLE_NINF, syntax error. */
668 static const short int yytable
[] =
670 170, 162, 102, 158, 112, 333, 141, 347, 143, 101,
671 188, 140, 482, 367, 493, 490, 414, 597, 54, 192,
672 596, 111, 417, 147, 148, 149, 438, 456, 618, 592,
673 621, 602, 172, 334, 616, 60, 54, 492, 29, 558,
674 535, 584, 71, 519, 375, 536, 520, 376, 159, 54,
675 521, 54, 522, 523, 524, 525, 526, 527, 161, 72,
676 443, 612, 167, 627, 189, 440, 647, 181, 60, 613,
677 -378, 596, -373, -373, 357, -378, 544, 665, 412, 528,
678 631, 173, 174, 175, 551, 552, 176, 158, 64, 492,
679 65, 438, 193, 500, 438, 68, 488, -318, -337, 662,
680 -337, 170, 191, 467, 462, 463, 468, 194, 195, 196,
681 655, 182, 503, 504, 511, 512, 513, 538, 184, 542,
682 514, 515, -327, 335, 197, 204, 178, 4, 5, 407,
683 688, 584, 541, 172, 541, 337, 348, 350, 352, 683,
684 652, 185, 596, 561, 356, 703, 562, 685, 362, 141,
685 186, 143, 692, 187, 140, 72, 591, 596, 409, 207,
686 666, 464, 465, 600, 601, 683, 695, 111, 596, 491,
687 386, 386, 372, 383, 383, 482, 705, 438, 625, 626,
688 438, 438, 54, 189, 582, 583, 388, 354, 406, 359,
689 360, 361, -327, 95, 96, 97, 98, 99, 100, 357,
690 518, 637, 496, 441, 442, 351, 353, 591, 632, -373,
691 -241, -242, 347, 363, 364, 365, 366, 373, 347, 369,
692 411, 371, 379, 380, 391, 392, 393, 394, 395, 396,
693 397, 391, 392, 393, 394, 395, 396, 397, 418, 651,
694 439, 623, 624, 653, 440, 451, 452, 609, 610, 449,
695 453, 454, 466, 457, 482, 391, 392, 393, 394, 395,
696 396, 397, 494, 497, 496, 505, 85, 86, 87, 88,
697 89, 90, 91, 92, 93, 533, 547, 677, 591, 546,
698 555, 556, 558, 557, 559, 560, 438, 438, 506, 347,
699 563, 482, 572, 591, 565, 570, 482, 571, 574, 580,
700 575, 581, 585, 586, 591, 587, -24, 598, 347, 347,
701 455, 1, 2, 3, 4, 5, 6, 7, 8, 607,
702 482, 608, 461, 611, 9, 614, 10, 11, 12, 13,
703 14, 15, 16, 17, 617, 619, 622, 164, 629, 630,
704 641, 348, 634, 640, 170, 645, 416, 348, 657, 642,
705 650, 658, 469, 661, 484, 578, 659, 660, 519, 158,
706 670, 520, 448, 663, 189, 521, 664, 522, 523, 524,
707 525, 526, 527, 668, 459, 671, 172, 672, 673, 675,
708 676, 686, 684, 687, 689, 697, 510, 702, 413, 694,
709 168, 696, 699, 698, 485, 704, 165, 107, 108, 109,
710 110, 700, 508, 509, 706, 338, 649, 495, 179, 355,
711 372, 378, 368, 605, 166, 499, 387, 646, 348, 446,
712 545, 160, 620, 701, 141, 470, 143, 489, 606, 140,
713 0, 450, 0, 0, 0, 0, 0, 348, 348, 0,
714 189, 0, 0, 347, 347, 0, 0, 0, 0, 386,
715 0, 386, 383, 537, 383, 534, 0, 566, 0, 191,
716 0, 0, 0, 550, 0, 0, 0, 388, 1, 2,
717 3, 4, 5, 6, 7, 8, 0, 0, 0, 0,
718 638, 9, 0, 10, 11, 12, 13, 14, 15, 16,
719 17, 141, 0, 143, 18, 0, 140, 567, 0, 0,
720 19, 20, 0, 0, 0, 0, 0, 0, 0, 0,
721 579, 21, 0, 0, 0, 0, 0, 0, 603, 0,
722 0, 409, 0, 0, 0, 0, 158, 0, 0, 0,
723 0, 604, 459, 0, 0, 0, 0, 448, 0, 0,
724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
725 0, 0, 0, 22, 23, 24, 25, 26, 27, 28,
726 113, 29, 485, 0, 0, 636, 0, 0, 0, 0,
727 0, 0, 348, 348, 0, 643, 0, 0, 0, 0,
728 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,
729 31, 0, 0, 648, 0, 0, 114, 115, 116, 117,
730 118, 119, 120, 121, 122, 123, 124, 125, 639, 126,
731 127, 128, 129, 0, 0, 0, 0, 0, 0, 0,
732 564, 0, 0, 0, 674, 0, 0, 0, 0, 678,
733 0, 419, 420, 421, 422, 423, 424, 425, 426, 427,
734 428, 429, 430, 431, 432, 433, 434, 435, 436, 0,
735 0, 0, 0, -430, 553, 678, -430, -430, -430, -430,
736 -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
737 -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
738 -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
739 -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
740 -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
741 -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
742 -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
743 -430, -430, -430, -430, -430, -430, -430, -430, -430, 0,
744 -430, 0, -430, -430, -430, -430, -430, -430, -430, -430,
745 -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
746 -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
747 -430, -430, -430, -430, -430, 0, -430, -430, 0, -430,
748 -430, -430, -430, 208, 0, 0, 209, 210, 211, 212,
749 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
750 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
751 233, 234, 235, 236, 237, 238, 239, 240, 241, 0,
752 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
753 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
754 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
755 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
756 282, 283, 284, 285, 286, 287, 288, 289, 290, 0,
757 291, 0, 292, 293, 294, 295, 296, 297, 298, 299,
758 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
759 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
760 320, 321, 322, 323, 324, 66, 0, 325, 0, 326,
761 327, 328, 329, 0, 67, 0, 0, 0, 0, 68,
762 69, 0, 0, 0, 0, 0, 0, 0, 0, 199,
763 200, 201, 70, 0, 0, 0, 151, 1, 2, 152,
764 4, 5, 6, 153, 8, 154, 0, 0, 0, 0,
765 155, 0, 10, 11, 12, 13, 14, 15, 16, 17,
766 0, 0, 0, 106, 0, 0, 0, 0, 0, 0,
767 0, 0, 0, 0, 73, 74, 75, 76, 77, 0,
768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
769 0, 0, 0, 0, 0, 0, 78, 0, 79, 80,
770 81, 82, 83, 84, 0, 0, 0, 85, 86, 87,
771 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
772 98, 99, 100, 107, 108, 109, 0, 0, 202, 0,
773 203, 66, 1, 2, 3, 4, 5, 6, 7, 8,
774 67, 0, 0, 0, 0, 68, 69, 10, 11, 12,
775 13, 14, 15, 16, 17, 0, 0, 0, 548, 471,
776 0, 472, 0, 473, 0, 0, 474, 0, 0, 0,
777 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
778 0, 342, 343, 72, 0, 0, 0, 0, 0, 0,
779 0, 0, 0, 0, 344, 345, 0, 0, 0, 0,
780 73, 74, 75, 76, 77, 0, 0, 0, 0, 0,
781 0, 0, 0, 0, 0, 0, 0, 0, 107, 108,
782 109, 549, 78, 0, 79, 80, 81, 82, 83, 84,
783 0, 0, 0, 85, 86, 87, 88, 89, 90, 91,
784 92, 93, 94, 95, 96, 97, 98, 99, 100, 66,
785 0, 0, 0, 0, 0, 0, 0, 0, 67, 0,
786 0, 0, 0, 68, 69, 0, 0, 0, 0, 0,
787 0, 0, 0, 588, 0, 0, 70, 471, 0, 472,
788 0, 473, 0, 0, 474, 0, 0, 0, 0, 0,
789 0, 0, 0, 0, 0, 0, 161, 0, 0, 342,
790 343, 72, 0, 0, 0, 0, 0, 0, 0, 0,
791 0, 0, 344, 345, 0, 0, 0, 0, 73, 74,
792 75, 76, 77, 0, 0, 0, 0, 0, 0, 0,
793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
794 78, 0, 589, 80, 81, 82, 83, 84, 0, 0,
795 0, 85, 86, 87, 88, 89, 90, 91, 92, 93,
796 590, 95, 96, 97, 98, 99, 100, 66, 0, 0,
797 0, 0, 0, 0, 0, 0, 67, 0, 0, 0,
798 0, 68, 69, 0, 0, 0, 0, 0, 0, 0,
799 0, 0, 0, 0, 70, 471, 0, 472, 0, 473,
800 0, 0, 474, 0, 0, 0, 0, 0, 0, 0,
801 0, 0, 0, 0, 161, 0, 0, 342, 343, 72,
802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
803 344, 345, 0, 0, 654, 0, 73, 74, 75, 76,
804 77, 0, 0, 0, 0, 0, 0, 0, 0, 0,
805 0, 0, 0, 0, 0, 0, 0, 0, 78, 0,
806 79, 80, 81, 82, 83, 84, 0, 0, 0, 85,
807 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
808 96, 97, 98, 99, 100, 66, 0, 0, 0, 0,
809 0, 0, 0, 0, 67, 0, 0, 0, 0, 68,
810 69, 0, 0, 0, 0, 0, 0, 0, 0, 0,
811 0, 0, 70, 471, -476, 472, 0, 473, 0, 0,
812 474, 0, 0, 0, 0, 0, 0, 0, 0, 0,
813 0, 0, 161, 0, 0, 342, 343, 72, 0, 0,
814 0, 0, 0, 0, 0, 0, 0, 0, 344, 345,
815 0, 0, 0, 0, 73, 74, 75, 76, 77, 0,
816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
817 0, 0, 0, 0, 0, 0, 78, 0, 79, 80,
818 81, 82, 83, 84, 0, 0, 0, 85, 86, 87,
819 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
820 98, 99, 100, 66, 0, 0, 0, 0, 0, 0,
821 0, 0, 67, 0, 0, 0, 0, 68, 69, 0,
822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
823 70, 471, 0, 472, 0, 473, 0, 0, 474, 0,
824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
825 161, 0, 0, 342, 343, 72, 0, 0, 0, 0,
826 0, 0, 0, 0, 0, 0, 344, 345, 0, 0,
827 0, 0, 73, 74, 75, 76, 77, 0, 0, 0,
828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
829 0, 0, 0, 0, 78, 0, 79, 80, 81, 82,
830 83, 84, 0, 0, 0, 85, 86, 87, 88, 89,
831 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
832 100, 66, 0, 0, 0, 0, 0, 0, 0, 0,
833 67, 0, 0, 0, 0, 68, 69, 0, 0, 0,
834 0, 0, 0, 0, 0, 588, 0, 0, 70, 471,
835 0, 472, 0, 473, 0, 0, 474, 0, 0, 0,
836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
837 0, 342, 343, 72, 0, 0, 0, 0, 0, 0,
838 0, 0, 0, 0, 344, 345, 0, 0, 0, 0,
839 73, 74, 75, 76, 77, 0, 0, 0, 0, 0,
840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
841 0, 0, 78, 0, 589, 80, 81, 82, 83, 84,
842 0, 0, 0, 85, 86, 87, 88, 89, 90, 91,
843 92, 93, 590, 95, 96, 97, 98, 99, 100, 66,
844 0, 0, 0, 0, 0, 0, 0, 0, 67, 0,
845 0, 0, 0, 68, 69, 10, 11, 12, 13, 14,
846 15, 16, 17, 0, 0, 0, 70, 0, 0, 0,
847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
848 0, 1, 2, 3, 4, 5, 6, 7, 8, 0,
849 0, 72, 0, 0, 9, 0, 10, 11, 12, 13,
850 14, 15, 16, 17, 0, 0, 0, 106, 73, 74,
851 75, 76, 77, 0, 0, 0, 0, 0, 0, 0,
852 577, 0, 0, 0, 0, 0, 0, 0, 0, 0,
853 78, 0, 79, 80, 81, 82, 83, 84, 0, 0,
854 0, 85, 86, 87, 88, 89, 90, 91, 92, 93,
855 94, 95, 96, 97, 98, 99, 100, 66, 0, 0,
856 0, 0, 0, 0, 0, 0, 67, 137, 138, 25,
857 110, 68, 69, 0, 0, 0, 0, 0, 0, 0,
858 0, 0, 0, 0, 70, 471, 0, 472, 0, 473,
859 0, 0, 474, 0, 0, 0, 0, 0, 0, 0,
860 0, 0, 0, 0, 0, 0, 0, 342, 343, 72,
861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
862 344, 345, 0, 0, 0, 0, 73, 74, 75, 76,
863 77, 0, 0, 0, 0, 0, 0, 0, 0, 0,
864 0, 0, 0, 0, 0, 0, 0, 0, 78, 0,
865 79, 80, 81, 82, 83, 84, 0, 0, 0, 85,
866 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
867 96, 97, 98, 99, 100, 66, 0, 0, 0, 0,
868 0, 0, 0, 0, 67, 0, 0, 0, 0, 68,
869 69, 0, 0, 0, 0, 0, 0, 0, 0, 0,
870 0, 0, 70, 0, 0, 339, 0, 340, 0, 0,
871 341, 0, 0, 0, 0, 0, 0, 0, 0, 0,
872 0, 0, 0, 0, 0, 342, 343, 0, 0, 0,
873 0, 0, 0, 0, 0, 0, 0, 0, 344, 345,
874 0, 0, 0, 0, 73, 74, 75, 76, 77, 0,
875 0, 0, 0, 0, 0, 0, 346, 0, 0, 0,
876 0, 0, 0, 0, 0, 0, 78, 0, 79, 80,
877 81, 82, 83, 84, 0, 0, 0, 85, 86, 87,
878 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
879 98, 99, 100, 66, 0, 0, 0, 0, 0, 0,
880 0, 0, 67, 0, 0, 0, 0, 68, 69, 0,
881 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
882 70, 0, 0, 0, 0, 0, 0, 0, 71, 0,
883 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
884 0, 0, 66, 0, 0, 72, 0, 0, 0, 0,
885 0, 67, 0, 0, 0, 0, 68, 69, 0, 0,
886 0, 0, 73, 74, 75, 76, 77, 0, 0, 70,
887 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
888 0, 0, 0, 0, 78, 0, 79, 80, 81, 82,
889 83, 84, 0, 0, 72, 85, 86, 87, 88, 89,
890 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
891 100, 73, 74, 75, 76, 77, 0, 0, 0, 0,
892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
893 0, 0, 0, 78, 0, 79, 80, 81, 82, 83,
894 84, 0, 0, 0, 85, 86, 87, 88, 89, 90,
895 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
896 66, 0, 0, 0, 0, 0, 0, 0, 0, 67,
897 0, 0, 0, 0, 68, 69, 0, 0, 0, 0,
898 0, 0, 0, 0, 0, 0, 0, 70, 0, 0,
899 0, 0, 0, 0, 0, 190, 0, 0, 0, 0,
900 0, 0, 0, 0, 0, 0, 0, 0, 0, 66,
901 0, 0, 0, 0, 0, 0, 0, 0, 67, 0,
902 0, 0, 0, 68, 69, 0, 0, 0, 0, 73,
903 74, 75, 76, 77, 0, 0, 70, 0, 0, 0,
904 0, 0, 0, 0, 415, 0, 0, 0, 0, 0,
905 0, 78, 0, 79, 80, 81, 82, 83, 84, 0,
906 0, 0, 85, 86, 87, 88, 89, 90, 91, 92,
907 93, 94, 95, 96, 97, 98, 99, 100, 73, 74,
908 75, 76, 77, 0, 0, 0, 0, 0, 0, 0,
909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
910 78, 0, 79, 80, 81, 82, 83, 84, 0, 0,
911 0, 85, 86, 87, 88, 89, 90, 91, 92, 93,
912 94, 95, 96, 97, 98, 99, 100, 66, 0, 0,
913 0, 0, 0, 0, 0, 0, 67, 0, 0, 0,
914 0, 68, 69, 0, 0, 0, 0, 0, 0, 0,
915 0, 0, 0, 0, 70, 0, 0, 0, 0, 0,
916 0, 0, 447, 0, 0, 0, 0, 0, 0, 0,
917 0, 0, 0, 0, 0, 0, 66, 0, 0, 0,
918 0, 0, 0, 0, 0, 67, 0, 0, 0, 0,
919 68, 69, 0, 0, 0, 0, 73, 74, 75, 76,
920 77, 0, 0, 70, 0, 0, 0, 0, 0, 0,
921 0, 0, 0, 0, 0, 0, 0, 0, 78, 0,
922 79, 80, 81, 82, 83, 84, 0, 0, 0, 85,
923 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
924 96, 97, 98, 99, 100, 73, 74, 75, 76, 77,
925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
926 0, 0, 0, 0, 0, 0, 0, 78, 0, 79,
927 80, 81, 82, 83, 84, 0, 0, 0, 85, 86,
928 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
929 97, 98, 99, 100, 1, 2, 3, 4, 5, 6,
930 7, 8, 0, 0, 0, 0, 0, 539, 0, 10,
931 11, 12, 13, 14, 15, 16, 17, 0, 0, 0,
932 106, 1, 2, 3, 4, 5, 6, 7, 8, 0,
933 0, 0, 0, 0, 539, 0, 10, 11, 12, 13,
934 14, 15, 16, 17, 0, 0, 0, 106, 1, 2,
935 3, 4, 5, 6, 7, 8, 0, 0, 0, 0,
936 540, 9, 0, 10, 11, 12, 13, 14, 15, 16,
937 17, 0, 0, 0, 106, 0, 0, 0, 0, 0,
938 107, 108, 109, 382, 0, 0, 0, 543, 0, 0,
939 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,
940 3, 4, 5, 6, 7, 8, 0, 107, 108, 109,
941 382, 9, 0, 10, 11, 12, 13, 14, 15, 16,
942 17, 0, 0, 0, 106, 1, 2, 3, 4, 5,
943 6, 7, 8, 0, 107, 108, 109, 110, 9, 0,
944 10, 11, 12, 13, 14, 15, 16, 17, 0, 0,
945 0, 106, 1, 2, 3, 4, 5, 6, 7, 8,
946 0, 0, 0, 0, 0, 381, 0, 10, 11, 12,
947 13, 14, 15, 16, 17, 0, 0, 0, 106, 0,
948 0, 0, 0, 0, 137, 138, 25, 110, 0, 0,
949 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
950 0, 0, 1, 2, 3, 4, 5, 6, 7, 8,
951 0, 107, 108, 109, 110, 155, 0, 10, 11, 12,
952 13, 14, 15, 16, 17, 0, 0, 0, 106, 1,
953 2, 3, 4, 5, 6, 7, 8, 0, 107, 108,
954 109, 382, 460, 0, 10, 11, 12, 13, 14, 15,
955 16, 17, 0, 0, 0, 106, 1, 2, 3, 4,
956 5, 6, 7, 8, 0, 0, 0, 0, 0, 0,
957 0, 10, 11, 12, 13, 14, 15, 16, 17, 0,
958 0, 0, 106, 0, 0, 0, 498, 0, 107, 108,
959 109, 0, 0, 0, 0, 419, 420, 421, 422, 423,
960 424, 425, 426, 427, 428, 429, 430, 431, 432, 433,
961 434, 435, 436, 599, 0, 107, 108, 109, 437, 0,
962 0, 0, 419, 420, 421, 422, 423, 424, 425, 426,
963 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
964 693, 0, 107, 108, 109, 553, 0, 0, 0, 419,
965 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
966 430, 431, 432, 433, 434, 435, 436, 667, 0, 0,
967 0, 0, 553, 0, 0, 419, 420, 421, 422, 423,
968 424, 425, 426, 427, 428, 429, 430, 431, 432, 433,
969 434, 435, 436, 573, 0, 0, 0, 0, 553, 0,
970 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
971 429, 430, 431, 432, 433, 434, 435, 436, 633, 0,
972 0, 0, 0, 437, 0, 419, 420, 421, 422, 423,
973 424, 425, 426, 427, 428, 429, 430, 431, 432, 433,
974 434, 435, 436, 0, 0, 0, 0, 0, 553, 419,
975 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
976 430, 431, 432, 433, 434, 435, 436, 0, 0, 0,
977 0, 0, 437, 419, 420, 421, 422, 423, 424, 425,
978 426, 427, 428, 429, 430, 431, 432, 433, 434, 435,
979 436, 0, 0, 0, 0, 0, 553, 419, 420, 421,
980 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
981 432, 433, 434, 435, 436, 0, 0, 0, 0, 0,
982 437, 419, 420, 421, 422, 423, 424, 425, 426, 427,
983 428, 429, 430, 431, 432, 433, 434, 435, 436, 0,
987 static const short int yycheck
[] =
989 39, 29, 9, 26, 18, 132, 22, 136, 22, 9,
990 71, 22, 392, 165, 404, 395, 341, 546, 0, 55,
991 546, 18, 347, 23, 24, 25, 349, 372, 581, 546,
992 583, 555, 39, 34, 578, 0, 18, 398, 97, 32,
993 34, 531, 38, 3, 6, 39, 6, 9, 34, 31,
994 10, 33, 12, 13, 14, 15, 16, 17, 50, 55,
995 37, 33, 0, 589, 71, 42, 619, 37, 33, 41,
996 37, 597, 41, 42, 41, 42, 466, 70, 205, 39,
997 597, 4, 5, 6, 474, 475, 9, 110, 9, 450,
998 11, 414, 128, 418, 417, 17, 18, 37, 38, 643,
999 40, 140, 102, 40, 39, 40, 43, 107, 108, 109,
1000 634, 129, 437, 438, 27, 28, 29, 462, 38, 464,
1001 33, 34, 38, 124, 40, 125, 6, 7, 8, 190,
1002 674, 621, 463, 140, 465, 135, 136, 137, 138, 668,
1003 630, 38, 668, 37, 144, 698, 40, 671, 155, 165,
1004 42, 165, 676, 42, 165, 55, 546, 683, 197, 36,
1005 650, 39, 40, 553, 554, 694, 683, 164, 694, 43,
1006 184, 185, 172, 184, 185, 555, 700, 500, 17, 18,
1007 503, 504, 164, 190, 39, 40, 186, 37, 188, 146,
1008 147, 148, 38, 115, 116, 117, 118, 119, 120, 41,
1009 43, 39, 40, 358, 359, 137, 138, 597, 598, 42,
1010 31, 31, 341, 31, 37, 42, 31, 6, 347, 44,
1011 123, 38, 38, 37, 98, 99, 100, 101, 102, 103,
1012 104, 98, 99, 100, 101, 102, 103, 104, 38, 629,
1013 41, 586, 587, 633, 42, 38, 37, 572, 573, 46,
1014 37, 33, 46, 34, 634, 98, 99, 100, 101, 102,
1015 103, 104, 39, 38, 40, 38, 105, 106, 107, 108,
1016 109, 110, 111, 112, 113, 45, 37, 667, 668, 46,
1017 46, 37, 32, 38, 46, 38, 609, 610, 440, 418,
1018 37, 671, 40, 683, 39, 39, 676, 39, 33, 37,
1019 41, 41, 39, 39, 694, 39, 39, 39, 437, 438,
1020 371, 4, 5, 6, 7, 8, 9, 10, 11, 39,
1021 700, 40, 383, 40, 17, 40, 19, 20, 21, 22,
1022 23, 24, 25, 26, 39, 41, 46, 30, 38, 38,
1023 41, 341, 40, 33, 383, 37, 346, 347, 39, 38,
1024 38, 37, 391, 33, 393, 507, 39, 41, 3, 382,
1025 39, 6, 362, 40, 371, 10, 37, 12, 13, 14,
1026 15, 16, 17, 40, 381, 40, 383, 38, 40, 32,
1027 38, 33, 39, 33, 39, 39, 447, 33, 332, 40,
1028 33, 40, 39, 41, 394, 39, 89, 90, 91, 92,
1029 93, 40, 441, 442, 39, 135, 622, 407, 46, 140,
1030 410, 179, 166, 560, 31, 415, 185, 616, 418, 361,
1031 467, 28, 583, 694, 440, 391, 440, 395, 562, 440,
1032 -1, 365, -1, -1, -1, -1, -1, 437, 438, -1,
1033 447, -1, -1, 572, 573, -1, -1, -1, -1, 463,
1034 -1, 465, 463, 460, 465, 455, -1, 496, -1, 459,
1035 -1, -1, -1, 474, -1, -1, -1, 467, 4, 5,
1036 6, 7, 8, 9, 10, 11, -1, -1, -1, -1,
1037 607, 17, -1, 19, 20, 21, 22, 23, 24, 25,
1038 26, 507, -1, 507, 30, -1, 507, 497, -1, -1,
1039 36, 37, -1, -1, -1, -1, -1, -1, -1, -1,
1040 510, 47, -1, -1, -1, -1, -1, -1, 557, -1,
1041 -1, 560, -1, -1, -1, -1, 549, -1, -1, -1,
1042 -1, 559, 539, -1, -1, -1, -1, 537, -1, -1,
1043 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1044 -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
1045 36, 97, 562, -1, -1, 604, -1, -1, -1, -1,
1046 -1, -1, 572, 573, -1, 614, -1, -1, -1, -1,
1047 -1, -1, -1, -1, -1, 121, -1, -1, -1, -1,
1048 126, -1, -1, 621, -1, -1, 72, 73, 74, 75,
1049 76, 77, 78, 79, 80, 81, 82, 83, 608, 85,
1050 86, 87, 88, -1, -1, -1, -1, -1, -1, -1,
1051 37, -1, -1, -1, 663, -1, -1, -1, -1, 668,
1052 -1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1053 57, 58, 59, 60, 61, 62, 63, 64, 65, -1,
1054 -1, -1, -1, 0, 71, 694, 3, 4, 5, 6,
1055 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1056 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1057 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1058 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1059 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1060 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1061 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1062 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1063 87, -1, 89, 90, 91, 92, 93, 94, 95, 96,
1064 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1065 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1066 117, 118, 119, 120, 121, -1, 123, 124, -1, 126,
1067 127, 128, 129, 0, -1, -1, 3, 4, 5, 6,
1068 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1069 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1070 27, 28, 29, 30, 31, 32, 33, 34, 35, -1,
1071 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1072 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1073 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1074 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1075 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1076 87, -1, 89, 90, 91, 92, 93, 94, 95, 96,
1077 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1078 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1079 117, 118, 119, 120, 121, 3, -1, 124, -1, 126,
1080 127, 128, 129, -1, 12, -1, -1, -1, -1, 17,
1081 18, -1, -1, -1, -1, -1, -1, -1, -1, 27,
1082 28, 29, 30, -1, -1, -1, 3, 4, 5, 6,
1083 7, 8, 9, 10, 11, 12, -1, -1, -1, -1,
1084 17, -1, 19, 20, 21, 22, 23, 24, 25, 26,
1085 -1, -1, -1, 30, -1, -1, -1, -1, -1, -1,
1086 -1, -1, -1, -1, 72, 73, 74, 75, 76, -1,
1087 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1088 -1, -1, -1, -1, -1, -1, 94, -1, 96, 97,
1089 98, 99, 100, 101, -1, -1, -1, 105, 106, 107,
1090 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1091 118, 119, 120, 90, 91, 92, -1, -1, 126, -1,
1092 128, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1093 12, -1, -1, -1, -1, 17, 18, 19, 20, 21,
1094 22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
1095 -1, 33, -1, 35, -1, -1, 38, -1, -1, -1,
1096 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1097 -1, 53, 54, 55, -1, -1, -1, -1, -1, -1,
1098 -1, -1, -1, -1, 66, 67, -1, -1, -1, -1,
1099 72, 73, 74, 75, 76, -1, -1, -1, -1, -1,
1100 -1, -1, -1, -1, -1, -1, -1, -1, 90, 91,
1101 92, 93, 94, -1, 96, 97, 98, 99, 100, 101,
1102 -1, -1, -1, 105, 106, 107, 108, 109, 110, 111,
1103 112, 113, 114, 115, 116, 117, 118, 119, 120, 3,
1104 -1, -1, -1, -1, -1, -1, -1, -1, 12, -1,
1105 -1, -1, -1, 17, 18, -1, -1, -1, -1, -1,
1106 -1, -1, -1, 27, -1, -1, 30, 31, -1, 33,
1107 -1, 35, -1, -1, 38, -1, -1, -1, -1, -1,
1108 -1, -1, -1, -1, -1, -1, 50, -1, -1, 53,
1109 54, 55, -1, -1, -1, -1, -1, -1, -1, -1,
1110 -1, -1, 66, 67, -1, -1, -1, -1, 72, 73,
1111 74, 75, 76, -1, -1, -1, -1, -1, -1, -1,
1112 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1113 94, -1, 96, 97, 98, 99, 100, 101, -1, -1,
1114 -1, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1115 114, 115, 116, 117, 118, 119, 120, 3, -1, -1,
1116 -1, -1, -1, -1, -1, -1, 12, -1, -1, -1,
1117 -1, 17, 18, -1, -1, -1, -1, -1, -1, -1,
1118 -1, -1, -1, -1, 30, 31, -1, 33, -1, 35,
1119 -1, -1, 38, -1, -1, -1, -1, -1, -1, -1,
1120 -1, -1, -1, -1, 50, -1, -1, 53, 54, 55,
1121 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1122 66, 67, -1, -1, 70, -1, 72, 73, 74, 75,
1123 76, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1124 -1, -1, -1, -1, -1, -1, -1, -1, 94, -1,
1125 96, 97, 98, 99, 100, 101, -1, -1, -1, 105,
1126 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1127 116, 117, 118, 119, 120, 3, -1, -1, -1, -1,
1128 -1, -1, -1, -1, 12, -1, -1, -1, -1, 17,
1129 18, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1130 -1, -1, 30, 31, 32, 33, -1, 35, -1, -1,
1131 38, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1132 -1, -1, 50, -1, -1, 53, 54, 55, -1, -1,
1133 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
1134 -1, -1, -1, -1, 72, 73, 74, 75, 76, -1,
1135 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1136 -1, -1, -1, -1, -1, -1, 94, -1, 96, 97,
1137 98, 99, 100, 101, -1, -1, -1, 105, 106, 107,
1138 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1139 118, 119, 120, 3, -1, -1, -1, -1, -1, -1,
1140 -1, -1, 12, -1, -1, -1, -1, 17, 18, -1,
1141 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1142 30, 31, -1, 33, -1, 35, -1, -1, 38, -1,
1143 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1144 50, -1, -1, 53, 54, 55, -1, -1, -1, -1,
1145 -1, -1, -1, -1, -1, -1, 66, 67, -1, -1,
1146 -1, -1, 72, 73, 74, 75, 76, -1, -1, -1,
1147 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1148 -1, -1, -1, -1, 94, -1, 96, 97, 98, 99,
1149 100, 101, -1, -1, -1, 105, 106, 107, 108, 109,
1150 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
1151 120, 3, -1, -1, -1, -1, -1, -1, -1, -1,
1152 12, -1, -1, -1, -1, 17, 18, -1, -1, -1,
1153 -1, -1, -1, -1, -1, 27, -1, -1, 30, 31,
1154 -1, 33, -1, 35, -1, -1, 38, -1, -1, -1,
1155 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1156 -1, 53, 54, 55, -1, -1, -1, -1, -1, -1,
1157 -1, -1, -1, -1, 66, 67, -1, -1, -1, -1,
1158 72, 73, 74, 75, 76, -1, -1, -1, -1, -1,
1159 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1160 -1, -1, 94, -1, 96, 97, 98, 99, 100, 101,
1161 -1, -1, -1, 105, 106, 107, 108, 109, 110, 111,
1162 112, 113, 114, 115, 116, 117, 118, 119, 120, 3,
1163 -1, -1, -1, -1, -1, -1, -1, -1, 12, -1,
1164 -1, -1, -1, 17, 18, 19, 20, 21, 22, 23,
1165 24, 25, 26, -1, -1, -1, 30, -1, -1, -1,
1166 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1167 -1, 4, 5, 6, 7, 8, 9, 10, 11, -1,
1168 -1, 55, -1, -1, 17, -1, 19, 20, 21, 22,
1169 23, 24, 25, 26, -1, -1, -1, 30, 72, 73,
1170 74, 75, 76, -1, -1, -1, -1, -1, -1, -1,
1171 43, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1172 94, -1, 96, 97, 98, 99, 100, 101, -1, -1,
1173 -1, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1174 114, 115, 116, 117, 118, 119, 120, 3, -1, -1,
1175 -1, -1, -1, -1, -1, -1, 12, 90, 91, 92,
1176 93, 17, 18, -1, -1, -1, -1, -1, -1, -1,
1177 -1, -1, -1, -1, 30, 31, -1, 33, -1, 35,
1178 -1, -1, 38, -1, -1, -1, -1, -1, -1, -1,
1179 -1, -1, -1, -1, -1, -1, -1, 53, 54, 55,
1180 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1181 66, 67, -1, -1, -1, -1, 72, 73, 74, 75,
1182 76, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1183 -1, -1, -1, -1, -1, -1, -1, -1, 94, -1,
1184 96, 97, 98, 99, 100, 101, -1, -1, -1, 105,
1185 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1186 116, 117, 118, 119, 120, 3, -1, -1, -1, -1,
1187 -1, -1, -1, -1, 12, -1, -1, -1, -1, 17,
1188 18, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1189 -1, -1, 30, -1, -1, 33, -1, 35, -1, -1,
1190 38, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1191 -1, -1, -1, -1, -1, 53, 54, -1, -1, -1,
1192 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
1193 -1, -1, -1, -1, 72, 73, 74, 75, 76, -1,
1194 -1, -1, -1, -1, -1, -1, 84, -1, -1, -1,
1195 -1, -1, -1, -1, -1, -1, 94, -1, 96, 97,
1196 98, 99, 100, 101, -1, -1, -1, 105, 106, 107,
1197 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1198 118, 119, 120, 3, -1, -1, -1, -1, -1, -1,
1199 -1, -1, 12, -1, -1, -1, -1, 17, 18, -1,
1200 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1201 30, -1, -1, -1, -1, -1, -1, -1, 38, -1,
1202 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1203 -1, -1, 3, -1, -1, 55, -1, -1, -1, -1,
1204 -1, 12, -1, -1, -1, -1, 17, 18, -1, -1,
1205 -1, -1, 72, 73, 74, 75, 76, -1, -1, 30,
1206 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1207 -1, -1, -1, -1, 94, -1, 96, 97, 98, 99,
1208 100, 101, -1, -1, 55, 105, 106, 107, 108, 109,
1209 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
1210 120, 72, 73, 74, 75, 76, -1, -1, -1, -1,
1211 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1212 -1, -1, -1, 94, -1, 96, 97, 98, 99, 100,
1213 101, -1, -1, -1, 105, 106, 107, 108, 109, 110,
1214 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
1215 3, -1, -1, -1, -1, -1, -1, -1, -1, 12,
1216 -1, -1, -1, -1, 17, 18, -1, -1, -1, -1,
1217 -1, -1, -1, -1, -1, -1, -1, 30, -1, -1,
1218 -1, -1, -1, -1, -1, 38, -1, -1, -1, -1,
1219 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
1220 -1, -1, -1, -1, -1, -1, -1, -1, 12, -1,
1221 -1, -1, -1, 17, 18, -1, -1, -1, -1, 72,
1222 73, 74, 75, 76, -1, -1, 30, -1, -1, -1,
1223 -1, -1, -1, -1, 38, -1, -1, -1, -1, -1,
1224 -1, 94, -1, 96, 97, 98, 99, 100, 101, -1,
1225 -1, -1, 105, 106, 107, 108, 109, 110, 111, 112,
1226 113, 114, 115, 116, 117, 118, 119, 120, 72, 73,
1227 74, 75, 76, -1, -1, -1, -1, -1, -1, -1,
1228 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1229 94, -1, 96, 97, 98, 99, 100, 101, -1, -1,
1230 -1, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1231 114, 115, 116, 117, 118, 119, 120, 3, -1, -1,
1232 -1, -1, -1, -1, -1, -1, 12, -1, -1, -1,
1233 -1, 17, 18, -1, -1, -1, -1, -1, -1, -1,
1234 -1, -1, -1, -1, 30, -1, -1, -1, -1, -1,
1235 -1, -1, 38, -1, -1, -1, -1, -1, -1, -1,
1236 -1, -1, -1, -1, -1, -1, 3, -1, -1, -1,
1237 -1, -1, -1, -1, -1, 12, -1, -1, -1, -1,
1238 17, 18, -1, -1, -1, -1, 72, 73, 74, 75,
1239 76, -1, -1, 30, -1, -1, -1, -1, -1, -1,
1240 -1, -1, -1, -1, -1, -1, -1, -1, 94, -1,
1241 96, 97, 98, 99, 100, 101, -1, -1, -1, 105,
1242 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1243 116, 117, 118, 119, 120, 72, 73, 74, 75, 76,
1244 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1245 -1, -1, -1, -1, -1, -1, -1, 94, -1, 96,
1246 97, 98, 99, 100, 101, -1, -1, -1, 105, 106,
1247 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1248 117, 118, 119, 120, 4, 5, 6, 7, 8, 9,
1249 10, 11, -1, -1, -1, -1, -1, 17, -1, 19,
1250 20, 21, 22, 23, 24, 25, 26, -1, -1, -1,
1251 30, 4, 5, 6, 7, 8, 9, 10, 11, -1,
1252 -1, -1, -1, -1, 17, -1, 19, 20, 21, 22,
1253 23, 24, 25, 26, -1, -1, -1, 30, 4, 5,
1254 6, 7, 8, 9, 10, 11, -1, -1, -1, -1,
1255 70, 17, -1, 19, 20, 21, 22, 23, 24, 25,
1256 26, -1, -1, -1, 30, -1, -1, -1, -1, -1,
1257 90, 91, 92, 93, -1, -1, -1, 70, -1, -1,
1258 -1, -1, -1, -1, -1, -1, -1, -1, 4, 5,
1259 6, 7, 8, 9, 10, 11, -1, 90, 91, 92,
1260 93, 17, -1, 19, 20, 21, 22, 23, 24, 25,
1261 26, -1, -1, -1, 30, 4, 5, 6, 7, 8,
1262 9, 10, 11, -1, 90, 91, 92, 93, 17, -1,
1263 19, 20, 21, 22, 23, 24, 25, 26, -1, -1,
1264 -1, 30, 4, 5, 6, 7, 8, 9, 10, 11,
1265 -1, -1, -1, -1, -1, 17, -1, 19, 20, 21,
1266 22, 23, 24, 25, 26, -1, -1, -1, 30, -1,
1267 -1, -1, -1, -1, 90, 91, 92, 93, -1, -1,
1268 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1269 -1, -1, 4, 5, 6, 7, 8, 9, 10, 11,
1270 -1, 90, 91, 92, 93, 17, -1, 19, 20, 21,
1271 22, 23, 24, 25, 26, -1, -1, -1, 30, 4,
1272 5, 6, 7, 8, 9, 10, 11, -1, 90, 91,
1273 92, 93, 17, -1, 19, 20, 21, 22, 23, 24,
1274 25, 26, -1, -1, -1, 30, 4, 5, 6, 7,
1275 8, 9, 10, 11, -1, -1, -1, -1, -1, -1,
1276 -1, 19, 20, 21, 22, 23, 24, 25, 26, -1,
1277 -1, -1, 30, -1, -1, -1, 39, -1, 90, 91,
1278 92, -1, -1, -1, -1, 48, 49, 50, 51, 52,
1279 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1280 63, 64, 65, 39, -1, 90, 91, 92, 71, -1,
1281 -1, -1, 48, 49, 50, 51, 52, 53, 54, 55,
1282 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1283 39, -1, 90, 91, 92, 71, -1, -1, -1, 48,
1284 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1285 59, 60, 61, 62, 63, 64, 65, 40, -1, -1,
1286 -1, -1, 71, -1, -1, 48, 49, 50, 51, 52,
1287 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1288 63, 64, 65, 41, -1, -1, -1, -1, 71, -1,
1289 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1290 58, 59, 60, 61, 62, 63, 64, 65, 41, -1,
1291 -1, -1, -1, 71, -1, 48, 49, 50, 51, 52,
1292 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1293 63, 64, 65, -1, -1, -1, -1, -1, 71, 48,
1294 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1295 59, 60, 61, 62, 63, 64, 65, -1, -1, -1,
1296 -1, -1, 71, 48, 49, 50, 51, 52, 53, 54,
1297 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1298 65, -1, -1, -1, -1, -1, 71, 48, 49, 50,
1299 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1300 61, 62, 63, 64, 65, -1, -1, -1, -1, -1,
1301 71, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1302 57, 58, 59, 60, 61, 62, 63, 64, 65, -1,
1306 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1307 symbol of state STATE-NUM. */
1308 static const unsigned char yystos
[] =
1310 0, 4, 5, 6, 7, 8, 9, 10, 11, 17,
1311 19, 20, 21, 22, 23, 24, 25, 26, 30, 36,
1312 37, 47, 89, 90, 91, 92, 93, 94, 95, 97,
1313 121, 126, 137, 138, 139, 140, 141, 159, 164, 166,
1314 167, 168, 169, 170, 171, 172, 173, 174, 179, 182,
1315 183, 186, 187, 188, 189, 190, 191, 194, 196, 197,
1316 203, 208, 218, 219, 9, 11, 3, 12, 17, 18,
1317 30, 38, 55, 72, 73, 74, 75, 76, 94, 96,
1318 97, 98, 99, 100, 101, 105, 106, 107, 108, 109,
1319 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
1320 120, 135, 216, 217, 234, 244, 30, 90, 91, 92,
1321 93, 187, 194, 36, 72, 73, 74, 75, 76, 77,
1322 78, 79, 80, 81, 82, 83, 85, 86, 87, 88,
1323 142, 143, 144, 145, 147, 148, 149, 90, 91, 165,
1324 166, 188, 189, 194, 203, 209, 210, 135, 135, 135,
1325 211, 3, 6, 10, 12, 17, 160, 161, 167, 34,
1326 219, 50, 252, 253, 30, 89, 186, 0, 139, 135,
1327 195, 215, 216, 4, 5, 6, 9, 175, 6, 172,
1328 178, 37, 129, 180, 38, 38, 42, 42, 215, 216,
1329 38, 135, 55, 128, 135, 135, 135, 40, 184, 27,
1330 28, 29, 126, 128, 135, 150, 151, 36, 0, 3,
1331 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1332 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1333 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1334 34, 35, 37, 38, 39, 40, 41, 42, 43, 44,
1335 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1336 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1337 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1338 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1339 85, 87, 89, 90, 91, 92, 93, 94, 95, 96,
1340 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1341 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1342 117, 118, 119, 120, 121, 124, 126, 127, 128, 129,
1343 136, 154, 155, 154, 34, 124, 146, 135, 150, 33,
1344 35, 38, 53, 54, 66, 67, 84, 134, 135, 156,
1345 135, 211, 135, 211, 37, 171, 135, 41, 213, 213,
1346 213, 213, 216, 31, 37, 42, 31, 165, 180, 44,
1347 214, 38, 135, 6, 176, 6, 9, 177, 175, 38,
1348 37, 17, 93, 166, 192, 193, 194, 192, 135, 204,
1349 205, 98, 99, 100, 101, 102, 103, 104, 225, 226,
1350 227, 240, 241, 247, 248, 249, 135, 215, 185, 195,
1351 216, 123, 154, 136, 156, 38, 135, 156, 38, 48,
1352 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1353 59, 60, 61, 62, 63, 64, 65, 71, 133, 41,
1354 42, 199, 199, 37, 198, 199, 198, 38, 135, 46,
1355 225, 38, 37, 37, 33, 215, 214, 34, 181, 216,
1356 17, 215, 39, 40, 39, 40, 46, 40, 43, 195,
1357 230, 31, 33, 35, 38, 134, 195, 206, 207, 222,
1358 242, 243, 244, 252, 195, 135, 250, 251, 18, 243,
1359 244, 43, 226, 206, 39, 135, 40, 38, 39, 135,
1360 156, 157, 158, 156, 156, 38, 165, 200, 195, 195,
1361 215, 27, 28, 29, 33, 34, 162, 163, 43, 3,
1362 6, 10, 12, 13, 14, 15, 16, 17, 39, 220,
1363 221, 223, 224, 45, 135, 34, 39, 216, 214, 17,
1364 70, 193, 214, 70, 206, 205, 46, 37, 30, 93,
1365 166, 206, 206, 71, 133, 46, 37, 38, 32, 46,
1366 38, 37, 40, 37, 37, 39, 195, 135, 152, 153,
1367 39, 39, 40, 41, 33, 41, 212, 43, 165, 135,
1368 37, 41, 39, 40, 222, 39, 39, 39, 27, 96,
1369 114, 206, 229, 231, 232, 233, 234, 253, 39, 39,
1370 206, 206, 242, 195, 252, 185, 251, 39, 40, 156,
1371 156, 40, 33, 41, 40, 201, 212, 39, 223, 41,
1372 221, 223, 46, 214, 214, 17, 18, 234, 237, 38,
1373 38, 229, 206, 41, 40, 245, 195, 39, 154, 135,
1374 33, 41, 38, 195, 202, 37, 201, 223, 252, 162,
1375 38, 206, 222, 206, 70, 242, 246, 39, 37, 39,
1376 41, 33, 212, 40, 37, 70, 222, 40, 40, 235,
1377 39, 40, 38, 40, 195, 32, 38, 206, 195, 228,
1378 229, 230, 236, 253, 39, 242, 33, 33, 212, 39,
1379 238, 239, 242, 39, 40, 229, 40, 39, 41, 39,
1380 40, 228, 33, 223, 39, 242, 39
1383 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1384 static const unsigned char yyr1
[] =
1386 0, 132, 133, 133, 133, 133, 133, 133, 133, 133,
1387 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
1388 134, 134, 134, 134, 135, 135, 135, 135, 135, 135,
1389 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
1390 135, 135, 136, 136, 136, 136, 136, 136, 136, 136,
1391 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1392 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1393 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1394 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1395 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1396 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1397 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1398 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1399 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1400 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1401 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1402 136, 136, 136, 136, 137, 137, 138, 138, 139, 139,
1403 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
1404 139, 140, 141, 141, 142, 142, 142, 142, 142, 142,
1405 142, 142, 143, 143, 144, 144, 145, 145, 145, 146,
1406 146, 147, 147, 148, 148, 148, 149, 149, 150, 150,
1407 150, 150, 150, 150, 151, 151, 152, 152, 153, 153,
1408 154, 154, 155, 155, 156, 156, 156, 156, 156, 156,
1409 156, 156, 156, 156, 157, 157, 158, 158, 159, 160,
1410 161, 161, 161, 161, 162, 162, 163, 163, 163, 163,
1411 163, 164, 164, 165, 165, 165, 165, 165, 165, 166,
1412 166, 167, 167, 168, 168, 168, 169, 169, 169, 169,
1413 170, 170, 170, 171, 171, 171, 171, 171, 171, 171,
1414 171, 172, 172, 173, 173, 173, 174, 174, 174, 174,
1415 175, 175, 175, 175, 175, 176, 176, 177, 177, 177,
1416 178, 178, 178, 179, 179, 180, 180, 181, 181, 182,
1417 183, 184, 184, 185, 185, 186, 186, 187, 187, 188,
1418 188, 189, 189, 190, 190, 190, 190, 191, 191, 192,
1419 192, 192, 192, 193, 193, 193, 193, 194, 194, 194,
1420 194, 195, 195, 196, 197, 198, 198, 199, 200, 200,
1421 201, 201, 202, 202, 203, 204, 204, 205, 205, 206,
1422 206, 206, 206, 206, 206, 207, 207, 207, 207, 208,
1423 209, 210, 211, 211, 212, 212, 212, 212, 213, 213,
1424 214, 214, 215, 215, 216, 216, 217, 217, 218, 218,
1425 219, 219, 219, 220, 220, 221, 221, 222, 223, 224,
1426 224, 224, 224, 224, 224, 224, 224, 224, 225, 225,
1427 226, 226, 226, 226, 226, 227, 227, 228, 228, 228,
1428 229, 229, 229, 229, 229, 230, 230, 231, 232, 233,
1429 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
1430 235, 235, 236, 236, 237, 237, 238, 238, 239, 239,
1431 240, 241, 242, 242, 242, 243, 243, 244, 244, 244,
1432 244, 244, 244, 244, 244, 245, 245, 246, 246, 247,
1433 248, 248, 249, 250, 250, 251, 252, 252, 253
1436 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
1437 static const unsigned char yyr2
[] =
1439 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1440 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1441 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1442 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1443 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1444 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1445 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1446 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1447 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1448 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1449 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1450 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1451 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1452 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1453 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1454 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1455 1, 1, 1, 1, 0, 1, 1, 2, 1, 1,
1456 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1457 1, 3, 2, 3, 2, 2, 1, 2, 2, 2,
1458 1, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1459 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1460 1, 1, 1, 1, 6, 2, 0, 1, 1, 3,
1461 0, 1, 1, 2, 3, 2, 3, 5, 2, 4,
1462 1, 1, 1, 4, 0, 1, 1, 3, 6, 1,
1463 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
1464 1, 3, 4, 1, 1, 2, 4, 4, 2, 2,
1465 1, 1, 1, 2, 2, 2, 1, 1, 1, 1,
1466 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
1467 1, 1, 1, 1, 1, 2, 1, 1, 2, 2,
1468 0, 1, 2, 1, 2, 0, 1, 0, 1, 1,
1469 0, 1, 2, 3, 4, 0, 4, 1, 2, 2,
1470 3, 0, 2, 1, 3, 1, 2, 1, 1, 5,
1471 7, 5, 7, 6, 7, 6, 5, 1, 2, 0,
1472 1, 1, 3, 1, 2, 3, 2, 1, 2, 4,
1473 3, 3, 2, 4, 4, 1, 1, 3, 4, 5,
1474 0, 2, 2, 4, 4, 1, 3, 1, 3, 1,
1475 4, 3, 3, 2, 5, 1, 1, 1, 1, 2,
1476 2, 2, 0, 1, 0, 2, 7, 9, 0, 7,
1477 0, 3, 0, 1, 1, 2, 1, 2, 4, 5,
1478 7, 8, 13, 1, 3, 2, 4, 2, 1, 1,
1479 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
1480 1, 1, 1, 1, 1, 3, 6, 1, 2, 1,
1481 1, 1, 1, 1, 1, 3, 4, 6, 8, 5,
1482 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1483 0, 2, 1, 3, 1, 1, 0, 1, 1, 3,
1484 3, 3, 1, 1, 3, 5, 6, 1, 1, 1,
1485 1, 1, 1, 1, 1, 0, 2, 1, 3, 3,
1486 1, 1, 3, 1, 3, 4, 0, 1, 1
1490 /* YYDPREC[RULE-NUM] -- Dynamic precedence of rule #RULE-NUM (0 if none). */
1491 static const unsigned char yydprec
[] =
1493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1506 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1513 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1524 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1527 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1530 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1531 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1534 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1540 0, 0, 0, 0, 0, 0, 0, 0, 0
1543 /* YYMERGER[RULE-NUM] -- Index of merging function for rule #RULE-NUM. */
1544 static const unsigned char yymerger
[] =
1546 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1548 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1550 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1551 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1552 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1553 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1554 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1555 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1559 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1560 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1563 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1565 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1567 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1570 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1571 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1572 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1574 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1575 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1576 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1577 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1578 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1579 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1582 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1583 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1584 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1585 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1586 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1587 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1588 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1589 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1590 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1593 0, 0, 0, 0, 0, 0, 0, 0, 0
1596 /* YYIMMEDIATE[RULE-NUM] -- True iff rule #RULE-NUM is not to be deferred, as
1597 in the case of predicates. */
1598 static const yybool yyimmediate
[] =
1600 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1601 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1602 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1603 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1604 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1605 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1606 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1607 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1608 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1609 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1611 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1612 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1613 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1614 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1615 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1616 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1617 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1618 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1619 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1620 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1621 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1622 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1623 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1624 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1625 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1626 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1627 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1632 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1633 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1634 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1635 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1636 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1637 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1638 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1639 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1640 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1641 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1642 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1643 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1647 0, 0, 0, 0, 0, 0, 0, 0, 0
1650 /* YYCONFLP[YYPACT[STATE-NUM]] -- Pointer into YYCONFL of start of
1651 list of conflicting reductions corresponding to action entry for
1652 state STATE-NUM in yytable. 0 means no conflicts. The list in
1653 yyconfl is terminated by a rule number of 0. */
1654 static const unsigned short int yyconflp
[] =
1656 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1657 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1658 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1659 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1662 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1665 0, 0, 0, 0, 0, 0, 0, 5, 0, 0,
1666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1667 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1668 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1670 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1671 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1673 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1674 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1676 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1677 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1678 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1679 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1680 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1681 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1682 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1683 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1684 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1685 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1686 0, 0, 0, 0, 0, 0, 259, 0, 0, 0,
1687 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1688 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1689 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1690 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1691 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1692 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1693 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1694 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1695 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1696 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1697 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1698 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1699 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1700 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1701 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1702 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1703 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1704 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1705 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1706 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1707 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1709 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1712 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1713 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1714 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1715 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1717 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1721 0, 0, 0, 7, 0, 0, 9, 11, 13, 15,
1722 17, 19, 21, 23, 25, 27, 29, 31, 33, 35,
1723 37, 39, 41, 43, 45, 47, 49, 51, 53, 55,
1724 57, 59, 61, 63, 65, 67, 69, 71, 73, 75,
1725 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
1726 97, 99, 101, 103, 105, 107, 109, 111, 113, 115,
1727 117, 119, 121, 123, 125, 127, 129, 131, 133, 135,
1728 137, 139, 141, 143, 145, 147, 149, 151, 153, 155,
1729 157, 159, 161, 163, 165, 167, 169, 171, 173, 0,
1730 175, 0, 177, 179, 181, 183, 185, 187, 189, 191,
1731 193, 195, 197, 199, 201, 203, 205, 207, 209, 211,
1732 213, 215, 217, 219, 221, 223, 225, 227, 229, 231,
1733 233, 235, 237, 239, 241, 0, 243, 245, 0, 247,
1734 249, 251, 253, 0, 0, 0, 0, 0, 0, 0,
1735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1737 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1740 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1743 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1748 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1759 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1762 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1763 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1766 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1767 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1769 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1770 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1777 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1778 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1780 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1781 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1799 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1803 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1807 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1808 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1810 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1812 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1813 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1814 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1815 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1825 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1863 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1865 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1866 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1870 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1876 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1877 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1878 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1879 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1880 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1881 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1882 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1883 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1886 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1887 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1888 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1889 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1890 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1891 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1893 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1894 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1897 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1898 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1899 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1902 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1908 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1911 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1912 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1914 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1918 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1921 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1922 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
1923 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
1924 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1926 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1929 0, 0, 0, 0, 0, 0, 0, 0, 255, 0,
1930 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1931 0, 257, 0, 0, 0, 0, 0, 0, 0, 0,
1932 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1935 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1936 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1938 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1940 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1941 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1942 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1944 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1945 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1946 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1947 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1949 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1950 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1951 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1952 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1953 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1954 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1955 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1956 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1957 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1958 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1959 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1960 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1961 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1962 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1963 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1964 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1965 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1966 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1967 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1968 261, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1969 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1973 /* YYCONFL[I] -- lists of conflicting rule numbers, each terminated by
1974 0, pointed into by YYCONFLP. */
1975 static const short int yyconfl
[] =
1977 0, 269, 0, 269, 0, 337, 0, 463, 0, 463,
1978 0, 463, 0, 463, 0, 463, 0, 463, 0, 463,
1979 0, 463, 0, 463, 0, 463, 0, 463, 0, 463,
1980 0, 463, 0, 463, 0, 463, 0, 463, 0, 463,
1981 0, 463, 0, 463, 0, 463, 0, 463, 0, 463,
1982 0, 463, 0, 463, 0, 463, 0, 463, 0, 463,
1983 0, 463, 0, 463, 0, 463, 0, 463, 0, 463,
1984 0, 463, 0, 463, 0, 463, 0, 463, 0, 463,
1985 0, 463, 0, 463, 0, 463, 0, 463, 0, 463,
1986 0, 463, 0, 463, 0, 463, 0, 463, 0, 463,
1987 0, 463, 0, 463, 0, 463, 0, 463, 0, 463,
1988 0, 463, 0, 463, 0, 463, 0, 463, 0, 463,
1989 0, 463, 0, 463, 0, 463, 0, 463, 0, 463,
1990 0, 463, 0, 463, 0, 463, 0, 463, 0, 463,
1991 0, 463, 0, 463, 0, 463, 0, 463, 0, 463,
1992 0, 463, 0, 463, 0, 463, 0, 463, 0, 463,
1993 0, 463, 0, 463, 0, 463, 0, 463, 0, 463,
1994 0, 463, 0, 463, 0, 463, 0, 463, 0, 463,
1995 0, 463, 0, 463, 0, 463, 0, 463, 0, 463,
1996 0, 463, 0, 463, 0, 463, 0, 463, 0, 463,
1997 0, 463, 0, 463, 0, 463, 0, 463, 0, 463,
1998 0, 463, 0, 463, 0, 463, 0, 463, 0, 463,
1999 0, 463, 0, 463, 0, 463, 0, 463, 0, 463,
2000 0, 463, 0, 463, 0, 463, 0, 463, 0, 463,
2001 0, 463, 0, 463, 0, 463, 0, 463, 0, 463,
2002 0, 463, 0, 463, 0, 269, 0, 269, 0, 269,
2006 /* Error token number */
2013 #define yynerrs (yystackp->yyerrcnt)
2015 #define yychar (yystackp->yyrawchar)
2017 #define yylval (yystackp->yyval)
2019 #define yylloc (yystackp->yyloc)
2020 #define psi_parser_proc_nerrs yynerrs
2021 #define psi_parser_proc_char yychar
2022 #define psi_parser_proc_lval yylval
2023 #define psi_parser_proc_lloc yylloc
2025 static const int YYEOF
= 0;
2026 static const int YYEMPTY
= -2;
2028 typedef enum { yyok
, yyaccept
, yyabort
, yyerr
} YYRESULTTAG
;
2030 #define YYCHK(YYE) \
2032 YYRESULTTAG yychk_flag = YYE; \
2033 if (yychk_flag != yyok) \
2034 return yychk_flag; \
2040 # define YYFPRINTF fprintf
2043 /* This macro is provided for backward compatibility. */
2044 #ifndef YY_LOCATION_PRINT
2045 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2049 # define YYDPRINTF(Args) \
2056 /*----------------------------------------.
2057 | Print this symbol's value on YYOUTPUT. |
2058 `----------------------------------------*/
2061 yy_symbol_value_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
2063 FILE *yyo
= yyoutput
;
2074 /*--------------------------------.
2075 | Print this symbol on YYOUTPUT. |
2076 `--------------------------------*/
2079 yy_symbol_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
2081 YYFPRINTF (yyoutput
, "%s %s (",
2082 yytype
< YYNTOKENS
? "token" : "nterm", yytname
[yytype
]);
2084 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
, P
, tokens
, index
);
2085 YYFPRINTF (yyoutput
, ")");
2088 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2092 YYFPRINTF (stderr, "%s ", Title); \
2093 yy_symbol_print (stderr, Type, Value, P, tokens, index); \
2094 YYFPRINTF (stderr, "\n"); \
2098 /* Nonzero means print parse trace. It is left uninitialized so that
2099 multiple parsers can coexist. */
2103 static void yypstack (struct yyGLRStack
* yystackp
, size_t yyk
)
2104 YY_ATTRIBUTE_UNUSED
;
2105 static void yypdumpstack (struct yyGLRStack
* yystackp
)
2106 YY_ATTRIBUTE_UNUSED
;
2108 #else /* !YYDEBUG */
2110 # define YYDPRINTF(Args)
2111 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2113 #endif /* !YYDEBUG */
2115 /* YYINITDEPTH -- initial size of the parser's stacks. */
2117 # define YYINITDEPTH 200
2120 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2121 if the built-in stack extension method is used).
2123 Do not make this value too large; the results are undefined if
2124 SIZE_MAX < YYMAXDEPTH * sizeof (GLRStackItem)
2125 evaluated with infinite-precision integer arithmetic. */
2128 # define YYMAXDEPTH 10000
2131 /* Minimum number of free items on the stack allowed after an
2132 allocation. This is to allow allocation and initialization
2133 to be completed by functions that call yyexpandGLRStack before the
2134 stack is expanded, thus insuring that all necessary pointers get
2135 properly redirected to new data. */
2136 #define YYHEADROOM 2
2138 #ifndef YYSTACKEXPANDABLE
2139 # define YYSTACKEXPANDABLE 1
2142 #if YYSTACKEXPANDABLE
2143 # define YY_RESERVE_GLRSTACK(Yystack) \
2145 if (Yystack->yyspaceLeft < YYHEADROOM) \
2146 yyexpandGLRStack (Yystack); \
2149 # define YY_RESERVE_GLRSTACK(Yystack) \
2151 if (Yystack->yyspaceLeft < YYHEADROOM) \
2152 yyMemoryExhausted (Yystack); \
2160 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2161 # define yystpcpy stpcpy
2163 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2166 yystpcpy (char *yydest
, const char *yysrc
)
2169 const char *yys
= yysrc
;
2171 while ((*yyd
++ = *yys
++) != '\0')
2180 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2181 quotes and backslashes, so that it's suitable for yyerror. The
2182 heuristic is that double-quoting is unnecessary unless the string
2183 contains an apostrophe, a comma, or backslash (other than
2184 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2185 null, do not copy; instead, return the length of what the result
2188 yytnamerr (char *yyres
, const char *yystr
)
2193 char const *yyp
= yystr
;
2200 goto do_not_strip_quotes
;
2204 goto do_not_strip_quotes
;
2217 do_not_strip_quotes
: ;
2221 return strlen (yystr
);
2223 return yystpcpy (yyres
, yystr
) - yyres
;
2227 #endif /* !YYERROR_VERBOSE */
2229 /** State numbers, as in LALR(1) machine */
2230 typedef int yyStateNum
;
2232 /** Rule numbers, as in LALR(1) machine */
2233 typedef int yyRuleNum
;
2235 /** Grammar symbol */
2236 typedef int yySymbol
;
2238 /** Item references, as in LALR(1) machine */
2239 typedef short int yyItemNum
;
2241 typedef struct yyGLRState yyGLRState
;
2242 typedef struct yyGLRStateSet yyGLRStateSet
;
2243 typedef struct yySemanticOption yySemanticOption
;
2244 typedef union yyGLRStackItem yyGLRStackItem
;
2245 typedef struct yyGLRStack yyGLRStack
;
2248 /** Type tag: always true. */
2250 /** Type tag for yysemantics. If true, yysval applies, otherwise
2251 * yyfirstVal applies. */
2253 /** Number of corresponding LALR(1) machine state. */
2254 yyStateNum yylrState
;
2255 /** Preceding state in this stack */
2257 /** Source position of the last token produced by my symbol */
2260 /** First in a chain of alternative reductions producing the
2261 * non-terminal corresponding to this state, threaded through
2263 yySemanticOption
* yyfirstVal
;
2264 /** Semantic value for this state. */
2269 struct yyGLRStateSet
{
2270 yyGLRState
** yystates
;
2271 /** During nondeterministic operation, yylookaheadNeeds tracks which
2272 * stacks have actually needed the current lookahead. During deterministic
2273 * operation, yylookaheadNeeds[0] is not maintained since it would merely
2274 * duplicate yychar != YYEMPTY. */
2275 yybool
* yylookaheadNeeds
;
2276 size_t yysize
, yycapacity
;
2279 struct yySemanticOption
{
2280 /** Type tag: always false. */
2282 /** Rule number for this reduction */
2284 /** The last RHS state in the list of states to be reduced. */
2285 yyGLRState
* yystate
;
2286 /** The lookahead for this reduction. */
2289 /** Next sibling in chain of options. To facilitate merging,
2290 * options are chained in decreasing order by address. */
2291 yySemanticOption
* yynext
;
2294 /** Type of the items in the GLR stack. The yyisState field
2295 * indicates which item of the union is valid. */
2296 union yyGLRStackItem
{
2298 yySemanticOption yyoption
;
2309 YYJMP_BUF yyexception_buffer
;
2310 yyGLRStackItem
* yyitems
;
2311 yyGLRStackItem
* yynextFree
;
2313 yyGLRState
* yysplitPoint
;
2314 yyGLRState
* yylastDeleted
;
2315 yyGLRStateSet yytops
;
2318 #if YYSTACKEXPANDABLE
2319 static void yyexpandGLRStack (yyGLRStack
* yystackp
);
2322 static _Noreturn
void
2323 yyFail (yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
, const char* yymsg
)
2325 if (yymsg
!= YY_NULLPTR
)
2326 yyerror (P
, tokens
, index
, yymsg
);
2327 YYLONGJMP (yystackp
->yyexception_buffer
, 1);
2330 static _Noreturn
void
2331 yyMemoryExhausted (yyGLRStack
* yystackp
)
2333 YYLONGJMP (yystackp
->yyexception_buffer
, 2);
2336 #if YYDEBUG || YYERROR_VERBOSE
2337 /** A printable representation of TOKEN. */
2338 static inline const char*
2339 yytokenName (yySymbol yytoken
)
2341 if (yytoken
== YYEMPTY
)
2344 return yytname
[yytoken
];
2348 /** Fill in YYVSP[YYLOW1 .. YYLOW0-1] from the chain of states starting
2349 * at YYVSP[YYLOW0].yystate.yypred. Leaves YYVSP[YYLOW1].yystate.yypred
2350 * containing the pointer to the next state in the chain. */
2351 static void yyfillin (yyGLRStackItem
*, int, int) YY_ATTRIBUTE_UNUSED
;
2353 yyfillin (yyGLRStackItem
*yyvsp
, int yylow0
, int yylow1
)
2356 yyGLRState
*s
= yyvsp
[yylow0
].yystate
.yypred
;
2357 for (i
= yylow0
-1; i
>= yylow1
; i
-= 1)
2360 yyvsp
[i
].yystate
.yylrState
= s
->yylrState
;
2362 yyvsp
[i
].yystate
.yyresolved
= s
->yyresolved
;
2364 yyvsp
[i
].yystate
.yysemantics
.yysval
= s
->yysemantics
.yysval
;
2366 /* The effect of using yysval or yyloc (in an immediate rule) is
2368 yyvsp
[i
].yystate
.yysemantics
.yyfirstVal
= YY_NULLPTR
;
2369 s
= yyvsp
[i
].yystate
.yypred
= s
->yypred
;
2373 /* Do nothing if YYNORMAL or if *YYLOW <= YYLOW1. Otherwise, fill in
2374 * YYVSP[YYLOW1 .. *YYLOW-1] as in yyfillin and set *YYLOW = YYLOW1.
2375 * For convenience, always return YYLOW1. */
2376 static inline int yyfill (yyGLRStackItem
*, int *, int, yybool
)
2377 YY_ATTRIBUTE_UNUSED
;
2379 yyfill (yyGLRStackItem
*yyvsp
, int *yylow
, int yylow1
, yybool yynormal
)
2381 if (!yynormal
&& yylow1
< *yylow
)
2383 yyfillin (yyvsp
, *yylow
, yylow1
);
2389 /** Perform user action for rule number YYN, with RHS length YYRHSLEN,
2390 * and top stack item YYVSP. YYLVALP points to place to put semantic
2391 * value ($$), and yylocp points to place for location information
2392 * (@$). Returns yyok for normal return, yyaccept for YYACCEPT,
2393 * yyerr for YYERROR, yyabort for YYABORT. */
2395 yyuserAction (yyRuleNum yyn
, size_t yyrhslen
, yyGLRStackItem
* yyvsp
,
2396 yyGLRStack
* yystackp
,
2397 YYSTYPE
* yyvalp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
2399 yybool yynormal YY_ATTRIBUTE_UNUSED
= (yystackp
->yysplitPoint
== YY_NULLPTR
);
2407 # define yyerrok (yystackp->yyerrState = 0)
2409 # define YYACCEPT return yyaccept
2411 # define YYABORT return yyabort
2413 # define YYERROR return yyerrok, yyerr
2414 # undef YYRECOVERING
2415 # define YYRECOVERING() (yystackp->yyerrState != 0)
2417 # define yyclearin (yychar = YYEMPTY)
2419 # define YYFILL(N) yyfill (yyvsp, &yylow, N, yynormal)
2421 # define YYBACKUP(Token, Value) \
2422 return yyerror (P, tokens, index, YY_("syntax error: cannot back up")), \
2427 *yyvalp
= yyval_default
;
2429 *yyvalp
= yyvsp
[YYFILL (1-yyrhslen
)].yystate
.yysemantics
.yysval
;
2433 #line 410 "src/parser_proc_grammar.y" /* glr.c:816 */
2435 if ((*(struct psi_cpp_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2436 psi_cpp_exp_exec((*(struct psi_cpp_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), P
->preproc
, PSI_DATA(P
));
2437 psi_cpp_exp_free(&(*(struct psi_cpp_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2440 #line 2441 "src/parser_proc.c" /* glr.c:816 */
2444 #line 416 "src/parser_proc_grammar.y" /* glr.c:816 */
2447 P
->error(PSI_DATA(P
), (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), PSI_WARNING
,
2448 "Extra 'lib \"%s\"' statement has no effect", (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
);
2450 P
->file
.ln
= strndup((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->size
);
2453 #line 2454 "src/parser_proc.c" /* glr.c:816 */
2457 #line 424 "src/parser_proc_grammar.y" /* glr.c:816 */
2459 psi_parser_proc_add_const(P
, (*(struct psi_const
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2461 #line 2462 "src/parser_proc.c" /* glr.c:816 */
2465 #line 427 "src/parser_proc_grammar.y" /* glr.c:816 */
2467 psi_parser_proc_add_decl(P
, (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2469 #line 2470 "src/parser_proc.c" /* glr.c:816 */
2473 #line 431 "src/parser_proc_grammar.y" /* glr.c:816 */
2475 psi_parser_proc_add_typedef(P
, (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2477 #line 2478 "src/parser_proc.c" /* glr.c:816 */
2481 #line 434 "src/parser_proc_grammar.y" /* glr.c:816 */
2483 psi_parser_proc_add_struct(P
, (*(struct psi_decl_struct
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2485 #line 2486 "src/parser_proc.c" /* glr.c:816 */
2489 #line 437 "src/parser_proc_grammar.y" /* glr.c:816 */
2491 psi_parser_proc_add_union(P
, (*(struct psi_decl_union
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2493 #line 2494 "src/parser_proc.c" /* glr.c:816 */
2497 #line 440 "src/parser_proc_grammar.y" /* glr.c:816 */
2499 psi_parser_proc_add_enum(P
, (*(struct psi_decl_enum
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2501 #line 2502 "src/parser_proc.c" /* glr.c:816 */
2505 #line 443 "src/parser_proc_grammar.y" /* glr.c:816 */
2507 psi_parser_proc_add_impl(P
, (*(struct psi_impl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2509 #line 2510 "src/parser_proc.c" /* glr.c:816 */
2513 #line 449 "src/parser_proc_grammar.y" /* glr.c:816 */
2515 (*(struct psi_token
**)(&(*yyvalp
))) = (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2517 #line 2518 "src/parser_proc.c" /* glr.c:816 */
2521 #line 455 "src/parser_proc_grammar.y" /* glr.c:816 */
2523 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = NULL
;
2525 #line 2526 "src/parser_proc.c" /* glr.c:816 */
2529 #line 458 "src/parser_proc_grammar.y" /* glr.c:816 */
2531 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = (*(struct psi_cpp_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2533 #line 2534 "src/parser_proc.c" /* glr.c:816 */
2537 #line 464 "src/parser_proc_grammar.y" /* glr.c:816 */
2539 if ((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2540 struct psi_token
*msg
= NULL
;
2542 if (psi_plist_get((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), 0, &msg
)) {
2544 struct psi_token
*next
;
2546 msg
= psi_token_copy(msg
);
2547 while (psi_plist_get((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), index
++, &next
)) {
2548 struct psi_token
*old
= msg
;
2549 msg
= psi_token_cat(" ", 2, msg
, next
);
2553 psi_plist_free((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2555 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, msg
);
2557 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, NULL
);
2559 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2561 #line 2562 "src/parser_proc.c" /* glr.c:816 */
2565 #line 487 "src/parser_proc_grammar.y" /* glr.c:816 */
2567 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))));
2568 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2570 #line 2571 "src/parser_proc.c" /* glr.c:816 */
2574 #line 491 "src/parser_proc_grammar.y" /* glr.c:816 */
2576 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
, NULL
);
2577 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2579 #line 2580 "src/parser_proc.c" /* glr.c:816 */
2583 #line 495 "src/parser_proc_grammar.y" /* glr.c:816 */
2585 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2586 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))));
2587 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2589 #line 2590 "src/parser_proc.c" /* glr.c:816 */
2593 #line 500 "src/parser_proc_grammar.y" /* glr.c:816 */
2595 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_cpp_macro_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2596 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2598 #line 2599 "src/parser_proc.c" /* glr.c:816 */
2602 #line 504 "src/parser_proc_grammar.y" /* glr.c:816 */
2604 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2605 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2607 #line 2608 "src/parser_proc.c" /* glr.c:816 */
2611 #line 508 "src/parser_proc_grammar.y" /* glr.c:816 */
2613 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
, NULL
);
2614 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2616 #line 2617 "src/parser_proc.c" /* glr.c:816 */
2620 #line 512 "src/parser_proc_grammar.y" /* glr.c:816 */
2622 psi_plist_free((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2623 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = NULL
;
2625 #line 2626 "src/parser_proc.c" /* glr.c:816 */
2629 #line 565 "src/parser_proc_grammar.y" /* glr.c:816 */
2631 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2632 (*(struct psi_cpp_macro_decl
**)(&(*yyvalp
))) = psi_cpp_macro_decl_init((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)), (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), NULL
);
2633 (*(struct psi_cpp_macro_decl
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
2635 #line 2636 "src/parser_proc.c" /* glr.c:816 */
2639 #line 570 "src/parser_proc_grammar.y" /* glr.c:816 */
2641 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2642 (*(struct psi_cpp_macro_decl
**)(&(*yyvalp
))) = psi_cpp_macro_decl_init(NULL
, (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), NULL
);
2643 (*(struct psi_cpp_macro_decl
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2645 #line 2646 "src/parser_proc.c" /* glr.c:816 */
2649 #line 578 "src/parser_proc_grammar.y" /* glr.c:816 */
2651 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_init(NULL
);
2653 #line 2654 "src/parser_proc.c" /* glr.c:816 */
2657 #line 585 "src/parser_proc_grammar.y" /* glr.c:816 */
2659 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2660 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2661 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add(psi_plist_init((psi_plist_dtor
) psi_token_free
), &(*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2663 #line 2664 "src/parser_proc.c" /* glr.c:816 */
2667 #line 590 "src/parser_proc_grammar.y" /* glr.c:816 */
2669 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2670 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2671 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)), &(*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2673 #line 2674 "src/parser_proc.c" /* glr.c:816 */
2677 #line 598 "src/parser_proc_grammar.y" /* glr.c:816 */
2679 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
2681 #line 2682 "src/parser_proc.c" /* glr.c:816 */
2685 #line 605 "src/parser_proc_grammar.y" /* glr.c:816 */
2687 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2688 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add(psi_plist_init((psi_plist_dtor
) psi_token_free
), &(*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2690 #line 2691 "src/parser_proc.c" /* glr.c:816 */
2694 #line 609 "src/parser_proc_grammar.y" /* glr.c:816 */
2696 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2697 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), &(*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2699 #line 2700 "src/parser_proc.c" /* glr.c:816 */
2703 #line 616 "src/parser_proc_grammar.y" /* glr.c:816 */
2705 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_unary((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2706 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
2708 #line 2709 "src/parser_proc.c" /* glr.c:816 */
2712 #line 620 "src/parser_proc_grammar.y" /* glr.c:816 */
2714 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_unary((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2715 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2717 #line 2718 "src/parser_proc.c" /* glr.c:816 */
2721 #line 624 "src/parser_proc_grammar.y" /* glr.c:816 */
2723 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_binary((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)), (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2724 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2726 #line 2727 "src/parser_proc.c" /* glr.c:816 */
2730 #line 628 "src/parser_proc_grammar.y" /* glr.c:816 */
2732 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_ternary((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)), (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)), (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2733 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2735 #line 2736 "src/parser_proc.c" /* glr.c:816 */
2739 #line 633 "src/parser_proc_grammar.y" /* glr.c:816 */
2744 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2745 exists
= psi_cpp_defined(P
->preproc
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2746 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8
, &exists
, 0));
2747 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2750 #line 2751 "src/parser_proc.c" /* glr.c:816 */
2754 #line 643 "src/parser_proc_grammar.y" /* glr.c:816 */
2759 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2760 exists
= psi_cpp_defined(P
->preproc
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2761 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8
, &exists
, 0));
2762 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2765 #line 2766 "src/parser_proc.c" /* glr.c:816 */
2769 #line 653 "src/parser_proc_grammar.y" /* glr.c:816 */
2771 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num(psi_number_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->flags
));
2772 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2773 (*(struct psi_num_exp
**)(&(*yyvalp
)))->data
.n
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2775 #line 2776 "src/parser_proc.c" /* glr.c:816 */
2779 #line 658 "src/parser_proc_grammar.y" /* glr.c:816 */
2781 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num(psi_number_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, 0));
2782 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2783 (*(struct psi_num_exp
**)(&(*yyvalp
)))->data
.n
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2785 #line 2786 "src/parser_proc.c" /* glr.c:816 */
2789 #line 663 "src/parser_proc_grammar.y" /* glr.c:816 */
2791 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2792 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num(psi_number_init(PSI_T_DEFINE
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, 0));
2793 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2794 (*(struct psi_num_exp
**)(&(*yyvalp
)))->data
.n
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2796 #line 2797 "src/parser_proc.c" /* glr.c:816 */
2800 #line 669 "src/parser_proc_grammar.y" /* glr.c:816 */
2802 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2803 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num(psi_number_init(PSI_T_FUNCTION
,
2804 psi_cpp_macro_call_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->text
, (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))), 0));
2805 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2807 #line 2808 "src/parser_proc.c" /* glr.c:816 */
2811 #line 678 "src/parser_proc_grammar.y" /* glr.c:816 */
2813 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
2815 #line 2816 "src/parser_proc.c" /* glr.c:816 */
2819 #line 685 "src/parser_proc_grammar.y" /* glr.c:816 */
2821 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add(psi_plist_init((psi_plist_dtor
) psi_num_exp_free
),
2822 &(*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2824 #line 2825 "src/parser_proc.c" /* glr.c:816 */
2828 #line 689 "src/parser_proc_grammar.y" /* glr.c:816 */
2830 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)), &(*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2832 #line 2833 "src/parser_proc.c" /* glr.c:816 */
2836 #line 695 "src/parser_proc_grammar.y" /* glr.c:816 */
2838 (*(struct psi_const
**)(&(*yyvalp
))) = psi_const_init((*(struct psi_const_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)), (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->text
, (*(struct psi_impl_def_val
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2839 (*(struct psi_const
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2841 #line 2842 "src/parser_proc.c" /* glr.c:816 */
2845 #line 702 "src/parser_proc_grammar.y" /* glr.c:816 */
2847 (*(struct psi_const_type
**)(&(*yyvalp
))) = psi_const_type_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
);
2849 #line 2850 "src/parser_proc.c" /* glr.c:816 */
2853 #line 715 "src/parser_proc_grammar.y" /* glr.c:816 */
2855 (*(struct psi_impl_def_val
**)(&(*yyvalp
))) = NULL
;
2857 #line 2858 "src/parser_proc.c" /* glr.c:816 */
2861 #line 718 "src/parser_proc_grammar.y" /* glr.c:816 */
2863 (*(struct psi_impl_def_val
**)(&(*yyvalp
))) = psi_impl_def_val_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
);
2864 (*(struct psi_impl_def_val
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2866 #line 2867 "src/parser_proc.c" /* glr.c:816 */
2870 #line 733 "src/parser_proc_grammar.y" /* glr.c:816 */
2872 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2874 #line 2875 "src/parser_proc.c" /* glr.c:816 */
2878 #line 736 "src/parser_proc_grammar.y" /* glr.c:816 */
2880 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2882 #line 2883 "src/parser_proc.c" /* glr.c:816 */
2886 #line 743 "src/parser_proc_grammar.y" /* glr.c:816 */
2888 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
2889 psi_decl_type_init(PSI_T_FUNCTION
, (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->var
->name
),
2890 psi_decl_var_copy((*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->var
)
2892 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->token
);
2893 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.func
= (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
2895 #line 2896 "src/parser_proc.c" /* glr.c:816 */
2899 #line 751 "src/parser_proc_grammar.y" /* glr.c:816 */
2901 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2902 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
2903 psi_decl_type_init(PSI_T_ENUM
, (*(struct psi_decl_enum
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->name
),
2904 psi_decl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, 0, 0)
2906 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2907 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_decl_enum
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->token
);
2908 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.enm
= (*(struct psi_decl_enum
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2910 #line 2911 "src/parser_proc.c" /* glr.c:816 */
2914 #line 761 "src/parser_proc_grammar.y" /* glr.c:816 */
2916 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(psi_decl_type_init(PSI_T_STRUCT
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->text
), (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2917 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
));
2918 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.strct
= psi_decl_struct_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->text
, (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2919 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.strct
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2920 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.strct
->align
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)).pos
;
2921 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.strct
->size
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)).len
;
2923 #line 2924 "src/parser_proc.c" /* glr.c:816 */
2927 #line 769 "src/parser_proc_grammar.y" /* glr.c:816 */
2929 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(psi_decl_type_init(PSI_T_UNION
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->text
), (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2930 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
));
2931 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.unn
= psi_decl_union_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->text
, (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2932 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.unn
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2933 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.unn
->align
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)).pos
;
2934 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.unn
->size
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)).len
;
2936 #line 2937 "src/parser_proc.c" /* glr.c:816 */
2940 #line 777 "src/parser_proc_grammar.y" /* glr.c:816 */
2942 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2943 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init((*(struct psi_decl_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), psi_decl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, 0, 0));
2944 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2946 #line 2947 "src/parser_proc.c" /* glr.c:816 */
2950 #line 785 "src/parser_proc_grammar.y" /* glr.c:816 */
2952 (*(struct psi_decl_type
**)(&(*yyvalp
))) = (*(struct psi_decl_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
2954 #line 2955 "src/parser_proc.c" /* glr.c:816 */
2958 #line 792 "src/parser_proc_grammar.y" /* glr.c:816 */
2960 (*(struct psi_decl_type
**)(&(*yyvalp
))) = psi_decl_type_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
);
2961 (*(struct psi_decl_type
**)(&(*yyvalp
)))->token
= (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
2963 #line 2964 "src/parser_proc.c" /* glr.c:816 */
2967 #line 800 "src/parser_proc_grammar.y" /* glr.c:816 */
2969 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2970 (*(struct psi_decl_type
**)(&(*yyvalp
))) = psi_decl_type_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
);
2971 (*(struct psi_decl_type
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2973 #line 2974 "src/parser_proc.c" /* glr.c:816 */
2977 #line 805 "src/parser_proc_grammar.y" /* glr.c:816 */
2979 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2980 (*(struct psi_decl_type
**)(&(*yyvalp
))) = psi_decl_type_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
);
2981 (*(struct psi_decl_type
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2983 #line 2984 "src/parser_proc.c" /* glr.c:816 */
2987 #line 810 "src/parser_proc_grammar.y" /* glr.c:816 */
2989 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2990 (*(struct psi_decl_type
**)(&(*yyvalp
))) = psi_decl_type_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
);
2991 (*(struct psi_decl_type
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2993 #line 2994 "src/parser_proc.c" /* glr.c:816 */
2997 #line 820 "src/parser_proc_grammar.y" /* glr.c:816 */
2999 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3001 #line 3002 "src/parser_proc.c" /* glr.c:816 */
3005 #line 823 "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 829 "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 832 "src/parser_proc_grammar.y" /* glr.c:816 */
3023 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3025 #line 3026 "src/parser_proc.c" /* glr.c:816 */
3029 #line 835 "src/parser_proc_grammar.y" /* glr.c:816 */
3031 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_cat(" ", 2, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3033 #line 3034 "src/parser_proc.c" /* glr.c:816 */
3037 #line 857 "src/parser_proc_grammar.y" /* glr.c:816 */
3039 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3041 #line 3042 "src/parser_proc.c" /* glr.c:816 */
3045 #line 860 "src/parser_proc_grammar.y" /* glr.c:816 */
3047 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3049 #line 3050 "src/parser_proc.c" /* glr.c:816 */
3053 #line 863 "src/parser_proc_grammar.y" /* glr.c:816 */
3055 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_cat(" ", 2, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3057 #line 3058 "src/parser_proc.c" /* glr.c:816 */
3061 #line 869 "src/parser_proc_grammar.y" /* glr.c:816 */
3063 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3065 #line 3066 "src/parser_proc.c" /* glr.c:816 */
3069 #line 872 "src/parser_proc_grammar.y" /* glr.c:816 */
3071 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3073 #line 3074 "src/parser_proc.c" /* glr.c:816 */
3077 #line 875 "src/parser_proc_grammar.y" /* glr.c:816 */
3079 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3080 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_cat(" ", 2, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3081 free((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3083 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3086 #line 3087 "src/parser_proc.c" /* glr.c:816 */
3090 #line 883 "src/parser_proc_grammar.y" /* glr.c:816 */
3092 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3093 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_cat(" ", 2, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3094 free((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3095 free((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3097 (*(struct psi_token
**)(&(*yyvalp
))) = (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
3100 #line 3101 "src/parser_proc.c" /* glr.c:816 */
3104 #line 895 "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 898 "src/parser_proc_grammar.y" /* glr.c:816 */
3114 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3116 #line 3117 "src/parser_proc.c" /* glr.c:816 */
3120 #line 901 "src/parser_proc_grammar.y" /* glr.c:816 */
3122 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3123 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_cat(" ", 2, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3125 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3128 #line 3129 "src/parser_proc.c" /* glr.c:816 */
3132 #line 908 "src/parser_proc_grammar.y" /* glr.c:816 */
3134 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3136 #line 3137 "src/parser_proc.c" /* glr.c:816 */
3140 #line 911 "src/parser_proc_grammar.y" /* glr.c:816 */
3142 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3143 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_cat(" ", 2, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3145 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3148 #line 3149 "src/parser_proc.c" /* glr.c:816 */
3152 #line 921 "src/parser_proc_grammar.y" /* glr.c:816 */
3154 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
3156 #line 3157 "src/parser_proc.c" /* glr.c:816 */
3160 #line 927 "src/parser_proc_grammar.y" /* glr.c:816 */
3162 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
3164 #line 3165 "src/parser_proc.c" /* glr.c:816 */
3168 #line 935 "src/parser_proc_grammar.y" /* glr.c:816 */
3170 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
3172 #line 3173 "src/parser_proc.c" /* glr.c:816 */
3176 #line 938 "src/parser_proc_grammar.y" /* glr.c:816 */
3178 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3180 #line 3181 "src/parser_proc.c" /* glr.c:816 */
3184 #line 941 "src/parser_proc_grammar.y" /* glr.c:816 */
3186 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3187 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_cat(" ", 2, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3188 free((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3190 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3193 #line 3194 "src/parser_proc.c" /* glr.c:816 */
3197 #line 952 "src/parser_proc_grammar.y" /* glr.c:816 */
3199 (*(struct psi_decl
**)(&(*yyvalp
))) = (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3201 #line 3202 "src/parser_proc.c" /* glr.c:816 */
3205 #line 955 "src/parser_proc_grammar.y" /* glr.c:816 */
3207 (*(struct psi_decl
**)(&(*yyvalp
))) = (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3209 #line 3210 "src/parser_proc.c" /* glr.c:816 */
3213 #line 975 "src/parser_proc_grammar.y" /* glr.c:816 */
3215 psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3217 #line 3218 "src/parser_proc.c" /* glr.c:816 */
3221 #line 982 "src/parser_proc_grammar.y" /* glr.c:816 */
3223 psi_plist_free((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3225 #line 3226 "src/parser_proc.c" /* glr.c:816 */
3229 #line 988 "src/parser_proc_grammar.y" /* glr.c:816 */
3231 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add(psi_plist_init((psi_plist_dtor
) psi_decl_var_free
), &(*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3233 #line 3234 "src/parser_proc.c" /* glr.c:816 */
3237 #line 991 "src/parser_proc_grammar.y" /* glr.c:816 */
3239 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)), &(*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3241 #line 3242 "src/parser_proc.c" /* glr.c:816 */
3245 #line 998 "src/parser_proc_grammar.y" /* glr.c:816 */
3247 (*(struct psi_decl
**)(&(*yyvalp
))) = (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3248 (*(struct psi_decl
**)(&(*yyvalp
)))->abi
= psi_decl_abi_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
);
3250 #line 3251 "src/parser_proc.c" /* glr.c:816 */
3254 #line 1010 "src/parser_proc_grammar.y" /* glr.c:816 */
3256 (*(struct psi_decl
**)(&(*yyvalp
))) = psi_decl_init((*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)), (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3257 if ((*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3258 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->pointer_level
+= 1;
3259 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->array_size
= (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3262 #line 3263 "src/parser_proc.c" /* glr.c:816 */
3266 #line 1017 "src/parser_proc_grammar.y" /* glr.c:816 */
3268 (*(struct psi_decl
**)(&(*yyvalp
))) = psi_decl_init((*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-6)].yystate
.yysemantics
.yysval
)), (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
3269 (*(struct psi_decl
**)(&(*yyvalp
)))->varargs
= 1;
3270 if ((*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3271 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->pointer_level
+= 1;
3272 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->array_size
= (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3275 #line 3276 "src/parser_proc.c" /* glr.c:816 */
3279 #line 1028 "src/parser_proc_grammar.y" /* glr.c:816 */
3281 (*(struct psi_decl
**)(&(*yyvalp
))) = psi_decl_init((*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)), (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3282 if ((*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3283 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->pointer_level
+= 1;
3284 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->array_size
= (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3287 #line 3288 "src/parser_proc.c" /* glr.c:816 */
3291 #line 1035 "src/parser_proc_grammar.y" /* glr.c:816 */
3293 (*(struct psi_decl
**)(&(*yyvalp
))) = psi_decl_init((*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-6)].yystate
.yysemantics
.yysval
)), (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
3294 (*(struct psi_decl
**)(&(*yyvalp
)))->varargs
= 1;
3295 if ((*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3296 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->pointer_level
+= 1;
3297 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->array_size
= (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3300 #line 3301 "src/parser_proc.c" /* glr.c:816 */
3304 #line 1046 "src/parser_proc_grammar.y" /* glr.c:816 */
3306 (void) (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3307 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3308 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init((*(struct psi_decl_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)), psi_decl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
, (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)), 0));
3309 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3310 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3312 #line 3313 "src/parser_proc.c" /* glr.c:816 */
3316 #line 1053 "src/parser_proc_grammar.y" /* glr.c:816 */
3318 (void) (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3319 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3320 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3321 psi_decl_type_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
))->text
),
3322 psi_decl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
, (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)), 0)
3324 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
3325 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3326 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3328 #line 3329 "src/parser_proc.c" /* glr.c:816 */
3332 #line 1064 "src/parser_proc_grammar.y" /* glr.c:816 */
3334 (void) (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3335 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3336 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3337 psi_decl_type_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
))->text
),
3338 psi_decl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
, (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)), 0)
3340 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
3341 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3342 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3344 #line 3345 "src/parser_proc.c" /* glr.c:816 */
3348 #line 1075 "src/parser_proc_grammar.y" /* glr.c:816 */
3350 (void) (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3351 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3352 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3353 psi_decl_type_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
))->text
),
3354 psi_decl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
, 0, 0)
3356 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
3357 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3358 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3360 #line 3361 "src/parser_proc.c" /* glr.c:816 */
3364 #line 1090 "src/parser_proc_grammar.y" /* glr.c:816 */
3366 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3367 psi_decl_type_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
),
3368 psi_decl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, 0, 0)
3370 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3371 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3372 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3374 #line 3375 "src/parser_proc.c" /* glr.c:816 */
3378 #line 1102 "src/parser_proc_grammar.y" /* glr.c:816 */
3380 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
3382 #line 3383 "src/parser_proc.c" /* glr.c:816 */
3386 #line 1105 "src/parser_proc_grammar.y" /* glr.c:816 */
3388 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
3390 #line 3391 "src/parser_proc.c" /* glr.c:816 */
3394 #line 1108 "src/parser_proc_grammar.y" /* glr.c:816 */
3396 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add(psi_plist_init((psi_plist_dtor
) psi_decl_arg_free
), &(*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3398 #line 3399 "src/parser_proc.c" /* glr.c:816 */
3402 #line 1111 "src/parser_proc_grammar.y" /* glr.c:816 */
3404 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)), &(*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3406 #line 3407 "src/parser_proc.c" /* glr.c:816 */
3410 #line 1118 "src/parser_proc_grammar.y" /* glr.c:816 */
3412 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3414 #line 3415 "src/parser_proc.c" /* glr.c:816 */
3418 #line 1121 "src/parser_proc_grammar.y" /* glr.c:816 */
3420 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3421 (*(struct psi_decl_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)),
3422 psi_decl_var_init(NULL
, (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), 0)
3425 #line 3426 "src/parser_proc.c" /* glr.c:816 */
3429 #line 1127 "src/parser_proc_grammar.y" /* glr.c:816 */
3431 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3432 psi_decl_type_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
),
3433 psi_decl_var_init(NULL
, (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), 0)
3435 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3436 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3437 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3439 #line 3440 "src/parser_proc.c" /* glr.c:816 */
3443 #line 1136 "src/parser_proc_grammar.y" /* glr.c:816 */
3445 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3446 psi_decl_type_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
),
3447 psi_decl_var_init(NULL
, (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), 0)
3449 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3450 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3451 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3453 #line 3454 "src/parser_proc.c" /* glr.c:816 */
3457 #line 1148 "src/parser_proc_grammar.y" /* glr.c:816 */
3459 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3460 psi_decl_type_init(PSI_T_FUNCTION
, (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->var
->name
),
3461 psi_decl_var_copy((*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->var
)
3463 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->token
);
3464 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.func
= (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3466 #line 3467 "src/parser_proc.c" /* glr.c:816 */
3470 #line 1156 "src/parser_proc_grammar.y" /* glr.c:816 */
3472 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init((*(struct psi_decl_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3474 #line 3475 "src/parser_proc.c" /* glr.c:816 */
3478 #line 1159 "src/parser_proc_grammar.y" /* glr.c:816 */
3480 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3481 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3482 psi_decl_type_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->text
),
3483 psi_decl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), 0)
3485 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3486 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3487 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3489 #line 3490 "src/parser_proc.c" /* glr.c:816 */
3493 #line 1169 "src/parser_proc_grammar.y" /* glr.c:816 */
3495 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3496 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3497 psi_decl_type_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->text
),
3498 psi_decl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), 0)
3500 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3501 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3502 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3504 #line 3505 "src/parser_proc.c" /* glr.c:816 */
3508 #line 1182 "src/parser_proc_grammar.y" /* glr.c:816 */
3510 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3511 (*(struct psi_decl_var
**)(&(*yyvalp
))) = psi_decl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
, (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)) + !! (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3512 (*(struct psi_decl_var
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3514 #line 3515 "src/parser_proc.c" /* glr.c:816 */
3518 #line 1187 "src/parser_proc_grammar.y" /* glr.c:816 */
3520 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3521 (*(struct psi_decl_var
**)(&(*yyvalp
))) = psi_decl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
, !! (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3522 (*(struct psi_decl_var
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3524 #line 3525 "src/parser_proc.c" /* glr.c:816 */
3528 #line 1195 "src/parser_proc_grammar.y" /* glr.c:816 */
3530 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3531 (*(struct psi_decl_union
**)(&(*yyvalp
))) = psi_decl_union_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->text
, (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3532 (*(struct psi_decl_union
**)(&(*yyvalp
)))->align
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)).pos
;
3533 (*(struct psi_decl_union
**)(&(*yyvalp
)))->size
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)).len
;
3534 (*(struct psi_decl_union
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3536 #line 3537 "src/parser_proc.c" /* glr.c:816 */
3540 #line 1205 "src/parser_proc_grammar.y" /* glr.c:816 */
3542 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3543 (*(struct psi_decl_struct
**)(&(*yyvalp
))) = psi_decl_struct_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->text
, (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3544 (*(struct psi_decl_struct
**)(&(*yyvalp
)))->align
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)).pos
;
3545 (*(struct psi_decl_struct
**)(&(*yyvalp
)))->size
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)).len
;
3546 (*(struct psi_decl_struct
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3548 #line 3549 "src/parser_proc.c" /* glr.c:816 */
3552 #line 1215 "src/parser_proc_grammar.y" /* glr.c:816 */
3554 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
3556 #line 3557 "src/parser_proc.c" /* glr.c:816 */
3560 #line 1222 "src/parser_proc_grammar.y" /* glr.c:816 */
3562 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
3564 #line 3565 "src/parser_proc.c" /* glr.c:816 */
3568 #line 1228 "src/parser_proc_grammar.y" /* glr.c:816 */
3570 (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->layout
= (*(struct psi_layout
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3571 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add(psi_plist_init((psi_plist_dtor
) psi_decl_arg_free
), &(*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
3572 if ((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))) {
3574 struct psi_decl_arg
*arg
;
3576 while (psi_plist_get((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), i
++, &arg
)) {
3577 arg
->type
= psi_decl_type_copy((*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->type
);
3578 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add((*(struct psi_plist
**)(&(*yyvalp
))), &arg
);
3580 free((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3583 #line 3584 "src/parser_proc.c" /* glr.c:816 */
3587 #line 1242 "src/parser_proc_grammar.y" /* glr.c:816 */
3589 (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->layout
= (*(struct psi_layout
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3590 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)), &(*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
3591 if ((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))) {
3593 struct psi_decl_arg
*arg
;
3595 while (psi_plist_get((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), i
++, &arg
)) {
3596 arg
->type
= psi_decl_type_copy((*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->type
);
3597 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add((*(struct psi_plist
**)(&(*yyvalp
))), &arg
);
3599 free((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3602 #line 3603 "src/parser_proc.c" /* glr.c:816 */
3606 #line 1259 "src/parser_proc_grammar.y" /* glr.c:816 */
3608 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
3610 #line 3611 "src/parser_proc.c" /* glr.c:816 */
3614 #line 1262 "src/parser_proc_grammar.y" /* glr.c:816 */
3616 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3618 #line 3619 "src/parser_proc.c" /* glr.c:816 */
3622 #line 1268 "src/parser_proc_grammar.y" /* glr.c:816 */
3625 struct psi_decl_arg
*arg
= psi_decl_arg_init(NULL
, (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3626 arg
->layout
= (*(struct psi_layout
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3627 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add(psi_plist_init((psi_plist_dtor
) psi_decl_arg_free
), &arg
);
3630 #line 3631 "src/parser_proc.c" /* glr.c:816 */
3634 #line 1275 "src/parser_proc_grammar.y" /* glr.c:816 */
3637 struct psi_decl_arg
*arg
= psi_decl_arg_init(NULL
, (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3638 arg
->layout
= (*(struct psi_layout
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3639 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)), &arg
);
3642 #line 3643 "src/parser_proc.c" /* glr.c:816 */
3646 #line 1285 "src/parser_proc_grammar.y" /* glr.c:816 */
3648 (*(struct psi_decl_enum
**)(&(*yyvalp
))) = psi_decl_enum_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->text
, (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3649 (*(struct psi_decl_enum
**)(&(*yyvalp
)))->token
= (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
));
3651 #line 3652 "src/parser_proc.c" /* glr.c:816 */
3655 #line 1292 "src/parser_proc_grammar.y" /* glr.c:816 */
3657 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add(psi_plist_init((psi_plist_dtor
) psi_decl_enum_item_free
), &(*(struct psi_decl_enum_item
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3659 #line 3660 "src/parser_proc.c" /* glr.c:816 */
3663 #line 1295 "src/parser_proc_grammar.y" /* glr.c:816 */
3665 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)), &(*(struct psi_decl_enum_item
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3667 #line 3668 "src/parser_proc.c" /* glr.c:816 */
3671 #line 1301 "src/parser_proc_grammar.y" /* glr.c:816 */
3673 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3674 (*(struct psi_decl_enum_item
**)(&(*yyvalp
))) = psi_decl_enum_item_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, NULL
);
3675 (*(struct psi_decl_enum_item
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3677 #line 3678 "src/parser_proc.c" /* glr.c:816 */
3681 #line 1306 "src/parser_proc_grammar.y" /* glr.c:816 */
3683 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3684 (*(struct psi_decl_enum_item
**)(&(*yyvalp
))) = psi_decl_enum_item_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->text
, (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3685 (*(struct psi_decl_enum_item
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3687 #line 3688 "src/parser_proc.c" /* glr.c:816 */
3691 #line 1314 "src/parser_proc_grammar.y" /* glr.c:816 */
3693 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num((*(struct psi_number
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3694 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_number
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->token
);
3696 #line 3697 "src/parser_proc.c" /* glr.c:816 */
3700 #line 1318 "src/parser_proc_grammar.y" /* glr.c:816 */
3702 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_cast((*(struct psi_decl_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)), (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3703 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_decl_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->token
);
3705 #line 3706 "src/parser_proc.c" /* glr.c:816 */
3709 #line 1322 "src/parser_proc_grammar.y" /* glr.c:816 */
3711 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_unary(PSI_T_LPAREN
, (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3712 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3714 #line 3715 "src/parser_proc.c" /* glr.c:816 */
3718 #line 1326 "src/parser_proc_grammar.y" /* glr.c:816 */
3720 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_binary((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)), (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3721 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3723 #line 3724 "src/parser_proc.c" /* glr.c:816 */
3727 #line 1330 "src/parser_proc_grammar.y" /* glr.c:816 */
3729 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_unary((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3730 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3732 #line 3733 "src/parser_proc.c" /* glr.c:816 */
3736 #line 1334 "src/parser_proc_grammar.y" /* glr.c:816 */
3738 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_ternary((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)), (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)), (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3739 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
3741 #line 3742 "src/parser_proc.c" /* glr.c:816 */
3745 #line 1341 "src/parser_proc_grammar.y" /* glr.c:816 */
3747 (*(struct psi_number
**)(&(*yyvalp
))) = psi_number_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->flags
);
3748 (*(struct psi_number
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3750 #line 3751 "src/parser_proc.c" /* glr.c:816 */
3754 #line 1345 "src/parser_proc_grammar.y" /* glr.c:816 */
3756 (*(struct psi_number
**)(&(*yyvalp
))) = psi_number_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, 0);
3757 (*(struct psi_number
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3759 #line 3760 "src/parser_proc.c" /* glr.c:816 */
3763 #line 1349 "src/parser_proc_grammar.y" /* glr.c:816 */
3765 (*(struct psi_number
**)(&(*yyvalp
))) = psi_number_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, 0);
3766 (*(struct psi_number
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3768 #line 3769 "src/parser_proc.c" /* glr.c:816 */
3772 #line 1353 "src/parser_proc_grammar.y" /* glr.c:816 */
3774 (*(struct psi_number
**)(&(*yyvalp
))) = psi_number_init(PSI_T_NAME
, (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), 0);
3775 (*(struct psi_number
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->token
);
3777 #line 3778 "src/parser_proc.c" /* glr.c:816 */
3781 #line 1360 "src/parser_proc_grammar.y" /* glr.c:816 */
3783 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3784 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3788 psi_token_hash((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), digest
);
3789 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_append("@", psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))), 1, digest
);
3792 #line 3793 "src/parser_proc.c" /* glr.c:816 */
3796 #line 1373 "src/parser_proc_grammar.y" /* glr.c:816 */
3798 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3799 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3803 psi_token_hash((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), digest
);
3804 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_append("@", psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))), 1, digest
);
3807 #line 3808 "src/parser_proc.c" /* glr.c:816 */
3811 #line 1386 "src/parser_proc_grammar.y" /* glr.c:816 */
3813 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3814 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3818 psi_token_hash((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), digest
);
3819 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_append("@", psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))), 1, digest
);
3822 #line 3823 "src/parser_proc.c" /* glr.c:816 */
3826 #line 1399 "src/parser_proc_grammar.y" /* glr.c:816 */
3828 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
3830 #line 3831 "src/parser_proc.c" /* glr.c:816 */
3834 #line 1402 "src/parser_proc_grammar.y" /* glr.c:816 */
3836 (*(struct psi_token
**)(&(*yyvalp
))) = (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3837 (*(struct psi_token
**)(&(*yyvalp
)))->type
= PSI_T_NAME
;
3839 #line 3840 "src/parser_proc.c" /* glr.c:816 */
3843 #line 1409 "src/parser_proc_grammar.y" /* glr.c:816 */
3845 (*(struct psi_layout
**)(&(*yyvalp
))) = NULL
;
3847 #line 3848 "src/parser_proc.c" /* glr.c:816 */
3851 #line 1412 "src/parser_proc_grammar.y" /* glr.c:816 */
3853 (*(struct psi_layout
**)(&(*yyvalp
))) = psi_layout_init(0, 0, psi_layout_init(0, atol((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
), NULL
));
3855 #line 3856 "src/parser_proc.c" /* glr.c:816 */
3859 #line 1415 "src/parser_proc_grammar.y" /* glr.c:816 */
3861 (*(struct psi_layout
**)(&(*yyvalp
))) = psi_layout_init(atol((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->text
), atol((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
), NULL
);
3863 #line 3864 "src/parser_proc.c" /* glr.c:816 */
3867 #line 1418 "src/parser_proc_grammar.y" /* glr.c:816 */
3869 (*(struct psi_layout
**)(&(*yyvalp
))) = psi_layout_init(atol((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->text
), atol((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
), psi_layout_init(0, atol((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-7)].yystate
.yysemantics
.yysval
))->text
), NULL
));
3871 #line 3872 "src/parser_proc.c" /* glr.c:816 */
3875 #line 1424 "src/parser_proc_grammar.y" /* glr.c:816 */
3877 (*(struct psi_layout
*)(&(*yyvalp
))).pos
= 0;
3878 (*(struct psi_layout
*)(&(*yyvalp
))).len
= 0;
3880 #line 3881 "src/parser_proc.c" /* glr.c:816 */
3884 #line 1428 "src/parser_proc_grammar.y" /* glr.c:816 */
3886 (*(struct psi_layout
*)(&(*yyvalp
))).pos
= atol((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->text
);
3887 (*(struct psi_layout
*)(&(*yyvalp
))).len
= atol((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
);
3889 #line 3890 "src/parser_proc.c" /* glr.c:816 */
3893 #line 1435 "src/parser_proc_grammar.y" /* glr.c:816 */
3895 (*(size_t*)(&(*yyvalp
))) = 0;
3897 #line 3898 "src/parser_proc.c" /* glr.c:816 */
3901 #line 1438 "src/parser_proc_grammar.y" /* glr.c:816 */
3903 (*(size_t*)(&(*yyvalp
))) = atol((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
);
3905 #line 3906 "src/parser_proc.c" /* glr.c:816 */
3909 #line 1444 "src/parser_proc_grammar.y" /* glr.c:816 */
3911 (*(size_t*)(&(*yyvalp
))) = 0;
3913 #line 3914 "src/parser_proc.c" /* glr.c:816 */
3917 #line 1447 "src/parser_proc_grammar.y" /* glr.c:816 */
3919 (*(size_t*)(&(*yyvalp
))) = (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3921 #line 3922 "src/parser_proc.c" /* glr.c:816 */
3925 #line 1454 "src/parser_proc_grammar.y" /* glr.c:816 */
3927 (*(size_t*)(&(*yyvalp
))) = (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
3929 #line 3930 "src/parser_proc.c" /* glr.c:816 */
3933 #line 1460 "src/parser_proc_grammar.y" /* glr.c:816 */
3935 (*(size_t*)(&(*yyvalp
))) = 1;
3937 #line 3938 "src/parser_proc.c" /* glr.c:816 */
3941 #line 1463 "src/parser_proc_grammar.y" /* glr.c:816 */
3943 (*(size_t*)(&(*yyvalp
))) = (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)) + 1;
3945 #line 3946 "src/parser_proc.c" /* glr.c:816 */
3949 #line 1475 "src/parser_proc_grammar.y" /* glr.c:816 */
3951 (*(struct psi_impl
**)(&(*yyvalp
))) = psi_impl_init((*(struct psi_impl_func
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)), (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3953 #line 3954 "src/parser_proc.c" /* glr.c:816 */
3957 #line 1478 "src/parser_proc_grammar.y" /* glr.c:816 */
3959 (*(struct psi_impl
**)(&(*yyvalp
))) = psi_impl_init((*(struct psi_impl_func
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)), (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3960 (*(struct psi_impl_func
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->static_memory
= 1;
3962 #line 3963 "src/parser_proc.c" /* glr.c:816 */
3966 #line 1485 "src/parser_proc_grammar.y" /* glr.c:816 */
3968 (*(struct psi_impl_func
**)(&(*yyvalp
))) = psi_impl_func_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
))->text
, NULL
, (*(struct psi_impl_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3969 (*(struct psi_impl_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
3970 (*(struct psi_impl_func
**)(&(*yyvalp
)))->return_reference
= (*(bool*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
));
3972 #line 3973 "src/parser_proc.c" /* glr.c:816 */
3976 #line 1490 "src/parser_proc_grammar.y" /* glr.c:816 */
3978 (*(struct psi_impl_func
**)(&(*yyvalp
))) = psi_impl_func_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
))->text
, (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)), (*(struct psi_impl_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3979 (*(struct psi_impl_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
3980 (*(struct psi_impl_func
**)(&(*yyvalp
)))->return_reference
= (*(bool*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-6)].yystate
.yysemantics
.yysval
));
3982 #line 3983 "src/parser_proc.c" /* glr.c:816 */
3986 #line 1495 "src/parser_proc_grammar.y" /* glr.c:816 */
3988 (*(struct psi_impl_func
**)(&(*yyvalp
))) = psi_impl_func_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-10)].yystate
.yysemantics
.yysval
))->text
, (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-8)].yystate
.yysemantics
.yysval
)), (*(struct psi_impl_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3989 (*(struct psi_impl_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-10)].yystate
.yysemantics
.yysval
)));
3990 (*(struct psi_impl_func
**)(&(*yyvalp
)))->return_reference
= (*(bool*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-11)].yystate
.yysemantics
.yysval
));
3991 (*(struct psi_impl_func
**)(&(*yyvalp
)))->vararg
= psi_impl_arg_init((*(struct psi_impl_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-6)].yystate
.yysemantics
.yysval
)), psi_impl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->text
, (*(bool*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
))), NULL
);
3992 (*(struct psi_impl_func
**)(&(*yyvalp
)))->vararg
->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
3994 #line 3995 "src/parser_proc.c" /* glr.c:816 */
3998 #line 1505 "src/parser_proc_grammar.y" /* glr.c:816 */
4000 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add(psi_plist_init((psi_plist_dtor
) psi_impl_arg_free
), &(*(struct psi_impl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4002 #line 4003 "src/parser_proc.c" /* glr.c:816 */
4006 #line 1508 "src/parser_proc_grammar.y" /* glr.c:816 */
4008 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)), &(*(struct psi_impl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4010 #line 4011 "src/parser_proc.c" /* glr.c:816 */
4014 #line 1514 "src/parser_proc_grammar.y" /* glr.c:816 */
4016 (*(struct psi_impl_arg
**)(&(*yyvalp
))) = psi_impl_arg_init((*(struct psi_impl_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), (*(struct psi_impl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), NULL
);
4018 #line 4019 "src/parser_proc.c" /* glr.c:816 */
4022 #line 1517 "src/parser_proc_grammar.y" /* glr.c:816 */
4024 (*(struct psi_impl_arg
**)(&(*yyvalp
))) = psi_impl_arg_init((*(struct psi_impl_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)), (*(struct psi_impl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)), (*(struct psi_impl_def_val
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4026 #line 4027 "src/parser_proc.c" /* glr.c:816 */
4030 #line 1523 "src/parser_proc_grammar.y" /* glr.c:816 */
4032 (*(struct psi_impl_var
**)(&(*yyvalp
))) = psi_impl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, (*(bool*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
4033 (*(struct psi_impl_var
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4035 #line 4036 "src/parser_proc.c" /* glr.c:816 */
4039 #line 1530 "src/parser_proc_grammar.y" /* glr.c:816 */
4041 (*(struct psi_impl_type
**)(&(*yyvalp
))) = psi_impl_type_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
);
4042 (*(struct psi_impl_type
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4044 #line 4045 "src/parser_proc.c" /* glr.c:816 */
4048 #line 1549 "src/parser_proc_grammar.y" /* glr.c:816 */
4050 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add(psi_plist_init((psi_plist_dtor
) psi_impl_stmt_free
), &(*(struct psi_token
***)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4052 #line 4053 "src/parser_proc.c" /* glr.c:816 */
4056 #line 1552 "src/parser_proc_grammar.y" /* glr.c:816 */
4058 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), &(*(struct psi_token
***)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4060 #line 4061 "src/parser_proc.c" /* glr.c:816 */
4064 #line 1558 "src/parser_proc_grammar.y" /* glr.c:816 */
4066 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_return_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4068 #line 4069 "src/parser_proc.c" /* glr.c:816 */
4072 #line 1561 "src/parser_proc_grammar.y" /* glr.c:816 */
4074 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_let_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4076 #line 4077 "src/parser_proc.c" /* glr.c:816 */
4080 #line 1564 "src/parser_proc_grammar.y" /* glr.c:816 */
4082 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_set_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4084 #line 4085 "src/parser_proc.c" /* glr.c:816 */
4088 #line 1567 "src/parser_proc_grammar.y" /* glr.c:816 */
4090 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_assert_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4092 #line 4093 "src/parser_proc.c" /* glr.c:816 */
4096 #line 1570 "src/parser_proc_grammar.y" /* glr.c:816 */
4098 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_free_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4100 #line 4101 "src/parser_proc.c" /* glr.c:816 */
4104 #line 1576 "src/parser_proc_grammar.y" /* glr.c:816 */
4106 (*(struct psi_let_stmt
**)(&(*yyvalp
))) = psi_let_stmt_init((*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
4107 (*(struct psi_let_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
4109 #line 4110 "src/parser_proc.c" /* glr.c:816 */
4113 #line 1580 "src/parser_proc_grammar.y" /* glr.c:816 */
4115 (*(struct psi_let_stmt
**)(&(*yyvalp
))) = psi_let_stmt_init(psi_let_exp_init_ex((*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)), PSI_LET_TMP
, (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))));
4116 (*(struct psi_let_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
4117 (*(struct psi_let_stmt
**)(&(*yyvalp
)))->exp
->is_reference
= (*(bool*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
4119 #line 4120 "src/parser_proc.c" /* glr.c:816 */
4123 #line 1589 "src/parser_proc_grammar.y" /* glr.c:816 */
4125 (*(struct psi_let_exp
**)(&(*yyvalp
))) = (*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4126 (*(struct psi_let_exp
**)(&(*yyvalp
)))->is_reference
= true;
4128 #line 4129 "src/parser_proc.c" /* glr.c:816 */
4132 #line 1593 "src/parser_proc_grammar.y" /* glr.c:816 */
4134 (*(struct psi_let_exp
**)(&(*yyvalp
))) = (*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4135 (*(struct psi_let_exp
**)(&(*yyvalp
)))->is_reference
= false;
4137 #line 4138 "src/parser_proc.c" /* glr.c:816 */
4141 #line 1600 "src/parser_proc_grammar.y" /* glr.c:816 */
4143 (*(struct psi_let_exp
**)(&(*yyvalp
))) = psi_let_exp_init(PSI_LET_NULL
, NULL
);
4145 #line 4146 "src/parser_proc.c" /* glr.c:816 */
4149 #line 1603 "src/parser_proc_grammar.y" /* glr.c:816 */
4151 (*(struct psi_let_exp
**)(&(*yyvalp
))) = psi_let_exp_init(PSI_LET_CALLOC
, (*(struct psi_let_calloc
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4153 #line 4154 "src/parser_proc.c" /* glr.c:816 */
4157 #line 1606 "src/parser_proc_grammar.y" /* glr.c:816 */
4159 (*(struct psi_let_exp
**)(&(*yyvalp
))) = psi_let_exp_init(PSI_LET_CALLBACK
, (*(struct psi_let_callback
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4161 #line 4162 "src/parser_proc.c" /* glr.c:816 */
4165 #line 1609 "src/parser_proc_grammar.y" /* glr.c:816 */
4167 (*(struct psi_let_exp
**)(&(*yyvalp
))) = psi_let_exp_init_ex(NULL
, PSI_LET_FUNC
, (*(struct psi_let_func
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4169 #line 4170 "src/parser_proc.c" /* glr.c:816 */
4173 #line 1612 "src/parser_proc_grammar.y" /* glr.c:816 */
4175 (*(struct psi_let_exp
**)(&(*yyvalp
))) = psi_let_exp_init_ex(NULL
, PSI_LET_NUMEXP
, (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4177 #line 4178 "src/parser_proc.c" /* glr.c:816 */
4181 #line 1618 "src/parser_proc_grammar.y" /* glr.c:816 */
4183 (*(struct psi_let_exp
**)(&(*yyvalp
))) = (*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4184 (*(struct psi_let_exp
**)(&(*yyvalp
)))->var
= (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
4186 #line 4187 "src/parser_proc.c" /* glr.c:816 */
4190 #line 1622 "src/parser_proc_grammar.y" /* glr.c:816 */
4192 (*(struct psi_let_exp
**)(&(*yyvalp
))) = (*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4193 (*(struct psi_let_exp
**)(&(*yyvalp
)))->is_reference
= 1;
4194 (*(struct psi_let_exp
**)(&(*yyvalp
)))->var
= (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
));
4196 #line 4197 "src/parser_proc.c" /* glr.c:816 */
4200 #line 1630 "src/parser_proc_grammar.y" /* glr.c:816 */
4202 (*(struct psi_let_calloc
**)(&(*yyvalp
))) = psi_let_calloc_init((*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)), (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
4203 (*(struct psi_let_calloc
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
4205 #line 4206 "src/parser_proc.c" /* glr.c:816 */
4209 #line 1637 "src/parser_proc_grammar.y" /* glr.c:816 */
4211 (*(struct psi_let_callback
**)(&(*yyvalp
))) = psi_let_callback_init(psi_let_func_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-6)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-6)].yystate
.yysemantics
.yysval
))->text
, (*(struct psi_impl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
))), (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
4212 (*(struct psi_let_callback
**)(&(*yyvalp
)))->func
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-6)].yystate
.yysemantics
.yysval
)));
4213 (*(struct psi_let_callback
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-7)].yystate
.yysemantics
.yysval
)));
4215 #line 4216 "src/parser_proc.c" /* glr.c:816 */
4219 #line 1645 "src/parser_proc_grammar.y" /* glr.c:816 */
4221 (*(struct psi_let_func
**)(&(*yyvalp
))) = psi_let_func_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
))->text
, (*(struct psi_impl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
4222 (*(struct psi_let_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
4223 (*(struct psi_let_func
**)(&(*yyvalp
)))->inner
= (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
4225 #line 4226 "src/parser_proc.c" /* glr.c:816 */
4229 #line 1666 "src/parser_proc_grammar.y" /* glr.c:816 */
4231 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
4233 #line 4234 "src/parser_proc.c" /* glr.c:816 */
4237 #line 1669 "src/parser_proc_grammar.y" /* glr.c:816 */
4239 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4241 #line 4242 "src/parser_proc.c" /* glr.c:816 */
4245 #line 1675 "src/parser_proc_grammar.y" /* glr.c:816 */
4247 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add(psi_plist_init((psi_plist_dtor
) psi_let_exp_free
), &(*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4249 #line 4250 "src/parser_proc.c" /* glr.c:816 */
4253 #line 1678 "src/parser_proc_grammar.y" /* glr.c:816 */
4255 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)), &(*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4257 #line 4258 "src/parser_proc.c" /* glr.c:816 */
4261 #line 1689 "src/parser_proc_grammar.y" /* glr.c:816 */
4263 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
4265 #line 4266 "src/parser_proc.c" /* glr.c:816 */
4269 #line 1692 "src/parser_proc_grammar.y" /* glr.c:816 */
4271 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4273 #line 4274 "src/parser_proc.c" /* glr.c:816 */
4277 #line 1698 "src/parser_proc_grammar.y" /* glr.c:816 */
4279 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add(psi_plist_init((psi_plist_dtor
) psi_set_exp_free
), &(*(struct psi_set_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4281 #line 4282 "src/parser_proc.c" /* glr.c:816 */
4285 #line 1701 "src/parser_proc_grammar.y" /* glr.c:816 */
4287 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)), &(*(struct psi_set_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4289 #line 4290 "src/parser_proc.c" /* glr.c:816 */
4293 #line 1707 "src/parser_proc_grammar.y" /* glr.c:816 */
4295 (*(struct psi_return_stmt
**)(&(*yyvalp
))) = psi_return_stmt_init(psi_set_exp_init(PSI_SET_FUNC
, (*(struct psi_set_func
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))));
4296 (*(struct psi_return_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
4298 #line 4299 "src/parser_proc.c" /* glr.c:816 */
4302 #line 1714 "src/parser_proc_grammar.y" /* glr.c:816 */
4304 (*(struct psi_set_stmt
**)(&(*yyvalp
))) = psi_set_stmt_init((*(struct psi_set_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
4305 (*(struct psi_set_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
4307 #line 4308 "src/parser_proc.c" /* glr.c:816 */
4311 #line 1721 "src/parser_proc_grammar.y" /* glr.c:816 */
4313 (*(struct psi_set_exp
**)(&(*yyvalp
))) = psi_set_exp_init(PSI_SET_FUNC
, (*(struct psi_set_func
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4315 #line 4316 "src/parser_proc.c" /* glr.c:816 */
4319 #line 1724 "src/parser_proc_grammar.y" /* glr.c:816 */
4321 (*(struct psi_set_exp
**)(&(*yyvalp
))) = psi_set_exp_init(PSI_SET_NUMEXP
, (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4323 #line 4324 "src/parser_proc.c" /* glr.c:816 */
4327 #line 1727 "src/parser_proc_grammar.y" /* glr.c:816 */
4329 (*(struct psi_set_exp
**)(&(*yyvalp
))) = (*(struct psi_set_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4330 (*(struct psi_set_exp
**)(&(*yyvalp
)))->var
= (*(struct psi_impl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
4332 #line 4333 "src/parser_proc.c" /* glr.c:816 */
4336 #line 1734 "src/parser_proc_grammar.y" /* glr.c:816 */
4338 (*(struct psi_set_func
**)(&(*yyvalp
))) = psi_set_func_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
))->text
, (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
4339 (*(struct psi_set_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
4340 (*(struct psi_set_func
**)(&(*yyvalp
)))->inner
= (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
4342 #line 4343 "src/parser_proc.c" /* glr.c:816 */
4346 #line 1739 "src/parser_proc_grammar.y" /* glr.c:816 */
4348 (*(struct psi_set_func
**)(&(*yyvalp
))) = psi_set_func_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
))->text
, (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
4349 (*(struct psi_set_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
4350 (*(struct psi_set_func
**)(&(*yyvalp
)))->recursive
= 1;
4352 #line 4353 "src/parser_proc.c" /* glr.c:816 */
4356 #line 1758 "src/parser_proc_grammar.y" /* glr.c:816 */
4358 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
4360 #line 4361 "src/parser_proc.c" /* glr.c:816 */
4364 #line 1761 "src/parser_proc_grammar.y" /* glr.c:816 */
4366 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4368 #line 4369 "src/parser_proc.c" /* glr.c:816 */
4372 #line 1767 "src/parser_proc_grammar.y" /* glr.c:816 */
4374 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add(psi_plist_init((psi_plist_dtor
) psi_set_exp_free
), &(*(struct psi_set_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4376 #line 4377 "src/parser_proc.c" /* glr.c:816 */
4380 #line 1770 "src/parser_proc_grammar.y" /* glr.c:816 */
4382 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)), &(*(struct psi_set_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4384 #line 4385 "src/parser_proc.c" /* glr.c:816 */
4388 #line 1776 "src/parser_proc_grammar.y" /* glr.c:816 */
4390 (*(struct psi_assert_stmt
**)(&(*yyvalp
))) = psi_assert_stmt_init((enum psi_assert_kind
) (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
4391 (*(struct psi_assert_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
4393 #line 4394 "src/parser_proc.c" /* glr.c:816 */
4397 #line 1788 "src/parser_proc_grammar.y" /* glr.c:816 */
4399 (*(struct psi_free_stmt
**)(&(*yyvalp
))) = psi_free_stmt_init((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
4400 (*(struct psi_free_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
4402 #line 4403 "src/parser_proc.c" /* glr.c:816 */
4406 #line 1795 "src/parser_proc_grammar.y" /* glr.c:816 */
4408 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add(psi_plist_init((psi_plist_dtor
) psi_free_exp_free
), &(*(struct psi_free_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4410 #line 4411 "src/parser_proc.c" /* glr.c:816 */
4414 #line 1798 "src/parser_proc_grammar.y" /* glr.c:816 */
4416 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)), &(*(struct psi_free_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4418 #line 4419 "src/parser_proc.c" /* glr.c:816 */
4422 #line 1804 "src/parser_proc_grammar.y" /* glr.c:816 */
4424 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
4425 (*(struct psi_free_exp
**)(&(*yyvalp
))) = psi_free_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->text
, (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
4426 (*(struct psi_free_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
4428 #line 4429 "src/parser_proc.c" /* glr.c:816 */
4432 #line 1812 "src/parser_proc_grammar.y" /* glr.c:816 */
4434 (*(bool*)(&(*yyvalp
))) = false;
4436 #line 4437 "src/parser_proc.c" /* glr.c:816 */
4440 #line 1815 "src/parser_proc_grammar.y" /* glr.c:816 */
4442 (*(bool*)(&(*yyvalp
))) = true;
4444 #line 4445 "src/parser_proc.c" /* glr.c:816 */
4448 #line 4449 "src/parser_proc.c" /* glr.c:816 */
4459 # undef YYRECOVERING
4464 yyuserMerge (int yyn
, YYSTYPE
* yy0
, YYSTYPE
* yy1
)
4476 /* Bison grammar-table manipulation. */
4478 /*-----------------------------------------------.
4479 | Release the memory associated to this symbol. |
4480 `-----------------------------------------------*/
4483 yydestruct (const char *yymsg
, int yytype
, YYSTYPE
*yyvaluep
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
4491 YY_SYMBOL_PRINT (yymsg
, yytype
, yyvaluep
, yylocationp
);
4493 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4496 case 133: /* binary_op_token */
4497 #line 277 "src/parser_proc_grammar.y" /* glr.c:846 */
4499 #line 4500 "src/parser_proc.c" /* glr.c:846 */
4502 case 134: /* unary_op_token */
4503 #line 277 "src/parser_proc_grammar.y" /* glr.c:846 */
4505 #line 4506 "src/parser_proc.c" /* glr.c:846 */
4508 case 135: /* name_token */
4509 #line 277 "src/parser_proc_grammar.y" /* glr.c:846 */
4511 #line 4512 "src/parser_proc.c" /* glr.c:846 */
4514 case 136: /* any_noeol_token */
4515 #line 277 "src/parser_proc_grammar.y" /* glr.c:846 */
4517 #line 4518 "src/parser_proc.c" /* glr.c:846 */
4521 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
4522 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4523 #line 4524 "src/parser_proc.c" /* glr.c:846 */
4527 #line 286 "src/parser_proc_grammar.y" /* glr.c:846 */
4528 {psi_cpp_exp_free(&(*(struct psi_cpp_exp
**)(&(*yyvaluep
))));}
4529 #line 4530 "src/parser_proc.c" /* glr.c:846 */
4532 case 142: /* cpp_exp */
4533 #line 286 "src/parser_proc_grammar.y" /* glr.c:846 */
4534 {psi_cpp_exp_free(&(*(struct psi_cpp_exp
**)(&(*yyvaluep
))));}
4535 #line 4536 "src/parser_proc.c" /* glr.c:846 */
4538 case 144: /* cpp_message_token */
4539 #line 274 "src/parser_proc_grammar.y" /* glr.c:846 */
4541 #line 4542 "src/parser_proc.c" /* glr.c:846 */
4544 case 145: /* cpp_include_token */
4545 #line 274 "src/parser_proc_grammar.y" /* glr.c:846 */
4547 #line 4548 "src/parser_proc.c" /* glr.c:846 */
4550 case 146: /* cpp_header_token */
4551 #line 274 "src/parser_proc_grammar.y" /* glr.c:846 */
4553 #line 4554 "src/parser_proc.c" /* glr.c:846 */
4556 case 147: /* cpp_no_arg_token */
4557 #line 274 "src/parser_proc_grammar.y" /* glr.c:846 */
4559 #line 4560 "src/parser_proc.c" /* glr.c:846 */
4562 case 148: /* cpp_name_arg_token */
4563 #line 274 "src/parser_proc_grammar.y" /* glr.c:846 */
4565 #line 4566 "src/parser_proc.c" /* glr.c:846 */
4568 case 149: /* cpp_exp_arg_token */
4569 #line 274 "src/parser_proc_grammar.y" /* glr.c:846 */
4571 #line 4572 "src/parser_proc.c" /* glr.c:846 */
4574 case 150: /* cpp_special_name_token */
4575 #line 274 "src/parser_proc_grammar.y" /* glr.c:846 */
4577 #line 4578 "src/parser_proc.c" /* glr.c:846 */
4580 case 151: /* cpp_macro_decl */
4581 #line 288 "src/parser_proc_grammar.y" /* glr.c:846 */
4582 {psi_cpp_macro_decl_free(&(*(struct psi_cpp_macro_decl
**)(&(*yyvaluep
))));}
4583 #line 4584 "src/parser_proc.c" /* glr.c:846 */
4586 case 152: /* cpp_macro_sig */
4587 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
4588 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4589 #line 4590 "src/parser_proc.c" /* glr.c:846 */
4592 case 153: /* cpp_macro_sig_args */
4593 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
4594 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4595 #line 4596 "src/parser_proc.c" /* glr.c:846 */
4598 case 154: /* cpp_macro_decl_tokens */
4599 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
4600 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4601 #line 4602 "src/parser_proc.c" /* glr.c:846 */
4604 case 155: /* cpp_macro_decl_token_list */
4605 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
4606 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4607 #line 4608 "src/parser_proc.c" /* glr.c:846 */
4610 case 156: /* cpp_macro_exp */
4611 #line 292 "src/parser_proc_grammar.y" /* glr.c:846 */
4612 {psi_num_exp_free(&(*(struct psi_num_exp
**)(&(*yyvaluep
))));}
4613 #line 4614 "src/parser_proc.c" /* glr.c:846 */
4616 case 157: /* cpp_macro_call_args */
4617 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
4618 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4619 #line 4620 "src/parser_proc.c" /* glr.c:846 */
4622 case 158: /* cpp_macro_call_arg_list */
4623 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
4624 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4625 #line 4626 "src/parser_proc.c" /* glr.c:846 */
4628 case 159: /* constant */
4629 #line 298 "src/parser_proc_grammar.y" /* glr.c:846 */
4630 {psi_const_free(&(*(struct psi_const
**)(&(*yyvaluep
))));}
4631 #line 4632 "src/parser_proc.c" /* glr.c:846 */
4634 case 160: /* constant_type */
4635 #line 300 "src/parser_proc_grammar.y" /* glr.c:846 */
4636 {psi_const_type_free(&(*(struct psi_const_type
**)(&(*yyvaluep
))));}
4637 #line 4638 "src/parser_proc.c" /* glr.c:846 */
4640 case 161: /* constant_type_token */
4641 #line 295 "src/parser_proc_grammar.y" /* glr.c:846 */
4643 #line 4644 "src/parser_proc.c" /* glr.c:846 */
4646 case 162: /* impl_def_val */
4647 #line 302 "src/parser_proc_grammar.y" /* glr.c:846 */
4648 {psi_impl_def_val_free(&(*(struct psi_impl_def_val
**)(&(*yyvaluep
))));}
4649 #line 4650 "src/parser_proc.c" /* glr.c:846 */
4652 case 163: /* impl_def_val_token */
4653 #line 295 "src/parser_proc_grammar.y" /* glr.c:846 */
4655 #line 4656 "src/parser_proc.c" /* glr.c:846 */
4658 case 164: /* decl_typedef */
4659 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
4660 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4661 #line 4662 "src/parser_proc.c" /* glr.c:846 */
4664 case 165: /* typedef */
4665 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
4666 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4667 #line 4668 "src/parser_proc.c" /* glr.c:846 */
4670 case 166: /* const_decl_type */
4671 #line 311 "src/parser_proc_grammar.y" /* glr.c:846 */
4672 {psi_decl_type_free(&(*(struct psi_decl_type
**)(&(*yyvaluep
))));}
4673 #line 4674 "src/parser_proc.c" /* glr.c:846 */
4676 case 167: /* decl_type */
4677 #line 311 "src/parser_proc_grammar.y" /* glr.c:846 */
4678 {psi_decl_type_free(&(*(struct psi_decl_type
**)(&(*yyvaluep
))));}
4679 #line 4680 "src/parser_proc.c" /* glr.c:846 */
4682 case 168: /* decl_type_complex */
4683 #line 311 "src/parser_proc_grammar.y" /* glr.c:846 */
4684 {psi_decl_type_free(&(*(struct psi_decl_type
**)(&(*yyvaluep
))));}
4685 #line 4686 "src/parser_proc.c" /* glr.c:846 */
4688 case 169: /* decl_type_simple */
4689 #line 305 "src/parser_proc_grammar.y" /* glr.c:846 */
4690 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4691 #line 4692 "src/parser_proc.c" /* glr.c:846 */
4694 case 170: /* decl_real_type */
4695 #line 305 "src/parser_proc_grammar.y" /* glr.c:846 */
4696 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4697 #line 4698 "src/parser_proc.c" /* glr.c:846 */
4700 case 171: /* decl_stdint_type */
4701 #line 308 "src/parser_proc_grammar.y" /* glr.c:846 */
4703 #line 4704 "src/parser_proc.c" /* glr.c:846 */
4706 case 172: /* int_signed */
4707 #line 283 "src/parser_proc_grammar.y" /* glr.c:846 */
4709 #line 4710 "src/parser_proc.c" /* glr.c:846 */
4712 case 173: /* int_width */
4713 #line 280 "src/parser_proc_grammar.y" /* glr.c:846 */
4714 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4715 #line 4716 "src/parser_proc.c" /* glr.c:846 */
4718 case 174: /* decl_int_type */
4719 #line 305 "src/parser_proc_grammar.y" /* glr.c:846 */
4720 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4721 #line 4722 "src/parser_proc.c" /* glr.c:846 */
4724 case 175: /* int_signed_types */
4725 #line 280 "src/parser_proc_grammar.y" /* glr.c:846 */
4726 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4727 #line 4728 "src/parser_proc.c" /* glr.c:846 */
4730 case 176: /* signed_short_types */
4731 #line 283 "src/parser_proc_grammar.y" /* glr.c:846 */
4733 #line 4734 "src/parser_proc.c" /* glr.c:846 */
4736 case 177: /* signed_long_types */
4737 #line 283 "src/parser_proc_grammar.y" /* glr.c:846 */
4739 #line 4740 "src/parser_proc.c" /* glr.c:846 */
4742 case 178: /* int_width_types */
4743 #line 280 "src/parser_proc_grammar.y" /* glr.c:846 */
4744 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4745 #line 4746 "src/parser_proc.c" /* glr.c:846 */
4748 case 179: /* decl_stmt */
4749 #line 313 "src/parser_proc_grammar.y" /* glr.c:846 */
4750 {psi_decl_free(&(*(struct psi_decl
**)(&(*yyvaluep
))));}
4751 #line 4752 "src/parser_proc.c" /* glr.c:846 */
4754 case 185: /* decl_vars */
4755 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
4756 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4757 #line 4758 "src/parser_proc.c" /* glr.c:846 */
4760 case 186: /* decl */
4761 #line 313 "src/parser_proc_grammar.y" /* glr.c:846 */
4762 {psi_decl_free(&(*(struct psi_decl
**)(&(*yyvaluep
))));}
4763 #line 4764 "src/parser_proc.c" /* glr.c:846 */
4766 case 187: /* decl_body */
4767 #line 313 "src/parser_proc_grammar.y" /* glr.c:846 */
4768 {psi_decl_free(&(*(struct psi_decl
**)(&(*yyvaluep
))));}
4769 #line 4770 "src/parser_proc.c" /* glr.c:846 */
4772 case 188: /* decl_func_body */
4773 #line 313 "src/parser_proc_grammar.y" /* glr.c:846 */
4774 {psi_decl_free(&(*(struct psi_decl
**)(&(*yyvaluep
))));}
4775 #line 4776 "src/parser_proc.c" /* glr.c:846 */
4778 case 189: /* decl_functor_body */
4779 #line 313 "src/parser_proc_grammar.y" /* glr.c:846 */
4780 {psi_decl_free(&(*(struct psi_decl
**)(&(*yyvaluep
))));}
4781 #line 4782 "src/parser_proc.c" /* glr.c:846 */
4784 case 190: /* decl_functor */
4785 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
4786 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4787 #line 4788 "src/parser_proc.c" /* glr.c:846 */
4790 case 191: /* decl_func */
4791 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
4792 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4793 #line 4794 "src/parser_proc.c" /* glr.c:846 */
4796 case 192: /* decl_args */
4797 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
4798 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4799 #line 4800 "src/parser_proc.c" /* glr.c:846 */
4802 case 193: /* decl_anon_arg */
4803 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
4804 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4805 #line 4806 "src/parser_proc.c" /* glr.c:846 */
4808 case 194: /* decl_arg */
4809 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
4810 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4811 #line 4812 "src/parser_proc.c" /* glr.c:846 */
4814 case 195: /* decl_var */
4815 #line 317 "src/parser_proc_grammar.y" /* glr.c:846 */
4816 {psi_decl_var_free(&(*(struct psi_decl_var
**)(&(*yyvaluep
))));}
4817 #line 4818 "src/parser_proc.c" /* glr.c:846 */
4820 case 196: /* decl_union */
4821 #line 321 "src/parser_proc_grammar.y" /* glr.c:846 */
4822 {psi_decl_union_free(&(*(struct psi_decl_union
**)(&(*yyvaluep
))));}
4823 #line 4824 "src/parser_proc.c" /* glr.c:846 */
4826 case 197: /* decl_struct */
4827 #line 319 "src/parser_proc_grammar.y" /* glr.c:846 */
4828 {psi_decl_struct_free(&(*(struct psi_decl_struct
**)(&(*yyvaluep
))));}
4829 #line 4830 "src/parser_proc.c" /* glr.c:846 */
4832 case 198: /* decl_struct_args */
4833 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
4834 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4835 #line 4836 "src/parser_proc.c" /* glr.c:846 */
4838 case 199: /* struct_args_block */
4839 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
4840 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4841 #line 4842 "src/parser_proc.c" /* glr.c:846 */
4844 case 200: /* struct_args */
4845 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
4846 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4847 #line 4848 "src/parser_proc.c" /* glr.c:846 */
4850 case 201: /* struct_arg_var_list */
4851 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
4852 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4853 #line 4854 "src/parser_proc.c" /* glr.c:846 */
4856 case 202: /* decl_vars_with_layout */
4857 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
4858 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4859 #line 4860 "src/parser_proc.c" /* glr.c:846 */
4862 case 203: /* decl_enum */
4863 #line 323 "src/parser_proc_grammar.y" /* glr.c:846 */
4864 {psi_decl_enum_free(&(*(struct psi_decl_enum
**)(&(*yyvaluep
))));}
4865 #line 4866 "src/parser_proc.c" /* glr.c:846 */
4868 case 204: /* decl_enum_items */
4869 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
4870 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4871 #line 4872 "src/parser_proc.c" /* glr.c:846 */
4874 case 205: /* decl_enum_item */
4875 #line 325 "src/parser_proc_grammar.y" /* glr.c:846 */
4876 {psi_decl_enum_item_free(&(*(struct psi_decl_enum_item
**)(&(*yyvaluep
))));}
4877 #line 4878 "src/parser_proc.c" /* glr.c:846 */
4880 case 206: /* num_exp */
4881 #line 378 "src/parser_proc_grammar.y" /* glr.c:846 */
4882 {psi_num_exp_free(&(*(struct psi_num_exp
**)(&(*yyvaluep
))));}
4883 #line 4884 "src/parser_proc.c" /* glr.c:846 */
4886 case 207: /* number */
4887 #line 380 "src/parser_proc_grammar.y" /* glr.c:846 */
4888 {psi_number_free(&(*(struct psi_number
**)(&(*yyvaluep
))));}
4889 #line 4890 "src/parser_proc.c" /* glr.c:846 */
4892 case 208: /* enum_name */
4893 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
4894 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4895 #line 4896 "src/parser_proc.c" /* glr.c:846 */
4898 case 209: /* union_name */
4899 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
4900 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4901 #line 4902 "src/parser_proc.c" /* glr.c:846 */
4904 case 210: /* struct_name */
4905 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
4906 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4907 #line 4908 "src/parser_proc.c" /* glr.c:846 */
4910 case 211: /* optional_name */
4911 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
4912 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4913 #line 4914 "src/parser_proc.c" /* glr.c:846 */
4916 case 212: /* decl_layout */
4917 #line 332 "src/parser_proc_grammar.y" /* glr.c:846 */
4918 {psi_layout_free(&(*(struct psi_layout
**)(&(*yyvaluep
))));}
4919 #line 4920 "src/parser_proc.c" /* glr.c:846 */
4922 case 213: /* align_and_size */
4923 #line 330 "src/parser_proc_grammar.y" /* glr.c:846 */
4925 #line 4926 "src/parser_proc.c" /* glr.c:846 */
4928 case 214: /* array_size */
4929 #line 383 "src/parser_proc_grammar.y" /* glr.c:846 */
4931 #line 4932 "src/parser_proc.c" /* glr.c:846 */
4934 case 215: /* indirection */
4935 #line 383 "src/parser_proc_grammar.y" /* glr.c:846 */
4937 #line 4938 "src/parser_proc.c" /* glr.c:846 */
4940 case 216: /* pointers */
4941 #line 383 "src/parser_proc_grammar.y" /* glr.c:846 */
4943 #line 4944 "src/parser_proc.c" /* glr.c:846 */
4946 case 217: /* asterisks */
4947 #line 383 "src/parser_proc_grammar.y" /* glr.c:846 */
4949 #line 4950 "src/parser_proc.c" /* glr.c:846 */
4952 case 218: /* impl */
4953 #line 335 "src/parser_proc_grammar.y" /* glr.c:846 */
4954 {psi_impl_free(&(*(struct psi_impl
**)(&(*yyvaluep
))));}
4955 #line 4956 "src/parser_proc.c" /* glr.c:846 */
4958 case 219: /* impl_func */
4959 #line 337 "src/parser_proc_grammar.y" /* glr.c:846 */
4960 {psi_impl_func_free(&(*(struct psi_impl_func
**)(&(*yyvaluep
))));}
4961 #line 4962 "src/parser_proc.c" /* glr.c:846 */
4964 case 220: /* impl_args */
4965 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
4966 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4967 #line 4968 "src/parser_proc.c" /* glr.c:846 */
4970 case 221: /* impl_arg */
4971 #line 339 "src/parser_proc_grammar.y" /* glr.c:846 */
4972 {psi_impl_arg_free(&(*(struct psi_impl_arg
**)(&(*yyvaluep
))));}
4973 #line 4974 "src/parser_proc.c" /* glr.c:846 */
4976 case 222: /* impl_var */
4977 #line 343 "src/parser_proc_grammar.y" /* glr.c:846 */
4978 {psi_impl_var_free(&(*(struct psi_impl_var
**)(&(*yyvaluep
))));}
4979 #line 4980 "src/parser_proc.c" /* glr.c:846 */
4982 case 223: /* impl_type */
4983 #line 341 "src/parser_proc_grammar.y" /* glr.c:846 */
4984 {psi_impl_type_free(&(*(struct psi_impl_type
**)(&(*yyvaluep
))));}
4985 #line 4986 "src/parser_proc.c" /* glr.c:846 */
4988 case 224: /* impl_type_token */
4989 #line 373 "src/parser_proc_grammar.y" /* glr.c:846 */
4990 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4991 #line 4992 "src/parser_proc.c" /* glr.c:846 */
4994 case 225: /* impl_stmts */
4995 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
4996 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4997 #line 4998 "src/parser_proc.c" /* glr.c:846 */
5000 case 226: /* impl_stmt */
5001 #line 371 "src/parser_proc_grammar.y" /* glr.c:846 */
5002 {psi_impl_stmt_free(&(*(struct psi_token
***)(&(*yyvaluep
))));}
5003 #line 5004 "src/parser_proc.c" /* glr.c:846 */
5006 case 227: /* let_stmt */
5007 #line 346 "src/parser_proc_grammar.y" /* glr.c:846 */
5008 {psi_let_stmt_free(&(*(struct psi_let_stmt
**)(&(*yyvaluep
))));}
5009 #line 5010 "src/parser_proc.c" /* glr.c:846 */
5012 case 228: /* let_exp */
5013 #line 348 "src/parser_proc_grammar.y" /* glr.c:846 */
5014 {psi_let_exp_free(&(*(struct psi_let_exp
**)(&(*yyvaluep
))));}
5015 #line 5016 "src/parser_proc.c" /* glr.c:846 */
5018 case 229: /* let_exp_byref */
5019 #line 348 "src/parser_proc_grammar.y" /* glr.c:846 */
5020 {psi_let_exp_free(&(*(struct psi_let_exp
**)(&(*yyvaluep
))));}
5021 #line 5022 "src/parser_proc.c" /* glr.c:846 */
5024 case 230: /* let_exp_assign */
5025 #line 348 "src/parser_proc_grammar.y" /* glr.c:846 */
5026 {psi_let_exp_free(&(*(struct psi_let_exp
**)(&(*yyvaluep
))));}
5027 #line 5028 "src/parser_proc.c" /* glr.c:846 */
5030 case 231: /* let_calloc */
5031 #line 350 "src/parser_proc_grammar.y" /* glr.c:846 */
5032 {psi_let_calloc_free(&(*(struct psi_let_calloc
**)(&(*yyvaluep
))));}
5033 #line 5034 "src/parser_proc.c" /* glr.c:846 */
5036 case 232: /* let_callback */
5037 #line 352 "src/parser_proc_grammar.y" /* glr.c:846 */
5038 {psi_let_callback_free(&(*(struct psi_let_callback
**)(&(*yyvaluep
))));}
5039 #line 5040 "src/parser_proc.c" /* glr.c:846 */
5042 case 233: /* let_func */
5043 #line 354 "src/parser_proc_grammar.y" /* glr.c:846 */
5044 {psi_let_func_free(&(*(struct psi_let_func
**)(&(*yyvaluep
))));}
5045 #line 5046 "src/parser_proc.c" /* glr.c:846 */
5048 case 234: /* let_func_token */
5049 #line 373 "src/parser_proc_grammar.y" /* glr.c:846 */
5050 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
5051 #line 5052 "src/parser_proc.c" /* glr.c:846 */
5054 case 235: /* let_func_exps */
5055 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
5056 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
5057 #line 5058 "src/parser_proc.c" /* glr.c:846 */
5060 case 236: /* let_exps */
5061 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
5062 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
5063 #line 5064 "src/parser_proc.c" /* glr.c:846 */
5066 case 237: /* callback_rval */
5067 #line 373 "src/parser_proc_grammar.y" /* glr.c:846 */
5068 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
5069 #line 5070 "src/parser_proc.c" /* glr.c:846 */
5072 case 238: /* callback_arg_list */
5073 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
5074 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
5075 #line 5076 "src/parser_proc.c" /* glr.c:846 */
5078 case 239: /* callback_args */
5079 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
5080 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
5081 #line 5082 "src/parser_proc.c" /* glr.c:846 */
5084 case 240: /* return_stmt */
5085 #line 364 "src/parser_proc_grammar.y" /* glr.c:846 */
5086 {psi_return_stmt_free(&(*(struct psi_return_stmt
**)(&(*yyvaluep
))));}
5087 #line 5088 "src/parser_proc.c" /* glr.c:846 */
5090 case 241: /* set_stmt */
5091 #line 356 "src/parser_proc_grammar.y" /* glr.c:846 */
5092 {psi_set_stmt_free(&(*(struct psi_set_stmt
**)(&(*yyvaluep
))));}
5093 #line 5094 "src/parser_proc.c" /* glr.c:846 */
5096 case 242: /* set_exp */
5097 #line 358 "src/parser_proc_grammar.y" /* glr.c:846 */
5098 {psi_set_exp_free(&(*(struct psi_set_exp
**)(&(*yyvaluep
))));}
5099 #line 5100 "src/parser_proc.c" /* glr.c:846 */
5102 case 243: /* set_func */
5103 #line 360 "src/parser_proc_grammar.y" /* glr.c:846 */
5104 {psi_set_func_free(&(*(struct psi_set_func
**)(&(*yyvaluep
))));}
5105 #line 5106 "src/parser_proc.c" /* glr.c:846 */
5108 case 244: /* set_func_token */
5109 #line 373 "src/parser_proc_grammar.y" /* glr.c:846 */
5110 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
5111 #line 5112 "src/parser_proc.c" /* glr.c:846 */
5114 case 245: /* set_func_exps */
5115 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
5116 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
5117 #line 5118 "src/parser_proc.c" /* glr.c:846 */
5120 case 246: /* set_exps */
5121 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
5122 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
5123 #line 5124 "src/parser_proc.c" /* glr.c:846 */
5126 case 247: /* assert_stmt */
5127 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5128 {psi_assert_stmt_free(&(*(struct psi_assert_stmt
**)(&(*yyvaluep
))));}
5129 #line 5130 "src/parser_proc.c" /* glr.c:846 */
5132 case 248: /* assert_stmt_token */
5133 #line 373 "src/parser_proc_grammar.y" /* glr.c:846 */
5134 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
5135 #line 5136 "src/parser_proc.c" /* glr.c:846 */
5138 case 249: /* free_stmt */
5139 #line 366 "src/parser_proc_grammar.y" /* glr.c:846 */
5140 {psi_free_stmt_free(&(*(struct psi_free_stmt
**)(&(*yyvaluep
))));}
5141 #line 5142 "src/parser_proc.c" /* glr.c:846 */
5144 case 250: /* free_exps */
5145 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
5146 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
5147 #line 5148 "src/parser_proc.c" /* glr.c:846 */
5150 case 251: /* free_exp */
5151 #line 368 "src/parser_proc_grammar.y" /* glr.c:846 */
5152 {psi_free_exp_free(&(*(struct psi_free_exp
**)(&(*yyvaluep
))));}
5153 #line 5154 "src/parser_proc.c" /* glr.c:846 */
5156 case 252: /* reference */
5157 #line 385 "src/parser_proc_grammar.y" /* glr.c:846 */
5159 #line 5160 "src/parser_proc.c" /* glr.c:846 */
5166 YY_IGNORE_MAYBE_UNINITIALIZED_END
5169 /** Number of symbols composing the right hand side of rule #RULE. */
5171 yyrhsLength (yyRuleNum yyrule
)
5173 return yyr2
[yyrule
];
5177 yydestroyGLRState (char const *yymsg
, yyGLRState
*yys
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5179 if (yys
->yyresolved
)
5180 yydestruct (yymsg
, yystos
[yys
->yylrState
],
5181 &yys
->yysemantics
.yysval
, P
, tokens
, index
);
5187 if (yys
->yysemantics
.yyfirstVal
)
5188 YYFPRINTF (stderr
, "%s unresolved", yymsg
);
5190 YYFPRINTF (stderr
, "%s incomplete", yymsg
);
5191 YY_SYMBOL_PRINT ("", yystos
[yys
->yylrState
], YY_NULLPTR
, &yys
->yyloc
);
5195 if (yys
->yysemantics
.yyfirstVal
)
5197 yySemanticOption
*yyoption
= yys
->yysemantics
.yyfirstVal
;
5200 for (yyrh
= yyoption
->yystate
, yyn
= yyrhsLength (yyoption
->yyrule
);
5202 yyrh
= yyrh
->yypred
, yyn
-= 1)
5203 yydestroyGLRState (yymsg
, yyrh
, P
, tokens
, index
);
5208 /** Left-hand-side symbol for rule #YYRULE. */
5209 static inline yySymbol
5210 yylhsNonterm (yyRuleNum yyrule
)
5212 return yyr1
[yyrule
];
5215 #define yypact_value_is_default(Yystate) \
5216 (!!((Yystate) == (-554)))
5218 /** True iff LR state YYSTATE has only a default reduction (regardless
5220 static inline yybool
5221 yyisDefaultedState (yyStateNum yystate
)
5223 return yypact_value_is_default (yypact
[yystate
]);
5226 /** The default reduction for YYSTATE, assuming it has one. */
5227 static inline yyRuleNum
5228 yydefaultAction (yyStateNum yystate
)
5230 return yydefact
[yystate
];
5233 #define yytable_value_is_error(Yytable_value) \
5236 /** Set *YYACTION to the action to take in YYSTATE on seeing YYTOKEN.
5238 * R < 0: Reduce on rule -R.
5240 * R > 0: Shift to state R.
5241 * Set *YYCONFLICTS to a pointer into yyconfl to a 0-terminated list
5242 * of conflicting reductions.
5245 yygetLRActions (yyStateNum yystate
, int yytoken
,
5246 int* yyaction
, const short int** yyconflicts
)
5248 int yyindex
= yypact
[yystate
] + yytoken
;
5249 if (yypact_value_is_default (yypact
[yystate
])
5250 || yyindex
< 0 || YYLAST
< yyindex
|| yycheck
[yyindex
] != yytoken
)
5252 *yyaction
= -yydefact
[yystate
];
5253 *yyconflicts
= yyconfl
;
5255 else if (! yytable_value_is_error (yytable
[yyindex
]))
5257 *yyaction
= yytable
[yyindex
];
5258 *yyconflicts
= yyconfl
+ yyconflp
[yyindex
];
5263 *yyconflicts
= yyconfl
+ yyconflp
[yyindex
];
5267 /** Compute post-reduction state.
5268 * \param yystate the current state
5269 * \param yysym the nonterminal to push on the stack
5271 static inline yyStateNum
5272 yyLRgotoState (yyStateNum yystate
, yySymbol yysym
)
5274 int yyr
= yypgoto
[yysym
- YYNTOKENS
] + yystate
;
5275 if (0 <= yyr
&& yyr
<= YYLAST
&& yycheck
[yyr
] == yystate
)
5276 return yytable
[yyr
];
5278 return yydefgoto
[yysym
- YYNTOKENS
];
5281 static inline yybool
5282 yyisShiftAction (int yyaction
)
5284 return 0 < yyaction
;
5287 static inline yybool
5288 yyisErrorAction (int yyaction
)
5290 return yyaction
== 0;
5295 /** Return a fresh GLRStackItem in YYSTACKP. The item is an LR state
5296 * if YYISSTATE, and otherwise a semantic option. Callers should call
5297 * YY_RESERVE_GLRSTACK afterwards to make sure there is sufficient
5300 static inline yyGLRStackItem
*
5301 yynewGLRStackItem (yyGLRStack
* yystackp
, yybool yyisState
)
5303 yyGLRStackItem
* yynewItem
= yystackp
->yynextFree
;
5304 yystackp
->yyspaceLeft
-= 1;
5305 yystackp
->yynextFree
+= 1;
5306 yynewItem
->yystate
.yyisState
= yyisState
;
5310 /** Add a new semantic action that will execute the action for rule
5311 * YYRULE on the semantic values in YYRHS to the list of
5312 * alternative actions for YYSTATE. Assumes that YYRHS comes from
5313 * stack #YYK of *YYSTACKP. */
5315 yyaddDeferredAction (yyGLRStack
* yystackp
, size_t yyk
, yyGLRState
* yystate
,
5316 yyGLRState
* yyrhs
, yyRuleNum yyrule
)
5318 yySemanticOption
* yynewOption
=
5319 &yynewGLRStackItem (yystackp
, yyfalse
)->yyoption
;
5320 YYASSERT (!yynewOption
->yyisState
);
5321 yynewOption
->yystate
= yyrhs
;
5322 yynewOption
->yyrule
= yyrule
;
5323 if (yystackp
->yytops
.yylookaheadNeeds
[yyk
])
5325 yynewOption
->yyrawchar
= yychar
;
5326 yynewOption
->yyval
= yylval
;
5329 yynewOption
->yyrawchar
= YYEMPTY
;
5330 yynewOption
->yynext
= yystate
->yysemantics
.yyfirstVal
;
5331 yystate
->yysemantics
.yyfirstVal
= yynewOption
;
5333 YY_RESERVE_GLRSTACK (yystackp
);
5338 /** Initialize YYSET to a singleton set containing an empty stack. */
5340 yyinitStateSet (yyGLRStateSet
* yyset
)
5343 yyset
->yycapacity
= 16;
5344 yyset
->yystates
= (yyGLRState
**) YYMALLOC (16 * sizeof yyset
->yystates
[0]);
5345 if (! yyset
->yystates
)
5347 yyset
->yystates
[0] = YY_NULLPTR
;
5348 yyset
->yylookaheadNeeds
=
5349 (yybool
*) YYMALLOC (16 * sizeof yyset
->yylookaheadNeeds
[0]);
5350 if (! yyset
->yylookaheadNeeds
)
5352 YYFREE (yyset
->yystates
);
5358 static void yyfreeStateSet (yyGLRStateSet
* yyset
)
5360 YYFREE (yyset
->yystates
);
5361 YYFREE (yyset
->yylookaheadNeeds
);
5364 /** Initialize *YYSTACKP to a single empty stack, with total maximum
5365 * capacity for all stacks of YYSIZE. */
5367 yyinitGLRStack (yyGLRStack
* yystackp
, size_t yysize
)
5369 yystackp
->yyerrState
= 0;
5371 yystackp
->yyspaceLeft
= yysize
;
5373 (yyGLRStackItem
*) YYMALLOC (yysize
* sizeof yystackp
->yynextFree
[0]);
5374 if (!yystackp
->yyitems
)
5376 yystackp
->yynextFree
= yystackp
->yyitems
;
5377 yystackp
->yysplitPoint
= YY_NULLPTR
;
5378 yystackp
->yylastDeleted
= YY_NULLPTR
;
5379 return yyinitStateSet (&yystackp
->yytops
);
5383 #if YYSTACKEXPANDABLE
5384 # define YYRELOC(YYFROMITEMS,YYTOITEMS,YYX,YYTYPE) \
5385 &((YYTOITEMS) - ((YYFROMITEMS) - (yyGLRStackItem*) (YYX)))->YYTYPE
5387 /** If *YYSTACKP is expandable, extend it. WARNING: Pointers into the
5388 stack from outside should be considered invalid after this call.
5389 We always expand when there are 1 or fewer items left AFTER an
5390 allocation, so that we can avoid having external pointers exist
5391 across an allocation. */
5393 yyexpandGLRStack (yyGLRStack
* yystackp
)
5395 yyGLRStackItem
* yynewItems
;
5396 yyGLRStackItem
* yyp0
, *yyp1
;
5399 size_t yysize
= yystackp
->yynextFree
- yystackp
->yyitems
;
5400 if (YYMAXDEPTH
- YYHEADROOM
< yysize
)
5401 yyMemoryExhausted (yystackp
);
5402 yynewSize
= 2*yysize
;
5403 if (YYMAXDEPTH
< yynewSize
)
5404 yynewSize
= YYMAXDEPTH
;
5405 yynewItems
= (yyGLRStackItem
*) YYMALLOC (yynewSize
* sizeof yynewItems
[0]);
5407 yyMemoryExhausted (yystackp
);
5408 for (yyp0
= yystackp
->yyitems
, yyp1
= yynewItems
, yyn
= yysize
;
5410 yyn
-= 1, yyp0
+= 1, yyp1
+= 1)
5413 if (*(yybool
*) yyp0
)
5415 yyGLRState
* yys0
= &yyp0
->yystate
;
5416 yyGLRState
* yys1
= &yyp1
->yystate
;
5417 if (yys0
->yypred
!= YY_NULLPTR
)
5419 YYRELOC (yyp0
, yyp1
, yys0
->yypred
, yystate
);
5420 if (! yys0
->yyresolved
&& yys0
->yysemantics
.yyfirstVal
!= YY_NULLPTR
)
5421 yys1
->yysemantics
.yyfirstVal
=
5422 YYRELOC (yyp0
, yyp1
, yys0
->yysemantics
.yyfirstVal
, yyoption
);
5426 yySemanticOption
* yyv0
= &yyp0
->yyoption
;
5427 yySemanticOption
* yyv1
= &yyp1
->yyoption
;
5428 if (yyv0
->yystate
!= YY_NULLPTR
)
5429 yyv1
->yystate
= YYRELOC (yyp0
, yyp1
, yyv0
->yystate
, yystate
);
5430 if (yyv0
->yynext
!= YY_NULLPTR
)
5431 yyv1
->yynext
= YYRELOC (yyp0
, yyp1
, yyv0
->yynext
, yyoption
);
5434 if (yystackp
->yysplitPoint
!= YY_NULLPTR
)
5435 yystackp
->yysplitPoint
= YYRELOC (yystackp
->yyitems
, yynewItems
,
5436 yystackp
->yysplitPoint
, yystate
);
5438 for (yyn
= 0; yyn
< yystackp
->yytops
.yysize
; yyn
+= 1)
5439 if (yystackp
->yytops
.yystates
[yyn
] != YY_NULLPTR
)
5440 yystackp
->yytops
.yystates
[yyn
] =
5441 YYRELOC (yystackp
->yyitems
, yynewItems
,
5442 yystackp
->yytops
.yystates
[yyn
], yystate
);
5443 YYFREE (yystackp
->yyitems
);
5444 yystackp
->yyitems
= yynewItems
;
5445 yystackp
->yynextFree
= yynewItems
+ yysize
;
5446 yystackp
->yyspaceLeft
= yynewSize
- yysize
;
5451 yyfreeGLRStack (yyGLRStack
* yystackp
)
5453 YYFREE (yystackp
->yyitems
);
5454 yyfreeStateSet (&yystackp
->yytops
);
5457 /** Assuming that YYS is a GLRState somewhere on *YYSTACKP, update the
5458 * splitpoint of *YYSTACKP, if needed, so that it is at least as deep as
5461 yyupdateSplit (yyGLRStack
* yystackp
, yyGLRState
* yys
)
5463 if (yystackp
->yysplitPoint
!= YY_NULLPTR
&& yystackp
->yysplitPoint
> yys
)
5464 yystackp
->yysplitPoint
= yys
;
5467 /** Invalidate stack #YYK in *YYSTACKP. */
5469 yymarkStackDeleted (yyGLRStack
* yystackp
, size_t yyk
)
5471 if (yystackp
->yytops
.yystates
[yyk
] != YY_NULLPTR
)
5472 yystackp
->yylastDeleted
= yystackp
->yytops
.yystates
[yyk
];
5473 yystackp
->yytops
.yystates
[yyk
] = YY_NULLPTR
;
5476 /** Undelete the last stack in *YYSTACKP that was marked as deleted. Can
5477 only be done once after a deletion, and only when all other stacks have
5480 yyundeleteLastStack (yyGLRStack
* yystackp
)
5482 if (yystackp
->yylastDeleted
== YY_NULLPTR
|| yystackp
->yytops
.yysize
!= 0)
5484 yystackp
->yytops
.yystates
[0] = yystackp
->yylastDeleted
;
5485 yystackp
->yytops
.yysize
= 1;
5486 YYDPRINTF ((stderr
, "Restoring last deleted stack as stack #0.\n"));
5487 yystackp
->yylastDeleted
= YY_NULLPTR
;
5491 yyremoveDeletes (yyGLRStack
* yystackp
)
5495 while (yyj
< yystackp
->yytops
.yysize
)
5497 if (yystackp
->yytops
.yystates
[yyi
] == YY_NULLPTR
)
5501 YYDPRINTF ((stderr
, "Removing dead stacks.\n"));
5503 yystackp
->yytops
.yysize
-= 1;
5507 yystackp
->yytops
.yystates
[yyj
] = yystackp
->yytops
.yystates
[yyi
];
5508 /* In the current implementation, it's unnecessary to copy
5509 yystackp->yytops.yylookaheadNeeds[yyi] since, after
5510 yyremoveDeletes returns, the parser immediately either enters
5511 deterministic operation or shifts a token. However, it doesn't
5512 hurt, and the code might evolve to need it. */
5513 yystackp
->yytops
.yylookaheadNeeds
[yyj
] =
5514 yystackp
->yytops
.yylookaheadNeeds
[yyi
];
5517 YYDPRINTF ((stderr
, "Rename stack %lu -> %lu.\n",
5518 (unsigned long int) yyi
, (unsigned long int) yyj
));
5526 /** Shift to a new state on stack #YYK of *YYSTACKP, corresponding to LR
5527 * state YYLRSTATE, at input position YYPOSN, with (resolved) semantic
5528 * value *YYVALP and source location *YYLOCP. */
5530 yyglrShift (yyGLRStack
* yystackp
, size_t yyk
, yyStateNum yylrState
,
5534 yyGLRState
* yynewState
= &yynewGLRStackItem (yystackp
, yytrue
)->yystate
;
5536 yynewState
->yylrState
= yylrState
;
5537 yynewState
->yyposn
= yyposn
;
5538 yynewState
->yyresolved
= yytrue
;
5539 yynewState
->yypred
= yystackp
->yytops
.yystates
[yyk
];
5540 yynewState
->yysemantics
.yysval
= *yyvalp
;
5541 yystackp
->yytops
.yystates
[yyk
] = yynewState
;
5543 YY_RESERVE_GLRSTACK (yystackp
);
5546 /** Shift stack #YYK of *YYSTACKP, to a new state corresponding to LR
5547 * state YYLRSTATE, at input position YYPOSN, with the (unresolved)
5548 * semantic value of YYRHS under the action for YYRULE. */
5550 yyglrShiftDefer (yyGLRStack
* yystackp
, size_t yyk
, yyStateNum yylrState
,
5551 size_t yyposn
, yyGLRState
* yyrhs
, yyRuleNum yyrule
)
5553 yyGLRState
* yynewState
= &yynewGLRStackItem (yystackp
, yytrue
)->yystate
;
5554 YYASSERT (yynewState
->yyisState
);
5556 yynewState
->yylrState
= yylrState
;
5557 yynewState
->yyposn
= yyposn
;
5558 yynewState
->yyresolved
= yyfalse
;
5559 yynewState
->yypred
= yystackp
->yytops
.yystates
[yyk
];
5560 yynewState
->yysemantics
.yyfirstVal
= YY_NULLPTR
;
5561 yystackp
->yytops
.yystates
[yyk
] = yynewState
;
5563 /* Invokes YY_RESERVE_GLRSTACK. */
5564 yyaddDeferredAction (yystackp
, yyk
, yynewState
, yyrhs
, yyrule
);
5568 # define YY_REDUCE_PRINT(Args)
5570 # define YY_REDUCE_PRINT(Args) \
5573 yy_reduce_print Args; \
5576 /*----------------------------------------------------------------------.
5577 | Report that stack #YYK of *YYSTACKP is going to be reduced by YYRULE. |
5578 `----------------------------------------------------------------------*/
5581 yy_reduce_print (int yynormal
, yyGLRStackItem
* yyvsp
, size_t yyk
,
5582 yyRuleNum yyrule
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5584 int yynrhs
= yyrhsLength (yyrule
);
5586 YYFPRINTF (stderr
, "Reducing stack %lu by rule %d (line %lu):\n",
5587 (unsigned long int) yyk
, yyrule
- 1,
5588 (unsigned long int) yyrline
[yyrule
]);
5590 yyfillin (yyvsp
, 1, -yynrhs
);
5591 /* The symbols being reduced. */
5592 for (yyi
= 0; yyi
< yynrhs
; yyi
++)
5594 YYFPRINTF (stderr
, " $%d = ", yyi
+ 1);
5595 yy_symbol_print (stderr
,
5596 yystos
[yyvsp
[yyi
- yynrhs
+ 1].yystate
.yylrState
],
5597 &yyvsp
[yyi
- yynrhs
+ 1].yystate
.yysemantics
.yysval
5598 , P
, tokens
, index
);
5599 if (!yyvsp
[yyi
- yynrhs
+ 1].yystate
.yyresolved
)
5600 YYFPRINTF (stderr
, " (unresolved)");
5601 YYFPRINTF (stderr
, "\n");
5606 /** Pop the symbols consumed by reduction #YYRULE from the top of stack
5607 * #YYK of *YYSTACKP, and perform the appropriate semantic action on their
5608 * semantic values. Assumes that all ambiguities in semantic values
5609 * have been previously resolved. Set *YYVALP to the resulting value,
5610 * and *YYLOCP to the computed location (if any). Return value is as
5611 * for userAction. */
5612 static inline YYRESULTTAG
5613 yydoAction (yyGLRStack
* yystackp
, size_t yyk
, yyRuleNum yyrule
,
5614 YYSTYPE
* yyvalp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5616 int yynrhs
= yyrhsLength (yyrule
);
5618 if (yystackp
->yysplitPoint
== YY_NULLPTR
)
5620 /* Standard special case: single stack. */
5621 yyGLRStackItem
* yyrhs
= (yyGLRStackItem
*) yystackp
->yytops
.yystates
[yyk
];
5622 YYASSERT (yyk
== 0);
5623 yystackp
->yynextFree
-= yynrhs
;
5624 yystackp
->yyspaceLeft
+= yynrhs
;
5625 yystackp
->yytops
.yystates
[0] = & yystackp
->yynextFree
[-1].yystate
;
5626 YY_REDUCE_PRINT ((1, yyrhs
, yyk
, yyrule
, P
, tokens
, index
));
5627 return yyuserAction (yyrule
, yynrhs
, yyrhs
, yystackp
,
5628 yyvalp
, P
, tokens
, index
);
5634 yyGLRStackItem yyrhsVals
[YYMAXRHS
+ YYMAXLEFT
+ 1];
5635 yys
= yyrhsVals
[YYMAXRHS
+ YYMAXLEFT
].yystate
.yypred
5636 = yystackp
->yytops
.yystates
[yyk
];
5637 for (yyi
= 0; yyi
< yynrhs
; yyi
+= 1)
5642 yyupdateSplit (yystackp
, yys
);
5643 yystackp
->yytops
.yystates
[yyk
] = yys
;
5644 YY_REDUCE_PRINT ((0, yyrhsVals
+ YYMAXRHS
+ YYMAXLEFT
- 1, yyk
, yyrule
, P
, tokens
, index
));
5645 return yyuserAction (yyrule
, yynrhs
, yyrhsVals
+ YYMAXRHS
+ YYMAXLEFT
- 1,
5646 yystackp
, yyvalp
, P
, tokens
, index
);
5650 /** Pop items off stack #YYK of *YYSTACKP according to grammar rule YYRULE,
5651 * and push back on the resulting nonterminal symbol. Perform the
5652 * semantic action associated with YYRULE and store its value with the
5653 * newly pushed state, if YYFORCEEVAL or if *YYSTACKP is currently
5654 * unambiguous. Otherwise, store the deferred semantic action with
5655 * the new state. If the new state would have an identical input
5656 * position, LR state, and predecessor to an existing state on the stack,
5657 * it is identified with that existing state, eliminating stack #YYK from
5658 * *YYSTACKP. In this case, the semantic value is
5659 * added to the options for the existing state's semantic value.
5661 static inline YYRESULTTAG
5662 yyglrReduce (yyGLRStack
* yystackp
, size_t yyk
, yyRuleNum yyrule
,
5663 yybool yyforceEval
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5665 size_t yyposn
= yystackp
->yytops
.yystates
[yyk
]->yyposn
;
5667 if (yyforceEval
|| yystackp
->yysplitPoint
== YY_NULLPTR
)
5671 YYRESULTTAG yyflag
= yydoAction (yystackp
, yyk
, yyrule
, &yysval
, P
, tokens
, index
);
5672 if (yyflag
== yyerr
&& yystackp
->yysplitPoint
!= YY_NULLPTR
)
5674 YYDPRINTF ((stderr
, "Parse on stack %lu rejected by rule #%d.\n",
5675 (unsigned long int) yyk
, yyrule
- 1));
5679 YY_SYMBOL_PRINT ("-> $$ =", yyr1
[yyrule
], &yysval
, &yyloc
);
5680 yyglrShift (yystackp
, yyk
,
5681 yyLRgotoState (yystackp
->yytops
.yystates
[yyk
]->yylrState
,
5682 yylhsNonterm (yyrule
)),
5689 yyGLRState
* yys
, *yys0
= yystackp
->yytops
.yystates
[yyk
];
5690 yyStateNum yynewLRState
;
5692 for (yys
= yystackp
->yytops
.yystates
[yyk
], yyn
= yyrhsLength (yyrule
);
5698 yyupdateSplit (yystackp
, yys
);
5699 yynewLRState
= yyLRgotoState (yys
->yylrState
, yylhsNonterm (yyrule
));
5701 "Reduced stack %lu by rule #%d; action deferred. "
5702 "Now in state %d.\n",
5703 (unsigned long int) yyk
, yyrule
- 1, yynewLRState
));
5704 for (yyi
= 0; yyi
< yystackp
->yytops
.yysize
; yyi
+= 1)
5705 if (yyi
!= yyk
&& yystackp
->yytops
.yystates
[yyi
] != YY_NULLPTR
)
5707 yyGLRState
*yysplit
= yystackp
->yysplitPoint
;
5708 yyGLRState
*yyp
= yystackp
->yytops
.yystates
[yyi
];
5709 while (yyp
!= yys
&& yyp
!= yysplit
&& yyp
->yyposn
>= yyposn
)
5711 if (yyp
->yylrState
== yynewLRState
&& yyp
->yypred
== yys
)
5713 yyaddDeferredAction (yystackp
, yyk
, yyp
, yys0
, yyrule
);
5714 yymarkStackDeleted (yystackp
, yyk
);
5715 YYDPRINTF ((stderr
, "Merging stack %lu into stack %lu.\n",
5716 (unsigned long int) yyk
,
5717 (unsigned long int) yyi
));
5723 yystackp
->yytops
.yystates
[yyk
] = yys
;
5724 yyglrShiftDefer (yystackp
, yyk
, yynewLRState
, yyposn
, yys0
, yyrule
);
5730 yysplitStack (yyGLRStack
* yystackp
, size_t yyk
)
5732 if (yystackp
->yysplitPoint
== YY_NULLPTR
)
5734 YYASSERT (yyk
== 0);
5735 yystackp
->yysplitPoint
= yystackp
->yytops
.yystates
[yyk
];
5737 if (yystackp
->yytops
.yysize
>= yystackp
->yytops
.yycapacity
)
5739 yyGLRState
** yynewStates
;
5740 yybool
* yynewLookaheadNeeds
;
5742 yynewStates
= YY_NULLPTR
;
5744 if (yystackp
->yytops
.yycapacity
5745 > (YYSIZEMAX
/ (2 * sizeof yynewStates
[0])))
5746 yyMemoryExhausted (yystackp
);
5747 yystackp
->yytops
.yycapacity
*= 2;
5750 (yyGLRState
**) YYREALLOC (yystackp
->yytops
.yystates
,
5751 (yystackp
->yytops
.yycapacity
5752 * sizeof yynewStates
[0]));
5753 if (yynewStates
== YY_NULLPTR
)
5754 yyMemoryExhausted (yystackp
);
5755 yystackp
->yytops
.yystates
= yynewStates
;
5757 yynewLookaheadNeeds
=
5758 (yybool
*) YYREALLOC (yystackp
->yytops
.yylookaheadNeeds
,
5759 (yystackp
->yytops
.yycapacity
5760 * sizeof yynewLookaheadNeeds
[0]));
5761 if (yynewLookaheadNeeds
== YY_NULLPTR
)
5762 yyMemoryExhausted (yystackp
);
5763 yystackp
->yytops
.yylookaheadNeeds
= yynewLookaheadNeeds
;
5765 yystackp
->yytops
.yystates
[yystackp
->yytops
.yysize
]
5766 = yystackp
->yytops
.yystates
[yyk
];
5767 yystackp
->yytops
.yylookaheadNeeds
[yystackp
->yytops
.yysize
]
5768 = yystackp
->yytops
.yylookaheadNeeds
[yyk
];
5769 yystackp
->yytops
.yysize
+= 1;
5770 return yystackp
->yytops
.yysize
-1;
5773 /** True iff YYY0 and YYY1 represent identical options at the top level.
5774 * That is, they represent the same rule applied to RHS symbols
5775 * that produce the same terminal symbols. */
5777 yyidenticalOptions (yySemanticOption
* yyy0
, yySemanticOption
* yyy1
)
5779 if (yyy0
->yyrule
== yyy1
->yyrule
)
5781 yyGLRState
*yys0
, *yys1
;
5783 for (yys0
= yyy0
->yystate
, yys1
= yyy1
->yystate
,
5784 yyn
= yyrhsLength (yyy0
->yyrule
);
5786 yys0
= yys0
->yypred
, yys1
= yys1
->yypred
, yyn
-= 1)
5787 if (yys0
->yyposn
!= yys1
->yyposn
)
5795 /** Assuming identicalOptions (YYY0,YYY1), destructively merge the
5796 * alternative semantic values for the RHS-symbols of YYY1 and YYY0. */
5798 yymergeOptionSets (yySemanticOption
* yyy0
, yySemanticOption
* yyy1
)
5800 yyGLRState
*yys0
, *yys1
;
5802 for (yys0
= yyy0
->yystate
, yys1
= yyy1
->yystate
,
5803 yyn
= yyrhsLength (yyy0
->yyrule
);
5805 yys0
= yys0
->yypred
, yys1
= yys1
->yypred
, yyn
-= 1)
5809 else if (yys0
->yyresolved
)
5811 yys1
->yyresolved
= yytrue
;
5812 yys1
->yysemantics
.yysval
= yys0
->yysemantics
.yysval
;
5814 else if (yys1
->yyresolved
)
5816 yys0
->yyresolved
= yytrue
;
5817 yys0
->yysemantics
.yysval
= yys1
->yysemantics
.yysval
;
5821 yySemanticOption
** yyz0p
= &yys0
->yysemantics
.yyfirstVal
;
5822 yySemanticOption
* yyz1
= yys1
->yysemantics
.yyfirstVal
;
5825 if (yyz1
== *yyz0p
|| yyz1
== YY_NULLPTR
)
5827 else if (*yyz0p
== YY_NULLPTR
)
5832 else if (*yyz0p
< yyz1
)
5834 yySemanticOption
* yyz
= *yyz0p
;
5836 yyz1
= yyz1
->yynext
;
5837 (*yyz0p
)->yynext
= yyz
;
5839 yyz0p
= &(*yyz0p
)->yynext
;
5841 yys1
->yysemantics
.yyfirstVal
= yys0
->yysemantics
.yyfirstVal
;
5846 /** Y0 and Y1 represent two possible actions to take in a given
5847 * parsing state; return 0 if no combination is possible,
5848 * 1 if user-mergeable, 2 if Y0 is preferred, 3 if Y1 is preferred. */
5850 yypreference (yySemanticOption
* y0
, yySemanticOption
* y1
)
5852 yyRuleNum r0
= y0
->yyrule
, r1
= y1
->yyrule
;
5853 int p0
= yydprec
[r0
], p1
= yydprec
[r1
];
5857 if (yymerger
[r0
] == 0 || yymerger
[r0
] != yymerger
[r1
])
5862 if (p0
== 0 || p1
== 0)
5871 static YYRESULTTAG
yyresolveValue (yyGLRState
* yys
,
5872 yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
);
5875 /** Resolve the previous YYN states starting at and including state YYS
5876 * on *YYSTACKP. If result != yyok, some states may have been left
5877 * unresolved possibly with empty semantic option chains. Regardless
5878 * of whether result = yyok, each state has been left with consistent
5879 * data so that yydestroyGLRState can be invoked if necessary. */
5881 yyresolveStates (yyGLRState
* yys
, int yyn
,
5882 yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5886 YYASSERT (yys
->yypred
);
5887 YYCHK (yyresolveStates (yys
->yypred
, yyn
-1, yystackp
, P
, tokens
, index
));
5888 if (! yys
->yyresolved
)
5889 YYCHK (yyresolveValue (yys
, yystackp
, P
, tokens
, index
));
5894 /** Resolve the states for the RHS of YYOPT on *YYSTACKP, perform its
5895 * user action, and return the semantic value and location in *YYVALP
5896 * and *YYLOCP. Regardless of whether result = yyok, all RHS states
5897 * have been destroyed (assuming the user action destroys all RHS
5898 * semantic values if invoked). */
5900 yyresolveAction (yySemanticOption
* yyopt
, yyGLRStack
* yystackp
,
5901 YYSTYPE
* yyvalp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5903 yyGLRStackItem yyrhsVals
[YYMAXRHS
+ YYMAXLEFT
+ 1];
5904 int yynrhs
= yyrhsLength (yyopt
->yyrule
);
5905 YYRESULTTAG yyflag
=
5906 yyresolveStates (yyopt
->yystate
, yynrhs
, yystackp
, P
, tokens
, index
);
5910 for (yys
= yyopt
->yystate
; yynrhs
> 0; yys
= yys
->yypred
, yynrhs
-= 1)
5911 yydestroyGLRState ("Cleanup: popping", yys
, P
, tokens
, index
);
5915 yyrhsVals
[YYMAXRHS
+ YYMAXLEFT
].yystate
.yypred
= yyopt
->yystate
;
5917 int yychar_current
= yychar
;
5918 YYSTYPE yylval_current
= yylval
;
5919 yychar
= yyopt
->yyrawchar
;
5920 yylval
= yyopt
->yyval
;
5921 yyflag
= yyuserAction (yyopt
->yyrule
, yynrhs
,
5922 yyrhsVals
+ YYMAXRHS
+ YYMAXLEFT
- 1,
5923 yystackp
, yyvalp
, P
, tokens
, index
);
5924 yychar
= yychar_current
;
5925 yylval
= yylval_current
;
5932 yyreportTree (yySemanticOption
* yyx
, int yyindent
)
5934 int yynrhs
= yyrhsLength (yyx
->yyrule
);
5937 yyGLRState
* yystates
[1 + YYMAXRHS
];
5938 yyGLRState yyleftmost_state
;
5940 for (yyi
= yynrhs
, yys
= yyx
->yystate
; 0 < yyi
; yyi
-= 1, yys
= yys
->yypred
)
5941 yystates
[yyi
] = yys
;
5942 if (yys
== YY_NULLPTR
)
5944 yyleftmost_state
.yyposn
= 0;
5945 yystates
[0] = &yyleftmost_state
;
5950 if (yyx
->yystate
->yyposn
< yys
->yyposn
+ 1)
5951 YYFPRINTF (stderr
, "%*s%s -> <Rule %d, empty>\n",
5952 yyindent
, "", yytokenName (yylhsNonterm (yyx
->yyrule
)),
5955 YYFPRINTF (stderr
, "%*s%s -> <Rule %d, tokens %lu .. %lu>\n",
5956 yyindent
, "", yytokenName (yylhsNonterm (yyx
->yyrule
)),
5957 yyx
->yyrule
- 1, (unsigned long int) (yys
->yyposn
+ 1),
5958 (unsigned long int) yyx
->yystate
->yyposn
);
5959 for (yyi
= 1; yyi
<= yynrhs
; yyi
+= 1)
5961 if (yystates
[yyi
]->yyresolved
)
5963 if (yystates
[yyi
-1]->yyposn
+1 > yystates
[yyi
]->yyposn
)
5964 YYFPRINTF (stderr
, "%*s%s <empty>\n", yyindent
+2, "",
5965 yytokenName (yystos
[yystates
[yyi
]->yylrState
]));
5967 YYFPRINTF (stderr
, "%*s%s <tokens %lu .. %lu>\n", yyindent
+2, "",
5968 yytokenName (yystos
[yystates
[yyi
]->yylrState
]),
5969 (unsigned long int) (yystates
[yyi
-1]->yyposn
+ 1),
5970 (unsigned long int) yystates
[yyi
]->yyposn
);
5973 yyreportTree (yystates
[yyi
]->yysemantics
.yyfirstVal
, yyindent
+2);
5979 yyreportAmbiguity (yySemanticOption
* yyx0
,
5980 yySemanticOption
* yyx1
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5986 YYFPRINTF (stderr
, "Ambiguity detected.\n");
5987 YYFPRINTF (stderr
, "Option 1,\n");
5988 yyreportTree (yyx0
, 2);
5989 YYFPRINTF (stderr
, "\nOption 2,\n");
5990 yyreportTree (yyx1
, 2);
5991 YYFPRINTF (stderr
, "\n");
5994 yyerror (P
, tokens
, index
, YY_("syntax is ambiguous"));
5998 /** Resolve the ambiguity represented in state YYS in *YYSTACKP,
5999 * perform the indicated actions, and set the semantic value of YYS.
6000 * If result != yyok, the chain of semantic options in YYS has been
6001 * cleared instead or it has been left unmodified except that
6002 * redundant options may have been removed. Regardless of whether
6003 * result = yyok, YYS has been left with consistent data so that
6004 * yydestroyGLRState can be invoked if necessary. */
6006 yyresolveValue (yyGLRState
* yys
, yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6008 yySemanticOption
* yyoptionList
= yys
->yysemantics
.yyfirstVal
;
6009 yySemanticOption
* yybest
= yyoptionList
;
6010 yySemanticOption
** yypp
;
6011 yybool yymerge
= yyfalse
;
6015 for (yypp
= &yyoptionList
->yynext
; *yypp
!= YY_NULLPTR
; )
6017 yySemanticOption
* yyp
= *yypp
;
6019 if (yyidenticalOptions (yybest
, yyp
))
6021 yymergeOptionSets (yybest
, yyp
);
6022 *yypp
= yyp
->yynext
;
6026 switch (yypreference (yybest
, yyp
))
6029 return yyreportAmbiguity (yybest
, yyp
, P
, tokens
, index
);
6041 /* This cannot happen so it is not worth a YYASSERT (yyfalse),
6042 but some compilers complain if the default case is
6046 yypp
= &yyp
->yynext
;
6052 yySemanticOption
* yyp
;
6053 int yyprec
= yydprec
[yybest
->yyrule
];
6054 yyflag
= yyresolveAction (yybest
, yystackp
, &yysval
, P
, tokens
, index
);
6056 for (yyp
= yybest
->yynext
; yyp
!= YY_NULLPTR
; yyp
= yyp
->yynext
)
6058 if (yyprec
== yydprec
[yyp
->yyrule
])
6060 YYSTYPE yysval_other
;
6061 yyflag
= yyresolveAction (yyp
, yystackp
, &yysval_other
, P
, tokens
, index
);
6064 yydestruct ("Cleanup: discarding incompletely merged value for",
6065 yystos
[yys
->yylrState
],
6066 &yysval
, P
, tokens
, index
);
6069 yyuserMerge (yymerger
[yyp
->yyrule
], &yysval
, &yysval_other
);
6074 yyflag
= yyresolveAction (yybest
, yystackp
, &yysval
, P
, tokens
, index
);
6078 yys
->yyresolved
= yytrue
;
6079 yys
->yysemantics
.yysval
= yysval
;
6082 yys
->yysemantics
.yyfirstVal
= YY_NULLPTR
;
6087 yyresolveStack (yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6089 if (yystackp
->yysplitPoint
!= YY_NULLPTR
)
6094 for (yyn
= 0, yys
= yystackp
->yytops
.yystates
[0];
6095 yys
!= yystackp
->yysplitPoint
;
6096 yys
= yys
->yypred
, yyn
+= 1)
6098 YYCHK (yyresolveStates (yystackp
->yytops
.yystates
[0], yyn
, yystackp
6099 , P
, tokens
, index
));
6105 yycompressStack (yyGLRStack
* yystackp
)
6107 yyGLRState
* yyp
, *yyq
, *yyr
;
6109 if (yystackp
->yytops
.yysize
!= 1 || yystackp
->yysplitPoint
== YY_NULLPTR
)
6112 for (yyp
= yystackp
->yytops
.yystates
[0], yyq
= yyp
->yypred
, yyr
= YY_NULLPTR
;
6113 yyp
!= yystackp
->yysplitPoint
;
6114 yyr
= yyp
, yyp
= yyq
, yyq
= yyp
->yypred
)
6117 yystackp
->yyspaceLeft
+= yystackp
->yynextFree
- yystackp
->yyitems
;
6118 yystackp
->yynextFree
= ((yyGLRStackItem
*) yystackp
->yysplitPoint
) + 1;
6119 yystackp
->yyspaceLeft
-= yystackp
->yynextFree
- yystackp
->yyitems
;
6120 yystackp
->yysplitPoint
= YY_NULLPTR
;
6121 yystackp
->yylastDeleted
= YY_NULLPTR
;
6123 while (yyr
!= YY_NULLPTR
)
6125 yystackp
->yynextFree
->yystate
= *yyr
;
6127 yystackp
->yynextFree
->yystate
.yypred
= &yystackp
->yynextFree
[-1].yystate
;
6128 yystackp
->yytops
.yystates
[0] = &yystackp
->yynextFree
->yystate
;
6129 yystackp
->yynextFree
+= 1;
6130 yystackp
->yyspaceLeft
-= 1;
6135 yyprocessOneStack (yyGLRStack
* yystackp
, size_t yyk
,
6136 size_t yyposn
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6138 while (yystackp
->yytops
.yystates
[yyk
] != YY_NULLPTR
)
6140 yyStateNum yystate
= yystackp
->yytops
.yystates
[yyk
]->yylrState
;
6141 YYDPRINTF ((stderr
, "Stack %lu Entering state %d\n",
6142 (unsigned long int) yyk
, yystate
));
6144 YYASSERT (yystate
!= YYFINAL
);
6146 if (yyisDefaultedState (yystate
))
6149 yyRuleNum yyrule
= yydefaultAction (yystate
);
6152 YYDPRINTF ((stderr
, "Stack %lu dies.\n",
6153 (unsigned long int) yyk
));
6154 yymarkStackDeleted (yystackp
, yyk
);
6157 yyflag
= yyglrReduce (yystackp
, yyk
, yyrule
, yyimmediate
[yyrule
], P
, tokens
, index
);
6158 if (yyflag
== yyerr
)
6162 "(predicate failure or explicit user error).\n",
6163 (unsigned long int) yyk
));
6164 yymarkStackDeleted (yystackp
, yyk
);
6174 const short int* yyconflicts
;
6176 yystackp
->yytops
.yylookaheadNeeds
[yyk
] = yytrue
;
6177 if (yychar
== YYEMPTY
)
6179 YYDPRINTF ((stderr
, "Reading a token: "));
6180 yychar
= yylex (&yylval
, P
, tokens
, index
);
6183 if (yychar
<= YYEOF
)
6185 yychar
= yytoken
= YYEOF
;
6186 YYDPRINTF ((stderr
, "Now at end of input.\n"));
6190 yytoken
= YYTRANSLATE (yychar
);
6191 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
6194 yygetLRActions (yystate
, yytoken
, &yyaction
, &yyconflicts
);
6196 while (*yyconflicts
!= 0)
6199 size_t yynewStack
= yysplitStack (yystackp
, yyk
);
6200 YYDPRINTF ((stderr
, "Splitting off stack %lu from %lu.\n",
6201 (unsigned long int) yynewStack
,
6202 (unsigned long int) yyk
));
6203 yyflag
= yyglrReduce (yystackp
, yynewStack
,
6205 yyimmediate
[*yyconflicts
], P
, tokens
, index
);
6207 YYCHK (yyprocessOneStack (yystackp
, yynewStack
,
6208 yyposn
, P
, tokens
, index
));
6209 else if (yyflag
== yyerr
)
6211 YYDPRINTF ((stderr
, "Stack %lu dies.\n",
6212 (unsigned long int) yynewStack
));
6213 yymarkStackDeleted (yystackp
, yynewStack
);
6220 if (yyisShiftAction (yyaction
))
6222 else if (yyisErrorAction (yyaction
))
6224 YYDPRINTF ((stderr
, "Stack %lu dies.\n",
6225 (unsigned long int) yyk
));
6226 yymarkStackDeleted (yystackp
, yyk
);
6231 YYRESULTTAG yyflag
= yyglrReduce (yystackp
, yyk
, -yyaction
,
6232 yyimmediate
[-yyaction
], P
, tokens
, index
);
6233 if (yyflag
== yyerr
)
6237 "(predicate failure or explicit user error).\n",
6238 (unsigned long int) yyk
));
6239 yymarkStackDeleted (yystackp
, yyk
);
6242 else if (yyflag
!= yyok
)
6251 yyreportSyntaxError (yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6253 if (yystackp
->yyerrState
!= 0)
6255 #if ! YYERROR_VERBOSE
6256 yyerror (P
, tokens
, index
, YY_("syntax error"));
6259 yySymbol yytoken
= yychar
== YYEMPTY
? YYEMPTY
: YYTRANSLATE (yychar
);
6260 size_t yysize0
= yytnamerr (YY_NULLPTR
, yytokenName (yytoken
));
6261 size_t yysize
= yysize0
;
6262 yybool yysize_overflow
= yyfalse
;
6263 char* yymsg
= YY_NULLPTR
;
6264 enum { YYERROR_VERBOSE_ARGS_MAXIMUM
= 5 };
6265 /* Internationalized format string. */
6266 const char *yyformat
= YY_NULLPTR
;
6267 /* Arguments of yyformat. */
6268 char const *yyarg
[YYERROR_VERBOSE_ARGS_MAXIMUM
];
6269 /* Number of reported tokens (one for the "unexpected", one per
6273 /* There are many possibilities here to consider:
6274 - If this state is a consistent state with a default action, then
6275 the only way this function was invoked is if the default action
6276 is an error action. In that case, don't check for expected
6277 tokens because there are none.
6278 - The only way there can be no lookahead present (in yychar) is if
6279 this state is a consistent state with a default action. Thus,
6280 detecting the absence of a lookahead is sufficient to determine
6281 that there is no unexpected or expected token to report. In that
6282 case, just report a simple "syntax error".
6283 - Don't assume there isn't a lookahead just because this state is a
6284 consistent state with a default action. There might have been a
6285 previous inconsistent state, consistent state with a non-default
6286 action, or user semantic action that manipulated yychar.
6287 - Of course, the expected token list depends on states to have
6288 correct lookahead information, and it depends on the parser not
6289 to perform extra reductions after fetching a lookahead from the
6290 scanner and before detecting a syntax error. Thus, state merging
6291 (from LALR or IELR) and default reductions corrupt the expected
6292 token list. However, the list is correct for canonical LR with
6293 one exception: it will still contain any token that will not be
6294 accepted due to an error action in a later state.
6296 if (yytoken
!= YYEMPTY
)
6298 int yyn
= yypact
[yystackp
->yytops
.yystates
[0]->yylrState
];
6299 yyarg
[yycount
++] = yytokenName (yytoken
);
6300 if (!yypact_value_is_default (yyn
))
6302 /* Start YYX at -YYN if negative to avoid negative indexes in
6303 YYCHECK. In other words, skip the first -YYN actions for this
6304 state because they are default actions. */
6305 int yyxbegin
= yyn
< 0 ? -yyn
: 0;
6306 /* Stay within bounds of both yycheck and yytname. */
6307 int yychecklim
= YYLAST
- yyn
+ 1;
6308 int yyxend
= yychecklim
< YYNTOKENS
? yychecklim
: YYNTOKENS
;
6310 for (yyx
= yyxbegin
; yyx
< yyxend
; ++yyx
)
6311 if (yycheck
[yyx
+ yyn
] == yyx
&& yyx
!= YYTERROR
6312 && !yytable_value_is_error (yytable
[yyx
+ yyn
]))
6314 if (yycount
== YYERROR_VERBOSE_ARGS_MAXIMUM
)
6320 yyarg
[yycount
++] = yytokenName (yyx
);
6322 size_t yysz
= yysize
+ yytnamerr (YY_NULLPTR
, yytokenName (yyx
));
6323 yysize_overflow
|= yysz
< yysize
;
6332 #define YYCASE_(N, S) \
6336 YYCASE_(0, YY_("syntax error"));
6337 YYCASE_(1, YY_("syntax error, unexpected %s"));
6338 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
6339 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
6340 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
6341 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
6346 size_t yysz
= yysize
+ strlen (yyformat
);
6347 yysize_overflow
|= yysz
< yysize
;
6351 if (!yysize_overflow
)
6352 yymsg
= (char *) YYMALLOC (yysize
);
6358 while ((*yyp
= *yyformat
))
6360 if (*yyp
== '%' && yyformat
[1] == 's' && yyi
< yycount
)
6362 yyp
+= yytnamerr (yyp
, yyarg
[yyi
++]);
6371 yyerror (P
, tokens
, index
, yymsg
);
6376 yyerror (P
, tokens
, index
, YY_("syntax error"));
6377 yyMemoryExhausted (yystackp
);
6380 #endif /* YYERROR_VERBOSE */
6384 /* Recover from a syntax error on *YYSTACKP, assuming that *YYSTACKP->YYTOKENP,
6385 yylval, and yylloc are the syntactic category, semantic value, and location
6386 of the lookahead. */
6388 yyrecoverSyntaxError (yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6393 if (yystackp
->yyerrState
== 3)
6394 /* We just shifted the error token and (perhaps) took some
6395 reductions. Skip tokens until we can proceed. */
6399 if (yychar
== YYEOF
)
6400 yyFail (yystackp
, P
, tokens
, index
, YY_NULLPTR
);
6401 if (yychar
!= YYEMPTY
)
6403 yytoken
= YYTRANSLATE (yychar
);
6404 yydestruct ("Error: discarding",
6405 yytoken
, &yylval
, P
, tokens
, index
);
6407 YYDPRINTF ((stderr
, "Reading a token: "));
6408 yychar
= yylex (&yylval
, P
, tokens
, index
);
6409 if (yychar
<= YYEOF
)
6411 yychar
= yytoken
= YYEOF
;
6412 YYDPRINTF ((stderr
, "Now at end of input.\n"));
6416 yytoken
= YYTRANSLATE (yychar
);
6417 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
6419 yyj
= yypact
[yystackp
->yytops
.yystates
[0]->yylrState
];
6420 if (yypact_value_is_default (yyj
))
6423 if (yyj
< 0 || YYLAST
< yyj
|| yycheck
[yyj
] != yytoken
)
6425 if (yydefact
[yystackp
->yytops
.yystates
[0]->yylrState
] != 0)
6428 else if (! yytable_value_is_error (yytable
[yyj
]))
6432 /* Reduce to one stack. */
6433 for (yyk
= 0; yyk
< yystackp
->yytops
.yysize
; yyk
+= 1)
6434 if (yystackp
->yytops
.yystates
[yyk
] != YY_NULLPTR
)
6436 if (yyk
>= yystackp
->yytops
.yysize
)
6437 yyFail (yystackp
, P
, tokens
, index
, YY_NULLPTR
);
6438 for (yyk
+= 1; yyk
< yystackp
->yytops
.yysize
; yyk
+= 1)
6439 yymarkStackDeleted (yystackp
, yyk
);
6440 yyremoveDeletes (yystackp
);
6441 yycompressStack (yystackp
);
6443 /* Now pop stack until we find a state that shifts the error token. */
6444 yystackp
->yyerrState
= 3;
6445 while (yystackp
->yytops
.yystates
[0] != YY_NULLPTR
)
6447 yyGLRState
*yys
= yystackp
->yytops
.yystates
[0];
6448 yyj
= yypact
[yys
->yylrState
];
6449 if (! yypact_value_is_default (yyj
))
6452 if (0 <= yyj
&& yyj
<= YYLAST
&& yycheck
[yyj
] == YYTERROR
6453 && yyisShiftAction (yytable
[yyj
]))
6455 /* Shift the error token. */
6456 YY_SYMBOL_PRINT ("Shifting", yystos
[yytable
[yyj
]],
6457 &yylval
, &yyerrloc
);
6458 yyglrShift (yystackp
, 0, yytable
[yyj
],
6459 yys
->yyposn
, &yylval
);
6460 yys
= yystackp
->yytops
.yystates
[0];
6464 if (yys
->yypred
!= YY_NULLPTR
)
6465 yydestroyGLRState ("Error: popping", yys
, P
, tokens
, index
);
6466 yystackp
->yytops
.yystates
[0] = yys
->yypred
;
6467 yystackp
->yynextFree
-= 1;
6468 yystackp
->yyspaceLeft
+= 1;
6470 if (yystackp
->yytops
.yystates
[0] == YY_NULLPTR
)
6471 yyFail (yystackp
, P
, tokens
, index
, YY_NULLPTR
);
6474 #define YYCHK1(YYE) \
6484 goto yyuser_error; \
6495 yyparse (struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6499 yyGLRStack
* const yystackp
= &yystack
;
6502 YYDPRINTF ((stderr
, "Starting parse\n"));
6505 yylval
= yyval_default
;
6507 /* User initialization code. */
6508 #line 117 "src/parser_proc_grammar.y" /* glr.c:2270 */
6512 #line 6513 "src/parser_proc.c" /* glr.c:2270 */
6514 if (! yyinitGLRStack (yystackp
, YYINITDEPTH
))
6515 goto yyexhaustedlab
;
6516 switch (YYSETJMP (yystack
.yyexception_buffer
))
6519 case 1: goto yyabortlab
;
6520 case 2: goto yyexhaustedlab
;
6521 default: goto yybuglab
;
6523 yyglrShift (&yystack
, 0, 0, 0, &yylval
);
6528 /* For efficiency, we have two loops, the first of which is
6529 specialized to deterministic operation (single stack, no
6530 potential ambiguity). */
6536 const short int* yyconflicts
;
6538 yyStateNum yystate
= yystack
.yytops
.yystates
[0]->yylrState
;
6539 YYDPRINTF ((stderr
, "Entering state %d\n", yystate
));
6540 if (yystate
== YYFINAL
)
6542 if (yyisDefaultedState (yystate
))
6544 yyrule
= yydefaultAction (yystate
);
6548 yyreportSyntaxError (&yystack
, P
, tokens
, index
);
6551 YYCHK1 (yyglrReduce (&yystack
, 0, yyrule
, yytrue
, P
, tokens
, index
));
6556 if (yychar
== YYEMPTY
)
6558 YYDPRINTF ((stderr
, "Reading a token: "));
6559 yychar
= yylex (&yylval
, P
, tokens
, index
);
6562 if (yychar
<= YYEOF
)
6564 yychar
= yytoken
= YYEOF
;
6565 YYDPRINTF ((stderr
, "Now at end of input.\n"));
6569 yytoken
= YYTRANSLATE (yychar
);
6570 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
6573 yygetLRActions (yystate
, yytoken
, &yyaction
, &yyconflicts
);
6574 if (*yyconflicts
!= 0)
6576 if (yyisShiftAction (yyaction
))
6578 YY_SYMBOL_PRINT ("Shifting", yytoken
, &yylval
, &yylloc
);
6581 yyglrShift (&yystack
, 0, yyaction
, yyposn
, &yylval
);
6582 if (0 < yystack
.yyerrState
)
6583 yystack
.yyerrState
-= 1;
6585 else if (yyisErrorAction (yyaction
))
6588 yyreportSyntaxError (&yystack
, P
, tokens
, index
);
6592 YYCHK1 (yyglrReduce (&yystack
, 0, -yyaction
, yytrue
, P
, tokens
, index
));
6598 yySymbol yytoken_to_shift
;
6601 for (yys
= 0; yys
< yystack
.yytops
.yysize
; yys
+= 1)
6602 yystackp
->yytops
.yylookaheadNeeds
[yys
] = yychar
!= YYEMPTY
;
6604 /* yyprocessOneStack returns one of three things:
6606 - An error flag. If the caller is yyprocessOneStack, it
6607 immediately returns as well. When the caller is finally
6608 yyparse, it jumps to an error label via YYCHK1.
6610 - yyok, but yyprocessOneStack has invoked yymarkStackDeleted
6611 (&yystack, yys), which sets the top state of yys to NULL. Thus,
6612 yyparse's following invocation of yyremoveDeletes will remove
6615 - yyok, when ready to shift a token.
6617 Except in the first case, yyparse will invoke yyremoveDeletes and
6618 then shift the next token onto all remaining stacks. This
6619 synchronization of the shift (that is, after all preceding
6620 reductions on all stacks) helps prevent double destructor calls
6621 on yylval in the event of memory exhaustion. */
6623 for (yys
= 0; yys
< yystack
.yytops
.yysize
; yys
+= 1)
6624 YYCHK1 (yyprocessOneStack (&yystack
, yys
, yyposn
, P
, tokens
, index
));
6625 yyremoveDeletes (&yystack
);
6626 if (yystack
.yytops
.yysize
== 0)
6628 yyundeleteLastStack (&yystack
);
6629 if (yystack
.yytops
.yysize
== 0)
6630 yyFail (&yystack
, P
, tokens
, index
, YY_("syntax error"));
6631 YYCHK1 (yyresolveStack (&yystack
, P
, tokens
, index
));
6632 YYDPRINTF ((stderr
, "Returning to deterministic operation.\n"));
6634 yyreportSyntaxError (&yystack
, P
, tokens
, index
);
6638 /* If any yyglrShift call fails, it will fail after shifting. Thus,
6639 a copy of yylval will already be on stack 0 in the event of a
6640 failure in the following loop. Thus, yychar is set to YYEMPTY
6641 before the loop to make sure the user destructor for yylval isn't
6643 yytoken_to_shift
= YYTRANSLATE (yychar
);
6646 for (yys
= 0; yys
< yystack
.yytops
.yysize
; yys
+= 1)
6649 const short int* yyconflicts
;
6650 yyStateNum yystate
= yystack
.yytops
.yystates
[yys
]->yylrState
;
6651 yygetLRActions (yystate
, yytoken_to_shift
, &yyaction
,
6653 /* Note that yyconflicts were handled by yyprocessOneStack. */
6654 YYDPRINTF ((stderr
, "On stack %lu, ", (unsigned long int) yys
));
6655 YY_SYMBOL_PRINT ("shifting", yytoken_to_shift
, &yylval
, &yylloc
);
6656 yyglrShift (&yystack
, yys
, yyaction
, yyposn
,
6658 YYDPRINTF ((stderr
, "Stack %lu now in state #%d\n",
6659 (unsigned long int) yys
,
6660 yystack
.yytops
.yystates
[yys
]->yylrState
));
6663 if (yystack
.yytops
.yysize
== 1)
6665 YYCHK1 (yyresolveStack (&yystack
, P
, tokens
, index
));
6666 YYDPRINTF ((stderr
, "Returning to deterministic operation.\n"));
6667 yycompressStack (&yystack
);
6673 yyrecoverSyntaxError (&yystack
, P
, tokens
, index
);
6674 yyposn
= yystack
.yytops
.yystates
[0]->yyposn
;
6690 yyerror (P
, tokens
, index
, YY_("memory exhausted"));
6695 if (yychar
!= YYEMPTY
)
6696 yydestruct ("Cleanup: discarding lookahead",
6697 YYTRANSLATE (yychar
), &yylval
, P
, tokens
, index
);
6699 /* If the stack is well-formed, pop the stack until it is empty,
6700 destroying its entries as we go. But free the stack regardless
6701 of whether it is well-formed. */
6702 if (yystack
.yyitems
)
6704 yyGLRState
** yystates
= yystack
.yytops
.yystates
;
6707 size_t yysize
= yystack
.yytops
.yysize
;
6709 for (yyk
= 0; yyk
< yysize
; yyk
+= 1)
6712 while (yystates
[yyk
])
6714 yyGLRState
*yys
= yystates
[yyk
];
6715 if (yys
->yypred
!= YY_NULLPTR
)
6716 yydestroyGLRState ("Cleanup: popping", yys
, P
, tokens
, index
);
6717 yystates
[yyk
] = yys
->yypred
;
6718 yystack
.yynextFree
-= 1;
6719 yystack
.yyspaceLeft
+= 1;
6724 yyfreeGLRStack (&yystack
);
6730 /* DEBUGGING ONLY */
6733 yy_yypstack (yyGLRState
* yys
)
6737 yy_yypstack (yys
->yypred
);
6738 YYFPRINTF (stderr
, " -> ");
6740 YYFPRINTF (stderr
, "%d@%lu", yys
->yylrState
,
6741 (unsigned long int) yys
->yyposn
);
6745 yypstates (yyGLRState
* yyst
)
6747 if (yyst
== YY_NULLPTR
)
6748 YYFPRINTF (stderr
, "<null>");
6751 YYFPRINTF (stderr
, "\n");
6755 yypstack (yyGLRStack
* yystackp
, size_t yyk
)
6757 yypstates (yystackp
->yytops
.yystates
[yyk
]);
6760 #define YYINDEX(YYX) \
6761 ((YYX) == YY_NULLPTR ? -1 : (yyGLRStackItem*) (YYX) - yystackp->yyitems)
6765 yypdumpstack (yyGLRStack
* yystackp
)
6767 yyGLRStackItem
* yyp
;
6769 for (yyp
= yystackp
->yyitems
; yyp
< yystackp
->yynextFree
; yyp
+= 1)
6771 YYFPRINTF (stderr
, "%3lu. ",
6772 (unsigned long int) (yyp
- yystackp
->yyitems
));
6773 if (*(yybool
*) yyp
)
6775 YYASSERT (yyp
->yystate
.yyisState
);
6776 YYASSERT (yyp
->yyoption
.yyisState
);
6777 YYFPRINTF (stderr
, "Res: %d, LR State: %d, posn: %lu, pred: %ld",
6778 yyp
->yystate
.yyresolved
, yyp
->yystate
.yylrState
,
6779 (unsigned long int) yyp
->yystate
.yyposn
,
6780 (long int) YYINDEX (yyp
->yystate
.yypred
));
6781 if (! yyp
->yystate
.yyresolved
)
6782 YYFPRINTF (stderr
, ", firstVal: %ld",
6783 (long int) YYINDEX (yyp
->yystate
6784 .yysemantics
.yyfirstVal
));
6788 YYASSERT (!yyp
->yystate
.yyisState
);
6789 YYASSERT (!yyp
->yyoption
.yyisState
);
6790 YYFPRINTF (stderr
, "Option. rule: %d, state: %ld, next: %ld",
6791 yyp
->yyoption
.yyrule
- 1,
6792 (long int) YYINDEX (yyp
->yyoption
.yystate
),
6793 (long int) YYINDEX (yyp
->yyoption
.yynext
));
6795 YYFPRINTF (stderr
, "\n");
6797 YYFPRINTF (stderr
, "Tops:");
6798 for (yyi
= 0; yyi
< yystackp
->yytops
.yysize
; yyi
+= 1)
6799 YYFPRINTF (stderr
, "%lu: %ld; ", (unsigned long int) yyi
,
6800 (long int) YYINDEX (yystackp
->yytops
.yystates
[yyi
]));
6801 YYFPRINTF (stderr
, "\n");
6809 /* Substitute the variable and function names. */
6810 #define yyparse psi_parser_proc_parse
6811 #define yylex psi_parser_proc_lex
6812 #define yyerror psi_parser_proc_error
6813 #define yylval psi_parser_proc_lval
6814 #define yychar psi_parser_proc_char
6815 #define yydebug psi_parser_proc_debug
6816 #define yynerrs psi_parser_proc_nerrs
6818 #line 1824 "src/parser_proc_grammar.y" /* glr.c:2584 */
6823 static int psi_parser_proc_lex(YYSTYPE
*lvalp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6825 struct psi_token
*token
;
6827 if (psi_plist_get(tokens
, (*index
)++, &token
)) {
6828 if (P
->flags
& PSI_DEBUG
) {
6829 psi_token_dump(2, token
);
6832 *((struct psi_token
**)lvalp
) = token
;
6836 PSI_DEBUG_PRINT(P
, "EOF(%d)\n", PSI_T_EOF
);
6842 static void psi_parser_proc_error(struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
, const char *msg
)
6844 struct psi_token
*T
= NULL
;
6853 psi_plist_get(tokens
, last
, &T
);
6855 P
->error(PSI_DATA(P
), T
, PSI_WARNING
, "PSI %s at col %u", msg
, T
->col
);
6857 P
->error(PSI_DATA(P
), NULL
, PSI_WARNING
, "PSI %s", msg
);