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
);
157 static inline void psi_parser_proc_add_const(struct psi_parser
*P
, struct psi_const
*cnst
) {
160 P
->consts
= psi_plist_init((psi_plist_dtor
) psi_const_free
);
162 P
->consts
= psi_plist_add(P
->consts
, &cnst
);
165 static inline void psi_parser_proc_add_decl(struct psi_parser
*P
, struct psi_decl
*decl
) {
168 P
->decls
= psi_plist_init((psi_plist_dtor
) psi_decl_free
);
170 P
->decls
= psi_plist_add(P
->decls
, &decl
);
172 static inline void psi_parser_proc_add_impl(struct psi_parser
*P
, struct psi_impl
*impl
) {
175 P
->impls
= psi_plist_init((psi_plist_dtor
) psi_impl_free
);
177 P
->impls
= psi_plist_add(P
->impls
, &impl
);
182 #line 183 "src/parser_proc.c" /* glr.c:264 */
189 # if defined YYENABLE_NLS && YYENABLE_NLS
191 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
192 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
196 # define YY_(Msgid) Msgid
204 # define YYMALLOC malloc
207 # define YYREALLOC realloc
210 #define YYSIZEMAX ((size_t) -1)
215 typedef unsigned char yybool
;
222 # define YYJMP_BUF jmp_buf
223 # define YYSETJMP(Env) setjmp (Env)
225 # define YYLONGJMP(Env, Val) (longjmp (Env, Val), YYASSERT (0))
229 # if (defined __GNUC__ \
230 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
231 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
232 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
234 # define YY_ATTRIBUTE(Spec) /* empty */
238 #ifndef YY_ATTRIBUTE_PURE
239 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
242 #ifndef YY_ATTRIBUTE_UNUSED
243 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
246 #if !defined _Noreturn \
247 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
248 # if defined _MSC_VER && 1200 <= _MSC_VER
249 # define _Noreturn __declspec (noreturn)
251 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
255 /* Suppress unused-variable warnings by "using" E. */
256 #if ! defined lint || defined __GNUC__
257 # define YYUSE(E) ((void) (E))
259 # define YYUSE(E) /* empty */
262 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
263 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
264 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
265 _Pragma ("GCC diagnostic push") \
266 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
267 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
268 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
269 _Pragma ("GCC diagnostic pop")
271 # define YY_INITIAL_VALUE(Value) Value
273 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
274 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
275 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
277 #ifndef YY_INITIAL_VALUE
278 # define YY_INITIAL_VALUE(Value) /* Nothing. */
283 # define YYASSERT(Condition) ((void) ((Condition) || (abort (), 0)))
286 /* YYFINAL -- State number of the termination state. */
288 /* YYLAST -- Last index in YYTABLE. */
291 /* YYNTOKENS -- Number of terminals. */
292 #define YYNTOKENS 132
293 /* YYNNTS -- Number of nonterminals. */
295 /* YYNRULES -- Number of rules. */
297 /* YYNRULES -- Number of states. */
298 #define YYNSTATES 710
299 /* YYMAXRHS -- Maximum number of symbols on right-hand side of rule. */
301 /* YYMAXLEFT -- Maximum number of symbols to the left of a handle
302 accessed by $0, $-1, etc., in any rule. */
305 /* YYTRANSLATE(X) -- Bison symbol number corresponding to X. */
307 #define YYMAXUTOK 386
309 #define YYTRANSLATE(YYX) \
310 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
312 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
313 static const unsigned char yytranslate
[] =
315 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
316 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
317 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
318 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
319 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
320 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
321 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
322 2, 2, 2, 2, 2, 2, 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, 1, 2, 3, 4,
341 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
342 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
343 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
344 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
345 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
346 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
347 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
348 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
349 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
350 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
351 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
352 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
353 125, 126, 127, 128, 129, 130, 131
357 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
358 static const unsigned short int yyrline
[] =
360 0, 391, 391, 391, 391, 391, 391, 391, 391, 391,
361 391, 391, 391, 391, 391, 391, 391, 391, 391, 391,
362 392, 392, 392, 392, 393, 393, 393, 393, 393, 393,
363 393, 393, 393, 393, 393, 393, 393, 393, 393, 393,
364 393, 393, 394, 394, 394, 394, 394, 394, 394, 394,
365 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
366 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
367 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
368 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
369 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
370 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
371 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
372 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
373 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
374 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
375 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
376 394, 394, 394, 394, 398, 399, 402, 403, 406, 407,
377 408, 409, 415, 423, 426, 429, 430, 433, 436, 439,
378 442, 448, 454, 457, 463, 486, 490, 494, 499, 503,
379 507, 511, 518, 519, 523, 524, 528, 529, 530, 534,
380 535, 539, 540, 544, 545, 546, 550, 551, 555, 556,
381 557, 558, 559, 560, 564, 569, 577, 580, 584, 589,
382 597, 600, 604, 608, 615, 619, 623, 627, 632, 642,
383 652, 657, 662, 668, 677, 680, 684, 688, 694, 701,
384 707, 708, 709, 710, 714, 717, 748, 755, 756, 757,
385 758, 762, 765, 771, 772, 780, 791, 800, 809, 817,
386 820, 824, 828, 832, 837, 842, 850, 851, 852, 855,
387 861, 864, 867, 873, 874, 875, 876, 877, 878, 879,
388 880, 884, 885, 889, 892, 895, 901, 904, 907, 915,
389 927, 930, 933, 940, 943, 953, 956, 959, 962, 963,
390 967, 970, 973, 984, 987, 993, 994, 998, 999, 1003,
391 1007, 1013, 1014, 1020, 1023, 1029, 1030, 1037, 1038, 1042,
392 1049, 1060, 1067, 1078, 1085, 1096, 1107, 1121, 1122, 1134,
393 1137, 1140, 1143, 1150, 1153, 1159, 1168, 1180, 1188, 1191,
394 1201, 1214, 1219, 1227, 1237, 1247, 1250, 1254, 1260, 1274,
395 1291, 1294, 1300, 1307, 1317, 1324, 1327, 1333, 1338, 1346,
396 1350, 1354, 1358, 1362, 1366, 1373, 1377, 1381, 1385, 1392,
397 1405, 1418, 1431, 1434, 1441, 1444, 1447, 1450, 1456, 1460,
398 1467, 1470, 1476, 1479, 1485, 1486, 1492, 1495, 1507, 1510,
399 1517, 1522, 1527, 1537, 1540, 1546, 1549, 1555, 1562, 1569,
400 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1581, 1584,
401 1590, 1593, 1596, 1599, 1602, 1608, 1612, 1620, 1621, 1625,
402 1632, 1635, 1638, 1642, 1645, 1648, 1654, 1658, 1666, 1673,
403 1681, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697,
404 1698, 1702, 1705, 1711, 1714, 1720, 1721, 1725, 1728, 1734,
405 1737, 1743, 1750, 1757, 1760, 1763, 1770, 1775, 1783, 1784,
406 1785, 1786, 1787, 1788, 1789, 1790, 1794, 1797, 1803, 1806,
407 1812, 1819, 1820, 1824, 1831, 1834, 1840, 1848, 1851, 1857
411 #if YYDEBUG || YYERROR_VERBOSE || 1
412 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
413 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
414 static const char *const yytname
[] =
416 "\"end of file\"", "error", "$undefined", "BOOL", "CHAR", "SHORT",
417 "INT", "SIGNED", "UNSIGNED", "LONG", "FLOAT", "DOUBLE", "STRING",
418 "MIXED", "ARRAY", "OBJECT", "CALLABLE", "VOID", "ZVAL", "INT8", "UINT8",
419 "INT16", "UINT16", "INT32", "UINT32", "INT64", "UINT64", "NULL", "TRUE",
420 "FALSE", "NAME", "NSNAME", "DOLLAR_NAME", "NUMBER", "QUOTED_STRING",
421 "QUOTED_CHAR", "\"end of line\"", "\";\"", "\"(\"", "\")\"", "\",\"",
422 "\":\"", "\"{\"", "\"}\"", "\"[\"", "\"]\"", "\"=\"", "\"#\"", "\"|\"",
423 "\"^\"", "\"&\"", "\"<<\"", "\">>\"", "\"+\"", "\"-\"", "\"*\"", "\"/\"",
424 "\"%\"", "\"<\"", "\">\"", "\">=\"", "\"<=\"", "\"||\"", "\"&&\"",
425 "\"==\"", "\"!=\"", "\"~\"", "\"!\"", "\".\"", "\"\\\\\"", "\"...\"",
426 "\"?\"", "PRAGMA", "PRAGMA_ONCE", "LINE", "ERROR", "WARNING", "IF",
427 "IFDEF", "IFNDEF", "ELSE", "ELIF", "ENDIF", "DEFINE", "DEFINED", "UNDEF",
428 "IMPORT", "INCLUDE", "INCLUDE_NEXT", "TYPEDEF", "STRUCT", "UNION",
429 "ENUM", "CONST", "LIB", "STATIC", "CALLBACK", "FUNCTION", "LET", "SET",
430 "TEMP", "FREE", "RETURN", "PRE_ASSERT", "POST_ASSERT", "BOOLVAL",
431 "INTVAL", "STRVAL", "PATHVAL", "STRLEN", "FLOATVAL", "ARRVAL", "OBJVAL",
432 "COUNT", "CALLOC", "TO_BOOL", "TO_INT", "TO_STRING", "TO_FLOAT",
433 "TO_ARRAY", "TO_OBJECT", "COMMENT", "WHITESPACE", "NO_WHITESPACE",
434 "CPP_HEADER", "CPP_ATTRIBUTE", "CPP_EXTENSION", "CPP_PASTE",
435 "CPP_RESTRICT", "CPP_ASM", "BINARY", "UNARY", "$accept",
436 "binary_op_token", "unary_op_token", "name_token", "any_noeol_token",
437 "file", "blocks", "block", "lib", "cpp", "cpp_exp", "cpp_ignored_token",
438 "cpp_message_token", "cpp_include_token", "cpp_header_token",
439 "cpp_no_arg_token", "cpp_name_arg_token", "cpp_exp_arg_token",
440 "cpp_special_name_token", "cpp_macro_decl", "cpp_macro_sig",
441 "cpp_macro_sig_args", "cpp_macro_decl_tokens",
442 "cpp_macro_decl_token_list", "cpp_macro_exp", "cpp_macro_call_args",
443 "cpp_macro_call_arg_list", "constant", "constant_type",
444 "constant_type_token", "impl_def_val", "impl_def_val_token",
445 "decl_typedef", "typedef", "const_decl_type", "decl_type",
446 "decl_type_complex", "decl_type_simple", "decl_real_type",
447 "decl_stdint_type", "int_signed", "int_width", "decl_int_type",
448 "int_signed_types", "signed_short_types", "signed_long_types",
449 "int_width_types", "decl_stmt", "decl_asm", "ignored_quoted_strings",
450 "decl_ext_var_stmt", "decl_ext_var", "decl_ext_var_list", "decl_vars",
451 "decl", "decl_body", "decl_func_body", "decl_functor_body",
452 "decl_functor", "decl_func", "decl_args", "decl_anon_arg", "decl_arg",
453 "decl_var", "decl_union", "decl_struct", "decl_struct_args",
454 "struct_args_block", "struct_args", "struct_arg_var_list",
455 "decl_vars_with_layout", "decl_enum", "decl_enum_items",
456 "decl_enum_item", "num_exp", "number", "enum_name", "union_name",
457 "struct_name", "optional_name", "decl_layout", "align_and_size",
458 "array_size", "indirection", "pointers", "asterisks", "impl",
459 "impl_func", "impl_args", "impl_arg", "impl_var", "impl_type",
460 "impl_type_token", "impl_stmts", "impl_stmt", "let_stmt", "let_exp",
461 "let_exp_byref", "let_exp_assign", "let_calloc", "let_callback",
462 "let_func", "let_func_token", "let_func_exps", "let_exps",
463 "callback_rval", "callback_arg_list", "callback_args", "return_stmt",
464 "set_stmt", "set_exp", "set_func", "set_func_token", "set_func_exps",
465 "set_exps", "assert_stmt", "assert_stmt_token", "free_stmt", "free_exps",
466 "free_exp", "reference", "byref", YY_NULLPTR
470 #define YYPACT_NINF -550
471 #define YYTABLE_NINF -478
473 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
475 static const short int yypact
[] =
477 946, -550, -550, -550, -550, -550, 64, -550, -550, 505,
478 -550, -550, -550, -550, -550, -550, -550, -550, 2646, -550,
479 -550, 510, 2690, 2496, 2496, 2496, 308, 10, -49, 32,
480 -550, 1040, 94, 946, -550, -550, -550, -550, -550, 2206,
481 -550, -550, -550, -550, -550, 61, 82, -550, -550, -550,
482 102, -2, -550, -550, 43, 103, 105, -550, -550, -550,
483 -550, 89, -550, 111, -550, -550, -550, -550, -550, 656,
484 -550, 104, -550, -550, -550, -550, -550, -550, -550, -550,
485 -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
486 -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
487 -550, -550, 2255, -22, -550, -550, -550, 2496, 2496, 2496,
488 245, -550, 84, -550, -550, -550, -550, -550, -550, -550,
489 -550, -550, -550, -550, -550, 905, -550, -550, -550, -550,
490 131, 786, 786, -3, -550, 905, 2132, 2496, 2496, 150,
491 1896, -550, -550, 169, 2496, 172, 172, 63, 63, 173,
492 -550, -550, 183, 185, -550, 104, 186, -550, -550, 182,
493 178, -550, 197, -550, 2723, 2690, -2, -550, -550, 187,
494 -550, 191, 2496, -550, 224, -550, 90, -550, -550, 61,
495 -550, -550, 194, 198, 2767, 2767, 2496, 279, 2496, -550,
496 104, -550, -550, -550, -550, -550, -550, 2206, -550, -550,
497 -550, -550, -550, -550, 113, 786, -550, -550, -550, -550,
498 -550, -550, -550, -550, -550, -550, -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, 786, -550, -550, -550, -550, -550, -550, -550,
511 -550, 2132, -550, -550, -550, -550, 2373, 2132, 196, 2946,
512 21, -550, 21, -550, -550, -550, -550, 203, 195, 195,
513 5, 5, 2422, 192, -550, 279, 201, 206, 221, 226,
514 -550, 104, 187, -550, -550, -550, -550, -550, -550, 227,
515 -550, 3, 2800, 2206, 75, -550, -550, 107, 214, 77,
516 -550, 2206, 1778, 2206, 2496, 74, -550, -550, 123, -550,
517 -550, -550, -550, -550, 2014, -550, 233, 2496, 223, -550,
518 2496, 235, -550, -550, 2817, 2496, -550, -550, 2132, -550,
519 -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
520 -550, -550, -550, -550, -550, -550, -550, 2132, 2132, 236,
521 2690, 2206, 2206, -550, -550, -550, -550, 104, -550, 1188,
522 202, 40, -550, -550, 231, 2496, -550, -550, 6, 2255,
523 104, 191, 187, 2556, 187, 2613, 2014, 2496, -550, 232,
524 240, -550, -550, -550, 1070, 2014, -550, 2970, -550, 237,
525 242, -550, 244, 252, 239, 248, 86, -550, -550, 250,
526 244, -550, -550, 2790, -550, 251, 2206, 2496, -550, 254,
527 2946, 256, 257, 2897, -550, 265, 280, 1937, -550, -550,
528 2496, -550, -550, -550, -550, 287, -550, 2970, -550, -550,
529 -550, -550, -550, -550, -550, -550, -550, -550, 285, 122,
530 -550, 32, -550, -550, 300, -550, -550, 2422, -550, 3,
531 301, -550, -550, 303, 2970, -550, 1306, -550, 304, 464,
532 306, 2845, -550, 2014, 2014, 1778, -550, 2206, -550, 32,
533 2206, -550, 2496, -550, -550, -550, -550, -550, 309, 310,
534 -550, -550, 2132, 2132, 311, 27, 313, -550, 280, 317,
535 -550, 355, 316, 355, 314, -550, 187, 187, -550, 249,
536 93, 328, 2970, -550, -550, -550, -550, 335, 1424, 2014,
537 -550, 2922, -550, -550, 344, 2206, 137, -550, 786, 2496,
538 2946, 2994, 342, 346, 347, 2206, 312, 313, -550, -550,
539 355, -550, 32, 1188, -550, -550, 328, -550, -550, -550,
540 -550, 350, 2014, 32, -550, -550, 2014, 1542, 351, 352,
541 -550, -550, -550, 353, 354, 358, 280, 356, -550, 360,
542 -550, 7, -550, 32, 586, 361, 3018, 365, -550, 366,
543 -550, -550, -550, 367, 368, -550, 2206, -550, 377, 373,
544 2014, 1306, 374, -550, 1778, 379, 381, 280, 378, 1660,
545 2872, 232, -550, -550, -550, 376, 1424, -550, -550, 380,
546 382, -550, 384, 383, 387, -550, -550, 1306, -550, 386,
547 -550, 355, 389, 1778, -550, 391, -550, -550, -550, -550
550 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
551 Performed when YYTABLE does not specify something else to do. Zero
552 means the default is an error. */
553 static const unsigned short int yydefact
[] =
555 164, 286, 283, 287, 281, 282, 284, 270, 271, 0,
556 273, 274, 275, 276, 277, 278, 279, 280, 269, 169,
557 168, 0, 0, 0, 0, 372, 0, 0, 0, 477,
558 170, 0, 0, 165, 166, 172, 171, 173, 176, 382,
559 260, 262, 261, 267, 268, 290, 300, 266, 174, 175,
560 0, 305, 315, 317, 318, 0, 0, 327, 178, 177,
561 179, 0, 180, 0, 285, 272, 33, 34, 465, 431,
562 24, 382, 386, 39, 38, 37, 35, 36, 32, 31,
563 25, 29, 28, 26, 27, 439, 438, 436, 434, 435,
564 437, 433, 432, 440, 30, 463, 461, 460, 462, 459,
565 458, 328, 0, 384, 40, 41, 269, 0, 0, 0,
566 0, 316, 311, 182, 193, 190, 192, 194, 195, 206,
567 203, 204, 201, 207, 202, 0, 205, 196, 197, 198,
568 0, 220, 220, 0, 186, 0, 0, 372, 372, 0,
569 382, 254, 337, 253, 0, 378, 378, 263, 264, 265,
570 369, 240, 287, 270, 243, 0, 0, 239, 259, 0,
571 0, 479, 0, 478, 269, 0, 305, 1, 167, 380,
572 338, 0, 383, 291, 295, 293, 297, 288, 301, 290,
573 289, 309, 0, 0, 329, 329, 0, 0, 0, 383,
574 382, 340, 387, 385, 263, 264, 265, 0, 310, 209,
575 210, 211, 213, 212, 208, 220, 188, 183, 75, 42,
576 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
577 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
578 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
579 73, 74, 76, 77, 78, 79, 80, 81, 82, 83,
580 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
581 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
582 104, 105, 106, 107, 108, 109, 115, 113, 114, 112,
583 110, 111, 116, 117, 118, 119, 120, 121, 122, 123,
584 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
585 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
586 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
587 154, 155, 156, 157, 158, 159, 162, 160, 161, 163,
588 222, 191, 221, 184, 199, 200, 185, 208, 187, 230,
589 231, 0, 22, 23, 20, 21, 0, 0, 232, 189,
590 263, 371, 264, 370, 251, 258, 255, 0, 0, 0,
591 0, 0, 0, 0, 181, 0, 0, 0, 0, 0,
592 342, 382, 380, 296, 292, 298, 299, 294, 302, 0,
593 303, 330, 0, 382, 0, 331, 333, 0, 357, 0,
594 355, 0, 477, 0, 0, 0, 471, 472, 0, 408,
595 411, 410, 412, 413, 0, 414, 0, 0, 312, 313,
596 0, 0, 215, 223, 0, 0, 228, 225, 234, 2,
597 3, 4, 5, 6, 7, 8, 9, 10, 11, 13,
598 12, 14, 15, 16, 17, 18, 19, 0, 0, 0,
599 0, 0, 0, 345, 344, 346, 343, 382, 339, 244,
600 0, 0, 252, 304, 0, 0, 341, 307, 0, 336,
601 0, 334, 380, 0, 380, 0, 0, 0, 354, 0,
602 0, 366, 365, 367, 0, 0, 368, 454, 359, 0,
603 0, 453, 41, 0, 0, 0, 0, 474, 464, 0,
604 0, 388, 409, 0, 326, 0, 0, 216, 224, 0,
605 236, 0, 235, 0, 226, 0, 374, 0, 257, 256,
606 0, 247, 248, 249, 250, 0, 246, 245, 389, 401,
607 402, 403, 404, 400, 405, 406, 407, 399, 0, 0,
608 393, 477, 398, 381, 0, 308, 306, 335, 321, 0,
609 0, 332, 319, 0, 358, 356, 0, 415, 24, 0,
610 0, 0, 363, 0, 0, 477, 452, 0, 397, 477,
611 0, 473, 0, 451, 470, 325, 314, 218, 0, 217,
612 229, 233, 0, 0, 0, 0, 350, 347, 374, 0,
613 238, 0, 0, 0, 395, 323, 380, 380, 420, 0,
614 31, 30, 425, 426, 421, 423, 424, 40, 0, 0,
615 361, 0, 362, 455, 466, 0, 0, 475, 220, 0,
616 237, 227, 0, 375, 0, 0, 0, 350, 324, 390,
617 0, 394, 477, 244, 322, 320, 0, 422, 445, 431,
618 446, 0, 0, 477, 427, 360, 0, 477, 0, 0,
619 476, 214, 219, 0, 0, 0, 374, 351, 348, 0,
620 391, 0, 396, 477, 0, 441, 364, 0, 468, 467,
621 456, 416, 379, 0, 0, 352, 0, 349, 0, 0,
622 0, 0, 0, 457, 477, 0, 0, 374, 0, 447,
623 0, 368, 443, 419, 417, 442, 0, 430, 469, 0,
624 0, 353, 0, 0, 448, 449, 428, 0, 418, 0,
625 376, 0, 0, 477, 444, 0, 392, 429, 450, 377
628 /* YYPGOTO[NTERM-NUM]. */
629 static const short int yypgoto
[] =
631 -550, -319, -129, 0, 91, -550, -550, 398, -550, -550,
632 -550, -550, -550, -550, -550, -550, -550, -550, 258, -550,
633 -550, -550, -127, -550, -325, -550, -550, -550, -550, -550,
634 -191, -550, -550, -152, -11, -23, -550, -550, -550, 293,
635 388, -550, -550, 260, -550, -550, -550, -550, 269, -550,
636 -550, -550, -550, -124, 410, 1, -16, 18, -550, -550,
637 261, -331, -14, -39, -550, -550, 81, -179, -550, -172,
638 -550, 38, -550, -20, -390, -550, -550, -550, -550, 73,
639 -549, 49, -346, -61, -7, -550, -550, 420, -550, -133,
640 -503, -546, -550, 95, -364, -550, -241, -526, 67, -128,
641 -550, -550, -529, -550, -550, -550, -550, -550, -550, -550,
642 -534, 69, -380, -550, -550, -550, -550, -550, -550, -100,
646 /* YYDEFGOTO[NTERM-NUM]. */
647 static const short int yydefgoto
[] =
649 -1, 554, 475, 169, 330, 32, 33, 34, 35, 36,
650 130, 131, 132, 133, 336, 134, 135, 136, 205, 206,
651 568, 569, 331, 332, 349, 501, 502, 37, 156, 157,
652 515, 516, 38, 139, 39, 40, 41, 42, 43, 44,
653 45, 46, 47, 177, 374, 377, 180, 48, 183, 458,
654 49, 50, 198, 408, 51, 52, 53, 142, 55, 56,
655 384, 385, 57, 476, 58, 59, 444, 445, 507, 616,
656 647, 144, 389, 390, 477, 478, 61, 145, 146, 150,
657 576, 358, 370, 171, 410, 103, 62, 63, 529, 530,
658 479, 531, 532, 398, 399, 400, 682, 683, 684, 594,
659 595, 596, 104, 672, 685, 631, 693, 694, 401, 402,
660 480, 481, 105, 638, 659, 403, 404, 405, 486, 487,
664 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
665 positive, shift that token. If negative, reduce the rule whose
666 number is the opposite. If YYTABLE_NINF, syntax error. */
667 static const short int yytable
[] =
669 170, 162, 102, 158, 112, 333, 141, 347, 143, 101,
670 188, 140, 482, 367, 493, 490, 414, 597, 54, 111,
671 593, 603, 417, 147, 148, 149, 456, 598, 584, 617,
672 438, 334, 172, 192, 492, 619, 54, 622, 60, 558,
673 535, 71, 443, 519, 159, 536, 520, 440, 29, 54,
674 521, 54, 522, 523, 524, 525, 526, 527, 72, 517,
675 613, 630, -373, -373, 189, 173, 174, 175, 614, 597,
676 176, 60, 634, 64, 650, 65, 544, 668, 412, 528,
677 -318, -337, 161, -337, 551, 552, 492, 158, 178, 4,
678 5, 68, 488, 500, 167, 438, 375, 665, 438, 376,
679 -378, 170, 191, 658, 357, -378, 193, 194, 195, 196,
680 628, 629, 503, 504, 462, 463, 538, 467, 542, 584,
681 468, 335, -327, 561, 197, 204, 562, 182, 691, 407,
682 655, 186, 541, 172, 541, 337, 348, 350, 352, 181,
683 688, 184, 597, 185, 356, 695, 464, 465, 362, 141,
684 669, 143, 686, 187, 140, 706, 592, 597, 409, 72,
685 698, 582, 583, 601, 602, 111, 491, 207, 597, 708,
686 386, 386, 372, 383, 383, 482, 640, 496, 686, 441,
687 442, 438, 54, 189, 438, 438, 388, 354, 406, 95,
688 96, 97, 98, 99, 100, 359, 360, 361, 85, 86,
689 87, 88, 89, 90, 91, 92, 93, -327, 592, 635,
690 351, 353, 347, 357, -241, -373, -242, 363, 347, 364,
691 365, 391, 392, 393, 394, 395, 396, 397, 366, 371,
692 373, 369, 379, 517, 418, 380, 411, 440, 449, 451,
693 624, 625, 654, 452, 439, 518, 656, 610, 611, 1,
694 2, 3, 4, 5, 6, 7, 8, 482, 453, 454,
695 466, 457, 155, 496, 10, 11, 12, 13, 14, 15,
696 16, 17, 494, 497, 505, 106, 533, 547, 546, 556,
697 680, 592, 557, 555, 558, 559, 560, 563, 506, 347,
698 565, 438, 438, 570, 482, 571, 592, 572, 574, 482,
699 391, 392, 393, 394, 395, 396, 397, 592, 347, 347,
700 455, 151, 1, 2, 152, 4, 5, 6, 153, 8,
701 154, 575, 461, 482, 580, 155, 581, 10, 11, 12,
702 13, 14, 15, 16, 17, 107, 108, 109, 106, 585,
703 586, 348, 587, -24, 170, 599, 416, 348, 608, 648,
704 609, 612, 469, 615, 484, 578, 618, 620, 519, 158,
705 623, 520, 448, 626, 189, 521, 632, 522, 523, 524,
706 525, 526, 527, 633, 459, 643, 172, 391, 392, 393,
707 394, 395, 396, 397, 637, 645, 510, 644, 653, 661,
708 660, 664, 662, 338, 485, 663, 666, 667, 107, 108,
709 109, 671, 508, 509, 673, 675, 674, 495, 676, 678,
710 372, 679, 689, 687, 690, 499, 697, 692, 348, 705,
711 699, 700, 702, 413, 141, 701, 143, 703, 707, 140,
712 709, 168, 652, 355, 179, 368, 606, 348, 348, 378,
713 189, 166, 446, 347, 347, 649, 387, 545, 160, 386,
714 621, 386, 383, 537, 383, 534, 704, 566, 470, 191,
715 450, 627, 607, 550, 489, 0, 0, 388, 1, 2,
716 3, 4, 5, 6, 7, 8, 0, 0, 0, 0,
717 0, 641, 0, 10, 11, 12, 13, 14, 15, 16,
718 17, 141, 0, 143, 106, 0, 140, 567, 0, 0,
719 0, 0, 0, 0, 0, 0, 0, 0, 66, 0,
720 579, 0, 0, 0, 0, 0, 0, 67, 604, 0,
721 0, 409, 68, 69, 0, 0, 158, 0, 0, 0,
722 0, 605, 459, 0, 0, 70, 0, 448, 0, 0,
723 0, 0, 0, 71, 0, 0, 113, 0, 0, 0,
724 0, 0, 0, 0, 107, 108, 109, 0, 0, 0,
725 72, 0, 485, 0, 0, 0, 639, 0, 0, 0,
726 0, 0, 348, 348, 0, 0, 646, 73, 74, 75,
727 76, 77, 114, 115, 116, 117, 118, 119, 120, 121,
728 122, 123, 124, 125, 651, 126, 127, 128, 129, 78,
729 0, 79, 80, 81, 82, 83, 84, 0, 0, 642,
730 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
731 95, 96, 97, 98, 99, 100, 670, 677, 0, 0,
732 0, 0, 681, 0, 419, 420, 421, 422, 423, 424,
733 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
734 435, 436, 0, 0, 0, 0, -431, 553, 681, -431,
735 -431, -431, -431, -431, -431, -431, -431, -431, -431, -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, 0, -431, 0, -431, -431, -431, -431, -431,
744 -431, -431, -431, -431, -431, -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, 0, -431,
747 -431, 0, -431, -431, -431, -431, 208, 0, 0, 209,
748 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
749 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
750 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
751 240, 241, 0, 242, 243, 244, 245, 246, 247, 248,
752 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
753 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
754 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
755 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
756 289, 290, 0, 291, 0, 292, 293, 294, 295, 296,
757 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
758 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
759 317, 318, 319, 320, 321, 322, 323, 324, 66, 0,
760 325, 0, 326, 327, 328, 329, 0, 67, 0, 0,
761 0, 0, 68, 69, 0, 0, 0, 0, 0, 0,
762 0, 0, 199, 200, 201, 70, 0, 0, 0, 0,
763 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
764 1, 2, 3, 4, 5, 6, 7, 8, 0, 0,
765 0, 0, 0, 9, 0, 10, 11, 12, 13, 14,
766 15, 16, 17, 0, 0, 0, 18, 73, 74, 75,
767 76, 77, 19, 20, 0, 0, 0, 0, 0, 0,
768 0, 0, 0, 21, 0, 0, 0, 0, 0, 78,
769 0, 79, 80, 81, 82, 83, 84, 0, 0, 0,
770 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
771 95, 96, 97, 98, 99, 100, 0, 0, 0, 0,
772 0, 202, 0, 203, 0, 22, 23, 24, 25, 26,
773 27, 28, 0, 29, 1, 2, 3, 4, 5, 6,
774 7, 8, 0, 0, 0, 0, 0, 9, 0, 10,
775 11, 12, 13, 14, 15, 16, 17, 30, 0, 0,
776 164, 0, 31, 66, 1, 2, 3, 4, 5, 6,
777 7, 8, 67, 0, 0, 0, 0, 68, 69, 10,
778 11, 12, 13, 14, 15, 16, 17, 0, 0, 0,
779 548, 471, 0, 472, 0, 473, 0, 0, 474, 0,
780 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
781 0, 0, 0, 342, 343, 72, 0, 0, 0, 165,
782 107, 108, 109, 110, 0, 0, 344, 345, 0, 0,
783 0, 0, 73, 74, 75, 76, 77, 0, 0, 0,
784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
785 107, 108, 109, 549, 78, 0, 79, 80, 81, 82,
786 83, 84, 0, 0, 0, 85, 86, 87, 88, 89,
787 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
788 100, 66, 0, 0, 0, 0, 0, 0, 0, 0,
789 67, 0, 0, 0, 0, 68, 69, 0, 0, 0,
790 0, 0, 0, 0, 0, 511, 512, 513, 70, 471,
791 0, 472, 514, 473, 0, 0, 474, 0, 0, 0,
792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
793 0, 342, 343, 72, 0, 0, 0, 0, 0, 0,
794 0, 0, 0, 0, 344, 345, 0, 0, 0, 0,
795 73, 74, 75, 76, 77, 0, 0, 0, 0, 0,
796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
797 0, 0, 78, 0, 79, 80, 81, 82, 83, 84,
798 0, 0, 0, 85, 86, 87, 88, 89, 90, 91,
799 92, 93, 94, 95, 96, 97, 98, 99, 100, 66,
800 0, 0, 0, 0, 0, 0, 0, 0, 67, 0,
801 0, 0, 0, 68, 69, 0, 0, 0, 0, 0,
802 0, 0, 0, 588, 0, 0, 70, 471, 0, 472,
803 0, 473, 0, 0, 474, 0, 0, 0, 0, 0,
804 0, 0, 0, 0, 0, 0, 161, 0, 0, 342,
805 343, 72, 0, 0, 0, 0, 0, 0, 0, 0,
806 0, 0, 344, 345, 0, 0, 0, 0, 73, 74,
807 75, 76, 77, 0, 0, 0, 0, 0, 0, 0,
808 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
809 78, 589, 590, 80, 81, 82, 83, 84, 0, 0,
810 0, 85, 86, 87, 88, 89, 90, 91, 92, 93,
811 591, 95, 96, 97, 98, 99, 100, 66, 0, 0,
812 0, 0, 0, 0, 0, 0, 67, 0, 0, 0,
813 0, 68, 69, 0, 0, 0, 0, 0, 0, 0,
814 0, 588, 0, 0, 70, 471, 0, 472, 0, 473,
815 0, 0, 474, 0, 0, 0, 0, 0, 0, 0,
816 0, 0, 0, 0, 0, 0, 0, 342, 343, 72,
817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
818 344, 345, 0, 0, 0, 0, 73, 74, 75, 76,
819 77, 0, 0, 0, 0, 0, 0, 0, 0, 0,
820 0, 0, 0, 0, 0, 0, 0, 0, 78, 589,
821 590, 80, 81, 82, 83, 84, 0, 0, 0, 85,
822 86, 87, 88, 89, 90, 91, 92, 93, 591, 95,
823 96, 97, 98, 99, 100, 66, 0, 0, 0, 0,
824 0, 0, 0, 0, 67, 0, 0, 0, 0, 68,
825 69, 0, 0, 0, 0, 0, 0, 0, 0, 0,
826 0, 0, 70, 471, 0, 472, 0, 473, 0, 0,
827 474, 0, 0, 0, 0, 0, 0, 0, 0, 0,
828 0, 0, 161, 0, 0, 342, 343, 72, 0, 0,
829 0, 0, 0, 0, 0, 0, 0, 0, 344, 345,
830 0, 0, 657, 0, 73, 74, 75, 76, 77, 0,
831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
832 0, 0, 0, 0, 0, 0, 78, 0, 79, 80,
833 81, 82, 83, 84, 0, 0, 0, 85, 86, 87,
834 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
835 98, 99, 100, 66, 0, 0, 0, 0, 0, 0,
836 0, 0, 67, 0, 0, 0, 0, 68, 69, 0,
837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
838 70, 471, -477, 472, 0, 473, 0, 0, 474, 0,
839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
840 161, 0, 0, 342, 343, 72, 0, 0, 0, 0,
841 0, 0, 0, 0, 0, 0, 344, 345, 0, 0,
842 0, 0, 73, 74, 75, 76, 77, 0, 0, 0,
843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
844 0, 0, 0, 0, 78, 0, 79, 80, 81, 82,
845 83, 84, 0, 0, 0, 85, 86, 87, 88, 89,
846 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
847 100, 66, 0, 0, 0, 0, 0, 0, 0, 0,
848 67, 0, 0, 0, 0, 68, 69, 0, 0, 0,
849 0, 0, 0, 0, 0, 0, 0, 0, 70, 471,
850 0, 472, 0, 473, 0, 0, 474, 0, 0, 0,
851 0, 0, 0, 0, 0, 0, 0, 0, 161, 0,
852 0, 342, 343, 72, 0, 0, 0, 0, 0, 0,
853 0, 0, 0, 0, 344, 345, 0, 0, 0, 0,
854 73, 74, 75, 76, 77, 0, 0, 0, 0, 0,
855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
856 0, 0, 78, 0, 79, 80, 81, 82, 83, 84,
857 0, 0, 0, 85, 86, 87, 88, 89, 90, 91,
858 92, 93, 94, 95, 96, 97, 98, 99, 100, 66,
859 0, 0, 0, 0, 0, 0, 0, 0, 67, 0,
860 0, 0, 0, 68, 69, 10, 11, 12, 13, 14,
861 15, 16, 17, 0, 0, 0, 70, 0, 0, 0,
862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
863 0, 1, 2, 3, 4, 5, 6, 7, 8, 0,
864 0, 72, 0, 0, 9, 0, 10, 11, 12, 13,
865 14, 15, 16, 17, 0, 0, 0, 106, 73, 74,
866 75, 76, 77, 0, 0, 0, 0, 0, 0, 0,
867 577, 0, 0, 0, 0, 0, 0, 0, 0, 0,
868 78, 0, 79, 80, 81, 82, 83, 84, 0, 0,
869 0, 85, 86, 87, 88, 89, 90, 91, 92, 93,
870 94, 95, 96, 97, 98, 99, 100, 66, 0, 0,
871 0, 0, 0, 0, 0, 0, 67, 137, 138, 25,
872 110, 68, 69, 0, 0, 0, 0, 0, 0, 0,
873 0, 0, 0, 0, 70, 471, 0, 472, 0, 473,
874 0, 0, 474, 0, 0, 0, 0, 0, 0, 0,
875 0, 0, 0, 0, 0, 0, 0, 342, 343, 72,
876 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
877 344, 345, 0, 0, 0, 0, 73, 74, 75, 76,
878 77, 0, 0, 0, 0, 0, 0, 0, 0, 0,
879 0, 0, 0, 0, 0, 0, 0, 0, 78, 0,
880 79, 80, 81, 82, 83, 84, 0, 0, 0, 85,
881 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
882 96, 97, 98, 99, 100, 66, 0, 0, 0, 0,
883 0, 0, 0, 0, 67, 0, 0, 0, 0, 68,
884 69, 0, 0, 0, 0, 0, 0, 0, 0, 0,
885 0, 0, 70, 0, 0, 339, 0, 340, 0, 0,
886 341, 0, 0, 0, 0, 0, 0, 0, 0, 0,
887 0, 0, 0, 0, 0, 342, 343, 0, 0, 0,
888 0, 0, 0, 0, 0, 0, 0, 0, 344, 345,
889 0, 0, 0, 0, 73, 74, 75, 76, 77, 66,
890 0, 0, 0, 0, 0, 0, 346, 0, 67, 0,
891 0, 0, 0, 68, 69, 0, 78, 0, 79, 80,
892 81, 82, 83, 84, 0, 0, 70, 85, 86, 87,
893 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
894 98, 99, 100, 0, 0, 0, 0, 0, 66, 0,
895 0, 72, 0, 0, 0, 0, 0, 67, 0, 0,
896 0, 0, 68, 69, 0, 0, 0, 0, 73, 74,
897 75, 76, 77, 0, 0, 70, 0, 0, 0, 0,
898 0, 0, 0, 190, 0, 0, 0, 0, 0, 0,
899 78, 0, 79, 80, 81, 82, 83, 84, 0, 0,
900 0, 85, 86, 87, 88, 89, 90, 91, 92, 93,
901 94, 95, 96, 97, 98, 99, 100, 73, 74, 75,
902 76, 77, 0, 0, 0, 0, 0, 0, 0, 0,
903 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,
904 0, 79, 80, 81, 82, 83, 84, 0, 0, 0,
905 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
906 95, 96, 97, 98, 99, 100, 66, 0, 0, 0,
907 0, 0, 0, 0, 0, 67, 0, 0, 0, 0,
908 68, 69, 0, 0, 0, 0, 0, 0, 0, 0,
909 0, 0, 0, 70, 0, 0, 0, 0, 0, 0,
910 0, 415, 0, 0, 0, 0, 0, 0, 0, 0,
911 0, 0, 0, 0, 0, 66, 0, 0, 0, 0,
912 0, 0, 0, 0, 67, 0, 0, 0, 0, 68,
913 69, 0, 0, 0, 0, 73, 74, 75, 76, 77,
914 0, 0, 70, 0, 0, 0, 0, 0, 0, 0,
915 447, 0, 0, 0, 0, 0, 0, 78, 0, 79,
916 80, 81, 82, 83, 84, 0, 0, 0, 85, 86,
917 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
918 97, 98, 99, 100, 73, 74, 75, 76, 77, 66,
919 0, 0, 0, 0, 0, 0, 0, 0, 67, 0,
920 0, 0, 0, 68, 69, 0, 78, 0, 79, 80,
921 81, 82, 83, 84, 0, 0, 70, 85, 86, 87,
922 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
923 98, 99, 100, 0, 0, 0, 0, 0, 0, 0,
924 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
925 1, 2, 3, 4, 5, 6, 7, 8, 73, 74,
926 75, 76, 77, 539, 0, 10, 11, 12, 13, 14,
927 15, 16, 17, 0, 0, 0, 106, 0, 0, 0,
928 78, 0, 79, 80, 81, 82, 83, 84, 0, 0,
929 0, 85, 86, 87, 88, 89, 90, 91, 92, 93,
930 94, 95, 96, 97, 98, 99, 100, 1, 2, 3,
931 4, 5, 6, 7, 8, 0, 540, 0, 0, 0,
932 539, 0, 10, 11, 12, 13, 14, 15, 16, 17,
933 0, 0, 0, 106, 0, 0, 107, 108, 109, 382,
934 1, 2, 3, 4, 5, 6, 7, 8, 0, 0,
935 0, 0, 0, 9, 0, 10, 11, 12, 13, 14,
936 15, 16, 17, 0, 0, 0, 106, 0, 0, 0,
937 0, 0, 0, 543, 0, 0, 0, 0, 0, 0,
938 0, 0, 0, 0, 1, 2, 3, 4, 5, 6,
939 7, 8, 0, 107, 108, 109, 382, 9, 0, 10,
940 11, 12, 13, 14, 15, 16, 17, 0, 0, 0,
941 106, 0, 0, 0, 0, 0, 0, 1, 2, 3,
942 4, 5, 6, 7, 8, 0, 107, 108, 109, 110,
943 9, 0, 10, 11, 12, 13, 14, 15, 16, 17,
944 0, 0, 0, 106, 0, 0, 0, 0, 0, 0,
945 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
946 0, 1, 2, 3, 4, 5, 6, 7, 8, 0,
947 137, 138, 25, 110, 381, 0, 10, 11, 12, 13,
948 14, 15, 16, 17, 0, 0, 0, 106, 0, 0,
949 0, 0, 0, 0, 1, 2, 3, 4, 5, 6,
950 7, 8, 0, 107, 108, 109, 110, 460, 0, 10,
951 11, 12, 13, 14, 15, 16, 17, 564, 0, 0,
952 106, 0, 0, 0, 0, 0, 0, 0, 419, 420,
953 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
954 431, 432, 433, 434, 435, 436, 498, 107, 108, 109,
955 382, 553, 0, 0, 0, 419, 420, 421, 422, 423,
956 424, 425, 426, 427, 428, 429, 430, 431, 432, 433,
957 434, 435, 436, 0, 600, 0, 0, 0, 437, 0,
958 107, 108, 109, 419, 420, 421, 422, 423, 424, 425,
959 426, 427, 428, 429, 430, 431, 432, 433, 434, 435,
960 436, 696, 0, 0, 0, 0, 553, 0, 0, 0,
961 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
962 429, 430, 431, 432, 433, 434, 435, 436, 573, 0,
963 0, 0, 0, 553, 0, 419, 420, 421, 422, 423,
964 424, 425, 426, 427, 428, 429, 430, 431, 432, 433,
965 434, 435, 436, 636, 0, 0, 0, 0, 437, 0,
966 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
967 429, 430, 431, 432, 433, 434, 435, 436, 0, 0,
968 0, 0, 0, 553, 419, 420, 421, 422, 423, 424,
969 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
970 435, 436, 0, 0, 0, 0, 0, 437, 419, 420,
971 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
972 431, 432, 433, 434, 435, 436, 0, 0, 0, 0,
973 0, 553, 419, 420, 421, 422, 423, 424, 425, 426,
974 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
975 0, 0, 0, 0, 0, 437, 419, 420, 421, 422,
976 423, 424, 425, 426, 427, 428, 429, 430, 431, 432,
977 433, 434, 435, 436, 0, 0, 0, 0, 0, 553
980 static const short int yycheck
[] =
982 39, 29, 9, 26, 18, 132, 22, 136, 22, 9,
983 71, 22, 392, 165, 404, 395, 341, 546, 0, 18,
984 546, 555, 347, 23, 24, 25, 372, 546, 531, 578,
985 349, 34, 39, 55, 398, 581, 18, 583, 0, 32,
986 34, 38, 37, 3, 34, 39, 6, 42, 97, 31,
987 10, 33, 12, 13, 14, 15, 16, 17, 55, 449,
988 33, 590, 41, 42, 71, 4, 5, 6, 41, 598,
989 9, 33, 598, 9, 620, 11, 466, 70, 205, 39,
990 37, 38, 50, 40, 474, 475, 450, 110, 6, 7,
991 8, 17, 18, 418, 0, 414, 6, 646, 417, 9,
992 37, 140, 102, 637, 41, 42, 128, 107, 108, 109,
993 17, 18, 437, 438, 39, 40, 462, 40, 464, 622,
994 43, 124, 38, 37, 40, 125, 40, 129, 677, 190,
995 633, 42, 463, 140, 465, 135, 136, 137, 138, 37,
996 674, 38, 671, 38, 144, 679, 39, 40, 155, 165,
997 653, 165, 671, 42, 165, 701, 546, 686, 197, 55,
998 686, 39, 40, 553, 554, 164, 43, 36, 697, 703,
999 184, 185, 172, 184, 185, 555, 39, 40, 697, 358,
1000 359, 500, 164, 190, 503, 504, 186, 37, 188, 115,
1001 116, 117, 118, 119, 120, 146, 147, 148, 105, 106,
1002 107, 108, 109, 110, 111, 112, 113, 38, 598, 599,
1003 137, 138, 341, 41, 31, 42, 31, 31, 347, 37,
1004 42, 98, 99, 100, 101, 102, 103, 104, 31, 38,
1005 6, 44, 38, 623, 38, 37, 123, 42, 46, 38,
1006 586, 587, 632, 37, 41, 43, 636, 572, 573, 4,
1007 5, 6, 7, 8, 9, 10, 11, 637, 37, 33,
1008 46, 34, 17, 40, 19, 20, 21, 22, 23, 24,
1009 25, 26, 39, 38, 38, 30, 45, 37, 46, 37,
1010 670, 671, 38, 46, 32, 46, 38, 37, 440, 418,
1011 39, 610, 611, 39, 674, 39, 686, 40, 33, 679,
1012 98, 99, 100, 101, 102, 103, 104, 697, 437, 438,
1013 371, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1014 12, 41, 383, 703, 37, 17, 41, 19, 20, 21,
1015 22, 23, 24, 25, 26, 90, 91, 92, 30, 39,
1016 39, 341, 39, 39, 383, 39, 346, 347, 39, 37,
1017 40, 40, 391, 40, 393, 507, 39, 41, 3, 382,
1018 46, 6, 362, 114, 371, 10, 38, 12, 13, 14,
1019 15, 16, 17, 38, 381, 33, 383, 98, 99, 100,
1020 101, 102, 103, 104, 40, 38, 447, 41, 38, 37,
1021 39, 33, 39, 135, 394, 41, 40, 37, 90, 91,
1022 92, 40, 441, 442, 39, 38, 40, 407, 40, 32,
1023 410, 38, 33, 39, 33, 415, 40, 39, 418, 33,
1024 40, 39, 39, 332, 440, 41, 440, 40, 39, 440,
1025 39, 33, 623, 140, 46, 166, 560, 437, 438, 179,
1026 447, 31, 361, 572, 573, 617, 185, 467, 28, 463,
1027 583, 465, 463, 460, 465, 455, 697, 496, 391, 459,
1028 365, 589, 562, 474, 395, -1, -1, 467, 4, 5,
1029 6, 7, 8, 9, 10, 11, -1, -1, -1, -1,
1030 -1, 608, -1, 19, 20, 21, 22, 23, 24, 25,
1031 26, 507, -1, 507, 30, -1, 507, 497, -1, -1,
1032 -1, -1, -1, -1, -1, -1, -1, -1, 3, -1,
1033 510, -1, -1, -1, -1, -1, -1, 12, 557, -1,
1034 -1, 560, 17, 18, -1, -1, 549, -1, -1, -1,
1035 -1, 559, 539, -1, -1, 30, -1, 537, -1, -1,
1036 -1, -1, -1, 38, -1, -1, 36, -1, -1, -1,
1037 -1, -1, -1, -1, 90, 91, 92, -1, -1, -1,
1038 55, -1, 562, -1, -1, -1, 605, -1, -1, -1,
1039 -1, -1, 572, 573, -1, -1, 615, 72, 73, 74,
1040 75, 76, 72, 73, 74, 75, 76, 77, 78, 79,
1041 80, 81, 82, 83, 622, 85, 86, 87, 88, 94,
1042 -1, 96, 97, 98, 99, 100, 101, -1, -1, 609,
1043 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1044 115, 116, 117, 118, 119, 120, 40, 666, -1, -1,
1045 -1, -1, 671, -1, 48, 49, 50, 51, 52, 53,
1046 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1047 64, 65, -1, -1, -1, -1, 0, 71, 697, 3,
1048 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1049 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1050 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1051 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1052 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1053 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1054 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1055 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1056 84, 85, -1, 87, -1, 89, 90, 91, 92, 93,
1057 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
1058 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1059 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
1060 124, -1, 126, 127, 128, 129, 0, -1, -1, 3,
1061 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1062 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1063 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1064 34, 35, -1, 37, 38, 39, 40, 41, 42, 43,
1065 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1066 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1067 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1068 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1069 84, 85, -1, 87, -1, 89, 90, 91, 92, 93,
1070 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
1071 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1072 114, 115, 116, 117, 118, 119, 120, 121, 3, -1,
1073 124, -1, 126, 127, 128, 129, -1, 12, -1, -1,
1074 -1, -1, 17, 18, -1, -1, -1, -1, -1, -1,
1075 -1, -1, 27, 28, 29, 30, -1, -1, -1, -1,
1076 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1077 4, 5, 6, 7, 8, 9, 10, 11, -1, -1,
1078 -1, -1, -1, 17, -1, 19, 20, 21, 22, 23,
1079 24, 25, 26, -1, -1, -1, 30, 72, 73, 74,
1080 75, 76, 36, 37, -1, -1, -1, -1, -1, -1,
1081 -1, -1, -1, 47, -1, -1, -1, -1, -1, 94,
1082 -1, 96, 97, 98, 99, 100, 101, -1, -1, -1,
1083 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1084 115, 116, 117, 118, 119, 120, -1, -1, -1, -1,
1085 -1, 126, -1, 128, -1, 89, 90, 91, 92, 93,
1086 94, 95, -1, 97, 4, 5, 6, 7, 8, 9,
1087 10, 11, -1, -1, -1, -1, -1, 17, -1, 19,
1088 20, 21, 22, 23, 24, 25, 26, 121, -1, -1,
1089 30, -1, 126, 3, 4, 5, 6, 7, 8, 9,
1090 10, 11, 12, -1, -1, -1, -1, 17, 18, 19,
1091 20, 21, 22, 23, 24, 25, 26, -1, -1, -1,
1092 30, 31, -1, 33, -1, 35, -1, -1, 38, -1,
1093 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1094 -1, -1, -1, 53, 54, 55, -1, -1, -1, 89,
1095 90, 91, 92, 93, -1, -1, 66, 67, -1, -1,
1096 -1, -1, 72, 73, 74, 75, 76, -1, -1, -1,
1097 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1098 90, 91, 92, 93, 94, -1, 96, 97, 98, 99,
1099 100, 101, -1, -1, -1, 105, 106, 107, 108, 109,
1100 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
1101 120, 3, -1, -1, -1, -1, -1, -1, -1, -1,
1102 12, -1, -1, -1, -1, 17, 18, -1, -1, -1,
1103 -1, -1, -1, -1, -1, 27, 28, 29, 30, 31,
1104 -1, 33, 34, 35, -1, -1, 38, -1, -1, -1,
1105 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1106 -1, 53, 54, 55, -1, -1, -1, -1, -1, -1,
1107 -1, -1, -1, -1, 66, 67, -1, -1, -1, -1,
1108 72, 73, 74, 75, 76, -1, -1, -1, -1, -1,
1109 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1110 -1, -1, 94, -1, 96, 97, 98, 99, 100, 101,
1111 -1, -1, -1, 105, 106, 107, 108, 109, 110, 111,
1112 112, 113, 114, 115, 116, 117, 118, 119, 120, 3,
1113 -1, -1, -1, -1, -1, -1, -1, -1, 12, -1,
1114 -1, -1, -1, 17, 18, -1, -1, -1, -1, -1,
1115 -1, -1, -1, 27, -1, -1, 30, 31, -1, 33,
1116 -1, 35, -1, -1, 38, -1, -1, -1, -1, -1,
1117 -1, -1, -1, -1, -1, -1, 50, -1, -1, 53,
1118 54, 55, -1, -1, -1, -1, -1, -1, -1, -1,
1119 -1, -1, 66, 67, -1, -1, -1, -1, 72, 73,
1120 74, 75, 76, -1, -1, -1, -1, -1, -1, -1,
1121 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1122 94, 95, 96, 97, 98, 99, 100, 101, -1, -1,
1123 -1, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1124 114, 115, 116, 117, 118, 119, 120, 3, -1, -1,
1125 -1, -1, -1, -1, -1, -1, 12, -1, -1, -1,
1126 -1, 17, 18, -1, -1, -1, -1, -1, -1, -1,
1127 -1, 27, -1, -1, 30, 31, -1, 33, -1, 35,
1128 -1, -1, 38, -1, -1, -1, -1, -1, -1, -1,
1129 -1, -1, -1, -1, -1, -1, -1, 53, 54, 55,
1130 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1131 66, 67, -1, -1, -1, -1, 72, 73, 74, 75,
1132 76, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1133 -1, -1, -1, -1, -1, -1, -1, -1, 94, 95,
1134 96, 97, 98, 99, 100, 101, -1, -1, -1, 105,
1135 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1136 116, 117, 118, 119, 120, 3, -1, -1, -1, -1,
1137 -1, -1, -1, -1, 12, -1, -1, -1, -1, 17,
1138 18, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1139 -1, -1, 30, 31, -1, 33, -1, 35, -1, -1,
1140 38, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1141 -1, -1, 50, -1, -1, 53, 54, 55, -1, -1,
1142 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
1143 -1, -1, 70, -1, 72, 73, 74, 75, 76, -1,
1144 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1145 -1, -1, -1, -1, -1, -1, 94, -1, 96, 97,
1146 98, 99, 100, 101, -1, -1, -1, 105, 106, 107,
1147 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1148 118, 119, 120, 3, -1, -1, -1, -1, -1, -1,
1149 -1, -1, 12, -1, -1, -1, -1, 17, 18, -1,
1150 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1151 30, 31, 32, 33, -1, 35, -1, -1, 38, -1,
1152 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1153 50, -1, -1, 53, 54, 55, -1, -1, -1, -1,
1154 -1, -1, -1, -1, -1, -1, 66, 67, -1, -1,
1155 -1, -1, 72, 73, 74, 75, 76, -1, -1, -1,
1156 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1157 -1, -1, -1, -1, 94, -1, 96, 97, 98, 99,
1158 100, 101, -1, -1, -1, 105, 106, 107, 108, 109,
1159 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
1160 120, 3, -1, -1, -1, -1, -1, -1, -1, -1,
1161 12, -1, -1, -1, -1, 17, 18, -1, -1, -1,
1162 -1, -1, -1, -1, -1, -1, -1, -1, 30, 31,
1163 -1, 33, -1, 35, -1, -1, 38, -1, -1, -1,
1164 -1, -1, -1, -1, -1, -1, -1, -1, 50, -1,
1165 -1, 53, 54, 55, -1, -1, -1, -1, -1, -1,
1166 -1, -1, -1, -1, 66, 67, -1, -1, -1, -1,
1167 72, 73, 74, 75, 76, -1, -1, -1, -1, -1,
1168 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1169 -1, -1, 94, -1, 96, 97, 98, 99, 100, 101,
1170 -1, -1, -1, 105, 106, 107, 108, 109, 110, 111,
1171 112, 113, 114, 115, 116, 117, 118, 119, 120, 3,
1172 -1, -1, -1, -1, -1, -1, -1, -1, 12, -1,
1173 -1, -1, -1, 17, 18, 19, 20, 21, 22, 23,
1174 24, 25, 26, -1, -1, -1, 30, -1, -1, -1,
1175 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1176 -1, 4, 5, 6, 7, 8, 9, 10, 11, -1,
1177 -1, 55, -1, -1, 17, -1, 19, 20, 21, 22,
1178 23, 24, 25, 26, -1, -1, -1, 30, 72, 73,
1179 74, 75, 76, -1, -1, -1, -1, -1, -1, -1,
1180 43, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1181 94, -1, 96, 97, 98, 99, 100, 101, -1, -1,
1182 -1, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1183 114, 115, 116, 117, 118, 119, 120, 3, -1, -1,
1184 -1, -1, -1, -1, -1, -1, 12, 90, 91, 92,
1185 93, 17, 18, -1, -1, -1, -1, -1, -1, -1,
1186 -1, -1, -1, -1, 30, 31, -1, 33, -1, 35,
1187 -1, -1, 38, -1, -1, -1, -1, -1, -1, -1,
1188 -1, -1, -1, -1, -1, -1, -1, 53, 54, 55,
1189 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1190 66, 67, -1, -1, -1, -1, 72, 73, 74, 75,
1191 76, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1192 -1, -1, -1, -1, -1, -1, -1, -1, 94, -1,
1193 96, 97, 98, 99, 100, 101, -1, -1, -1, 105,
1194 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1195 116, 117, 118, 119, 120, 3, -1, -1, -1, -1,
1196 -1, -1, -1, -1, 12, -1, -1, -1, -1, 17,
1197 18, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1198 -1, -1, 30, -1, -1, 33, -1, 35, -1, -1,
1199 38, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1200 -1, -1, -1, -1, -1, 53, 54, -1, -1, -1,
1201 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
1202 -1, -1, -1, -1, 72, 73, 74, 75, 76, 3,
1203 -1, -1, -1, -1, -1, -1, 84, -1, 12, -1,
1204 -1, -1, -1, 17, 18, -1, 94, -1, 96, 97,
1205 98, 99, 100, 101, -1, -1, 30, 105, 106, 107,
1206 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1207 118, 119, 120, -1, -1, -1, -1, -1, 3, -1,
1208 -1, 55, -1, -1, -1, -1, -1, 12, -1, -1,
1209 -1, -1, 17, 18, -1, -1, -1, -1, 72, 73,
1210 74, 75, 76, -1, -1, 30, -1, -1, -1, -1,
1211 -1, -1, -1, 38, -1, -1, -1, -1, -1, -1,
1212 94, -1, 96, 97, 98, 99, 100, 101, -1, -1,
1213 -1, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1214 114, 115, 116, 117, 118, 119, 120, 72, 73, 74,
1215 75, 76, -1, -1, -1, -1, -1, -1, -1, -1,
1216 -1, -1, -1, -1, -1, -1, -1, -1, -1, 94,
1217 -1, 96, 97, 98, 99, 100, 101, -1, -1, -1,
1218 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1219 115, 116, 117, 118, 119, 120, 3, -1, -1, -1,
1220 -1, -1, -1, -1, -1, 12, -1, -1, -1, -1,
1221 17, 18, -1, -1, -1, -1, -1, -1, -1, -1,
1222 -1, -1, -1, 30, -1, -1, -1, -1, -1, -1,
1223 -1, 38, -1, -1, -1, -1, -1, -1, -1, -1,
1224 -1, -1, -1, -1, -1, 3, -1, -1, -1, -1,
1225 -1, -1, -1, -1, 12, -1, -1, -1, -1, 17,
1226 18, -1, -1, -1, -1, 72, 73, 74, 75, 76,
1227 -1, -1, 30, -1, -1, -1, -1, -1, -1, -1,
1228 38, -1, -1, -1, -1, -1, -1, 94, -1, 96,
1229 97, 98, 99, 100, 101, -1, -1, -1, 105, 106,
1230 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1231 117, 118, 119, 120, 72, 73, 74, 75, 76, 3,
1232 -1, -1, -1, -1, -1, -1, -1, -1, 12, -1,
1233 -1, -1, -1, 17, 18, -1, 94, -1, 96, 97,
1234 98, 99, 100, 101, -1, -1, 30, 105, 106, 107,
1235 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1236 118, 119, 120, -1, -1, -1, -1, -1, -1, -1,
1237 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1238 4, 5, 6, 7, 8, 9, 10, 11, 72, 73,
1239 74, 75, 76, 17, -1, 19, 20, 21, 22, 23,
1240 24, 25, 26, -1, -1, -1, 30, -1, -1, -1,
1241 94, -1, 96, 97, 98, 99, 100, 101, -1, -1,
1242 -1, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1243 114, 115, 116, 117, 118, 119, 120, 4, 5, 6,
1244 7, 8, 9, 10, 11, -1, 70, -1, -1, -1,
1245 17, -1, 19, 20, 21, 22, 23, 24, 25, 26,
1246 -1, -1, -1, 30, -1, -1, 90, 91, 92, 93,
1247 4, 5, 6, 7, 8, 9, 10, 11, -1, -1,
1248 -1, -1, -1, 17, -1, 19, 20, 21, 22, 23,
1249 24, 25, 26, -1, -1, -1, 30, -1, -1, -1,
1250 -1, -1, -1, 70, -1, -1, -1, -1, -1, -1,
1251 -1, -1, -1, -1, 4, 5, 6, 7, 8, 9,
1252 10, 11, -1, 90, 91, 92, 93, 17, -1, 19,
1253 20, 21, 22, 23, 24, 25, 26, -1, -1, -1,
1254 30, -1, -1, -1, -1, -1, -1, 4, 5, 6,
1255 7, 8, 9, 10, 11, -1, 90, 91, 92, 93,
1256 17, -1, 19, 20, 21, 22, 23, 24, 25, 26,
1257 -1, -1, -1, 30, -1, -1, -1, -1, -1, -1,
1258 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1259 -1, 4, 5, 6, 7, 8, 9, 10, 11, -1,
1260 90, 91, 92, 93, 17, -1, 19, 20, 21, 22,
1261 23, 24, 25, 26, -1, -1, -1, 30, -1, -1,
1262 -1, -1, -1, -1, 4, 5, 6, 7, 8, 9,
1263 10, 11, -1, 90, 91, 92, 93, 17, -1, 19,
1264 20, 21, 22, 23, 24, 25, 26, 37, -1, -1,
1265 30, -1, -1, -1, -1, -1, -1, -1, 48, 49,
1266 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1267 60, 61, 62, 63, 64, 65, 39, 90, 91, 92,
1268 93, 71, -1, -1, -1, 48, 49, 50, 51, 52,
1269 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1270 63, 64, 65, -1, 39, -1, -1, -1, 71, -1,
1271 90, 91, 92, 48, 49, 50, 51, 52, 53, 54,
1272 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1273 65, 39, -1, -1, -1, -1, 71, -1, -1, -1,
1274 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1275 58, 59, 60, 61, 62, 63, 64, 65, 41, -1,
1276 -1, -1, -1, 71, -1, 48, 49, 50, 51, 52,
1277 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1278 63, 64, 65, 41, -1, -1, -1, -1, 71, -1,
1279 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1280 58, 59, 60, 61, 62, 63, 64, 65, -1, -1,
1281 -1, -1, -1, 71, 48, 49, 50, 51, 52, 53,
1282 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1283 64, 65, -1, -1, -1, -1, -1, 71, 48, 49,
1284 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1285 60, 61, 62, 63, 64, 65, -1, -1, -1, -1,
1286 -1, 71, 48, 49, 50, 51, 52, 53, 54, 55,
1287 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1288 -1, -1, -1, -1, -1, 71, 48, 49, 50, 51,
1289 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1290 62, 63, 64, 65, -1, -1, -1, -1, -1, 71
1293 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1294 symbol of state STATE-NUM. */
1295 static const unsigned char yystos
[] =
1297 0, 4, 5, 6, 7, 8, 9, 10, 11, 17,
1298 19, 20, 21, 22, 23, 24, 25, 26, 30, 36,
1299 37, 47, 89, 90, 91, 92, 93, 94, 95, 97,
1300 121, 126, 137, 138, 139, 140, 141, 159, 164, 166,
1301 167, 168, 169, 170, 171, 172, 173, 174, 179, 182,
1302 183, 186, 187, 188, 189, 190, 191, 194, 196, 197,
1303 203, 208, 218, 219, 9, 11, 3, 12, 17, 18,
1304 30, 38, 55, 72, 73, 74, 75, 76, 94, 96,
1305 97, 98, 99, 100, 101, 105, 106, 107, 108, 109,
1306 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
1307 120, 135, 216, 217, 234, 244, 30, 90, 91, 92,
1308 93, 187, 194, 36, 72, 73, 74, 75, 76, 77,
1309 78, 79, 80, 81, 82, 83, 85, 86, 87, 88,
1310 142, 143, 144, 145, 147, 148, 149, 90, 91, 165,
1311 166, 188, 189, 194, 203, 209, 210, 135, 135, 135,
1312 211, 3, 6, 10, 12, 17, 160, 161, 167, 34,
1313 219, 50, 252, 253, 30, 89, 186, 0, 139, 135,
1314 195, 215, 216, 4, 5, 6, 9, 175, 6, 172,
1315 178, 37, 129, 180, 38, 38, 42, 42, 215, 216,
1316 38, 135, 55, 128, 135, 135, 135, 40, 184, 27,
1317 28, 29, 126, 128, 135, 150, 151, 36, 0, 3,
1318 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1319 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1320 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1321 34, 35, 37, 38, 39, 40, 41, 42, 43, 44,
1322 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1323 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1324 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1325 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1326 85, 87, 89, 90, 91, 92, 93, 94, 95, 96,
1327 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1328 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1329 117, 118, 119, 120, 121, 124, 126, 127, 128, 129,
1330 136, 154, 155, 154, 34, 124, 146, 135, 150, 33,
1331 35, 38, 53, 54, 66, 67, 84, 134, 135, 156,
1332 135, 211, 135, 211, 37, 171, 135, 41, 213, 213,
1333 213, 213, 216, 31, 37, 42, 31, 165, 180, 44,
1334 214, 38, 135, 6, 176, 6, 9, 177, 175, 38,
1335 37, 17, 93, 166, 192, 193, 194, 192, 135, 204,
1336 205, 98, 99, 100, 101, 102, 103, 104, 225, 226,
1337 227, 240, 241, 247, 248, 249, 135, 215, 185, 195,
1338 216, 123, 154, 136, 156, 38, 135, 156, 38, 48,
1339 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1340 59, 60, 61, 62, 63, 64, 65, 71, 133, 41,
1341 42, 199, 199, 37, 198, 199, 198, 38, 135, 46,
1342 225, 38, 37, 37, 33, 215, 214, 34, 181, 216,
1343 17, 215, 39, 40, 39, 40, 46, 40, 43, 195,
1344 230, 31, 33, 35, 38, 134, 195, 206, 207, 222,
1345 242, 243, 244, 252, 195, 135, 250, 251, 18, 243,
1346 244, 43, 226, 206, 39, 135, 40, 38, 39, 135,
1347 156, 157, 158, 156, 156, 38, 165, 200, 195, 195,
1348 215, 27, 28, 29, 34, 162, 163, 206, 43, 3,
1349 6, 10, 12, 13, 14, 15, 16, 17, 39, 220,
1350 221, 223, 224, 45, 135, 34, 39, 216, 214, 17,
1351 70, 193, 214, 70, 206, 205, 46, 37, 30, 93,
1352 166, 206, 206, 71, 133, 46, 37, 38, 32, 46,
1353 38, 37, 40, 37, 37, 39, 195, 135, 152, 153,
1354 39, 39, 40, 41, 33, 41, 212, 43, 165, 135,
1355 37, 41, 39, 40, 222, 39, 39, 39, 27, 95,
1356 96, 114, 206, 229, 231, 232, 233, 234, 253, 39,
1357 39, 206, 206, 242, 195, 252, 185, 251, 39, 40,
1358 156, 156, 40, 33, 41, 40, 201, 212, 39, 223,
1359 41, 221, 223, 46, 214, 214, 114, 231, 17, 18,
1360 234, 237, 38, 38, 229, 206, 41, 40, 245, 195,
1361 39, 154, 135, 33, 41, 38, 195, 202, 37, 201,
1362 223, 252, 162, 38, 206, 222, 206, 70, 242, 246,
1363 39, 37, 39, 41, 33, 212, 40, 37, 70, 222,
1364 40, 40, 235, 39, 40, 38, 40, 195, 32, 38,
1365 206, 195, 228, 229, 230, 236, 253, 39, 242, 33,
1366 33, 212, 39, 238, 239, 242, 39, 40, 229, 40,
1367 39, 41, 39, 40, 228, 33, 223, 39, 242, 39
1370 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1371 static const unsigned char yyr1
[] =
1373 0, 132, 133, 133, 133, 133, 133, 133, 133, 133,
1374 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
1375 134, 134, 134, 134, 135, 135, 135, 135, 135, 135,
1376 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
1377 135, 135, 136, 136, 136, 136, 136, 136, 136, 136,
1378 136, 136, 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, 137, 137, 138, 138, 139, 139,
1390 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
1391 139, 140, 141, 141, 142, 142, 142, 142, 142, 142,
1392 142, 142, 143, 143, 144, 144, 145, 145, 145, 146,
1393 146, 147, 147, 148, 148, 148, 149, 149, 150, 150,
1394 150, 150, 150, 150, 151, 151, 152, 152, 153, 153,
1395 154, 154, 155, 155, 156, 156, 156, 156, 156, 156,
1396 156, 156, 156, 156, 157, 157, 158, 158, 159, 160,
1397 161, 161, 161, 161, 162, 162, 162, 163, 163, 163,
1398 163, 164, 164, 165, 165, 165, 165, 165, 165, 166,
1399 166, 167, 167, 168, 168, 168, 169, 169, 169, 169,
1400 170, 170, 170, 171, 171, 171, 171, 171, 171, 171,
1401 171, 172, 172, 173, 173, 173, 174, 174, 174, 174,
1402 175, 175, 175, 175, 175, 176, 176, 177, 177, 177,
1403 178, 178, 178, 179, 179, 180, 180, 181, 181, 182,
1404 183, 184, 184, 185, 185, 186, 186, 187, 187, 188,
1405 188, 189, 189, 190, 190, 190, 190, 191, 191, 192,
1406 192, 192, 192, 193, 193, 193, 193, 194, 194, 194,
1407 194, 195, 195, 196, 197, 198, 198, 199, 200, 200,
1408 201, 201, 202, 202, 203, 204, 204, 205, 205, 206,
1409 206, 206, 206, 206, 206, 207, 207, 207, 207, 208,
1410 209, 210, 211, 211, 212, 212, 212, 212, 213, 213,
1411 214, 214, 215, 215, 216, 216, 217, 217, 218, 218,
1412 219, 219, 219, 220, 220, 221, 221, 222, 223, 224,
1413 224, 224, 224, 224, 224, 224, 224, 224, 225, 225,
1414 226, 226, 226, 226, 226, 227, 227, 228, 228, 228,
1415 229, 229, 229, 229, 229, 229, 230, 230, 231, 232,
1416 233, 234, 234, 234, 234, 234, 234, 234, 234, 234,
1417 234, 235, 235, 236, 236, 237, 237, 238, 238, 239,
1418 239, 240, 241, 242, 242, 242, 243, 243, 244, 244,
1419 244, 244, 244, 244, 244, 244, 245, 245, 246, 246,
1420 247, 248, 248, 249, 250, 250, 251, 252, 252, 253
1423 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
1424 static const unsigned char yyr2
[] =
1426 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1427 1, 1, 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, 0, 1, 1, 2, 1, 1,
1443 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1444 1, 3, 2, 3, 2, 2, 1, 2, 2, 2,
1445 1, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1446 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1447 1, 1, 1, 1, 6, 2, 0, 1, 1, 3,
1448 0, 1, 1, 2, 3, 2, 3, 5, 2, 4,
1449 1, 1, 1, 4, 0, 1, 1, 3, 6, 1,
1450 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
1451 1, 3, 4, 1, 1, 2, 4, 4, 2, 2,
1452 1, 1, 1, 2, 2, 2, 1, 1, 1, 1,
1453 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
1454 1, 1, 1, 1, 1, 2, 1, 1, 2, 2,
1455 0, 1, 2, 1, 2, 0, 1, 0, 1, 1,
1456 0, 1, 2, 3, 4, 0, 4, 1, 2, 2,
1457 3, 0, 2, 1, 3, 1, 2, 1, 1, 5,
1458 7, 5, 7, 6, 7, 6, 5, 1, 2, 0,
1459 1, 1, 3, 1, 2, 3, 2, 1, 2, 4,
1460 3, 3, 2, 4, 4, 1, 1, 3, 4, 5,
1461 0, 2, 2, 4, 4, 1, 3, 1, 3, 1,
1462 4, 3, 3, 2, 5, 1, 1, 1, 1, 2,
1463 2, 2, 0, 1, 0, 2, 7, 9, 0, 7,
1464 0, 3, 0, 1, 1, 2, 1, 2, 4, 5,
1465 7, 8, 13, 1, 3, 2, 4, 2, 1, 1,
1466 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
1467 1, 1, 1, 1, 1, 3, 6, 1, 2, 1,
1468 1, 1, 2, 1, 1, 1, 3, 4, 6, 8,
1469 5, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1470 1, 0, 2, 1, 3, 1, 1, 0, 1, 1,
1471 3, 3, 3, 1, 1, 3, 5, 6, 1, 1,
1472 1, 1, 1, 1, 1, 1, 0, 2, 1, 3,
1473 3, 1, 1, 3, 1, 3, 4, 0, 1, 1
1477 /* YYDPREC[RULE-NUM] -- Dynamic precedence of rule #RULE-NUM (0 if none). */
1478 static const unsigned char yydprec
[] =
1480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1505 0, 0, 0, 0, 0, 0, 0, 0, 0, 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
1530 /* YYMERGER[RULE-NUM] -- Index of merging function for rule #RULE-NUM. */
1531 static const unsigned char yymerger
[] =
1533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1534 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1541 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1546 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1548 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1550 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1551 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1552 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1553 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1554 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1555 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1559 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1560 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1563 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1565 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1567 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1570 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1571 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1572 0, 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
1583 /* YYIMMEDIATE[RULE-NUM] -- True iff rule #RULE-NUM is not to be deferred, as
1584 in the case of predicates. */
1585 static const yybool yyimmediate
[] =
1587 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1588 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1589 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1590 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1593 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1595 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1596 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1598 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1600 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1601 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1602 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1603 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1604 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1605 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1606 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1607 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1608 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1609 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1611 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1612 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1613 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1614 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1615 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1616 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1617 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1618 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1619 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1620 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1621 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1622 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1623 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1624 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1625 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1626 0, 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
1637 /* YYCONFLP[YYPACT[STATE-NUM]] -- Pointer into YYCONFL of start of
1638 list of conflicting reductions corresponding to action entry for
1639 state STATE-NUM in yytable. 0 means no conflicts. The list in
1640 yyconfl is terminated by a rule number of 0. */
1641 static const unsigned short int yyconflp
[] =
1643 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1647 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1648 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1649 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1650 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1651 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1654 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1656 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1657 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1658 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1659 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1662 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1667 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1668 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1670 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1671 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1673 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1674 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1676 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1677 0, 0, 0, 259, 0, 0, 0, 0, 0, 0,
1678 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1679 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1680 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1681 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1682 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1683 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1684 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1685 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1686 0, 0, 0, 0, 0, 0, 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, 7, 0, 0, 9,
1709 11, 13, 15, 17, 19, 21, 23, 25, 27, 29,
1710 31, 33, 35, 37, 39, 41, 43, 45, 47, 49,
1711 51, 53, 55, 57, 59, 61, 63, 65, 67, 69,
1712 71, 73, 75, 77, 79, 81, 83, 85, 87, 89,
1713 91, 93, 95, 97, 99, 101, 103, 105, 107, 109,
1714 111, 113, 115, 117, 119, 121, 123, 125, 127, 129,
1715 131, 133, 135, 137, 139, 141, 143, 145, 147, 149,
1716 151, 153, 155, 157, 159, 161, 163, 165, 167, 169,
1717 171, 173, 0, 175, 0, 177, 179, 181, 183, 185,
1718 187, 189, 191, 193, 195, 197, 199, 201, 203, 205,
1719 207, 209, 211, 213, 215, 217, 219, 221, 223, 225,
1720 227, 229, 231, 233, 235, 237, 239, 241, 0, 243,
1721 245, 0, 247, 249, 251, 253, 0, 0, 0, 0,
1722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1725 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1726 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1728 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1734 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1737 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1740 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1743 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1748 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1759 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1762 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1763 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1766 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1767 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1769 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1770 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1777 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1778 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1780 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1781 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1799 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1803 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1807 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1808 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1810 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1812 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1813 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1814 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1815 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1825 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1863 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1865 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1866 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1870 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1876 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1877 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1878 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1879 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0,
1910 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
1911 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1912 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1914 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1917 255, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1918 0, 0, 0, 257, 0, 0, 0, 0, 0, 0,
1919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1921 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1922 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1923 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1924 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1926 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1930 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1931 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1932 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1935 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1936 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1938 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1940 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1941 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1942 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1944 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1945 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1946 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1947 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1949 0, 0, 0, 0, 0, 261, 0, 0, 0, 0,
1950 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1951 0, 0, 0, 0, 0, 0, 0, 0, 0, 263
1954 /* YYCONFL[I] -- lists of conflicting rule numbers, each terminated by
1955 0, pointed into by YYCONFLP. */
1956 static const short int yyconfl
[] =
1958 0, 269, 0, 269, 0, 337, 0, 464, 0, 464,
1959 0, 464, 0, 464, 0, 464, 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, 269, 0, 269, 0, 269,
1987 /* Error token number */
1994 #define yynerrs (yystackp->yyerrcnt)
1996 #define yychar (yystackp->yyrawchar)
1998 #define yylval (yystackp->yyval)
2000 #define yylloc (yystackp->yyloc)
2001 #define psi_parser_proc_nerrs yynerrs
2002 #define psi_parser_proc_char yychar
2003 #define psi_parser_proc_lval yylval
2004 #define psi_parser_proc_lloc yylloc
2006 static const int YYEOF
= 0;
2007 static const int YYEMPTY
= -2;
2009 typedef enum { yyok
, yyaccept
, yyabort
, yyerr
} YYRESULTTAG
;
2011 #define YYCHK(YYE) \
2013 YYRESULTTAG yychk_flag = YYE; \
2014 if (yychk_flag != yyok) \
2015 return yychk_flag; \
2021 # define YYFPRINTF fprintf
2024 /* This macro is provided for backward compatibility. */
2025 #ifndef YY_LOCATION_PRINT
2026 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2030 # define YYDPRINTF(Args) \
2037 /*----------------------------------------.
2038 | Print this symbol's value on YYOUTPUT. |
2039 `----------------------------------------*/
2042 yy_symbol_value_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
2044 FILE *yyo
= yyoutput
;
2055 /*--------------------------------.
2056 | Print this symbol on YYOUTPUT. |
2057 `--------------------------------*/
2060 yy_symbol_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
2062 YYFPRINTF (yyoutput
, "%s %s (",
2063 yytype
< YYNTOKENS
? "token" : "nterm", yytname
[yytype
]);
2065 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
, P
, tokens
, index
);
2066 YYFPRINTF (yyoutput
, ")");
2069 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2073 YYFPRINTF (stderr, "%s ", Title); \
2074 yy_symbol_print (stderr, Type, Value, P, tokens, index); \
2075 YYFPRINTF (stderr, "\n"); \
2079 /* Nonzero means print parse trace. It is left uninitialized so that
2080 multiple parsers can coexist. */
2084 static void yypstack (struct yyGLRStack
* yystackp
, size_t yyk
)
2085 YY_ATTRIBUTE_UNUSED
;
2086 static void yypdumpstack (struct yyGLRStack
* yystackp
)
2087 YY_ATTRIBUTE_UNUSED
;
2089 #else /* !YYDEBUG */
2091 # define YYDPRINTF(Args)
2092 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2094 #endif /* !YYDEBUG */
2096 /* YYINITDEPTH -- initial size of the parser's stacks. */
2098 # define YYINITDEPTH 200
2101 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2102 if the built-in stack extension method is used).
2104 Do not make this value too large; the results are undefined if
2105 SIZE_MAX < YYMAXDEPTH * sizeof (GLRStackItem)
2106 evaluated with infinite-precision integer arithmetic. */
2109 # define YYMAXDEPTH 10000
2112 /* Minimum number of free items on the stack allowed after an
2113 allocation. This is to allow allocation and initialization
2114 to be completed by functions that call yyexpandGLRStack before the
2115 stack is expanded, thus insuring that all necessary pointers get
2116 properly redirected to new data. */
2117 #define YYHEADROOM 2
2119 #ifndef YYSTACKEXPANDABLE
2120 # define YYSTACKEXPANDABLE 1
2123 #if YYSTACKEXPANDABLE
2124 # define YY_RESERVE_GLRSTACK(Yystack) \
2126 if (Yystack->yyspaceLeft < YYHEADROOM) \
2127 yyexpandGLRStack (Yystack); \
2130 # define YY_RESERVE_GLRSTACK(Yystack) \
2132 if (Yystack->yyspaceLeft < YYHEADROOM) \
2133 yyMemoryExhausted (Yystack); \
2141 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2142 # define yystpcpy stpcpy
2144 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2147 yystpcpy (char *yydest
, const char *yysrc
)
2150 const char *yys
= yysrc
;
2152 while ((*yyd
++ = *yys
++) != '\0')
2161 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2162 quotes and backslashes, so that it's suitable for yyerror. The
2163 heuristic is that double-quoting is unnecessary unless the string
2164 contains an apostrophe, a comma, or backslash (other than
2165 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2166 null, do not copy; instead, return the length of what the result
2169 yytnamerr (char *yyres
, const char *yystr
)
2174 char const *yyp
= yystr
;
2181 goto do_not_strip_quotes
;
2185 goto do_not_strip_quotes
;
2198 do_not_strip_quotes
: ;
2202 return strlen (yystr
);
2204 return yystpcpy (yyres
, yystr
) - yyres
;
2208 #endif /* !YYERROR_VERBOSE */
2210 /** State numbers, as in LALR(1) machine */
2211 typedef int yyStateNum
;
2213 /** Rule numbers, as in LALR(1) machine */
2214 typedef int yyRuleNum
;
2216 /** Grammar symbol */
2217 typedef int yySymbol
;
2219 /** Item references, as in LALR(1) machine */
2220 typedef short int yyItemNum
;
2222 typedef struct yyGLRState yyGLRState
;
2223 typedef struct yyGLRStateSet yyGLRStateSet
;
2224 typedef struct yySemanticOption yySemanticOption
;
2225 typedef union yyGLRStackItem yyGLRStackItem
;
2226 typedef struct yyGLRStack yyGLRStack
;
2229 /** Type tag: always true. */
2231 /** Type tag for yysemantics. If true, yysval applies, otherwise
2232 * yyfirstVal applies. */
2234 /** Number of corresponding LALR(1) machine state. */
2235 yyStateNum yylrState
;
2236 /** Preceding state in this stack */
2238 /** Source position of the last token produced by my symbol */
2241 /** First in a chain of alternative reductions producing the
2242 * non-terminal corresponding to this state, threaded through
2244 yySemanticOption
* yyfirstVal
;
2245 /** Semantic value for this state. */
2250 struct yyGLRStateSet
{
2251 yyGLRState
** yystates
;
2252 /** During nondeterministic operation, yylookaheadNeeds tracks which
2253 * stacks have actually needed the current lookahead. During deterministic
2254 * operation, yylookaheadNeeds[0] is not maintained since it would merely
2255 * duplicate yychar != YYEMPTY. */
2256 yybool
* yylookaheadNeeds
;
2257 size_t yysize
, yycapacity
;
2260 struct yySemanticOption
{
2261 /** Type tag: always false. */
2263 /** Rule number for this reduction */
2265 /** The last RHS state in the list of states to be reduced. */
2266 yyGLRState
* yystate
;
2267 /** The lookahead for this reduction. */
2270 /** Next sibling in chain of options. To facilitate merging,
2271 * options are chained in decreasing order by address. */
2272 yySemanticOption
* yynext
;
2275 /** Type of the items in the GLR stack. The yyisState field
2276 * indicates which item of the union is valid. */
2277 union yyGLRStackItem
{
2279 yySemanticOption yyoption
;
2290 YYJMP_BUF yyexception_buffer
;
2291 yyGLRStackItem
* yyitems
;
2292 yyGLRStackItem
* yynextFree
;
2294 yyGLRState
* yysplitPoint
;
2295 yyGLRState
* yylastDeleted
;
2296 yyGLRStateSet yytops
;
2299 #if YYSTACKEXPANDABLE
2300 static void yyexpandGLRStack (yyGLRStack
* yystackp
);
2303 static _Noreturn
void
2304 yyFail (yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
, const char* yymsg
)
2306 if (yymsg
!= YY_NULLPTR
)
2307 yyerror (P
, tokens
, index
, yymsg
);
2308 YYLONGJMP (yystackp
->yyexception_buffer
, 1);
2311 static _Noreturn
void
2312 yyMemoryExhausted (yyGLRStack
* yystackp
)
2314 YYLONGJMP (yystackp
->yyexception_buffer
, 2);
2317 #if YYDEBUG || YYERROR_VERBOSE
2318 /** A printable representation of TOKEN. */
2319 static inline const char*
2320 yytokenName (yySymbol yytoken
)
2322 if (yytoken
== YYEMPTY
)
2325 return yytname
[yytoken
];
2329 /** Fill in YYVSP[YYLOW1 .. YYLOW0-1] from the chain of states starting
2330 * at YYVSP[YYLOW0].yystate.yypred. Leaves YYVSP[YYLOW1].yystate.yypred
2331 * containing the pointer to the next state in the chain. */
2332 static void yyfillin (yyGLRStackItem
*, int, int) YY_ATTRIBUTE_UNUSED
;
2334 yyfillin (yyGLRStackItem
*yyvsp
, int yylow0
, int yylow1
)
2337 yyGLRState
*s
= yyvsp
[yylow0
].yystate
.yypred
;
2338 for (i
= yylow0
-1; i
>= yylow1
; i
-= 1)
2341 yyvsp
[i
].yystate
.yylrState
= s
->yylrState
;
2343 yyvsp
[i
].yystate
.yyresolved
= s
->yyresolved
;
2345 yyvsp
[i
].yystate
.yysemantics
.yysval
= s
->yysemantics
.yysval
;
2347 /* The effect of using yysval or yyloc (in an immediate rule) is
2349 yyvsp
[i
].yystate
.yysemantics
.yyfirstVal
= YY_NULLPTR
;
2350 s
= yyvsp
[i
].yystate
.yypred
= s
->yypred
;
2354 /* Do nothing if YYNORMAL or if *YYLOW <= YYLOW1. Otherwise, fill in
2355 * YYVSP[YYLOW1 .. *YYLOW-1] as in yyfillin and set *YYLOW = YYLOW1.
2356 * For convenience, always return YYLOW1. */
2357 static inline int yyfill (yyGLRStackItem
*, int *, int, yybool
)
2358 YY_ATTRIBUTE_UNUSED
;
2360 yyfill (yyGLRStackItem
*yyvsp
, int *yylow
, int yylow1
, yybool yynormal
)
2362 if (!yynormal
&& yylow1
< *yylow
)
2364 yyfillin (yyvsp
, *yylow
, yylow1
);
2370 /** Perform user action for rule number YYN, with RHS length YYRHSLEN,
2371 * and top stack item YYVSP. YYLVALP points to place to put semantic
2372 * value ($$), and yylocp points to place for location information
2373 * (@$). Returns yyok for normal return, yyaccept for YYACCEPT,
2374 * yyerr for YYERROR, yyabort for YYABORT. */
2376 yyuserAction (yyRuleNum yyn
, size_t yyrhslen
, yyGLRStackItem
* yyvsp
,
2377 yyGLRStack
* yystackp
,
2378 YYSTYPE
* yyvalp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
2380 yybool yynormal YY_ATTRIBUTE_UNUSED
= (yystackp
->yysplitPoint
== YY_NULLPTR
);
2388 # define yyerrok (yystackp->yyerrState = 0)
2390 # define YYACCEPT return yyaccept
2392 # define YYABORT return yyabort
2394 # define YYERROR return yyerrok, yyerr
2395 # undef YYRECOVERING
2396 # define YYRECOVERING() (yystackp->yyerrState != 0)
2398 # define yyclearin (yychar = YYEMPTY)
2400 # define YYFILL(N) yyfill (yyvsp, &yylow, N, yynormal)
2402 # define YYBACKUP(Token, Value) \
2403 return yyerror (P, tokens, index, YY_("syntax error: cannot back up")), \
2408 *yyvalp
= yyval_default
;
2410 *yyvalp
= yyvsp
[YYFILL (1-yyrhslen
)].yystate
.yysemantics
.yysval
;
2414 #line 409 "src/parser_proc_grammar.y" /* glr.c:816 */
2416 if ((*(struct psi_cpp_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2417 psi_cpp_exp_exec((*(struct psi_cpp_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), P
->preproc
, PSI_DATA(P
));
2418 psi_cpp_exp_free(&(*(struct psi_cpp_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2421 #line 2422 "src/parser_proc.c" /* glr.c:816 */
2425 #line 415 "src/parser_proc_grammar.y" /* glr.c:816 */
2428 P
->error(PSI_DATA(P
), (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), PSI_WARNING
,
2429 "Extra 'lib \"%s\"' statement has no effect", (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
);
2431 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
);
2434 #line 2435 "src/parser_proc.c" /* glr.c:816 */
2438 #line 423 "src/parser_proc_grammar.y" /* glr.c:816 */
2440 psi_parser_proc_add_const(P
, (*(struct psi_const
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2442 #line 2443 "src/parser_proc.c" /* glr.c:816 */
2446 #line 426 "src/parser_proc_grammar.y" /* glr.c:816 */
2448 psi_parser_proc_add_decl(P
, (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2450 #line 2451 "src/parser_proc.c" /* glr.c:816 */
2454 #line 430 "src/parser_proc_grammar.y" /* glr.c:816 */
2456 psi_parser_proc_add_typedef(P
, (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2458 #line 2459 "src/parser_proc.c" /* glr.c:816 */
2462 #line 433 "src/parser_proc_grammar.y" /* glr.c:816 */
2464 psi_parser_proc_add_struct(P
, (*(struct psi_decl_struct
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2466 #line 2467 "src/parser_proc.c" /* glr.c:816 */
2470 #line 436 "src/parser_proc_grammar.y" /* glr.c:816 */
2472 psi_parser_proc_add_union(P
, (*(struct psi_decl_union
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2474 #line 2475 "src/parser_proc.c" /* glr.c:816 */
2478 #line 439 "src/parser_proc_grammar.y" /* glr.c:816 */
2480 psi_parser_proc_add_enum(P
, (*(struct psi_decl_enum
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2482 #line 2483 "src/parser_proc.c" /* glr.c:816 */
2486 #line 442 "src/parser_proc_grammar.y" /* glr.c:816 */
2488 psi_parser_proc_add_impl(P
, (*(struct psi_impl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2490 #line 2491 "src/parser_proc.c" /* glr.c:816 */
2494 #line 448 "src/parser_proc_grammar.y" /* glr.c:816 */
2496 (*(struct psi_token
**)(&(*yyvalp
))) = (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2498 #line 2499 "src/parser_proc.c" /* glr.c:816 */
2502 #line 454 "src/parser_proc_grammar.y" /* glr.c:816 */
2504 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = NULL
;
2506 #line 2507 "src/parser_proc.c" /* glr.c:816 */
2510 #line 457 "src/parser_proc_grammar.y" /* glr.c:816 */
2512 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = (*(struct psi_cpp_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2514 #line 2515 "src/parser_proc.c" /* glr.c:816 */
2518 #line 463 "src/parser_proc_grammar.y" /* glr.c:816 */
2520 if ((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2521 struct psi_token
*msg
= NULL
;
2523 if (psi_plist_get((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), 0, &msg
)) {
2525 struct psi_token
*next
;
2527 msg
= psi_token_copy(msg
);
2528 while (psi_plist_get((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), index
++, &next
)) {
2529 struct psi_token
*old
= msg
;
2530 msg
= psi_token_cat(" ", 2, msg
, next
);
2534 psi_plist_free((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2536 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, msg
);
2538 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, NULL
);
2540 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2542 #line 2543 "src/parser_proc.c" /* glr.c:816 */
2546 #line 486 "src/parser_proc_grammar.y" /* glr.c:816 */
2548 (*(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
))));
2549 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2551 #line 2552 "src/parser_proc.c" /* glr.c:816 */
2555 #line 490 "src/parser_proc_grammar.y" /* glr.c:816 */
2557 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
, NULL
);
2558 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2560 #line 2561 "src/parser_proc.c" /* glr.c:816 */
2564 #line 494 "src/parser_proc_grammar.y" /* glr.c:816 */
2566 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2567 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))));
2568 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2570 #line 2571 "src/parser_proc.c" /* glr.c:816 */
2574 #line 499 "src/parser_proc_grammar.y" /* glr.c:816 */
2576 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_cpp_macro_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2577 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2579 #line 2580 "src/parser_proc.c" /* glr.c:816 */
2583 #line 503 "src/parser_proc_grammar.y" /* glr.c:816 */
2585 (*(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
)));
2586 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2588 #line 2589 "src/parser_proc.c" /* glr.c:816 */
2592 #line 507 "src/parser_proc_grammar.y" /* glr.c:816 */
2594 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
, NULL
);
2595 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2597 #line 2598 "src/parser_proc.c" /* glr.c:816 */
2601 #line 511 "src/parser_proc_grammar.y" /* glr.c:816 */
2603 psi_plist_free((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2604 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = NULL
;
2606 #line 2607 "src/parser_proc.c" /* glr.c:816 */
2610 #line 564 "src/parser_proc_grammar.y" /* glr.c:816 */
2612 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2613 (*(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
);
2614 (*(struct psi_cpp_macro_decl
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
2616 #line 2617 "src/parser_proc.c" /* glr.c:816 */
2620 #line 569 "src/parser_proc_grammar.y" /* glr.c:816 */
2622 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2623 (*(struct psi_cpp_macro_decl
**)(&(*yyvalp
))) = psi_cpp_macro_decl_init(NULL
, (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), NULL
);
2624 (*(struct psi_cpp_macro_decl
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2626 #line 2627 "src/parser_proc.c" /* glr.c:816 */
2630 #line 577 "src/parser_proc_grammar.y" /* glr.c:816 */
2632 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_init(NULL
);
2634 #line 2635 "src/parser_proc.c" /* glr.c:816 */
2638 #line 584 "src/parser_proc_grammar.y" /* glr.c:816 */
2640 (*(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
)));
2641 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2642 (*(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
)));
2644 #line 2645 "src/parser_proc.c" /* glr.c:816 */
2648 #line 589 "src/parser_proc_grammar.y" /* glr.c:816 */
2650 (*(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
)));
2651 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2652 (*(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
)));
2654 #line 2655 "src/parser_proc.c" /* glr.c:816 */
2658 #line 597 "src/parser_proc_grammar.y" /* glr.c:816 */
2660 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
2662 #line 2663 "src/parser_proc.c" /* glr.c:816 */
2666 #line 604 "src/parser_proc_grammar.y" /* glr.c:816 */
2668 (*(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
)));
2669 (*(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
)));
2671 #line 2672 "src/parser_proc.c" /* glr.c:816 */
2675 #line 608 "src/parser_proc_grammar.y" /* glr.c:816 */
2677 (*(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
)));
2678 (*(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
)));
2680 #line 2681 "src/parser_proc.c" /* glr.c:816 */
2684 #line 615 "src/parser_proc_grammar.y" /* glr.c:816 */
2686 (*(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
)));
2687 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
2689 #line 2690 "src/parser_proc.c" /* glr.c:816 */
2693 #line 619 "src/parser_proc_grammar.y" /* glr.c:816 */
2695 (*(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
)));
2696 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2698 #line 2699 "src/parser_proc.c" /* glr.c:816 */
2702 #line 623 "src/parser_proc_grammar.y" /* glr.c:816 */
2704 (*(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
)));
2705 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2707 #line 2708 "src/parser_proc.c" /* glr.c:816 */
2711 #line 627 "src/parser_proc_grammar.y" /* glr.c:816 */
2713 (*(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
)));
2714 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2716 #line 2717 "src/parser_proc.c" /* glr.c:816 */
2720 #line 632 "src/parser_proc_grammar.y" /* glr.c:816 */
2725 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2726 exists
= psi_cpp_defined(P
->preproc
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2727 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8
, &exists
, 0));
2728 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2731 #line 2732 "src/parser_proc.c" /* glr.c:816 */
2735 #line 642 "src/parser_proc_grammar.y" /* glr.c:816 */
2740 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2741 exists
= psi_cpp_defined(P
->preproc
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2742 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8
, &exists
, 0));
2743 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2746 #line 2747 "src/parser_proc.c" /* glr.c:816 */
2750 #line 652 "src/parser_proc_grammar.y" /* glr.c:816 */
2752 (*(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
));
2753 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2754 (*(struct psi_num_exp
**)(&(*yyvalp
)))->data
.n
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2756 #line 2757 "src/parser_proc.c" /* glr.c:816 */
2760 #line 657 "src/parser_proc_grammar.y" /* glr.c:816 */
2762 (*(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));
2763 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2764 (*(struct psi_num_exp
**)(&(*yyvalp
)))->data
.n
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2766 #line 2767 "src/parser_proc.c" /* glr.c:816 */
2770 #line 662 "src/parser_proc_grammar.y" /* glr.c:816 */
2772 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2773 (*(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));
2774 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2775 (*(struct psi_num_exp
**)(&(*yyvalp
)))->data
.n
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2777 #line 2778 "src/parser_proc.c" /* glr.c:816 */
2781 #line 668 "src/parser_proc_grammar.y" /* glr.c:816 */
2783 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2784 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num(psi_number_init(PSI_T_FUNCTION
,
2785 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));
2786 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2788 #line 2789 "src/parser_proc.c" /* glr.c:816 */
2792 #line 677 "src/parser_proc_grammar.y" /* glr.c:816 */
2794 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
2796 #line 2797 "src/parser_proc.c" /* glr.c:816 */
2800 #line 684 "src/parser_proc_grammar.y" /* glr.c:816 */
2802 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add(psi_plist_init((psi_plist_dtor
) psi_num_exp_free
),
2803 &(*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2805 #line 2806 "src/parser_proc.c" /* glr.c:816 */
2809 #line 688 "src/parser_proc_grammar.y" /* glr.c:816 */
2811 (*(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
)));
2813 #line 2814 "src/parser_proc.c" /* glr.c:816 */
2817 #line 694 "src/parser_proc_grammar.y" /* glr.c:816 */
2819 (*(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
)));
2820 (*(struct psi_const
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2822 #line 2823 "src/parser_proc.c" /* glr.c:816 */
2826 #line 701 "src/parser_proc_grammar.y" /* glr.c:816 */
2828 (*(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
);
2830 #line 2831 "src/parser_proc.c" /* glr.c:816 */
2834 #line 714 "src/parser_proc_grammar.y" /* glr.c:816 */
2836 (*(struct psi_impl_def_val
**)(&(*yyvalp
))) = NULL
;
2838 #line 2839 "src/parser_proc.c" /* glr.c:816 */
2842 #line 717 "src/parser_proc_grammar.y" /* glr.c:816 */
2844 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
)) {
2846 token_t type
= psi_num_exp_exec((*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), &res
, NULL
, &P
->preproc
->defs
);
2848 if (type
== PSI_T_FLOAT
|| type
== PSI_T_DOUBLE
) {
2849 (*(struct psi_impl_def_val
**)(&(*yyvalp
))) = psi_impl_def_val_init(type
, NULL
);
2851 (*(struct psi_impl_def_val
**)(&(*yyvalp
))) = psi_impl_def_val_init(PSI_T_INT
, NULL
);
2855 case PSI_T_UINT8
: (*(struct psi_impl_def_val
**)(&(*yyvalp
)))->ival
.zend
.lval
= res
.u8
; break;
2856 case PSI_T_UINT16
: (*(struct psi_impl_def_val
**)(&(*yyvalp
)))->ival
.zend
.lval
= res
.u16
; break;
2857 case PSI_T_UINT32
: (*(struct psi_impl_def_val
**)(&(*yyvalp
)))->ival
.zend
.lval
= res
.u32
; break;
2858 case PSI_T_UINT64
: (*(struct psi_impl_def_val
**)(&(*yyvalp
)))->ival
.zend
.lval
= res
.u64
; break; /* FIXME */
2859 case PSI_T_INT8
: (*(struct psi_impl_def_val
**)(&(*yyvalp
)))->ival
.zend
.lval
= res
.i8
; break;
2860 case PSI_T_INT16
: (*(struct psi_impl_def_val
**)(&(*yyvalp
)))->ival
.zend
.lval
= res
.i16
; break;
2861 case PSI_T_INT32
: (*(struct psi_impl_def_val
**)(&(*yyvalp
)))->ival
.zend
.lval
= res
.i32
; break;
2862 case PSI_T_INT64
: (*(struct psi_impl_def_val
**)(&(*yyvalp
)))->ival
.zend
.lval
= res
.i64
; break;
2863 case PSI_T_FLOAT
: (*(struct psi_impl_def_val
**)(&(*yyvalp
)))->ival
.dval
= res
.fval
; break;
2864 case PSI_T_DOUBLE
: (*(struct psi_impl_def_val
**)(&(*yyvalp
)))->ival
.dval
= res
.dval
; break;
2870 (*(struct psi_impl_def_val
**)(&(*yyvalp
))) = NULL
;
2872 psi_num_exp_free(&(*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2874 #line 2875 "src/parser_proc.c" /* glr.c:816 */
2878 #line 748 "src/parser_proc_grammar.y" /* glr.c:816 */
2880 (*(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
);
2881 (*(struct psi_impl_def_val
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2883 #line 2884 "src/parser_proc.c" /* glr.c:816 */
2887 #line 762 "src/parser_proc_grammar.y" /* glr.c:816 */
2889 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2891 #line 2892 "src/parser_proc.c" /* glr.c:816 */
2895 #line 765 "src/parser_proc_grammar.y" /* glr.c:816 */
2897 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2899 #line 2900 "src/parser_proc.c" /* glr.c:816 */
2903 #line 772 "src/parser_proc_grammar.y" /* glr.c:816 */
2905 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
2906 psi_decl_type_init(PSI_T_FUNCTION
, (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->var
->name
),
2907 psi_decl_var_copy((*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->var
)
2909 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->token
);
2910 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.func
= (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
2912 #line 2913 "src/parser_proc.c" /* glr.c:816 */
2916 #line 780 "src/parser_proc_grammar.y" /* glr.c:816 */
2918 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2919 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
2920 psi_decl_type_init(PSI_T_ENUM
, (*(struct psi_decl_enum
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->name
),
2921 psi_decl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, 0, 0)
2923 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2924 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_decl_enum
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->token
);
2925 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.enm
= (*(struct psi_decl_enum
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2926 psi_parser_proc_add_enum(P
, (*(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
;
2940 psi_parser_proc_add_struct(P
, (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.strct
);
2942 #line 2943 "src/parser_proc.c" /* glr.c:816 */
2946 #line 800 "src/parser_proc_grammar.y" /* glr.c:816 */
2948 (*(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
)));
2949 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
));
2950 (*(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
)));
2951 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.unn
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2952 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.unn
->align
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)).pos
;
2953 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.unn
->size
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)).len
;
2954 psi_parser_proc_add_union(P
, (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.unn
);
2956 #line 2957 "src/parser_proc.c" /* glr.c:816 */
2960 #line 809 "src/parser_proc_grammar.y" /* glr.c:816 */
2962 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2963 (*(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));
2964 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2966 #line 2967 "src/parser_proc.c" /* glr.c:816 */
2970 #line 817 "src/parser_proc_grammar.y" /* glr.c:816 */
2972 (*(struct psi_decl_type
**)(&(*yyvalp
))) = (*(struct psi_decl_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
2974 #line 2975 "src/parser_proc.c" /* glr.c:816 */
2978 #line 824 "src/parser_proc_grammar.y" /* glr.c:816 */
2980 (*(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
);
2981 (*(struct psi_decl_type
**)(&(*yyvalp
)))->token
= (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
2983 #line 2984 "src/parser_proc.c" /* glr.c:816 */
2987 #line 832 "src/parser_proc_grammar.y" /* glr.c:816 */
2989 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2990 (*(struct psi_decl_type
**)(&(*yyvalp
))) = psi_decl_type_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
);
2991 (*(struct psi_decl_type
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2993 #line 2994 "src/parser_proc.c" /* glr.c:816 */
2997 #line 837 "src/parser_proc_grammar.y" /* glr.c:816 */
2999 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3000 (*(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
);
3001 (*(struct psi_decl_type
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3003 #line 3004 "src/parser_proc.c" /* glr.c:816 */
3007 #line 842 "src/parser_proc_grammar.y" /* glr.c:816 */
3009 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3010 (*(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
);
3011 (*(struct psi_decl_type
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3013 #line 3014 "src/parser_proc.c" /* glr.c:816 */
3017 #line 852 "src/parser_proc_grammar.y" /* glr.c:816 */
3019 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3021 #line 3022 "src/parser_proc.c" /* glr.c:816 */
3025 #line 855 "src/parser_proc_grammar.y" /* glr.c:816 */
3027 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3029 #line 3030 "src/parser_proc.c" /* glr.c:816 */
3033 #line 861 "src/parser_proc_grammar.y" /* glr.c:816 */
3035 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3037 #line 3038 "src/parser_proc.c" /* glr.c:816 */
3041 #line 864 "src/parser_proc_grammar.y" /* glr.c:816 */
3043 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3045 #line 3046 "src/parser_proc.c" /* glr.c:816 */
3049 #line 867 "src/parser_proc_grammar.y" /* glr.c:816 */
3051 (*(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
)));
3053 #line 3054 "src/parser_proc.c" /* glr.c:816 */
3057 #line 889 "src/parser_proc_grammar.y" /* glr.c:816 */
3059 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3061 #line 3062 "src/parser_proc.c" /* glr.c:816 */
3065 #line 892 "src/parser_proc_grammar.y" /* glr.c:816 */
3067 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3069 #line 3070 "src/parser_proc.c" /* glr.c:816 */
3073 #line 895 "src/parser_proc_grammar.y" /* glr.c:816 */
3075 (*(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
)));
3077 #line 3078 "src/parser_proc.c" /* glr.c:816 */
3081 #line 901 "src/parser_proc_grammar.y" /* glr.c:816 */
3083 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3085 #line 3086 "src/parser_proc.c" /* glr.c:816 */
3089 #line 904 "src/parser_proc_grammar.y" /* glr.c:816 */
3091 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3093 #line 3094 "src/parser_proc.c" /* glr.c:816 */
3097 #line 907 "src/parser_proc_grammar.y" /* glr.c:816 */
3099 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3100 (*(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
)));
3101 free((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3103 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3106 #line 3107 "src/parser_proc.c" /* glr.c:816 */
3110 #line 915 "src/parser_proc_grammar.y" /* glr.c:816 */
3112 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3113 (*(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
)));
3114 free((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3115 free((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3117 (*(struct psi_token
**)(&(*yyvalp
))) = (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
3120 #line 3121 "src/parser_proc.c" /* glr.c:816 */
3124 #line 927 "src/parser_proc_grammar.y" /* glr.c:816 */
3126 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
3128 #line 3129 "src/parser_proc.c" /* glr.c:816 */
3132 #line 930 "src/parser_proc_grammar.y" /* glr.c:816 */
3134 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3136 #line 3137 "src/parser_proc.c" /* glr.c:816 */
3140 #line 933 "src/parser_proc_grammar.y" /* glr.c:816 */
3142 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3143 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_cat(" ", 2, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3145 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3148 #line 3149 "src/parser_proc.c" /* glr.c:816 */
3152 #line 940 "src/parser_proc_grammar.y" /* glr.c:816 */
3154 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3156 #line 3157 "src/parser_proc.c" /* glr.c:816 */
3160 #line 943 "src/parser_proc_grammar.y" /* glr.c:816 */
3162 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3163 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_cat(" ", 2, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3165 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3168 #line 3169 "src/parser_proc.c" /* glr.c:816 */
3172 #line 953 "src/parser_proc_grammar.y" /* glr.c:816 */
3174 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
3176 #line 3177 "src/parser_proc.c" /* glr.c:816 */
3180 #line 959 "src/parser_proc_grammar.y" /* glr.c:816 */
3182 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
3184 #line 3185 "src/parser_proc.c" /* glr.c:816 */
3188 #line 967 "src/parser_proc_grammar.y" /* glr.c:816 */
3190 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
3192 #line 3193 "src/parser_proc.c" /* glr.c:816 */
3196 #line 970 "src/parser_proc_grammar.y" /* glr.c:816 */
3198 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3200 #line 3201 "src/parser_proc.c" /* glr.c:816 */
3204 #line 973 "src/parser_proc_grammar.y" /* glr.c:816 */
3206 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3207 (*(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
)));
3208 free((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3210 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3213 #line 3214 "src/parser_proc.c" /* glr.c:816 */
3217 #line 984 "src/parser_proc_grammar.y" /* glr.c:816 */
3219 (*(struct psi_decl
**)(&(*yyvalp
))) = (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3221 #line 3222 "src/parser_proc.c" /* glr.c:816 */
3225 #line 987 "src/parser_proc_grammar.y" /* glr.c:816 */
3227 (*(struct psi_decl
**)(&(*yyvalp
))) = (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3229 #line 3230 "src/parser_proc.c" /* glr.c:816 */
3233 #line 1007 "src/parser_proc_grammar.y" /* glr.c:816 */
3235 psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3237 #line 3238 "src/parser_proc.c" /* glr.c:816 */
3241 #line 1014 "src/parser_proc_grammar.y" /* glr.c:816 */
3243 psi_plist_free((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3245 #line 3246 "src/parser_proc.c" /* glr.c:816 */
3249 #line 1020 "src/parser_proc_grammar.y" /* glr.c:816 */
3251 (*(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
)));
3253 #line 3254 "src/parser_proc.c" /* glr.c:816 */
3257 #line 1023 "src/parser_proc_grammar.y" /* glr.c:816 */
3259 (*(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
)));
3261 #line 3262 "src/parser_proc.c" /* glr.c:816 */
3265 #line 1030 "src/parser_proc_grammar.y" /* glr.c:816 */
3267 (*(struct psi_decl
**)(&(*yyvalp
))) = (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3268 (*(struct psi_decl
**)(&(*yyvalp
)))->abi
= psi_decl_abi_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
);
3270 #line 3271 "src/parser_proc.c" /* glr.c:816 */
3274 #line 1042 "src/parser_proc_grammar.y" /* glr.c:816 */
3276 (*(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
)));
3277 if ((*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3278 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->pointer_level
+= 1;
3279 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->array_size
= (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3282 #line 3283 "src/parser_proc.c" /* glr.c:816 */
3286 #line 1049 "src/parser_proc_grammar.y" /* glr.c:816 */
3288 (*(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
)));
3289 (*(struct psi_decl
**)(&(*yyvalp
)))->varargs
= 1;
3290 if ((*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3291 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->pointer_level
+= 1;
3292 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->array_size
= (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3295 #line 3296 "src/parser_proc.c" /* glr.c:816 */
3299 #line 1060 "src/parser_proc_grammar.y" /* glr.c:816 */
3301 (*(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
)));
3302 if ((*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3303 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->pointer_level
+= 1;
3304 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->array_size
= (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3307 #line 3308 "src/parser_proc.c" /* glr.c:816 */
3311 #line 1067 "src/parser_proc_grammar.y" /* glr.c:816 */
3313 (*(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
)));
3314 (*(struct psi_decl
**)(&(*yyvalp
)))->varargs
= 1;
3315 if ((*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3316 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->pointer_level
+= 1;
3317 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->array_size
= (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3320 #line 3321 "src/parser_proc.c" /* glr.c:816 */
3324 #line 1078 "src/parser_proc_grammar.y" /* glr.c:816 */
3326 (void) (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3327 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3328 (*(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));
3329 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3330 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3332 #line 3333 "src/parser_proc.c" /* glr.c:816 */
3336 #line 1085 "src/parser_proc_grammar.y" /* glr.c:816 */
3338 (void) (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3339 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3340 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3341 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
),
3342 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)
3344 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
3345 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3346 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3348 #line 3349 "src/parser_proc.c" /* glr.c:816 */
3352 #line 1096 "src/parser_proc_grammar.y" /* glr.c:816 */
3354 (void) (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3355 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3356 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3357 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
),
3358 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)
3360 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
3361 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3362 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3364 #line 3365 "src/parser_proc.c" /* glr.c:816 */
3368 #line 1107 "src/parser_proc_grammar.y" /* glr.c:816 */
3370 (void) (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3371 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3372 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3373 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
),
3374 psi_decl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
, 0, 0)
3376 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
3377 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3378 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3380 #line 3381 "src/parser_proc.c" /* glr.c:816 */
3384 #line 1122 "src/parser_proc_grammar.y" /* glr.c:816 */
3386 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3387 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
),
3388 psi_decl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, 0, 0)
3390 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3391 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3392 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3394 #line 3395 "src/parser_proc.c" /* glr.c:816 */
3398 #line 1134 "src/parser_proc_grammar.y" /* glr.c:816 */
3400 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
3402 #line 3403 "src/parser_proc.c" /* glr.c:816 */
3406 #line 1137 "src/parser_proc_grammar.y" /* glr.c:816 */
3408 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
3410 #line 3411 "src/parser_proc.c" /* glr.c:816 */
3414 #line 1140 "src/parser_proc_grammar.y" /* glr.c:816 */
3416 (*(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
)));
3418 #line 3419 "src/parser_proc.c" /* glr.c:816 */
3422 #line 1143 "src/parser_proc_grammar.y" /* glr.c:816 */
3424 (*(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
)));
3426 #line 3427 "src/parser_proc.c" /* glr.c:816 */
3430 #line 1150 "src/parser_proc_grammar.y" /* glr.c:816 */
3432 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3434 #line 3435 "src/parser_proc.c" /* glr.c:816 */
3438 #line 1153 "src/parser_proc_grammar.y" /* glr.c:816 */
3440 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3441 (*(struct psi_decl_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)),
3442 psi_decl_var_init(NULL
, (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), 0)
3445 #line 3446 "src/parser_proc.c" /* glr.c:816 */
3449 #line 1159 "src/parser_proc_grammar.y" /* glr.c:816 */
3451 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3452 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
),
3453 psi_decl_var_init(NULL
, (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), 0)
3455 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3456 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3457 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3459 #line 3460 "src/parser_proc.c" /* glr.c:816 */
3463 #line 1168 "src/parser_proc_grammar.y" /* glr.c:816 */
3465 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3466 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
),
3467 psi_decl_var_init(NULL
, (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), 0)
3469 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3470 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3471 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3473 #line 3474 "src/parser_proc.c" /* glr.c:816 */
3477 #line 1180 "src/parser_proc_grammar.y" /* glr.c:816 */
3479 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3480 psi_decl_type_init(PSI_T_FUNCTION
, (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->var
->name
),
3481 psi_decl_var_copy((*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->var
)
3483 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->token
);
3484 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.func
= (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3486 #line 3487 "src/parser_proc.c" /* glr.c:816 */
3490 #line 1188 "src/parser_proc_grammar.y" /* glr.c:816 */
3492 (*(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
)));
3494 #line 3495 "src/parser_proc.c" /* glr.c:816 */
3498 #line 1191 "src/parser_proc_grammar.y" /* glr.c:816 */
3500 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3501 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3502 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
),
3503 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)
3505 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3506 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3507 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3509 #line 3510 "src/parser_proc.c" /* glr.c:816 */
3513 #line 1201 "src/parser_proc_grammar.y" /* glr.c:816 */
3515 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3516 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3517 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
),
3518 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)
3520 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3521 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3522 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3524 #line 3525 "src/parser_proc.c" /* glr.c:816 */
3528 #line 1214 "src/parser_proc_grammar.y" /* glr.c:816 */
3530 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3531 (*(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
)));
3532 (*(struct psi_decl_var
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3534 #line 3535 "src/parser_proc.c" /* glr.c:816 */
3538 #line 1219 "src/parser_proc_grammar.y" /* glr.c:816 */
3540 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3541 (*(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
)));
3542 (*(struct psi_decl_var
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3544 #line 3545 "src/parser_proc.c" /* glr.c:816 */
3548 #line 1227 "src/parser_proc_grammar.y" /* glr.c:816 */
3550 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3551 (*(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
)));
3552 (*(struct psi_decl_union
**)(&(*yyvalp
)))->align
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)).pos
;
3553 (*(struct psi_decl_union
**)(&(*yyvalp
)))->size
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)).len
;
3554 (*(struct psi_decl_union
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3556 #line 3557 "src/parser_proc.c" /* glr.c:816 */
3560 #line 1237 "src/parser_proc_grammar.y" /* glr.c:816 */
3562 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3563 (*(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
)));
3564 (*(struct psi_decl_struct
**)(&(*yyvalp
)))->align
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)).pos
;
3565 (*(struct psi_decl_struct
**)(&(*yyvalp
)))->size
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)).len
;
3566 (*(struct psi_decl_struct
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3568 #line 3569 "src/parser_proc.c" /* glr.c:816 */
3572 #line 1247 "src/parser_proc_grammar.y" /* glr.c:816 */
3574 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
3576 #line 3577 "src/parser_proc.c" /* glr.c:816 */
3580 #line 1254 "src/parser_proc_grammar.y" /* glr.c:816 */
3582 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
3584 #line 3585 "src/parser_proc.c" /* glr.c:816 */
3588 #line 1260 "src/parser_proc_grammar.y" /* glr.c:816 */
3590 (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->layout
= (*(struct psi_layout
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3591 (*(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
)));
3592 if ((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))) {
3594 struct psi_decl_arg
*arg
;
3596 while (psi_plist_get((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), i
++, &arg
)) {
3597 arg
->type
= psi_decl_type_copy((*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->type
);
3598 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add((*(struct psi_plist
**)(&(*yyvalp
))), &arg
);
3600 free((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3603 #line 3604 "src/parser_proc.c" /* glr.c:816 */
3607 #line 1274 "src/parser_proc_grammar.y" /* glr.c:816 */
3609 (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->layout
= (*(struct psi_layout
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3610 (*(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
)));
3611 if ((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))) {
3613 struct psi_decl_arg
*arg
;
3615 while (psi_plist_get((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), i
++, &arg
)) {
3616 arg
->type
= psi_decl_type_copy((*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->type
);
3617 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add((*(struct psi_plist
**)(&(*yyvalp
))), &arg
);
3619 free((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3622 #line 3623 "src/parser_proc.c" /* glr.c:816 */
3626 #line 1291 "src/parser_proc_grammar.y" /* glr.c:816 */
3628 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
3630 #line 3631 "src/parser_proc.c" /* glr.c:816 */
3634 #line 1294 "src/parser_proc_grammar.y" /* glr.c:816 */
3636 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3638 #line 3639 "src/parser_proc.c" /* glr.c:816 */
3642 #line 1300 "src/parser_proc_grammar.y" /* glr.c:816 */
3645 struct psi_decl_arg
*arg
= psi_decl_arg_init(NULL
, (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3646 arg
->layout
= (*(struct psi_layout
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3647 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add(psi_plist_init((psi_plist_dtor
) psi_decl_arg_free
), &arg
);
3650 #line 3651 "src/parser_proc.c" /* glr.c:816 */
3654 #line 1307 "src/parser_proc_grammar.y" /* glr.c:816 */
3657 struct psi_decl_arg
*arg
= psi_decl_arg_init(NULL
, (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3658 arg
->layout
= (*(struct psi_layout
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3659 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)), &arg
);
3662 #line 3663 "src/parser_proc.c" /* glr.c:816 */
3666 #line 1317 "src/parser_proc_grammar.y" /* glr.c:816 */
3668 (*(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
)));
3669 (*(struct psi_decl_enum
**)(&(*yyvalp
)))->token
= (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
));
3671 #line 3672 "src/parser_proc.c" /* glr.c:816 */
3675 #line 1324 "src/parser_proc_grammar.y" /* glr.c:816 */
3677 (*(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
)));
3679 #line 3680 "src/parser_proc.c" /* glr.c:816 */
3683 #line 1327 "src/parser_proc_grammar.y" /* glr.c:816 */
3685 (*(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
)));
3687 #line 3688 "src/parser_proc.c" /* glr.c:816 */
3691 #line 1333 "src/parser_proc_grammar.y" /* glr.c:816 */
3693 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3694 (*(struct psi_decl_enum_item
**)(&(*yyvalp
))) = psi_decl_enum_item_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, NULL
);
3695 (*(struct psi_decl_enum_item
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3697 #line 3698 "src/parser_proc.c" /* glr.c:816 */
3701 #line 1338 "src/parser_proc_grammar.y" /* glr.c:816 */
3703 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3704 (*(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
)));
3705 (*(struct psi_decl_enum_item
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3707 #line 3708 "src/parser_proc.c" /* glr.c:816 */
3711 #line 1346 "src/parser_proc_grammar.y" /* glr.c:816 */
3713 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num((*(struct psi_number
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3714 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_number
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->token
);
3716 #line 3717 "src/parser_proc.c" /* glr.c:816 */
3720 #line 1350 "src/parser_proc_grammar.y" /* glr.c:816 */
3722 (*(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
)));
3723 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_decl_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->token
);
3725 #line 3726 "src/parser_proc.c" /* glr.c:816 */
3729 #line 1354 "src/parser_proc_grammar.y" /* glr.c:816 */
3731 (*(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
)));
3732 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3734 #line 3735 "src/parser_proc.c" /* glr.c:816 */
3738 #line 1358 "src/parser_proc_grammar.y" /* glr.c:816 */
3740 (*(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
)));
3741 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3743 #line 3744 "src/parser_proc.c" /* glr.c:816 */
3747 #line 1362 "src/parser_proc_grammar.y" /* glr.c:816 */
3749 (*(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
)));
3750 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3752 #line 3753 "src/parser_proc.c" /* glr.c:816 */
3756 #line 1366 "src/parser_proc_grammar.y" /* glr.c:816 */
3758 (*(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
)));
3759 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
3761 #line 3762 "src/parser_proc.c" /* glr.c:816 */
3765 #line 1373 "src/parser_proc_grammar.y" /* glr.c:816 */
3767 (*(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
);
3768 (*(struct psi_number
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3770 #line 3771 "src/parser_proc.c" /* glr.c:816 */
3774 #line 1377 "src/parser_proc_grammar.y" /* glr.c:816 */
3776 (*(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);
3777 (*(struct psi_number
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3779 #line 3780 "src/parser_proc.c" /* glr.c:816 */
3783 #line 1381 "src/parser_proc_grammar.y" /* glr.c:816 */
3785 (*(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);
3786 (*(struct psi_number
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3788 #line 3789 "src/parser_proc.c" /* glr.c:816 */
3792 #line 1385 "src/parser_proc_grammar.y" /* glr.c:816 */
3794 (*(struct psi_number
**)(&(*yyvalp
))) = psi_number_init(PSI_T_NAME
, (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), 0);
3795 (*(struct psi_number
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->token
);
3797 #line 3798 "src/parser_proc.c" /* glr.c:816 */
3801 #line 1392 "src/parser_proc_grammar.y" /* glr.c:816 */
3803 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3804 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3808 psi_token_hash((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), digest
);
3809 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_append("@", psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))), 1, digest
);
3812 #line 3813 "src/parser_proc.c" /* glr.c:816 */
3816 #line 1405 "src/parser_proc_grammar.y" /* glr.c:816 */
3818 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3819 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3823 psi_token_hash((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), digest
);
3824 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_append("@", psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))), 1, digest
);
3827 #line 3828 "src/parser_proc.c" /* glr.c:816 */
3831 #line 1418 "src/parser_proc_grammar.y" /* glr.c:816 */
3833 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3834 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3838 psi_token_hash((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), digest
);
3839 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_append("@", psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))), 1, digest
);
3842 #line 3843 "src/parser_proc.c" /* glr.c:816 */
3846 #line 1431 "src/parser_proc_grammar.y" /* glr.c:816 */
3848 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
3850 #line 3851 "src/parser_proc.c" /* glr.c:816 */
3854 #line 1434 "src/parser_proc_grammar.y" /* glr.c:816 */
3856 (*(struct psi_token
**)(&(*yyvalp
))) = (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3857 (*(struct psi_token
**)(&(*yyvalp
)))->type
= PSI_T_NAME
;
3859 #line 3860 "src/parser_proc.c" /* glr.c:816 */
3863 #line 1441 "src/parser_proc_grammar.y" /* glr.c:816 */
3865 (*(struct psi_layout
**)(&(*yyvalp
))) = NULL
;
3867 #line 3868 "src/parser_proc.c" /* glr.c:816 */
3871 #line 1444 "src/parser_proc_grammar.y" /* glr.c:816 */
3873 (*(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
));
3875 #line 3876 "src/parser_proc.c" /* glr.c:816 */
3879 #line 1447 "src/parser_proc_grammar.y" /* glr.c:816 */
3881 (*(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
);
3883 #line 3884 "src/parser_proc.c" /* glr.c:816 */
3887 #line 1450 "src/parser_proc_grammar.y" /* glr.c:816 */
3889 (*(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
));
3891 #line 3892 "src/parser_proc.c" /* glr.c:816 */
3895 #line 1456 "src/parser_proc_grammar.y" /* glr.c:816 */
3897 (*(struct psi_layout
*)(&(*yyvalp
))).pos
= 0;
3898 (*(struct psi_layout
*)(&(*yyvalp
))).len
= 0;
3900 #line 3901 "src/parser_proc.c" /* glr.c:816 */
3904 #line 1460 "src/parser_proc_grammar.y" /* glr.c:816 */
3906 (*(struct psi_layout
*)(&(*yyvalp
))).pos
= atol((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->text
);
3907 (*(struct psi_layout
*)(&(*yyvalp
))).len
= atol((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
);
3909 #line 3910 "src/parser_proc.c" /* glr.c:816 */
3913 #line 1467 "src/parser_proc_grammar.y" /* glr.c:816 */
3915 (*(size_t*)(&(*yyvalp
))) = 0;
3917 #line 3918 "src/parser_proc.c" /* glr.c:816 */
3921 #line 1470 "src/parser_proc_grammar.y" /* glr.c:816 */
3923 (*(size_t*)(&(*yyvalp
))) = atol((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
);
3925 #line 3926 "src/parser_proc.c" /* glr.c:816 */
3929 #line 1476 "src/parser_proc_grammar.y" /* glr.c:816 */
3931 (*(size_t*)(&(*yyvalp
))) = 0;
3933 #line 3934 "src/parser_proc.c" /* glr.c:816 */
3937 #line 1479 "src/parser_proc_grammar.y" /* glr.c:816 */
3939 (*(size_t*)(&(*yyvalp
))) = (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3941 #line 3942 "src/parser_proc.c" /* glr.c:816 */
3945 #line 1486 "src/parser_proc_grammar.y" /* glr.c:816 */
3947 (*(size_t*)(&(*yyvalp
))) = (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
3949 #line 3950 "src/parser_proc.c" /* glr.c:816 */
3953 #line 1492 "src/parser_proc_grammar.y" /* glr.c:816 */
3955 (*(size_t*)(&(*yyvalp
))) = 1;
3957 #line 3958 "src/parser_proc.c" /* glr.c:816 */
3961 #line 1495 "src/parser_proc_grammar.y" /* glr.c:816 */
3963 (*(size_t*)(&(*yyvalp
))) = (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)) + 1;
3965 #line 3966 "src/parser_proc.c" /* glr.c:816 */
3969 #line 1507 "src/parser_proc_grammar.y" /* glr.c:816 */
3971 (*(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
)));
3973 #line 3974 "src/parser_proc.c" /* glr.c:816 */
3977 #line 1510 "src/parser_proc_grammar.y" /* glr.c:816 */
3979 (*(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
)));
3980 (*(struct psi_impl_func
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->static_memory
= 1;
3982 #line 3983 "src/parser_proc.c" /* glr.c:816 */
3986 #line 1517 "src/parser_proc_grammar.y" /* glr.c:816 */
3988 (*(struct psi_impl_func
**)(&(*yyvalp
))) = psi_impl_func_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
))->text
, NULL
, (*(struct psi_impl_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3989 (*(struct psi_impl_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
3990 (*(struct psi_impl_func
**)(&(*yyvalp
)))->return_reference
= (*(bool*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
));
3992 #line 3993 "src/parser_proc.c" /* glr.c:816 */
3996 #line 1522 "src/parser_proc_grammar.y" /* glr.c:816 */
3998 (*(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
)));
3999 (*(struct psi_impl_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
4000 (*(struct psi_impl_func
**)(&(*yyvalp
)))->return_reference
= (*(bool*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-6)].yystate
.yysemantics
.yysval
));
4002 #line 4003 "src/parser_proc.c" /* glr.c:816 */
4006 #line 1527 "src/parser_proc_grammar.y" /* glr.c:816 */
4008 (*(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
)));
4009 (*(struct psi_impl_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-10)].yystate
.yysemantics
.yysval
)));
4010 (*(struct psi_impl_func
**)(&(*yyvalp
)))->return_reference
= (*(bool*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-11)].yystate
.yysemantics
.yysval
));
4011 (*(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
);
4012 (*(struct psi_impl_func
**)(&(*yyvalp
)))->vararg
->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
4014 #line 4015 "src/parser_proc.c" /* glr.c:816 */
4018 #line 1537 "src/parser_proc_grammar.y" /* glr.c:816 */
4020 (*(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
)));
4022 #line 4023 "src/parser_proc.c" /* glr.c:816 */
4026 #line 1540 "src/parser_proc_grammar.y" /* glr.c:816 */
4028 (*(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
)));
4030 #line 4031 "src/parser_proc.c" /* glr.c:816 */
4034 #line 1546 "src/parser_proc_grammar.y" /* glr.c:816 */
4036 (*(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
);
4038 #line 4039 "src/parser_proc.c" /* glr.c:816 */
4042 #line 1549 "src/parser_proc_grammar.y" /* glr.c:816 */
4044 (*(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
)));
4046 #line 4047 "src/parser_proc.c" /* glr.c:816 */
4050 #line 1555 "src/parser_proc_grammar.y" /* glr.c:816 */
4052 (*(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
)));
4053 (*(struct psi_impl_var
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4055 #line 4056 "src/parser_proc.c" /* glr.c:816 */
4059 #line 1562 "src/parser_proc_grammar.y" /* glr.c:816 */
4061 (*(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
);
4062 (*(struct psi_impl_type
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4064 #line 4065 "src/parser_proc.c" /* glr.c:816 */
4068 #line 1581 "src/parser_proc_grammar.y" /* glr.c:816 */
4070 (*(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
)));
4072 #line 4073 "src/parser_proc.c" /* glr.c:816 */
4076 #line 1584 "src/parser_proc_grammar.y" /* glr.c:816 */
4078 (*(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
)));
4080 #line 4081 "src/parser_proc.c" /* glr.c:816 */
4084 #line 1590 "src/parser_proc_grammar.y" /* glr.c:816 */
4086 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_return_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4088 #line 4089 "src/parser_proc.c" /* glr.c:816 */
4092 #line 1593 "src/parser_proc_grammar.y" /* glr.c:816 */
4094 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_let_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4096 #line 4097 "src/parser_proc.c" /* glr.c:816 */
4100 #line 1596 "src/parser_proc_grammar.y" /* glr.c:816 */
4102 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_set_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4104 #line 4105 "src/parser_proc.c" /* glr.c:816 */
4108 #line 1599 "src/parser_proc_grammar.y" /* glr.c:816 */
4110 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_assert_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4112 #line 4113 "src/parser_proc.c" /* glr.c:816 */
4116 #line 1602 "src/parser_proc_grammar.y" /* glr.c:816 */
4118 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_free_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4120 #line 4121 "src/parser_proc.c" /* glr.c:816 */
4124 #line 1608 "src/parser_proc_grammar.y" /* glr.c:816 */
4126 (*(struct psi_let_stmt
**)(&(*yyvalp
))) = psi_let_stmt_init((*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
4127 (*(struct psi_let_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
4129 #line 4130 "src/parser_proc.c" /* glr.c:816 */
4133 #line 1612 "src/parser_proc_grammar.y" /* glr.c:816 */
4135 (*(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
))));
4136 (*(struct psi_let_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
4137 (*(struct psi_let_stmt
**)(&(*yyvalp
)))->exp
->is_reference
= (*(bool*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
4139 #line 4140 "src/parser_proc.c" /* glr.c:816 */
4143 #line 1621 "src/parser_proc_grammar.y" /* glr.c:816 */
4145 (*(struct psi_let_exp
**)(&(*yyvalp
))) = (*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4146 (*(struct psi_let_exp
**)(&(*yyvalp
)))->is_reference
= true;
4148 #line 4149 "src/parser_proc.c" /* glr.c:816 */
4152 #line 1625 "src/parser_proc_grammar.y" /* glr.c:816 */
4154 (*(struct psi_let_exp
**)(&(*yyvalp
))) = (*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4155 (*(struct psi_let_exp
**)(&(*yyvalp
)))->is_reference
= false;
4157 #line 4158 "src/parser_proc.c" /* glr.c:816 */
4161 #line 1632 "src/parser_proc_grammar.y" /* glr.c:816 */
4163 (*(struct psi_let_exp
**)(&(*yyvalp
))) = psi_let_exp_init(PSI_LET_NULL
, NULL
);
4165 #line 4166 "src/parser_proc.c" /* glr.c:816 */
4169 #line 1635 "src/parser_proc_grammar.y" /* glr.c:816 */
4171 (*(struct psi_let_exp
**)(&(*yyvalp
))) = psi_let_exp_init(PSI_LET_CALLOC
, (*(struct psi_let_calloc
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4173 #line 4174 "src/parser_proc.c" /* glr.c:816 */
4177 #line 1638 "src/parser_proc_grammar.y" /* glr.c:816 */
4179 (*(struct psi_let_exp
**)(&(*yyvalp
))) = psi_let_exp_init(PSI_LET_CALLOC
, (*(struct psi_let_calloc
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4180 (*(struct psi_let_calloc
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->static_memory
= 1;
4182 #line 4183 "src/parser_proc.c" /* glr.c:816 */
4186 #line 1642 "src/parser_proc_grammar.y" /* glr.c:816 */
4188 (*(struct psi_let_exp
**)(&(*yyvalp
))) = psi_let_exp_init(PSI_LET_CALLBACK
, (*(struct psi_let_callback
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4190 #line 4191 "src/parser_proc.c" /* glr.c:816 */
4194 #line 1645 "src/parser_proc_grammar.y" /* glr.c:816 */
4196 (*(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
)));
4198 #line 4199 "src/parser_proc.c" /* glr.c:816 */
4202 #line 1648 "src/parser_proc_grammar.y" /* glr.c:816 */
4204 (*(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
)));
4206 #line 4207 "src/parser_proc.c" /* glr.c:816 */
4210 #line 1654 "src/parser_proc_grammar.y" /* glr.c:816 */
4212 (*(struct psi_let_exp
**)(&(*yyvalp
))) = (*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4213 (*(struct psi_let_exp
**)(&(*yyvalp
)))->var
= (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
4215 #line 4216 "src/parser_proc.c" /* glr.c:816 */
4219 #line 1658 "src/parser_proc_grammar.y" /* glr.c:816 */
4221 (*(struct psi_let_exp
**)(&(*yyvalp
))) = (*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4222 (*(struct psi_let_exp
**)(&(*yyvalp
)))->is_reference
= 1;
4223 (*(struct psi_let_exp
**)(&(*yyvalp
)))->var
= (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
));
4225 #line 4226 "src/parser_proc.c" /* glr.c:816 */
4229 #line 1666 "src/parser_proc_grammar.y" /* glr.c:816 */
4231 (*(struct psi_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
)));
4232 (*(struct psi_let_calloc
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
4234 #line 4235 "src/parser_proc.c" /* glr.c:816 */
4238 #line 1673 "src/parser_proc_grammar.y" /* glr.c:816 */
4240 (*(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
)));
4241 (*(struct psi_let_callback
**)(&(*yyvalp
)))->func
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-6)].yystate
.yysemantics
.yysval
)));
4242 (*(struct psi_let_callback
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-7)].yystate
.yysemantics
.yysval
)));
4244 #line 4245 "src/parser_proc.c" /* glr.c:816 */
4248 #line 1681 "src/parser_proc_grammar.y" /* glr.c:816 */
4250 (*(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
)));
4251 (*(struct psi_let_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
4252 (*(struct psi_let_func
**)(&(*yyvalp
)))->inner
= (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
4254 #line 4255 "src/parser_proc.c" /* glr.c:816 */
4258 #line 1702 "src/parser_proc_grammar.y" /* glr.c:816 */
4260 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
4262 #line 4263 "src/parser_proc.c" /* glr.c:816 */
4266 #line 1705 "src/parser_proc_grammar.y" /* glr.c:816 */
4268 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4270 #line 4271 "src/parser_proc.c" /* glr.c:816 */
4274 #line 1711 "src/parser_proc_grammar.y" /* glr.c:816 */
4276 (*(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
)));
4278 #line 4279 "src/parser_proc.c" /* glr.c:816 */
4282 #line 1714 "src/parser_proc_grammar.y" /* glr.c:816 */
4284 (*(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
)));
4286 #line 4287 "src/parser_proc.c" /* glr.c:816 */
4290 #line 1725 "src/parser_proc_grammar.y" /* glr.c:816 */
4292 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
4294 #line 4295 "src/parser_proc.c" /* glr.c:816 */
4298 #line 1728 "src/parser_proc_grammar.y" /* glr.c:816 */
4300 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4302 #line 4303 "src/parser_proc.c" /* glr.c:816 */
4306 #line 1734 "src/parser_proc_grammar.y" /* glr.c:816 */
4308 (*(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
)));
4310 #line 4311 "src/parser_proc.c" /* glr.c:816 */
4314 #line 1737 "src/parser_proc_grammar.y" /* glr.c:816 */
4316 (*(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
)));
4318 #line 4319 "src/parser_proc.c" /* glr.c:816 */
4322 #line 1743 "src/parser_proc_grammar.y" /* glr.c:816 */
4324 (*(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
))));
4325 (*(struct psi_return_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
4327 #line 4328 "src/parser_proc.c" /* glr.c:816 */
4331 #line 1750 "src/parser_proc_grammar.y" /* glr.c:816 */
4333 (*(struct psi_set_stmt
**)(&(*yyvalp
))) = psi_set_stmt_init((*(struct psi_set_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
4334 (*(struct psi_set_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
4336 #line 4337 "src/parser_proc.c" /* glr.c:816 */
4340 #line 1757 "src/parser_proc_grammar.y" /* glr.c:816 */
4342 (*(struct psi_set_exp
**)(&(*yyvalp
))) = psi_set_exp_init(PSI_SET_FUNC
, (*(struct psi_set_func
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4344 #line 4345 "src/parser_proc.c" /* glr.c:816 */
4348 #line 1760 "src/parser_proc_grammar.y" /* glr.c:816 */
4350 (*(struct psi_set_exp
**)(&(*yyvalp
))) = psi_set_exp_init(PSI_SET_NUMEXP
, (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
4352 #line 4353 "src/parser_proc.c" /* glr.c:816 */
4356 #line 1763 "src/parser_proc_grammar.y" /* glr.c:816 */
4358 (*(struct psi_set_exp
**)(&(*yyvalp
))) = (*(struct psi_set_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4359 (*(struct psi_set_exp
**)(&(*yyvalp
)))->var
= (*(struct psi_impl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
4361 #line 4362 "src/parser_proc.c" /* glr.c:816 */
4365 #line 1770 "src/parser_proc_grammar.y" /* glr.c:816 */
4367 (*(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
)));
4368 (*(struct psi_set_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
4369 (*(struct psi_set_func
**)(&(*yyvalp
)))->inner
= (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
4371 #line 4372 "src/parser_proc.c" /* glr.c:816 */
4375 #line 1775 "src/parser_proc_grammar.y" /* glr.c:816 */
4377 (*(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
)));
4378 (*(struct psi_set_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
4379 (*(struct psi_set_func
**)(&(*yyvalp
)))->recursive
= 1;
4381 #line 4382 "src/parser_proc.c" /* glr.c:816 */
4385 #line 1794 "src/parser_proc_grammar.y" /* glr.c:816 */
4387 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
4389 #line 4390 "src/parser_proc.c" /* glr.c:816 */
4393 #line 1797 "src/parser_proc_grammar.y" /* glr.c:816 */
4395 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
4397 #line 4398 "src/parser_proc.c" /* glr.c:816 */
4401 #line 1803 "src/parser_proc_grammar.y" /* glr.c:816 */
4403 (*(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
)));
4405 #line 4406 "src/parser_proc.c" /* glr.c:816 */
4409 #line 1806 "src/parser_proc_grammar.y" /* glr.c:816 */
4411 (*(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
)));
4413 #line 4414 "src/parser_proc.c" /* glr.c:816 */
4417 #line 1812 "src/parser_proc_grammar.y" /* glr.c:816 */
4419 (*(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
)));
4420 (*(struct psi_assert_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
4422 #line 4423 "src/parser_proc.c" /* glr.c:816 */
4426 #line 1824 "src/parser_proc_grammar.y" /* glr.c:816 */
4428 (*(struct psi_free_stmt
**)(&(*yyvalp
))) = psi_free_stmt_init((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
4429 (*(struct psi_free_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
4431 #line 4432 "src/parser_proc.c" /* glr.c:816 */
4435 #line 1831 "src/parser_proc_grammar.y" /* glr.c:816 */
4437 (*(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
)));
4439 #line 4440 "src/parser_proc.c" /* glr.c:816 */
4443 #line 1834 "src/parser_proc_grammar.y" /* glr.c:816 */
4445 (*(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
)));
4447 #line 4448 "src/parser_proc.c" /* glr.c:816 */
4451 #line 1840 "src/parser_proc_grammar.y" /* glr.c:816 */
4453 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
4454 (*(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
)));
4455 (*(struct psi_free_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
4457 #line 4458 "src/parser_proc.c" /* glr.c:816 */
4461 #line 1848 "src/parser_proc_grammar.y" /* glr.c:816 */
4463 (*(bool*)(&(*yyvalp
))) = false;
4465 #line 4466 "src/parser_proc.c" /* glr.c:816 */
4469 #line 1851 "src/parser_proc_grammar.y" /* glr.c:816 */
4471 (*(bool*)(&(*yyvalp
))) = true;
4473 #line 4474 "src/parser_proc.c" /* glr.c:816 */
4477 #line 4478 "src/parser_proc.c" /* glr.c:816 */
4488 # undef YYRECOVERING
4493 yyuserMerge (int yyn
, YYSTYPE
* yy0
, YYSTYPE
* yy1
)
4505 /* Bison grammar-table manipulation. */
4507 /*-----------------------------------------------.
4508 | Release the memory associated to this symbol. |
4509 `-----------------------------------------------*/
4512 yydestruct (const char *yymsg
, int yytype
, YYSTYPE
*yyvaluep
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
4520 YY_SYMBOL_PRINT (yymsg
, yytype
, yyvaluep
, yylocationp
);
4522 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4525 case 133: /* binary_op_token */
4526 #line 276 "src/parser_proc_grammar.y" /* glr.c:846 */
4528 #line 4529 "src/parser_proc.c" /* glr.c:846 */
4531 case 134: /* unary_op_token */
4532 #line 276 "src/parser_proc_grammar.y" /* glr.c:846 */
4534 #line 4535 "src/parser_proc.c" /* glr.c:846 */
4537 case 135: /* name_token */
4538 #line 276 "src/parser_proc_grammar.y" /* glr.c:846 */
4540 #line 4541 "src/parser_proc.c" /* glr.c:846 */
4543 case 136: /* any_noeol_token */
4544 #line 276 "src/parser_proc_grammar.y" /* glr.c:846 */
4546 #line 4547 "src/parser_proc.c" /* glr.c:846 */
4550 #line 270 "src/parser_proc_grammar.y" /* glr.c:846 */
4551 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4552 #line 4553 "src/parser_proc.c" /* glr.c:846 */
4556 #line 285 "src/parser_proc_grammar.y" /* glr.c:846 */
4557 {psi_cpp_exp_free(&(*(struct psi_cpp_exp
**)(&(*yyvaluep
))));}
4558 #line 4559 "src/parser_proc.c" /* glr.c:846 */
4561 case 142: /* cpp_exp */
4562 #line 285 "src/parser_proc_grammar.y" /* glr.c:846 */
4563 {psi_cpp_exp_free(&(*(struct psi_cpp_exp
**)(&(*yyvaluep
))));}
4564 #line 4565 "src/parser_proc.c" /* glr.c:846 */
4567 case 144: /* cpp_message_token */
4568 #line 273 "src/parser_proc_grammar.y" /* glr.c:846 */
4570 #line 4571 "src/parser_proc.c" /* glr.c:846 */
4573 case 145: /* cpp_include_token */
4574 #line 273 "src/parser_proc_grammar.y" /* glr.c:846 */
4576 #line 4577 "src/parser_proc.c" /* glr.c:846 */
4579 case 146: /* cpp_header_token */
4580 #line 273 "src/parser_proc_grammar.y" /* glr.c:846 */
4582 #line 4583 "src/parser_proc.c" /* glr.c:846 */
4585 case 147: /* cpp_no_arg_token */
4586 #line 273 "src/parser_proc_grammar.y" /* glr.c:846 */
4588 #line 4589 "src/parser_proc.c" /* glr.c:846 */
4591 case 148: /* cpp_name_arg_token */
4592 #line 273 "src/parser_proc_grammar.y" /* glr.c:846 */
4594 #line 4595 "src/parser_proc.c" /* glr.c:846 */
4597 case 149: /* cpp_exp_arg_token */
4598 #line 273 "src/parser_proc_grammar.y" /* glr.c:846 */
4600 #line 4601 "src/parser_proc.c" /* glr.c:846 */
4603 case 150: /* cpp_special_name_token */
4604 #line 273 "src/parser_proc_grammar.y" /* glr.c:846 */
4606 #line 4607 "src/parser_proc.c" /* glr.c:846 */
4609 case 151: /* cpp_macro_decl */
4610 #line 287 "src/parser_proc_grammar.y" /* glr.c:846 */
4611 {psi_cpp_macro_decl_free(&(*(struct psi_cpp_macro_decl
**)(&(*yyvaluep
))));}
4612 #line 4613 "src/parser_proc.c" /* glr.c:846 */
4615 case 152: /* cpp_macro_sig */
4616 #line 289 "src/parser_proc_grammar.y" /* glr.c:846 */
4617 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4618 #line 4619 "src/parser_proc.c" /* glr.c:846 */
4621 case 153: /* cpp_macro_sig_args */
4622 #line 289 "src/parser_proc_grammar.y" /* glr.c:846 */
4623 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4624 #line 4625 "src/parser_proc.c" /* glr.c:846 */
4627 case 154: /* cpp_macro_decl_tokens */
4628 #line 289 "src/parser_proc_grammar.y" /* glr.c:846 */
4629 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4630 #line 4631 "src/parser_proc.c" /* glr.c:846 */
4633 case 155: /* cpp_macro_decl_token_list */
4634 #line 289 "src/parser_proc_grammar.y" /* glr.c:846 */
4635 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4636 #line 4637 "src/parser_proc.c" /* glr.c:846 */
4639 case 156: /* cpp_macro_exp */
4640 #line 291 "src/parser_proc_grammar.y" /* glr.c:846 */
4641 {psi_num_exp_free(&(*(struct psi_num_exp
**)(&(*yyvaluep
))));}
4642 #line 4643 "src/parser_proc.c" /* glr.c:846 */
4645 case 157: /* cpp_macro_call_args */
4646 #line 289 "src/parser_proc_grammar.y" /* glr.c:846 */
4647 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4648 #line 4649 "src/parser_proc.c" /* glr.c:846 */
4651 case 158: /* cpp_macro_call_arg_list */
4652 #line 289 "src/parser_proc_grammar.y" /* glr.c:846 */
4653 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4654 #line 4655 "src/parser_proc.c" /* glr.c:846 */
4657 case 159: /* constant */
4658 #line 297 "src/parser_proc_grammar.y" /* glr.c:846 */
4659 {psi_const_free(&(*(struct psi_const
**)(&(*yyvaluep
))));}
4660 #line 4661 "src/parser_proc.c" /* glr.c:846 */
4663 case 160: /* constant_type */
4664 #line 299 "src/parser_proc_grammar.y" /* glr.c:846 */
4665 {psi_const_type_free(&(*(struct psi_const_type
**)(&(*yyvaluep
))));}
4666 #line 4667 "src/parser_proc.c" /* glr.c:846 */
4669 case 161: /* constant_type_token */
4670 #line 294 "src/parser_proc_grammar.y" /* glr.c:846 */
4672 #line 4673 "src/parser_proc.c" /* glr.c:846 */
4675 case 162: /* impl_def_val */
4676 #line 301 "src/parser_proc_grammar.y" /* glr.c:846 */
4677 {psi_impl_def_val_free(&(*(struct psi_impl_def_val
**)(&(*yyvaluep
))));}
4678 #line 4679 "src/parser_proc.c" /* glr.c:846 */
4681 case 163: /* impl_def_val_token */
4682 #line 294 "src/parser_proc_grammar.y" /* glr.c:846 */
4684 #line 4685 "src/parser_proc.c" /* glr.c:846 */
4687 case 164: /* decl_typedef */
4688 #line 314 "src/parser_proc_grammar.y" /* glr.c:846 */
4689 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4690 #line 4691 "src/parser_proc.c" /* glr.c:846 */
4693 case 165: /* typedef */
4694 #line 314 "src/parser_proc_grammar.y" /* glr.c:846 */
4695 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4696 #line 4697 "src/parser_proc.c" /* glr.c:846 */
4699 case 166: /* const_decl_type */
4700 #line 310 "src/parser_proc_grammar.y" /* glr.c:846 */
4701 {psi_decl_type_free(&(*(struct psi_decl_type
**)(&(*yyvaluep
))));}
4702 #line 4703 "src/parser_proc.c" /* glr.c:846 */
4705 case 167: /* decl_type */
4706 #line 310 "src/parser_proc_grammar.y" /* glr.c:846 */
4707 {psi_decl_type_free(&(*(struct psi_decl_type
**)(&(*yyvaluep
))));}
4708 #line 4709 "src/parser_proc.c" /* glr.c:846 */
4711 case 168: /* decl_type_complex */
4712 #line 310 "src/parser_proc_grammar.y" /* glr.c:846 */
4713 {psi_decl_type_free(&(*(struct psi_decl_type
**)(&(*yyvaluep
))));}
4714 #line 4715 "src/parser_proc.c" /* glr.c:846 */
4717 case 169: /* decl_type_simple */
4718 #line 304 "src/parser_proc_grammar.y" /* glr.c:846 */
4719 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4720 #line 4721 "src/parser_proc.c" /* glr.c:846 */
4723 case 170: /* decl_real_type */
4724 #line 304 "src/parser_proc_grammar.y" /* glr.c:846 */
4725 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4726 #line 4727 "src/parser_proc.c" /* glr.c:846 */
4729 case 171: /* decl_stdint_type */
4730 #line 307 "src/parser_proc_grammar.y" /* glr.c:846 */
4732 #line 4733 "src/parser_proc.c" /* glr.c:846 */
4735 case 172: /* int_signed */
4736 #line 282 "src/parser_proc_grammar.y" /* glr.c:846 */
4738 #line 4739 "src/parser_proc.c" /* glr.c:846 */
4741 case 173: /* int_width */
4742 #line 279 "src/parser_proc_grammar.y" /* glr.c:846 */
4743 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4744 #line 4745 "src/parser_proc.c" /* glr.c:846 */
4747 case 174: /* decl_int_type */
4748 #line 304 "src/parser_proc_grammar.y" /* glr.c:846 */
4749 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4750 #line 4751 "src/parser_proc.c" /* glr.c:846 */
4753 case 175: /* int_signed_types */
4754 #line 279 "src/parser_proc_grammar.y" /* glr.c:846 */
4755 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4756 #line 4757 "src/parser_proc.c" /* glr.c:846 */
4759 case 176: /* signed_short_types */
4760 #line 282 "src/parser_proc_grammar.y" /* glr.c:846 */
4762 #line 4763 "src/parser_proc.c" /* glr.c:846 */
4765 case 177: /* signed_long_types */
4766 #line 282 "src/parser_proc_grammar.y" /* glr.c:846 */
4768 #line 4769 "src/parser_proc.c" /* glr.c:846 */
4771 case 178: /* int_width_types */
4772 #line 279 "src/parser_proc_grammar.y" /* glr.c:846 */
4773 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4774 #line 4775 "src/parser_proc.c" /* glr.c:846 */
4777 case 179: /* decl_stmt */
4778 #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */
4779 {psi_decl_free(&(*(struct psi_decl
**)(&(*yyvaluep
))));}
4780 #line 4781 "src/parser_proc.c" /* glr.c:846 */
4783 case 185: /* decl_vars */
4784 #line 326 "src/parser_proc_grammar.y" /* glr.c:846 */
4785 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4786 #line 4787 "src/parser_proc.c" /* glr.c:846 */
4789 case 186: /* decl */
4790 #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */
4791 {psi_decl_free(&(*(struct psi_decl
**)(&(*yyvaluep
))));}
4792 #line 4793 "src/parser_proc.c" /* glr.c:846 */
4795 case 187: /* decl_body */
4796 #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */
4797 {psi_decl_free(&(*(struct psi_decl
**)(&(*yyvaluep
))));}
4798 #line 4799 "src/parser_proc.c" /* glr.c:846 */
4801 case 188: /* decl_func_body */
4802 #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */
4803 {psi_decl_free(&(*(struct psi_decl
**)(&(*yyvaluep
))));}
4804 #line 4805 "src/parser_proc.c" /* glr.c:846 */
4807 case 189: /* decl_functor_body */
4808 #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */
4809 {psi_decl_free(&(*(struct psi_decl
**)(&(*yyvaluep
))));}
4810 #line 4811 "src/parser_proc.c" /* glr.c:846 */
4813 case 190: /* decl_functor */
4814 #line 314 "src/parser_proc_grammar.y" /* glr.c:846 */
4815 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4816 #line 4817 "src/parser_proc.c" /* glr.c:846 */
4819 case 191: /* decl_func */
4820 #line 314 "src/parser_proc_grammar.y" /* glr.c:846 */
4821 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4822 #line 4823 "src/parser_proc.c" /* glr.c:846 */
4825 case 192: /* decl_args */
4826 #line 326 "src/parser_proc_grammar.y" /* glr.c:846 */
4827 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4828 #line 4829 "src/parser_proc.c" /* glr.c:846 */
4831 case 193: /* decl_anon_arg */
4832 #line 314 "src/parser_proc_grammar.y" /* glr.c:846 */
4833 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4834 #line 4835 "src/parser_proc.c" /* glr.c:846 */
4837 case 194: /* decl_arg */
4838 #line 314 "src/parser_proc_grammar.y" /* glr.c:846 */
4839 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4840 #line 4841 "src/parser_proc.c" /* glr.c:846 */
4843 case 195: /* decl_var */
4844 #line 316 "src/parser_proc_grammar.y" /* glr.c:846 */
4845 {psi_decl_var_free(&(*(struct psi_decl_var
**)(&(*yyvaluep
))));}
4846 #line 4847 "src/parser_proc.c" /* glr.c:846 */
4849 case 196: /* decl_union */
4850 #line 320 "src/parser_proc_grammar.y" /* glr.c:846 */
4851 {psi_decl_union_free(&(*(struct psi_decl_union
**)(&(*yyvaluep
))));}
4852 #line 4853 "src/parser_proc.c" /* glr.c:846 */
4855 case 197: /* decl_struct */
4856 #line 318 "src/parser_proc_grammar.y" /* glr.c:846 */
4857 {psi_decl_struct_free(&(*(struct psi_decl_struct
**)(&(*yyvaluep
))));}
4858 #line 4859 "src/parser_proc.c" /* glr.c:846 */
4861 case 198: /* decl_struct_args */
4862 #line 326 "src/parser_proc_grammar.y" /* glr.c:846 */
4863 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4864 #line 4865 "src/parser_proc.c" /* glr.c:846 */
4867 case 199: /* struct_args_block */
4868 #line 326 "src/parser_proc_grammar.y" /* glr.c:846 */
4869 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4870 #line 4871 "src/parser_proc.c" /* glr.c:846 */
4873 case 200: /* struct_args */
4874 #line 326 "src/parser_proc_grammar.y" /* glr.c:846 */
4875 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4876 #line 4877 "src/parser_proc.c" /* glr.c:846 */
4879 case 201: /* struct_arg_var_list */
4880 #line 326 "src/parser_proc_grammar.y" /* glr.c:846 */
4881 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4882 #line 4883 "src/parser_proc.c" /* glr.c:846 */
4885 case 202: /* decl_vars_with_layout */
4886 #line 326 "src/parser_proc_grammar.y" /* glr.c:846 */
4887 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4888 #line 4889 "src/parser_proc.c" /* glr.c:846 */
4891 case 203: /* decl_enum */
4892 #line 322 "src/parser_proc_grammar.y" /* glr.c:846 */
4893 {psi_decl_enum_free(&(*(struct psi_decl_enum
**)(&(*yyvaluep
))));}
4894 #line 4895 "src/parser_proc.c" /* glr.c:846 */
4897 case 204: /* decl_enum_items */
4898 #line 326 "src/parser_proc_grammar.y" /* glr.c:846 */
4899 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4900 #line 4901 "src/parser_proc.c" /* glr.c:846 */
4903 case 205: /* decl_enum_item */
4904 #line 324 "src/parser_proc_grammar.y" /* glr.c:846 */
4905 {psi_decl_enum_item_free(&(*(struct psi_decl_enum_item
**)(&(*yyvaluep
))));}
4906 #line 4907 "src/parser_proc.c" /* glr.c:846 */
4909 case 206: /* num_exp */
4910 #line 377 "src/parser_proc_grammar.y" /* glr.c:846 */
4911 {psi_num_exp_free(&(*(struct psi_num_exp
**)(&(*yyvaluep
))));}
4912 #line 4913 "src/parser_proc.c" /* glr.c:846 */
4915 case 207: /* number */
4916 #line 379 "src/parser_proc_grammar.y" /* glr.c:846 */
4917 {psi_number_free(&(*(struct psi_number
**)(&(*yyvaluep
))));}
4918 #line 4919 "src/parser_proc.c" /* glr.c:846 */
4921 case 208: /* enum_name */
4922 #line 270 "src/parser_proc_grammar.y" /* glr.c:846 */
4923 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4924 #line 4925 "src/parser_proc.c" /* glr.c:846 */
4927 case 209: /* union_name */
4928 #line 270 "src/parser_proc_grammar.y" /* glr.c:846 */
4929 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4930 #line 4931 "src/parser_proc.c" /* glr.c:846 */
4933 case 210: /* struct_name */
4934 #line 270 "src/parser_proc_grammar.y" /* glr.c:846 */
4935 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4936 #line 4937 "src/parser_proc.c" /* glr.c:846 */
4939 case 211: /* optional_name */
4940 #line 270 "src/parser_proc_grammar.y" /* glr.c:846 */
4941 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4942 #line 4943 "src/parser_proc.c" /* glr.c:846 */
4945 case 212: /* decl_layout */
4946 #line 331 "src/parser_proc_grammar.y" /* glr.c:846 */
4947 {psi_layout_free(&(*(struct psi_layout
**)(&(*yyvaluep
))));}
4948 #line 4949 "src/parser_proc.c" /* glr.c:846 */
4951 case 213: /* align_and_size */
4952 #line 329 "src/parser_proc_grammar.y" /* glr.c:846 */
4954 #line 4955 "src/parser_proc.c" /* glr.c:846 */
4957 case 214: /* array_size */
4958 #line 382 "src/parser_proc_grammar.y" /* glr.c:846 */
4960 #line 4961 "src/parser_proc.c" /* glr.c:846 */
4963 case 215: /* indirection */
4964 #line 382 "src/parser_proc_grammar.y" /* glr.c:846 */
4966 #line 4967 "src/parser_proc.c" /* glr.c:846 */
4969 case 216: /* pointers */
4970 #line 382 "src/parser_proc_grammar.y" /* glr.c:846 */
4972 #line 4973 "src/parser_proc.c" /* glr.c:846 */
4975 case 217: /* asterisks */
4976 #line 382 "src/parser_proc_grammar.y" /* glr.c:846 */
4978 #line 4979 "src/parser_proc.c" /* glr.c:846 */
4981 case 218: /* impl */
4982 #line 334 "src/parser_proc_grammar.y" /* glr.c:846 */
4983 {psi_impl_free(&(*(struct psi_impl
**)(&(*yyvaluep
))));}
4984 #line 4985 "src/parser_proc.c" /* glr.c:846 */
4987 case 219: /* impl_func */
4988 #line 336 "src/parser_proc_grammar.y" /* glr.c:846 */
4989 {psi_impl_func_free(&(*(struct psi_impl_func
**)(&(*yyvaluep
))));}
4990 #line 4991 "src/parser_proc.c" /* glr.c:846 */
4993 case 220: /* impl_args */
4994 #line 374 "src/parser_proc_grammar.y" /* glr.c:846 */
4995 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4996 #line 4997 "src/parser_proc.c" /* glr.c:846 */
4999 case 221: /* impl_arg */
5000 #line 338 "src/parser_proc_grammar.y" /* glr.c:846 */
5001 {psi_impl_arg_free(&(*(struct psi_impl_arg
**)(&(*yyvaluep
))));}
5002 #line 5003 "src/parser_proc.c" /* glr.c:846 */
5005 case 222: /* impl_var */
5006 #line 342 "src/parser_proc_grammar.y" /* glr.c:846 */
5007 {psi_impl_var_free(&(*(struct psi_impl_var
**)(&(*yyvaluep
))));}
5008 #line 5009 "src/parser_proc.c" /* glr.c:846 */
5011 case 223: /* impl_type */
5012 #line 340 "src/parser_proc_grammar.y" /* glr.c:846 */
5013 {psi_impl_type_free(&(*(struct psi_impl_type
**)(&(*yyvaluep
))));}
5014 #line 5015 "src/parser_proc.c" /* glr.c:846 */
5017 case 224: /* impl_type_token */
5018 #line 372 "src/parser_proc_grammar.y" /* glr.c:846 */
5019 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
5020 #line 5021 "src/parser_proc.c" /* glr.c:846 */
5023 case 225: /* impl_stmts */
5024 #line 374 "src/parser_proc_grammar.y" /* glr.c:846 */
5025 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
5026 #line 5027 "src/parser_proc.c" /* glr.c:846 */
5029 case 226: /* impl_stmt */
5030 #line 370 "src/parser_proc_grammar.y" /* glr.c:846 */
5031 {psi_impl_stmt_free(&(*(struct psi_token
***)(&(*yyvaluep
))));}
5032 #line 5033 "src/parser_proc.c" /* glr.c:846 */
5035 case 227: /* let_stmt */
5036 #line 345 "src/parser_proc_grammar.y" /* glr.c:846 */
5037 {psi_let_stmt_free(&(*(struct psi_let_stmt
**)(&(*yyvaluep
))));}
5038 #line 5039 "src/parser_proc.c" /* glr.c:846 */
5041 case 228: /* let_exp */
5042 #line 347 "src/parser_proc_grammar.y" /* glr.c:846 */
5043 {psi_let_exp_free(&(*(struct psi_let_exp
**)(&(*yyvaluep
))));}
5044 #line 5045 "src/parser_proc.c" /* glr.c:846 */
5047 case 229: /* let_exp_byref */
5048 #line 347 "src/parser_proc_grammar.y" /* glr.c:846 */
5049 {psi_let_exp_free(&(*(struct psi_let_exp
**)(&(*yyvaluep
))));}
5050 #line 5051 "src/parser_proc.c" /* glr.c:846 */
5053 case 230: /* let_exp_assign */
5054 #line 347 "src/parser_proc_grammar.y" /* glr.c:846 */
5055 {psi_let_exp_free(&(*(struct psi_let_exp
**)(&(*yyvaluep
))));}
5056 #line 5057 "src/parser_proc.c" /* glr.c:846 */
5059 case 231: /* let_calloc */
5060 #line 349 "src/parser_proc_grammar.y" /* glr.c:846 */
5061 {psi_let_calloc_free(&(*(struct psi_let_calloc
**)(&(*yyvaluep
))));}
5062 #line 5063 "src/parser_proc.c" /* glr.c:846 */
5065 case 232: /* let_callback */
5066 #line 351 "src/parser_proc_grammar.y" /* glr.c:846 */
5067 {psi_let_callback_free(&(*(struct psi_let_callback
**)(&(*yyvaluep
))));}
5068 #line 5069 "src/parser_proc.c" /* glr.c:846 */
5071 case 233: /* let_func */
5072 #line 353 "src/parser_proc_grammar.y" /* glr.c:846 */
5073 {psi_let_func_free(&(*(struct psi_let_func
**)(&(*yyvaluep
))));}
5074 #line 5075 "src/parser_proc.c" /* glr.c:846 */
5077 case 234: /* let_func_token */
5078 #line 372 "src/parser_proc_grammar.y" /* glr.c:846 */
5079 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
5080 #line 5081 "src/parser_proc.c" /* glr.c:846 */
5083 case 235: /* let_func_exps */
5084 #line 374 "src/parser_proc_grammar.y" /* glr.c:846 */
5085 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
5086 #line 5087 "src/parser_proc.c" /* glr.c:846 */
5089 case 236: /* let_exps */
5090 #line 374 "src/parser_proc_grammar.y" /* glr.c:846 */
5091 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
5092 #line 5093 "src/parser_proc.c" /* glr.c:846 */
5095 case 237: /* callback_rval */
5096 #line 372 "src/parser_proc_grammar.y" /* glr.c:846 */
5097 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
5098 #line 5099 "src/parser_proc.c" /* glr.c:846 */
5101 case 238: /* callback_arg_list */
5102 #line 374 "src/parser_proc_grammar.y" /* glr.c:846 */
5103 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
5104 #line 5105 "src/parser_proc.c" /* glr.c:846 */
5107 case 239: /* callback_args */
5108 #line 374 "src/parser_proc_grammar.y" /* glr.c:846 */
5109 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
5110 #line 5111 "src/parser_proc.c" /* glr.c:846 */
5113 case 240: /* return_stmt */
5114 #line 363 "src/parser_proc_grammar.y" /* glr.c:846 */
5115 {psi_return_stmt_free(&(*(struct psi_return_stmt
**)(&(*yyvaluep
))));}
5116 #line 5117 "src/parser_proc.c" /* glr.c:846 */
5119 case 241: /* set_stmt */
5120 #line 355 "src/parser_proc_grammar.y" /* glr.c:846 */
5121 {psi_set_stmt_free(&(*(struct psi_set_stmt
**)(&(*yyvaluep
))));}
5122 #line 5123 "src/parser_proc.c" /* glr.c:846 */
5125 case 242: /* set_exp */
5126 #line 357 "src/parser_proc_grammar.y" /* glr.c:846 */
5127 {psi_set_exp_free(&(*(struct psi_set_exp
**)(&(*yyvaluep
))));}
5128 #line 5129 "src/parser_proc.c" /* glr.c:846 */
5131 case 243: /* set_func */
5132 #line 359 "src/parser_proc_grammar.y" /* glr.c:846 */
5133 {psi_set_func_free(&(*(struct psi_set_func
**)(&(*yyvaluep
))));}
5134 #line 5135 "src/parser_proc.c" /* glr.c:846 */
5137 case 244: /* set_func_token */
5138 #line 372 "src/parser_proc_grammar.y" /* glr.c:846 */
5139 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
5140 #line 5141 "src/parser_proc.c" /* glr.c:846 */
5143 case 245: /* set_func_exps */
5144 #line 374 "src/parser_proc_grammar.y" /* glr.c:846 */
5145 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
5146 #line 5147 "src/parser_proc.c" /* glr.c:846 */
5149 case 246: /* set_exps */
5150 #line 374 "src/parser_proc_grammar.y" /* glr.c:846 */
5151 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
5152 #line 5153 "src/parser_proc.c" /* glr.c:846 */
5155 case 247: /* assert_stmt */
5156 #line 361 "src/parser_proc_grammar.y" /* glr.c:846 */
5157 {psi_assert_stmt_free(&(*(struct psi_assert_stmt
**)(&(*yyvaluep
))));}
5158 #line 5159 "src/parser_proc.c" /* glr.c:846 */
5161 case 248: /* assert_stmt_token */
5162 #line 372 "src/parser_proc_grammar.y" /* glr.c:846 */
5163 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
5164 #line 5165 "src/parser_proc.c" /* glr.c:846 */
5167 case 249: /* free_stmt */
5168 #line 365 "src/parser_proc_grammar.y" /* glr.c:846 */
5169 {psi_free_stmt_free(&(*(struct psi_free_stmt
**)(&(*yyvaluep
))));}
5170 #line 5171 "src/parser_proc.c" /* glr.c:846 */
5173 case 250: /* free_exps */
5174 #line 374 "src/parser_proc_grammar.y" /* glr.c:846 */
5175 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
5176 #line 5177 "src/parser_proc.c" /* glr.c:846 */
5179 case 251: /* free_exp */
5180 #line 367 "src/parser_proc_grammar.y" /* glr.c:846 */
5181 {psi_free_exp_free(&(*(struct psi_free_exp
**)(&(*yyvaluep
))));}
5182 #line 5183 "src/parser_proc.c" /* glr.c:846 */
5185 case 252: /* reference */
5186 #line 384 "src/parser_proc_grammar.y" /* glr.c:846 */
5188 #line 5189 "src/parser_proc.c" /* glr.c:846 */
5195 YY_IGNORE_MAYBE_UNINITIALIZED_END
5198 /** Number of symbols composing the right hand side of rule #RULE. */
5200 yyrhsLength (yyRuleNum yyrule
)
5202 return yyr2
[yyrule
];
5206 yydestroyGLRState (char const *yymsg
, yyGLRState
*yys
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5208 if (yys
->yyresolved
)
5209 yydestruct (yymsg
, yystos
[yys
->yylrState
],
5210 &yys
->yysemantics
.yysval
, P
, tokens
, index
);
5216 if (yys
->yysemantics
.yyfirstVal
)
5217 YYFPRINTF (stderr
, "%s unresolved", yymsg
);
5219 YYFPRINTF (stderr
, "%s incomplete", yymsg
);
5220 YY_SYMBOL_PRINT ("", yystos
[yys
->yylrState
], YY_NULLPTR
, &yys
->yyloc
);
5224 if (yys
->yysemantics
.yyfirstVal
)
5226 yySemanticOption
*yyoption
= yys
->yysemantics
.yyfirstVal
;
5229 for (yyrh
= yyoption
->yystate
, yyn
= yyrhsLength (yyoption
->yyrule
);
5231 yyrh
= yyrh
->yypred
, yyn
-= 1)
5232 yydestroyGLRState (yymsg
, yyrh
, P
, tokens
, index
);
5237 /** Left-hand-side symbol for rule #YYRULE. */
5238 static inline yySymbol
5239 yylhsNonterm (yyRuleNum yyrule
)
5241 return yyr1
[yyrule
];
5244 #define yypact_value_is_default(Yystate) \
5245 (!!((Yystate) == (-550)))
5247 /** True iff LR state YYSTATE has only a default reduction (regardless
5249 static inline yybool
5250 yyisDefaultedState (yyStateNum yystate
)
5252 return yypact_value_is_default (yypact
[yystate
]);
5255 /** The default reduction for YYSTATE, assuming it has one. */
5256 static inline yyRuleNum
5257 yydefaultAction (yyStateNum yystate
)
5259 return yydefact
[yystate
];
5262 #define yytable_value_is_error(Yytable_value) \
5265 /** Set *YYACTION to the action to take in YYSTATE on seeing YYTOKEN.
5267 * R < 0: Reduce on rule -R.
5269 * R > 0: Shift to state R.
5270 * Set *YYCONFLICTS to a pointer into yyconfl to a 0-terminated list
5271 * of conflicting reductions.
5274 yygetLRActions (yyStateNum yystate
, int yytoken
,
5275 int* yyaction
, const short int** yyconflicts
)
5277 int yyindex
= yypact
[yystate
] + yytoken
;
5278 if (yypact_value_is_default (yypact
[yystate
])
5279 || yyindex
< 0 || YYLAST
< yyindex
|| yycheck
[yyindex
] != yytoken
)
5281 *yyaction
= -yydefact
[yystate
];
5282 *yyconflicts
= yyconfl
;
5284 else if (! yytable_value_is_error (yytable
[yyindex
]))
5286 *yyaction
= yytable
[yyindex
];
5287 *yyconflicts
= yyconfl
+ yyconflp
[yyindex
];
5292 *yyconflicts
= yyconfl
+ yyconflp
[yyindex
];
5296 /** Compute post-reduction state.
5297 * \param yystate the current state
5298 * \param yysym the nonterminal to push on the stack
5300 static inline yyStateNum
5301 yyLRgotoState (yyStateNum yystate
, yySymbol yysym
)
5303 int yyr
= yypgoto
[yysym
- YYNTOKENS
] + yystate
;
5304 if (0 <= yyr
&& yyr
<= YYLAST
&& yycheck
[yyr
] == yystate
)
5305 return yytable
[yyr
];
5307 return yydefgoto
[yysym
- YYNTOKENS
];
5310 static inline yybool
5311 yyisShiftAction (int yyaction
)
5313 return 0 < yyaction
;
5316 static inline yybool
5317 yyisErrorAction (int yyaction
)
5319 return yyaction
== 0;
5324 /** Return a fresh GLRStackItem in YYSTACKP. The item is an LR state
5325 * if YYISSTATE, and otherwise a semantic option. Callers should call
5326 * YY_RESERVE_GLRSTACK afterwards to make sure there is sufficient
5329 static inline yyGLRStackItem
*
5330 yynewGLRStackItem (yyGLRStack
* yystackp
, yybool yyisState
)
5332 yyGLRStackItem
* yynewItem
= yystackp
->yynextFree
;
5333 yystackp
->yyspaceLeft
-= 1;
5334 yystackp
->yynextFree
+= 1;
5335 yynewItem
->yystate
.yyisState
= yyisState
;
5339 /** Add a new semantic action that will execute the action for rule
5340 * YYRULE on the semantic values in YYRHS to the list of
5341 * alternative actions for YYSTATE. Assumes that YYRHS comes from
5342 * stack #YYK of *YYSTACKP. */
5344 yyaddDeferredAction (yyGLRStack
* yystackp
, size_t yyk
, yyGLRState
* yystate
,
5345 yyGLRState
* yyrhs
, yyRuleNum yyrule
)
5347 yySemanticOption
* yynewOption
=
5348 &yynewGLRStackItem (yystackp
, yyfalse
)->yyoption
;
5349 YYASSERT (!yynewOption
->yyisState
);
5350 yynewOption
->yystate
= yyrhs
;
5351 yynewOption
->yyrule
= yyrule
;
5352 if (yystackp
->yytops
.yylookaheadNeeds
[yyk
])
5354 yynewOption
->yyrawchar
= yychar
;
5355 yynewOption
->yyval
= yylval
;
5358 yynewOption
->yyrawchar
= YYEMPTY
;
5359 yynewOption
->yynext
= yystate
->yysemantics
.yyfirstVal
;
5360 yystate
->yysemantics
.yyfirstVal
= yynewOption
;
5362 YY_RESERVE_GLRSTACK (yystackp
);
5367 /** Initialize YYSET to a singleton set containing an empty stack. */
5369 yyinitStateSet (yyGLRStateSet
* yyset
)
5372 yyset
->yycapacity
= 16;
5373 yyset
->yystates
= (yyGLRState
**) YYMALLOC (16 * sizeof yyset
->yystates
[0]);
5374 if (! yyset
->yystates
)
5376 yyset
->yystates
[0] = YY_NULLPTR
;
5377 yyset
->yylookaheadNeeds
=
5378 (yybool
*) YYMALLOC (16 * sizeof yyset
->yylookaheadNeeds
[0]);
5379 if (! yyset
->yylookaheadNeeds
)
5381 YYFREE (yyset
->yystates
);
5387 static void yyfreeStateSet (yyGLRStateSet
* yyset
)
5389 YYFREE (yyset
->yystates
);
5390 YYFREE (yyset
->yylookaheadNeeds
);
5393 /** Initialize *YYSTACKP to a single empty stack, with total maximum
5394 * capacity for all stacks of YYSIZE. */
5396 yyinitGLRStack (yyGLRStack
* yystackp
, size_t yysize
)
5398 yystackp
->yyerrState
= 0;
5400 yystackp
->yyspaceLeft
= yysize
;
5402 (yyGLRStackItem
*) YYMALLOC (yysize
* sizeof yystackp
->yynextFree
[0]);
5403 if (!yystackp
->yyitems
)
5405 yystackp
->yynextFree
= yystackp
->yyitems
;
5406 yystackp
->yysplitPoint
= YY_NULLPTR
;
5407 yystackp
->yylastDeleted
= YY_NULLPTR
;
5408 return yyinitStateSet (&yystackp
->yytops
);
5412 #if YYSTACKEXPANDABLE
5413 # define YYRELOC(YYFROMITEMS,YYTOITEMS,YYX,YYTYPE) \
5414 &((YYTOITEMS) - ((YYFROMITEMS) - (yyGLRStackItem*) (YYX)))->YYTYPE
5416 /** If *YYSTACKP is expandable, extend it. WARNING: Pointers into the
5417 stack from outside should be considered invalid after this call.
5418 We always expand when there are 1 or fewer items left AFTER an
5419 allocation, so that we can avoid having external pointers exist
5420 across an allocation. */
5422 yyexpandGLRStack (yyGLRStack
* yystackp
)
5424 yyGLRStackItem
* yynewItems
;
5425 yyGLRStackItem
* yyp0
, *yyp1
;
5428 size_t yysize
= yystackp
->yynextFree
- yystackp
->yyitems
;
5429 if (YYMAXDEPTH
- YYHEADROOM
< yysize
)
5430 yyMemoryExhausted (yystackp
);
5431 yynewSize
= 2*yysize
;
5432 if (YYMAXDEPTH
< yynewSize
)
5433 yynewSize
= YYMAXDEPTH
;
5434 yynewItems
= (yyGLRStackItem
*) YYMALLOC (yynewSize
* sizeof yynewItems
[0]);
5436 yyMemoryExhausted (yystackp
);
5437 for (yyp0
= yystackp
->yyitems
, yyp1
= yynewItems
, yyn
= yysize
;
5439 yyn
-= 1, yyp0
+= 1, yyp1
+= 1)
5442 if (*(yybool
*) yyp0
)
5444 yyGLRState
* yys0
= &yyp0
->yystate
;
5445 yyGLRState
* yys1
= &yyp1
->yystate
;
5446 if (yys0
->yypred
!= YY_NULLPTR
)
5448 YYRELOC (yyp0
, yyp1
, yys0
->yypred
, yystate
);
5449 if (! yys0
->yyresolved
&& yys0
->yysemantics
.yyfirstVal
!= YY_NULLPTR
)
5450 yys1
->yysemantics
.yyfirstVal
=
5451 YYRELOC (yyp0
, yyp1
, yys0
->yysemantics
.yyfirstVal
, yyoption
);
5455 yySemanticOption
* yyv0
= &yyp0
->yyoption
;
5456 yySemanticOption
* yyv1
= &yyp1
->yyoption
;
5457 if (yyv0
->yystate
!= YY_NULLPTR
)
5458 yyv1
->yystate
= YYRELOC (yyp0
, yyp1
, yyv0
->yystate
, yystate
);
5459 if (yyv0
->yynext
!= YY_NULLPTR
)
5460 yyv1
->yynext
= YYRELOC (yyp0
, yyp1
, yyv0
->yynext
, yyoption
);
5463 if (yystackp
->yysplitPoint
!= YY_NULLPTR
)
5464 yystackp
->yysplitPoint
= YYRELOC (yystackp
->yyitems
, yynewItems
,
5465 yystackp
->yysplitPoint
, yystate
);
5467 for (yyn
= 0; yyn
< yystackp
->yytops
.yysize
; yyn
+= 1)
5468 if (yystackp
->yytops
.yystates
[yyn
] != YY_NULLPTR
)
5469 yystackp
->yytops
.yystates
[yyn
] =
5470 YYRELOC (yystackp
->yyitems
, yynewItems
,
5471 yystackp
->yytops
.yystates
[yyn
], yystate
);
5472 YYFREE (yystackp
->yyitems
);
5473 yystackp
->yyitems
= yynewItems
;
5474 yystackp
->yynextFree
= yynewItems
+ yysize
;
5475 yystackp
->yyspaceLeft
= yynewSize
- yysize
;
5480 yyfreeGLRStack (yyGLRStack
* yystackp
)
5482 YYFREE (yystackp
->yyitems
);
5483 yyfreeStateSet (&yystackp
->yytops
);
5486 /** Assuming that YYS is a GLRState somewhere on *YYSTACKP, update the
5487 * splitpoint of *YYSTACKP, if needed, so that it is at least as deep as
5490 yyupdateSplit (yyGLRStack
* yystackp
, yyGLRState
* yys
)
5492 if (yystackp
->yysplitPoint
!= YY_NULLPTR
&& yystackp
->yysplitPoint
> yys
)
5493 yystackp
->yysplitPoint
= yys
;
5496 /** Invalidate stack #YYK in *YYSTACKP. */
5498 yymarkStackDeleted (yyGLRStack
* yystackp
, size_t yyk
)
5500 if (yystackp
->yytops
.yystates
[yyk
] != YY_NULLPTR
)
5501 yystackp
->yylastDeleted
= yystackp
->yytops
.yystates
[yyk
];
5502 yystackp
->yytops
.yystates
[yyk
] = YY_NULLPTR
;
5505 /** Undelete the last stack in *YYSTACKP that was marked as deleted. Can
5506 only be done once after a deletion, and only when all other stacks have
5509 yyundeleteLastStack (yyGLRStack
* yystackp
)
5511 if (yystackp
->yylastDeleted
== YY_NULLPTR
|| yystackp
->yytops
.yysize
!= 0)
5513 yystackp
->yytops
.yystates
[0] = yystackp
->yylastDeleted
;
5514 yystackp
->yytops
.yysize
= 1;
5515 YYDPRINTF ((stderr
, "Restoring last deleted stack as stack #0.\n"));
5516 yystackp
->yylastDeleted
= YY_NULLPTR
;
5520 yyremoveDeletes (yyGLRStack
* yystackp
)
5524 while (yyj
< yystackp
->yytops
.yysize
)
5526 if (yystackp
->yytops
.yystates
[yyi
] == YY_NULLPTR
)
5530 YYDPRINTF ((stderr
, "Removing dead stacks.\n"));
5532 yystackp
->yytops
.yysize
-= 1;
5536 yystackp
->yytops
.yystates
[yyj
] = yystackp
->yytops
.yystates
[yyi
];
5537 /* In the current implementation, it's unnecessary to copy
5538 yystackp->yytops.yylookaheadNeeds[yyi] since, after
5539 yyremoveDeletes returns, the parser immediately either enters
5540 deterministic operation or shifts a token. However, it doesn't
5541 hurt, and the code might evolve to need it. */
5542 yystackp
->yytops
.yylookaheadNeeds
[yyj
] =
5543 yystackp
->yytops
.yylookaheadNeeds
[yyi
];
5546 YYDPRINTF ((stderr
, "Rename stack %lu -> %lu.\n",
5547 (unsigned long int) yyi
, (unsigned long int) yyj
));
5555 /** Shift to a new state on stack #YYK of *YYSTACKP, corresponding to LR
5556 * state YYLRSTATE, at input position YYPOSN, with (resolved) semantic
5557 * value *YYVALP and source location *YYLOCP. */
5559 yyglrShift (yyGLRStack
* yystackp
, size_t yyk
, yyStateNum yylrState
,
5563 yyGLRState
* yynewState
= &yynewGLRStackItem (yystackp
, yytrue
)->yystate
;
5565 yynewState
->yylrState
= yylrState
;
5566 yynewState
->yyposn
= yyposn
;
5567 yynewState
->yyresolved
= yytrue
;
5568 yynewState
->yypred
= yystackp
->yytops
.yystates
[yyk
];
5569 yynewState
->yysemantics
.yysval
= *yyvalp
;
5570 yystackp
->yytops
.yystates
[yyk
] = yynewState
;
5572 YY_RESERVE_GLRSTACK (yystackp
);
5575 /** Shift stack #YYK of *YYSTACKP, to a new state corresponding to LR
5576 * state YYLRSTATE, at input position YYPOSN, with the (unresolved)
5577 * semantic value of YYRHS under the action for YYRULE. */
5579 yyglrShiftDefer (yyGLRStack
* yystackp
, size_t yyk
, yyStateNum yylrState
,
5580 size_t yyposn
, yyGLRState
* yyrhs
, yyRuleNum yyrule
)
5582 yyGLRState
* yynewState
= &yynewGLRStackItem (yystackp
, yytrue
)->yystate
;
5583 YYASSERT (yynewState
->yyisState
);
5585 yynewState
->yylrState
= yylrState
;
5586 yynewState
->yyposn
= yyposn
;
5587 yynewState
->yyresolved
= yyfalse
;
5588 yynewState
->yypred
= yystackp
->yytops
.yystates
[yyk
];
5589 yynewState
->yysemantics
.yyfirstVal
= YY_NULLPTR
;
5590 yystackp
->yytops
.yystates
[yyk
] = yynewState
;
5592 /* Invokes YY_RESERVE_GLRSTACK. */
5593 yyaddDeferredAction (yystackp
, yyk
, yynewState
, yyrhs
, yyrule
);
5597 # define YY_REDUCE_PRINT(Args)
5599 # define YY_REDUCE_PRINT(Args) \
5602 yy_reduce_print Args; \
5605 /*----------------------------------------------------------------------.
5606 | Report that stack #YYK of *YYSTACKP is going to be reduced by YYRULE. |
5607 `----------------------------------------------------------------------*/
5610 yy_reduce_print (int yynormal
, yyGLRStackItem
* yyvsp
, size_t yyk
,
5611 yyRuleNum yyrule
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5613 int yynrhs
= yyrhsLength (yyrule
);
5615 YYFPRINTF (stderr
, "Reducing stack %lu by rule %d (line %lu):\n",
5616 (unsigned long int) yyk
, yyrule
- 1,
5617 (unsigned long int) yyrline
[yyrule
]);
5619 yyfillin (yyvsp
, 1, -yynrhs
);
5620 /* The symbols being reduced. */
5621 for (yyi
= 0; yyi
< yynrhs
; yyi
++)
5623 YYFPRINTF (stderr
, " $%d = ", yyi
+ 1);
5624 yy_symbol_print (stderr
,
5625 yystos
[yyvsp
[yyi
- yynrhs
+ 1].yystate
.yylrState
],
5626 &yyvsp
[yyi
- yynrhs
+ 1].yystate
.yysemantics
.yysval
5627 , P
, tokens
, index
);
5628 if (!yyvsp
[yyi
- yynrhs
+ 1].yystate
.yyresolved
)
5629 YYFPRINTF (stderr
, " (unresolved)");
5630 YYFPRINTF (stderr
, "\n");
5635 /** Pop the symbols consumed by reduction #YYRULE from the top of stack
5636 * #YYK of *YYSTACKP, and perform the appropriate semantic action on their
5637 * semantic values. Assumes that all ambiguities in semantic values
5638 * have been previously resolved. Set *YYVALP to the resulting value,
5639 * and *YYLOCP to the computed location (if any). Return value is as
5640 * for userAction. */
5641 static inline YYRESULTTAG
5642 yydoAction (yyGLRStack
* yystackp
, size_t yyk
, yyRuleNum yyrule
,
5643 YYSTYPE
* yyvalp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5645 int yynrhs
= yyrhsLength (yyrule
);
5647 if (yystackp
->yysplitPoint
== YY_NULLPTR
)
5649 /* Standard special case: single stack. */
5650 yyGLRStackItem
* yyrhs
= (yyGLRStackItem
*) yystackp
->yytops
.yystates
[yyk
];
5651 YYASSERT (yyk
== 0);
5652 yystackp
->yynextFree
-= yynrhs
;
5653 yystackp
->yyspaceLeft
+= yynrhs
;
5654 yystackp
->yytops
.yystates
[0] = & yystackp
->yynextFree
[-1].yystate
;
5655 YY_REDUCE_PRINT ((1, yyrhs
, yyk
, yyrule
, P
, tokens
, index
));
5656 return yyuserAction (yyrule
, yynrhs
, yyrhs
, yystackp
,
5657 yyvalp
, P
, tokens
, index
);
5663 yyGLRStackItem yyrhsVals
[YYMAXRHS
+ YYMAXLEFT
+ 1];
5664 yys
= yyrhsVals
[YYMAXRHS
+ YYMAXLEFT
].yystate
.yypred
5665 = yystackp
->yytops
.yystates
[yyk
];
5666 for (yyi
= 0; yyi
< yynrhs
; yyi
+= 1)
5671 yyupdateSplit (yystackp
, yys
);
5672 yystackp
->yytops
.yystates
[yyk
] = yys
;
5673 YY_REDUCE_PRINT ((0, yyrhsVals
+ YYMAXRHS
+ YYMAXLEFT
- 1, yyk
, yyrule
, P
, tokens
, index
));
5674 return yyuserAction (yyrule
, yynrhs
, yyrhsVals
+ YYMAXRHS
+ YYMAXLEFT
- 1,
5675 yystackp
, yyvalp
, P
, tokens
, index
);
5679 /** Pop items off stack #YYK of *YYSTACKP according to grammar rule YYRULE,
5680 * and push back on the resulting nonterminal symbol. Perform the
5681 * semantic action associated with YYRULE and store its value with the
5682 * newly pushed state, if YYFORCEEVAL or if *YYSTACKP is currently
5683 * unambiguous. Otherwise, store the deferred semantic action with
5684 * the new state. If the new state would have an identical input
5685 * position, LR state, and predecessor to an existing state on the stack,
5686 * it is identified with that existing state, eliminating stack #YYK from
5687 * *YYSTACKP. In this case, the semantic value is
5688 * added to the options for the existing state's semantic value.
5690 static inline YYRESULTTAG
5691 yyglrReduce (yyGLRStack
* yystackp
, size_t yyk
, yyRuleNum yyrule
,
5692 yybool yyforceEval
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5694 size_t yyposn
= yystackp
->yytops
.yystates
[yyk
]->yyposn
;
5696 if (yyforceEval
|| yystackp
->yysplitPoint
== YY_NULLPTR
)
5700 YYRESULTTAG yyflag
= yydoAction (yystackp
, yyk
, yyrule
, &yysval
, P
, tokens
, index
);
5701 if (yyflag
== yyerr
&& yystackp
->yysplitPoint
!= YY_NULLPTR
)
5703 YYDPRINTF ((stderr
, "Parse on stack %lu rejected by rule #%d.\n",
5704 (unsigned long int) yyk
, yyrule
- 1));
5708 YY_SYMBOL_PRINT ("-> $$ =", yyr1
[yyrule
], &yysval
, &yyloc
);
5709 yyglrShift (yystackp
, yyk
,
5710 yyLRgotoState (yystackp
->yytops
.yystates
[yyk
]->yylrState
,
5711 yylhsNonterm (yyrule
)),
5718 yyGLRState
* yys
, *yys0
= yystackp
->yytops
.yystates
[yyk
];
5719 yyStateNum yynewLRState
;
5721 for (yys
= yystackp
->yytops
.yystates
[yyk
], yyn
= yyrhsLength (yyrule
);
5727 yyupdateSplit (yystackp
, yys
);
5728 yynewLRState
= yyLRgotoState (yys
->yylrState
, yylhsNonterm (yyrule
));
5730 "Reduced stack %lu by rule #%d; action deferred. "
5731 "Now in state %d.\n",
5732 (unsigned long int) yyk
, yyrule
- 1, yynewLRState
));
5733 for (yyi
= 0; yyi
< yystackp
->yytops
.yysize
; yyi
+= 1)
5734 if (yyi
!= yyk
&& yystackp
->yytops
.yystates
[yyi
] != YY_NULLPTR
)
5736 yyGLRState
*yysplit
= yystackp
->yysplitPoint
;
5737 yyGLRState
*yyp
= yystackp
->yytops
.yystates
[yyi
];
5738 while (yyp
!= yys
&& yyp
!= yysplit
&& yyp
->yyposn
>= yyposn
)
5740 if (yyp
->yylrState
== yynewLRState
&& yyp
->yypred
== yys
)
5742 yyaddDeferredAction (yystackp
, yyk
, yyp
, yys0
, yyrule
);
5743 yymarkStackDeleted (yystackp
, yyk
);
5744 YYDPRINTF ((stderr
, "Merging stack %lu into stack %lu.\n",
5745 (unsigned long int) yyk
,
5746 (unsigned long int) yyi
));
5752 yystackp
->yytops
.yystates
[yyk
] = yys
;
5753 yyglrShiftDefer (yystackp
, yyk
, yynewLRState
, yyposn
, yys0
, yyrule
);
5759 yysplitStack (yyGLRStack
* yystackp
, size_t yyk
)
5761 if (yystackp
->yysplitPoint
== YY_NULLPTR
)
5763 YYASSERT (yyk
== 0);
5764 yystackp
->yysplitPoint
= yystackp
->yytops
.yystates
[yyk
];
5766 if (yystackp
->yytops
.yysize
>= yystackp
->yytops
.yycapacity
)
5768 yyGLRState
** yynewStates
;
5769 yybool
* yynewLookaheadNeeds
;
5771 yynewStates
= YY_NULLPTR
;
5773 if (yystackp
->yytops
.yycapacity
5774 > (YYSIZEMAX
/ (2 * sizeof yynewStates
[0])))
5775 yyMemoryExhausted (yystackp
);
5776 yystackp
->yytops
.yycapacity
*= 2;
5779 (yyGLRState
**) YYREALLOC (yystackp
->yytops
.yystates
,
5780 (yystackp
->yytops
.yycapacity
5781 * sizeof yynewStates
[0]));
5782 if (yynewStates
== YY_NULLPTR
)
5783 yyMemoryExhausted (yystackp
);
5784 yystackp
->yytops
.yystates
= yynewStates
;
5786 yynewLookaheadNeeds
=
5787 (yybool
*) YYREALLOC (yystackp
->yytops
.yylookaheadNeeds
,
5788 (yystackp
->yytops
.yycapacity
5789 * sizeof yynewLookaheadNeeds
[0]));
5790 if (yynewLookaheadNeeds
== YY_NULLPTR
)
5791 yyMemoryExhausted (yystackp
);
5792 yystackp
->yytops
.yylookaheadNeeds
= yynewLookaheadNeeds
;
5794 yystackp
->yytops
.yystates
[yystackp
->yytops
.yysize
]
5795 = yystackp
->yytops
.yystates
[yyk
];
5796 yystackp
->yytops
.yylookaheadNeeds
[yystackp
->yytops
.yysize
]
5797 = yystackp
->yytops
.yylookaheadNeeds
[yyk
];
5798 yystackp
->yytops
.yysize
+= 1;
5799 return yystackp
->yytops
.yysize
-1;
5802 /** True iff YYY0 and YYY1 represent identical options at the top level.
5803 * That is, they represent the same rule applied to RHS symbols
5804 * that produce the same terminal symbols. */
5806 yyidenticalOptions (yySemanticOption
* yyy0
, yySemanticOption
* yyy1
)
5808 if (yyy0
->yyrule
== yyy1
->yyrule
)
5810 yyGLRState
*yys0
, *yys1
;
5812 for (yys0
= yyy0
->yystate
, yys1
= yyy1
->yystate
,
5813 yyn
= yyrhsLength (yyy0
->yyrule
);
5815 yys0
= yys0
->yypred
, yys1
= yys1
->yypred
, yyn
-= 1)
5816 if (yys0
->yyposn
!= yys1
->yyposn
)
5824 /** Assuming identicalOptions (YYY0,YYY1), destructively merge the
5825 * alternative semantic values for the RHS-symbols of YYY1 and YYY0. */
5827 yymergeOptionSets (yySemanticOption
* yyy0
, yySemanticOption
* yyy1
)
5829 yyGLRState
*yys0
, *yys1
;
5831 for (yys0
= yyy0
->yystate
, yys1
= yyy1
->yystate
,
5832 yyn
= yyrhsLength (yyy0
->yyrule
);
5834 yys0
= yys0
->yypred
, yys1
= yys1
->yypred
, yyn
-= 1)
5838 else if (yys0
->yyresolved
)
5840 yys1
->yyresolved
= yytrue
;
5841 yys1
->yysemantics
.yysval
= yys0
->yysemantics
.yysval
;
5843 else if (yys1
->yyresolved
)
5845 yys0
->yyresolved
= yytrue
;
5846 yys0
->yysemantics
.yysval
= yys1
->yysemantics
.yysval
;
5850 yySemanticOption
** yyz0p
= &yys0
->yysemantics
.yyfirstVal
;
5851 yySemanticOption
* yyz1
= yys1
->yysemantics
.yyfirstVal
;
5854 if (yyz1
== *yyz0p
|| yyz1
== YY_NULLPTR
)
5856 else if (*yyz0p
== YY_NULLPTR
)
5861 else if (*yyz0p
< yyz1
)
5863 yySemanticOption
* yyz
= *yyz0p
;
5865 yyz1
= yyz1
->yynext
;
5866 (*yyz0p
)->yynext
= yyz
;
5868 yyz0p
= &(*yyz0p
)->yynext
;
5870 yys1
->yysemantics
.yyfirstVal
= yys0
->yysemantics
.yyfirstVal
;
5875 /** Y0 and Y1 represent two possible actions to take in a given
5876 * parsing state; return 0 if no combination is possible,
5877 * 1 if user-mergeable, 2 if Y0 is preferred, 3 if Y1 is preferred. */
5879 yypreference (yySemanticOption
* y0
, yySemanticOption
* y1
)
5881 yyRuleNum r0
= y0
->yyrule
, r1
= y1
->yyrule
;
5882 int p0
= yydprec
[r0
], p1
= yydprec
[r1
];
5886 if (yymerger
[r0
] == 0 || yymerger
[r0
] != yymerger
[r1
])
5891 if (p0
== 0 || p1
== 0)
5900 static YYRESULTTAG
yyresolveValue (yyGLRState
* yys
,
5901 yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
);
5904 /** Resolve the previous YYN states starting at and including state YYS
5905 * on *YYSTACKP. If result != yyok, some states may have been left
5906 * unresolved possibly with empty semantic option chains. Regardless
5907 * of whether result = yyok, each state has been left with consistent
5908 * data so that yydestroyGLRState can be invoked if necessary. */
5910 yyresolveStates (yyGLRState
* yys
, int yyn
,
5911 yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5915 YYASSERT (yys
->yypred
);
5916 YYCHK (yyresolveStates (yys
->yypred
, yyn
-1, yystackp
, P
, tokens
, index
));
5917 if (! yys
->yyresolved
)
5918 YYCHK (yyresolveValue (yys
, yystackp
, P
, tokens
, index
));
5923 /** Resolve the states for the RHS of YYOPT on *YYSTACKP, perform its
5924 * user action, and return the semantic value and location in *YYVALP
5925 * and *YYLOCP. Regardless of whether result = yyok, all RHS states
5926 * have been destroyed (assuming the user action destroys all RHS
5927 * semantic values if invoked). */
5929 yyresolveAction (yySemanticOption
* yyopt
, yyGLRStack
* yystackp
,
5930 YYSTYPE
* yyvalp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5932 yyGLRStackItem yyrhsVals
[YYMAXRHS
+ YYMAXLEFT
+ 1];
5933 int yynrhs
= yyrhsLength (yyopt
->yyrule
);
5934 YYRESULTTAG yyflag
=
5935 yyresolveStates (yyopt
->yystate
, yynrhs
, yystackp
, P
, tokens
, index
);
5939 for (yys
= yyopt
->yystate
; yynrhs
> 0; yys
= yys
->yypred
, yynrhs
-= 1)
5940 yydestroyGLRState ("Cleanup: popping", yys
, P
, tokens
, index
);
5944 yyrhsVals
[YYMAXRHS
+ YYMAXLEFT
].yystate
.yypred
= yyopt
->yystate
;
5946 int yychar_current
= yychar
;
5947 YYSTYPE yylval_current
= yylval
;
5948 yychar
= yyopt
->yyrawchar
;
5949 yylval
= yyopt
->yyval
;
5950 yyflag
= yyuserAction (yyopt
->yyrule
, yynrhs
,
5951 yyrhsVals
+ YYMAXRHS
+ YYMAXLEFT
- 1,
5952 yystackp
, yyvalp
, P
, tokens
, index
);
5953 yychar
= yychar_current
;
5954 yylval
= yylval_current
;
5961 yyreportTree (yySemanticOption
* yyx
, int yyindent
)
5963 int yynrhs
= yyrhsLength (yyx
->yyrule
);
5966 yyGLRState
* yystates
[1 + YYMAXRHS
];
5967 yyGLRState yyleftmost_state
;
5969 for (yyi
= yynrhs
, yys
= yyx
->yystate
; 0 < yyi
; yyi
-= 1, yys
= yys
->yypred
)
5970 yystates
[yyi
] = yys
;
5971 if (yys
== YY_NULLPTR
)
5973 yyleftmost_state
.yyposn
= 0;
5974 yystates
[0] = &yyleftmost_state
;
5979 if (yyx
->yystate
->yyposn
< yys
->yyposn
+ 1)
5980 YYFPRINTF (stderr
, "%*s%s -> <Rule %d, empty>\n",
5981 yyindent
, "", yytokenName (yylhsNonterm (yyx
->yyrule
)),
5984 YYFPRINTF (stderr
, "%*s%s -> <Rule %d, tokens %lu .. %lu>\n",
5985 yyindent
, "", yytokenName (yylhsNonterm (yyx
->yyrule
)),
5986 yyx
->yyrule
- 1, (unsigned long int) (yys
->yyposn
+ 1),
5987 (unsigned long int) yyx
->yystate
->yyposn
);
5988 for (yyi
= 1; yyi
<= yynrhs
; yyi
+= 1)
5990 if (yystates
[yyi
]->yyresolved
)
5992 if (yystates
[yyi
-1]->yyposn
+1 > yystates
[yyi
]->yyposn
)
5993 YYFPRINTF (stderr
, "%*s%s <empty>\n", yyindent
+2, "",
5994 yytokenName (yystos
[yystates
[yyi
]->yylrState
]));
5996 YYFPRINTF (stderr
, "%*s%s <tokens %lu .. %lu>\n", yyindent
+2, "",
5997 yytokenName (yystos
[yystates
[yyi
]->yylrState
]),
5998 (unsigned long int) (yystates
[yyi
-1]->yyposn
+ 1),
5999 (unsigned long int) yystates
[yyi
]->yyposn
);
6002 yyreportTree (yystates
[yyi
]->yysemantics
.yyfirstVal
, yyindent
+2);
6008 yyreportAmbiguity (yySemanticOption
* yyx0
,
6009 yySemanticOption
* yyx1
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6015 YYFPRINTF (stderr
, "Ambiguity detected.\n");
6016 YYFPRINTF (stderr
, "Option 1,\n");
6017 yyreportTree (yyx0
, 2);
6018 YYFPRINTF (stderr
, "\nOption 2,\n");
6019 yyreportTree (yyx1
, 2);
6020 YYFPRINTF (stderr
, "\n");
6023 yyerror (P
, tokens
, index
, YY_("syntax is ambiguous"));
6027 /** Resolve the ambiguity represented in state YYS in *YYSTACKP,
6028 * perform the indicated actions, and set the semantic value of YYS.
6029 * If result != yyok, the chain of semantic options in YYS has been
6030 * cleared instead or it has been left unmodified except that
6031 * redundant options may have been removed. Regardless of whether
6032 * result = yyok, YYS has been left with consistent data so that
6033 * yydestroyGLRState can be invoked if necessary. */
6035 yyresolveValue (yyGLRState
* yys
, yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6037 yySemanticOption
* yyoptionList
= yys
->yysemantics
.yyfirstVal
;
6038 yySemanticOption
* yybest
= yyoptionList
;
6039 yySemanticOption
** yypp
;
6040 yybool yymerge
= yyfalse
;
6044 for (yypp
= &yyoptionList
->yynext
; *yypp
!= YY_NULLPTR
; )
6046 yySemanticOption
* yyp
= *yypp
;
6048 if (yyidenticalOptions (yybest
, yyp
))
6050 yymergeOptionSets (yybest
, yyp
);
6051 *yypp
= yyp
->yynext
;
6055 switch (yypreference (yybest
, yyp
))
6058 return yyreportAmbiguity (yybest
, yyp
, P
, tokens
, index
);
6070 /* This cannot happen so it is not worth a YYASSERT (yyfalse),
6071 but some compilers complain if the default case is
6075 yypp
= &yyp
->yynext
;
6081 yySemanticOption
* yyp
;
6082 int yyprec
= yydprec
[yybest
->yyrule
];
6083 yyflag
= yyresolveAction (yybest
, yystackp
, &yysval
, P
, tokens
, index
);
6085 for (yyp
= yybest
->yynext
; yyp
!= YY_NULLPTR
; yyp
= yyp
->yynext
)
6087 if (yyprec
== yydprec
[yyp
->yyrule
])
6089 YYSTYPE yysval_other
;
6090 yyflag
= yyresolveAction (yyp
, yystackp
, &yysval_other
, P
, tokens
, index
);
6093 yydestruct ("Cleanup: discarding incompletely merged value for",
6094 yystos
[yys
->yylrState
],
6095 &yysval
, P
, tokens
, index
);
6098 yyuserMerge (yymerger
[yyp
->yyrule
], &yysval
, &yysval_other
);
6103 yyflag
= yyresolveAction (yybest
, yystackp
, &yysval
, P
, tokens
, index
);
6107 yys
->yyresolved
= yytrue
;
6108 yys
->yysemantics
.yysval
= yysval
;
6111 yys
->yysemantics
.yyfirstVal
= YY_NULLPTR
;
6116 yyresolveStack (yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6118 if (yystackp
->yysplitPoint
!= YY_NULLPTR
)
6123 for (yyn
= 0, yys
= yystackp
->yytops
.yystates
[0];
6124 yys
!= yystackp
->yysplitPoint
;
6125 yys
= yys
->yypred
, yyn
+= 1)
6127 YYCHK (yyresolveStates (yystackp
->yytops
.yystates
[0], yyn
, yystackp
6128 , P
, tokens
, index
));
6134 yycompressStack (yyGLRStack
* yystackp
)
6136 yyGLRState
* yyp
, *yyq
, *yyr
;
6138 if (yystackp
->yytops
.yysize
!= 1 || yystackp
->yysplitPoint
== YY_NULLPTR
)
6141 for (yyp
= yystackp
->yytops
.yystates
[0], yyq
= yyp
->yypred
, yyr
= YY_NULLPTR
;
6142 yyp
!= yystackp
->yysplitPoint
;
6143 yyr
= yyp
, yyp
= yyq
, yyq
= yyp
->yypred
)
6146 yystackp
->yyspaceLeft
+= yystackp
->yynextFree
- yystackp
->yyitems
;
6147 yystackp
->yynextFree
= ((yyGLRStackItem
*) yystackp
->yysplitPoint
) + 1;
6148 yystackp
->yyspaceLeft
-= yystackp
->yynextFree
- yystackp
->yyitems
;
6149 yystackp
->yysplitPoint
= YY_NULLPTR
;
6150 yystackp
->yylastDeleted
= YY_NULLPTR
;
6152 while (yyr
!= YY_NULLPTR
)
6154 yystackp
->yynextFree
->yystate
= *yyr
;
6156 yystackp
->yynextFree
->yystate
.yypred
= &yystackp
->yynextFree
[-1].yystate
;
6157 yystackp
->yytops
.yystates
[0] = &yystackp
->yynextFree
->yystate
;
6158 yystackp
->yynextFree
+= 1;
6159 yystackp
->yyspaceLeft
-= 1;
6164 yyprocessOneStack (yyGLRStack
* yystackp
, size_t yyk
,
6165 size_t yyposn
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6167 while (yystackp
->yytops
.yystates
[yyk
] != YY_NULLPTR
)
6169 yyStateNum yystate
= yystackp
->yytops
.yystates
[yyk
]->yylrState
;
6170 YYDPRINTF ((stderr
, "Stack %lu Entering state %d\n",
6171 (unsigned long int) yyk
, yystate
));
6173 YYASSERT (yystate
!= YYFINAL
);
6175 if (yyisDefaultedState (yystate
))
6178 yyRuleNum yyrule
= yydefaultAction (yystate
);
6181 YYDPRINTF ((stderr
, "Stack %lu dies.\n",
6182 (unsigned long int) yyk
));
6183 yymarkStackDeleted (yystackp
, yyk
);
6186 yyflag
= yyglrReduce (yystackp
, yyk
, yyrule
, yyimmediate
[yyrule
], P
, tokens
, index
);
6187 if (yyflag
== yyerr
)
6191 "(predicate failure or explicit user error).\n",
6192 (unsigned long int) yyk
));
6193 yymarkStackDeleted (yystackp
, yyk
);
6203 const short int* yyconflicts
;
6205 yystackp
->yytops
.yylookaheadNeeds
[yyk
] = yytrue
;
6206 if (yychar
== YYEMPTY
)
6208 YYDPRINTF ((stderr
, "Reading a token: "));
6209 yychar
= yylex (&yylval
, P
, tokens
, index
);
6212 if (yychar
<= YYEOF
)
6214 yychar
= yytoken
= YYEOF
;
6215 YYDPRINTF ((stderr
, "Now at end of input.\n"));
6219 yytoken
= YYTRANSLATE (yychar
);
6220 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
6223 yygetLRActions (yystate
, yytoken
, &yyaction
, &yyconflicts
);
6225 while (*yyconflicts
!= 0)
6228 size_t yynewStack
= yysplitStack (yystackp
, yyk
);
6229 YYDPRINTF ((stderr
, "Splitting off stack %lu from %lu.\n",
6230 (unsigned long int) yynewStack
,
6231 (unsigned long int) yyk
));
6232 yyflag
= yyglrReduce (yystackp
, yynewStack
,
6234 yyimmediate
[*yyconflicts
], P
, tokens
, index
);
6236 YYCHK (yyprocessOneStack (yystackp
, yynewStack
,
6237 yyposn
, P
, tokens
, index
));
6238 else if (yyflag
== yyerr
)
6240 YYDPRINTF ((stderr
, "Stack %lu dies.\n",
6241 (unsigned long int) yynewStack
));
6242 yymarkStackDeleted (yystackp
, yynewStack
);
6249 if (yyisShiftAction (yyaction
))
6251 else if (yyisErrorAction (yyaction
))
6253 YYDPRINTF ((stderr
, "Stack %lu dies.\n",
6254 (unsigned long int) yyk
));
6255 yymarkStackDeleted (yystackp
, yyk
);
6260 YYRESULTTAG yyflag
= yyglrReduce (yystackp
, yyk
, -yyaction
,
6261 yyimmediate
[-yyaction
], P
, tokens
, index
);
6262 if (yyflag
== yyerr
)
6266 "(predicate failure or explicit user error).\n",
6267 (unsigned long int) yyk
));
6268 yymarkStackDeleted (yystackp
, yyk
);
6271 else if (yyflag
!= yyok
)
6280 yyreportSyntaxError (yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6282 if (yystackp
->yyerrState
!= 0)
6284 #if ! YYERROR_VERBOSE
6285 yyerror (P
, tokens
, index
, YY_("syntax error"));
6288 yySymbol yytoken
= yychar
== YYEMPTY
? YYEMPTY
: YYTRANSLATE (yychar
);
6289 size_t yysize0
= yytnamerr (YY_NULLPTR
, yytokenName (yytoken
));
6290 size_t yysize
= yysize0
;
6291 yybool yysize_overflow
= yyfalse
;
6292 char* yymsg
= YY_NULLPTR
;
6293 enum { YYERROR_VERBOSE_ARGS_MAXIMUM
= 5 };
6294 /* Internationalized format string. */
6295 const char *yyformat
= YY_NULLPTR
;
6296 /* Arguments of yyformat. */
6297 char const *yyarg
[YYERROR_VERBOSE_ARGS_MAXIMUM
];
6298 /* Number of reported tokens (one for the "unexpected", one per
6302 /* There are many possibilities here to consider:
6303 - If this state is a consistent state with a default action, then
6304 the only way this function was invoked is if the default action
6305 is an error action. In that case, don't check for expected
6306 tokens because there are none.
6307 - The only way there can be no lookahead present (in yychar) is if
6308 this state is a consistent state with a default action. Thus,
6309 detecting the absence of a lookahead is sufficient to determine
6310 that there is no unexpected or expected token to report. In that
6311 case, just report a simple "syntax error".
6312 - Don't assume there isn't a lookahead just because this state is a
6313 consistent state with a default action. There might have been a
6314 previous inconsistent state, consistent state with a non-default
6315 action, or user semantic action that manipulated yychar.
6316 - Of course, the expected token list depends on states to have
6317 correct lookahead information, and it depends on the parser not
6318 to perform extra reductions after fetching a lookahead from the
6319 scanner and before detecting a syntax error. Thus, state merging
6320 (from LALR or IELR) and default reductions corrupt the expected
6321 token list. However, the list is correct for canonical LR with
6322 one exception: it will still contain any token that will not be
6323 accepted due to an error action in a later state.
6325 if (yytoken
!= YYEMPTY
)
6327 int yyn
= yypact
[yystackp
->yytops
.yystates
[0]->yylrState
];
6328 yyarg
[yycount
++] = yytokenName (yytoken
);
6329 if (!yypact_value_is_default (yyn
))
6331 /* Start YYX at -YYN if negative to avoid negative indexes in
6332 YYCHECK. In other words, skip the first -YYN actions for this
6333 state because they are default actions. */
6334 int yyxbegin
= yyn
< 0 ? -yyn
: 0;
6335 /* Stay within bounds of both yycheck and yytname. */
6336 int yychecklim
= YYLAST
- yyn
+ 1;
6337 int yyxend
= yychecklim
< YYNTOKENS
? yychecklim
: YYNTOKENS
;
6339 for (yyx
= yyxbegin
; yyx
< yyxend
; ++yyx
)
6340 if (yycheck
[yyx
+ yyn
] == yyx
&& yyx
!= YYTERROR
6341 && !yytable_value_is_error (yytable
[yyx
+ yyn
]))
6343 if (yycount
== YYERROR_VERBOSE_ARGS_MAXIMUM
)
6349 yyarg
[yycount
++] = yytokenName (yyx
);
6351 size_t yysz
= yysize
+ yytnamerr (YY_NULLPTR
, yytokenName (yyx
));
6352 yysize_overflow
|= yysz
< yysize
;
6361 #define YYCASE_(N, S) \
6365 YYCASE_(0, YY_("syntax error"));
6366 YYCASE_(1, YY_("syntax error, unexpected %s"));
6367 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
6368 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
6369 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
6370 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
6375 size_t yysz
= yysize
+ strlen (yyformat
);
6376 yysize_overflow
|= yysz
< yysize
;
6380 if (!yysize_overflow
)
6381 yymsg
= (char *) YYMALLOC (yysize
);
6387 while ((*yyp
= *yyformat
))
6389 if (*yyp
== '%' && yyformat
[1] == 's' && yyi
< yycount
)
6391 yyp
+= yytnamerr (yyp
, yyarg
[yyi
++]);
6400 yyerror (P
, tokens
, index
, yymsg
);
6405 yyerror (P
, tokens
, index
, YY_("syntax error"));
6406 yyMemoryExhausted (yystackp
);
6409 #endif /* YYERROR_VERBOSE */
6413 /* Recover from a syntax error on *YYSTACKP, assuming that *YYSTACKP->YYTOKENP,
6414 yylval, and yylloc are the syntactic category, semantic value, and location
6415 of the lookahead. */
6417 yyrecoverSyntaxError (yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6422 if (yystackp
->yyerrState
== 3)
6423 /* We just shifted the error token and (perhaps) took some
6424 reductions. Skip tokens until we can proceed. */
6428 if (yychar
== YYEOF
)
6429 yyFail (yystackp
, P
, tokens
, index
, YY_NULLPTR
);
6430 if (yychar
!= YYEMPTY
)
6432 yytoken
= YYTRANSLATE (yychar
);
6433 yydestruct ("Error: discarding",
6434 yytoken
, &yylval
, P
, tokens
, index
);
6436 YYDPRINTF ((stderr
, "Reading a token: "));
6437 yychar
= yylex (&yylval
, P
, tokens
, index
);
6438 if (yychar
<= YYEOF
)
6440 yychar
= yytoken
= YYEOF
;
6441 YYDPRINTF ((stderr
, "Now at end of input.\n"));
6445 yytoken
= YYTRANSLATE (yychar
);
6446 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
6448 yyj
= yypact
[yystackp
->yytops
.yystates
[0]->yylrState
];
6449 if (yypact_value_is_default (yyj
))
6452 if (yyj
< 0 || YYLAST
< yyj
|| yycheck
[yyj
] != yytoken
)
6454 if (yydefact
[yystackp
->yytops
.yystates
[0]->yylrState
] != 0)
6457 else if (! yytable_value_is_error (yytable
[yyj
]))
6461 /* Reduce to one stack. */
6462 for (yyk
= 0; yyk
< yystackp
->yytops
.yysize
; yyk
+= 1)
6463 if (yystackp
->yytops
.yystates
[yyk
] != YY_NULLPTR
)
6465 if (yyk
>= yystackp
->yytops
.yysize
)
6466 yyFail (yystackp
, P
, tokens
, index
, YY_NULLPTR
);
6467 for (yyk
+= 1; yyk
< yystackp
->yytops
.yysize
; yyk
+= 1)
6468 yymarkStackDeleted (yystackp
, yyk
);
6469 yyremoveDeletes (yystackp
);
6470 yycompressStack (yystackp
);
6472 /* Now pop stack until we find a state that shifts the error token. */
6473 yystackp
->yyerrState
= 3;
6474 while (yystackp
->yytops
.yystates
[0] != YY_NULLPTR
)
6476 yyGLRState
*yys
= yystackp
->yytops
.yystates
[0];
6477 yyj
= yypact
[yys
->yylrState
];
6478 if (! yypact_value_is_default (yyj
))
6481 if (0 <= yyj
&& yyj
<= YYLAST
&& yycheck
[yyj
] == YYTERROR
6482 && yyisShiftAction (yytable
[yyj
]))
6484 /* Shift the error token. */
6485 YY_SYMBOL_PRINT ("Shifting", yystos
[yytable
[yyj
]],
6486 &yylval
, &yyerrloc
);
6487 yyglrShift (yystackp
, 0, yytable
[yyj
],
6488 yys
->yyposn
, &yylval
);
6489 yys
= yystackp
->yytops
.yystates
[0];
6493 if (yys
->yypred
!= YY_NULLPTR
)
6494 yydestroyGLRState ("Error: popping", yys
, P
, tokens
, index
);
6495 yystackp
->yytops
.yystates
[0] = yys
->yypred
;
6496 yystackp
->yynextFree
-= 1;
6497 yystackp
->yyspaceLeft
+= 1;
6499 if (yystackp
->yytops
.yystates
[0] == YY_NULLPTR
)
6500 yyFail (yystackp
, P
, tokens
, index
, YY_NULLPTR
);
6503 #define YYCHK1(YYE) \
6513 goto yyuser_error; \
6524 yyparse (struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6528 yyGLRStack
* const yystackp
= &yystack
;
6531 YYDPRINTF ((stderr
, "Starting parse\n"));
6534 yylval
= yyval_default
;
6536 /* User initialization code. */
6537 #line 116 "src/parser_proc_grammar.y" /* glr.c:2270 */
6541 #line 6542 "src/parser_proc.c" /* glr.c:2270 */
6543 if (! yyinitGLRStack (yystackp
, YYINITDEPTH
))
6544 goto yyexhaustedlab
;
6545 switch (YYSETJMP (yystack
.yyexception_buffer
))
6548 case 1: goto yyabortlab
;
6549 case 2: goto yyexhaustedlab
;
6550 default: goto yybuglab
;
6552 yyglrShift (&yystack
, 0, 0, 0, &yylval
);
6557 /* For efficiency, we have two loops, the first of which is
6558 specialized to deterministic operation (single stack, no
6559 potential ambiguity). */
6565 const short int* yyconflicts
;
6567 yyStateNum yystate
= yystack
.yytops
.yystates
[0]->yylrState
;
6568 YYDPRINTF ((stderr
, "Entering state %d\n", yystate
));
6569 if (yystate
== YYFINAL
)
6571 if (yyisDefaultedState (yystate
))
6573 yyrule
= yydefaultAction (yystate
);
6577 yyreportSyntaxError (&yystack
, P
, tokens
, index
);
6580 YYCHK1 (yyglrReduce (&yystack
, 0, yyrule
, yytrue
, P
, tokens
, index
));
6585 if (yychar
== YYEMPTY
)
6587 YYDPRINTF ((stderr
, "Reading a token: "));
6588 yychar
= yylex (&yylval
, P
, tokens
, index
);
6591 if (yychar
<= YYEOF
)
6593 yychar
= yytoken
= YYEOF
;
6594 YYDPRINTF ((stderr
, "Now at end of input.\n"));
6598 yytoken
= YYTRANSLATE (yychar
);
6599 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
6602 yygetLRActions (yystate
, yytoken
, &yyaction
, &yyconflicts
);
6603 if (*yyconflicts
!= 0)
6605 if (yyisShiftAction (yyaction
))
6607 YY_SYMBOL_PRINT ("Shifting", yytoken
, &yylval
, &yylloc
);
6610 yyglrShift (&yystack
, 0, yyaction
, yyposn
, &yylval
);
6611 if (0 < yystack
.yyerrState
)
6612 yystack
.yyerrState
-= 1;
6614 else if (yyisErrorAction (yyaction
))
6617 yyreportSyntaxError (&yystack
, P
, tokens
, index
);
6621 YYCHK1 (yyglrReduce (&yystack
, 0, -yyaction
, yytrue
, P
, tokens
, index
));
6627 yySymbol yytoken_to_shift
;
6630 for (yys
= 0; yys
< yystack
.yytops
.yysize
; yys
+= 1)
6631 yystackp
->yytops
.yylookaheadNeeds
[yys
] = yychar
!= YYEMPTY
;
6633 /* yyprocessOneStack returns one of three things:
6635 - An error flag. If the caller is yyprocessOneStack, it
6636 immediately returns as well. When the caller is finally
6637 yyparse, it jumps to an error label via YYCHK1.
6639 - yyok, but yyprocessOneStack has invoked yymarkStackDeleted
6640 (&yystack, yys), which sets the top state of yys to NULL. Thus,
6641 yyparse's following invocation of yyremoveDeletes will remove
6644 - yyok, when ready to shift a token.
6646 Except in the first case, yyparse will invoke yyremoveDeletes and
6647 then shift the next token onto all remaining stacks. This
6648 synchronization of the shift (that is, after all preceding
6649 reductions on all stacks) helps prevent double destructor calls
6650 on yylval in the event of memory exhaustion. */
6652 for (yys
= 0; yys
< yystack
.yytops
.yysize
; yys
+= 1)
6653 YYCHK1 (yyprocessOneStack (&yystack
, yys
, yyposn
, P
, tokens
, index
));
6654 yyremoveDeletes (&yystack
);
6655 if (yystack
.yytops
.yysize
== 0)
6657 yyundeleteLastStack (&yystack
);
6658 if (yystack
.yytops
.yysize
== 0)
6659 yyFail (&yystack
, P
, tokens
, index
, YY_("syntax error"));
6660 YYCHK1 (yyresolveStack (&yystack
, P
, tokens
, index
));
6661 YYDPRINTF ((stderr
, "Returning to deterministic operation.\n"));
6663 yyreportSyntaxError (&yystack
, P
, tokens
, index
);
6667 /* If any yyglrShift call fails, it will fail after shifting. Thus,
6668 a copy of yylval will already be on stack 0 in the event of a
6669 failure in the following loop. Thus, yychar is set to YYEMPTY
6670 before the loop to make sure the user destructor for yylval isn't
6672 yytoken_to_shift
= YYTRANSLATE (yychar
);
6675 for (yys
= 0; yys
< yystack
.yytops
.yysize
; yys
+= 1)
6678 const short int* yyconflicts
;
6679 yyStateNum yystate
= yystack
.yytops
.yystates
[yys
]->yylrState
;
6680 yygetLRActions (yystate
, yytoken_to_shift
, &yyaction
,
6682 /* Note that yyconflicts were handled by yyprocessOneStack. */
6683 YYDPRINTF ((stderr
, "On stack %lu, ", (unsigned long int) yys
));
6684 YY_SYMBOL_PRINT ("shifting", yytoken_to_shift
, &yylval
, &yylloc
);
6685 yyglrShift (&yystack
, yys
, yyaction
, yyposn
,
6687 YYDPRINTF ((stderr
, "Stack %lu now in state #%d\n",
6688 (unsigned long int) yys
,
6689 yystack
.yytops
.yystates
[yys
]->yylrState
));
6692 if (yystack
.yytops
.yysize
== 1)
6694 YYCHK1 (yyresolveStack (&yystack
, P
, tokens
, index
));
6695 YYDPRINTF ((stderr
, "Returning to deterministic operation.\n"));
6696 yycompressStack (&yystack
);
6702 yyrecoverSyntaxError (&yystack
, P
, tokens
, index
);
6703 yyposn
= yystack
.yytops
.yystates
[0]->yyposn
;
6719 yyerror (P
, tokens
, index
, YY_("memory exhausted"));
6724 if (yychar
!= YYEMPTY
)
6725 yydestruct ("Cleanup: discarding lookahead",
6726 YYTRANSLATE (yychar
), &yylval
, P
, tokens
, index
);
6728 /* If the stack is well-formed, pop the stack until it is empty,
6729 destroying its entries as we go. But free the stack regardless
6730 of whether it is well-formed. */
6731 if (yystack
.yyitems
)
6733 yyGLRState
** yystates
= yystack
.yytops
.yystates
;
6736 size_t yysize
= yystack
.yytops
.yysize
;
6738 for (yyk
= 0; yyk
< yysize
; yyk
+= 1)
6741 while (yystates
[yyk
])
6743 yyGLRState
*yys
= yystates
[yyk
];
6744 if (yys
->yypred
!= YY_NULLPTR
)
6745 yydestroyGLRState ("Cleanup: popping", yys
, P
, tokens
, index
);
6746 yystates
[yyk
] = yys
->yypred
;
6747 yystack
.yynextFree
-= 1;
6748 yystack
.yyspaceLeft
+= 1;
6753 yyfreeGLRStack (&yystack
);
6759 /* DEBUGGING ONLY */
6762 yy_yypstack (yyGLRState
* yys
)
6766 yy_yypstack (yys
->yypred
);
6767 YYFPRINTF (stderr
, " -> ");
6769 YYFPRINTF (stderr
, "%d@%lu", yys
->yylrState
,
6770 (unsigned long int) yys
->yyposn
);
6774 yypstates (yyGLRState
* yyst
)
6776 if (yyst
== YY_NULLPTR
)
6777 YYFPRINTF (stderr
, "<null>");
6780 YYFPRINTF (stderr
, "\n");
6784 yypstack (yyGLRStack
* yystackp
, size_t yyk
)
6786 yypstates (yystackp
->yytops
.yystates
[yyk
]);
6789 #define YYINDEX(YYX) \
6790 ((YYX) == YY_NULLPTR ? -1 : (yyGLRStackItem*) (YYX) - yystackp->yyitems)
6794 yypdumpstack (yyGLRStack
* yystackp
)
6796 yyGLRStackItem
* yyp
;
6798 for (yyp
= yystackp
->yyitems
; yyp
< yystackp
->yynextFree
; yyp
+= 1)
6800 YYFPRINTF (stderr
, "%3lu. ",
6801 (unsigned long int) (yyp
- yystackp
->yyitems
));
6802 if (*(yybool
*) yyp
)
6804 YYASSERT (yyp
->yystate
.yyisState
);
6805 YYASSERT (yyp
->yyoption
.yyisState
);
6806 YYFPRINTF (stderr
, "Res: %d, LR State: %d, posn: %lu, pred: %ld",
6807 yyp
->yystate
.yyresolved
, yyp
->yystate
.yylrState
,
6808 (unsigned long int) yyp
->yystate
.yyposn
,
6809 (long int) YYINDEX (yyp
->yystate
.yypred
));
6810 if (! yyp
->yystate
.yyresolved
)
6811 YYFPRINTF (stderr
, ", firstVal: %ld",
6812 (long int) YYINDEX (yyp
->yystate
6813 .yysemantics
.yyfirstVal
));
6817 YYASSERT (!yyp
->yystate
.yyisState
);
6818 YYASSERT (!yyp
->yyoption
.yyisState
);
6819 YYFPRINTF (stderr
, "Option. rule: %d, state: %ld, next: %ld",
6820 yyp
->yyoption
.yyrule
- 1,
6821 (long int) YYINDEX (yyp
->yyoption
.yystate
),
6822 (long int) YYINDEX (yyp
->yyoption
.yynext
));
6824 YYFPRINTF (stderr
, "\n");
6826 YYFPRINTF (stderr
, "Tops:");
6827 for (yyi
= 0; yyi
< yystackp
->yytops
.yysize
; yyi
+= 1)
6828 YYFPRINTF (stderr
, "%lu: %ld; ", (unsigned long int) yyi
,
6829 (long int) YYINDEX (yystackp
->yytops
.yystates
[yyi
]));
6830 YYFPRINTF (stderr
, "\n");
6838 /* Substitute the variable and function names. */
6839 #define yyparse psi_parser_proc_parse
6840 #define yylex psi_parser_proc_lex
6841 #define yyerror psi_parser_proc_error
6842 #define yylval psi_parser_proc_lval
6843 #define yychar psi_parser_proc_char
6844 #define yydebug psi_parser_proc_debug
6845 #define yynerrs psi_parser_proc_nerrs
6847 #line 1860 "src/parser_proc_grammar.y" /* glr.c:2584 */
6852 static int psi_parser_proc_lex(YYSTYPE
*lvalp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6854 struct psi_token
*token
;
6856 if (psi_plist_get(tokens
, (*index
)++, &token
)) {
6857 if (P
->flags
& PSI_DEBUG
) {
6858 psi_token_dump(2, token
);
6861 *((struct psi_token
**)lvalp
) = token
;
6865 PSI_DEBUG_PRINT(P
, "EOF(%d)\n", PSI_T_EOF
);
6871 static void psi_parser_proc_error(struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
, const char *msg
)
6873 struct psi_token
*T
= NULL
;
6882 psi_plist_get(tokens
, last
, &T
);
6884 P
->error(PSI_DATA(P
), T
, PSI_WARNING
, "PSI %s at col %u", msg
, T
->col
);
6886 P
->error(PSI_DATA(P
), NULL
, PSI_WARNING
, "PSI %s", msg
);