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 710
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, 749, 756, 757, 758,
386 759, 763, 766, 772, 773, 781, 791, 799, 807, 815,
387 818, 822, 826, 830, 835, 840, 848, 849, 850, 853,
388 859, 862, 865, 871, 872, 873, 874, 875, 876, 877,
389 878, 882, 883, 887, 890, 893, 899, 902, 905, 913,
390 925, 928, 931, 938, 941, 951, 954, 957, 960, 961,
391 965, 968, 971, 982, 985, 991, 992, 996, 997, 1001,
392 1005, 1011, 1012, 1018, 1021, 1027, 1028, 1035, 1036, 1040,
393 1047, 1058, 1065, 1076, 1083, 1094, 1105, 1119, 1120, 1132,
394 1135, 1138, 1141, 1148, 1151, 1157, 1166, 1178, 1186, 1189,
395 1199, 1212, 1217, 1225, 1235, 1245, 1248, 1252, 1258, 1272,
396 1289, 1292, 1298, 1305, 1315, 1322, 1325, 1331, 1336, 1344,
397 1348, 1352, 1356, 1360, 1364, 1371, 1375, 1379, 1383, 1390,
398 1403, 1416, 1429, 1432, 1439, 1442, 1445, 1448, 1454, 1458,
399 1465, 1468, 1474, 1477, 1483, 1484, 1490, 1493, 1505, 1508,
400 1515, 1520, 1525, 1535, 1538, 1544, 1547, 1553, 1560, 1567,
401 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1579, 1582,
402 1588, 1591, 1594, 1597, 1600, 1606, 1610, 1618, 1619, 1623,
403 1630, 1633, 1636, 1640, 1643, 1646, 1652, 1656, 1664, 1671,
404 1679, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695,
405 1696, 1700, 1703, 1709, 1712, 1718, 1719, 1723, 1726, 1732,
406 1735, 1741, 1748, 1755, 1758, 1761, 1768, 1773, 1781, 1782,
407 1783, 1784, 1785, 1786, 1787, 1788, 1792, 1795, 1801, 1804,
408 1810, 1817, 1818, 1822, 1829, 1832, 1838, 1846, 1849, 1855
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 -550
472 #define YYTABLE_NINF -478
474 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
476 static const short int yypact
[] =
478 946, -550, -550, -550, -550, -550, 64, -550, -550, 505,
479 -550, -550, -550, -550, -550, -550, -550, -550, 2646, -550,
480 -550, 510, 2690, 2496, 2496, 2496, 308, 10, -49, 32,
481 -550, 1040, 94, 946, -550, -550, -550, -550, -550, 2206,
482 -550, -550, -550, -550, -550, 61, 82, -550, -550, -550,
483 102, -2, -550, -550, 43, 103, 105, -550, -550, -550,
484 -550, 89, -550, 111, -550, -550, -550, -550, -550, 656,
485 -550, 104, -550, -550, -550, -550, -550, -550, -550, -550,
486 -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
487 -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
488 -550, -550, 2255, -22, -550, -550, -550, 2496, 2496, 2496,
489 245, -550, 84, -550, -550, -550, -550, -550, -550, -550,
490 -550, -550, -550, -550, -550, 905, -550, -550, -550, -550,
491 131, 786, 786, -3, -550, 905, 2132, 2496, 2496, 150,
492 1896, -550, -550, 169, 2496, 172, 172, 63, 63, 173,
493 -550, -550, 183, 185, -550, 104, 186, -550, -550, 182,
494 178, -550, 197, -550, 2723, 2690, -2, -550, -550, 187,
495 -550, 191, 2496, -550, 224, -550, 90, -550, -550, 61,
496 -550, -550, 194, 198, 2767, 2767, 2496, 279, 2496, -550,
497 104, -550, -550, -550, -550, -550, -550, 2206, -550, -550,
498 -550, -550, -550, -550, 113, 786, -550, -550, -550, -550,
499 -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
500 -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
501 -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
502 -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
503 -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
504 -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
505 -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
506 -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
507 -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
508 -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
509 -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
510 -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
511 -550, -550, 786, -550, -550, -550, -550, -550, -550, -550,
512 -550, 2132, -550, -550, -550, -550, 2373, 2132, 196, 2946,
513 21, -550, 21, -550, -550, -550, -550, 203, 195, 195,
514 5, 5, 2422, 192, -550, 279, 201, 206, 221, 226,
515 -550, 104, 187, -550, -550, -550, -550, -550, -550, 227,
516 -550, 3, 2800, 2206, 75, -550, -550, 107, 214, 77,
517 -550, 2206, 1778, 2206, 2496, 74, -550, -550, 123, -550,
518 -550, -550, -550, -550, 2014, -550, 233, 2496, 223, -550,
519 2496, 235, -550, -550, 2817, 2496, -550, -550, 2132, -550,
520 -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
521 -550, -550, -550, -550, -550, -550, -550, 2132, 2132, 236,
522 2690, 2206, 2206, -550, -550, -550, -550, 104, -550, 1188,
523 202, 40, -550, -550, 231, 2496, -550, -550, 6, 2255,
524 104, 191, 187, 2556, 187, 2613, 2014, 2496, -550, 232,
525 240, -550, -550, -550, 1070, 2014, -550, 2970, -550, 237,
526 242, -550, 244, 252, 239, 248, 86, -550, -550, 250,
527 244, -550, -550, 2790, -550, 251, 2206, 2496, -550, 254,
528 2946, 256, 257, 2897, -550, 265, 280, 1937, -550, -550,
529 2496, -550, -550, -550, -550, 287, -550, 2970, -550, -550,
530 -550, -550, -550, -550, -550, -550, -550, -550, 285, 122,
531 -550, 32, -550, -550, 300, -550, -550, 2422, -550, 3,
532 301, -550, -550, 303, 2970, -550, 1306, -550, 304, 464,
533 306, 2845, -550, 2014, 2014, 1778, -550, 2206, -550, 32,
534 2206, -550, 2496, -550, -550, -550, -550, -550, 309, 310,
535 -550, -550, 2132, 2132, 311, 27, 313, -550, 280, 317,
536 -550, 355, 316, 355, 314, -550, 187, 187, -550, 249,
537 93, 328, 2970, -550, -550, -550, -550, 335, 1424, 2014,
538 -550, 2922, -550, -550, 344, 2206, 137, -550, 786, 2496,
539 2946, 2994, 342, 346, 347, 2206, 312, 313, -550, -550,
540 355, -550, 32, 1188, -550, -550, 328, -550, -550, -550,
541 -550, 350, 2014, 32, -550, -550, 2014, 1542, 351, 352,
542 -550, -550, -550, 353, 354, 358, 280, 356, -550, 360,
543 -550, 7, -550, 32, 586, 361, 3018, 365, -550, 366,
544 -550, -550, -550, 367, 368, -550, 2206, -550, 377, 373,
545 2014, 1306, 374, -550, 1778, 379, 381, 280, 378, 1660,
546 2872, 232, -550, -550, -550, 376, 1424, -550, -550, 380,
547 382, -550, 384, 383, 387, -550, -550, 1306, -550, 386,
548 -550, 355, 389, 1778, -550, 391, -550, -550, -550, -550
551 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
552 Performed when YYTABLE does not specify something else to do. Zero
553 means the default is an error. */
554 static const unsigned short int yydefact
[] =
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, 477,
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, 465, 431,
563 24, 382, 386, 39, 38, 37, 35, 36, 32, 31,
564 25, 29, 28, 26, 27, 439, 438, 436, 434, 435,
565 437, 433, 432, 440, 30, 463, 461, 460, 462, 459,
566 458, 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, 479, 0, 478, 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, 477, 0, 0, 0, 471, 472, 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, 454, 359, 0,
604 0, 453, 41, 0, 0, 0, 0, 474, 464, 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, 247, 248, 249, 250, 0, 246, 245, 389, 401,
608 402, 403, 404, 400, 405, 406, 407, 399, 0, 0,
609 393, 477, 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, 477, 452, 0, 397, 477,
612 0, 473, 0, 451, 470, 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, 0,
615 31, 30, 425, 426, 421, 423, 424, 40, 0, 0,
616 361, 0, 362, 455, 466, 0, 0, 475, 220, 0,
617 237, 227, 0, 375, 0, 0, 0, 350, 324, 390,
618 0, 394, 477, 244, 322, 320, 0, 422, 445, 431,
619 446, 0, 0, 477, 427, 360, 0, 477, 0, 0,
620 476, 214, 219, 0, 0, 0, 374, 351, 348, 0,
621 391, 0, 396, 477, 0, 441, 364, 0, 468, 467,
622 456, 416, 379, 0, 0, 352, 0, 349, 0, 0,
623 0, 0, 0, 457, 477, 0, 0, 374, 0, 447,
624 0, 368, 443, 419, 417, 442, 0, 430, 469, 0,
625 0, 353, 0, 0, 448, 449, 428, 0, 418, 0,
626 376, 0, 0, 477, 444, 0, 392, 429, 450, 377
629 /* YYPGOTO[NTERM-NUM]. */
630 static const short int yypgoto
[] =
632 -550, -319, -129, 0, 91, -550, -550, 398, -550, -550,
633 -550, -550, -550, -550, -550, -550, -550, -550, 258, -550,
634 -550, -550, -127, -550, -325, -550, -550, -550, -550, -550,
635 -191, -550, -550, -152, -11, -23, -550, -550, -550, 293,
636 388, -550, -550, 260, -550, -550, -550, -550, 269, -550,
637 -550, -550, -550, -124, 410, 1, -16, 18, -550, -550,
638 261, -331, -14, -39, -550, -550, 81, -179, -550, -172,
639 -550, 38, -550, -20, -390, -550, -550, -550, -550, 73,
640 -549, 49, -346, -61, -7, -550, -550, 420, -550, -133,
641 -503, -546, -550, 95, -364, -550, -241, -526, 67, -128,
642 -550, -550, -529, -550, -550, -550, -550, -550, -550, -550,
643 -534, 69, -380, -550, -550, -550, -550, -550, -550, -100,
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 515, 516, 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, 616,
657 647, 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, 682, 683, 684, 594,
660 595, 596, 104, 672, 685, 631, 693, 694, 401, 402,
661 480, 481, 105, 638, 659, 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, 111,
672 593, 603, 417, 147, 148, 149, 456, 598, 584, 617,
673 438, 334, 172, 192, 492, 619, 54, 622, 60, 558,
674 535, 71, 443, 519, 159, 536, 520, 440, 29, 54,
675 521, 54, 522, 523, 524, 525, 526, 527, 72, 517,
676 613, 630, -373, -373, 189, 173, 174, 175, 614, 597,
677 176, 60, 634, 64, 650, 65, 544, 668, 412, 528,
678 -318, -337, 161, -337, 551, 552, 492, 158, 178, 4,
679 5, 68, 488, 500, 167, 438, 375, 665, 438, 376,
680 -378, 170, 191, 658, 357, -378, 193, 194, 195, 196,
681 628, 629, 503, 504, 462, 463, 538, 467, 542, 584,
682 468, 335, -327, 561, 197, 204, 562, 182, 691, 407,
683 655, 186, 541, 172, 541, 337, 348, 350, 352, 181,
684 688, 184, 597, 185, 356, 695, 464, 465, 362, 141,
685 669, 143, 686, 187, 140, 706, 592, 597, 409, 72,
686 698, 582, 583, 601, 602, 111, 491, 207, 597, 708,
687 386, 386, 372, 383, 383, 482, 640, 496, 686, 441,
688 442, 438, 54, 189, 438, 438, 388, 354, 406, 95,
689 96, 97, 98, 99, 100, 359, 360, 361, 85, 86,
690 87, 88, 89, 90, 91, 92, 93, -327, 592, 635,
691 351, 353, 347, 357, -241, -373, -242, 363, 347, 364,
692 365, 391, 392, 393, 394, 395, 396, 397, 366, 371,
693 373, 369, 379, 517, 418, 380, 411, 440, 449, 451,
694 624, 625, 654, 452, 439, 518, 656, 610, 611, 1,
695 2, 3, 4, 5, 6, 7, 8, 482, 453, 454,
696 466, 457, 155, 496, 10, 11, 12, 13, 14, 15,
697 16, 17, 494, 497, 505, 106, 533, 547, 546, 556,
698 680, 592, 557, 555, 558, 559, 560, 563, 506, 347,
699 565, 438, 438, 570, 482, 571, 592, 572, 574, 482,
700 391, 392, 393, 394, 395, 396, 397, 592, 347, 347,
701 455, 151, 1, 2, 152, 4, 5, 6, 153, 8,
702 154, 575, 461, 482, 580, 155, 581, 10, 11, 12,
703 13, 14, 15, 16, 17, 107, 108, 109, 106, 585,
704 586, 348, 587, -24, 170, 599, 416, 348, 608, 648,
705 609, 612, 469, 615, 484, 578, 618, 620, 519, 158,
706 623, 520, 448, 626, 189, 521, 632, 522, 523, 524,
707 525, 526, 527, 633, 459, 643, 172, 391, 392, 393,
708 394, 395, 396, 397, 637, 645, 510, 644, 653, 661,
709 660, 664, 662, 338, 485, 663, 666, 667, 107, 108,
710 109, 671, 508, 509, 673, 675, 674, 495, 676, 678,
711 372, 679, 689, 687, 690, 499, 697, 692, 348, 705,
712 699, 700, 702, 413, 141, 701, 143, 703, 707, 140,
713 709, 168, 652, 355, 179, 368, 606, 348, 348, 378,
714 189, 166, 446, 347, 347, 649, 387, 545, 160, 386,
715 621, 386, 383, 537, 383, 534, 704, 566, 470, 191,
716 450, 627, 607, 550, 489, 0, 0, 388, 1, 2,
717 3, 4, 5, 6, 7, 8, 0, 0, 0, 0,
718 0, 641, 0, 10, 11, 12, 13, 14, 15, 16,
719 17, 141, 0, 143, 106, 0, 140, 567, 0, 0,
720 0, 0, 0, 0, 0, 0, 0, 0, 66, 0,
721 579, 0, 0, 0, 0, 0, 0, 67, 604, 0,
722 0, 409, 68, 69, 0, 0, 158, 0, 0, 0,
723 0, 605, 459, 0, 0, 70, 0, 448, 0, 0,
724 0, 0, 0, 71, 0, 0, 113, 0, 0, 0,
725 0, 0, 0, 0, 107, 108, 109, 0, 0, 0,
726 72, 0, 485, 0, 0, 0, 639, 0, 0, 0,
727 0, 0, 348, 348, 0, 0, 646, 73, 74, 75,
728 76, 77, 114, 115, 116, 117, 118, 119, 120, 121,
729 122, 123, 124, 125, 651, 126, 127, 128, 129, 78,
730 0, 79, 80, 81, 82, 83, 84, 0, 0, 642,
731 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
732 95, 96, 97, 98, 99, 100, 670, 677, 0, 0,
733 0, 0, 681, 0, 419, 420, 421, 422, 423, 424,
734 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
735 435, 436, 0, 0, 0, 0, -431, 553, 681, -431,
736 -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
737 -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
738 -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
739 -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
740 -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
741 -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
742 -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
743 -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
744 -431, -431, 0, -431, 0, -431, -431, -431, -431, -431,
745 -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
746 -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
747 -431, -431, -431, -431, -431, -431, -431, -431, 0, -431,
748 -431, 0, -431, -431, -431, -431, 208, 0, 0, 209,
749 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
750 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
751 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
752 240, 241, 0, 242, 243, 244, 245, 246, 247, 248,
753 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
754 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
755 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
756 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
757 289, 290, 0, 291, 0, 292, 293, 294, 295, 296,
758 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
759 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
760 317, 318, 319, 320, 321, 322, 323, 324, 66, 0,
761 325, 0, 326, 327, 328, 329, 0, 67, 0, 0,
762 0, 0, 68, 69, 0, 0, 0, 0, 0, 0,
763 0, 0, 199, 200, 201, 70, 0, 0, 0, 0,
764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
765 1, 2, 3, 4, 5, 6, 7, 8, 0, 0,
766 0, 0, 0, 9, 0, 10, 11, 12, 13, 14,
767 15, 16, 17, 0, 0, 0, 18, 73, 74, 75,
768 76, 77, 19, 20, 0, 0, 0, 0, 0, 0,
769 0, 0, 0, 21, 0, 0, 0, 0, 0, 78,
770 0, 79, 80, 81, 82, 83, 84, 0, 0, 0,
771 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
772 95, 96, 97, 98, 99, 100, 0, 0, 0, 0,
773 0, 202, 0, 203, 0, 22, 23, 24, 25, 26,
774 27, 28, 0, 29, 1, 2, 3, 4, 5, 6,
775 7, 8, 0, 0, 0, 0, 0, 9, 0, 10,
776 11, 12, 13, 14, 15, 16, 17, 30, 0, 0,
777 164, 0, 31, 66, 1, 2, 3, 4, 5, 6,
778 7, 8, 67, 0, 0, 0, 0, 68, 69, 10,
779 11, 12, 13, 14, 15, 16, 17, 0, 0, 0,
780 548, 471, 0, 472, 0, 473, 0, 0, 474, 0,
781 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
782 0, 0, 0, 342, 343, 72, 0, 0, 0, 165,
783 107, 108, 109, 110, 0, 0, 344, 345, 0, 0,
784 0, 0, 73, 74, 75, 76, 77, 0, 0, 0,
785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
786 107, 108, 109, 549, 78, 0, 79, 80, 81, 82,
787 83, 84, 0, 0, 0, 85, 86, 87, 88, 89,
788 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
789 100, 66, 0, 0, 0, 0, 0, 0, 0, 0,
790 67, 0, 0, 0, 0, 68, 69, 0, 0, 0,
791 0, 0, 0, 0, 0, 511, 512, 513, 70, 471,
792 0, 472, 514, 473, 0, 0, 474, 0, 0, 0,
793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
794 0, 342, 343, 72, 0, 0, 0, 0, 0, 0,
795 0, 0, 0, 0, 344, 345, 0, 0, 0, 0,
796 73, 74, 75, 76, 77, 0, 0, 0, 0, 0,
797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
798 0, 0, 78, 0, 79, 80, 81, 82, 83, 84,
799 0, 0, 0, 85, 86, 87, 88, 89, 90, 91,
800 92, 93, 94, 95, 96, 97, 98, 99, 100, 66,
801 0, 0, 0, 0, 0, 0, 0, 0, 67, 0,
802 0, 0, 0, 68, 69, 0, 0, 0, 0, 0,
803 0, 0, 0, 588, 0, 0, 70, 471, 0, 472,
804 0, 473, 0, 0, 474, 0, 0, 0, 0, 0,
805 0, 0, 0, 0, 0, 0, 161, 0, 0, 342,
806 343, 72, 0, 0, 0, 0, 0, 0, 0, 0,
807 0, 0, 344, 345, 0, 0, 0, 0, 73, 74,
808 75, 76, 77, 0, 0, 0, 0, 0, 0, 0,
809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
810 78, 589, 590, 80, 81, 82, 83, 84, 0, 0,
811 0, 85, 86, 87, 88, 89, 90, 91, 92, 93,
812 591, 95, 96, 97, 98, 99, 100, 66, 0, 0,
813 0, 0, 0, 0, 0, 0, 67, 0, 0, 0,
814 0, 68, 69, 0, 0, 0, 0, 0, 0, 0,
815 0, 588, 0, 0, 70, 471, 0, 472, 0, 473,
816 0, 0, 474, 0, 0, 0, 0, 0, 0, 0,
817 0, 0, 0, 0, 0, 0, 0, 342, 343, 72,
818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
819 344, 345, 0, 0, 0, 0, 73, 74, 75, 76,
820 77, 0, 0, 0, 0, 0, 0, 0, 0, 0,
821 0, 0, 0, 0, 0, 0, 0, 0, 78, 589,
822 590, 80, 81, 82, 83, 84, 0, 0, 0, 85,
823 86, 87, 88, 89, 90, 91, 92, 93, 591, 95,
824 96, 97, 98, 99, 100, 66, 0, 0, 0, 0,
825 0, 0, 0, 0, 67, 0, 0, 0, 0, 68,
826 69, 0, 0, 0, 0, 0, 0, 0, 0, 0,
827 0, 0, 70, 471, 0, 472, 0, 473, 0, 0,
828 474, 0, 0, 0, 0, 0, 0, 0, 0, 0,
829 0, 0, 161, 0, 0, 342, 343, 72, 0, 0,
830 0, 0, 0, 0, 0, 0, 0, 0, 344, 345,
831 0, 0, 657, 0, 73, 74, 75, 76, 77, 0,
832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
833 0, 0, 0, 0, 0, 0, 78, 0, 79, 80,
834 81, 82, 83, 84, 0, 0, 0, 85, 86, 87,
835 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
836 98, 99, 100, 66, 0, 0, 0, 0, 0, 0,
837 0, 0, 67, 0, 0, 0, 0, 68, 69, 0,
838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
839 70, 471, -477, 472, 0, 473, 0, 0, 474, 0,
840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
841 161, 0, 0, 342, 343, 72, 0, 0, 0, 0,
842 0, 0, 0, 0, 0, 0, 344, 345, 0, 0,
843 0, 0, 73, 74, 75, 76, 77, 0, 0, 0,
844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
845 0, 0, 0, 0, 78, 0, 79, 80, 81, 82,
846 83, 84, 0, 0, 0, 85, 86, 87, 88, 89,
847 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
848 100, 66, 0, 0, 0, 0, 0, 0, 0, 0,
849 67, 0, 0, 0, 0, 68, 69, 0, 0, 0,
850 0, 0, 0, 0, 0, 0, 0, 0, 70, 471,
851 0, 472, 0, 473, 0, 0, 474, 0, 0, 0,
852 0, 0, 0, 0, 0, 0, 0, 0, 161, 0,
853 0, 342, 343, 72, 0, 0, 0, 0, 0, 0,
854 0, 0, 0, 0, 344, 345, 0, 0, 0, 0,
855 73, 74, 75, 76, 77, 0, 0, 0, 0, 0,
856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
857 0, 0, 78, 0, 79, 80, 81, 82, 83, 84,
858 0, 0, 0, 85, 86, 87, 88, 89, 90, 91,
859 92, 93, 94, 95, 96, 97, 98, 99, 100, 66,
860 0, 0, 0, 0, 0, 0, 0, 0, 67, 0,
861 0, 0, 0, 68, 69, 10, 11, 12, 13, 14,
862 15, 16, 17, 0, 0, 0, 70, 0, 0, 0,
863 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
864 0, 1, 2, 3, 4, 5, 6, 7, 8, 0,
865 0, 72, 0, 0, 9, 0, 10, 11, 12, 13,
866 14, 15, 16, 17, 0, 0, 0, 106, 73, 74,
867 75, 76, 77, 0, 0, 0, 0, 0, 0, 0,
868 577, 0, 0, 0, 0, 0, 0, 0, 0, 0,
869 78, 0, 79, 80, 81, 82, 83, 84, 0, 0,
870 0, 85, 86, 87, 88, 89, 90, 91, 92, 93,
871 94, 95, 96, 97, 98, 99, 100, 66, 0, 0,
872 0, 0, 0, 0, 0, 0, 67, 137, 138, 25,
873 110, 68, 69, 0, 0, 0, 0, 0, 0, 0,
874 0, 0, 0, 0, 70, 471, 0, 472, 0, 473,
875 0, 0, 474, 0, 0, 0, 0, 0, 0, 0,
876 0, 0, 0, 0, 0, 0, 0, 342, 343, 72,
877 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
878 344, 345, 0, 0, 0, 0, 73, 74, 75, 76,
879 77, 0, 0, 0, 0, 0, 0, 0, 0, 0,
880 0, 0, 0, 0, 0, 0, 0, 0, 78, 0,
881 79, 80, 81, 82, 83, 84, 0, 0, 0, 85,
882 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
883 96, 97, 98, 99, 100, 66, 0, 0, 0, 0,
884 0, 0, 0, 0, 67, 0, 0, 0, 0, 68,
885 69, 0, 0, 0, 0, 0, 0, 0, 0, 0,
886 0, 0, 70, 0, 0, 339, 0, 340, 0, 0,
887 341, 0, 0, 0, 0, 0, 0, 0, 0, 0,
888 0, 0, 0, 0, 0, 342, 343, 0, 0, 0,
889 0, 0, 0, 0, 0, 0, 0, 0, 344, 345,
890 0, 0, 0, 0, 73, 74, 75, 76, 77, 66,
891 0, 0, 0, 0, 0, 0, 346, 0, 67, 0,
892 0, 0, 0, 68, 69, 0, 78, 0, 79, 80,
893 81, 82, 83, 84, 0, 0, 70, 85, 86, 87,
894 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
895 98, 99, 100, 0, 0, 0, 0, 0, 66, 0,
896 0, 72, 0, 0, 0, 0, 0, 67, 0, 0,
897 0, 0, 68, 69, 0, 0, 0, 0, 73, 74,
898 75, 76, 77, 0, 0, 70, 0, 0, 0, 0,
899 0, 0, 0, 190, 0, 0, 0, 0, 0, 0,
900 78, 0, 79, 80, 81, 82, 83, 84, 0, 0,
901 0, 85, 86, 87, 88, 89, 90, 91, 92, 93,
902 94, 95, 96, 97, 98, 99, 100, 73, 74, 75,
903 76, 77, 0, 0, 0, 0, 0, 0, 0, 0,
904 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,
905 0, 79, 80, 81, 82, 83, 84, 0, 0, 0,
906 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
907 95, 96, 97, 98, 99, 100, 66, 0, 0, 0,
908 0, 0, 0, 0, 0, 67, 0, 0, 0, 0,
909 68, 69, 0, 0, 0, 0, 0, 0, 0, 0,
910 0, 0, 0, 70, 0, 0, 0, 0, 0, 0,
911 0, 415, 0, 0, 0, 0, 0, 0, 0, 0,
912 0, 0, 0, 0, 0, 66, 0, 0, 0, 0,
913 0, 0, 0, 0, 67, 0, 0, 0, 0, 68,
914 69, 0, 0, 0, 0, 73, 74, 75, 76, 77,
915 0, 0, 70, 0, 0, 0, 0, 0, 0, 0,
916 447, 0, 0, 0, 0, 0, 0, 78, 0, 79,
917 80, 81, 82, 83, 84, 0, 0, 0, 85, 86,
918 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
919 97, 98, 99, 100, 73, 74, 75, 76, 77, 66,
920 0, 0, 0, 0, 0, 0, 0, 0, 67, 0,
921 0, 0, 0, 68, 69, 0, 78, 0, 79, 80,
922 81, 82, 83, 84, 0, 0, 70, 85, 86, 87,
923 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
924 98, 99, 100, 0, 0, 0, 0, 0, 0, 0,
925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
926 1, 2, 3, 4, 5, 6, 7, 8, 73, 74,
927 75, 76, 77, 539, 0, 10, 11, 12, 13, 14,
928 15, 16, 17, 0, 0, 0, 106, 0, 0, 0,
929 78, 0, 79, 80, 81, 82, 83, 84, 0, 0,
930 0, 85, 86, 87, 88, 89, 90, 91, 92, 93,
931 94, 95, 96, 97, 98, 99, 100, 1, 2, 3,
932 4, 5, 6, 7, 8, 0, 540, 0, 0, 0,
933 539, 0, 10, 11, 12, 13, 14, 15, 16, 17,
934 0, 0, 0, 106, 0, 0, 107, 108, 109, 382,
935 1, 2, 3, 4, 5, 6, 7, 8, 0, 0,
936 0, 0, 0, 9, 0, 10, 11, 12, 13, 14,
937 15, 16, 17, 0, 0, 0, 106, 0, 0, 0,
938 0, 0, 0, 543, 0, 0, 0, 0, 0, 0,
939 0, 0, 0, 0, 1, 2, 3, 4, 5, 6,
940 7, 8, 0, 107, 108, 109, 382, 9, 0, 10,
941 11, 12, 13, 14, 15, 16, 17, 0, 0, 0,
942 106, 0, 0, 0, 0, 0, 0, 1, 2, 3,
943 4, 5, 6, 7, 8, 0, 107, 108, 109, 110,
944 9, 0, 10, 11, 12, 13, 14, 15, 16, 17,
945 0, 0, 0, 106, 0, 0, 0, 0, 0, 0,
946 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
947 0, 1, 2, 3, 4, 5, 6, 7, 8, 0,
948 137, 138, 25, 110, 381, 0, 10, 11, 12, 13,
949 14, 15, 16, 17, 0, 0, 0, 106, 0, 0,
950 0, 0, 0, 0, 1, 2, 3, 4, 5, 6,
951 7, 8, 0, 107, 108, 109, 110, 460, 0, 10,
952 11, 12, 13, 14, 15, 16, 17, 564, 0, 0,
953 106, 0, 0, 0, 0, 0, 0, 0, 419, 420,
954 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
955 431, 432, 433, 434, 435, 436, 498, 107, 108, 109,
956 382, 553, 0, 0, 0, 419, 420, 421, 422, 423,
957 424, 425, 426, 427, 428, 429, 430, 431, 432, 433,
958 434, 435, 436, 0, 600, 0, 0, 0, 437, 0,
959 107, 108, 109, 419, 420, 421, 422, 423, 424, 425,
960 426, 427, 428, 429, 430, 431, 432, 433, 434, 435,
961 436, 696, 0, 0, 0, 0, 553, 0, 0, 0,
962 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
963 429, 430, 431, 432, 433, 434, 435, 436, 573, 0,
964 0, 0, 0, 553, 0, 419, 420, 421, 422, 423,
965 424, 425, 426, 427, 428, 429, 430, 431, 432, 433,
966 434, 435, 436, 636, 0, 0, 0, 0, 437, 0,
967 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
968 429, 430, 431, 432, 433, 434, 435, 436, 0, 0,
969 0, 0, 0, 553, 419, 420, 421, 422, 423, 424,
970 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
971 435, 436, 0, 0, 0, 0, 0, 437, 419, 420,
972 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
973 431, 432, 433, 434, 435, 436, 0, 0, 0, 0,
974 0, 553, 419, 420, 421, 422, 423, 424, 425, 426,
975 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
976 0, 0, 0, 0, 0, 437, 419, 420, 421, 422,
977 423, 424, 425, 426, 427, 428, 429, 430, 431, 432,
978 433, 434, 435, 436, 0, 0, 0, 0, 0, 553
981 static const short int yycheck
[] =
983 39, 29, 9, 26, 18, 132, 22, 136, 22, 9,
984 71, 22, 392, 165, 404, 395, 341, 546, 0, 18,
985 546, 555, 347, 23, 24, 25, 372, 546, 531, 578,
986 349, 34, 39, 55, 398, 581, 18, 583, 0, 32,
987 34, 38, 37, 3, 34, 39, 6, 42, 97, 31,
988 10, 33, 12, 13, 14, 15, 16, 17, 55, 449,
989 33, 590, 41, 42, 71, 4, 5, 6, 41, 598,
990 9, 33, 598, 9, 620, 11, 466, 70, 205, 39,
991 37, 38, 50, 40, 474, 475, 450, 110, 6, 7,
992 8, 17, 18, 418, 0, 414, 6, 646, 417, 9,
993 37, 140, 102, 637, 41, 42, 128, 107, 108, 109,
994 17, 18, 437, 438, 39, 40, 462, 40, 464, 622,
995 43, 124, 38, 37, 40, 125, 40, 129, 677, 190,
996 633, 42, 463, 140, 465, 135, 136, 137, 138, 37,
997 674, 38, 671, 38, 144, 679, 39, 40, 155, 165,
998 653, 165, 671, 42, 165, 701, 546, 686, 197, 55,
999 686, 39, 40, 553, 554, 164, 43, 36, 697, 703,
1000 184, 185, 172, 184, 185, 555, 39, 40, 697, 358,
1001 359, 500, 164, 190, 503, 504, 186, 37, 188, 115,
1002 116, 117, 118, 119, 120, 146, 147, 148, 105, 106,
1003 107, 108, 109, 110, 111, 112, 113, 38, 598, 599,
1004 137, 138, 341, 41, 31, 42, 31, 31, 347, 37,
1005 42, 98, 99, 100, 101, 102, 103, 104, 31, 38,
1006 6, 44, 38, 623, 38, 37, 123, 42, 46, 38,
1007 586, 587, 632, 37, 41, 43, 636, 572, 573, 4,
1008 5, 6, 7, 8, 9, 10, 11, 637, 37, 33,
1009 46, 34, 17, 40, 19, 20, 21, 22, 23, 24,
1010 25, 26, 39, 38, 38, 30, 45, 37, 46, 37,
1011 670, 671, 38, 46, 32, 46, 38, 37, 440, 418,
1012 39, 610, 611, 39, 674, 39, 686, 40, 33, 679,
1013 98, 99, 100, 101, 102, 103, 104, 697, 437, 438,
1014 371, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1015 12, 41, 383, 703, 37, 17, 41, 19, 20, 21,
1016 22, 23, 24, 25, 26, 90, 91, 92, 30, 39,
1017 39, 341, 39, 39, 383, 39, 346, 347, 39, 37,
1018 40, 40, 391, 40, 393, 507, 39, 41, 3, 382,
1019 46, 6, 362, 114, 371, 10, 38, 12, 13, 14,
1020 15, 16, 17, 38, 381, 33, 383, 98, 99, 100,
1021 101, 102, 103, 104, 40, 38, 447, 41, 38, 37,
1022 39, 33, 39, 135, 394, 41, 40, 37, 90, 91,
1023 92, 40, 441, 442, 39, 38, 40, 407, 40, 32,
1024 410, 38, 33, 39, 33, 415, 40, 39, 418, 33,
1025 40, 39, 39, 332, 440, 41, 440, 40, 39, 440,
1026 39, 33, 623, 140, 46, 166, 560, 437, 438, 179,
1027 447, 31, 361, 572, 573, 617, 185, 467, 28, 463,
1028 583, 465, 463, 460, 465, 455, 697, 496, 391, 459,
1029 365, 589, 562, 474, 395, -1, -1, 467, 4, 5,
1030 6, 7, 8, 9, 10, 11, -1, -1, -1, -1,
1031 -1, 608, -1, 19, 20, 21, 22, 23, 24, 25,
1032 26, 507, -1, 507, 30, -1, 507, 497, -1, -1,
1033 -1, -1, -1, -1, -1, -1, -1, -1, 3, -1,
1034 510, -1, -1, -1, -1, -1, -1, 12, 557, -1,
1035 -1, 560, 17, 18, -1, -1, 549, -1, -1, -1,
1036 -1, 559, 539, -1, -1, 30, -1, 537, -1, -1,
1037 -1, -1, -1, 38, -1, -1, 36, -1, -1, -1,
1038 -1, -1, -1, -1, 90, 91, 92, -1, -1, -1,
1039 55, -1, 562, -1, -1, -1, 605, -1, -1, -1,
1040 -1, -1, 572, 573, -1, -1, 615, 72, 73, 74,
1041 75, 76, 72, 73, 74, 75, 76, 77, 78, 79,
1042 80, 81, 82, 83, 622, 85, 86, 87, 88, 94,
1043 -1, 96, 97, 98, 99, 100, 101, -1, -1, 609,
1044 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1045 115, 116, 117, 118, 119, 120, 40, 666, -1, -1,
1046 -1, -1, 671, -1, 48, 49, 50, 51, 52, 53,
1047 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1048 64, 65, -1, -1, -1, -1, 0, 71, 697, 3,
1049 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1050 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1051 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1052 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1053 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1054 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1055 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1056 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1057 84, 85, -1, 87, -1, 89, 90, 91, 92, 93,
1058 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
1059 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1060 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
1061 124, -1, 126, 127, 128, 129, 0, -1, -1, 3,
1062 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1063 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1064 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1065 34, 35, -1, 37, 38, 39, 40, 41, 42, 43,
1066 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1067 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1068 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1069 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1070 84, 85, -1, 87, -1, 89, 90, 91, 92, 93,
1071 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
1072 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1073 114, 115, 116, 117, 118, 119, 120, 121, 3, -1,
1074 124, -1, 126, 127, 128, 129, -1, 12, -1, -1,
1075 -1, -1, 17, 18, -1, -1, -1, -1, -1, -1,
1076 -1, -1, 27, 28, 29, 30, -1, -1, -1, -1,
1077 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1078 4, 5, 6, 7, 8, 9, 10, 11, -1, -1,
1079 -1, -1, -1, 17, -1, 19, 20, 21, 22, 23,
1080 24, 25, 26, -1, -1, -1, 30, 72, 73, 74,
1081 75, 76, 36, 37, -1, -1, -1, -1, -1, -1,
1082 -1, -1, -1, 47, -1, -1, -1, -1, -1, 94,
1083 -1, 96, 97, 98, 99, 100, 101, -1, -1, -1,
1084 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1085 115, 116, 117, 118, 119, 120, -1, -1, -1, -1,
1086 -1, 126, -1, 128, -1, 89, 90, 91, 92, 93,
1087 94, 95, -1, 97, 4, 5, 6, 7, 8, 9,
1088 10, 11, -1, -1, -1, -1, -1, 17, -1, 19,
1089 20, 21, 22, 23, 24, 25, 26, 121, -1, -1,
1090 30, -1, 126, 3, 4, 5, 6, 7, 8, 9,
1091 10, 11, 12, -1, -1, -1, -1, 17, 18, 19,
1092 20, 21, 22, 23, 24, 25, 26, -1, -1, -1,
1093 30, 31, -1, 33, -1, 35, -1, -1, 38, -1,
1094 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1095 -1, -1, -1, 53, 54, 55, -1, -1, -1, 89,
1096 90, 91, 92, 93, -1, -1, 66, 67, -1, -1,
1097 -1, -1, 72, 73, 74, 75, 76, -1, -1, -1,
1098 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1099 90, 91, 92, 93, 94, -1, 96, 97, 98, 99,
1100 100, 101, -1, -1, -1, 105, 106, 107, 108, 109,
1101 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
1102 120, 3, -1, -1, -1, -1, -1, -1, -1, -1,
1103 12, -1, -1, -1, -1, 17, 18, -1, -1, -1,
1104 -1, -1, -1, -1, -1, 27, 28, 29, 30, 31,
1105 -1, 33, 34, 35, -1, -1, 38, -1, -1, -1,
1106 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1107 -1, 53, 54, 55, -1, -1, -1, -1, -1, -1,
1108 -1, -1, -1, -1, 66, 67, -1, -1, -1, -1,
1109 72, 73, 74, 75, 76, -1, -1, -1, -1, -1,
1110 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1111 -1, -1, 94, -1, 96, 97, 98, 99, 100, 101,
1112 -1, -1, -1, 105, 106, 107, 108, 109, 110, 111,
1113 112, 113, 114, 115, 116, 117, 118, 119, 120, 3,
1114 -1, -1, -1, -1, -1, -1, -1, -1, 12, -1,
1115 -1, -1, -1, 17, 18, -1, -1, -1, -1, -1,
1116 -1, -1, -1, 27, -1, -1, 30, 31, -1, 33,
1117 -1, 35, -1, -1, 38, -1, -1, -1, -1, -1,
1118 -1, -1, -1, -1, -1, -1, 50, -1, -1, 53,
1119 54, 55, -1, -1, -1, -1, -1, -1, -1, -1,
1120 -1, -1, 66, 67, -1, -1, -1, -1, 72, 73,
1121 74, 75, 76, -1, -1, -1, -1, -1, -1, -1,
1122 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1123 94, 95, 96, 97, 98, 99, 100, 101, -1, -1,
1124 -1, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1125 114, 115, 116, 117, 118, 119, 120, 3, -1, -1,
1126 -1, -1, -1, -1, -1, -1, 12, -1, -1, -1,
1127 -1, 17, 18, -1, -1, -1, -1, -1, -1, -1,
1128 -1, 27, -1, -1, 30, 31, -1, 33, -1, 35,
1129 -1, -1, 38, -1, -1, -1, -1, -1, -1, -1,
1130 -1, -1, -1, -1, -1, -1, -1, 53, 54, 55,
1131 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1132 66, 67, -1, -1, -1, -1, 72, 73, 74, 75,
1133 76, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1134 -1, -1, -1, -1, -1, -1, -1, -1, 94, 95,
1135 96, 97, 98, 99, 100, 101, -1, -1, -1, 105,
1136 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1137 116, 117, 118, 119, 120, 3, -1, -1, -1, -1,
1138 -1, -1, -1, -1, 12, -1, -1, -1, -1, 17,
1139 18, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1140 -1, -1, 30, 31, -1, 33, -1, 35, -1, -1,
1141 38, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1142 -1, -1, 50, -1, -1, 53, 54, 55, -1, -1,
1143 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
1144 -1, -1, 70, -1, 72, 73, 74, 75, 76, -1,
1145 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1146 -1, -1, -1, -1, -1, -1, 94, -1, 96, 97,
1147 98, 99, 100, 101, -1, -1, -1, 105, 106, 107,
1148 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1149 118, 119, 120, 3, -1, -1, -1, -1, -1, -1,
1150 -1, -1, 12, -1, -1, -1, -1, 17, 18, -1,
1151 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1152 30, 31, 32, 33, -1, 35, -1, -1, 38, -1,
1153 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1154 50, -1, -1, 53, 54, 55, -1, -1, -1, -1,
1155 -1, -1, -1, -1, -1, -1, 66, 67, -1, -1,
1156 -1, -1, 72, 73, 74, 75, 76, -1, -1, -1,
1157 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1158 -1, -1, -1, -1, 94, -1, 96, 97, 98, 99,
1159 100, 101, -1, -1, -1, 105, 106, 107, 108, 109,
1160 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
1161 120, 3, -1, -1, -1, -1, -1, -1, -1, -1,
1162 12, -1, -1, -1, -1, 17, 18, -1, -1, -1,
1163 -1, -1, -1, -1, -1, -1, -1, -1, 30, 31,
1164 -1, 33, -1, 35, -1, -1, 38, -1, -1, -1,
1165 -1, -1, -1, -1, -1, -1, -1, -1, 50, -1,
1166 -1, 53, 54, 55, -1, -1, -1, -1, -1, -1,
1167 -1, -1, -1, -1, 66, 67, -1, -1, -1, -1,
1168 72, 73, 74, 75, 76, -1, -1, -1, -1, -1,
1169 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1170 -1, -1, 94, -1, 96, 97, 98, 99, 100, 101,
1171 -1, -1, -1, 105, 106, 107, 108, 109, 110, 111,
1172 112, 113, 114, 115, 116, 117, 118, 119, 120, 3,
1173 -1, -1, -1, -1, -1, -1, -1, -1, 12, -1,
1174 -1, -1, -1, 17, 18, 19, 20, 21, 22, 23,
1175 24, 25, 26, -1, -1, -1, 30, -1, -1, -1,
1176 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1177 -1, 4, 5, 6, 7, 8, 9, 10, 11, -1,
1178 -1, 55, -1, -1, 17, -1, 19, 20, 21, 22,
1179 23, 24, 25, 26, -1, -1, -1, 30, 72, 73,
1180 74, 75, 76, -1, -1, -1, -1, -1, -1, -1,
1181 43, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1182 94, -1, 96, 97, 98, 99, 100, 101, -1, -1,
1183 -1, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1184 114, 115, 116, 117, 118, 119, 120, 3, -1, -1,
1185 -1, -1, -1, -1, -1, -1, 12, 90, 91, 92,
1186 93, 17, 18, -1, -1, -1, -1, -1, -1, -1,
1187 -1, -1, -1, -1, 30, 31, -1, 33, -1, 35,
1188 -1, -1, 38, -1, -1, -1, -1, -1, -1, -1,
1189 -1, -1, -1, -1, -1, -1, -1, 53, 54, 55,
1190 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1191 66, 67, -1, -1, -1, -1, 72, 73, 74, 75,
1192 76, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1193 -1, -1, -1, -1, -1, -1, -1, -1, 94, -1,
1194 96, 97, 98, 99, 100, 101, -1, -1, -1, 105,
1195 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1196 116, 117, 118, 119, 120, 3, -1, -1, -1, -1,
1197 -1, -1, -1, -1, 12, -1, -1, -1, -1, 17,
1198 18, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1199 -1, -1, 30, -1, -1, 33, -1, 35, -1, -1,
1200 38, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1201 -1, -1, -1, -1, -1, 53, 54, -1, -1, -1,
1202 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
1203 -1, -1, -1, -1, 72, 73, 74, 75, 76, 3,
1204 -1, -1, -1, -1, -1, -1, 84, -1, 12, -1,
1205 -1, -1, -1, 17, 18, -1, 94, -1, 96, 97,
1206 98, 99, 100, 101, -1, -1, 30, 105, 106, 107,
1207 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1208 118, 119, 120, -1, -1, -1, -1, -1, 3, -1,
1209 -1, 55, -1, -1, -1, -1, -1, 12, -1, -1,
1210 -1, -1, 17, 18, -1, -1, -1, -1, 72, 73,
1211 74, 75, 76, -1, -1, 30, -1, -1, -1, -1,
1212 -1, -1, -1, 38, -1, -1, -1, -1, -1, -1,
1213 94, -1, 96, 97, 98, 99, 100, 101, -1, -1,
1214 -1, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1215 114, 115, 116, 117, 118, 119, 120, 72, 73, 74,
1216 75, 76, -1, -1, -1, -1, -1, -1, -1, -1,
1217 -1, -1, -1, -1, -1, -1, -1, -1, -1, 94,
1218 -1, 96, 97, 98, 99, 100, 101, -1, -1, -1,
1219 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1220 115, 116, 117, 118, 119, 120, 3, -1, -1, -1,
1221 -1, -1, -1, -1, -1, 12, -1, -1, -1, -1,
1222 17, 18, -1, -1, -1, -1, -1, -1, -1, -1,
1223 -1, -1, -1, 30, -1, -1, -1, -1, -1, -1,
1224 -1, 38, -1, -1, -1, -1, -1, -1, -1, -1,
1225 -1, -1, -1, -1, -1, 3, -1, -1, -1, -1,
1226 -1, -1, -1, -1, 12, -1, -1, -1, -1, 17,
1227 18, -1, -1, -1, -1, 72, 73, 74, 75, 76,
1228 -1, -1, 30, -1, -1, -1, -1, -1, -1, -1,
1229 38, -1, -1, -1, -1, -1, -1, 94, -1, 96,
1230 97, 98, 99, 100, 101, -1, -1, -1, 105, 106,
1231 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1232 117, 118, 119, 120, 72, 73, 74, 75, 76, 3,
1233 -1, -1, -1, -1, -1, -1, -1, -1, 12, -1,
1234 -1, -1, -1, 17, 18, -1, 94, -1, 96, 97,
1235 98, 99, 100, 101, -1, -1, 30, 105, 106, 107,
1236 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1237 118, 119, 120, -1, -1, -1, -1, -1, -1, -1,
1238 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1239 4, 5, 6, 7, 8, 9, 10, 11, 72, 73,
1240 74, 75, 76, 17, -1, 19, 20, 21, 22, 23,
1241 24, 25, 26, -1, -1, -1, 30, -1, -1, -1,
1242 94, -1, 96, 97, 98, 99, 100, 101, -1, -1,
1243 -1, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1244 114, 115, 116, 117, 118, 119, 120, 4, 5, 6,
1245 7, 8, 9, 10, 11, -1, 70, -1, -1, -1,
1246 17, -1, 19, 20, 21, 22, 23, 24, 25, 26,
1247 -1, -1, -1, 30, -1, -1, 90, 91, 92, 93,
1248 4, 5, 6, 7, 8, 9, 10, 11, -1, -1,
1249 -1, -1, -1, 17, -1, 19, 20, 21, 22, 23,
1250 24, 25, 26, -1, -1, -1, 30, -1, -1, -1,
1251 -1, -1, -1, 70, -1, -1, -1, -1, -1, -1,
1252 -1, -1, -1, -1, 4, 5, 6, 7, 8, 9,
1253 10, 11, -1, 90, 91, 92, 93, 17, -1, 19,
1254 20, 21, 22, 23, 24, 25, 26, -1, -1, -1,
1255 30, -1, -1, -1, -1, -1, -1, 4, 5, 6,
1256 7, 8, 9, 10, 11, -1, 90, 91, 92, 93,
1257 17, -1, 19, 20, 21, 22, 23, 24, 25, 26,
1258 -1, -1, -1, 30, -1, -1, -1, -1, -1, -1,
1259 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1260 -1, 4, 5, 6, 7, 8, 9, 10, 11, -1,
1261 90, 91, 92, 93, 17, -1, 19, 20, 21, 22,
1262 23, 24, 25, 26, -1, -1, -1, 30, -1, -1,
1263 -1, -1, -1, -1, 4, 5, 6, 7, 8, 9,
1264 10, 11, -1, 90, 91, 92, 93, 17, -1, 19,
1265 20, 21, 22, 23, 24, 25, 26, 37, -1, -1,
1266 30, -1, -1, -1, -1, -1, -1, -1, 48, 49,
1267 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1268 60, 61, 62, 63, 64, 65, 39, 90, 91, 92,
1269 93, 71, -1, -1, -1, 48, 49, 50, 51, 52,
1270 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1271 63, 64, 65, -1, 39, -1, -1, -1, 71, -1,
1272 90, 91, 92, 48, 49, 50, 51, 52, 53, 54,
1273 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1274 65, 39, -1, -1, -1, -1, 71, -1, -1, -1,
1275 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1276 58, 59, 60, 61, 62, 63, 64, 65, 41, -1,
1277 -1, -1, -1, 71, -1, 48, 49, 50, 51, 52,
1278 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1279 63, 64, 65, 41, -1, -1, -1, -1, 71, -1,
1280 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1281 58, 59, 60, 61, 62, 63, 64, 65, -1, -1,
1282 -1, -1, -1, 71, 48, 49, 50, 51, 52, 53,
1283 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1284 64, 65, -1, -1, -1, -1, -1, 71, 48, 49,
1285 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1286 60, 61, 62, 63, 64, 65, -1, -1, -1, -1,
1287 -1, 71, 48, 49, 50, 51, 52, 53, 54, 55,
1288 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1289 -1, -1, -1, -1, -1, 71, 48, 49, 50, 51,
1290 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1291 62, 63, 64, 65, -1, -1, -1, -1, -1, 71
1294 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1295 symbol of state STATE-NUM. */
1296 static const unsigned char yystos
[] =
1298 0, 4, 5, 6, 7, 8, 9, 10, 11, 17,
1299 19, 20, 21, 22, 23, 24, 25, 26, 30, 36,
1300 37, 47, 89, 90, 91, 92, 93, 94, 95, 97,
1301 121, 126, 137, 138, 139, 140, 141, 159, 164, 166,
1302 167, 168, 169, 170, 171, 172, 173, 174, 179, 182,
1303 183, 186, 187, 188, 189, 190, 191, 194, 196, 197,
1304 203, 208, 218, 219, 9, 11, 3, 12, 17, 18,
1305 30, 38, 55, 72, 73, 74, 75, 76, 94, 96,
1306 97, 98, 99, 100, 101, 105, 106, 107, 108, 109,
1307 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
1308 120, 135, 216, 217, 234, 244, 30, 90, 91, 92,
1309 93, 187, 194, 36, 72, 73, 74, 75, 76, 77,
1310 78, 79, 80, 81, 82, 83, 85, 86, 87, 88,
1311 142, 143, 144, 145, 147, 148, 149, 90, 91, 165,
1312 166, 188, 189, 194, 203, 209, 210, 135, 135, 135,
1313 211, 3, 6, 10, 12, 17, 160, 161, 167, 34,
1314 219, 50, 252, 253, 30, 89, 186, 0, 139, 135,
1315 195, 215, 216, 4, 5, 6, 9, 175, 6, 172,
1316 178, 37, 129, 180, 38, 38, 42, 42, 215, 216,
1317 38, 135, 55, 128, 135, 135, 135, 40, 184, 27,
1318 28, 29, 126, 128, 135, 150, 151, 36, 0, 3,
1319 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1320 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1321 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1322 34, 35, 37, 38, 39, 40, 41, 42, 43, 44,
1323 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1324 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1325 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1326 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1327 85, 87, 89, 90, 91, 92, 93, 94, 95, 96,
1328 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1329 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1330 117, 118, 119, 120, 121, 124, 126, 127, 128, 129,
1331 136, 154, 155, 154, 34, 124, 146, 135, 150, 33,
1332 35, 38, 53, 54, 66, 67, 84, 134, 135, 156,
1333 135, 211, 135, 211, 37, 171, 135, 41, 213, 213,
1334 213, 213, 216, 31, 37, 42, 31, 165, 180, 44,
1335 214, 38, 135, 6, 176, 6, 9, 177, 175, 38,
1336 37, 17, 93, 166, 192, 193, 194, 192, 135, 204,
1337 205, 98, 99, 100, 101, 102, 103, 104, 225, 226,
1338 227, 240, 241, 247, 248, 249, 135, 215, 185, 195,
1339 216, 123, 154, 136, 156, 38, 135, 156, 38, 48,
1340 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1341 59, 60, 61, 62, 63, 64, 65, 71, 133, 41,
1342 42, 199, 199, 37, 198, 199, 198, 38, 135, 46,
1343 225, 38, 37, 37, 33, 215, 214, 34, 181, 216,
1344 17, 215, 39, 40, 39, 40, 46, 40, 43, 195,
1345 230, 31, 33, 35, 38, 134, 195, 206, 207, 222,
1346 242, 243, 244, 252, 195, 135, 250, 251, 18, 243,
1347 244, 43, 226, 206, 39, 135, 40, 38, 39, 135,
1348 156, 157, 158, 156, 156, 38, 165, 200, 195, 195,
1349 215, 27, 28, 29, 34, 162, 163, 206, 43, 3,
1350 6, 10, 12, 13, 14, 15, 16, 17, 39, 220,
1351 221, 223, 224, 45, 135, 34, 39, 216, 214, 17,
1352 70, 193, 214, 70, 206, 205, 46, 37, 30, 93,
1353 166, 206, 206, 71, 133, 46, 37, 38, 32, 46,
1354 38, 37, 40, 37, 37, 39, 195, 135, 152, 153,
1355 39, 39, 40, 41, 33, 41, 212, 43, 165, 135,
1356 37, 41, 39, 40, 222, 39, 39, 39, 27, 95,
1357 96, 114, 206, 229, 231, 232, 233, 234, 253, 39,
1358 39, 206, 206, 242, 195, 252, 185, 251, 39, 40,
1359 156, 156, 40, 33, 41, 40, 201, 212, 39, 223,
1360 41, 221, 223, 46, 214, 214, 114, 231, 17, 18,
1361 234, 237, 38, 38, 229, 206, 41, 40, 245, 195,
1362 39, 154, 135, 33, 41, 38, 195, 202, 37, 201,
1363 223, 252, 162, 38, 206, 222, 206, 70, 242, 246,
1364 39, 37, 39, 41, 33, 212, 40, 37, 70, 222,
1365 40, 40, 235, 39, 40, 38, 40, 195, 32, 38,
1366 206, 195, 228, 229, 230, 236, 253, 39, 242, 33,
1367 33, 212, 39, 238, 239, 242, 39, 40, 229, 40,
1368 39, 41, 39, 40, 228, 33, 223, 39, 242, 39
1371 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1372 static const unsigned char yyr1
[] =
1374 0, 132, 133, 133, 133, 133, 133, 133, 133, 133,
1375 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
1376 134, 134, 134, 134, 135, 135, 135, 135, 135, 135,
1377 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
1378 135, 135, 136, 136, 136, 136, 136, 136, 136, 136,
1379 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1380 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1381 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1382 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1383 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1384 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1385 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1386 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1387 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1388 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1389 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1390 136, 136, 136, 136, 137, 137, 138, 138, 139, 139,
1391 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
1392 139, 140, 141, 141, 142, 142, 142, 142, 142, 142,
1393 142, 142, 143, 143, 144, 144, 145, 145, 145, 146,
1394 146, 147, 147, 148, 148, 148, 149, 149, 150, 150,
1395 150, 150, 150, 150, 151, 151, 152, 152, 153, 153,
1396 154, 154, 155, 155, 156, 156, 156, 156, 156, 156,
1397 156, 156, 156, 156, 157, 157, 158, 158, 159, 160,
1398 161, 161, 161, 161, 162, 162, 162, 163, 163, 163,
1399 163, 164, 164, 165, 165, 165, 165, 165, 165, 166,
1400 166, 167, 167, 168, 168, 168, 169, 169, 169, 169,
1401 170, 170, 170, 171, 171, 171, 171, 171, 171, 171,
1402 171, 172, 172, 173, 173, 173, 174, 174, 174, 174,
1403 175, 175, 175, 175, 175, 176, 176, 177, 177, 177,
1404 178, 178, 178, 179, 179, 180, 180, 181, 181, 182,
1405 183, 184, 184, 185, 185, 186, 186, 187, 187, 188,
1406 188, 189, 189, 190, 190, 190, 190, 191, 191, 192,
1407 192, 192, 192, 193, 193, 193, 193, 194, 194, 194,
1408 194, 195, 195, 196, 197, 198, 198, 199, 200, 200,
1409 201, 201, 202, 202, 203, 204, 204, 205, 205, 206,
1410 206, 206, 206, 206, 206, 207, 207, 207, 207, 208,
1411 209, 210, 211, 211, 212, 212, 212, 212, 213, 213,
1412 214, 214, 215, 215, 216, 216, 217, 217, 218, 218,
1413 219, 219, 219, 220, 220, 221, 221, 222, 223, 224,
1414 224, 224, 224, 224, 224, 224, 224, 224, 225, 225,
1415 226, 226, 226, 226, 226, 227, 227, 228, 228, 228,
1416 229, 229, 229, 229, 229, 229, 230, 230, 231, 232,
1417 233, 234, 234, 234, 234, 234, 234, 234, 234, 234,
1418 234, 235, 235, 236, 236, 237, 237, 238, 238, 239,
1419 239, 240, 241, 242, 242, 242, 243, 243, 244, 244,
1420 244, 244, 244, 244, 244, 244, 245, 245, 246, 246,
1421 247, 248, 248, 249, 250, 250, 251, 252, 252, 253
1424 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
1425 static const unsigned char yyr2
[] =
1427 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1428 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1429 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1430 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1431 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1432 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1433 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1434 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1435 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1436 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1437 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1438 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1439 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1440 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1441 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1442 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1443 1, 1, 1, 1, 0, 1, 1, 2, 1, 1,
1444 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1445 1, 3, 2, 3, 2, 2, 1, 2, 2, 2,
1446 1, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1447 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1448 1, 1, 1, 1, 6, 2, 0, 1, 1, 3,
1449 0, 1, 1, 2, 3, 2, 3, 5, 2, 4,
1450 1, 1, 1, 4, 0, 1, 1, 3, 6, 1,
1451 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
1452 1, 3, 4, 1, 1, 2, 4, 4, 2, 2,
1453 1, 1, 1, 2, 2, 2, 1, 1, 1, 1,
1454 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
1455 1, 1, 1, 1, 1, 2, 1, 1, 2, 2,
1456 0, 1, 2, 1, 2, 0, 1, 0, 1, 1,
1457 0, 1, 2, 3, 4, 0, 4, 1, 2, 2,
1458 3, 0, 2, 1, 3, 1, 2, 1, 1, 5,
1459 7, 5, 7, 6, 7, 6, 5, 1, 2, 0,
1460 1, 1, 3, 1, 2, 3, 2, 1, 2, 4,
1461 3, 3, 2, 4, 4, 1, 1, 3, 4, 5,
1462 0, 2, 2, 4, 4, 1, 3, 1, 3, 1,
1463 4, 3, 3, 2, 5, 1, 1, 1, 1, 2,
1464 2, 2, 0, 1, 0, 2, 7, 9, 0, 7,
1465 0, 3, 0, 1, 1, 2, 1, 2, 4, 5,
1466 7, 8, 13, 1, 3, 2, 4, 2, 1, 1,
1467 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
1468 1, 1, 1, 1, 1, 3, 6, 1, 2, 1,
1469 1, 1, 2, 1, 1, 1, 3, 4, 6, 8,
1470 5, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1471 1, 0, 2, 1, 3, 1, 1, 0, 1, 1,
1472 3, 3, 3, 1, 1, 3, 5, 6, 1, 1,
1473 1, 1, 1, 1, 1, 1, 0, 2, 1, 3,
1474 3, 1, 1, 3, 1, 3, 4, 0, 1, 1
1478 /* YYDPREC[RULE-NUM] -- Dynamic precedence of rule #RULE-NUM (0 if none). */
1479 static const unsigned char yydprec
[] =
1481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1505 0, 0, 0, 0, 0, 0, 0, 0, 0, 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
1531 /* YYMERGER[RULE-NUM] -- Index of merging function for rule #RULE-NUM. */
1532 static const unsigned char yymerger
[] =
1534 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1541 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1546 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1548 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1550 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1551 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1552 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1553 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1554 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1555 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1559 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1560 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1563 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1565 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1567 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1570 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1571 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1572 0, 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
1584 /* YYIMMEDIATE[RULE-NUM] -- True iff rule #RULE-NUM is not to be deferred, as
1585 in the case of predicates. */
1586 static const yybool yyimmediate
[] =
1588 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1589 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1590 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1593 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1595 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1596 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1598 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1600 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1601 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1602 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1603 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1604 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1605 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1606 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1607 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1608 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1609 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1611 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1612 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1613 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1614 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1615 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1616 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1617 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1618 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1619 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1620 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1621 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1622 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1623 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1624 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1625 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1626 0, 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
1638 /* YYCONFLP[YYPACT[STATE-NUM]] -- Pointer into YYCONFL of start of
1639 list of conflicting reductions corresponding to action entry for
1640 state STATE-NUM in yytable. 0 means no conflicts. The list in
1641 yyconfl is terminated by a rule number of 0. */
1642 static const unsigned short int yyconflp
[] =
1644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1647 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1648 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1649 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1650 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1652 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1654 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1656 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1657 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1658 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1659 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1662 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1667 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1668 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1670 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1671 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1673 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1674 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1676 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1677 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1678 0, 0, 0, 259, 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, 0, 0, 0, 0,
1687 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1688 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1689 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1690 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1691 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1692 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1693 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1694 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1695 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1696 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1697 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1698 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1699 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1700 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1701 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1702 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1703 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1704 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1705 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1706 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1707 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1709 0, 0, 0, 0, 0, 0, 7, 0, 0, 9,
1710 11, 13, 15, 17, 19, 21, 23, 25, 27, 29,
1711 31, 33, 35, 37, 39, 41, 43, 45, 47, 49,
1712 51, 53, 55, 57, 59, 61, 63, 65, 67, 69,
1713 71, 73, 75, 77, 79, 81, 83, 85, 87, 89,
1714 91, 93, 95, 97, 99, 101, 103, 105, 107, 109,
1715 111, 113, 115, 117, 119, 121, 123, 125, 127, 129,
1716 131, 133, 135, 137, 139, 141, 143, 145, 147, 149,
1717 151, 153, 155, 157, 159, 161, 163, 165, 167, 169,
1718 171, 173, 0, 175, 0, 177, 179, 181, 183, 185,
1719 187, 189, 191, 193, 195, 197, 199, 201, 203, 205,
1720 207, 209, 211, 213, 215, 217, 219, 221, 223, 225,
1721 227, 229, 231, 233, 235, 237, 239, 241, 0, 243,
1722 245, 0, 247, 249, 251, 253, 0, 0, 0, 0,
1723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1725 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1726 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1728 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1734 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1737 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1740 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1743 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1748 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1759 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1762 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1763 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1766 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1767 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1769 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1770 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1777 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1778 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1780 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1781 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1799 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1803 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1807 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1808 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1810 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1812 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1813 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1814 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1815 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1825 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1863 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1865 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1866 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1870 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1876 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1877 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1878 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1879 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0,
1911 0, 0, 0, 0, 0, 0, 3, 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 255, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1919 0, 0, 0, 257, 0, 0, 0, 0, 0, 0,
1920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1921 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1922 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1923 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1924 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1926 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1930 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1931 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1932 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1935 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1936 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1938 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1940 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1941 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1942 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1944 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1945 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1946 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1947 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1949 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1950 0, 0, 0, 0, 0, 261, 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, 263
1955 /* YYCONFL[I] -- lists of conflicting rule numbers, each terminated by
1956 0, pointed into by YYCONFLP. */
1957 static const short int yyconfl
[] =
1959 0, 269, 0, 269, 0, 337, 0, 464, 0, 464,
1960 0, 464, 0, 464, 0, 464, 0, 464, 0, 464,
1961 0, 464, 0, 464, 0, 464, 0, 464, 0, 464,
1962 0, 464, 0, 464, 0, 464, 0, 464, 0, 464,
1963 0, 464, 0, 464, 0, 464, 0, 464, 0, 464,
1964 0, 464, 0, 464, 0, 464, 0, 464, 0, 464,
1965 0, 464, 0, 464, 0, 464, 0, 464, 0, 464,
1966 0, 464, 0, 464, 0, 464, 0, 464, 0, 464,
1967 0, 464, 0, 464, 0, 464, 0, 464, 0, 464,
1968 0, 464, 0, 464, 0, 464, 0, 464, 0, 464,
1969 0, 464, 0, 464, 0, 464, 0, 464, 0, 464,
1970 0, 464, 0, 464, 0, 464, 0, 464, 0, 464,
1971 0, 464, 0, 464, 0, 464, 0, 464, 0, 464,
1972 0, 464, 0, 464, 0, 464, 0, 464, 0, 464,
1973 0, 464, 0, 464, 0, 464, 0, 464, 0, 464,
1974 0, 464, 0, 464, 0, 464, 0, 464, 0, 464,
1975 0, 464, 0, 464, 0, 464, 0, 464, 0, 464,
1976 0, 464, 0, 464, 0, 464, 0, 464, 0, 464,
1977 0, 464, 0, 464, 0, 464, 0, 464, 0, 464,
1978 0, 464, 0, 464, 0, 464, 0, 464, 0, 464,
1979 0, 464, 0, 464, 0, 464, 0, 464, 0, 464,
1980 0, 464, 0, 464, 0, 464, 0, 464, 0, 464,
1981 0, 464, 0, 464, 0, 464, 0, 464, 0, 464,
1982 0, 464, 0, 464, 0, 464, 0, 464, 0, 464,
1983 0, 464, 0, 464, 0, 464, 0, 464, 0, 464,
1984 0, 464, 0, 464, 0, 269, 0, 269, 0, 269,
1988 /* Error token number */
1995 #define yynerrs (yystackp->yyerrcnt)
1997 #define yychar (yystackp->yyrawchar)
1999 #define yylval (yystackp->yyval)
2001 #define yylloc (yystackp->yyloc)
2002 #define psi_parser_proc_nerrs yynerrs
2003 #define psi_parser_proc_char yychar
2004 #define psi_parser_proc_lval yylval
2005 #define psi_parser_proc_lloc yylloc
2007 static const int YYEOF
= 0;
2008 static const int YYEMPTY
= -2;
2010 typedef enum { yyok
, yyaccept
, yyabort
, yyerr
} YYRESULTTAG
;
2012 #define YYCHK(YYE) \
2014 YYRESULTTAG yychk_flag = YYE; \
2015 if (yychk_flag != yyok) \
2016 return yychk_flag; \
2022 # define YYFPRINTF fprintf
2025 /* This macro is provided for backward compatibility. */
2026 #ifndef YY_LOCATION_PRINT
2027 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2031 # define YYDPRINTF(Args) \
2038 /*----------------------------------------.
2039 | Print this symbol's value on YYOUTPUT. |
2040 `----------------------------------------*/
2043 yy_symbol_value_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
2045 FILE *yyo
= yyoutput
;
2056 /*--------------------------------.
2057 | Print this symbol on YYOUTPUT. |
2058 `--------------------------------*/
2061 yy_symbol_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
2063 YYFPRINTF (yyoutput
, "%s %s (",
2064 yytype
< YYNTOKENS
? "token" : "nterm", yytname
[yytype
]);
2066 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
, P
, tokens
, index
);
2067 YYFPRINTF (yyoutput
, ")");
2070 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2074 YYFPRINTF (stderr, "%s ", Title); \
2075 yy_symbol_print (stderr, Type, Value, P, tokens, index); \
2076 YYFPRINTF (stderr, "\n"); \
2080 /* Nonzero means print parse trace. It is left uninitialized so that
2081 multiple parsers can coexist. */
2085 static void yypstack (struct yyGLRStack
* yystackp
, size_t yyk
)
2086 YY_ATTRIBUTE_UNUSED
;
2087 static void yypdumpstack (struct yyGLRStack
* yystackp
)
2088 YY_ATTRIBUTE_UNUSED
;
2090 #else /* !YYDEBUG */
2092 # define YYDPRINTF(Args)
2093 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2095 #endif /* !YYDEBUG */
2097 /* YYINITDEPTH -- initial size of the parser's stacks. */
2099 # define YYINITDEPTH 200
2102 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2103 if the built-in stack extension method is used).
2105 Do not make this value too large; the results are undefined if
2106 SIZE_MAX < YYMAXDEPTH * sizeof (GLRStackItem)
2107 evaluated with infinite-precision integer arithmetic. */
2110 # define YYMAXDEPTH 10000
2113 /* Minimum number of free items on the stack allowed after an
2114 allocation. This is to allow allocation and initialization
2115 to be completed by functions that call yyexpandGLRStack before the
2116 stack is expanded, thus insuring that all necessary pointers get
2117 properly redirected to new data. */
2118 #define YYHEADROOM 2
2120 #ifndef YYSTACKEXPANDABLE
2121 # define YYSTACKEXPANDABLE 1
2124 #if YYSTACKEXPANDABLE
2125 # define YY_RESERVE_GLRSTACK(Yystack) \
2127 if (Yystack->yyspaceLeft < YYHEADROOM) \
2128 yyexpandGLRStack (Yystack); \
2131 # define YY_RESERVE_GLRSTACK(Yystack) \
2133 if (Yystack->yyspaceLeft < YYHEADROOM) \
2134 yyMemoryExhausted (Yystack); \
2142 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2143 # define yystpcpy stpcpy
2145 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2148 yystpcpy (char *yydest
, const char *yysrc
)
2151 const char *yys
= yysrc
;
2153 while ((*yyd
++ = *yys
++) != '\0')
2162 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2163 quotes and backslashes, so that it's suitable for yyerror. The
2164 heuristic is that double-quoting is unnecessary unless the string
2165 contains an apostrophe, a comma, or backslash (other than
2166 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2167 null, do not copy; instead, return the length of what the result
2170 yytnamerr (char *yyres
, const char *yystr
)
2175 char const *yyp
= yystr
;
2182 goto do_not_strip_quotes
;
2186 goto do_not_strip_quotes
;
2199 do_not_strip_quotes
: ;
2203 return strlen (yystr
);
2205 return yystpcpy (yyres
, yystr
) - yyres
;
2209 #endif /* !YYERROR_VERBOSE */
2211 /** State numbers, as in LALR(1) machine */
2212 typedef int yyStateNum
;
2214 /** Rule numbers, as in LALR(1) machine */
2215 typedef int yyRuleNum
;
2217 /** Grammar symbol */
2218 typedef int yySymbol
;
2220 /** Item references, as in LALR(1) machine */
2221 typedef short int yyItemNum
;
2223 typedef struct yyGLRState yyGLRState
;
2224 typedef struct yyGLRStateSet yyGLRStateSet
;
2225 typedef struct yySemanticOption yySemanticOption
;
2226 typedef union yyGLRStackItem yyGLRStackItem
;
2227 typedef struct yyGLRStack yyGLRStack
;
2230 /** Type tag: always true. */
2232 /** Type tag for yysemantics. If true, yysval applies, otherwise
2233 * yyfirstVal applies. */
2235 /** Number of corresponding LALR(1) machine state. */
2236 yyStateNum yylrState
;
2237 /** Preceding state in this stack */
2239 /** Source position of the last token produced by my symbol */
2242 /** First in a chain of alternative reductions producing the
2243 * non-terminal corresponding to this state, threaded through
2245 yySemanticOption
* yyfirstVal
;
2246 /** Semantic value for this state. */
2251 struct yyGLRStateSet
{
2252 yyGLRState
** yystates
;
2253 /** During nondeterministic operation, yylookaheadNeeds tracks which
2254 * stacks have actually needed the current lookahead. During deterministic
2255 * operation, yylookaheadNeeds[0] is not maintained since it would merely
2256 * duplicate yychar != YYEMPTY. */
2257 yybool
* yylookaheadNeeds
;
2258 size_t yysize
, yycapacity
;
2261 struct yySemanticOption
{
2262 /** Type tag: always false. */
2264 /** Rule number for this reduction */
2266 /** The last RHS state in the list of states to be reduced. */
2267 yyGLRState
* yystate
;
2268 /** The lookahead for this reduction. */
2271 /** Next sibling in chain of options. To facilitate merging,
2272 * options are chained in decreasing order by address. */
2273 yySemanticOption
* yynext
;
2276 /** Type of the items in the GLR stack. The yyisState field
2277 * indicates which item of the union is valid. */
2278 union yyGLRStackItem
{
2280 yySemanticOption yyoption
;
2291 YYJMP_BUF yyexception_buffer
;
2292 yyGLRStackItem
* yyitems
;
2293 yyGLRStackItem
* yynextFree
;
2295 yyGLRState
* yysplitPoint
;
2296 yyGLRState
* yylastDeleted
;
2297 yyGLRStateSet yytops
;
2300 #if YYSTACKEXPANDABLE
2301 static void yyexpandGLRStack (yyGLRStack
* yystackp
);
2304 static _Noreturn
void
2305 yyFail (yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
, const char* yymsg
)
2307 if (yymsg
!= YY_NULLPTR
)
2308 yyerror (P
, tokens
, index
, yymsg
);
2309 YYLONGJMP (yystackp
->yyexception_buffer
, 1);
2312 static _Noreturn
void
2313 yyMemoryExhausted (yyGLRStack
* yystackp
)
2315 YYLONGJMP (yystackp
->yyexception_buffer
, 2);
2318 #if YYDEBUG || YYERROR_VERBOSE
2319 /** A printable representation of TOKEN. */
2320 static inline const char*
2321 yytokenName (yySymbol yytoken
)
2323 if (yytoken
== YYEMPTY
)
2326 return yytname
[yytoken
];
2330 /** Fill in YYVSP[YYLOW1 .. YYLOW0-1] from the chain of states starting
2331 * at YYVSP[YYLOW0].yystate.yypred. Leaves YYVSP[YYLOW1].yystate.yypred
2332 * containing the pointer to the next state in the chain. */
2333 static void yyfillin (yyGLRStackItem
*, int, int) YY_ATTRIBUTE_UNUSED
;
2335 yyfillin (yyGLRStackItem
*yyvsp
, int yylow0
, int yylow1
)
2338 yyGLRState
*s
= yyvsp
[yylow0
].yystate
.yypred
;
2339 for (i
= yylow0
-1; i
>= yylow1
; i
-= 1)
2342 yyvsp
[i
].yystate
.yylrState
= s
->yylrState
;
2344 yyvsp
[i
].yystate
.yyresolved
= s
->yyresolved
;
2346 yyvsp
[i
].yystate
.yysemantics
.yysval
= s
->yysemantics
.yysval
;
2348 /* The effect of using yysval or yyloc (in an immediate rule) is
2350 yyvsp
[i
].yystate
.yysemantics
.yyfirstVal
= YY_NULLPTR
;
2351 s
= yyvsp
[i
].yystate
.yypred
= s
->yypred
;
2355 /* Do nothing if YYNORMAL or if *YYLOW <= YYLOW1. Otherwise, fill in
2356 * YYVSP[YYLOW1 .. *YYLOW-1] as in yyfillin and set *YYLOW = YYLOW1.
2357 * For convenience, always return YYLOW1. */
2358 static inline int yyfill (yyGLRStackItem
*, int *, int, yybool
)
2359 YY_ATTRIBUTE_UNUSED
;
2361 yyfill (yyGLRStackItem
*yyvsp
, int *yylow
, int yylow1
, yybool yynormal
)
2363 if (!yynormal
&& yylow1
< *yylow
)
2365 yyfillin (yyvsp
, *yylow
, yylow1
);
2371 /** Perform user action for rule number YYN, with RHS length YYRHSLEN,
2372 * and top stack item YYVSP. YYLVALP points to place to put semantic
2373 * value ($$), and yylocp points to place for location information
2374 * (@$). Returns yyok for normal return, yyaccept for YYACCEPT,
2375 * yyerr for YYERROR, yyabort for YYABORT. */
2377 yyuserAction (yyRuleNum yyn
, size_t yyrhslen
, yyGLRStackItem
* yyvsp
,
2378 yyGLRStack
* yystackp
,
2379 YYSTYPE
* yyvalp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
2381 yybool yynormal YY_ATTRIBUTE_UNUSED
= (yystackp
->yysplitPoint
== YY_NULLPTR
);
2389 # define yyerrok (yystackp->yyerrState = 0)
2391 # define YYACCEPT return yyaccept
2393 # define YYABORT return yyabort
2395 # define YYERROR return yyerrok, yyerr
2396 # undef YYRECOVERING
2397 # define YYRECOVERING() (yystackp->yyerrState != 0)
2399 # define yyclearin (yychar = YYEMPTY)
2401 # define YYFILL(N) yyfill (yyvsp, &yylow, N, yynormal)
2403 # define YYBACKUP(Token, Value) \
2404 return yyerror (P, tokens, index, YY_("syntax error: cannot back up")), \
2409 *yyvalp
= yyval_default
;
2411 *yyvalp
= yyvsp
[YYFILL (1-yyrhslen
)].yystate
.yysemantics
.yysval
;
2415 #line 410 "src/parser_proc_grammar.y" /* glr.c:816 */
2417 if ((*(struct psi_cpp_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2418 psi_cpp_exp_exec((*(struct psi_cpp_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), P
->preproc
, PSI_DATA(P
));
2419 psi_cpp_exp_free(&(*(struct psi_cpp_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2422 #line 2423 "src/parser_proc.c" /* glr.c:816 */
2426 #line 416 "src/parser_proc_grammar.y" /* glr.c:816 */
2429 P
->error(PSI_DATA(P
), (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), PSI_WARNING
,
2430 "Extra 'lib \"%s\"' statement has no effect", (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
);
2432 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
);
2435 #line 2436 "src/parser_proc.c" /* glr.c:816 */
2439 #line 424 "src/parser_proc_grammar.y" /* glr.c:816 */
2441 psi_parser_proc_add_const(P
, (*(struct psi_const
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2443 #line 2444 "src/parser_proc.c" /* glr.c:816 */
2447 #line 427 "src/parser_proc_grammar.y" /* glr.c:816 */
2449 psi_parser_proc_add_decl(P
, (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2451 #line 2452 "src/parser_proc.c" /* glr.c:816 */
2455 #line 431 "src/parser_proc_grammar.y" /* glr.c:816 */
2457 psi_parser_proc_add_typedef(P
, (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2459 #line 2460 "src/parser_proc.c" /* glr.c:816 */
2463 #line 434 "src/parser_proc_grammar.y" /* glr.c:816 */
2465 psi_parser_proc_add_struct(P
, (*(struct psi_decl_struct
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2467 #line 2468 "src/parser_proc.c" /* glr.c:816 */
2471 #line 437 "src/parser_proc_grammar.y" /* glr.c:816 */
2473 psi_parser_proc_add_union(P
, (*(struct psi_decl_union
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2475 #line 2476 "src/parser_proc.c" /* glr.c:816 */
2479 #line 440 "src/parser_proc_grammar.y" /* glr.c:816 */
2481 psi_parser_proc_add_enum(P
, (*(struct psi_decl_enum
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2483 #line 2484 "src/parser_proc.c" /* glr.c:816 */
2487 #line 443 "src/parser_proc_grammar.y" /* glr.c:816 */
2489 psi_parser_proc_add_impl(P
, (*(struct psi_impl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2491 #line 2492 "src/parser_proc.c" /* glr.c:816 */
2495 #line 449 "src/parser_proc_grammar.y" /* glr.c:816 */
2497 (*(struct psi_token
**)(&(*yyvalp
))) = (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2499 #line 2500 "src/parser_proc.c" /* glr.c:816 */
2503 #line 455 "src/parser_proc_grammar.y" /* glr.c:816 */
2505 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = NULL
;
2507 #line 2508 "src/parser_proc.c" /* glr.c:816 */
2511 #line 458 "src/parser_proc_grammar.y" /* glr.c:816 */
2513 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = (*(struct psi_cpp_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2515 #line 2516 "src/parser_proc.c" /* glr.c:816 */
2519 #line 464 "src/parser_proc_grammar.y" /* glr.c:816 */
2521 if ((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2522 struct psi_token
*msg
= NULL
;
2524 if (psi_plist_get((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), 0, &msg
)) {
2526 struct psi_token
*next
;
2528 msg
= psi_token_copy(msg
);
2529 while (psi_plist_get((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), index
++, &next
)) {
2530 struct psi_token
*old
= msg
;
2531 msg
= psi_token_cat(" ", 2, msg
, next
);
2535 psi_plist_free((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2537 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, msg
);
2539 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, NULL
);
2541 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2543 #line 2544 "src/parser_proc.c" /* glr.c:816 */
2547 #line 487 "src/parser_proc_grammar.y" /* glr.c:816 */
2549 (*(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
))));
2550 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2552 #line 2553 "src/parser_proc.c" /* glr.c:816 */
2556 #line 491 "src/parser_proc_grammar.y" /* glr.c:816 */
2558 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
, NULL
);
2559 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2561 #line 2562 "src/parser_proc.c" /* glr.c:816 */
2565 #line 495 "src/parser_proc_grammar.y" /* glr.c:816 */
2567 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2568 (*(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
))));
2569 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2571 #line 2572 "src/parser_proc.c" /* glr.c:816 */
2575 #line 500 "src/parser_proc_grammar.y" /* glr.c:816 */
2577 (*(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
)));
2578 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2580 #line 2581 "src/parser_proc.c" /* glr.c:816 */
2584 #line 504 "src/parser_proc_grammar.y" /* glr.c:816 */
2586 (*(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
)));
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 508 "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 (0)].yystate
.yysemantics
.yysval
))->type
, NULL
);
2596 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2598 #line 2599 "src/parser_proc.c" /* glr.c:816 */
2602 #line 512 "src/parser_proc_grammar.y" /* glr.c:816 */
2604 psi_plist_free((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2605 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = NULL
;
2607 #line 2608 "src/parser_proc.c" /* glr.c:816 */
2611 #line 565 "src/parser_proc_grammar.y" /* glr.c:816 */
2613 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2614 (*(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
);
2615 (*(struct psi_cpp_macro_decl
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
2617 #line 2618 "src/parser_proc.c" /* glr.c:816 */
2621 #line 570 "src/parser_proc_grammar.y" /* glr.c:816 */
2623 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2624 (*(struct psi_cpp_macro_decl
**)(&(*yyvalp
))) = psi_cpp_macro_decl_init(NULL
, (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), NULL
);
2625 (*(struct psi_cpp_macro_decl
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2627 #line 2628 "src/parser_proc.c" /* glr.c:816 */
2631 #line 578 "src/parser_proc_grammar.y" /* glr.c:816 */
2633 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_init(NULL
);
2635 #line 2636 "src/parser_proc.c" /* glr.c:816 */
2639 #line 585 "src/parser_proc_grammar.y" /* glr.c:816 */
2641 (*(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
)));
2642 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2643 (*(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
)));
2645 #line 2646 "src/parser_proc.c" /* glr.c:816 */
2649 #line 590 "src/parser_proc_grammar.y" /* glr.c:816 */
2651 (*(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
)));
2652 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2653 (*(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
)));
2655 #line 2656 "src/parser_proc.c" /* glr.c:816 */
2659 #line 598 "src/parser_proc_grammar.y" /* glr.c:816 */
2661 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
2663 #line 2664 "src/parser_proc.c" /* glr.c:816 */
2667 #line 605 "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_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
)));
2672 #line 2673 "src/parser_proc.c" /* glr.c:816 */
2676 #line 609 "src/parser_proc_grammar.y" /* glr.c:816 */
2678 (*(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
)));
2679 (*(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
)));
2681 #line 2682 "src/parser_proc.c" /* glr.c:816 */
2685 #line 616 "src/parser_proc_grammar.y" /* glr.c:816 */
2687 (*(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
)));
2688 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
2690 #line 2691 "src/parser_proc.c" /* glr.c:816 */
2694 #line 620 "src/parser_proc_grammar.y" /* glr.c:816 */
2696 (*(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
)));
2697 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2699 #line 2700 "src/parser_proc.c" /* glr.c:816 */
2703 #line 624 "src/parser_proc_grammar.y" /* glr.c:816 */
2705 (*(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
)));
2706 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2708 #line 2709 "src/parser_proc.c" /* glr.c:816 */
2712 #line 628 "src/parser_proc_grammar.y" /* glr.c:816 */
2714 (*(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
)));
2715 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2717 #line 2718 "src/parser_proc.c" /* glr.c:816 */
2721 #line 633 "src/parser_proc_grammar.y" /* glr.c:816 */
2726 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2727 exists
= psi_cpp_defined(P
->preproc
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2728 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8
, &exists
, 0));
2729 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2732 #line 2733 "src/parser_proc.c" /* glr.c:816 */
2736 #line 643 "src/parser_proc_grammar.y" /* glr.c:816 */
2741 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2742 exists
= psi_cpp_defined(P
->preproc
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2743 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8
, &exists
, 0));
2744 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2747 #line 2748 "src/parser_proc.c" /* glr.c:816 */
2751 #line 653 "src/parser_proc_grammar.y" /* glr.c:816 */
2753 (*(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
));
2754 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2755 (*(struct psi_num_exp
**)(&(*yyvalp
)))->data
.n
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2757 #line 2758 "src/parser_proc.c" /* glr.c:816 */
2761 #line 658 "src/parser_proc_grammar.y" /* glr.c:816 */
2763 (*(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));
2764 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2765 (*(struct psi_num_exp
**)(&(*yyvalp
)))->data
.n
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2767 #line 2768 "src/parser_proc.c" /* glr.c:816 */
2771 #line 663 "src/parser_proc_grammar.y" /* glr.c:816 */
2773 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2774 (*(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));
2775 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2776 (*(struct psi_num_exp
**)(&(*yyvalp
)))->data
.n
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2778 #line 2779 "src/parser_proc.c" /* glr.c:816 */
2782 #line 669 "src/parser_proc_grammar.y" /* glr.c:816 */
2784 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2785 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num(psi_number_init(PSI_T_FUNCTION
,
2786 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));
2787 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2789 #line 2790 "src/parser_proc.c" /* glr.c:816 */
2793 #line 678 "src/parser_proc_grammar.y" /* glr.c:816 */
2795 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
2797 #line 2798 "src/parser_proc.c" /* glr.c:816 */
2801 #line 685 "src/parser_proc_grammar.y" /* glr.c:816 */
2803 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add(psi_plist_init((psi_plist_dtor
) psi_num_exp_free
),
2804 &(*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2806 #line 2807 "src/parser_proc.c" /* glr.c:816 */
2810 #line 689 "src/parser_proc_grammar.y" /* glr.c:816 */
2812 (*(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
)));
2814 #line 2815 "src/parser_proc.c" /* glr.c:816 */
2818 #line 695 "src/parser_proc_grammar.y" /* glr.c:816 */
2820 (*(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
)));
2821 (*(struct psi_const
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2823 #line 2824 "src/parser_proc.c" /* glr.c:816 */
2827 #line 702 "src/parser_proc_grammar.y" /* glr.c:816 */
2829 (*(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
);
2831 #line 2832 "src/parser_proc.c" /* glr.c:816 */
2835 #line 715 "src/parser_proc_grammar.y" /* glr.c:816 */
2837 (*(struct psi_impl_def_val
**)(&(*yyvalp
))) = NULL
;
2839 #line 2840 "src/parser_proc.c" /* glr.c:816 */
2843 #line 718 "src/parser_proc_grammar.y" /* glr.c:816 */
2845 if (psi_num_exp_validate(PSI_DATA(P
), (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), NULL
, NULL
, NULL
, NULL
, NULL
)) {
2847 token_t type
= psi_num_exp_exec((*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), &res
, NULL
, &P
->preproc
->defs
);
2849 if (type
== PSI_T_FLOAT
|| type
== PSI_T_DOUBLE
) {
2850 (*(struct psi_impl_def_val
**)(&(*yyvalp
))) = psi_impl_def_val_init(type
, NULL
);
2852 (*(struct psi_impl_def_val
**)(&(*yyvalp
))) = psi_impl_def_val_init(PSI_T_INT
, NULL
);
2856 case PSI_T_UINT8
: (*(struct psi_impl_def_val
**)(&(*yyvalp
)))->ival
.zend
.lval
= res
.u8
; break;
2857 case PSI_T_UINT16
: (*(struct psi_impl_def_val
**)(&(*yyvalp
)))->ival
.zend
.lval
= res
.u16
; break;
2858 case PSI_T_UINT32
: (*(struct psi_impl_def_val
**)(&(*yyvalp
)))->ival
.zend
.lval
= res
.u32
; break;
2859 case PSI_T_UINT64
: (*(struct psi_impl_def_val
**)(&(*yyvalp
)))->ival
.zend
.lval
= res
.u64
; break; /* FIXME */
2860 case PSI_T_INT8
: (*(struct psi_impl_def_val
**)(&(*yyvalp
)))->ival
.zend
.lval
= res
.i8
; break;
2861 case PSI_T_INT16
: (*(struct psi_impl_def_val
**)(&(*yyvalp
)))->ival
.zend
.lval
= res
.i16
; break;
2862 case PSI_T_INT32
: (*(struct psi_impl_def_val
**)(&(*yyvalp
)))->ival
.zend
.lval
= res
.i32
; break;
2863 case PSI_T_INT64
: (*(struct psi_impl_def_val
**)(&(*yyvalp
)))->ival
.zend
.lval
= res
.i64
; break;
2864 case PSI_T_FLOAT
: (*(struct psi_impl_def_val
**)(&(*yyvalp
)))->ival
.dval
= res
.fval
; break;
2865 case PSI_T_DOUBLE
: (*(struct psi_impl_def_val
**)(&(*yyvalp
)))->ival
.dval
= res
.dval
; break;
2871 (*(struct psi_impl_def_val
**)(&(*yyvalp
))) = NULL
;
2873 psi_num_exp_free(&(*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2875 #line 2876 "src/parser_proc.c" /* glr.c:816 */
2879 #line 749 "src/parser_proc_grammar.y" /* glr.c:816 */
2881 (*(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
);
2882 (*(struct psi_impl_def_val
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2884 #line 2885 "src/parser_proc.c" /* glr.c:816 */
2888 #line 763 "src/parser_proc_grammar.y" /* glr.c:816 */
2890 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2892 #line 2893 "src/parser_proc.c" /* glr.c:816 */
2896 #line 766 "src/parser_proc_grammar.y" /* glr.c:816 */
2898 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2900 #line 2901 "src/parser_proc.c" /* glr.c:816 */
2904 #line 773 "src/parser_proc_grammar.y" /* glr.c:816 */
2906 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
2907 psi_decl_type_init(PSI_T_FUNCTION
, (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->var
->name
),
2908 psi_decl_var_copy((*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->var
)
2910 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->token
);
2911 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.func
= (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
2913 #line 2914 "src/parser_proc.c" /* glr.c:816 */
2917 #line 781 "src/parser_proc_grammar.y" /* glr.c:816 */
2919 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2920 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
2921 psi_decl_type_init(PSI_T_ENUM
, (*(struct psi_decl_enum
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->name
),
2922 psi_decl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, 0, 0)
2924 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2925 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_decl_enum
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->token
);
2926 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.enm
= (*(struct psi_decl_enum
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2928 #line 2929 "src/parser_proc.c" /* glr.c:816 */
2932 #line 791 "src/parser_proc_grammar.y" /* glr.c:816 */
2934 (*(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
)));
2935 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
));
2936 (*(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
)));
2937 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.strct
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2938 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.strct
->align
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)).pos
;
2939 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.strct
->size
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)).len
;
2941 #line 2942 "src/parser_proc.c" /* glr.c:816 */
2945 #line 799 "src/parser_proc_grammar.y" /* glr.c:816 */
2947 (*(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
)));
2948 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
));
2949 (*(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
)));
2950 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.unn
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2951 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.unn
->align
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)).pos
;
2952 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.unn
->size
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)).len
;
2954 #line 2955 "src/parser_proc.c" /* glr.c:816 */
2958 #line 807 "src/parser_proc_grammar.y" /* glr.c:816 */
2960 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2961 (*(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));
2962 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2964 #line 2965 "src/parser_proc.c" /* glr.c:816 */
2968 #line 815 "src/parser_proc_grammar.y" /* glr.c:816 */
2970 (*(struct psi_decl_type
**)(&(*yyvalp
))) = (*(struct psi_decl_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
2972 #line 2973 "src/parser_proc.c" /* glr.c:816 */
2976 #line 822 "src/parser_proc_grammar.y" /* glr.c:816 */
2978 (*(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
);
2979 (*(struct psi_decl_type
**)(&(*yyvalp
)))->token
= (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
2981 #line 2982 "src/parser_proc.c" /* glr.c:816 */
2985 #line 830 "src/parser_proc_grammar.y" /* glr.c:816 */
2987 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2988 (*(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
);
2989 (*(struct psi_decl_type
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2991 #line 2992 "src/parser_proc.c" /* glr.c:816 */
2995 #line 835 "src/parser_proc_grammar.y" /* glr.c:816 */
2997 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2998 (*(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
);
2999 (*(struct psi_decl_type
**)(&(*yyvalp
)))->token
= 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 840 "src/parser_proc_grammar.y" /* glr.c:816 */
3007 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3008 (*(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
);
3009 (*(struct psi_decl_type
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3011 #line 3012 "src/parser_proc.c" /* glr.c:816 */
3015 #line 850 "src/parser_proc_grammar.y" /* glr.c:816 */
3017 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3019 #line 3020 "src/parser_proc.c" /* glr.c:816 */
3023 #line 853 "src/parser_proc_grammar.y" /* glr.c:816 */
3025 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3027 #line 3028 "src/parser_proc.c" /* glr.c:816 */
3031 #line 859 "src/parser_proc_grammar.y" /* glr.c:816 */
3033 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3035 #line 3036 "src/parser_proc.c" /* glr.c:816 */
3039 #line 862 "src/parser_proc_grammar.y" /* glr.c:816 */
3041 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3043 #line 3044 "src/parser_proc.c" /* glr.c:816 */
3047 #line 865 "src/parser_proc_grammar.y" /* glr.c:816 */
3049 (*(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
)));
3051 #line 3052 "src/parser_proc.c" /* glr.c:816 */
3055 #line 887 "src/parser_proc_grammar.y" /* glr.c:816 */
3057 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3059 #line 3060 "src/parser_proc.c" /* glr.c:816 */
3063 #line 890 "src/parser_proc_grammar.y" /* glr.c:816 */
3065 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3067 #line 3068 "src/parser_proc.c" /* glr.c:816 */
3071 #line 893 "src/parser_proc_grammar.y" /* glr.c:816 */
3073 (*(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
)));
3075 #line 3076 "src/parser_proc.c" /* glr.c:816 */
3079 #line 899 "src/parser_proc_grammar.y" /* glr.c:816 */
3081 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3083 #line 3084 "src/parser_proc.c" /* glr.c:816 */
3087 #line 902 "src/parser_proc_grammar.y" /* glr.c:816 */
3089 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3091 #line 3092 "src/parser_proc.c" /* glr.c:816 */
3095 #line 905 "src/parser_proc_grammar.y" /* glr.c:816 */
3097 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3098 (*(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
)));
3099 free((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3101 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3104 #line 3105 "src/parser_proc.c" /* glr.c:816 */
3108 #line 913 "src/parser_proc_grammar.y" /* glr.c:816 */
3110 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3111 (*(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
)));
3112 free((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3113 free((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3115 (*(struct psi_token
**)(&(*yyvalp
))) = (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
3118 #line 3119 "src/parser_proc.c" /* glr.c:816 */
3122 #line 925 "src/parser_proc_grammar.y" /* glr.c:816 */
3124 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
3126 #line 3127 "src/parser_proc.c" /* glr.c:816 */
3130 #line 928 "src/parser_proc_grammar.y" /* glr.c:816 */
3132 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3134 #line 3135 "src/parser_proc.c" /* glr.c:816 */
3138 #line 931 "src/parser_proc_grammar.y" /* glr.c:816 */
3140 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3141 (*(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
)));
3143 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3146 #line 3147 "src/parser_proc.c" /* glr.c:816 */
3150 #line 938 "src/parser_proc_grammar.y" /* glr.c:816 */
3152 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3154 #line 3155 "src/parser_proc.c" /* glr.c:816 */
3158 #line 941 "src/parser_proc_grammar.y" /* glr.c:816 */
3160 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3161 (*(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
)));
3163 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3166 #line 3167 "src/parser_proc.c" /* glr.c:816 */
3170 #line 951 "src/parser_proc_grammar.y" /* glr.c:816 */
3172 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
3174 #line 3175 "src/parser_proc.c" /* glr.c:816 */
3178 #line 957 "src/parser_proc_grammar.y" /* glr.c:816 */
3180 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
3182 #line 3183 "src/parser_proc.c" /* glr.c:816 */
3186 #line 965 "src/parser_proc_grammar.y" /* glr.c:816 */
3188 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
3190 #line 3191 "src/parser_proc.c" /* glr.c:816 */
3194 #line 968 "src/parser_proc_grammar.y" /* glr.c:816 */
3196 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3198 #line 3199 "src/parser_proc.c" /* glr.c:816 */
3202 #line 971 "src/parser_proc_grammar.y" /* glr.c:816 */
3204 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3205 (*(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
)));
3206 free((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3208 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3211 #line 3212 "src/parser_proc.c" /* glr.c:816 */
3215 #line 982 "src/parser_proc_grammar.y" /* glr.c:816 */
3217 (*(struct psi_decl
**)(&(*yyvalp
))) = (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3219 #line 3220 "src/parser_proc.c" /* glr.c:816 */
3223 #line 985 "src/parser_proc_grammar.y" /* glr.c:816 */
3225 (*(struct psi_decl
**)(&(*yyvalp
))) = (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3227 #line 3228 "src/parser_proc.c" /* glr.c:816 */
3231 #line 1005 "src/parser_proc_grammar.y" /* glr.c:816 */
3233 psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3235 #line 3236 "src/parser_proc.c" /* glr.c:816 */
3239 #line 1012 "src/parser_proc_grammar.y" /* glr.c:816 */
3241 psi_plist_free((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3243 #line 3244 "src/parser_proc.c" /* glr.c:816 */
3247 #line 1018 "src/parser_proc_grammar.y" /* glr.c:816 */
3249 (*(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
)));
3251 #line 3252 "src/parser_proc.c" /* glr.c:816 */
3255 #line 1021 "src/parser_proc_grammar.y" /* glr.c:816 */
3257 (*(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
)));
3259 #line 3260 "src/parser_proc.c" /* glr.c:816 */
3263 #line 1028 "src/parser_proc_grammar.y" /* glr.c:816 */
3265 (*(struct psi_decl
**)(&(*yyvalp
))) = (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3266 (*(struct psi_decl
**)(&(*yyvalp
)))->abi
= psi_decl_abi_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
);
3268 #line 3269 "src/parser_proc.c" /* glr.c:816 */
3272 #line 1040 "src/parser_proc_grammar.y" /* glr.c:816 */
3274 (*(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
)));
3275 if ((*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3276 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->pointer_level
+= 1;
3277 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->array_size
= (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3280 #line 3281 "src/parser_proc.c" /* glr.c:816 */
3284 #line 1047 "src/parser_proc_grammar.y" /* glr.c:816 */
3286 (*(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
)));
3287 (*(struct psi_decl
**)(&(*yyvalp
)))->varargs
= 1;
3288 if ((*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3289 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->pointer_level
+= 1;
3290 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->array_size
= (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3293 #line 3294 "src/parser_proc.c" /* glr.c:816 */
3297 #line 1058 "src/parser_proc_grammar.y" /* glr.c:816 */
3299 (*(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
)));
3300 if ((*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3301 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->pointer_level
+= 1;
3302 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->array_size
= (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3305 #line 3306 "src/parser_proc.c" /* glr.c:816 */
3309 #line 1065 "src/parser_proc_grammar.y" /* glr.c:816 */
3311 (*(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
)));
3312 (*(struct psi_decl
**)(&(*yyvalp
)))->varargs
= 1;
3313 if ((*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3314 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->pointer_level
+= 1;
3315 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->array_size
= (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3318 #line 3319 "src/parser_proc.c" /* glr.c:816 */
3322 #line 1076 "src/parser_proc_grammar.y" /* glr.c:816 */
3324 (void) (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3325 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3326 (*(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));
3327 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3328 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3330 #line 3331 "src/parser_proc.c" /* glr.c:816 */
3334 #line 1083 "src/parser_proc_grammar.y" /* glr.c:816 */
3336 (void) (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3337 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3338 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3339 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
),
3340 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)
3342 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
3343 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3344 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3346 #line 3347 "src/parser_proc.c" /* glr.c:816 */
3350 #line 1094 "src/parser_proc_grammar.y" /* glr.c:816 */
3352 (void) (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3353 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3354 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3355 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
),
3356 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)
3358 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
3359 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3360 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3362 #line 3363 "src/parser_proc.c" /* glr.c:816 */
3366 #line 1105 "src/parser_proc_grammar.y" /* glr.c:816 */
3368 (void) (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3369 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3370 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3371 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
),
3372 psi_decl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
, 0, 0)
3374 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
3375 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3376 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3378 #line 3379 "src/parser_proc.c" /* glr.c:816 */
3382 #line 1120 "src/parser_proc_grammar.y" /* glr.c:816 */
3384 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3385 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
),
3386 psi_decl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, 0, 0)
3388 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3389 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3390 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3392 #line 3393 "src/parser_proc.c" /* glr.c:816 */
3396 #line 1132 "src/parser_proc_grammar.y" /* glr.c:816 */
3398 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
3400 #line 3401 "src/parser_proc.c" /* glr.c:816 */
3404 #line 1135 "src/parser_proc_grammar.y" /* glr.c:816 */
3406 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
3408 #line 3409 "src/parser_proc.c" /* glr.c:816 */
3412 #line 1138 "src/parser_proc_grammar.y" /* glr.c:816 */
3414 (*(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
)));
3416 #line 3417 "src/parser_proc.c" /* glr.c:816 */
3420 #line 1141 "src/parser_proc_grammar.y" /* glr.c:816 */
3422 (*(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
)));
3424 #line 3425 "src/parser_proc.c" /* glr.c:816 */
3428 #line 1148 "src/parser_proc_grammar.y" /* glr.c:816 */
3430 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3432 #line 3433 "src/parser_proc.c" /* glr.c:816 */
3436 #line 1151 "src/parser_proc_grammar.y" /* glr.c:816 */
3438 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3439 (*(struct psi_decl_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)),
3440 psi_decl_var_init(NULL
, (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), 0)
3443 #line 3444 "src/parser_proc.c" /* glr.c:816 */
3447 #line 1157 "src/parser_proc_grammar.y" /* glr.c:816 */
3449 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3450 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
),
3451 psi_decl_var_init(NULL
, (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), 0)
3453 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3454 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3455 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3457 #line 3458 "src/parser_proc.c" /* glr.c:816 */
3461 #line 1166 "src/parser_proc_grammar.y" /* glr.c:816 */
3463 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3464 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
),
3465 psi_decl_var_init(NULL
, (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), 0)
3467 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3468 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3469 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3471 #line 3472 "src/parser_proc.c" /* glr.c:816 */
3475 #line 1178 "src/parser_proc_grammar.y" /* glr.c:816 */
3477 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3478 psi_decl_type_init(PSI_T_FUNCTION
, (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->var
->name
),
3479 psi_decl_var_copy((*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->var
)
3481 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->token
);
3482 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.func
= (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3484 #line 3485 "src/parser_proc.c" /* glr.c:816 */
3488 #line 1186 "src/parser_proc_grammar.y" /* glr.c:816 */
3490 (*(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
)));
3492 #line 3493 "src/parser_proc.c" /* glr.c:816 */
3496 #line 1189 "src/parser_proc_grammar.y" /* glr.c:816 */
3498 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3499 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3500 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
),
3501 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)
3503 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3504 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3505 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3507 #line 3508 "src/parser_proc.c" /* glr.c:816 */
3511 #line 1199 "src/parser_proc_grammar.y" /* glr.c:816 */
3513 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3514 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3515 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
),
3516 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)
3518 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3519 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3520 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3522 #line 3523 "src/parser_proc.c" /* glr.c:816 */
3526 #line 1212 "src/parser_proc_grammar.y" /* glr.c:816 */
3528 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3529 (*(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
)));
3530 (*(struct psi_decl_var
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3532 #line 3533 "src/parser_proc.c" /* glr.c:816 */
3536 #line 1217 "src/parser_proc_grammar.y" /* glr.c:816 */
3538 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3539 (*(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
)));
3540 (*(struct psi_decl_var
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3542 #line 3543 "src/parser_proc.c" /* glr.c:816 */
3546 #line 1225 "src/parser_proc_grammar.y" /* glr.c:816 */
3548 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3549 (*(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
)));
3550 (*(struct psi_decl_union
**)(&(*yyvalp
)))->align
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)).pos
;
3551 (*(struct psi_decl_union
**)(&(*yyvalp
)))->size
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)).len
;
3552 (*(struct psi_decl_union
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3554 #line 3555 "src/parser_proc.c" /* glr.c:816 */
3558 #line 1235 "src/parser_proc_grammar.y" /* glr.c:816 */
3560 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3561 (*(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
)));
3562 (*(struct psi_decl_struct
**)(&(*yyvalp
)))->align
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)).pos
;
3563 (*(struct psi_decl_struct
**)(&(*yyvalp
)))->size
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)).len
;
3564 (*(struct psi_decl_struct
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3566 #line 3567 "src/parser_proc.c" /* glr.c:816 */
3570 #line 1245 "src/parser_proc_grammar.y" /* glr.c:816 */
3572 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
3574 #line 3575 "src/parser_proc.c" /* glr.c:816 */
3578 #line 1252 "src/parser_proc_grammar.y" /* glr.c:816 */
3580 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
3582 #line 3583 "src/parser_proc.c" /* glr.c:816 */
3586 #line 1258 "src/parser_proc_grammar.y" /* glr.c:816 */
3588 (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->layout
= (*(struct psi_layout
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3589 (*(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
)));
3590 if ((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))) {
3592 struct psi_decl_arg
*arg
;
3594 while (psi_plist_get((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), i
++, &arg
)) {
3595 arg
->type
= psi_decl_type_copy((*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->type
);
3596 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add((*(struct psi_plist
**)(&(*yyvalp
))), &arg
);
3598 free((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3601 #line 3602 "src/parser_proc.c" /* glr.c:816 */
3605 #line 1272 "src/parser_proc_grammar.y" /* glr.c:816 */
3607 (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->layout
= (*(struct psi_layout
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3608 (*(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
)));
3609 if ((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))) {
3611 struct psi_decl_arg
*arg
;
3613 while (psi_plist_get((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), i
++, &arg
)) {
3614 arg
->type
= psi_decl_type_copy((*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->type
);
3615 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add((*(struct psi_plist
**)(&(*yyvalp
))), &arg
);
3617 free((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3620 #line 3621 "src/parser_proc.c" /* glr.c:816 */
3624 #line 1289 "src/parser_proc_grammar.y" /* glr.c:816 */
3626 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
3628 #line 3629 "src/parser_proc.c" /* glr.c:816 */
3632 #line 1292 "src/parser_proc_grammar.y" /* glr.c:816 */
3634 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3636 #line 3637 "src/parser_proc.c" /* glr.c:816 */
3640 #line 1298 "src/parser_proc_grammar.y" /* glr.c:816 */
3643 struct psi_decl_arg
*arg
= psi_decl_arg_init(NULL
, (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3644 arg
->layout
= (*(struct psi_layout
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3645 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add(psi_plist_init((psi_plist_dtor
) psi_decl_arg_free
), &arg
);
3648 #line 3649 "src/parser_proc.c" /* glr.c:816 */
3652 #line 1305 "src/parser_proc_grammar.y" /* glr.c:816 */
3655 struct psi_decl_arg
*arg
= psi_decl_arg_init(NULL
, (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3656 arg
->layout
= (*(struct psi_layout
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3657 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)), &arg
);
3660 #line 3661 "src/parser_proc.c" /* glr.c:816 */
3664 #line 1315 "src/parser_proc_grammar.y" /* glr.c:816 */
3666 (*(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
)));
3667 (*(struct psi_decl_enum
**)(&(*yyvalp
)))->token
= (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
));
3669 #line 3670 "src/parser_proc.c" /* glr.c:816 */
3673 #line 1322 "src/parser_proc_grammar.y" /* glr.c:816 */
3675 (*(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
)));
3677 #line 3678 "src/parser_proc.c" /* glr.c:816 */
3681 #line 1325 "src/parser_proc_grammar.y" /* glr.c:816 */
3683 (*(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
)));
3685 #line 3686 "src/parser_proc.c" /* glr.c:816 */
3689 #line 1331 "src/parser_proc_grammar.y" /* glr.c:816 */
3691 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3692 (*(struct psi_decl_enum_item
**)(&(*yyvalp
))) = psi_decl_enum_item_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, NULL
);
3693 (*(struct psi_decl_enum_item
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3695 #line 3696 "src/parser_proc.c" /* glr.c:816 */
3699 #line 1336 "src/parser_proc_grammar.y" /* glr.c:816 */
3701 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3702 (*(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
)));
3703 (*(struct psi_decl_enum_item
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3705 #line 3706 "src/parser_proc.c" /* glr.c:816 */
3709 #line 1344 "src/parser_proc_grammar.y" /* glr.c:816 */
3711 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num((*(struct psi_number
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3712 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_number
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->token
);
3714 #line 3715 "src/parser_proc.c" /* glr.c:816 */
3718 #line 1348 "src/parser_proc_grammar.y" /* glr.c:816 */
3720 (*(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
)));
3721 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_decl_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->token
);
3723 #line 3724 "src/parser_proc.c" /* glr.c:816 */
3727 #line 1352 "src/parser_proc_grammar.y" /* glr.c:816 */
3729 (*(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
)));
3730 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3732 #line 3733 "src/parser_proc.c" /* glr.c:816 */
3736 #line 1356 "src/parser_proc_grammar.y" /* glr.c:816 */
3738 (*(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
)));
3739 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3741 #line 3742 "src/parser_proc.c" /* glr.c:816 */
3745 #line 1360 "src/parser_proc_grammar.y" /* glr.c:816 */
3747 (*(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
)));
3748 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3750 #line 3751 "src/parser_proc.c" /* glr.c:816 */
3754 #line 1364 "src/parser_proc_grammar.y" /* glr.c:816 */
3756 (*(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
)));
3757 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
3759 #line 3760 "src/parser_proc.c" /* glr.c:816 */
3763 #line 1371 "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
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->flags
);
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 1375 "src/parser_proc_grammar.y" /* glr.c:816 */
3774 (*(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);
3775 (*(struct psi_number
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3777 #line 3778 "src/parser_proc.c" /* glr.c:816 */
3781 #line 1379 "src/parser_proc_grammar.y" /* glr.c:816 */
3783 (*(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);
3784 (*(struct psi_number
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3786 #line 3787 "src/parser_proc.c" /* glr.c:816 */
3790 #line 1383 "src/parser_proc_grammar.y" /* glr.c:816 */
3792 (*(struct psi_number
**)(&(*yyvalp
))) = psi_number_init(PSI_T_NAME
, (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), 0);
3793 (*(struct psi_number
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->token
);
3795 #line 3796 "src/parser_proc.c" /* glr.c:816 */
3799 #line 1390 "src/parser_proc_grammar.y" /* glr.c:816 */
3801 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3802 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3806 psi_token_hash((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), digest
);
3807 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_append("@", psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))), 1, digest
);
3810 #line 3811 "src/parser_proc.c" /* glr.c:816 */
3814 #line 1403 "src/parser_proc_grammar.y" /* glr.c:816 */
3816 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3817 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3821 psi_token_hash((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), digest
);
3822 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_append("@", psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))), 1, digest
);
3825 #line 3826 "src/parser_proc.c" /* glr.c:816 */
3829 #line 1416 "src/parser_proc_grammar.y" /* glr.c:816 */
3831 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3832 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3836 psi_token_hash((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), digest
);
3837 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_append("@", psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))), 1, digest
);
3840 #line 3841 "src/parser_proc.c" /* glr.c:816 */
3844 #line 1429 "src/parser_proc_grammar.y" /* glr.c:816 */
3846 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
3848 #line 3849 "src/parser_proc.c" /* glr.c:816 */
3852 #line 1432 "src/parser_proc_grammar.y" /* glr.c:816 */
3854 (*(struct psi_token
**)(&(*yyvalp
))) = (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3855 (*(struct psi_token
**)(&(*yyvalp
)))->type
= PSI_T_NAME
;
3857 #line 3858 "src/parser_proc.c" /* glr.c:816 */
3861 #line 1439 "src/parser_proc_grammar.y" /* glr.c:816 */
3863 (*(struct psi_layout
**)(&(*yyvalp
))) = NULL
;
3865 #line 3866 "src/parser_proc.c" /* glr.c:816 */
3869 #line 1442 "src/parser_proc_grammar.y" /* glr.c:816 */
3871 (*(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
));
3873 #line 3874 "src/parser_proc.c" /* glr.c:816 */
3877 #line 1445 "src/parser_proc_grammar.y" /* glr.c:816 */
3879 (*(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
);
3881 #line 3882 "src/parser_proc.c" /* glr.c:816 */
3885 #line 1448 "src/parser_proc_grammar.y" /* glr.c:816 */
3887 (*(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
));
3889 #line 3890 "src/parser_proc.c" /* glr.c:816 */
3893 #line 1454 "src/parser_proc_grammar.y" /* glr.c:816 */
3895 (*(struct psi_layout
*)(&(*yyvalp
))).pos
= 0;
3896 (*(struct psi_layout
*)(&(*yyvalp
))).len
= 0;
3898 #line 3899 "src/parser_proc.c" /* glr.c:816 */
3902 #line 1458 "src/parser_proc_grammar.y" /* glr.c:816 */
3904 (*(struct psi_layout
*)(&(*yyvalp
))).pos
= atol((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->text
);
3905 (*(struct psi_layout
*)(&(*yyvalp
))).len
= atol((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
);
3907 #line 3908 "src/parser_proc.c" /* glr.c:816 */
3911 #line 1465 "src/parser_proc_grammar.y" /* glr.c:816 */
3913 (*(size_t*)(&(*yyvalp
))) = 0;
3915 #line 3916 "src/parser_proc.c" /* glr.c:816 */
3919 #line 1468 "src/parser_proc_grammar.y" /* glr.c:816 */
3921 (*(size_t*)(&(*yyvalp
))) = atol((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
);
3923 #line 3924 "src/parser_proc.c" /* glr.c:816 */
3927 #line 1474 "src/parser_proc_grammar.y" /* glr.c:816 */
3929 (*(size_t*)(&(*yyvalp
))) = 0;
3931 #line 3932 "src/parser_proc.c" /* glr.c:816 */
3935 #line 1477 "src/parser_proc_grammar.y" /* glr.c:816 */
3937 (*(size_t*)(&(*yyvalp
))) = (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3939 #line 3940 "src/parser_proc.c" /* glr.c:816 */
3943 #line 1484 "src/parser_proc_grammar.y" /* glr.c:816 */
3945 (*(size_t*)(&(*yyvalp
))) = (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
3947 #line 3948 "src/parser_proc.c" /* glr.c:816 */
3951 #line 1490 "src/parser_proc_grammar.y" /* glr.c:816 */
3953 (*(size_t*)(&(*yyvalp
))) = 1;
3955 #line 3956 "src/parser_proc.c" /* glr.c:816 */
3959 #line 1493 "src/parser_proc_grammar.y" /* glr.c:816 */
3961 (*(size_t*)(&(*yyvalp
))) = (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)) + 1;
3963 #line 3964 "src/parser_proc.c" /* glr.c:816 */
3967 #line 1505 "src/parser_proc_grammar.y" /* glr.c:816 */
3969 (*(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
)));
3971 #line 3972 "src/parser_proc.c" /* glr.c:816 */
3975 #line 1508 "src/parser_proc_grammar.y" /* glr.c:816 */
3977 (*(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
)));
3978 (*(struct psi_impl_func
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->static_memory
= 1;
3980 #line 3981 "src/parser_proc.c" /* glr.c:816 */
3984 #line 1515 "src/parser_proc_grammar.y" /* glr.c:816 */
3986 (*(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
)));
3987 (*(struct psi_impl_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
3988 (*(struct psi_impl_func
**)(&(*yyvalp
)))->return_reference
= (*(bool*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
));
3990 #line 3991 "src/parser_proc.c" /* glr.c:816 */
3994 #line 1520 "src/parser_proc_grammar.y" /* glr.c:816 */
3996 (*(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
)));
3997 (*(struct psi_impl_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
3998 (*(struct psi_impl_func
**)(&(*yyvalp
)))->return_reference
= (*(bool*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-6)].yystate
.yysemantics
.yysval
));
4000 #line 4001 "src/parser_proc.c" /* glr.c:816 */
4004 #line 1525 "src/parser_proc_grammar.y" /* glr.c:816 */
4006 (*(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
)));
4007 (*(struct psi_impl_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-10)].yystate
.yysemantics
.yysval
)));
4008 (*(struct psi_impl_func
**)(&(*yyvalp
)))->return_reference
= (*(bool*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-11)].yystate
.yysemantics
.yysval
));
4009 (*(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
);
4010 (*(struct psi_impl_func
**)(&(*yyvalp
)))->vararg
->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
4012 #line 4013 "src/parser_proc.c" /* glr.c:816 */
4016 #line 1535 "src/parser_proc_grammar.y" /* glr.c:816 */
4018 (*(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
)));
4020 #line 4021 "src/parser_proc.c" /* glr.c:816 */
4024 #line 1538 "src/parser_proc_grammar.y" /* glr.c:816 */
4026 (*(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
)));
4028 #line 4029 "src/parser_proc.c" /* glr.c:816 */
4032 #line 1544 "src/parser_proc_grammar.y" /* glr.c:816 */
4034 (*(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
);
4036 #line 4037 "src/parser_proc.c" /* glr.c:816 */
4040 #line 1547 "src/parser_proc_grammar.y" /* glr.c:816 */
4042 (*(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
)));
4044 #line 4045 "src/parser_proc.c" /* glr.c:816 */
4048 #line 1553 "src/parser_proc_grammar.y" /* glr.c:816 */
4050 (*(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
)));
4051 (*(struct psi_impl_var
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4053 #line 4054 "src/parser_proc.c" /* glr.c:816 */
4057 #line 1560 "src/parser_proc_grammar.y" /* glr.c:816 */
4059 (*(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
);
4060 (*(struct psi_impl_type
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4062 #line 4063 "src/parser_proc.c" /* glr.c:816 */
4066 #line 1579 "src/parser_proc_grammar.y" /* glr.c:816 */
4068 (*(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
)));
4070 #line 4071 "src/parser_proc.c" /* glr.c:816 */
4074 #line 1582 "src/parser_proc_grammar.y" /* glr.c:816 */
4076 (*(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
)));
4078 #line 4079 "src/parser_proc.c" /* glr.c:816 */
4082 #line 1588 "src/parser_proc_grammar.y" /* glr.c:816 */
4084 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_return_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4086 #line 4087 "src/parser_proc.c" /* glr.c:816 */
4090 #line 1591 "src/parser_proc_grammar.y" /* glr.c:816 */
4092 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_let_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4094 #line 4095 "src/parser_proc.c" /* glr.c:816 */
4098 #line 1594 "src/parser_proc_grammar.y" /* glr.c:816 */
4100 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_set_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4102 #line 4103 "src/parser_proc.c" /* glr.c:816 */
4106 #line 1597 "src/parser_proc_grammar.y" /* glr.c:816 */
4108 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_assert_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4110 #line 4111 "src/parser_proc.c" /* glr.c:816 */
4114 #line 1600 "src/parser_proc_grammar.y" /* glr.c:816 */
4116 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_free_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4118 #line 4119 "src/parser_proc.c" /* glr.c:816 */
4122 #line 1606 "src/parser_proc_grammar.y" /* glr.c:816 */
4124 (*(struct psi_let_stmt
**)(&(*yyvalp
))) = psi_let_stmt_init((*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
4125 (*(struct psi_let_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
4127 #line 4128 "src/parser_proc.c" /* glr.c:816 */
4131 #line 1610 "src/parser_proc_grammar.y" /* glr.c:816 */
4133 (*(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
))));
4134 (*(struct psi_let_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
4135 (*(struct psi_let_stmt
**)(&(*yyvalp
)))->exp
->is_reference
= (*(bool*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
4137 #line 4138 "src/parser_proc.c" /* glr.c:816 */
4141 #line 1619 "src/parser_proc_grammar.y" /* glr.c:816 */
4143 (*(struct psi_let_exp
**)(&(*yyvalp
))) = (*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4144 (*(struct psi_let_exp
**)(&(*yyvalp
)))->is_reference
= true;
4146 #line 4147 "src/parser_proc.c" /* glr.c:816 */
4150 #line 1623 "src/parser_proc_grammar.y" /* glr.c:816 */
4152 (*(struct psi_let_exp
**)(&(*yyvalp
))) = (*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4153 (*(struct psi_let_exp
**)(&(*yyvalp
)))->is_reference
= false;
4155 #line 4156 "src/parser_proc.c" /* glr.c:816 */
4159 #line 1630 "src/parser_proc_grammar.y" /* glr.c:816 */
4161 (*(struct psi_let_exp
**)(&(*yyvalp
))) = psi_let_exp_init(PSI_LET_NULL
, NULL
);
4163 #line 4164 "src/parser_proc.c" /* glr.c:816 */
4167 #line 1633 "src/parser_proc_grammar.y" /* glr.c:816 */
4169 (*(struct psi_let_exp
**)(&(*yyvalp
))) = psi_let_exp_init(PSI_LET_CALLOC
, (*(struct psi_let_calloc
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4171 #line 4172 "src/parser_proc.c" /* glr.c:816 */
4175 #line 1636 "src/parser_proc_grammar.y" /* glr.c:816 */
4177 (*(struct psi_let_exp
**)(&(*yyvalp
))) = psi_let_exp_init(PSI_LET_CALLOC
, (*(struct psi_let_calloc
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4178 (*(struct psi_let_calloc
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->static_memory
= 1;
4180 #line 4181 "src/parser_proc.c" /* glr.c:816 */
4184 #line 1640 "src/parser_proc_grammar.y" /* glr.c:816 */
4186 (*(struct psi_let_exp
**)(&(*yyvalp
))) = psi_let_exp_init(PSI_LET_CALLBACK
, (*(struct psi_let_callback
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4188 #line 4189 "src/parser_proc.c" /* glr.c:816 */
4192 #line 1643 "src/parser_proc_grammar.y" /* glr.c:816 */
4194 (*(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
)));
4196 #line 4197 "src/parser_proc.c" /* glr.c:816 */
4200 #line 1646 "src/parser_proc_grammar.y" /* glr.c:816 */
4202 (*(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
)));
4204 #line 4205 "src/parser_proc.c" /* glr.c:816 */
4208 #line 1652 "src/parser_proc_grammar.y" /* glr.c:816 */
4210 (*(struct psi_let_exp
**)(&(*yyvalp
))) = (*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4211 (*(struct psi_let_exp
**)(&(*yyvalp
)))->var
= (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
4213 #line 4214 "src/parser_proc.c" /* glr.c:816 */
4217 #line 1656 "src/parser_proc_grammar.y" /* glr.c:816 */
4219 (*(struct psi_let_exp
**)(&(*yyvalp
))) = (*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4220 (*(struct psi_let_exp
**)(&(*yyvalp
)))->is_reference
= 1;
4221 (*(struct psi_let_exp
**)(&(*yyvalp
)))->var
= (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
));
4223 #line 4224 "src/parser_proc.c" /* glr.c:816 */
4227 #line 1664 "src/parser_proc_grammar.y" /* glr.c:816 */
4229 (*(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
)));
4230 (*(struct psi_let_calloc
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
4232 #line 4233 "src/parser_proc.c" /* glr.c:816 */
4236 #line 1671 "src/parser_proc_grammar.y" /* glr.c:816 */
4238 (*(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
)));
4239 (*(struct psi_let_callback
**)(&(*yyvalp
)))->func
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-6)].yystate
.yysemantics
.yysval
)));
4240 (*(struct psi_let_callback
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-7)].yystate
.yysemantics
.yysval
)));
4242 #line 4243 "src/parser_proc.c" /* glr.c:816 */
4246 #line 1679 "src/parser_proc_grammar.y" /* glr.c:816 */
4248 (*(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
)));
4249 (*(struct psi_let_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
4250 (*(struct psi_let_func
**)(&(*yyvalp
)))->inner
= (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
4252 #line 4253 "src/parser_proc.c" /* glr.c:816 */
4256 #line 1700 "src/parser_proc_grammar.y" /* glr.c:816 */
4258 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
4260 #line 4261 "src/parser_proc.c" /* glr.c:816 */
4264 #line 1703 "src/parser_proc_grammar.y" /* glr.c:816 */
4266 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4268 #line 4269 "src/parser_proc.c" /* glr.c:816 */
4272 #line 1709 "src/parser_proc_grammar.y" /* glr.c:816 */
4274 (*(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
)));
4276 #line 4277 "src/parser_proc.c" /* glr.c:816 */
4280 #line 1712 "src/parser_proc_grammar.y" /* glr.c:816 */
4282 (*(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
)));
4284 #line 4285 "src/parser_proc.c" /* glr.c:816 */
4288 #line 1723 "src/parser_proc_grammar.y" /* glr.c:816 */
4290 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
4292 #line 4293 "src/parser_proc.c" /* glr.c:816 */
4296 #line 1726 "src/parser_proc_grammar.y" /* glr.c:816 */
4298 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4300 #line 4301 "src/parser_proc.c" /* glr.c:816 */
4304 #line 1732 "src/parser_proc_grammar.y" /* glr.c:816 */
4306 (*(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
)));
4308 #line 4309 "src/parser_proc.c" /* glr.c:816 */
4312 #line 1735 "src/parser_proc_grammar.y" /* glr.c:816 */
4314 (*(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
)));
4316 #line 4317 "src/parser_proc.c" /* glr.c:816 */
4320 #line 1741 "src/parser_proc_grammar.y" /* glr.c:816 */
4322 (*(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
))));
4323 (*(struct psi_return_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
4325 #line 4326 "src/parser_proc.c" /* glr.c:816 */
4329 #line 1748 "src/parser_proc_grammar.y" /* glr.c:816 */
4331 (*(struct psi_set_stmt
**)(&(*yyvalp
))) = psi_set_stmt_init((*(struct psi_set_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
4332 (*(struct psi_set_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
4334 #line 4335 "src/parser_proc.c" /* glr.c:816 */
4338 #line 1755 "src/parser_proc_grammar.y" /* glr.c:816 */
4340 (*(struct psi_set_exp
**)(&(*yyvalp
))) = psi_set_exp_init(PSI_SET_FUNC
, (*(struct psi_set_func
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4342 #line 4343 "src/parser_proc.c" /* glr.c:816 */
4346 #line 1758 "src/parser_proc_grammar.y" /* glr.c:816 */
4348 (*(struct psi_set_exp
**)(&(*yyvalp
))) = psi_set_exp_init(PSI_SET_NUMEXP
, (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4350 #line 4351 "src/parser_proc.c" /* glr.c:816 */
4354 #line 1761 "src/parser_proc_grammar.y" /* glr.c:816 */
4356 (*(struct psi_set_exp
**)(&(*yyvalp
))) = (*(struct psi_set_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4357 (*(struct psi_set_exp
**)(&(*yyvalp
)))->var
= (*(struct psi_impl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
4359 #line 4360 "src/parser_proc.c" /* glr.c:816 */
4363 #line 1768 "src/parser_proc_grammar.y" /* glr.c:816 */
4365 (*(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
)));
4366 (*(struct psi_set_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
4367 (*(struct psi_set_func
**)(&(*yyvalp
)))->inner
= (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
4369 #line 4370 "src/parser_proc.c" /* glr.c:816 */
4373 #line 1773 "src/parser_proc_grammar.y" /* glr.c:816 */
4375 (*(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
)));
4376 (*(struct psi_set_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
4377 (*(struct psi_set_func
**)(&(*yyvalp
)))->recursive
= 1;
4379 #line 4380 "src/parser_proc.c" /* glr.c:816 */
4383 #line 1792 "src/parser_proc_grammar.y" /* glr.c:816 */
4385 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
4387 #line 4388 "src/parser_proc.c" /* glr.c:816 */
4391 #line 1795 "src/parser_proc_grammar.y" /* glr.c:816 */
4393 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4395 #line 4396 "src/parser_proc.c" /* glr.c:816 */
4399 #line 1801 "src/parser_proc_grammar.y" /* glr.c:816 */
4401 (*(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
)));
4403 #line 4404 "src/parser_proc.c" /* glr.c:816 */
4407 #line 1804 "src/parser_proc_grammar.y" /* glr.c:816 */
4409 (*(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
)));
4411 #line 4412 "src/parser_proc.c" /* glr.c:816 */
4415 #line 1810 "src/parser_proc_grammar.y" /* glr.c:816 */
4417 (*(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
)));
4418 (*(struct psi_assert_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
4420 #line 4421 "src/parser_proc.c" /* glr.c:816 */
4424 #line 1822 "src/parser_proc_grammar.y" /* glr.c:816 */
4426 (*(struct psi_free_stmt
**)(&(*yyvalp
))) = psi_free_stmt_init((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
4427 (*(struct psi_free_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
4429 #line 4430 "src/parser_proc.c" /* glr.c:816 */
4433 #line 1829 "src/parser_proc_grammar.y" /* glr.c:816 */
4435 (*(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
)));
4437 #line 4438 "src/parser_proc.c" /* glr.c:816 */
4441 #line 1832 "src/parser_proc_grammar.y" /* glr.c:816 */
4443 (*(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
)));
4445 #line 4446 "src/parser_proc.c" /* glr.c:816 */
4449 #line 1838 "src/parser_proc_grammar.y" /* glr.c:816 */
4451 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
4452 (*(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
)));
4453 (*(struct psi_free_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
4455 #line 4456 "src/parser_proc.c" /* glr.c:816 */
4459 #line 1846 "src/parser_proc_grammar.y" /* glr.c:816 */
4461 (*(bool*)(&(*yyvalp
))) = false;
4463 #line 4464 "src/parser_proc.c" /* glr.c:816 */
4467 #line 1849 "src/parser_proc_grammar.y" /* glr.c:816 */
4469 (*(bool*)(&(*yyvalp
))) = true;
4471 #line 4472 "src/parser_proc.c" /* glr.c:816 */
4475 #line 4476 "src/parser_proc.c" /* glr.c:816 */
4486 # undef YYRECOVERING
4491 yyuserMerge (int yyn
, YYSTYPE
* yy0
, YYSTYPE
* yy1
)
4503 /* Bison grammar-table manipulation. */
4505 /*-----------------------------------------------.
4506 | Release the memory associated to this symbol. |
4507 `-----------------------------------------------*/
4510 yydestruct (const char *yymsg
, int yytype
, YYSTYPE
*yyvaluep
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
4518 YY_SYMBOL_PRINT (yymsg
, yytype
, yyvaluep
, yylocationp
);
4520 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4523 case 133: /* binary_op_token */
4524 #line 277 "src/parser_proc_grammar.y" /* glr.c:846 */
4526 #line 4527 "src/parser_proc.c" /* glr.c:846 */
4529 case 134: /* unary_op_token */
4530 #line 277 "src/parser_proc_grammar.y" /* glr.c:846 */
4532 #line 4533 "src/parser_proc.c" /* glr.c:846 */
4535 case 135: /* name_token */
4536 #line 277 "src/parser_proc_grammar.y" /* glr.c:846 */
4538 #line 4539 "src/parser_proc.c" /* glr.c:846 */
4541 case 136: /* any_noeol_token */
4542 #line 277 "src/parser_proc_grammar.y" /* glr.c:846 */
4544 #line 4545 "src/parser_proc.c" /* glr.c:846 */
4548 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
4549 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4550 #line 4551 "src/parser_proc.c" /* glr.c:846 */
4554 #line 286 "src/parser_proc_grammar.y" /* glr.c:846 */
4555 {psi_cpp_exp_free(&(*(struct psi_cpp_exp
**)(&(*yyvaluep
))));}
4556 #line 4557 "src/parser_proc.c" /* glr.c:846 */
4559 case 142: /* cpp_exp */
4560 #line 286 "src/parser_proc_grammar.y" /* glr.c:846 */
4561 {psi_cpp_exp_free(&(*(struct psi_cpp_exp
**)(&(*yyvaluep
))));}
4562 #line 4563 "src/parser_proc.c" /* glr.c:846 */
4565 case 144: /* cpp_message_token */
4566 #line 274 "src/parser_proc_grammar.y" /* glr.c:846 */
4568 #line 4569 "src/parser_proc.c" /* glr.c:846 */
4571 case 145: /* cpp_include_token */
4572 #line 274 "src/parser_proc_grammar.y" /* glr.c:846 */
4574 #line 4575 "src/parser_proc.c" /* glr.c:846 */
4577 case 146: /* cpp_header_token */
4578 #line 274 "src/parser_proc_grammar.y" /* glr.c:846 */
4580 #line 4581 "src/parser_proc.c" /* glr.c:846 */
4583 case 147: /* cpp_no_arg_token */
4584 #line 274 "src/parser_proc_grammar.y" /* glr.c:846 */
4586 #line 4587 "src/parser_proc.c" /* glr.c:846 */
4589 case 148: /* cpp_name_arg_token */
4590 #line 274 "src/parser_proc_grammar.y" /* glr.c:846 */
4592 #line 4593 "src/parser_proc.c" /* glr.c:846 */
4595 case 149: /* cpp_exp_arg_token */
4596 #line 274 "src/parser_proc_grammar.y" /* glr.c:846 */
4598 #line 4599 "src/parser_proc.c" /* glr.c:846 */
4601 case 150: /* cpp_special_name_token */
4602 #line 274 "src/parser_proc_grammar.y" /* glr.c:846 */
4604 #line 4605 "src/parser_proc.c" /* glr.c:846 */
4607 case 151: /* cpp_macro_decl */
4608 #line 288 "src/parser_proc_grammar.y" /* glr.c:846 */
4609 {psi_cpp_macro_decl_free(&(*(struct psi_cpp_macro_decl
**)(&(*yyvaluep
))));}
4610 #line 4611 "src/parser_proc.c" /* glr.c:846 */
4613 case 152: /* cpp_macro_sig */
4614 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
4615 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4616 #line 4617 "src/parser_proc.c" /* glr.c:846 */
4619 case 153: /* cpp_macro_sig_args */
4620 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
4621 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4622 #line 4623 "src/parser_proc.c" /* glr.c:846 */
4625 case 154: /* cpp_macro_decl_tokens */
4626 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
4627 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4628 #line 4629 "src/parser_proc.c" /* glr.c:846 */
4631 case 155: /* cpp_macro_decl_token_list */
4632 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
4633 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4634 #line 4635 "src/parser_proc.c" /* glr.c:846 */
4637 case 156: /* cpp_macro_exp */
4638 #line 292 "src/parser_proc_grammar.y" /* glr.c:846 */
4639 {psi_num_exp_free(&(*(struct psi_num_exp
**)(&(*yyvaluep
))));}
4640 #line 4641 "src/parser_proc.c" /* glr.c:846 */
4643 case 157: /* cpp_macro_call_args */
4644 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
4645 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4646 #line 4647 "src/parser_proc.c" /* glr.c:846 */
4649 case 158: /* cpp_macro_call_arg_list */
4650 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
4651 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4652 #line 4653 "src/parser_proc.c" /* glr.c:846 */
4655 case 159: /* constant */
4656 #line 298 "src/parser_proc_grammar.y" /* glr.c:846 */
4657 {psi_const_free(&(*(struct psi_const
**)(&(*yyvaluep
))));}
4658 #line 4659 "src/parser_proc.c" /* glr.c:846 */
4661 case 160: /* constant_type */
4662 #line 300 "src/parser_proc_grammar.y" /* glr.c:846 */
4663 {psi_const_type_free(&(*(struct psi_const_type
**)(&(*yyvaluep
))));}
4664 #line 4665 "src/parser_proc.c" /* glr.c:846 */
4667 case 161: /* constant_type_token */
4668 #line 295 "src/parser_proc_grammar.y" /* glr.c:846 */
4670 #line 4671 "src/parser_proc.c" /* glr.c:846 */
4673 case 162: /* impl_def_val */
4674 #line 302 "src/parser_proc_grammar.y" /* glr.c:846 */
4675 {psi_impl_def_val_free(&(*(struct psi_impl_def_val
**)(&(*yyvaluep
))));}
4676 #line 4677 "src/parser_proc.c" /* glr.c:846 */
4679 case 163: /* impl_def_val_token */
4680 #line 295 "src/parser_proc_grammar.y" /* glr.c:846 */
4682 #line 4683 "src/parser_proc.c" /* glr.c:846 */
4685 case 164: /* decl_typedef */
4686 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
4687 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4688 #line 4689 "src/parser_proc.c" /* glr.c:846 */
4691 case 165: /* typedef */
4692 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
4693 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4694 #line 4695 "src/parser_proc.c" /* glr.c:846 */
4697 case 166: /* const_decl_type */
4698 #line 311 "src/parser_proc_grammar.y" /* glr.c:846 */
4699 {psi_decl_type_free(&(*(struct psi_decl_type
**)(&(*yyvaluep
))));}
4700 #line 4701 "src/parser_proc.c" /* glr.c:846 */
4703 case 167: /* decl_type */
4704 #line 311 "src/parser_proc_grammar.y" /* glr.c:846 */
4705 {psi_decl_type_free(&(*(struct psi_decl_type
**)(&(*yyvaluep
))));}
4706 #line 4707 "src/parser_proc.c" /* glr.c:846 */
4709 case 168: /* decl_type_complex */
4710 #line 311 "src/parser_proc_grammar.y" /* glr.c:846 */
4711 {psi_decl_type_free(&(*(struct psi_decl_type
**)(&(*yyvaluep
))));}
4712 #line 4713 "src/parser_proc.c" /* glr.c:846 */
4715 case 169: /* decl_type_simple */
4716 #line 305 "src/parser_proc_grammar.y" /* glr.c:846 */
4717 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4718 #line 4719 "src/parser_proc.c" /* glr.c:846 */
4721 case 170: /* decl_real_type */
4722 #line 305 "src/parser_proc_grammar.y" /* glr.c:846 */
4723 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4724 #line 4725 "src/parser_proc.c" /* glr.c:846 */
4727 case 171: /* decl_stdint_type */
4728 #line 308 "src/parser_proc_grammar.y" /* glr.c:846 */
4730 #line 4731 "src/parser_proc.c" /* glr.c:846 */
4733 case 172: /* int_signed */
4734 #line 283 "src/parser_proc_grammar.y" /* glr.c:846 */
4736 #line 4737 "src/parser_proc.c" /* glr.c:846 */
4739 case 173: /* int_width */
4740 #line 280 "src/parser_proc_grammar.y" /* glr.c:846 */
4741 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4742 #line 4743 "src/parser_proc.c" /* glr.c:846 */
4745 case 174: /* decl_int_type */
4746 #line 305 "src/parser_proc_grammar.y" /* glr.c:846 */
4747 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4748 #line 4749 "src/parser_proc.c" /* glr.c:846 */
4751 case 175: /* int_signed_types */
4752 #line 280 "src/parser_proc_grammar.y" /* glr.c:846 */
4753 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4754 #line 4755 "src/parser_proc.c" /* glr.c:846 */
4757 case 176: /* signed_short_types */
4758 #line 283 "src/parser_proc_grammar.y" /* glr.c:846 */
4760 #line 4761 "src/parser_proc.c" /* glr.c:846 */
4763 case 177: /* signed_long_types */
4764 #line 283 "src/parser_proc_grammar.y" /* glr.c:846 */
4766 #line 4767 "src/parser_proc.c" /* glr.c:846 */
4769 case 178: /* int_width_types */
4770 #line 280 "src/parser_proc_grammar.y" /* glr.c:846 */
4771 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4772 #line 4773 "src/parser_proc.c" /* glr.c:846 */
4775 case 179: /* decl_stmt */
4776 #line 313 "src/parser_proc_grammar.y" /* glr.c:846 */
4777 {psi_decl_free(&(*(struct psi_decl
**)(&(*yyvaluep
))));}
4778 #line 4779 "src/parser_proc.c" /* glr.c:846 */
4781 case 185: /* decl_vars */
4782 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
4783 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4784 #line 4785 "src/parser_proc.c" /* glr.c:846 */
4787 case 186: /* decl */
4788 #line 313 "src/parser_proc_grammar.y" /* glr.c:846 */
4789 {psi_decl_free(&(*(struct psi_decl
**)(&(*yyvaluep
))));}
4790 #line 4791 "src/parser_proc.c" /* glr.c:846 */
4793 case 187: /* decl_body */
4794 #line 313 "src/parser_proc_grammar.y" /* glr.c:846 */
4795 {psi_decl_free(&(*(struct psi_decl
**)(&(*yyvaluep
))));}
4796 #line 4797 "src/parser_proc.c" /* glr.c:846 */
4799 case 188: /* decl_func_body */
4800 #line 313 "src/parser_proc_grammar.y" /* glr.c:846 */
4801 {psi_decl_free(&(*(struct psi_decl
**)(&(*yyvaluep
))));}
4802 #line 4803 "src/parser_proc.c" /* glr.c:846 */
4805 case 189: /* decl_functor_body */
4806 #line 313 "src/parser_proc_grammar.y" /* glr.c:846 */
4807 {psi_decl_free(&(*(struct psi_decl
**)(&(*yyvaluep
))));}
4808 #line 4809 "src/parser_proc.c" /* glr.c:846 */
4811 case 190: /* decl_functor */
4812 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
4813 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4814 #line 4815 "src/parser_proc.c" /* glr.c:846 */
4817 case 191: /* decl_func */
4818 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
4819 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4820 #line 4821 "src/parser_proc.c" /* glr.c:846 */
4823 case 192: /* decl_args */
4824 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
4825 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4826 #line 4827 "src/parser_proc.c" /* glr.c:846 */
4829 case 193: /* decl_anon_arg */
4830 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
4831 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4832 #line 4833 "src/parser_proc.c" /* glr.c:846 */
4835 case 194: /* decl_arg */
4836 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
4837 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4838 #line 4839 "src/parser_proc.c" /* glr.c:846 */
4841 case 195: /* decl_var */
4842 #line 317 "src/parser_proc_grammar.y" /* glr.c:846 */
4843 {psi_decl_var_free(&(*(struct psi_decl_var
**)(&(*yyvaluep
))));}
4844 #line 4845 "src/parser_proc.c" /* glr.c:846 */
4847 case 196: /* decl_union */
4848 #line 321 "src/parser_proc_grammar.y" /* glr.c:846 */
4849 {psi_decl_union_free(&(*(struct psi_decl_union
**)(&(*yyvaluep
))));}
4850 #line 4851 "src/parser_proc.c" /* glr.c:846 */
4853 case 197: /* decl_struct */
4854 #line 319 "src/parser_proc_grammar.y" /* glr.c:846 */
4855 {psi_decl_struct_free(&(*(struct psi_decl_struct
**)(&(*yyvaluep
))));}
4856 #line 4857 "src/parser_proc.c" /* glr.c:846 */
4859 case 198: /* decl_struct_args */
4860 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
4861 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4862 #line 4863 "src/parser_proc.c" /* glr.c:846 */
4865 case 199: /* struct_args_block */
4866 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
4867 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4868 #line 4869 "src/parser_proc.c" /* glr.c:846 */
4871 case 200: /* struct_args */
4872 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
4873 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4874 #line 4875 "src/parser_proc.c" /* glr.c:846 */
4877 case 201: /* struct_arg_var_list */
4878 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
4879 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4880 #line 4881 "src/parser_proc.c" /* glr.c:846 */
4883 case 202: /* decl_vars_with_layout */
4884 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
4885 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4886 #line 4887 "src/parser_proc.c" /* glr.c:846 */
4889 case 203: /* decl_enum */
4890 #line 323 "src/parser_proc_grammar.y" /* glr.c:846 */
4891 {psi_decl_enum_free(&(*(struct psi_decl_enum
**)(&(*yyvaluep
))));}
4892 #line 4893 "src/parser_proc.c" /* glr.c:846 */
4895 case 204: /* decl_enum_items */
4896 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
4897 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4898 #line 4899 "src/parser_proc.c" /* glr.c:846 */
4901 case 205: /* decl_enum_item */
4902 #line 325 "src/parser_proc_grammar.y" /* glr.c:846 */
4903 {psi_decl_enum_item_free(&(*(struct psi_decl_enum_item
**)(&(*yyvaluep
))));}
4904 #line 4905 "src/parser_proc.c" /* glr.c:846 */
4907 case 206: /* num_exp */
4908 #line 378 "src/parser_proc_grammar.y" /* glr.c:846 */
4909 {psi_num_exp_free(&(*(struct psi_num_exp
**)(&(*yyvaluep
))));}
4910 #line 4911 "src/parser_proc.c" /* glr.c:846 */
4913 case 207: /* number */
4914 #line 380 "src/parser_proc_grammar.y" /* glr.c:846 */
4915 {psi_number_free(&(*(struct psi_number
**)(&(*yyvaluep
))));}
4916 #line 4917 "src/parser_proc.c" /* glr.c:846 */
4919 case 208: /* enum_name */
4920 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
4921 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4922 #line 4923 "src/parser_proc.c" /* glr.c:846 */
4925 case 209: /* union_name */
4926 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
4927 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4928 #line 4929 "src/parser_proc.c" /* glr.c:846 */
4931 case 210: /* struct_name */
4932 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
4933 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4934 #line 4935 "src/parser_proc.c" /* glr.c:846 */
4937 case 211: /* optional_name */
4938 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
4939 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4940 #line 4941 "src/parser_proc.c" /* glr.c:846 */
4943 case 212: /* decl_layout */
4944 #line 332 "src/parser_proc_grammar.y" /* glr.c:846 */
4945 {psi_layout_free(&(*(struct psi_layout
**)(&(*yyvaluep
))));}
4946 #line 4947 "src/parser_proc.c" /* glr.c:846 */
4949 case 213: /* align_and_size */
4950 #line 330 "src/parser_proc_grammar.y" /* glr.c:846 */
4952 #line 4953 "src/parser_proc.c" /* glr.c:846 */
4955 case 214: /* array_size */
4956 #line 383 "src/parser_proc_grammar.y" /* glr.c:846 */
4958 #line 4959 "src/parser_proc.c" /* glr.c:846 */
4961 case 215: /* indirection */
4962 #line 383 "src/parser_proc_grammar.y" /* glr.c:846 */
4964 #line 4965 "src/parser_proc.c" /* glr.c:846 */
4967 case 216: /* pointers */
4968 #line 383 "src/parser_proc_grammar.y" /* glr.c:846 */
4970 #line 4971 "src/parser_proc.c" /* glr.c:846 */
4973 case 217: /* asterisks */
4974 #line 383 "src/parser_proc_grammar.y" /* glr.c:846 */
4976 #line 4977 "src/parser_proc.c" /* glr.c:846 */
4979 case 218: /* impl */
4980 #line 335 "src/parser_proc_grammar.y" /* glr.c:846 */
4981 {psi_impl_free(&(*(struct psi_impl
**)(&(*yyvaluep
))));}
4982 #line 4983 "src/parser_proc.c" /* glr.c:846 */
4985 case 219: /* impl_func */
4986 #line 337 "src/parser_proc_grammar.y" /* glr.c:846 */
4987 {psi_impl_func_free(&(*(struct psi_impl_func
**)(&(*yyvaluep
))));}
4988 #line 4989 "src/parser_proc.c" /* glr.c:846 */
4991 case 220: /* impl_args */
4992 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
4993 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4994 #line 4995 "src/parser_proc.c" /* glr.c:846 */
4997 case 221: /* impl_arg */
4998 #line 339 "src/parser_proc_grammar.y" /* glr.c:846 */
4999 {psi_impl_arg_free(&(*(struct psi_impl_arg
**)(&(*yyvaluep
))));}
5000 #line 5001 "src/parser_proc.c" /* glr.c:846 */
5003 case 222: /* impl_var */
5004 #line 343 "src/parser_proc_grammar.y" /* glr.c:846 */
5005 {psi_impl_var_free(&(*(struct psi_impl_var
**)(&(*yyvaluep
))));}
5006 #line 5007 "src/parser_proc.c" /* glr.c:846 */
5009 case 223: /* impl_type */
5010 #line 341 "src/parser_proc_grammar.y" /* glr.c:846 */
5011 {psi_impl_type_free(&(*(struct psi_impl_type
**)(&(*yyvaluep
))));}
5012 #line 5013 "src/parser_proc.c" /* glr.c:846 */
5015 case 224: /* impl_type_token */
5016 #line 373 "src/parser_proc_grammar.y" /* glr.c:846 */
5017 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
5018 #line 5019 "src/parser_proc.c" /* glr.c:846 */
5021 case 225: /* impl_stmts */
5022 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
5023 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
5024 #line 5025 "src/parser_proc.c" /* glr.c:846 */
5027 case 226: /* impl_stmt */
5028 #line 371 "src/parser_proc_grammar.y" /* glr.c:846 */
5029 {psi_impl_stmt_free(&(*(struct psi_token
***)(&(*yyvaluep
))));}
5030 #line 5031 "src/parser_proc.c" /* glr.c:846 */
5033 case 227: /* let_stmt */
5034 #line 346 "src/parser_proc_grammar.y" /* glr.c:846 */
5035 {psi_let_stmt_free(&(*(struct psi_let_stmt
**)(&(*yyvaluep
))));}
5036 #line 5037 "src/parser_proc.c" /* glr.c:846 */
5039 case 228: /* let_exp */
5040 #line 348 "src/parser_proc_grammar.y" /* glr.c:846 */
5041 {psi_let_exp_free(&(*(struct psi_let_exp
**)(&(*yyvaluep
))));}
5042 #line 5043 "src/parser_proc.c" /* glr.c:846 */
5045 case 229: /* let_exp_byref */
5046 #line 348 "src/parser_proc_grammar.y" /* glr.c:846 */
5047 {psi_let_exp_free(&(*(struct psi_let_exp
**)(&(*yyvaluep
))));}
5048 #line 5049 "src/parser_proc.c" /* glr.c:846 */
5051 case 230: /* let_exp_assign */
5052 #line 348 "src/parser_proc_grammar.y" /* glr.c:846 */
5053 {psi_let_exp_free(&(*(struct psi_let_exp
**)(&(*yyvaluep
))));}
5054 #line 5055 "src/parser_proc.c" /* glr.c:846 */
5057 case 231: /* let_calloc */
5058 #line 350 "src/parser_proc_grammar.y" /* glr.c:846 */
5059 {psi_let_calloc_free(&(*(struct psi_let_calloc
**)(&(*yyvaluep
))));}
5060 #line 5061 "src/parser_proc.c" /* glr.c:846 */
5063 case 232: /* let_callback */
5064 #line 352 "src/parser_proc_grammar.y" /* glr.c:846 */
5065 {psi_let_callback_free(&(*(struct psi_let_callback
**)(&(*yyvaluep
))));}
5066 #line 5067 "src/parser_proc.c" /* glr.c:846 */
5069 case 233: /* let_func */
5070 #line 354 "src/parser_proc_grammar.y" /* glr.c:846 */
5071 {psi_let_func_free(&(*(struct psi_let_func
**)(&(*yyvaluep
))));}
5072 #line 5073 "src/parser_proc.c" /* glr.c:846 */
5075 case 234: /* let_func_token */
5076 #line 373 "src/parser_proc_grammar.y" /* glr.c:846 */
5077 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
5078 #line 5079 "src/parser_proc.c" /* glr.c:846 */
5081 case 235: /* let_func_exps */
5082 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
5083 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
5084 #line 5085 "src/parser_proc.c" /* glr.c:846 */
5087 case 236: /* let_exps */
5088 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
5089 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
5090 #line 5091 "src/parser_proc.c" /* glr.c:846 */
5093 case 237: /* callback_rval */
5094 #line 373 "src/parser_proc_grammar.y" /* glr.c:846 */
5095 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
5096 #line 5097 "src/parser_proc.c" /* glr.c:846 */
5099 case 238: /* callback_arg_list */
5100 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
5101 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
5102 #line 5103 "src/parser_proc.c" /* glr.c:846 */
5105 case 239: /* callback_args */
5106 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
5107 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
5108 #line 5109 "src/parser_proc.c" /* glr.c:846 */
5111 case 240: /* return_stmt */
5112 #line 364 "src/parser_proc_grammar.y" /* glr.c:846 */
5113 {psi_return_stmt_free(&(*(struct psi_return_stmt
**)(&(*yyvaluep
))));}
5114 #line 5115 "src/parser_proc.c" /* glr.c:846 */
5117 case 241: /* set_stmt */
5118 #line 356 "src/parser_proc_grammar.y" /* glr.c:846 */
5119 {psi_set_stmt_free(&(*(struct psi_set_stmt
**)(&(*yyvaluep
))));}
5120 #line 5121 "src/parser_proc.c" /* glr.c:846 */
5123 case 242: /* set_exp */
5124 #line 358 "src/parser_proc_grammar.y" /* glr.c:846 */
5125 {psi_set_exp_free(&(*(struct psi_set_exp
**)(&(*yyvaluep
))));}
5126 #line 5127 "src/parser_proc.c" /* glr.c:846 */
5129 case 243: /* set_func */
5130 #line 360 "src/parser_proc_grammar.y" /* glr.c:846 */
5131 {psi_set_func_free(&(*(struct psi_set_func
**)(&(*yyvaluep
))));}
5132 #line 5133 "src/parser_proc.c" /* glr.c:846 */
5135 case 244: /* set_func_token */
5136 #line 373 "src/parser_proc_grammar.y" /* glr.c:846 */
5137 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
5138 #line 5139 "src/parser_proc.c" /* glr.c:846 */
5141 case 245: /* set_func_exps */
5142 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
5143 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
5144 #line 5145 "src/parser_proc.c" /* glr.c:846 */
5147 case 246: /* set_exps */
5148 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
5149 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
5150 #line 5151 "src/parser_proc.c" /* glr.c:846 */
5153 case 247: /* assert_stmt */
5154 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5155 {psi_assert_stmt_free(&(*(struct psi_assert_stmt
**)(&(*yyvaluep
))));}
5156 #line 5157 "src/parser_proc.c" /* glr.c:846 */
5159 case 248: /* assert_stmt_token */
5160 #line 373 "src/parser_proc_grammar.y" /* glr.c:846 */
5161 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
5162 #line 5163 "src/parser_proc.c" /* glr.c:846 */
5165 case 249: /* free_stmt */
5166 #line 366 "src/parser_proc_grammar.y" /* glr.c:846 */
5167 {psi_free_stmt_free(&(*(struct psi_free_stmt
**)(&(*yyvaluep
))));}
5168 #line 5169 "src/parser_proc.c" /* glr.c:846 */
5171 case 250: /* free_exps */
5172 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
5173 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
5174 #line 5175 "src/parser_proc.c" /* glr.c:846 */
5177 case 251: /* free_exp */
5178 #line 368 "src/parser_proc_grammar.y" /* glr.c:846 */
5179 {psi_free_exp_free(&(*(struct psi_free_exp
**)(&(*yyvaluep
))));}
5180 #line 5181 "src/parser_proc.c" /* glr.c:846 */
5183 case 252: /* reference */
5184 #line 385 "src/parser_proc_grammar.y" /* glr.c:846 */
5186 #line 5187 "src/parser_proc.c" /* glr.c:846 */
5193 YY_IGNORE_MAYBE_UNINITIALIZED_END
5196 /** Number of symbols composing the right hand side of rule #RULE. */
5198 yyrhsLength (yyRuleNum yyrule
)
5200 return yyr2
[yyrule
];
5204 yydestroyGLRState (char const *yymsg
, yyGLRState
*yys
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5206 if (yys
->yyresolved
)
5207 yydestruct (yymsg
, yystos
[yys
->yylrState
],
5208 &yys
->yysemantics
.yysval
, P
, tokens
, index
);
5214 if (yys
->yysemantics
.yyfirstVal
)
5215 YYFPRINTF (stderr
, "%s unresolved", yymsg
);
5217 YYFPRINTF (stderr
, "%s incomplete", yymsg
);
5218 YY_SYMBOL_PRINT ("", yystos
[yys
->yylrState
], YY_NULLPTR
, &yys
->yyloc
);
5222 if (yys
->yysemantics
.yyfirstVal
)
5224 yySemanticOption
*yyoption
= yys
->yysemantics
.yyfirstVal
;
5227 for (yyrh
= yyoption
->yystate
, yyn
= yyrhsLength (yyoption
->yyrule
);
5229 yyrh
= yyrh
->yypred
, yyn
-= 1)
5230 yydestroyGLRState (yymsg
, yyrh
, P
, tokens
, index
);
5235 /** Left-hand-side symbol for rule #YYRULE. */
5236 static inline yySymbol
5237 yylhsNonterm (yyRuleNum yyrule
)
5239 return yyr1
[yyrule
];
5242 #define yypact_value_is_default(Yystate) \
5243 (!!((Yystate) == (-550)))
5245 /** True iff LR state YYSTATE has only a default reduction (regardless
5247 static inline yybool
5248 yyisDefaultedState (yyStateNum yystate
)
5250 return yypact_value_is_default (yypact
[yystate
]);
5253 /** The default reduction for YYSTATE, assuming it has one. */
5254 static inline yyRuleNum
5255 yydefaultAction (yyStateNum yystate
)
5257 return yydefact
[yystate
];
5260 #define yytable_value_is_error(Yytable_value) \
5263 /** Set *YYACTION to the action to take in YYSTATE on seeing YYTOKEN.
5265 * R < 0: Reduce on rule -R.
5267 * R > 0: Shift to state R.
5268 * Set *YYCONFLICTS to a pointer into yyconfl to a 0-terminated list
5269 * of conflicting reductions.
5272 yygetLRActions (yyStateNum yystate
, int yytoken
,
5273 int* yyaction
, const short int** yyconflicts
)
5275 int yyindex
= yypact
[yystate
] + yytoken
;
5276 if (yypact_value_is_default (yypact
[yystate
])
5277 || yyindex
< 0 || YYLAST
< yyindex
|| yycheck
[yyindex
] != yytoken
)
5279 *yyaction
= -yydefact
[yystate
];
5280 *yyconflicts
= yyconfl
;
5282 else if (! yytable_value_is_error (yytable
[yyindex
]))
5284 *yyaction
= yytable
[yyindex
];
5285 *yyconflicts
= yyconfl
+ yyconflp
[yyindex
];
5290 *yyconflicts
= yyconfl
+ yyconflp
[yyindex
];
5294 /** Compute post-reduction state.
5295 * \param yystate the current state
5296 * \param yysym the nonterminal to push on the stack
5298 static inline yyStateNum
5299 yyLRgotoState (yyStateNum yystate
, yySymbol yysym
)
5301 int yyr
= yypgoto
[yysym
- YYNTOKENS
] + yystate
;
5302 if (0 <= yyr
&& yyr
<= YYLAST
&& yycheck
[yyr
] == yystate
)
5303 return yytable
[yyr
];
5305 return yydefgoto
[yysym
- YYNTOKENS
];
5308 static inline yybool
5309 yyisShiftAction (int yyaction
)
5311 return 0 < yyaction
;
5314 static inline yybool
5315 yyisErrorAction (int yyaction
)
5317 return yyaction
== 0;
5322 /** Return a fresh GLRStackItem in YYSTACKP. The item is an LR state
5323 * if YYISSTATE, and otherwise a semantic option. Callers should call
5324 * YY_RESERVE_GLRSTACK afterwards to make sure there is sufficient
5327 static inline yyGLRStackItem
*
5328 yynewGLRStackItem (yyGLRStack
* yystackp
, yybool yyisState
)
5330 yyGLRStackItem
* yynewItem
= yystackp
->yynextFree
;
5331 yystackp
->yyspaceLeft
-= 1;
5332 yystackp
->yynextFree
+= 1;
5333 yynewItem
->yystate
.yyisState
= yyisState
;
5337 /** Add a new semantic action that will execute the action for rule
5338 * YYRULE on the semantic values in YYRHS to the list of
5339 * alternative actions for YYSTATE. Assumes that YYRHS comes from
5340 * stack #YYK of *YYSTACKP. */
5342 yyaddDeferredAction (yyGLRStack
* yystackp
, size_t yyk
, yyGLRState
* yystate
,
5343 yyGLRState
* yyrhs
, yyRuleNum yyrule
)
5345 yySemanticOption
* yynewOption
=
5346 &yynewGLRStackItem (yystackp
, yyfalse
)->yyoption
;
5347 YYASSERT (!yynewOption
->yyisState
);
5348 yynewOption
->yystate
= yyrhs
;
5349 yynewOption
->yyrule
= yyrule
;
5350 if (yystackp
->yytops
.yylookaheadNeeds
[yyk
])
5352 yynewOption
->yyrawchar
= yychar
;
5353 yynewOption
->yyval
= yylval
;
5356 yynewOption
->yyrawchar
= YYEMPTY
;
5357 yynewOption
->yynext
= yystate
->yysemantics
.yyfirstVal
;
5358 yystate
->yysemantics
.yyfirstVal
= yynewOption
;
5360 YY_RESERVE_GLRSTACK (yystackp
);
5365 /** Initialize YYSET to a singleton set containing an empty stack. */
5367 yyinitStateSet (yyGLRStateSet
* yyset
)
5370 yyset
->yycapacity
= 16;
5371 yyset
->yystates
= (yyGLRState
**) YYMALLOC (16 * sizeof yyset
->yystates
[0]);
5372 if (! yyset
->yystates
)
5374 yyset
->yystates
[0] = YY_NULLPTR
;
5375 yyset
->yylookaheadNeeds
=
5376 (yybool
*) YYMALLOC (16 * sizeof yyset
->yylookaheadNeeds
[0]);
5377 if (! yyset
->yylookaheadNeeds
)
5379 YYFREE (yyset
->yystates
);
5385 static void yyfreeStateSet (yyGLRStateSet
* yyset
)
5387 YYFREE (yyset
->yystates
);
5388 YYFREE (yyset
->yylookaheadNeeds
);
5391 /** Initialize *YYSTACKP to a single empty stack, with total maximum
5392 * capacity for all stacks of YYSIZE. */
5394 yyinitGLRStack (yyGLRStack
* yystackp
, size_t yysize
)
5396 yystackp
->yyerrState
= 0;
5398 yystackp
->yyspaceLeft
= yysize
;
5400 (yyGLRStackItem
*) YYMALLOC (yysize
* sizeof yystackp
->yynextFree
[0]);
5401 if (!yystackp
->yyitems
)
5403 yystackp
->yynextFree
= yystackp
->yyitems
;
5404 yystackp
->yysplitPoint
= YY_NULLPTR
;
5405 yystackp
->yylastDeleted
= YY_NULLPTR
;
5406 return yyinitStateSet (&yystackp
->yytops
);
5410 #if YYSTACKEXPANDABLE
5411 # define YYRELOC(YYFROMITEMS,YYTOITEMS,YYX,YYTYPE) \
5412 &((YYTOITEMS) - ((YYFROMITEMS) - (yyGLRStackItem*) (YYX)))->YYTYPE
5414 /** If *YYSTACKP is expandable, extend it. WARNING: Pointers into the
5415 stack from outside should be considered invalid after this call.
5416 We always expand when there are 1 or fewer items left AFTER an
5417 allocation, so that we can avoid having external pointers exist
5418 across an allocation. */
5420 yyexpandGLRStack (yyGLRStack
* yystackp
)
5422 yyGLRStackItem
* yynewItems
;
5423 yyGLRStackItem
* yyp0
, *yyp1
;
5426 size_t yysize
= yystackp
->yynextFree
- yystackp
->yyitems
;
5427 if (YYMAXDEPTH
- YYHEADROOM
< yysize
)
5428 yyMemoryExhausted (yystackp
);
5429 yynewSize
= 2*yysize
;
5430 if (YYMAXDEPTH
< yynewSize
)
5431 yynewSize
= YYMAXDEPTH
;
5432 yynewItems
= (yyGLRStackItem
*) YYMALLOC (yynewSize
* sizeof yynewItems
[0]);
5434 yyMemoryExhausted (yystackp
);
5435 for (yyp0
= yystackp
->yyitems
, yyp1
= yynewItems
, yyn
= yysize
;
5437 yyn
-= 1, yyp0
+= 1, yyp1
+= 1)
5440 if (*(yybool
*) yyp0
)
5442 yyGLRState
* yys0
= &yyp0
->yystate
;
5443 yyGLRState
* yys1
= &yyp1
->yystate
;
5444 if (yys0
->yypred
!= YY_NULLPTR
)
5446 YYRELOC (yyp0
, yyp1
, yys0
->yypred
, yystate
);
5447 if (! yys0
->yyresolved
&& yys0
->yysemantics
.yyfirstVal
!= YY_NULLPTR
)
5448 yys1
->yysemantics
.yyfirstVal
=
5449 YYRELOC (yyp0
, yyp1
, yys0
->yysemantics
.yyfirstVal
, yyoption
);
5453 yySemanticOption
* yyv0
= &yyp0
->yyoption
;
5454 yySemanticOption
* yyv1
= &yyp1
->yyoption
;
5455 if (yyv0
->yystate
!= YY_NULLPTR
)
5456 yyv1
->yystate
= YYRELOC (yyp0
, yyp1
, yyv0
->yystate
, yystate
);
5457 if (yyv0
->yynext
!= YY_NULLPTR
)
5458 yyv1
->yynext
= YYRELOC (yyp0
, yyp1
, yyv0
->yynext
, yyoption
);
5461 if (yystackp
->yysplitPoint
!= YY_NULLPTR
)
5462 yystackp
->yysplitPoint
= YYRELOC (yystackp
->yyitems
, yynewItems
,
5463 yystackp
->yysplitPoint
, yystate
);
5465 for (yyn
= 0; yyn
< yystackp
->yytops
.yysize
; yyn
+= 1)
5466 if (yystackp
->yytops
.yystates
[yyn
] != YY_NULLPTR
)
5467 yystackp
->yytops
.yystates
[yyn
] =
5468 YYRELOC (yystackp
->yyitems
, yynewItems
,
5469 yystackp
->yytops
.yystates
[yyn
], yystate
);
5470 YYFREE (yystackp
->yyitems
);
5471 yystackp
->yyitems
= yynewItems
;
5472 yystackp
->yynextFree
= yynewItems
+ yysize
;
5473 yystackp
->yyspaceLeft
= yynewSize
- yysize
;
5478 yyfreeGLRStack (yyGLRStack
* yystackp
)
5480 YYFREE (yystackp
->yyitems
);
5481 yyfreeStateSet (&yystackp
->yytops
);
5484 /** Assuming that YYS is a GLRState somewhere on *YYSTACKP, update the
5485 * splitpoint of *YYSTACKP, if needed, so that it is at least as deep as
5488 yyupdateSplit (yyGLRStack
* yystackp
, yyGLRState
* yys
)
5490 if (yystackp
->yysplitPoint
!= YY_NULLPTR
&& yystackp
->yysplitPoint
> yys
)
5491 yystackp
->yysplitPoint
= yys
;
5494 /** Invalidate stack #YYK in *YYSTACKP. */
5496 yymarkStackDeleted (yyGLRStack
* yystackp
, size_t yyk
)
5498 if (yystackp
->yytops
.yystates
[yyk
] != YY_NULLPTR
)
5499 yystackp
->yylastDeleted
= yystackp
->yytops
.yystates
[yyk
];
5500 yystackp
->yytops
.yystates
[yyk
] = YY_NULLPTR
;
5503 /** Undelete the last stack in *YYSTACKP that was marked as deleted. Can
5504 only be done once after a deletion, and only when all other stacks have
5507 yyundeleteLastStack (yyGLRStack
* yystackp
)
5509 if (yystackp
->yylastDeleted
== YY_NULLPTR
|| yystackp
->yytops
.yysize
!= 0)
5511 yystackp
->yytops
.yystates
[0] = yystackp
->yylastDeleted
;
5512 yystackp
->yytops
.yysize
= 1;
5513 YYDPRINTF ((stderr
, "Restoring last deleted stack as stack #0.\n"));
5514 yystackp
->yylastDeleted
= YY_NULLPTR
;
5518 yyremoveDeletes (yyGLRStack
* yystackp
)
5522 while (yyj
< yystackp
->yytops
.yysize
)
5524 if (yystackp
->yytops
.yystates
[yyi
] == YY_NULLPTR
)
5528 YYDPRINTF ((stderr
, "Removing dead stacks.\n"));
5530 yystackp
->yytops
.yysize
-= 1;
5534 yystackp
->yytops
.yystates
[yyj
] = yystackp
->yytops
.yystates
[yyi
];
5535 /* In the current implementation, it's unnecessary to copy
5536 yystackp->yytops.yylookaheadNeeds[yyi] since, after
5537 yyremoveDeletes returns, the parser immediately either enters
5538 deterministic operation or shifts a token. However, it doesn't
5539 hurt, and the code might evolve to need it. */
5540 yystackp
->yytops
.yylookaheadNeeds
[yyj
] =
5541 yystackp
->yytops
.yylookaheadNeeds
[yyi
];
5544 YYDPRINTF ((stderr
, "Rename stack %lu -> %lu.\n",
5545 (unsigned long int) yyi
, (unsigned long int) yyj
));
5553 /** Shift to a new state on stack #YYK of *YYSTACKP, corresponding to LR
5554 * state YYLRSTATE, at input position YYPOSN, with (resolved) semantic
5555 * value *YYVALP and source location *YYLOCP. */
5557 yyglrShift (yyGLRStack
* yystackp
, size_t yyk
, yyStateNum yylrState
,
5561 yyGLRState
* yynewState
= &yynewGLRStackItem (yystackp
, yytrue
)->yystate
;
5563 yynewState
->yylrState
= yylrState
;
5564 yynewState
->yyposn
= yyposn
;
5565 yynewState
->yyresolved
= yytrue
;
5566 yynewState
->yypred
= yystackp
->yytops
.yystates
[yyk
];
5567 yynewState
->yysemantics
.yysval
= *yyvalp
;
5568 yystackp
->yytops
.yystates
[yyk
] = yynewState
;
5570 YY_RESERVE_GLRSTACK (yystackp
);
5573 /** Shift stack #YYK of *YYSTACKP, to a new state corresponding to LR
5574 * state YYLRSTATE, at input position YYPOSN, with the (unresolved)
5575 * semantic value of YYRHS under the action for YYRULE. */
5577 yyglrShiftDefer (yyGLRStack
* yystackp
, size_t yyk
, yyStateNum yylrState
,
5578 size_t yyposn
, yyGLRState
* yyrhs
, yyRuleNum yyrule
)
5580 yyGLRState
* yynewState
= &yynewGLRStackItem (yystackp
, yytrue
)->yystate
;
5581 YYASSERT (yynewState
->yyisState
);
5583 yynewState
->yylrState
= yylrState
;
5584 yynewState
->yyposn
= yyposn
;
5585 yynewState
->yyresolved
= yyfalse
;
5586 yynewState
->yypred
= yystackp
->yytops
.yystates
[yyk
];
5587 yynewState
->yysemantics
.yyfirstVal
= YY_NULLPTR
;
5588 yystackp
->yytops
.yystates
[yyk
] = yynewState
;
5590 /* Invokes YY_RESERVE_GLRSTACK. */
5591 yyaddDeferredAction (yystackp
, yyk
, yynewState
, yyrhs
, yyrule
);
5595 # define YY_REDUCE_PRINT(Args)
5597 # define YY_REDUCE_PRINT(Args) \
5600 yy_reduce_print Args; \
5603 /*----------------------------------------------------------------------.
5604 | Report that stack #YYK of *YYSTACKP is going to be reduced by YYRULE. |
5605 `----------------------------------------------------------------------*/
5608 yy_reduce_print (int yynormal
, yyGLRStackItem
* yyvsp
, size_t yyk
,
5609 yyRuleNum yyrule
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5611 int yynrhs
= yyrhsLength (yyrule
);
5613 YYFPRINTF (stderr
, "Reducing stack %lu by rule %d (line %lu):\n",
5614 (unsigned long int) yyk
, yyrule
- 1,
5615 (unsigned long int) yyrline
[yyrule
]);
5617 yyfillin (yyvsp
, 1, -yynrhs
);
5618 /* The symbols being reduced. */
5619 for (yyi
= 0; yyi
< yynrhs
; yyi
++)
5621 YYFPRINTF (stderr
, " $%d = ", yyi
+ 1);
5622 yy_symbol_print (stderr
,
5623 yystos
[yyvsp
[yyi
- yynrhs
+ 1].yystate
.yylrState
],
5624 &yyvsp
[yyi
- yynrhs
+ 1].yystate
.yysemantics
.yysval
5625 , P
, tokens
, index
);
5626 if (!yyvsp
[yyi
- yynrhs
+ 1].yystate
.yyresolved
)
5627 YYFPRINTF (stderr
, " (unresolved)");
5628 YYFPRINTF (stderr
, "\n");
5633 /** Pop the symbols consumed by reduction #YYRULE from the top of stack
5634 * #YYK of *YYSTACKP, and perform the appropriate semantic action on their
5635 * semantic values. Assumes that all ambiguities in semantic values
5636 * have been previously resolved. Set *YYVALP to the resulting value,
5637 * and *YYLOCP to the computed location (if any). Return value is as
5638 * for userAction. */
5639 static inline YYRESULTTAG
5640 yydoAction (yyGLRStack
* yystackp
, size_t yyk
, yyRuleNum yyrule
,
5641 YYSTYPE
* yyvalp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5643 int yynrhs
= yyrhsLength (yyrule
);
5645 if (yystackp
->yysplitPoint
== YY_NULLPTR
)
5647 /* Standard special case: single stack. */
5648 yyGLRStackItem
* yyrhs
= (yyGLRStackItem
*) yystackp
->yytops
.yystates
[yyk
];
5649 YYASSERT (yyk
== 0);
5650 yystackp
->yynextFree
-= yynrhs
;
5651 yystackp
->yyspaceLeft
+= yynrhs
;
5652 yystackp
->yytops
.yystates
[0] = & yystackp
->yynextFree
[-1].yystate
;
5653 YY_REDUCE_PRINT ((1, yyrhs
, yyk
, yyrule
, P
, tokens
, index
));
5654 return yyuserAction (yyrule
, yynrhs
, yyrhs
, yystackp
,
5655 yyvalp
, P
, tokens
, index
);
5661 yyGLRStackItem yyrhsVals
[YYMAXRHS
+ YYMAXLEFT
+ 1];
5662 yys
= yyrhsVals
[YYMAXRHS
+ YYMAXLEFT
].yystate
.yypred
5663 = yystackp
->yytops
.yystates
[yyk
];
5664 for (yyi
= 0; yyi
< yynrhs
; yyi
+= 1)
5669 yyupdateSplit (yystackp
, yys
);
5670 yystackp
->yytops
.yystates
[yyk
] = yys
;
5671 YY_REDUCE_PRINT ((0, yyrhsVals
+ YYMAXRHS
+ YYMAXLEFT
- 1, yyk
, yyrule
, P
, tokens
, index
));
5672 return yyuserAction (yyrule
, yynrhs
, yyrhsVals
+ YYMAXRHS
+ YYMAXLEFT
- 1,
5673 yystackp
, yyvalp
, P
, tokens
, index
);
5677 /** Pop items off stack #YYK of *YYSTACKP according to grammar rule YYRULE,
5678 * and push back on the resulting nonterminal symbol. Perform the
5679 * semantic action associated with YYRULE and store its value with the
5680 * newly pushed state, if YYFORCEEVAL or if *YYSTACKP is currently
5681 * unambiguous. Otherwise, store the deferred semantic action with
5682 * the new state. If the new state would have an identical input
5683 * position, LR state, and predecessor to an existing state on the stack,
5684 * it is identified with that existing state, eliminating stack #YYK from
5685 * *YYSTACKP. In this case, the semantic value is
5686 * added to the options for the existing state's semantic value.
5688 static inline YYRESULTTAG
5689 yyglrReduce (yyGLRStack
* yystackp
, size_t yyk
, yyRuleNum yyrule
,
5690 yybool yyforceEval
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5692 size_t yyposn
= yystackp
->yytops
.yystates
[yyk
]->yyposn
;
5694 if (yyforceEval
|| yystackp
->yysplitPoint
== YY_NULLPTR
)
5698 YYRESULTTAG yyflag
= yydoAction (yystackp
, yyk
, yyrule
, &yysval
, P
, tokens
, index
);
5699 if (yyflag
== yyerr
&& yystackp
->yysplitPoint
!= YY_NULLPTR
)
5701 YYDPRINTF ((stderr
, "Parse on stack %lu rejected by rule #%d.\n",
5702 (unsigned long int) yyk
, yyrule
- 1));
5706 YY_SYMBOL_PRINT ("-> $$ =", yyr1
[yyrule
], &yysval
, &yyloc
);
5707 yyglrShift (yystackp
, yyk
,
5708 yyLRgotoState (yystackp
->yytops
.yystates
[yyk
]->yylrState
,
5709 yylhsNonterm (yyrule
)),
5716 yyGLRState
* yys
, *yys0
= yystackp
->yytops
.yystates
[yyk
];
5717 yyStateNum yynewLRState
;
5719 for (yys
= yystackp
->yytops
.yystates
[yyk
], yyn
= yyrhsLength (yyrule
);
5725 yyupdateSplit (yystackp
, yys
);
5726 yynewLRState
= yyLRgotoState (yys
->yylrState
, yylhsNonterm (yyrule
));
5728 "Reduced stack %lu by rule #%d; action deferred. "
5729 "Now in state %d.\n",
5730 (unsigned long int) yyk
, yyrule
- 1, yynewLRState
));
5731 for (yyi
= 0; yyi
< yystackp
->yytops
.yysize
; yyi
+= 1)
5732 if (yyi
!= yyk
&& yystackp
->yytops
.yystates
[yyi
] != YY_NULLPTR
)
5734 yyGLRState
*yysplit
= yystackp
->yysplitPoint
;
5735 yyGLRState
*yyp
= yystackp
->yytops
.yystates
[yyi
];
5736 while (yyp
!= yys
&& yyp
!= yysplit
&& yyp
->yyposn
>= yyposn
)
5738 if (yyp
->yylrState
== yynewLRState
&& yyp
->yypred
== yys
)
5740 yyaddDeferredAction (yystackp
, yyk
, yyp
, yys0
, yyrule
);
5741 yymarkStackDeleted (yystackp
, yyk
);
5742 YYDPRINTF ((stderr
, "Merging stack %lu into stack %lu.\n",
5743 (unsigned long int) yyk
,
5744 (unsigned long int) yyi
));
5750 yystackp
->yytops
.yystates
[yyk
] = yys
;
5751 yyglrShiftDefer (yystackp
, yyk
, yynewLRState
, yyposn
, yys0
, yyrule
);
5757 yysplitStack (yyGLRStack
* yystackp
, size_t yyk
)
5759 if (yystackp
->yysplitPoint
== YY_NULLPTR
)
5761 YYASSERT (yyk
== 0);
5762 yystackp
->yysplitPoint
= yystackp
->yytops
.yystates
[yyk
];
5764 if (yystackp
->yytops
.yysize
>= yystackp
->yytops
.yycapacity
)
5766 yyGLRState
** yynewStates
;
5767 yybool
* yynewLookaheadNeeds
;
5769 yynewStates
= YY_NULLPTR
;
5771 if (yystackp
->yytops
.yycapacity
5772 > (YYSIZEMAX
/ (2 * sizeof yynewStates
[0])))
5773 yyMemoryExhausted (yystackp
);
5774 yystackp
->yytops
.yycapacity
*= 2;
5777 (yyGLRState
**) YYREALLOC (yystackp
->yytops
.yystates
,
5778 (yystackp
->yytops
.yycapacity
5779 * sizeof yynewStates
[0]));
5780 if (yynewStates
== YY_NULLPTR
)
5781 yyMemoryExhausted (yystackp
);
5782 yystackp
->yytops
.yystates
= yynewStates
;
5784 yynewLookaheadNeeds
=
5785 (yybool
*) YYREALLOC (yystackp
->yytops
.yylookaheadNeeds
,
5786 (yystackp
->yytops
.yycapacity
5787 * sizeof yynewLookaheadNeeds
[0]));
5788 if (yynewLookaheadNeeds
== YY_NULLPTR
)
5789 yyMemoryExhausted (yystackp
);
5790 yystackp
->yytops
.yylookaheadNeeds
= yynewLookaheadNeeds
;
5792 yystackp
->yytops
.yystates
[yystackp
->yytops
.yysize
]
5793 = yystackp
->yytops
.yystates
[yyk
];
5794 yystackp
->yytops
.yylookaheadNeeds
[yystackp
->yytops
.yysize
]
5795 = yystackp
->yytops
.yylookaheadNeeds
[yyk
];
5796 yystackp
->yytops
.yysize
+= 1;
5797 return yystackp
->yytops
.yysize
-1;
5800 /** True iff YYY0 and YYY1 represent identical options at the top level.
5801 * That is, they represent the same rule applied to RHS symbols
5802 * that produce the same terminal symbols. */
5804 yyidenticalOptions (yySemanticOption
* yyy0
, yySemanticOption
* yyy1
)
5806 if (yyy0
->yyrule
== yyy1
->yyrule
)
5808 yyGLRState
*yys0
, *yys1
;
5810 for (yys0
= yyy0
->yystate
, yys1
= yyy1
->yystate
,
5811 yyn
= yyrhsLength (yyy0
->yyrule
);
5813 yys0
= yys0
->yypred
, yys1
= yys1
->yypred
, yyn
-= 1)
5814 if (yys0
->yyposn
!= yys1
->yyposn
)
5822 /** Assuming identicalOptions (YYY0,YYY1), destructively merge the
5823 * alternative semantic values for the RHS-symbols of YYY1 and YYY0. */
5825 yymergeOptionSets (yySemanticOption
* yyy0
, yySemanticOption
* yyy1
)
5827 yyGLRState
*yys0
, *yys1
;
5829 for (yys0
= yyy0
->yystate
, yys1
= yyy1
->yystate
,
5830 yyn
= yyrhsLength (yyy0
->yyrule
);
5832 yys0
= yys0
->yypred
, yys1
= yys1
->yypred
, yyn
-= 1)
5836 else if (yys0
->yyresolved
)
5838 yys1
->yyresolved
= yytrue
;
5839 yys1
->yysemantics
.yysval
= yys0
->yysemantics
.yysval
;
5841 else if (yys1
->yyresolved
)
5843 yys0
->yyresolved
= yytrue
;
5844 yys0
->yysemantics
.yysval
= yys1
->yysemantics
.yysval
;
5848 yySemanticOption
** yyz0p
= &yys0
->yysemantics
.yyfirstVal
;
5849 yySemanticOption
* yyz1
= yys1
->yysemantics
.yyfirstVal
;
5852 if (yyz1
== *yyz0p
|| yyz1
== YY_NULLPTR
)
5854 else if (*yyz0p
== YY_NULLPTR
)
5859 else if (*yyz0p
< yyz1
)
5861 yySemanticOption
* yyz
= *yyz0p
;
5863 yyz1
= yyz1
->yynext
;
5864 (*yyz0p
)->yynext
= yyz
;
5866 yyz0p
= &(*yyz0p
)->yynext
;
5868 yys1
->yysemantics
.yyfirstVal
= yys0
->yysemantics
.yyfirstVal
;
5873 /** Y0 and Y1 represent two possible actions to take in a given
5874 * parsing state; return 0 if no combination is possible,
5875 * 1 if user-mergeable, 2 if Y0 is preferred, 3 if Y1 is preferred. */
5877 yypreference (yySemanticOption
* y0
, yySemanticOption
* y1
)
5879 yyRuleNum r0
= y0
->yyrule
, r1
= y1
->yyrule
;
5880 int p0
= yydprec
[r0
], p1
= yydprec
[r1
];
5884 if (yymerger
[r0
] == 0 || yymerger
[r0
] != yymerger
[r1
])
5889 if (p0
== 0 || p1
== 0)
5898 static YYRESULTTAG
yyresolveValue (yyGLRState
* yys
,
5899 yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
);
5902 /** Resolve the previous YYN states starting at and including state YYS
5903 * on *YYSTACKP. If result != yyok, some states may have been left
5904 * unresolved possibly with empty semantic option chains. Regardless
5905 * of whether result = yyok, each state has been left with consistent
5906 * data so that yydestroyGLRState can be invoked if necessary. */
5908 yyresolveStates (yyGLRState
* yys
, int yyn
,
5909 yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5913 YYASSERT (yys
->yypred
);
5914 YYCHK (yyresolveStates (yys
->yypred
, yyn
-1, yystackp
, P
, tokens
, index
));
5915 if (! yys
->yyresolved
)
5916 YYCHK (yyresolveValue (yys
, yystackp
, P
, tokens
, index
));
5921 /** Resolve the states for the RHS of YYOPT on *YYSTACKP, perform its
5922 * user action, and return the semantic value and location in *YYVALP
5923 * and *YYLOCP. Regardless of whether result = yyok, all RHS states
5924 * have been destroyed (assuming the user action destroys all RHS
5925 * semantic values if invoked). */
5927 yyresolveAction (yySemanticOption
* yyopt
, yyGLRStack
* yystackp
,
5928 YYSTYPE
* yyvalp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5930 yyGLRStackItem yyrhsVals
[YYMAXRHS
+ YYMAXLEFT
+ 1];
5931 int yynrhs
= yyrhsLength (yyopt
->yyrule
);
5932 YYRESULTTAG yyflag
=
5933 yyresolveStates (yyopt
->yystate
, yynrhs
, yystackp
, P
, tokens
, index
);
5937 for (yys
= yyopt
->yystate
; yynrhs
> 0; yys
= yys
->yypred
, yynrhs
-= 1)
5938 yydestroyGLRState ("Cleanup: popping", yys
, P
, tokens
, index
);
5942 yyrhsVals
[YYMAXRHS
+ YYMAXLEFT
].yystate
.yypred
= yyopt
->yystate
;
5944 int yychar_current
= yychar
;
5945 YYSTYPE yylval_current
= yylval
;
5946 yychar
= yyopt
->yyrawchar
;
5947 yylval
= yyopt
->yyval
;
5948 yyflag
= yyuserAction (yyopt
->yyrule
, yynrhs
,
5949 yyrhsVals
+ YYMAXRHS
+ YYMAXLEFT
- 1,
5950 yystackp
, yyvalp
, P
, tokens
, index
);
5951 yychar
= yychar_current
;
5952 yylval
= yylval_current
;
5959 yyreportTree (yySemanticOption
* yyx
, int yyindent
)
5961 int yynrhs
= yyrhsLength (yyx
->yyrule
);
5964 yyGLRState
* yystates
[1 + YYMAXRHS
];
5965 yyGLRState yyleftmost_state
;
5967 for (yyi
= yynrhs
, yys
= yyx
->yystate
; 0 < yyi
; yyi
-= 1, yys
= yys
->yypred
)
5968 yystates
[yyi
] = yys
;
5969 if (yys
== YY_NULLPTR
)
5971 yyleftmost_state
.yyposn
= 0;
5972 yystates
[0] = &yyleftmost_state
;
5977 if (yyx
->yystate
->yyposn
< yys
->yyposn
+ 1)
5978 YYFPRINTF (stderr
, "%*s%s -> <Rule %d, empty>\n",
5979 yyindent
, "", yytokenName (yylhsNonterm (yyx
->yyrule
)),
5982 YYFPRINTF (stderr
, "%*s%s -> <Rule %d, tokens %lu .. %lu>\n",
5983 yyindent
, "", yytokenName (yylhsNonterm (yyx
->yyrule
)),
5984 yyx
->yyrule
- 1, (unsigned long int) (yys
->yyposn
+ 1),
5985 (unsigned long int) yyx
->yystate
->yyposn
);
5986 for (yyi
= 1; yyi
<= yynrhs
; yyi
+= 1)
5988 if (yystates
[yyi
]->yyresolved
)
5990 if (yystates
[yyi
-1]->yyposn
+1 > yystates
[yyi
]->yyposn
)
5991 YYFPRINTF (stderr
, "%*s%s <empty>\n", yyindent
+2, "",
5992 yytokenName (yystos
[yystates
[yyi
]->yylrState
]));
5994 YYFPRINTF (stderr
, "%*s%s <tokens %lu .. %lu>\n", yyindent
+2, "",
5995 yytokenName (yystos
[yystates
[yyi
]->yylrState
]),
5996 (unsigned long int) (yystates
[yyi
-1]->yyposn
+ 1),
5997 (unsigned long int) yystates
[yyi
]->yyposn
);
6000 yyreportTree (yystates
[yyi
]->yysemantics
.yyfirstVal
, yyindent
+2);
6006 yyreportAmbiguity (yySemanticOption
* yyx0
,
6007 yySemanticOption
* yyx1
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6013 YYFPRINTF (stderr
, "Ambiguity detected.\n");
6014 YYFPRINTF (stderr
, "Option 1,\n");
6015 yyreportTree (yyx0
, 2);
6016 YYFPRINTF (stderr
, "\nOption 2,\n");
6017 yyreportTree (yyx1
, 2);
6018 YYFPRINTF (stderr
, "\n");
6021 yyerror (P
, tokens
, index
, YY_("syntax is ambiguous"));
6025 /** Resolve the ambiguity represented in state YYS in *YYSTACKP,
6026 * perform the indicated actions, and set the semantic value of YYS.
6027 * If result != yyok, the chain of semantic options in YYS has been
6028 * cleared instead or it has been left unmodified except that
6029 * redundant options may have been removed. Regardless of whether
6030 * result = yyok, YYS has been left with consistent data so that
6031 * yydestroyGLRState can be invoked if necessary. */
6033 yyresolveValue (yyGLRState
* yys
, yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6035 yySemanticOption
* yyoptionList
= yys
->yysemantics
.yyfirstVal
;
6036 yySemanticOption
* yybest
= yyoptionList
;
6037 yySemanticOption
** yypp
;
6038 yybool yymerge
= yyfalse
;
6042 for (yypp
= &yyoptionList
->yynext
; *yypp
!= YY_NULLPTR
; )
6044 yySemanticOption
* yyp
= *yypp
;
6046 if (yyidenticalOptions (yybest
, yyp
))
6048 yymergeOptionSets (yybest
, yyp
);
6049 *yypp
= yyp
->yynext
;
6053 switch (yypreference (yybest
, yyp
))
6056 return yyreportAmbiguity (yybest
, yyp
, P
, tokens
, index
);
6068 /* This cannot happen so it is not worth a YYASSERT (yyfalse),
6069 but some compilers complain if the default case is
6073 yypp
= &yyp
->yynext
;
6079 yySemanticOption
* yyp
;
6080 int yyprec
= yydprec
[yybest
->yyrule
];
6081 yyflag
= yyresolveAction (yybest
, yystackp
, &yysval
, P
, tokens
, index
);
6083 for (yyp
= yybest
->yynext
; yyp
!= YY_NULLPTR
; yyp
= yyp
->yynext
)
6085 if (yyprec
== yydprec
[yyp
->yyrule
])
6087 YYSTYPE yysval_other
;
6088 yyflag
= yyresolveAction (yyp
, yystackp
, &yysval_other
, P
, tokens
, index
);
6091 yydestruct ("Cleanup: discarding incompletely merged value for",
6092 yystos
[yys
->yylrState
],
6093 &yysval
, P
, tokens
, index
);
6096 yyuserMerge (yymerger
[yyp
->yyrule
], &yysval
, &yysval_other
);
6101 yyflag
= yyresolveAction (yybest
, yystackp
, &yysval
, P
, tokens
, index
);
6105 yys
->yyresolved
= yytrue
;
6106 yys
->yysemantics
.yysval
= yysval
;
6109 yys
->yysemantics
.yyfirstVal
= YY_NULLPTR
;
6114 yyresolveStack (yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6116 if (yystackp
->yysplitPoint
!= YY_NULLPTR
)
6121 for (yyn
= 0, yys
= yystackp
->yytops
.yystates
[0];
6122 yys
!= yystackp
->yysplitPoint
;
6123 yys
= yys
->yypred
, yyn
+= 1)
6125 YYCHK (yyresolveStates (yystackp
->yytops
.yystates
[0], yyn
, yystackp
6126 , P
, tokens
, index
));
6132 yycompressStack (yyGLRStack
* yystackp
)
6134 yyGLRState
* yyp
, *yyq
, *yyr
;
6136 if (yystackp
->yytops
.yysize
!= 1 || yystackp
->yysplitPoint
== YY_NULLPTR
)
6139 for (yyp
= yystackp
->yytops
.yystates
[0], yyq
= yyp
->yypred
, yyr
= YY_NULLPTR
;
6140 yyp
!= yystackp
->yysplitPoint
;
6141 yyr
= yyp
, yyp
= yyq
, yyq
= yyp
->yypred
)
6144 yystackp
->yyspaceLeft
+= yystackp
->yynextFree
- yystackp
->yyitems
;
6145 yystackp
->yynextFree
= ((yyGLRStackItem
*) yystackp
->yysplitPoint
) + 1;
6146 yystackp
->yyspaceLeft
-= yystackp
->yynextFree
- yystackp
->yyitems
;
6147 yystackp
->yysplitPoint
= YY_NULLPTR
;
6148 yystackp
->yylastDeleted
= YY_NULLPTR
;
6150 while (yyr
!= YY_NULLPTR
)
6152 yystackp
->yynextFree
->yystate
= *yyr
;
6154 yystackp
->yynextFree
->yystate
.yypred
= &yystackp
->yynextFree
[-1].yystate
;
6155 yystackp
->yytops
.yystates
[0] = &yystackp
->yynextFree
->yystate
;
6156 yystackp
->yynextFree
+= 1;
6157 yystackp
->yyspaceLeft
-= 1;
6162 yyprocessOneStack (yyGLRStack
* yystackp
, size_t yyk
,
6163 size_t yyposn
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6165 while (yystackp
->yytops
.yystates
[yyk
] != YY_NULLPTR
)
6167 yyStateNum yystate
= yystackp
->yytops
.yystates
[yyk
]->yylrState
;
6168 YYDPRINTF ((stderr
, "Stack %lu Entering state %d\n",
6169 (unsigned long int) yyk
, yystate
));
6171 YYASSERT (yystate
!= YYFINAL
);
6173 if (yyisDefaultedState (yystate
))
6176 yyRuleNum yyrule
= yydefaultAction (yystate
);
6179 YYDPRINTF ((stderr
, "Stack %lu dies.\n",
6180 (unsigned long int) yyk
));
6181 yymarkStackDeleted (yystackp
, yyk
);
6184 yyflag
= yyglrReduce (yystackp
, yyk
, yyrule
, yyimmediate
[yyrule
], P
, tokens
, index
);
6185 if (yyflag
== yyerr
)
6189 "(predicate failure or explicit user error).\n",
6190 (unsigned long int) yyk
));
6191 yymarkStackDeleted (yystackp
, yyk
);
6201 const short int* yyconflicts
;
6203 yystackp
->yytops
.yylookaheadNeeds
[yyk
] = yytrue
;
6204 if (yychar
== YYEMPTY
)
6206 YYDPRINTF ((stderr
, "Reading a token: "));
6207 yychar
= yylex (&yylval
, P
, tokens
, index
);
6210 if (yychar
<= YYEOF
)
6212 yychar
= yytoken
= YYEOF
;
6213 YYDPRINTF ((stderr
, "Now at end of input.\n"));
6217 yytoken
= YYTRANSLATE (yychar
);
6218 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
6221 yygetLRActions (yystate
, yytoken
, &yyaction
, &yyconflicts
);
6223 while (*yyconflicts
!= 0)
6226 size_t yynewStack
= yysplitStack (yystackp
, yyk
);
6227 YYDPRINTF ((stderr
, "Splitting off stack %lu from %lu.\n",
6228 (unsigned long int) yynewStack
,
6229 (unsigned long int) yyk
));
6230 yyflag
= yyglrReduce (yystackp
, yynewStack
,
6232 yyimmediate
[*yyconflicts
], P
, tokens
, index
);
6234 YYCHK (yyprocessOneStack (yystackp
, yynewStack
,
6235 yyposn
, P
, tokens
, index
));
6236 else if (yyflag
== yyerr
)
6238 YYDPRINTF ((stderr
, "Stack %lu dies.\n",
6239 (unsigned long int) yynewStack
));
6240 yymarkStackDeleted (yystackp
, yynewStack
);
6247 if (yyisShiftAction (yyaction
))
6249 else if (yyisErrorAction (yyaction
))
6251 YYDPRINTF ((stderr
, "Stack %lu dies.\n",
6252 (unsigned long int) yyk
));
6253 yymarkStackDeleted (yystackp
, yyk
);
6258 YYRESULTTAG yyflag
= yyglrReduce (yystackp
, yyk
, -yyaction
,
6259 yyimmediate
[-yyaction
], P
, tokens
, index
);
6260 if (yyflag
== yyerr
)
6264 "(predicate failure or explicit user error).\n",
6265 (unsigned long int) yyk
));
6266 yymarkStackDeleted (yystackp
, yyk
);
6269 else if (yyflag
!= yyok
)
6278 yyreportSyntaxError (yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6280 if (yystackp
->yyerrState
!= 0)
6282 #if ! YYERROR_VERBOSE
6283 yyerror (P
, tokens
, index
, YY_("syntax error"));
6286 yySymbol yytoken
= yychar
== YYEMPTY
? YYEMPTY
: YYTRANSLATE (yychar
);
6287 size_t yysize0
= yytnamerr (YY_NULLPTR
, yytokenName (yytoken
));
6288 size_t yysize
= yysize0
;
6289 yybool yysize_overflow
= yyfalse
;
6290 char* yymsg
= YY_NULLPTR
;
6291 enum { YYERROR_VERBOSE_ARGS_MAXIMUM
= 5 };
6292 /* Internationalized format string. */
6293 const char *yyformat
= YY_NULLPTR
;
6294 /* Arguments of yyformat. */
6295 char const *yyarg
[YYERROR_VERBOSE_ARGS_MAXIMUM
];
6296 /* Number of reported tokens (one for the "unexpected", one per
6300 /* There are many possibilities here to consider:
6301 - If this state is a consistent state with a default action, then
6302 the only way this function was invoked is if the default action
6303 is an error action. In that case, don't check for expected
6304 tokens because there are none.
6305 - The only way there can be no lookahead present (in yychar) is if
6306 this state is a consistent state with a default action. Thus,
6307 detecting the absence of a lookahead is sufficient to determine
6308 that there is no unexpected or expected token to report. In that
6309 case, just report a simple "syntax error".
6310 - Don't assume there isn't a lookahead just because this state is a
6311 consistent state with a default action. There might have been a
6312 previous inconsistent state, consistent state with a non-default
6313 action, or user semantic action that manipulated yychar.
6314 - Of course, the expected token list depends on states to have
6315 correct lookahead information, and it depends on the parser not
6316 to perform extra reductions after fetching a lookahead from the
6317 scanner and before detecting a syntax error. Thus, state merging
6318 (from LALR or IELR) and default reductions corrupt the expected
6319 token list. However, the list is correct for canonical LR with
6320 one exception: it will still contain any token that will not be
6321 accepted due to an error action in a later state.
6323 if (yytoken
!= YYEMPTY
)
6325 int yyn
= yypact
[yystackp
->yytops
.yystates
[0]->yylrState
];
6326 yyarg
[yycount
++] = yytokenName (yytoken
);
6327 if (!yypact_value_is_default (yyn
))
6329 /* Start YYX at -YYN if negative to avoid negative indexes in
6330 YYCHECK. In other words, skip the first -YYN actions for this
6331 state because they are default actions. */
6332 int yyxbegin
= yyn
< 0 ? -yyn
: 0;
6333 /* Stay within bounds of both yycheck and yytname. */
6334 int yychecklim
= YYLAST
- yyn
+ 1;
6335 int yyxend
= yychecklim
< YYNTOKENS
? yychecklim
: YYNTOKENS
;
6337 for (yyx
= yyxbegin
; yyx
< yyxend
; ++yyx
)
6338 if (yycheck
[yyx
+ yyn
] == yyx
&& yyx
!= YYTERROR
6339 && !yytable_value_is_error (yytable
[yyx
+ yyn
]))
6341 if (yycount
== YYERROR_VERBOSE_ARGS_MAXIMUM
)
6347 yyarg
[yycount
++] = yytokenName (yyx
);
6349 size_t yysz
= yysize
+ yytnamerr (YY_NULLPTR
, yytokenName (yyx
));
6350 yysize_overflow
|= yysz
< yysize
;
6359 #define YYCASE_(N, S) \
6363 YYCASE_(0, YY_("syntax error"));
6364 YYCASE_(1, YY_("syntax error, unexpected %s"));
6365 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
6366 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
6367 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
6368 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
6373 size_t yysz
= yysize
+ strlen (yyformat
);
6374 yysize_overflow
|= yysz
< yysize
;
6378 if (!yysize_overflow
)
6379 yymsg
= (char *) YYMALLOC (yysize
);
6385 while ((*yyp
= *yyformat
))
6387 if (*yyp
== '%' && yyformat
[1] == 's' && yyi
< yycount
)
6389 yyp
+= yytnamerr (yyp
, yyarg
[yyi
++]);
6398 yyerror (P
, tokens
, index
, yymsg
);
6403 yyerror (P
, tokens
, index
, YY_("syntax error"));
6404 yyMemoryExhausted (yystackp
);
6407 #endif /* YYERROR_VERBOSE */
6411 /* Recover from a syntax error on *YYSTACKP, assuming that *YYSTACKP->YYTOKENP,
6412 yylval, and yylloc are the syntactic category, semantic value, and location
6413 of the lookahead. */
6415 yyrecoverSyntaxError (yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6420 if (yystackp
->yyerrState
== 3)
6421 /* We just shifted the error token and (perhaps) took some
6422 reductions. Skip tokens until we can proceed. */
6426 if (yychar
== YYEOF
)
6427 yyFail (yystackp
, P
, tokens
, index
, YY_NULLPTR
);
6428 if (yychar
!= YYEMPTY
)
6430 yytoken
= YYTRANSLATE (yychar
);
6431 yydestruct ("Error: discarding",
6432 yytoken
, &yylval
, P
, tokens
, index
);
6434 YYDPRINTF ((stderr
, "Reading a token: "));
6435 yychar
= yylex (&yylval
, P
, tokens
, index
);
6436 if (yychar
<= YYEOF
)
6438 yychar
= yytoken
= YYEOF
;
6439 YYDPRINTF ((stderr
, "Now at end of input.\n"));
6443 yytoken
= YYTRANSLATE (yychar
);
6444 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
6446 yyj
= yypact
[yystackp
->yytops
.yystates
[0]->yylrState
];
6447 if (yypact_value_is_default (yyj
))
6450 if (yyj
< 0 || YYLAST
< yyj
|| yycheck
[yyj
] != yytoken
)
6452 if (yydefact
[yystackp
->yytops
.yystates
[0]->yylrState
] != 0)
6455 else if (! yytable_value_is_error (yytable
[yyj
]))
6459 /* Reduce to one stack. */
6460 for (yyk
= 0; yyk
< yystackp
->yytops
.yysize
; yyk
+= 1)
6461 if (yystackp
->yytops
.yystates
[yyk
] != YY_NULLPTR
)
6463 if (yyk
>= yystackp
->yytops
.yysize
)
6464 yyFail (yystackp
, P
, tokens
, index
, YY_NULLPTR
);
6465 for (yyk
+= 1; yyk
< yystackp
->yytops
.yysize
; yyk
+= 1)
6466 yymarkStackDeleted (yystackp
, yyk
);
6467 yyremoveDeletes (yystackp
);
6468 yycompressStack (yystackp
);
6470 /* Now pop stack until we find a state that shifts the error token. */
6471 yystackp
->yyerrState
= 3;
6472 while (yystackp
->yytops
.yystates
[0] != YY_NULLPTR
)
6474 yyGLRState
*yys
= yystackp
->yytops
.yystates
[0];
6475 yyj
= yypact
[yys
->yylrState
];
6476 if (! yypact_value_is_default (yyj
))
6479 if (0 <= yyj
&& yyj
<= YYLAST
&& yycheck
[yyj
] == YYTERROR
6480 && yyisShiftAction (yytable
[yyj
]))
6482 /* Shift the error token. */
6483 YY_SYMBOL_PRINT ("Shifting", yystos
[yytable
[yyj
]],
6484 &yylval
, &yyerrloc
);
6485 yyglrShift (yystackp
, 0, yytable
[yyj
],
6486 yys
->yyposn
, &yylval
);
6487 yys
= yystackp
->yytops
.yystates
[0];
6491 if (yys
->yypred
!= YY_NULLPTR
)
6492 yydestroyGLRState ("Error: popping", yys
, P
, tokens
, index
);
6493 yystackp
->yytops
.yystates
[0] = yys
->yypred
;
6494 yystackp
->yynextFree
-= 1;
6495 yystackp
->yyspaceLeft
+= 1;
6497 if (yystackp
->yytops
.yystates
[0] == YY_NULLPTR
)
6498 yyFail (yystackp
, P
, tokens
, index
, YY_NULLPTR
);
6501 #define YYCHK1(YYE) \
6511 goto yyuser_error; \
6522 yyparse (struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6526 yyGLRStack
* const yystackp
= &yystack
;
6529 YYDPRINTF ((stderr
, "Starting parse\n"));
6532 yylval
= yyval_default
;
6534 /* User initialization code. */
6535 #line 117 "src/parser_proc_grammar.y" /* glr.c:2270 */
6539 #line 6540 "src/parser_proc.c" /* glr.c:2270 */
6541 if (! yyinitGLRStack (yystackp
, YYINITDEPTH
))
6542 goto yyexhaustedlab
;
6543 switch (YYSETJMP (yystack
.yyexception_buffer
))
6546 case 1: goto yyabortlab
;
6547 case 2: goto yyexhaustedlab
;
6548 default: goto yybuglab
;
6550 yyglrShift (&yystack
, 0, 0, 0, &yylval
);
6555 /* For efficiency, we have two loops, the first of which is
6556 specialized to deterministic operation (single stack, no
6557 potential ambiguity). */
6563 const short int* yyconflicts
;
6565 yyStateNum yystate
= yystack
.yytops
.yystates
[0]->yylrState
;
6566 YYDPRINTF ((stderr
, "Entering state %d\n", yystate
));
6567 if (yystate
== YYFINAL
)
6569 if (yyisDefaultedState (yystate
))
6571 yyrule
= yydefaultAction (yystate
);
6575 yyreportSyntaxError (&yystack
, P
, tokens
, index
);
6578 YYCHK1 (yyglrReduce (&yystack
, 0, yyrule
, yytrue
, P
, tokens
, index
));
6583 if (yychar
== YYEMPTY
)
6585 YYDPRINTF ((stderr
, "Reading a token: "));
6586 yychar
= yylex (&yylval
, P
, tokens
, index
);
6589 if (yychar
<= YYEOF
)
6591 yychar
= yytoken
= YYEOF
;
6592 YYDPRINTF ((stderr
, "Now at end of input.\n"));
6596 yytoken
= YYTRANSLATE (yychar
);
6597 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
6600 yygetLRActions (yystate
, yytoken
, &yyaction
, &yyconflicts
);
6601 if (*yyconflicts
!= 0)
6603 if (yyisShiftAction (yyaction
))
6605 YY_SYMBOL_PRINT ("Shifting", yytoken
, &yylval
, &yylloc
);
6608 yyglrShift (&yystack
, 0, yyaction
, yyposn
, &yylval
);
6609 if (0 < yystack
.yyerrState
)
6610 yystack
.yyerrState
-= 1;
6612 else if (yyisErrorAction (yyaction
))
6615 yyreportSyntaxError (&yystack
, P
, tokens
, index
);
6619 YYCHK1 (yyglrReduce (&yystack
, 0, -yyaction
, yytrue
, P
, tokens
, index
));
6625 yySymbol yytoken_to_shift
;
6628 for (yys
= 0; yys
< yystack
.yytops
.yysize
; yys
+= 1)
6629 yystackp
->yytops
.yylookaheadNeeds
[yys
] = yychar
!= YYEMPTY
;
6631 /* yyprocessOneStack returns one of three things:
6633 - An error flag. If the caller is yyprocessOneStack, it
6634 immediately returns as well. When the caller is finally
6635 yyparse, it jumps to an error label via YYCHK1.
6637 - yyok, but yyprocessOneStack has invoked yymarkStackDeleted
6638 (&yystack, yys), which sets the top state of yys to NULL. Thus,
6639 yyparse's following invocation of yyremoveDeletes will remove
6642 - yyok, when ready to shift a token.
6644 Except in the first case, yyparse will invoke yyremoveDeletes and
6645 then shift the next token onto all remaining stacks. This
6646 synchronization of the shift (that is, after all preceding
6647 reductions on all stacks) helps prevent double destructor calls
6648 on yylval in the event of memory exhaustion. */
6650 for (yys
= 0; yys
< yystack
.yytops
.yysize
; yys
+= 1)
6651 YYCHK1 (yyprocessOneStack (&yystack
, yys
, yyposn
, P
, tokens
, index
));
6652 yyremoveDeletes (&yystack
);
6653 if (yystack
.yytops
.yysize
== 0)
6655 yyundeleteLastStack (&yystack
);
6656 if (yystack
.yytops
.yysize
== 0)
6657 yyFail (&yystack
, P
, tokens
, index
, YY_("syntax error"));
6658 YYCHK1 (yyresolveStack (&yystack
, P
, tokens
, index
));
6659 YYDPRINTF ((stderr
, "Returning to deterministic operation.\n"));
6661 yyreportSyntaxError (&yystack
, P
, tokens
, index
);
6665 /* If any yyglrShift call fails, it will fail after shifting. Thus,
6666 a copy of yylval will already be on stack 0 in the event of a
6667 failure in the following loop. Thus, yychar is set to YYEMPTY
6668 before the loop to make sure the user destructor for yylval isn't
6670 yytoken_to_shift
= YYTRANSLATE (yychar
);
6673 for (yys
= 0; yys
< yystack
.yytops
.yysize
; yys
+= 1)
6676 const short int* yyconflicts
;
6677 yyStateNum yystate
= yystack
.yytops
.yystates
[yys
]->yylrState
;
6678 yygetLRActions (yystate
, yytoken_to_shift
, &yyaction
,
6680 /* Note that yyconflicts were handled by yyprocessOneStack. */
6681 YYDPRINTF ((stderr
, "On stack %lu, ", (unsigned long int) yys
));
6682 YY_SYMBOL_PRINT ("shifting", yytoken_to_shift
, &yylval
, &yylloc
);
6683 yyglrShift (&yystack
, yys
, yyaction
, yyposn
,
6685 YYDPRINTF ((stderr
, "Stack %lu now in state #%d\n",
6686 (unsigned long int) yys
,
6687 yystack
.yytops
.yystates
[yys
]->yylrState
));
6690 if (yystack
.yytops
.yysize
== 1)
6692 YYCHK1 (yyresolveStack (&yystack
, P
, tokens
, index
));
6693 YYDPRINTF ((stderr
, "Returning to deterministic operation.\n"));
6694 yycompressStack (&yystack
);
6700 yyrecoverSyntaxError (&yystack
, P
, tokens
, index
);
6701 yyposn
= yystack
.yytops
.yystates
[0]->yyposn
;
6717 yyerror (P
, tokens
, index
, YY_("memory exhausted"));
6722 if (yychar
!= YYEMPTY
)
6723 yydestruct ("Cleanup: discarding lookahead",
6724 YYTRANSLATE (yychar
), &yylval
, P
, tokens
, index
);
6726 /* If the stack is well-formed, pop the stack until it is empty,
6727 destroying its entries as we go. But free the stack regardless
6728 of whether it is well-formed. */
6729 if (yystack
.yyitems
)
6731 yyGLRState
** yystates
= yystack
.yytops
.yystates
;
6734 size_t yysize
= yystack
.yytops
.yysize
;
6736 for (yyk
= 0; yyk
< yysize
; yyk
+= 1)
6739 while (yystates
[yyk
])
6741 yyGLRState
*yys
= yystates
[yyk
];
6742 if (yys
->yypred
!= YY_NULLPTR
)
6743 yydestroyGLRState ("Cleanup: popping", yys
, P
, tokens
, index
);
6744 yystates
[yyk
] = yys
->yypred
;
6745 yystack
.yynextFree
-= 1;
6746 yystack
.yyspaceLeft
+= 1;
6751 yyfreeGLRStack (&yystack
);
6757 /* DEBUGGING ONLY */
6760 yy_yypstack (yyGLRState
* yys
)
6764 yy_yypstack (yys
->yypred
);
6765 YYFPRINTF (stderr
, " -> ");
6767 YYFPRINTF (stderr
, "%d@%lu", yys
->yylrState
,
6768 (unsigned long int) yys
->yyposn
);
6772 yypstates (yyGLRState
* yyst
)
6774 if (yyst
== YY_NULLPTR
)
6775 YYFPRINTF (stderr
, "<null>");
6778 YYFPRINTF (stderr
, "\n");
6782 yypstack (yyGLRStack
* yystackp
, size_t yyk
)
6784 yypstates (yystackp
->yytops
.yystates
[yyk
]);
6787 #define YYINDEX(YYX) \
6788 ((YYX) == YY_NULLPTR ? -1 : (yyGLRStackItem*) (YYX) - yystackp->yyitems)
6792 yypdumpstack (yyGLRStack
* yystackp
)
6794 yyGLRStackItem
* yyp
;
6796 for (yyp
= yystackp
->yyitems
; yyp
< yystackp
->yynextFree
; yyp
+= 1)
6798 YYFPRINTF (stderr
, "%3lu. ",
6799 (unsigned long int) (yyp
- yystackp
->yyitems
));
6800 if (*(yybool
*) yyp
)
6802 YYASSERT (yyp
->yystate
.yyisState
);
6803 YYASSERT (yyp
->yyoption
.yyisState
);
6804 YYFPRINTF (stderr
, "Res: %d, LR State: %d, posn: %lu, pred: %ld",
6805 yyp
->yystate
.yyresolved
, yyp
->yystate
.yylrState
,
6806 (unsigned long int) yyp
->yystate
.yyposn
,
6807 (long int) YYINDEX (yyp
->yystate
.yypred
));
6808 if (! yyp
->yystate
.yyresolved
)
6809 YYFPRINTF (stderr
, ", firstVal: %ld",
6810 (long int) YYINDEX (yyp
->yystate
6811 .yysemantics
.yyfirstVal
));
6815 YYASSERT (!yyp
->yystate
.yyisState
);
6816 YYASSERT (!yyp
->yyoption
.yyisState
);
6817 YYFPRINTF (stderr
, "Option. rule: %d, state: %ld, next: %ld",
6818 yyp
->yyoption
.yyrule
- 1,
6819 (long int) YYINDEX (yyp
->yyoption
.yystate
),
6820 (long int) YYINDEX (yyp
->yyoption
.yynext
));
6822 YYFPRINTF (stderr
, "\n");
6824 YYFPRINTF (stderr
, "Tops:");
6825 for (yyi
= 0; yyi
< yystackp
->yytops
.yysize
; yyi
+= 1)
6826 YYFPRINTF (stderr
, "%lu: %ld; ", (unsigned long int) yyi
,
6827 (long int) YYINDEX (yystackp
->yytops
.yystates
[yyi
]));
6828 YYFPRINTF (stderr
, "\n");
6836 /* Substitute the variable and function names. */
6837 #define yyparse psi_parser_proc_parse
6838 #define yylex psi_parser_proc_lex
6839 #define yyerror psi_parser_proc_error
6840 #define yylval psi_parser_proc_lval
6841 #define yychar psi_parser_proc_char
6842 #define yydebug psi_parser_proc_debug
6843 #define yynerrs psi_parser_proc_nerrs
6845 #line 1858 "src/parser_proc_grammar.y" /* glr.c:2584 */
6850 static int psi_parser_proc_lex(YYSTYPE
*lvalp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6852 struct psi_token
*token
;
6854 if (psi_plist_get(tokens
, (*index
)++, &token
)) {
6855 if (P
->flags
& PSI_DEBUG
) {
6856 psi_token_dump(2, token
);
6859 *((struct psi_token
**)lvalp
) = token
;
6863 PSI_DEBUG_PRINT(P
, "EOF(%d)\n", PSI_T_EOF
);
6869 static void psi_parser_proc_error(struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
, const char *msg
)
6871 struct psi_token
*T
= NULL
;
6880 psi_plist_get(tokens
, last
, &T
);
6882 P
->error(PSI_DATA(P
), T
, PSI_WARNING
, "PSI %s at col %u", msg
, T
->col
);
6884 P
->error(PSI_DATA(P
), NULL
, PSI_WARNING
, "PSI %s", msg
);