1 /* A Bison parser, made by GNU Bison 3.0.4. */
3 /* Skeleton implementation for Bison GLR parsers in C
5 Copyright (C) 2002-2015 Free Software Foundation, Inc.
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
20 /* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
33 /* C GLR parser skeleton written by Paul Hilfinger. */
35 /* Identify Bison output. */
39 #define YYBISON_VERSION "3.0.4"
42 #define YYSKELETON_NAME "glr.c"
48 /* "%code top" blocks. */
49 #line 1 "src/parser_proc_grammar.y" /* glr.c:222 */
51 #include "php_psi_stdinc.h"
53 #line 54 "src/parser_proc.c" /* glr.c:222 */
56 /* Substitute the variable and function names. */
57 #define yyparse psi_parser_proc_parse
58 #define yylex psi_parser_proc_lex
59 #define yyerror psi_parser_proc_error
60 #define yydebug psi_parser_proc_debug
63 /* First part of user declarations. */
65 #line 66 "src/parser_proc.c" /* glr.c:240 */
68 # if defined __cplusplus && 201103L <= __cplusplus
69 # define YY_NULLPTR nullptr
75 #include "parser_proc.h"
77 /* Enabling verbose error messages. */
78 #ifdef YYERROR_VERBOSE
79 # undef YYERROR_VERBOSE
80 # define YYERROR_VERBOSE 1
82 # define YYERROR_VERBOSE 1
85 /* Default (constant) value used for initialization for null
86 right-hand sides. Unlike the standard yacc.c template, here we set
87 the default value of $$ to a zeroed-out value. Since the default
88 value is undefined, this behavior is technically correct. */
89 static YYSTYPE yyval_default
;
91 /* Copy the second part of user declarations. */
93 #line 94 "src/parser_proc.c" /* glr.c:263 */
94 /* Unqualified %code blocks. */
95 #line 5 "src/parser_proc_grammar.y" /* glr.c:264 */
104 static int psi_parser_proc_lex(YYSTYPE
*u
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
);
105 static void psi_parser_proc_error(struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
, const char *msg
);
107 static inline void psi_parser_proc_add_struct(struct psi_parser
*P
, struct psi_decl_struct
*strct
)
111 P
->structs
= psi_plist_init((psi_plist_dtor
) psi_decl_struct_free
);
113 P
->structs
= psi_plist_add(P
->structs
, &strct
);
115 static inline void psi_parser_proc_add_union(struct psi_parser
*P
, struct psi_decl_union
*u
)
119 P
->unions
= psi_plist_init((psi_plist_dtor
) psi_decl_union_free
);
121 P
->unions
= psi_plist_add(P
->unions
, &u
);
123 static inline void psi_parser_proc_add_enum(struct psi_parser
*P
, struct psi_decl_enum
*e
)
127 P
->enums
= psi_plist_init((psi_plist_dtor
) psi_decl_enum_free
);
129 P
->enums
= psi_plist_add(P
->enums
, &e
);
131 static inline void psi_parser_proc_add_from_typedef(struct psi_parser
*P
, struct psi_decl_arg
*def
)
133 if (def
->type
->real
.def
) {
134 switch (def
->type
->type
) {
136 psi_parser_proc_add_struct(P
, def
->type
->real
.strct
);
139 psi_parser_proc_add_union(P
, def
->type
->real
.unn
);
142 psi_parser_proc_add_enum(P
, def
->type
->real
.enm
);
149 static inline void psi_parser_proc_add_typedef(struct psi_parser
*P
, struct psi_decl_arg
*def
)
153 P
->types
= psi_plist_init((psi_plist_dtor
) psi_decl_arg_free
);
155 P
->types
= psi_plist_add(P
->types
, &def
);
156 psi_parser_proc_add_from_typedef(P
, def
);
158 static inline void psi_parser_proc_add_const(struct psi_parser
*P
, struct psi_const
*cnst
) {
161 P
->consts
= psi_plist_init((psi_plist_dtor
) psi_const_free
);
163 P
->consts
= psi_plist_add(P
->consts
, &cnst
);
166 static inline void psi_parser_proc_add_decl(struct psi_parser
*P
, struct psi_decl
*decl
) {
169 P
->decls
= psi_plist_init((psi_plist_dtor
) psi_decl_free
);
171 P
->decls
= psi_plist_add(P
->decls
, &decl
);
173 static inline void psi_parser_proc_add_impl(struct psi_parser
*P
, struct psi_impl
*impl
) {
176 P
->impls
= psi_plist_init((psi_plist_dtor
) psi_impl_free
);
178 P
->impls
= psi_plist_add(P
->impls
, &impl
);
183 #line 184 "src/parser_proc.c" /* glr.c:264 */
190 # if defined YYENABLE_NLS && YYENABLE_NLS
192 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
193 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
197 # define YY_(Msgid) Msgid
205 # define YYMALLOC malloc
208 # define YYREALLOC realloc
211 #define YYSIZEMAX ((size_t) -1)
216 typedef unsigned char yybool
;
223 # define YYJMP_BUF jmp_buf
224 # define YYSETJMP(Env) setjmp (Env)
226 # define YYLONGJMP(Env, Val) (longjmp (Env, Val), YYASSERT (0))
230 # if (defined __GNUC__ \
231 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
232 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
233 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
235 # define YY_ATTRIBUTE(Spec) /* empty */
239 #ifndef YY_ATTRIBUTE_PURE
240 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
243 #ifndef YY_ATTRIBUTE_UNUSED
244 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
247 #if !defined _Noreturn \
248 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
249 # if defined _MSC_VER && 1200 <= _MSC_VER
250 # define _Noreturn __declspec (noreturn)
252 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
256 /* Suppress unused-variable warnings by "using" E. */
257 #if ! defined lint || defined __GNUC__
258 # define YYUSE(E) ((void) (E))
260 # define YYUSE(E) /* empty */
263 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
264 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
265 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
266 _Pragma ("GCC diagnostic push") \
267 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
268 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
269 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
270 _Pragma ("GCC diagnostic pop")
272 # define YY_INITIAL_VALUE(Value) Value
274 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
275 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
276 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
278 #ifndef YY_INITIAL_VALUE
279 # define YY_INITIAL_VALUE(Value) /* Nothing. */
284 # define YYASSERT(Condition) ((void) ((Condition) || (abort (), 0)))
287 /* YYFINAL -- State number of the termination state. */
289 /* YYLAST -- Last index in YYTABLE. */
292 /* YYNTOKENS -- Number of terminals. */
293 #define YYNTOKENS 127
294 /* YYNNTS -- Number of nonterminals. */
296 /* YYNRULES -- Number of rules. */
298 /* YYNRULES -- Number of states. */
299 #define YYNSTATES 645
300 /* YYMAXRHS -- Maximum number of symbols on right-hand side of rule. */
302 /* YYMAXLEFT -- Maximum number of symbols to the left of a handle
303 accessed by $0, $-1, etc., in any rule. */
306 /* YYTRANSLATE(X) -- Bison symbol number corresponding to X. */
308 #define YYMAXUTOK 381
310 #define YYTRANSLATE(YYX) \
311 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
313 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
314 static const unsigned char yytranslate
[] =
316 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
317 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
318 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
319 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
320 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
321 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
322 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
323 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
324 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
325 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
326 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
327 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
328 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
329 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
330 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
331 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
332 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
333 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
334 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
335 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
336 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
337 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
338 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
339 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
340 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
341 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
342 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
343 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
344 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
345 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
346 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
347 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
348 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
349 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
350 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
351 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
352 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
353 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
358 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
359 static const unsigned short int yyrline
[] =
361 0, 389, 389, 389, 389, 389, 389, 389, 389, 389,
362 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
363 390, 390, 390, 390, 391, 391, 391, 391, 391, 391,
364 391, 391, 391, 391, 391, 391, 391, 391, 391, 391,
365 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
366 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
367 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
368 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
369 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
370 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
371 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
372 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
373 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
374 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
375 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
376 392, 392, 392, 392, 392, 396, 397, 400, 401, 404,
377 405, 406, 407, 413, 421, 424, 427, 430, 433, 436,
378 439, 445, 451, 457, 480, 484, 488, 493, 498, 502,
379 506, 510, 517, 518, 522, 523, 524, 528, 529, 533,
380 534, 538, 539, 540, 544, 545, 549, 554, 559, 567,
381 570, 574, 579, 587, 590, 594, 598, 605, 609, 613,
382 617, 622, 632, 642, 647, 652, 658, 667, 670, 674,
383 678, 684, 691, 697, 698, 699, 700, 704, 707, 714,
384 715, 716, 717, 718, 722, 728, 729, 737, 747, 755,
385 763, 771, 774, 778, 782, 786, 791, 796, 804, 805,
386 806, 809, 815, 818, 821, 827, 828, 829, 830, 831,
387 832, 833, 834, 838, 839, 843, 846, 849, 855, 858,
388 861, 869, 881, 884, 887, 894, 897, 907, 910, 913,
389 916, 917, 921, 924, 927, 938, 944, 951, 959, 966,
390 977, 978, 982, 988, 998, 1008, 1021, 1022, 1034, 1037,
391 1040, 1043, 1049, 1052, 1062, 1075, 1080, 1088, 1098, 1108,
392 1111, 1115, 1121, 1124, 1130, 1138, 1145, 1148, 1154, 1159,
393 1167, 1171, 1175, 1179, 1183, 1187, 1194, 1198, 1202, 1206,
394 1213, 1226, 1239, 1252, 1255, 1262, 1265, 1271, 1275, 1282,
395 1285, 1291, 1294, 1300, 1303, 1315, 1318, 1325, 1330, 1335,
396 1345, 1348, 1354, 1357, 1363, 1370, 1377, 1378, 1379, 1380,
397 1381, 1382, 1383, 1384, 1385, 1389, 1392, 1398, 1401, 1404,
398 1407, 1410, 1416, 1420, 1428, 1429, 1433, 1440, 1443, 1446,
399 1449, 1452, 1458, 1462, 1470, 1477, 1485, 1493, 1494, 1495,
400 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1506, 1509, 1515,
401 1518, 1524, 1525, 1529, 1532, 1538, 1541, 1547, 1554, 1561,
402 1564, 1567, 1574, 1579, 1587, 1588, 1589, 1590, 1591, 1592,
403 1593, 1594, 1598, 1601, 1607, 1610, 1616, 1623, 1624, 1628,
404 1635, 1638, 1644, 1652, 1655, 1661, 1664, 1670
408 #if YYDEBUG || YYERROR_VERBOSE || 1
409 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
410 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
411 static const char *const yytname
[] =
413 "\"end of file\"", "error", "$undefined", "BOOL", "CHAR", "SHORT",
414 "INT", "SIGNED", "UNSIGNED", "LONG", "FLOAT", "DOUBLE", "STRING",
415 "MIXED", "ARRAY", "OBJECT", "CALLABLE", "VOID", "ZVAL", "INT8", "UINT8",
416 "INT16", "UINT16", "INT32", "UINT32", "INT64", "UINT64", "NULL", "TRUE",
417 "FALSE", "NAME", "NSNAME", "DOLLAR_NAME", "NUMBER", "QUOTED_STRING",
418 "QUOTED_CHAR", "\"end of line\"", "\";\"", "\"(\"", "\")\"", "\",\"",
419 "\":\"", "\"{\"", "\"}\"", "\"[\"", "\"]\"", "\"=\"", "\"#\"", "\"|\"",
420 "\"^\"", "\"&\"", "\"<<\"", "\">>\"", "\"+\"", "\"-\"", "\"*\"", "\"/\"",
421 "\"%\"", "\"<\"", "\">\"", "\">=\"", "\"<=\"", "\"||\"", "\"&&\"",
422 "\"==\"", "\"!=\"", "\"~\"", "\"!\"", "\".\"", "\"\\\\\"", "\"...\"",
423 "\"?\"", "PRAGMA", "ONCE", "ERROR", "WARNING", "IF", "IFDEF", "IFNDEF",
424 "ELSE", "ELIF", "ENDIF", "DEFINE", "DEFINED", "UNDEF", "IMPORT",
425 "INCLUDE", "INCLUDE_NEXT", "TYPEDEF", "STRUCT", "UNION", "ENUM", "CONST",
426 "LIB", "STATIC", "CALLBACK", "FUNCTION", "LET", "SET", "TEMP", "FREE",
427 "RETURN", "PRE_ASSERT", "POST_ASSERT", "BOOLVAL", "INTVAL", "STRVAL",
428 "PATHVAL", "STRLEN", "FLOATVAL", "ARRVAL", "OBJVAL", "COUNT", "CALLOC",
429 "TO_BOOL", "TO_INT", "TO_STRING", "TO_FLOAT", "TO_ARRAY", "TO_OBJECT",
430 "COMMENT", "WHITESPACE", "NO_WHITESPACE", "CPP_HEADER", "CPP_ATTRIBUTE",
431 "BINARY", "UNARY", "$accept", "binary_op_token", "unary_op_token",
432 "name_token", "any_noeol_token", "file", "blocks", "block", "lib", "cpp",
433 "cpp_exp", "cpp_message_token", "cpp_include_token", "cpp_header_token",
434 "cpp_no_arg_token", "cpp_name_arg_token", "cpp_exp_arg_token",
435 "cpp_macro_decl", "cpp_macro_sig", "cpp_macro_sig_args",
436 "cpp_macro_decl_tokens", "cpp_macro_decl_token_list", "cpp_macro_exp",
437 "cpp_macro_call_args", "cpp_macro_call_arg_list", "constant",
438 "constant_type", "constant_type_token", "impl_def_val",
439 "impl_def_val_token", "decl_typedef", "typedef", "const_decl_type",
440 "decl_type", "decl_type_complex", "decl_type_simple", "decl_real_type",
441 "decl_stdint_type", "int_signed", "int_width", "decl_int_type",
442 "int_signed_types", "signed_short_types", "signed_long_types",
443 "int_width_types", "decl_stmt", "decl", "decl_fn", "decl_functor",
444 "decl_func", "decl_args", "decl_arg", "decl_var", "decl_union",
445 "decl_struct", "decl_struct_args", "struct_args_block", "struct_args",
446 "struct_arg", "decl_enum", "decl_enum_items", "decl_enum_item",
447 "num_exp", "number", "enum_name", "union_name", "struct_name",
448 "optional_name", "decl_layout", "align_and_size", "array_size",
449 "indirection", "pointers", "impl", "impl_func", "impl_args", "impl_arg",
450 "impl_var", "impl_type", "impl_type_token", "impl_stmts", "impl_stmt",
451 "let_stmt", "let_exp", "let_exp_byref", "let_exp_assign", "let_calloc",
452 "let_callback", "let_func", "let_func_token", "let_func_exps",
453 "let_exps", "callback_rval", "callback_arg_list", "callback_args",
454 "return_stmt", "set_stmt", "set_exp", "set_func", "set_func_token",
455 "set_func_exps", "set_exps", "assert_stmt", "assert_stmt_token",
456 "free_stmt", "free_exps", "free_exp", "decl_vars", "reference", "byref", YY_NULLPTR
460 #define YYPACT_NINF -505
461 #define YYTABLE_NINF -436
463 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
465 static const short int yypact
[] =
467 1189, -505, -505, -505, -505, -505, 21, -505, -505, 115,
468 -505, -505, -505, -505, -505, -505, -505, -505, 1880, -505,
469 -505, 506, 1908, 1680, 1680, 1680, 1353, 23, -41, 11,
470 -505, 81, 1189, -505, -505, -505, -505, -505, 1558, -505,
471 -505, -505, -505, -505, 45, 101, -505, -505, 49, 27,
472 -505, -505, -505, -505, -505, -505, 71, -505, 73, -505,
473 -505, -505, -505, -505, -505, 62, -505, -505, -505, -505,
474 -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
475 1482, -505, 1680, 1680, 1680, 1984, 88, 595, -505, -505,
476 -505, -505, -505, -505, -505, -505, 428, -505, -505, -505,
477 -505, 92, 837, -11, -505, 1587, 1451, 1680, 1680, 93,
478 464, -505, 97, 1680, 100, 100, 41, 41, 104, -505,
479 -505, 108, 118, -505, 62, 121, -505, -505, 117, 119,
480 -505, 126, -505, -505, -505, 120, -505, 131, 1622, -505,
481 168, -505, 50, -505, -505, 45, -505, -505, 1935, 1680,
482 122, 1680, 123, 62, -505, -505, -505, -505, -505, 1935,
483 -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
484 -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
485 -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
486 -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
487 -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
488 -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
489 -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
490 -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
491 -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
492 -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
493 -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
494 -505, -505, -505, -505, -505, -505, -505, -505, 837, 837,
495 716, -505, -505, -505, -505, -505, -505, -505, -505, -505,
496 -505, 1451, -505, -505, -505, -505, 1651, 1451, 138, 2209,
497 -6, -505, -6, -505, -505, -505, -505, 136, 137, 137,
498 42, 42, 1529, 140, -505, 122, 145, 151, -505, 62,
499 120, -505, -505, -505, -505, -505, -505, 62, 2011, 1558,
500 54, -505, 146, 52, -505, 1558, 1073, 1558, 1680, 86,
501 -505, -505, 132, -505, -505, -505, -505, -505, 1398, -505,
502 152, 1680, 57, -505, -505, 147, -505, 2055, 1680, -505,
503 -505, 1451, -505, -505, -505, -505, -505, -505, -505, -505,
504 -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
505 1451, 1451, 156, 1908, 1558, 1558, -505, -505, -505, -505,
506 62, -505, 19, 139, 28, 150, 1680, -505, 1622, 62,
507 1622, 120, 1777, 1398, 1680, -505, 160, 159, -505, 169,
508 -505, -505, -505, 1238, -505, -505, -505, -505, -505, -505,
509 1398, -505, 2233, -505, 163, 161, -505, 173, 165, 180,
510 205, 48, -505, -505, 207, -505, -505, 2028, -505, 209,
511 120, 1804, 1680, -505, 211, 2209, 222, 224, 2160, -505,
512 229, 225, 1832, -505, -505, -505, 1680, -505, -505, -505,
513 -505, -505, 228, -505, -505, -505, -505, -505, -505, -505,
514 -505, -505, -505, -505, 226, 85, -505, 11, -505, -505,
515 230, 1622, -505, 62, 231, -505, 2233, -505, 303, -505,
516 232, 2038, 233, 2082, -505, 1398, 1398, 1073, -505, 1558,
517 -505, 11, 1558, -505, 1680, -505, -505, -505, -505, 234,
518 -505, 237, 238, -505, -505, 1451, 1451, 241, 236, 248,
519 -505, -505, 247, -505, 349, 246, 349, 242, -505, 120,
520 254, -505, 148, -505, -505, -505, -505, -505, -505, -505,
521 -505, 256, 257, 2233, -505, -505, -505, -505, 258, 1314,
522 1398, -505, 2185, -505, -505, 260, 1558, -505, 98, -505,
523 120, 837, 1680, 2209, 2257, 265, 263, -505, -505, -505,
524 349, -505, 11, 19, -505, -505, -505, -505, -505, 266,
525 1398, 11, -505, -505, 1398, 955, 264, 271, -505, 1558,
526 -505, -505, -505, 270, 277, -505, -8, -505, 11, 2135,
527 272, 2281, 274, -505, 276, -505, -505, -505, -505, 278,
528 279, 281, 1398, 303, 284, -505, 1073, 287, 285, 965,
529 2109, 160, -505, -505, -505, 286, 1314, -505, -505, 288,
530 291, 289, 295, -505, -505, 303, -505, -505, 349, 290,
531 1073, -505, -505, -505, -505
534 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
535 Performed when YYTABLE does not specify something else to do. Zero
536 means the default is an error. */
537 static const unsigned short int yydefact
[] =
539 155, 268, 265, 269, 263, 264, 266, 252, 253, 0,
540 255, 256, 257, 258, 259, 260, 261, 262, 251, 160,
541 159, 0, 0, 0, 0, 333, 0, 0, 0, 435,
542 161, 0, 156, 157, 163, 162, 164, 166, 341, 242,
543 244, 243, 249, 250, 272, 282, 248, 165, 0, 0,
544 291, 290, 296, 168, 167, 169, 0, 170, 0, 267,
545 254, 39, 33, 31, 24, 341, 343, 38, 37, 35,
546 36, 32, 30, 28, 27, 25, 26, 34, 29, 297,
547 0, 251, 0, 0, 0, 0, 0, 203, 182, 183,
548 194, 191, 192, 189, 195, 190, 0, 193, 184, 185,
549 186, 0, 203, 0, 175, 0, 0, 333, 333, 0,
550 341, 236, 235, 0, 337, 337, 245, 246, 247, 330,
551 223, 269, 252, 226, 0, 0, 222, 241, 0, 0,
552 437, 0, 436, 1, 158, 339, 302, 0, 342, 273,
553 277, 275, 279, 270, 283, 272, 271, 285, 298, 0,
554 0, 0, 342, 341, 344, 304, 245, 246, 247, 298,
555 73, 40, 41, 42, 43, 44, 45, 46, 47, 48,
556 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
557 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
558 69, 70, 71, 72, 74, 75, 76, 77, 78, 79,
559 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
560 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
561 100, 101, 102, 103, 104, 105, 106, 107, 110, 180,
562 108, 109, 111, 112, 113, 114, 115, 116, 117, 118,
563 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
564 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
565 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
566 149, 150, 151, 152, 153, 154, 205, 181, 204, 203,
567 203, 178, 172, 173, 187, 188, 174, 177, 176, 213,
568 214, 0, 22, 23, 20, 21, 0, 0, 215, 179,
569 245, 332, 246, 331, 234, 240, 237, 0, 0, 0,
570 0, 0, 0, 0, 171, 0, 0, 0, 306, 341,
571 339, 278, 274, 280, 281, 276, 284, 299, 0, 0,
572 0, 300, 318, 0, 316, 0, 435, 0, 0, 0,
573 427, 428, 0, 365, 368, 367, 369, 370, 0, 371,
574 0, 0, 0, 206, 198, 0, 197, 0, 0, 211,
575 208, 217, 2, 3, 4, 5, 6, 7, 8, 9,
576 10, 11, 13, 12, 14, 15, 16, 17, 18, 19,
577 0, 0, 0, 0, 0, 0, 309, 308, 310, 307,
578 341, 303, 227, 0, 0, 0, 0, 305, 0, 0,
579 0, 339, 0, 0, 0, 315, 0, 0, 421, 31,
580 327, 326, 328, 0, 419, 417, 416, 418, 415, 414,
581 0, 329, 410, 320, 0, 0, 409, 0, 0, 0,
582 0, 0, 430, 420, 0, 345, 366, 0, 295, 0,
583 339, 0, 199, 207, 0, 219, 0, 218, 0, 209,
584 0, 335, 0, 312, 239, 238, 0, 229, 231, 232,
585 230, 233, 0, 228, 346, 358, 359, 360, 361, 357,
586 362, 363, 364, 356, 0, 0, 350, 435, 355, 340,
587 0, 0, 286, 0, 0, 301, 319, 317, 0, 372,
588 24, 0, 0, 0, 324, 0, 0, 435, 408, 0,
589 354, 435, 0, 429, 0, 407, 426, 294, 288, 0,
590 201, 0, 200, 212, 216, 0, 0, 0, 0, 0,
591 311, 313, 0, 221, 0, 0, 0, 352, 292, 339,
592 31, 377, 30, 395, 394, 392, 390, 391, 393, 389,
593 388, 34, 29, 381, 382, 378, 379, 380, 0, 0,
594 0, 322, 0, 323, 411, 422, 0, 433, 0, 431,
595 339, 203, 0, 220, 210, 0, 0, 314, 293, 347,
596 0, 351, 435, 227, 287, 401, 387, 396, 402, 0,
597 0, 435, 383, 321, 0, 435, 0, 0, 432, 0,
598 289, 196, 202, 0, 0, 348, 0, 353, 435, 0,
599 397, 325, 0, 424, 423, 412, 373, 434, 338, 0,
600 0, 0, 0, 0, 0, 413, 435, 0, 0, 403,
601 0, 329, 399, 376, 374, 398, 0, 386, 425, 0,
602 0, 0, 404, 405, 384, 0, 375, 336, 0, 0,
603 435, 400, 349, 385, 406
606 /* YYPGOTO[NTERM-NUM]. */
607 static const short int yypgoto
[] =
609 -505, -289, -98, -7, 39, -505, -505, 293, -505, -505,
610 -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
611 -99, -505, -270, -505, -505, -505, -505, -505, -236, -505,
612 -505, 318, 7, -21, -505, -505, -505, 235, 297, -505,
613 -505, 198, -505, -505, -505, -505, 26, 330, -505, -505,
614 190, -16, -38, -505, -505, 60, -141, -505, -102, 37,
615 -505, -44, -333, -505, -505, -505, -505, 65, -505, 5,
616 -311, -51, -5, -505, 340, -505, -154, -458, -504, -505,
617 64, -330, -505, -255, -475, 46, -505, -505, -505, -150,
618 -505, -505, -505, -505, -505, -505, -505, -469, 44, -505,
619 -505, -505, -505, -505, -505, -505, -120, -505, -28, -477
622 /* YYDEFGOTO[NTERM-NUM]. */
623 static const short int yydefgoto
[] =
625 -1, 496, 420, 135, 276, 31, 32, 33, 34, 35,
626 101, 102, 103, 286, 104, 105, 106, 281, 511, 512,
627 277, 278, 299, 446, 447, 36, 125, 126, 462, 463,
628 37, 451, 329, 39, 40, 41, 42, 43, 44, 45,
629 46, 143, 322, 325, 146, 47, 111, 49, 50, 51,
630 330, 52, 421, 53, 54, 387, 388, 452, 453, 113,
631 333, 334, 422, 423, 56, 114, 115, 119, 519, 308,
632 318, 137, 400, 57, 58, 475, 476, 424, 477, 478,
633 342, 343, 344, 622, 623, 624, 545, 546, 547, 548,
634 614, 625, 579, 631, 632, 345, 346, 425, 426, 427,
635 586, 604, 347, 348, 349, 431, 432, 558, 428, 132
638 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
639 positive, shift that token. If negative, reduce the rule whose
640 number is the opposite. If YYTABLE_NINF, syntax error. */
641 static const short int yytable
[] =
643 136, 131, 79, 283, 80, 127, 112, 38, 297, 397,
644 381, 549, 436, 544, 151, 437, 116, 117, 118, 527,
645 569, 357, 572, 284, 500, 38, 48, 360, 554, 110,
646 59, 465, 60, 138, 466, -334, -334, 55, 467, 38,
647 468, 469, 470, 471, 472, 473, 457, 458, 459, 139,
648 140, 141, 460, 461, 142, 29, 323, 128, 48, 324,
649 152, 130, 610, 436, 127, 148, 595, 474, 381, 55,
650 486, 381, 136, 155, 582, 156, 157, 158, -337, 386,
651 493, 133, 307, -337, 383, 503, 147, 494, 504, 280,
652 482, 445, 404, 401, 402, 405, 440, 441, 288, 298,
653 300, 302, 351, 408, 433, 138, 306, 144, 4, 5,
654 448, 449, 285, 149, 527, 150, 603, 66, 61, 312,
655 309, 310, 311, 600, 525, 526, 159, 62, 282, 508,
656 304, 320, 331, 63, 642, -296, 626, 588, 589, -224,
657 611, 307, 332, 331, 350, 64, -334, 628, 152, -225,
658 633, 636, 313, 65, 314, 543, 381, 316, 626, 381,
659 381, 315, 552, 553, 317, 575, 576, 384, 385, 319,
660 66, 644, 301, 303, 321, 435, 361, 382, 154, 383,
661 354, 356, 464, 394, 395, 442, 392, 67, 68, 69,
662 70, 438, 403, 297, 450, 479, 489, 500, 498, 297,
663 414, 415, 416, 417, 418, 419, 488, -420, 71, 497,
664 72, 499, 73, 74, 75, 76, 543, 583, 574, 335,
665 336, 337, 338, 339, 340, 341, 501, 77, 78, 335,
666 336, 337, 338, 339, 340, 341, 335, 336, 337, 338,
667 339, 340, 341, 502, 505, 563, 564, 599, 507, 590,
668 513, 601, 533, 534, 535, 536, 537, 538, 539, 540,
669 577, 514, 517, 297, 515, 523, 518, 524, 396, 528,
670 529, -24, 550, 560, 381, 381, 561, 566, 562, 620,
671 543, 565, 297, 297, 298, 567, 568, 570, 573, 359,
672 298, 136, -387, 543, -396, 580, 581, 406, 593, 429,
673 585, 594, 543, 605, 598, 391, 61, 127, 606, 608,
674 609, 618, 613, 615, 152, 62, 616, 353, 617, 619,
675 629, 530, 398, 627, 630, 134, 635, 637, 639, 643,
676 531, 430, 638, 64, 410, 640, 411, 597, 412, 456,
677 109, 413, 145, 326, 439, 305, 454, 455, 86, 352,
678 521, 444, 465, 130, 298, 466, 292, 293, 66, 467,
679 487, 468, 469, 470, 471, 472, 473, 112, 129, 294,
680 295, 389, 571, 298, 298, 67, 68, 69, 70, 393,
681 641, 407, 578, 434, 559, 152, 485, 0, 0, 480,
682 110, 155, 0, 320, 481, 0, 71, 332, 532, 0,
683 73, 74, 75, 76, 0, 0, 0, 533, 534, 535,
684 536, 537, 538, 539, 540, 541, 542, 297, 297, 0,
685 492, 0, 0, 0, 0, 485, 0, 0, 0, 0,
686 0, 61, 0, 0, 0, 510, 112, 0, 0, 0,
687 62, 0, 0, 0, 0, 0, 63, 0, 0, 522,
688 0, 0, 0, 0, 0, 279, 0, 0, 64, 110,
689 0, 555, 591, 0, 557, 0, 0, 61, 0, 0,
690 127, 0, 0, 556, 391, 0, 62, 0, 398, 0,
691 0, 0, 63, 10, 11, 12, 13, 14, 15, 16,
692 17, 0, 0, 0, 64, 0, 0, 430, 0, 0,
693 67, 68, 69, 70, 0, 0, 0, 0, 298, 298,
694 0, 0, 0, 0, 0, 0, 0, 0, 587, 66,
695 0, 71, 0, 72, 0, 73, 74, 75, 76, 0,
696 0, 0, 0, 0, 0, 0, 67, 68, 69, 70,
697 77, 78, 0, 0, 596, 0, 0, 0, 0, 0,
698 0, 607, 0, 0, 0, 592, 0, 71, 0, 72,
699 0, 73, 74, 75, 76, 0, 0, 0, 0, 0,
700 0, 0, 0, 0, 0, 621, 77, 78, 87, 0,
701 88, 89, 90, 91, 92, 93, 94, 95, 96, 0,
702 97, 98, 99, 100, 0, 160, 0, 621, 161, 162,
703 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
704 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
705 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
706 193, 0, 194, 195, 196, 197, 198, 199, 200, 201,
707 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
708 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
709 222, 223, 224, 225, 226, 227, 228, 0, 229, 230,
710 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
711 0, 241, 0, 242, 243, 244, 245, 246, 247, 248,
712 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
713 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
714 269, 270, 271, 272, 273, 274, 160, 0, 275, 161,
715 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
716 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
717 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
718 192, 193, 0, 194, 195, 196, 197, 198, 199, 200,
719 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
720 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
721 221, 222, 223, 224, 225, 226, 227, 228, 0, 0,
722 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
723 240, 0, 241, 0, 242, 243, 244, 245, 246, 247,
724 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
725 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
726 268, 269, 270, 271, 272, 273, 274, 160, 355, 275,
727 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
728 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
729 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
730 191, 192, 193, 0, 194, 195, 196, 197, 198, 199,
731 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
732 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
733 220, 221, 222, 223, 224, 225, 226, 227, 228, 0,
734 0, 230, 231, 232, 233, 234, 235, 236, 237, 238,
735 239, 240, 0, 241, 0, 242, 243, 244, 245, 246,
736 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
737 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
738 267, 268, 269, 270, 271, 272, 273, 274, 61, 0,
739 275, 0, 0, 0, 0, 0, 0, 62, 61, 0,
740 0, 0, 408, 409, 0, 0, 0, 62, 0, 0,
741 0, 0, 408, 409, 0, 64, 410, 0, 411, 0,
742 412, 0, 0, 413, 0, 64, 410, -435, 411, 0,
743 412, 0, 0, 413, 0, 130, 0, 0, 292, 293,
744 66, 0, 0, 0, 0, 130, 0, 0, 292, 293,
745 66, 294, 295, 0, 0, 602, 0, 67, 68, 69,
746 70, 294, 295, 0, 0, 0, 0, 67, 68, 69,
747 70, 0, 0, 0, 0, 0, 0, 0, 71, 0,
748 72, 0, 73, 74, 75, 76, 0, 0, 71, 0,
749 72, 0, 73, 74, 75, 76, 0, 77, 78, 414,
750 415, 416, 417, 418, 419, 0, 61, 77, 78, 414,
751 415, 416, 417, 418, 419, 62, 0, 0, 0, 0,
752 408, 409, 0, 0, 0, 0, 0, 0, 0, 0,
753 0, 0, 0, 64, 410, 0, 411, 0, 412, 0,
754 0, 413, 0, 0, 0, 0, 0, 0, 0, 0,
755 0, 0, 0, 130, 0, 0, 292, 293, 66, 0,
756 0, 0, 0, 0, 0, 0, 0, 0, 0, 294,
757 295, 0, 0, 0, 0, 67, 68, 69, 70, 0,
758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
759 0, 0, 0, 0, 0, 0, 71, 0, 72, 0,
760 73, 74, 75, 76, 0, 0, 0, 0, 0, 0,
761 0, 0, 0, 0, 0, 77, 78, 414, 415, 416,
762 417, 418, 419, 1, 2, 3, 4, 5, 6, 7,
763 8, 0, 0, 0, 0, 0, 9, 0, 10, 11,
764 12, 13, 14, 15, 16, 17, 0, 0, 0, 18,
765 0, 0, 0, 0, 0, 19, 20, 0, 0, 0,
766 0, 0, 0, 0, 0, 0, 21, 0, 0, 0,
767 0, 61, 1, 2, 3, 4, 5, 6, 7, 8,
768 62, 0, 0, 0, 0, 0, 63, 10, 11, 12,
769 13, 14, 15, 16, 17, 0, 0, 0, 490, 410,
770 0, 411, 0, 412, 0, 0, 413, 22, 23, 24,
771 25, 26, 27, 28, 0, 29, 0, 0, 0, 0,
772 0, 292, 293, 66, 0, 0, 0, 0, 0, 0,
773 0, 0, 0, 0, 294, 295, 0, 0, 0, 30,
774 67, 68, 69, 70, 0, 0, 0, 61, 0, 0,
775 0, 0, 0, 0, 0, 0, 62, 82, 83, 84,
776 491, 71, 530, 72, 0, 73, 74, 75, 76, 0,
777 0, 531, 0, 0, 64, 410, 0, 411, 0, 412,
778 77, 78, 413, 0, 0, 0, 120, 1, 2, 121,
779 4, 5, 6, 122, 8, 123, 0, 292, 293, 66,
780 124, 0, 10, 11, 12, 13, 14, 15, 16, 17,
781 294, 295, 0, 81, 0, 0, 67, 68, 69, 70,
782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
783 0, 61, 0, 0, 0, 0, 0, 71, 0, 532,
784 62, 73, 74, 75, 76, 0, 63, 0, 533, 534,
785 535, 536, 537, 538, 539, 540, 541, 542, 64, 410,
786 0, 411, 0, 412, 0, 0, 413, 0, 0, 0,
787 0, 0, 82, 83, 84, 0, 0, 0, 0, 0,
788 0, 292, 293, 66, 61, 0, 0, 0, 0, 0,
789 0, 0, 0, 62, 294, 295, 0, 0, 0, 63,
790 67, 68, 69, 70, 0, 0, 0, 0, 0, 0,
791 0, 64, 0, 0, 289, 61, 290, 0, 0, 291,
792 0, 71, 0, 72, 62, 73, 74, 75, 76, 0,
793 63, 0, 0, 0, 292, 293, 0, 0, 0, 0,
794 77, 78, 64, 0, 0, 0, 0, 294, 295, 0,
795 153, 0, 0, 67, 68, 69, 70, 0, 0, 0,
796 0, 0, 61, 0, 296, 0, 0, 154, 0, 0,
797 0, 62, 0, 0, 71, 0, 72, 63, 73, 74,
798 75, 76, 0, 0, 67, 68, 69, 70, 0, 64,
799 0, 61, 0, 77, 78, 0, 0, 390, 0, 0,
800 62, 0, 0, 0, 0, 71, 63, 72, 0, 73,
801 74, 75, 76, 0, 154, 0, 0, 0, 64, 0,
802 61, 0, 0, 0, 77, 78, 0, 0, 0, 62,
803 0, 67, 68, 69, 70, 63, 0, 0, 0, 0,
804 0, 0, 0, 66, 287, 0, 0, 64, 0, 0,
805 0, 0, 71, 0, 72, 61, 73, 74, 75, 76,
806 67, 68, 69, 70, 62, 0, 0, 0, 0, 0,
807 63, 77, 78, 0, 0, 0, 0, 0, 0, 0,
808 0, 71, 64, 72, 61, 73, 74, 75, 76, 67,
809 68, 69, 70, 62, 0, 0, 0, 0, 0, 63,
810 77, 78, 0, 0, 0, 0, 0, 154, 0, 0,
811 71, 64, 72, 61, 73, 74, 75, 76, 0, 358,
812 0, 0, 62, 0, 67, 68, 69, 70, 63, 77,
813 78, 0, 0, 0, 0, 0, 0, 0, 0, 0,
814 64, 0, 0, 0, 0, 71, 0, 72, 0, 73,
815 74, 75, 76, 67, 68, 69, 70, 0, 0, 0,
816 0, 0, 0, 0, 77, 78, 0, 0, 0, 0,
817 0, 0, 0, 0, 71, 0, 72, 0, 73, 74,
818 75, 76, 67, 68, 69, 70, 0, 0, 0, 0,
819 0, 0, 0, 77, 78, 0, 0, 0, 0, 0,
820 0, 0, 0, 71, 0, 72, 0, 73, 74, 75,
821 76, 1, 2, 3, 4, 5, 6, 7, 8, 0,
822 0, 0, 77, 78, 483, 0, 10, 11, 12, 13,
823 14, 15, 16, 17, 0, 0, 0, 81, 1, 2,
824 3, 4, 5, 6, 7, 8, 0, 0, 0, 0,
825 0, 483, 0, 10, 11, 12, 13, 14, 15, 16,
826 17, 0, 0, 0, 81, 0, 1, 2, 3, 4,
827 5, 6, 7, 8, 0, 0, 0, 484, 0, 9,
828 0, 10, 11, 12, 13, 14, 15, 16, 17, 0,
829 0, 0, 18, 0, 0, 0, 82, 83, 84, 328,
830 0, 0, 0, 0, 509, 520, 0, 0, 0, 0,
831 0, 0, 0, 0, 1, 2, 3, 4, 5, 6,
832 7, 8, 0, 82, 83, 84, 328, 9, 0, 10,
833 11, 12, 13, 14, 15, 16, 17, 0, 0, 0,
834 81, 0, 1, 2, 3, 4, 5, 6, 7, 8,
835 0, 107, 108, 25, 85, 9, 0, 10, 11, 12,
836 13, 14, 15, 16, 17, 0, 0, 0, 18, 1,
837 2, 3, 4, 5, 6, 7, 8, 0, 0, 0,
838 0, 0, 327, 0, 10, 11, 12, 13, 14, 15,
839 16, 17, 0, 0, 0, 81, 0, 0, 0, 82,
840 83, 84, 85, 0, 0, 0, 0, 0, 0, 0,
841 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,
842 3, 4, 5, 6, 7, 8, 0, 107, 108, 25,
843 85, 124, 0, 10, 11, 12, 13, 14, 15, 16,
844 17, 0, 0, 0, 81, 1, 2, 3, 4, 5,
845 6, 7, 8, 0, 82, 83, 84, 328, 399, 0,
846 10, 11, 12, 13, 14, 15, 16, 17, 0, 0,
847 0, 81, 1, 2, 3, 4, 5, 6, 7, 8,
848 0, 0, 0, 0, 0, 0, 0, 10, 11, 12,
849 13, 14, 15, 16, 17, 506, 0, 0, 81, 0,
850 0, 0, 0, 82, 83, 84, 362, 363, 364, 365,
851 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
852 376, 377, 378, 379, 443, 0, 0, 0, 0, 495,
853 82, 83, 84, 362, 363, 364, 365, 366, 367, 368,
854 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
855 379, 551, 0, 0, 0, 0, 380, 82, 83, 84,
856 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
857 372, 373, 374, 375, 376, 377, 378, 379, 634, 0,
858 0, 0, 0, 495, 0, 0, 0, 362, 363, 364,
859 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
860 375, 376, 377, 378, 379, 612, 0, 0, 0, 0,
861 495, 0, 0, 362, 363, 364, 365, 366, 367, 368,
862 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
863 379, 516, 0, 0, 0, 0, 495, 0, 362, 363,
864 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
865 374, 375, 376, 377, 378, 379, 584, 0, 0, 0,
866 0, 380, 0, 362, 363, 364, 365, 366, 367, 368,
867 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
868 379, 0, 0, 0, 0, 0, 495, 362, 363, 364,
869 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
870 375, 376, 377, 378, 379, 0, 0, 0, 0, 0,
871 380, 362, 363, 364, 365, 366, 367, 368, 369, 370,
872 371, 372, 373, 374, 375, 376, 377, 378, 379, 0,
873 0, 0, 0, 0, 495, 362, 363, 364, 365, 366,
874 367, 368, 369, 370, 371, 372, 373, 374, 375, 376,
875 377, 378, 379, 0, 0, 0, 0, 0, 380, 362,
876 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
877 373, 374, 375, 376, 377, 378, 379, 0, 0, 0,
881 static const short int yycheck
[] =
883 38, 29, 9, 102, 9, 26, 22, 0, 106, 320,
884 299, 488, 342, 488, 65, 348, 23, 24, 25, 477,
885 524, 291, 526, 34, 32, 18, 0, 297, 497, 22,
886 9, 3, 11, 38, 6, 41, 42, 0, 10, 32,
887 12, 13, 14, 15, 16, 17, 27, 28, 29, 4,
888 5, 6, 33, 34, 9, 96, 6, 34, 32, 9,
889 65, 50, 70, 393, 85, 38, 570, 39, 357, 32,
890 403, 360, 110, 80, 549, 82, 83, 84, 37, 37,
891 413, 0, 41, 42, 42, 37, 37, 420, 40, 96,
892 401, 361, 40, 39, 40, 43, 39, 40, 105, 106,
893 107, 108, 153, 17, 18, 110, 113, 6, 7, 8,
894 380, 381, 123, 42, 572, 42, 585, 55, 3, 124,
895 115, 116, 117, 581, 39, 40, 38, 12, 36, 440,
896 37, 138, 148, 18, 638, 38, 613, 39, 40, 31,
897 598, 41, 149, 159, 151, 30, 42, 616, 153, 31,
898 619, 626, 31, 38, 37, 488, 445, 31, 635, 448,
899 449, 42, 495, 496, 44, 17, 18, 308, 309, 38,
900 55, 640, 107, 108, 6, 43, 38, 41, 55, 42,
901 279, 280, 43, 38, 33, 38, 46, 72, 73, 74,
902 75, 39, 46, 291, 38, 45, 37, 32, 37, 297,
903 114, 115, 116, 117, 118, 119, 46, 38, 93, 46,
904 95, 38, 97, 98, 99, 100, 549, 550, 529, 97,
905 98, 99, 100, 101, 102, 103, 46, 112, 113, 97,
906 98, 99, 100, 101, 102, 103, 97, 98, 99, 100,
907 101, 102, 103, 38, 37, 515, 516, 580, 39, 560,
908 39, 584, 104, 105, 106, 107, 108, 109, 110, 111,
909 112, 39, 33, 361, 40, 37, 41, 41, 319, 39,
910 39, 39, 39, 39, 563, 564, 39, 41, 40, 612,
911 613, 40, 380, 381, 291, 37, 39, 41, 46, 296,
912 297, 329, 38, 626, 38, 38, 38, 335, 33, 337,
913 40, 38, 635, 39, 38, 312, 3, 328, 37, 39,
914 33, 32, 40, 39, 319, 12, 40, 278, 40, 38,
915 33, 18, 327, 39, 39, 32, 40, 39, 39, 39,
916 27, 338, 41, 30, 31, 40, 33, 573, 35, 390,
917 22, 38, 45, 145, 351, 110, 384, 385, 18, 159,
918 452, 358, 3, 50, 361, 6, 53, 54, 55, 10,
919 404, 12, 13, 14, 15, 16, 17, 383, 28, 66,
920 67, 311, 526, 380, 381, 72, 73, 74, 75, 315,
921 635, 335, 532, 339, 504, 390, 402, -1, -1, 396,
922 383, 398, -1, 400, 399, -1, 93, 404, 95, -1,
923 97, 98, 99, 100, -1, -1, -1, 104, 105, 106,
924 107, 108, 109, 110, 111, 112, 113, 515, 516, -1,
925 413, -1, -1, -1, -1, 441, -1, -1, -1, -1,
926 -1, 3, -1, -1, -1, 442, 452, -1, -1, -1,
927 12, -1, -1, -1, -1, -1, 18, -1, -1, 456,
928 -1, -1, -1, -1, -1, 27, -1, -1, 30, 452,
929 -1, 499, 561, -1, 502, -1, -1, 3, -1, -1,
930 491, -1, -1, 501, 481, -1, 12, -1, 483, -1,
931 -1, -1, 18, 19, 20, 21, 22, 23, 24, 25,
932 26, -1, -1, -1, 30, -1, -1, 504, -1, -1,
933 72, 73, 74, 75, -1, -1, -1, -1, 515, 516,
934 -1, -1, -1, -1, -1, -1, -1, -1, 556, 55,
935 -1, 93, -1, 95, -1, 97, 98, 99, 100, -1,
936 -1, -1, -1, -1, -1, -1, 72, 73, 74, 75,
937 112, 113, -1, -1, 572, -1, -1, -1, -1, -1,
938 -1, 589, -1, -1, -1, 562, -1, 93, -1, 95,
939 -1, 97, 98, 99, 100, -1, -1, -1, -1, -1,
940 -1, -1, -1, -1, -1, 613, 112, 113, 72, -1,
941 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
942 84, 85, 86, 87, -1, 0, -1, 635, 3, 4,
943 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
944 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
945 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
946 35, -1, 37, 38, 39, 40, 41, 42, 43, 44,
947 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
948 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
949 65, 66, 67, 68, 69, 70, 71, -1, 73, 74,
950 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
951 -1, 86, -1, 88, 89, 90, 91, 92, 93, 94,
952 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
953 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
954 115, 116, 117, 118, 119, 120, 0, -1, 123, 3,
955 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
956 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
957 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
958 34, 35, -1, 37, 38, 39, 40, 41, 42, 43,
959 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
960 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
961 64, 65, 66, 67, 68, 69, 70, 71, -1, -1,
962 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
963 84, -1, 86, -1, 88, 89, 90, 91, 92, 93,
964 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
965 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
966 114, 115, 116, 117, 118, 119, 120, 0, 122, 123,
967 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
968 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
969 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
970 33, 34, 35, -1, 37, 38, 39, 40, 41, 42,
971 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
972 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
973 63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
974 -1, 74, 75, 76, 77, 78, 79, 80, 81, 82,
975 83, 84, -1, 86, -1, 88, 89, 90, 91, 92,
976 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
977 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
978 113, 114, 115, 116, 117, 118, 119, 120, 3, -1,
979 123, -1, -1, -1, -1, -1, -1, 12, 3, -1,
980 -1, -1, 17, 18, -1, -1, -1, 12, -1, -1,
981 -1, -1, 17, 18, -1, 30, 31, -1, 33, -1,
982 35, -1, -1, 38, -1, 30, 31, 32, 33, -1,
983 35, -1, -1, 38, -1, 50, -1, -1, 53, 54,
984 55, -1, -1, -1, -1, 50, -1, -1, 53, 54,
985 55, 66, 67, -1, -1, 70, -1, 72, 73, 74,
986 75, 66, 67, -1, -1, -1, -1, 72, 73, 74,
987 75, -1, -1, -1, -1, -1, -1, -1, 93, -1,
988 95, -1, 97, 98, 99, 100, -1, -1, 93, -1,
989 95, -1, 97, 98, 99, 100, -1, 112, 113, 114,
990 115, 116, 117, 118, 119, -1, 3, 112, 113, 114,
991 115, 116, 117, 118, 119, 12, -1, -1, -1, -1,
992 17, 18, -1, -1, -1, -1, -1, -1, -1, -1,
993 -1, -1, -1, 30, 31, -1, 33, -1, 35, -1,
994 -1, 38, -1, -1, -1, -1, -1, -1, -1, -1,
995 -1, -1, -1, 50, -1, -1, 53, 54, 55, -1,
996 -1, -1, -1, -1, -1, -1, -1, -1, -1, 66,
997 67, -1, -1, -1, -1, 72, 73, 74, 75, -1,
998 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
999 -1, -1, -1, -1, -1, -1, 93, -1, 95, -1,
1000 97, 98, 99, 100, -1, -1, -1, -1, -1, -1,
1001 -1, -1, -1, -1, -1, 112, 113, 114, 115, 116,
1002 117, 118, 119, 4, 5, 6, 7, 8, 9, 10,
1003 11, -1, -1, -1, -1, -1, 17, -1, 19, 20,
1004 21, 22, 23, 24, 25, 26, -1, -1, -1, 30,
1005 -1, -1, -1, -1, -1, 36, 37, -1, -1, -1,
1006 -1, -1, -1, -1, -1, -1, 47, -1, -1, -1,
1007 -1, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1008 12, -1, -1, -1, -1, -1, 18, 19, 20, 21,
1009 22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
1010 -1, 33, -1, 35, -1, -1, 38, 88, 89, 90,
1011 91, 92, 93, 94, -1, 96, -1, -1, -1, -1,
1012 -1, 53, 54, 55, -1, -1, -1, -1, -1, -1,
1013 -1, -1, -1, -1, 66, 67, -1, -1, -1, 120,
1014 72, 73, 74, 75, -1, -1, -1, 3, -1, -1,
1015 -1, -1, -1, -1, -1, -1, 12, 89, 90, 91,
1016 92, 93, 18, 95, -1, 97, 98, 99, 100, -1,
1017 -1, 27, -1, -1, 30, 31, -1, 33, -1, 35,
1018 112, 113, 38, -1, -1, -1, 3, 4, 5, 6,
1019 7, 8, 9, 10, 11, 12, -1, 53, 54, 55,
1020 17, -1, 19, 20, 21, 22, 23, 24, 25, 26,
1021 66, 67, -1, 30, -1, -1, 72, 73, 74, 75,
1022 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1023 -1, 3, -1, -1, -1, -1, -1, 93, -1, 95,
1024 12, 97, 98, 99, 100, -1, 18, -1, 104, 105,
1025 106, 107, 108, 109, 110, 111, 112, 113, 30, 31,
1026 -1, 33, -1, 35, -1, -1, 38, -1, -1, -1,
1027 -1, -1, 89, 90, 91, -1, -1, -1, -1, -1,
1028 -1, 53, 54, 55, 3, -1, -1, -1, -1, -1,
1029 -1, -1, -1, 12, 66, 67, -1, -1, -1, 18,
1030 72, 73, 74, 75, -1, -1, -1, -1, -1, -1,
1031 -1, 30, -1, -1, 33, 3, 35, -1, -1, 38,
1032 -1, 93, -1, 95, 12, 97, 98, 99, 100, -1,
1033 18, -1, -1, -1, 53, 54, -1, -1, -1, -1,
1034 112, 113, 30, -1, -1, -1, -1, 66, 67, -1,
1035 38, -1, -1, 72, 73, 74, 75, -1, -1, -1,
1036 -1, -1, 3, -1, 83, -1, -1, 55, -1, -1,
1037 -1, 12, -1, -1, 93, -1, 95, 18, 97, 98,
1038 99, 100, -1, -1, 72, 73, 74, 75, -1, 30,
1039 -1, 3, -1, 112, 113, -1, -1, 38, -1, -1,
1040 12, -1, -1, -1, -1, 93, 18, 95, -1, 97,
1041 98, 99, 100, -1, 55, -1, -1, -1, 30, -1,
1042 3, -1, -1, -1, 112, 113, -1, -1, -1, 12,
1043 -1, 72, 73, 74, 75, 18, -1, -1, -1, -1,
1044 -1, -1, -1, 55, 27, -1, -1, 30, -1, -1,
1045 -1, -1, 93, -1, 95, 3, 97, 98, 99, 100,
1046 72, 73, 74, 75, 12, -1, -1, -1, -1, -1,
1047 18, 112, 113, -1, -1, -1, -1, -1, -1, -1,
1048 -1, 93, 30, 95, 3, 97, 98, 99, 100, 72,
1049 73, 74, 75, 12, -1, -1, -1, -1, -1, 18,
1050 112, 113, -1, -1, -1, -1, -1, 55, -1, -1,
1051 93, 30, 95, 3, 97, 98, 99, 100, -1, 38,
1052 -1, -1, 12, -1, 72, 73, 74, 75, 18, 112,
1053 113, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1054 30, -1, -1, -1, -1, 93, -1, 95, -1, 97,
1055 98, 99, 100, 72, 73, 74, 75, -1, -1, -1,
1056 -1, -1, -1, -1, 112, 113, -1, -1, -1, -1,
1057 -1, -1, -1, -1, 93, -1, 95, -1, 97, 98,
1058 99, 100, 72, 73, 74, 75, -1, -1, -1, -1,
1059 -1, -1, -1, 112, 113, -1, -1, -1, -1, -1,
1060 -1, -1, -1, 93, -1, 95, -1, 97, 98, 99,
1061 100, 4, 5, 6, 7, 8, 9, 10, 11, -1,
1062 -1, -1, 112, 113, 17, -1, 19, 20, 21, 22,
1063 23, 24, 25, 26, -1, -1, -1, 30, 4, 5,
1064 6, 7, 8, 9, 10, 11, -1, -1, -1, -1,
1065 -1, 17, -1, 19, 20, 21, 22, 23, 24, 25,
1066 26, -1, -1, -1, 30, -1, 4, 5, 6, 7,
1067 8, 9, 10, 11, -1, -1, -1, 70, -1, 17,
1068 -1, 19, 20, 21, 22, 23, 24, 25, 26, -1,
1069 -1, -1, 30, -1, -1, -1, 89, 90, 91, 92,
1070 -1, -1, -1, -1, 70, 43, -1, -1, -1, -1,
1071 -1, -1, -1, -1, 4, 5, 6, 7, 8, 9,
1072 10, 11, -1, 89, 90, 91, 92, 17, -1, 19,
1073 20, 21, 22, 23, 24, 25, 26, -1, -1, -1,
1074 30, -1, 4, 5, 6, 7, 8, 9, 10, 11,
1075 -1, 89, 90, 91, 92, 17, -1, 19, 20, 21,
1076 22, 23, 24, 25, 26, -1, -1, -1, 30, 4,
1077 5, 6, 7, 8, 9, 10, 11, -1, -1, -1,
1078 -1, -1, 17, -1, 19, 20, 21, 22, 23, 24,
1079 25, 26, -1, -1, -1, 30, -1, -1, -1, 89,
1080 90, 91, 92, -1, -1, -1, -1, -1, -1, -1,
1081 -1, -1, -1, -1, -1, -1, -1, -1, 4, 5,
1082 6, 7, 8, 9, 10, 11, -1, 89, 90, 91,
1083 92, 17, -1, 19, 20, 21, 22, 23, 24, 25,
1084 26, -1, -1, -1, 30, 4, 5, 6, 7, 8,
1085 9, 10, 11, -1, 89, 90, 91, 92, 17, -1,
1086 19, 20, 21, 22, 23, 24, 25, 26, -1, -1,
1087 -1, 30, 4, 5, 6, 7, 8, 9, 10, 11,
1088 -1, -1, -1, -1, -1, -1, -1, 19, 20, 21,
1089 22, 23, 24, 25, 26, 37, -1, -1, 30, -1,
1090 -1, -1, -1, 89, 90, 91, 48, 49, 50, 51,
1091 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1092 62, 63, 64, 65, 39, -1, -1, -1, -1, 71,
1093 89, 90, 91, 48, 49, 50, 51, 52, 53, 54,
1094 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1095 65, 39, -1, -1, -1, -1, 71, 89, 90, 91,
1096 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1097 58, 59, 60, 61, 62, 63, 64, 65, 39, -1,
1098 -1, -1, -1, 71, -1, -1, -1, 48, 49, 50,
1099 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1100 61, 62, 63, 64, 65, 40, -1, -1, -1, -1,
1101 71, -1, -1, 48, 49, 50, 51, 52, 53, 54,
1102 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1103 65, 41, -1, -1, -1, -1, 71, -1, 48, 49,
1104 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1105 60, 61, 62, 63, 64, 65, 41, -1, -1, -1,
1106 -1, 71, -1, 48, 49, 50, 51, 52, 53, 54,
1107 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1108 65, -1, -1, -1, -1, -1, 71, 48, 49, 50,
1109 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1110 61, 62, 63, 64, 65, -1, -1, -1, -1, -1,
1111 71, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1112 57, 58, 59, 60, 61, 62, 63, 64, 65, -1,
1113 -1, -1, -1, -1, 71, 48, 49, 50, 51, 52,
1114 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1115 63, 64, 65, -1, -1, -1, -1, -1, 71, 48,
1116 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1117 59, 60, 61, 62, 63, 64, 65, -1, -1, -1,
1121 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1122 symbol of state STATE-NUM. */
1123 static const unsigned char yystos
[] =
1125 0, 4, 5, 6, 7, 8, 9, 10, 11, 17,
1126 19, 20, 21, 22, 23, 24, 25, 26, 30, 36,
1127 37, 47, 88, 89, 90, 91, 92, 93, 94, 96,
1128 120, 132, 133, 134, 135, 136, 152, 157, 159, 160,
1129 161, 162, 163, 164, 165, 166, 167, 172, 173, 174,
1130 175, 176, 178, 180, 181, 186, 191, 200, 201, 9,
1131 11, 3, 12, 18, 30, 38, 55, 72, 73, 74,
1132 75, 93, 95, 97, 98, 99, 100, 112, 113, 130,
1133 199, 30, 89, 90, 91, 92, 174, 72, 74, 75,
1134 76, 77, 78, 79, 80, 81, 82, 84, 85, 86,
1135 87, 137, 138, 139, 141, 142, 143, 89, 90, 158,
1136 159, 173, 178, 186, 192, 193, 130, 130, 130, 194,
1137 3, 6, 10, 12, 17, 153, 154, 160, 34, 201,
1138 50, 235, 236, 0, 134, 130, 179, 198, 199, 4,
1139 5, 6, 9, 168, 6, 165, 171, 37, 38, 42,
1140 42, 198, 199, 38, 55, 130, 130, 130, 130, 38,
1141 0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1142 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1143 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1144 32, 33, 34, 35, 37, 38, 39, 40, 41, 42,
1145 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1146 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1147 63, 64, 65, 66, 67, 68, 69, 70, 71, 73,
1148 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1149 84, 86, 88, 89, 90, 91, 92, 93, 94, 95,
1150 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1151 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1152 116, 117, 118, 119, 120, 123, 131, 147, 148, 27,
1153 130, 144, 36, 147, 34, 123, 140, 27, 130, 33,
1154 35, 38, 53, 54, 66, 67, 83, 129, 130, 149,
1155 130, 194, 130, 194, 37, 164, 130, 41, 196, 196,
1156 196, 196, 199, 31, 37, 42, 31, 44, 197, 38,
1157 130, 6, 169, 6, 9, 170, 168, 17, 92, 159,
1158 177, 178, 130, 187, 188, 97, 98, 99, 100, 101,
1159 102, 103, 207, 208, 209, 222, 223, 229, 230, 231,
1160 130, 198, 177, 131, 147, 122, 147, 149, 38, 130,
1161 149, 38, 48, 49, 50, 51, 52, 53, 54, 55,
1162 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1163 71, 128, 41, 42, 183, 183, 37, 182, 183, 182,
1164 38, 130, 46, 207, 38, 33, 198, 197, 199, 17,
1165 199, 39, 40, 46, 40, 43, 179, 212, 17, 18,
1166 31, 33, 35, 38, 114, 115, 116, 117, 118, 119,
1167 129, 179, 189, 190, 204, 224, 225, 226, 235, 179,
1168 130, 232, 233, 18, 225, 43, 208, 189, 39, 130,
1169 39, 40, 38, 39, 130, 149, 150, 151, 149, 149,
1170 38, 158, 184, 185, 179, 179, 198, 27, 28, 29,
1171 33, 34, 155, 156, 43, 3, 6, 10, 12, 13,
1172 14, 15, 16, 17, 39, 202, 203, 205, 206, 45,
1173 130, 199, 197, 17, 70, 178, 189, 188, 46, 37,
1174 30, 92, 159, 189, 189, 71, 128, 46, 37, 38,
1175 32, 46, 38, 37, 40, 37, 37, 39, 197, 70,
1176 130, 145, 146, 39, 39, 40, 41, 33, 41, 195,
1177 43, 185, 130, 37, 41, 39, 40, 204, 39, 39,
1178 18, 27, 95, 104, 105, 106, 107, 108, 109, 110,
1179 111, 112, 113, 189, 211, 213, 214, 215, 216, 236,
1180 39, 39, 189, 189, 224, 179, 235, 179, 234, 233,
1181 39, 39, 40, 149, 149, 40, 41, 37, 39, 205,
1182 41, 203, 205, 46, 197, 17, 18, 112, 216, 219,
1183 38, 38, 211, 189, 41, 40, 227, 179, 39, 40,
1184 197, 147, 130, 33, 38, 205, 235, 155, 38, 189,
1185 204, 189, 70, 224, 228, 39, 37, 179, 39, 33,
1186 70, 204, 40, 40, 217, 39, 40, 40, 32, 38,
1187 189, 179, 210, 211, 212, 218, 236, 39, 224, 33,
1188 39, 220, 221, 224, 39, 40, 211, 39, 41, 39,
1189 40, 210, 205, 39, 224
1192 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1193 static const unsigned char yyr1
[] =
1195 0, 127, 128, 128, 128, 128, 128, 128, 128, 128,
1196 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
1197 129, 129, 129, 129, 130, 130, 130, 130, 130, 130,
1198 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
1199 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
1200 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
1201 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
1202 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
1203 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
1204 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
1205 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
1206 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
1207 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
1208 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
1209 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
1210 131, 131, 131, 131, 131, 132, 132, 133, 133, 134,
1211 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
1212 134, 135, 136, 137, 137, 137, 137, 137, 137, 137,
1213 137, 137, 138, 138, 139, 139, 139, 140, 140, 141,
1214 141, 142, 142, 142, 143, 143, 144, 144, 144, 145,
1215 145, 146, 146, 147, 147, 148, 148, 149, 149, 149,
1216 149, 149, 149, 149, 149, 149, 149, 150, 150, 151,
1217 151, 152, 153, 154, 154, 154, 154, 155, 155, 156,
1218 156, 156, 156, 156, 157, 158, 158, 158, 158, 158,
1219 158, 159, 159, 160, 160, 161, 161, 161, 162, 162,
1220 162, 162, 163, 163, 163, 164, 164, 164, 164, 164,
1221 164, 164, 164, 165, 165, 166, 166, 166, 167, 167,
1222 167, 167, 168, 168, 168, 168, 168, 169, 169, 170,
1223 170, 170, 171, 171, 171, 172, 173, 173, 173, 173,
1224 174, 174, 175, 175, 175, 175, 176, 176, 177, 177,
1225 177, 177, 178, 178, 178, 179, 179, 180, 181, 182,
1226 182, 183, 184, 184, 185, 186, 187, 187, 188, 188,
1227 189, 189, 189, 189, 189, 189, 190, 190, 190, 190,
1228 191, 192, 193, 194, 194, 195, 195, 196, 196, 197,
1229 197, 198, 198, 199, 199, 200, 200, 201, 201, 201,
1230 202, 202, 203, 203, 204, 205, 206, 206, 206, 206,
1231 206, 206, 206, 206, 206, 207, 207, 208, 208, 208,
1232 208, 208, 209, 209, 210, 210, 210, 211, 211, 211,
1233 211, 211, 212, 212, 213, 214, 215, 216, 216, 216,
1234 216, 216, 216, 216, 216, 216, 216, 217, 217, 218,
1235 218, 219, 219, 220, 220, 221, 221, 222, 223, 224,
1236 224, 224, 225, 225, 226, 226, 226, 226, 226, 226,
1237 226, 226, 227, 227, 228, 228, 229, 230, 230, 231,
1238 232, 232, 233, 234, 234, 235, 235, 236
1241 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
1242 static const unsigned char yyr2
[] =
1244 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1245 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1246 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1247 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1248 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1249 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1250 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1251 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1252 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1253 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1254 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1255 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1256 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1257 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1258 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1259 1, 1, 1, 1, 1, 0, 1, 1, 2, 1,
1260 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1261 1, 3, 3, 2, 2, 1, 2, 2, 2, 2,
1262 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1263 1, 1, 1, 1, 1, 1, 6, 2, 2, 0,
1264 1, 1, 3, 0, 1, 1, 2, 3, 2, 3,
1265 5, 2, 4, 1, 1, 1, 4, 0, 1, 1,
1266 3, 6, 1, 1, 1, 1, 1, 0, 1, 1,
1267 1, 1, 1, 1, 3, 1, 1, 2, 4, 4,
1268 2, 2, 1, 1, 1, 2, 2, 2, 1, 1,
1269 1, 1, 1, 1, 2, 1, 1, 1, 1, 1,
1270 1, 1, 1, 1, 1, 1, 1, 2, 1, 1,
1271 2, 2, 0, 1, 2, 1, 2, 0, 1, 0,
1272 1, 1, 0, 1, 2, 2, 5, 7, 6, 8,
1273 1, 1, 6, 7, 6, 5, 1, 2, 0, 1,
1274 1, 3, 2, 4, 3, 3, 2, 4, 4, 1,
1275 1, 3, 1, 2, 3, 4, 1, 3, 1, 3,
1276 1, 4, 3, 3, 2, 5, 1, 1, 1, 1,
1277 2, 2, 2, 0, 1, 0, 7, 0, 7, 0,
1278 3, 0, 1, 1, 2, 4, 5, 7, 8, 13,
1279 1, 3, 2, 4, 2, 1, 1, 1, 1, 1,
1280 1, 1, 1, 1, 1, 1, 2, 1, 1, 1,
1281 1, 1, 3, 6, 1, 2, 1, 1, 1, 1,
1282 1, 1, 3, 4, 6, 8, 5, 1, 1, 1,
1283 1, 1, 1, 1, 1, 1, 1, 0, 2, 1,
1284 3, 1, 1, 0, 1, 1, 3, 3, 3, 1,
1285 1, 3, 5, 6, 1, 1, 1, 1, 1, 1,
1286 1, 1, 0, 2, 1, 3, 3, 1, 1, 3,
1287 1, 3, 4, 1, 3, 0, 1, 1
1291 /* YYDPREC[RULE-NUM] -- Dynamic precedence of rule #RULE-NUM (0 if none). */
1292 static const unsigned char yydprec
[] =
1294 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1295 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1296 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1297 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1298 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1299 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1300 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1301 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1302 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1303 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1304 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1305 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1306 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1307 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1308 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1309 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1310 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1311 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1312 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1313 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1314 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1315 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1316 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1317 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1318 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1319 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1320 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1321 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1322 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1323 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1325 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1326 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1327 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1328 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1329 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1330 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1331 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1332 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1333 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1334 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1335 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1336 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1337 0, 0, 0, 0, 0, 0, 0, 0
1340 /* YYMERGER[RULE-NUM] -- Index of merging function for rule #RULE-NUM. */
1341 static const unsigned char yymerger
[] =
1343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1344 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1345 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1346 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1347 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1348 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1349 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1350 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1351 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1352 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1353 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1354 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1355 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1356 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1357 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1358 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1359 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1360 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1361 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1362 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1363 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1364 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1365 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1366 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1367 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1368 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1369 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1370 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1371 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1372 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1373 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1374 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1375 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1376 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1377 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1378 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1379 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1380 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1381 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1382 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1384 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1385 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1386 0, 0, 0, 0, 0, 0, 0, 0
1389 /* YYIMMEDIATE[RULE-NUM] -- True iff rule #RULE-NUM is not to be deferred, as
1390 in the case of predicates. */
1391 static const yybool yyimmediate
[] =
1393 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1394 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1395 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1400 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1401 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1402 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1403 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1405 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1406 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1408 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1409 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1410 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1411 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1412 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1413 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1414 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1415 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1416 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1417 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1418 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1423 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1424 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1425 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1426 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1427 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1428 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1429 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1430 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1431 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1432 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1433 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1434 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1436 0, 0, 0, 0, 0, 0, 0, 0
1439 /* YYCONFLP[YYPACT[STATE-NUM]] -- Pointer into YYCONFL of start of
1440 list of conflicting reductions corresponding to action entry for
1441 state STATE-NUM in yytable. 0 means no conflicts. The list in
1442 yyconfl is terminated by a rule number of 0. */
1443 static const unsigned char yyconflp
[] =
1445 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1454 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1457 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1459 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1466 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1467 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1470 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1471 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1472 0, 19, 0, 0, 0, 0, 0, 0, 0, 0,
1473 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1506 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1513 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1524 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1527 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1530 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1531 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1534 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1541 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1546 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1548 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1550 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1551 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1552 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1553 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1554 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1555 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1559 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1560 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1563 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1565 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1567 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1570 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1571 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1572 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1574 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1575 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1576 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1577 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1578 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1579 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1582 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1583 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1584 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1585 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1586 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1587 0, 0, 0, 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, 1,
1635 3, 5, 7, 9, 11, 13, 15, 0, 0, 0,
1636 17, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1637 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1638 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1639 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1640 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1641 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1642 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1643 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1647 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1648 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1649 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1650 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1654 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1656 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1657 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1658 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1659 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1662 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1667 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1668 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1670 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1671 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1673 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1674 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1676 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1677 0, 0, 0, 0, 0, 0, 0, 0, 21, 0,
1678 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1679 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1683 /* YYCONFL[I] -- lists of conflicting rule numbers, each terminated by
1684 0, pointed into by YYCONFLP. */
1685 static const short int yyconfl
[] =
1687 0, 251, 0, 251, 0, 251, 0, 251, 0, 251,
1688 0, 251, 0, 251, 0, 251, 0, 251, 0, 251,
1692 /* Error token number */
1699 #define yynerrs (yystackp->yyerrcnt)
1701 #define yychar (yystackp->yyrawchar)
1703 #define yylval (yystackp->yyval)
1705 #define yylloc (yystackp->yyloc)
1706 #define psi_parser_proc_nerrs yynerrs
1707 #define psi_parser_proc_char yychar
1708 #define psi_parser_proc_lval yylval
1709 #define psi_parser_proc_lloc yylloc
1711 static const int YYEOF
= 0;
1712 static const int YYEMPTY
= -2;
1714 typedef enum { yyok
, yyaccept
, yyabort
, yyerr
} YYRESULTTAG
;
1716 #define YYCHK(YYE) \
1718 YYRESULTTAG yychk_flag = YYE; \
1719 if (yychk_flag != yyok) \
1720 return yychk_flag; \
1726 # define YYFPRINTF fprintf
1729 /* This macro is provided for backward compatibility. */
1730 #ifndef YY_LOCATION_PRINT
1731 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1735 # define YYDPRINTF(Args) \
1742 /*----------------------------------------.
1743 | Print this symbol's value on YYOUTPUT. |
1744 `----------------------------------------*/
1747 yy_symbol_value_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
1749 FILE *yyo
= yyoutput
;
1760 /*--------------------------------.
1761 | Print this symbol on YYOUTPUT. |
1762 `--------------------------------*/
1765 yy_symbol_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
1767 YYFPRINTF (yyoutput
, "%s %s (",
1768 yytype
< YYNTOKENS
? "token" : "nterm", yytname
[yytype
]);
1770 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
, P
, tokens
, index
);
1771 YYFPRINTF (yyoutput
, ")");
1774 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1778 YYFPRINTF (stderr, "%s ", Title); \
1779 yy_symbol_print (stderr, Type, Value, P, tokens, index); \
1780 YYFPRINTF (stderr, "\n"); \
1784 /* Nonzero means print parse trace. It is left uninitialized so that
1785 multiple parsers can coexist. */
1789 static void yypstack (struct yyGLRStack
* yystackp
, size_t yyk
)
1790 YY_ATTRIBUTE_UNUSED
;
1791 static void yypdumpstack (struct yyGLRStack
* yystackp
)
1792 YY_ATTRIBUTE_UNUSED
;
1794 #else /* !YYDEBUG */
1796 # define YYDPRINTF(Args)
1797 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1799 #endif /* !YYDEBUG */
1801 /* YYINITDEPTH -- initial size of the parser's stacks. */
1803 # define YYINITDEPTH 200
1806 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1807 if the built-in stack extension method is used).
1809 Do not make this value too large; the results are undefined if
1810 SIZE_MAX < YYMAXDEPTH * sizeof (GLRStackItem)
1811 evaluated with infinite-precision integer arithmetic. */
1814 # define YYMAXDEPTH 10000
1817 /* Minimum number of free items on the stack allowed after an
1818 allocation. This is to allow allocation and initialization
1819 to be completed by functions that call yyexpandGLRStack before the
1820 stack is expanded, thus insuring that all necessary pointers get
1821 properly redirected to new data. */
1822 #define YYHEADROOM 2
1824 #ifndef YYSTACKEXPANDABLE
1825 # define YYSTACKEXPANDABLE 1
1828 #if YYSTACKEXPANDABLE
1829 # define YY_RESERVE_GLRSTACK(Yystack) \
1831 if (Yystack->yyspaceLeft < YYHEADROOM) \
1832 yyexpandGLRStack (Yystack); \
1835 # define YY_RESERVE_GLRSTACK(Yystack) \
1837 if (Yystack->yyspaceLeft < YYHEADROOM) \
1838 yyMemoryExhausted (Yystack); \
1846 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1847 # define yystpcpy stpcpy
1849 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1852 yystpcpy (char *yydest
, const char *yysrc
)
1855 const char *yys
= yysrc
;
1857 while ((*yyd
++ = *yys
++) != '\0')
1866 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1867 quotes and backslashes, so that it's suitable for yyerror. The
1868 heuristic is that double-quoting is unnecessary unless the string
1869 contains an apostrophe, a comma, or backslash (other than
1870 backslash-backslash). YYSTR is taken from yytname. If YYRES is
1871 null, do not copy; instead, return the length of what the result
1874 yytnamerr (char *yyres
, const char *yystr
)
1879 char const *yyp
= yystr
;
1886 goto do_not_strip_quotes
;
1890 goto do_not_strip_quotes
;
1903 do_not_strip_quotes
: ;
1907 return strlen (yystr
);
1909 return yystpcpy (yyres
, yystr
) - yyres
;
1913 #endif /* !YYERROR_VERBOSE */
1915 /** State numbers, as in LALR(1) machine */
1916 typedef int yyStateNum
;
1918 /** Rule numbers, as in LALR(1) machine */
1919 typedef int yyRuleNum
;
1921 /** Grammar symbol */
1922 typedef int yySymbol
;
1924 /** Item references, as in LALR(1) machine */
1925 typedef short int yyItemNum
;
1927 typedef struct yyGLRState yyGLRState
;
1928 typedef struct yyGLRStateSet yyGLRStateSet
;
1929 typedef struct yySemanticOption yySemanticOption
;
1930 typedef union yyGLRStackItem yyGLRStackItem
;
1931 typedef struct yyGLRStack yyGLRStack
;
1934 /** Type tag: always true. */
1936 /** Type tag for yysemantics. If true, yysval applies, otherwise
1937 * yyfirstVal applies. */
1939 /** Number of corresponding LALR(1) machine state. */
1940 yyStateNum yylrState
;
1941 /** Preceding state in this stack */
1943 /** Source position of the last token produced by my symbol */
1946 /** First in a chain of alternative reductions producing the
1947 * non-terminal corresponding to this state, threaded through
1949 yySemanticOption
* yyfirstVal
;
1950 /** Semantic value for this state. */
1955 struct yyGLRStateSet
{
1956 yyGLRState
** yystates
;
1957 /** During nondeterministic operation, yylookaheadNeeds tracks which
1958 * stacks have actually needed the current lookahead. During deterministic
1959 * operation, yylookaheadNeeds[0] is not maintained since it would merely
1960 * duplicate yychar != YYEMPTY. */
1961 yybool
* yylookaheadNeeds
;
1962 size_t yysize
, yycapacity
;
1965 struct yySemanticOption
{
1966 /** Type tag: always false. */
1968 /** Rule number for this reduction */
1970 /** The last RHS state in the list of states to be reduced. */
1971 yyGLRState
* yystate
;
1972 /** The lookahead for this reduction. */
1975 /** Next sibling in chain of options. To facilitate merging,
1976 * options are chained in decreasing order by address. */
1977 yySemanticOption
* yynext
;
1980 /** Type of the items in the GLR stack. The yyisState field
1981 * indicates which item of the union is valid. */
1982 union yyGLRStackItem
{
1984 yySemanticOption yyoption
;
1995 YYJMP_BUF yyexception_buffer
;
1996 yyGLRStackItem
* yyitems
;
1997 yyGLRStackItem
* yynextFree
;
1999 yyGLRState
* yysplitPoint
;
2000 yyGLRState
* yylastDeleted
;
2001 yyGLRStateSet yytops
;
2004 #if YYSTACKEXPANDABLE
2005 static void yyexpandGLRStack (yyGLRStack
* yystackp
);
2008 static _Noreturn
void
2009 yyFail (yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
, const char* yymsg
)
2011 if (yymsg
!= YY_NULLPTR
)
2012 yyerror (P
, tokens
, index
, yymsg
);
2013 YYLONGJMP (yystackp
->yyexception_buffer
, 1);
2016 static _Noreturn
void
2017 yyMemoryExhausted (yyGLRStack
* yystackp
)
2019 YYLONGJMP (yystackp
->yyexception_buffer
, 2);
2022 #if YYDEBUG || YYERROR_VERBOSE
2023 /** A printable representation of TOKEN. */
2024 static inline const char*
2025 yytokenName (yySymbol yytoken
)
2027 if (yytoken
== YYEMPTY
)
2030 return yytname
[yytoken
];
2034 /** Fill in YYVSP[YYLOW1 .. YYLOW0-1] from the chain of states starting
2035 * at YYVSP[YYLOW0].yystate.yypred. Leaves YYVSP[YYLOW1].yystate.yypred
2036 * containing the pointer to the next state in the chain. */
2037 static void yyfillin (yyGLRStackItem
*, int, int) YY_ATTRIBUTE_UNUSED
;
2039 yyfillin (yyGLRStackItem
*yyvsp
, int yylow0
, int yylow1
)
2042 yyGLRState
*s
= yyvsp
[yylow0
].yystate
.yypred
;
2043 for (i
= yylow0
-1; i
>= yylow1
; i
-= 1)
2046 yyvsp
[i
].yystate
.yylrState
= s
->yylrState
;
2048 yyvsp
[i
].yystate
.yyresolved
= s
->yyresolved
;
2050 yyvsp
[i
].yystate
.yysemantics
.yysval
= s
->yysemantics
.yysval
;
2052 /* The effect of using yysval or yyloc (in an immediate rule) is
2054 yyvsp
[i
].yystate
.yysemantics
.yyfirstVal
= YY_NULLPTR
;
2055 s
= yyvsp
[i
].yystate
.yypred
= s
->yypred
;
2059 /* Do nothing if YYNORMAL or if *YYLOW <= YYLOW1. Otherwise, fill in
2060 * YYVSP[YYLOW1 .. *YYLOW-1] as in yyfillin and set *YYLOW = YYLOW1.
2061 * For convenience, always return YYLOW1. */
2062 static inline int yyfill (yyGLRStackItem
*, int *, int, yybool
)
2063 YY_ATTRIBUTE_UNUSED
;
2065 yyfill (yyGLRStackItem
*yyvsp
, int *yylow
, int yylow1
, yybool yynormal
)
2067 if (!yynormal
&& yylow1
< *yylow
)
2069 yyfillin (yyvsp
, *yylow
, yylow1
);
2075 /** Perform user action for rule number YYN, with RHS length YYRHSLEN,
2076 * and top stack item YYVSP. YYLVALP points to place to put semantic
2077 * value ($$), and yylocp points to place for location information
2078 * (@$). Returns yyok for normal return, yyaccept for YYACCEPT,
2079 * yyerr for YYERROR, yyabort for YYABORT. */
2081 yyuserAction (yyRuleNum yyn
, size_t yyrhslen
, yyGLRStackItem
* yyvsp
,
2082 yyGLRStack
* yystackp
,
2083 YYSTYPE
* yyvalp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
2085 yybool yynormal YY_ATTRIBUTE_UNUSED
= (yystackp
->yysplitPoint
== YY_NULLPTR
);
2093 # define yyerrok (yystackp->yyerrState = 0)
2095 # define YYACCEPT return yyaccept
2097 # define YYABORT return yyabort
2099 # define YYERROR return yyerrok, yyerr
2100 # undef YYRECOVERING
2101 # define YYRECOVERING() (yystackp->yyerrState != 0)
2103 # define yyclearin (yychar = YYEMPTY)
2105 # define YYFILL(N) yyfill (yyvsp, &yylow, N, yynormal)
2107 # define YYBACKUP(Token, Value) \
2108 return yyerror (P, tokens, index, YY_("syntax error: cannot back up")), \
2113 *yyvalp
= yyval_default
;
2115 *yyvalp
= yyvsp
[YYFILL (1-yyrhslen
)].yystate
.yysemantics
.yysval
;
2119 #line 407 "src/parser_proc_grammar.y" /* glr.c:816 */
2121 if ((*(struct psi_cpp_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2122 psi_cpp_exp_exec((*(struct psi_cpp_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), P
->preproc
, PSI_DATA(P
));
2123 psi_cpp_exp_free(&(*(struct psi_cpp_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2126 #line 2127 "src/parser_proc.c" /* glr.c:816 */
2130 #line 413 "src/parser_proc_grammar.y" /* glr.c:816 */
2133 P
->error(PSI_DATA(P
), (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), PSI_WARNING
,
2134 "Extra 'lib %s' statement has no effect", (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
);
2136 P
->file
.ln
= strndup((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
+ 1, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->size
- 2);
2139 #line 2140 "src/parser_proc.c" /* glr.c:816 */
2143 #line 421 "src/parser_proc_grammar.y" /* glr.c:816 */
2145 psi_parser_proc_add_const(P
, (*(struct psi_const
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2147 #line 2148 "src/parser_proc.c" /* glr.c:816 */
2151 #line 424 "src/parser_proc_grammar.y" /* glr.c:816 */
2153 psi_parser_proc_add_decl(P
, (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2155 #line 2156 "src/parser_proc.c" /* glr.c:816 */
2159 #line 427 "src/parser_proc_grammar.y" /* glr.c:816 */
2161 psi_parser_proc_add_typedef(P
, (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2163 #line 2164 "src/parser_proc.c" /* glr.c:816 */
2167 #line 430 "src/parser_proc_grammar.y" /* glr.c:816 */
2169 psi_parser_proc_add_struct(P
, (*(struct psi_decl_struct
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2171 #line 2172 "src/parser_proc.c" /* glr.c:816 */
2175 #line 433 "src/parser_proc_grammar.y" /* glr.c:816 */
2177 psi_parser_proc_add_union(P
, (*(struct psi_decl_union
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2179 #line 2180 "src/parser_proc.c" /* glr.c:816 */
2183 #line 436 "src/parser_proc_grammar.y" /* glr.c:816 */
2185 psi_parser_proc_add_enum(P
, (*(struct psi_decl_enum
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2187 #line 2188 "src/parser_proc.c" /* glr.c:816 */
2191 #line 439 "src/parser_proc_grammar.y" /* glr.c:816 */
2193 psi_parser_proc_add_impl(P
, (*(struct psi_impl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2195 #line 2196 "src/parser_proc.c" /* glr.c:816 */
2199 #line 445 "src/parser_proc_grammar.y" /* glr.c:816 */
2201 (*(struct psi_token
**)(&(*yyvalp
))) = (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2203 #line 2204 "src/parser_proc.c" /* glr.c:816 */
2207 #line 451 "src/parser_proc_grammar.y" /* glr.c:816 */
2209 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = (*(struct psi_cpp_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2211 #line 2212 "src/parser_proc.c" /* glr.c:816 */
2215 #line 457 "src/parser_proc_grammar.y" /* glr.c:816 */
2217 if ((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2218 struct psi_token
*msg
= NULL
;
2220 if (psi_plist_get((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), 0, &msg
)) {
2222 struct psi_token
*next
;
2224 msg
= psi_token_copy(msg
);
2225 while (psi_plist_get((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), index
++, &next
)) {
2226 struct psi_token
*old
= msg
;
2227 msg
= psi_token_cat(" ", 2, msg
, next
);
2231 psi_plist_free((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2233 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, msg
);
2235 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, NULL
);
2237 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2239 #line 2240 "src/parser_proc.c" /* glr.c:816 */
2243 #line 480 "src/parser_proc_grammar.y" /* glr.c:816 */
2245 (*(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
))));
2246 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2248 #line 2249 "src/parser_proc.c" /* glr.c:816 */
2252 #line 484 "src/parser_proc_grammar.y" /* glr.c:816 */
2254 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
, NULL
);
2255 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2257 #line 2258 "src/parser_proc.c" /* glr.c:816 */
2261 #line 488 "src/parser_proc_grammar.y" /* glr.c:816 */
2263 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2264 (*(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
))));
2265 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2267 #line 2268 "src/parser_proc.c" /* glr.c:816 */
2271 #line 493 "src/parser_proc_grammar.y" /* glr.c:816 */
2273 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2274 (*(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
))));
2275 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2277 #line 2278 "src/parser_proc.c" /* glr.c:816 */
2281 #line 498 "src/parser_proc_grammar.y" /* glr.c:816 */
2283 (*(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
)));
2284 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2286 #line 2287 "src/parser_proc.c" /* glr.c:816 */
2290 #line 502 "src/parser_proc_grammar.y" /* glr.c:816 */
2292 (*(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
)));
2293 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2295 #line 2296 "src/parser_proc.c" /* glr.c:816 */
2299 #line 506 "src/parser_proc_grammar.y" /* glr.c:816 */
2301 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
, NULL
);
2302 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2304 #line 2305 "src/parser_proc.c" /* glr.c:816 */
2308 #line 510 "src/parser_proc_grammar.y" /* glr.c:816 */
2310 psi_plist_free((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2311 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = NULL
;
2313 #line 2314 "src/parser_proc.c" /* glr.c:816 */
2317 #line 549 "src/parser_proc_grammar.y" /* glr.c:816 */
2319 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2320 (*(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
);
2321 (*(struct psi_cpp_macro_decl
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
2323 #line 2324 "src/parser_proc.c" /* glr.c:816 */
2327 #line 554 "src/parser_proc_grammar.y" /* glr.c:816 */
2329 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2330 (*(struct psi_cpp_macro_decl
**)(&(*yyvalp
))) = psi_cpp_macro_decl_init(NULL
, (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), NULL
);
2331 (*(struct psi_cpp_macro_decl
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2333 #line 2334 "src/parser_proc.c" /* glr.c:816 */
2337 #line 559 "src/parser_proc_grammar.y" /* glr.c:816 */
2339 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2340 (*(struct psi_cpp_macro_decl
**)(&(*yyvalp
))) = psi_cpp_macro_decl_init(NULL
, (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), NULL
);
2341 (*(struct psi_cpp_macro_decl
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2343 #line 2344 "src/parser_proc.c" /* glr.c:816 */
2347 #line 567 "src/parser_proc_grammar.y" /* glr.c:816 */
2349 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_init(NULL
);
2351 #line 2352 "src/parser_proc.c" /* glr.c:816 */
2355 #line 574 "src/parser_proc_grammar.y" /* glr.c:816 */
2357 (*(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
)));
2358 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2359 (*(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
)));
2361 #line 2362 "src/parser_proc.c" /* glr.c:816 */
2365 #line 579 "src/parser_proc_grammar.y" /* glr.c:816 */
2367 (*(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
)));
2368 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2369 (*(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
)));
2371 #line 2372 "src/parser_proc.c" /* glr.c:816 */
2375 #line 587 "src/parser_proc_grammar.y" /* glr.c:816 */
2377 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
2379 #line 2380 "src/parser_proc.c" /* glr.c:816 */
2383 #line 594 "src/parser_proc_grammar.y" /* glr.c:816 */
2385 (*(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
)));
2386 (*(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
)));
2388 #line 2389 "src/parser_proc.c" /* glr.c:816 */
2392 #line 598 "src/parser_proc_grammar.y" /* glr.c:816 */
2394 (*(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
)));
2395 (*(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
)));
2397 #line 2398 "src/parser_proc.c" /* glr.c:816 */
2401 #line 605 "src/parser_proc_grammar.y" /* glr.c:816 */
2403 (*(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
)));
2404 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
2406 #line 2407 "src/parser_proc.c" /* glr.c:816 */
2410 #line 609 "src/parser_proc_grammar.y" /* glr.c:816 */
2412 (*(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
)));
2413 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2415 #line 2416 "src/parser_proc.c" /* glr.c:816 */
2419 #line 613 "src/parser_proc_grammar.y" /* glr.c:816 */
2421 (*(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
)));
2422 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2424 #line 2425 "src/parser_proc.c" /* glr.c:816 */
2428 #line 617 "src/parser_proc_grammar.y" /* glr.c:816 */
2430 (*(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
)));
2431 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2433 #line 2434 "src/parser_proc.c" /* glr.c:816 */
2437 #line 622 "src/parser_proc_grammar.y" /* glr.c:816 */
2442 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2443 exists
= psi_cpp_defined(P
->preproc
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2444 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8
, &exists
, 0));
2445 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2448 #line 2449 "src/parser_proc.c" /* glr.c:816 */
2452 #line 632 "src/parser_proc_grammar.y" /* glr.c:816 */
2457 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2458 exists
= psi_cpp_defined(P
->preproc
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2459 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8
, &exists
, 0));
2460 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2463 #line 2464 "src/parser_proc.c" /* glr.c:816 */
2467 #line 642 "src/parser_proc_grammar.y" /* glr.c:816 */
2469 (*(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
));
2470 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2471 (*(struct psi_num_exp
**)(&(*yyvalp
)))->data
.n
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2473 #line 2474 "src/parser_proc.c" /* glr.c:816 */
2477 #line 647 "src/parser_proc_grammar.y" /* glr.c:816 */
2479 (*(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));
2480 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2481 (*(struct psi_num_exp
**)(&(*yyvalp
)))->data
.n
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2483 #line 2484 "src/parser_proc.c" /* glr.c:816 */
2487 #line 652 "src/parser_proc_grammar.y" /* glr.c:816 */
2489 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2490 (*(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));
2491 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2492 (*(struct psi_num_exp
**)(&(*yyvalp
)))->data
.n
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2494 #line 2495 "src/parser_proc.c" /* glr.c:816 */
2498 #line 658 "src/parser_proc_grammar.y" /* glr.c:816 */
2500 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2501 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num(psi_number_init(PSI_T_FUNCTION
,
2502 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));
2503 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2505 #line 2506 "src/parser_proc.c" /* glr.c:816 */
2509 #line 667 "src/parser_proc_grammar.y" /* glr.c:816 */
2511 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
2513 #line 2514 "src/parser_proc.c" /* glr.c:816 */
2517 #line 674 "src/parser_proc_grammar.y" /* glr.c:816 */
2519 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add(psi_plist_init((void (*)(void *)) psi_num_exp_free
),
2520 &(*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2522 #line 2523 "src/parser_proc.c" /* glr.c:816 */
2526 #line 678 "src/parser_proc_grammar.y" /* glr.c:816 */
2528 (*(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
)));
2530 #line 2531 "src/parser_proc.c" /* glr.c:816 */
2534 #line 684 "src/parser_proc_grammar.y" /* glr.c:816 */
2536 (*(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
)));
2537 (*(struct psi_const
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2539 #line 2540 "src/parser_proc.c" /* glr.c:816 */
2543 #line 691 "src/parser_proc_grammar.y" /* glr.c:816 */
2545 (*(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
);
2547 #line 2548 "src/parser_proc.c" /* glr.c:816 */
2551 #line 704 "src/parser_proc_grammar.y" /* glr.c:816 */
2553 (*(struct psi_impl_def_val
**)(&(*yyvalp
))) = NULL
;
2555 #line 2556 "src/parser_proc.c" /* glr.c:816 */
2559 #line 707 "src/parser_proc_grammar.y" /* glr.c:816 */
2561 (*(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
);
2562 (*(struct psi_impl_def_val
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2564 #line 2565 "src/parser_proc.c" /* glr.c:816 */
2568 #line 722 "src/parser_proc_grammar.y" /* glr.c:816 */
2570 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2572 #line 2573 "src/parser_proc.c" /* glr.c:816 */
2576 #line 729 "src/parser_proc_grammar.y" /* glr.c:816 */
2578 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
2579 psi_decl_type_init(PSI_T_FUNCTION
, (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->var
->name
),
2580 psi_decl_var_copy((*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->var
)
2582 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->token
);
2583 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.func
= (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
2585 #line 2586 "src/parser_proc.c" /* glr.c:816 */
2589 #line 737 "src/parser_proc_grammar.y" /* glr.c:816 */
2591 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2592 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
2593 psi_decl_type_init(PSI_T_ENUM
, (*(struct psi_decl_enum
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->name
),
2594 psi_decl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, 0, 0)
2596 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2597 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_decl_enum
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->token
);
2598 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.enm
= (*(struct psi_decl_enum
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2600 #line 2601 "src/parser_proc.c" /* glr.c:816 */
2604 #line 747 "src/parser_proc_grammar.y" /* glr.c:816 */
2606 (*(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
)));
2607 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
));
2608 (*(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
)));
2609 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.strct
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2610 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.strct
->align
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)).pos
;
2611 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.strct
->size
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)).len
;
2613 #line 2614 "src/parser_proc.c" /* glr.c:816 */
2617 #line 755 "src/parser_proc_grammar.y" /* glr.c:816 */
2619 (*(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
)));
2620 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
));
2621 (*(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
)));
2622 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.unn
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2623 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.unn
->align
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)).pos
;
2624 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.unn
->size
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)).len
;
2626 #line 2627 "src/parser_proc.c" /* glr.c:816 */
2630 #line 763 "src/parser_proc_grammar.y" /* glr.c:816 */
2632 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2633 (*(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));
2634 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2636 #line 2637 "src/parser_proc.c" /* glr.c:816 */
2640 #line 771 "src/parser_proc_grammar.y" /* glr.c:816 */
2642 (*(struct psi_decl_type
**)(&(*yyvalp
))) = (*(struct psi_decl_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
2644 #line 2645 "src/parser_proc.c" /* glr.c:816 */
2648 #line 778 "src/parser_proc_grammar.y" /* glr.c:816 */
2650 (*(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
);
2651 (*(struct psi_decl_type
**)(&(*yyvalp
)))->token
= (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
2653 #line 2654 "src/parser_proc.c" /* glr.c:816 */
2657 #line 786 "src/parser_proc_grammar.y" /* glr.c:816 */
2659 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2660 (*(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
);
2661 (*(struct psi_decl_type
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2663 #line 2664 "src/parser_proc.c" /* glr.c:816 */
2667 #line 791 "src/parser_proc_grammar.y" /* glr.c:816 */
2669 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2670 (*(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
);
2671 (*(struct psi_decl_type
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2673 #line 2674 "src/parser_proc.c" /* glr.c:816 */
2677 #line 796 "src/parser_proc_grammar.y" /* glr.c:816 */
2679 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2680 (*(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
);
2681 (*(struct psi_decl_type
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2683 #line 2684 "src/parser_proc.c" /* glr.c:816 */
2687 #line 806 "src/parser_proc_grammar.y" /* glr.c:816 */
2689 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2691 #line 2692 "src/parser_proc.c" /* glr.c:816 */
2695 #line 809 "src/parser_proc_grammar.y" /* glr.c:816 */
2697 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2699 #line 2700 "src/parser_proc.c" /* glr.c:816 */
2703 #line 815 "src/parser_proc_grammar.y" /* glr.c:816 */
2705 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2707 #line 2708 "src/parser_proc.c" /* glr.c:816 */
2711 #line 818 "src/parser_proc_grammar.y" /* glr.c:816 */
2713 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2715 #line 2716 "src/parser_proc.c" /* glr.c:816 */
2719 #line 821 "src/parser_proc_grammar.y" /* glr.c:816 */
2721 (*(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
)));
2723 #line 2724 "src/parser_proc.c" /* glr.c:816 */
2727 #line 843 "src/parser_proc_grammar.y" /* glr.c:816 */
2729 (*(struct psi_token
**)(&(*yyvalp
))) = 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 846 "src/parser_proc_grammar.y" /* glr.c:816 */
2737 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2739 #line 2740 "src/parser_proc.c" /* glr.c:816 */
2743 #line 849 "src/parser_proc_grammar.y" /* glr.c:816 */
2745 (*(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
)));
2747 #line 2748 "src/parser_proc.c" /* glr.c:816 */
2751 #line 855 "src/parser_proc_grammar.y" /* glr.c:816 */
2753 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2755 #line 2756 "src/parser_proc.c" /* glr.c:816 */
2759 #line 858 "src/parser_proc_grammar.y" /* glr.c:816 */
2761 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2763 #line 2764 "src/parser_proc.c" /* glr.c:816 */
2767 #line 861 "src/parser_proc_grammar.y" /* glr.c:816 */
2769 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2770 (*(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
)));
2771 free((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2773 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2776 #line 2777 "src/parser_proc.c" /* glr.c:816 */
2780 #line 869 "src/parser_proc_grammar.y" /* glr.c:816 */
2782 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2783 (*(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
)));
2784 free((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2785 free((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2787 (*(struct psi_token
**)(&(*yyvalp
))) = (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2790 #line 2791 "src/parser_proc.c" /* glr.c:816 */
2794 #line 881 "src/parser_proc_grammar.y" /* glr.c:816 */
2796 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
2798 #line 2799 "src/parser_proc.c" /* glr.c:816 */
2802 #line 884 "src/parser_proc_grammar.y" /* glr.c:816 */
2804 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2806 #line 2807 "src/parser_proc.c" /* glr.c:816 */
2810 #line 887 "src/parser_proc_grammar.y" /* glr.c:816 */
2812 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2813 (*(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
)));
2815 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2818 #line 2819 "src/parser_proc.c" /* glr.c:816 */
2822 #line 894 "src/parser_proc_grammar.y" /* glr.c:816 */
2824 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2826 #line 2827 "src/parser_proc.c" /* glr.c:816 */
2830 #line 897 "src/parser_proc_grammar.y" /* glr.c:816 */
2832 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2833 (*(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
)));
2835 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2838 #line 2839 "src/parser_proc.c" /* glr.c:816 */
2842 #line 907 "src/parser_proc_grammar.y" /* glr.c:816 */
2844 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
2846 #line 2847 "src/parser_proc.c" /* glr.c:816 */
2850 #line 913 "src/parser_proc_grammar.y" /* glr.c:816 */
2852 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
2854 #line 2855 "src/parser_proc.c" /* glr.c:816 */
2858 #line 921 "src/parser_proc_grammar.y" /* glr.c:816 */
2860 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
2862 #line 2863 "src/parser_proc.c" /* glr.c:816 */
2866 #line 924 "src/parser_proc_grammar.y" /* glr.c:816 */
2868 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2870 #line 2871 "src/parser_proc.c" /* glr.c:816 */
2874 #line 927 "src/parser_proc_grammar.y" /* glr.c:816 */
2876 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2877 (*(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
)));
2878 free((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2880 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2883 #line 2884 "src/parser_proc.c" /* glr.c:816 */
2887 #line 938 "src/parser_proc_grammar.y" /* glr.c:816 */
2889 (*(struct psi_decl
**)(&(*yyvalp
))) = (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2891 #line 2892 "src/parser_proc.c" /* glr.c:816 */
2895 #line 944 "src/parser_proc_grammar.y" /* glr.c:816 */
2897 (*(struct psi_decl
**)(&(*yyvalp
))) = psi_decl_init(psi_decl_abi_init("default"), (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)), (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
2898 if ((*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2899 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->pointer_level
+= 1;
2900 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->array_size
= (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
2903 #line 2904 "src/parser_proc.c" /* glr.c:816 */
2907 #line 951 "src/parser_proc_grammar.y" /* glr.c:816 */
2909 (*(struct psi_decl
**)(&(*yyvalp
))) = psi_decl_init(psi_decl_abi_init("default"), (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-6)].yystate
.yysemantics
.yysval
)), (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
2910 (*(struct psi_decl
**)(&(*yyvalp
)))->varargs
= 1;
2911 if ((*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2912 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->pointer_level
+= 1;
2913 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->array_size
= (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
2916 #line 2917 "src/parser_proc.c" /* glr.c:816 */
2920 #line 959 "src/parser_proc_grammar.y" /* glr.c:816 */
2922 (*(struct psi_decl
**)(&(*yyvalp
))) = psi_decl_init(psi_decl_abi_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
))->text
), (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)), (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
2923 if ((*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2924 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->pointer_level
+= 1;
2925 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->array_size
= (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
2928 #line 2929 "src/parser_proc.c" /* glr.c:816 */
2932 #line 966 "src/parser_proc_grammar.y" /* glr.c:816 */
2934 (*(struct psi_decl
**)(&(*yyvalp
))) = psi_decl_init(psi_decl_abi_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-7)].yystate
.yysemantics
.yysval
))->text
), (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-6)].yystate
.yysemantics
.yysval
)), (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
2935 (*(struct psi_decl
**)(&(*yyvalp
)))->varargs
= 1;
2936 if ((*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2937 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->pointer_level
+= 1;
2938 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->array_size
= (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
2941 #line 2942 "src/parser_proc.c" /* glr.c:816 */
2945 #line 982 "src/parser_proc_grammar.y" /* glr.c:816 */
2947 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2948 (*(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));
2949 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2950 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2952 #line 2953 "src/parser_proc.c" /* glr.c:816 */
2956 #line 988 "src/parser_proc_grammar.y" /* glr.c:816 */
2958 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2959 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
2960 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
),
2961 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)
2963 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
2964 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2965 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2967 #line 2968 "src/parser_proc.c" /* glr.c:816 */
2971 #line 998 "src/parser_proc_grammar.y" /* glr.c:816 */
2973 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2974 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
2975 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
),
2976 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)
2978 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
2979 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2980 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2982 #line 2983 "src/parser_proc.c" /* glr.c:816 */
2986 #line 1008 "src/parser_proc_grammar.y" /* glr.c:816 */
2988 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2989 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
2990 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
),
2991 psi_decl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
, 0, 0)
2993 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
2994 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2995 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2997 #line 2998 "src/parser_proc.c" /* glr.c:816 */
3001 #line 1022 "src/parser_proc_grammar.y" /* glr.c:816 */
3003 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3004 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
),
3005 psi_decl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, 0, 0)
3007 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3008 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3009 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3011 #line 3012 "src/parser_proc.c" /* glr.c:816 */
3015 #line 1034 "src/parser_proc_grammar.y" /* glr.c:816 */
3017 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
3019 #line 3020 "src/parser_proc.c" /* glr.c:816 */
3023 #line 1037 "src/parser_proc_grammar.y" /* glr.c:816 */
3025 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
3027 #line 3028 "src/parser_proc.c" /* glr.c:816 */
3031 #line 1040 "src/parser_proc_grammar.y" /* glr.c:816 */
3033 (*(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
)));
3035 #line 3036 "src/parser_proc.c" /* glr.c:816 */
3039 #line 1043 "src/parser_proc_grammar.y" /* glr.c:816 */
3041 (*(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
)));
3043 #line 3044 "src/parser_proc.c" /* glr.c:816 */
3047 #line 1049 "src/parser_proc_grammar.y" /* glr.c:816 */
3049 (*(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
)));
3051 #line 3052 "src/parser_proc.c" /* glr.c:816 */
3055 #line 1052 "src/parser_proc_grammar.y" /* glr.c:816 */
3057 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3058 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3059 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
),
3060 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)
3062 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3063 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3064 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3066 #line 3067 "src/parser_proc.c" /* glr.c:816 */
3070 #line 1062 "src/parser_proc_grammar.y" /* glr.c:816 */
3072 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3073 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
3074 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
),
3075 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)
3077 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3078 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3079 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3081 #line 3082 "src/parser_proc.c" /* glr.c:816 */
3085 #line 1075 "src/parser_proc_grammar.y" /* glr.c:816 */
3087 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3088 (*(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
)));
3089 (*(struct psi_decl_var
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3091 #line 3092 "src/parser_proc.c" /* glr.c:816 */
3095 #line 1080 "src/parser_proc_grammar.y" /* glr.c:816 */
3097 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3098 (*(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
)));
3099 (*(struct psi_decl_var
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3101 #line 3102 "src/parser_proc.c" /* glr.c:816 */
3105 #line 1088 "src/parser_proc_grammar.y" /* glr.c:816 */
3107 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3108 (*(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
)));
3109 (*(struct psi_decl_union
**)(&(*yyvalp
)))->align
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)).pos
;
3110 (*(struct psi_decl_union
**)(&(*yyvalp
)))->size
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)).len
;
3111 (*(struct psi_decl_union
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3113 #line 3114 "src/parser_proc.c" /* glr.c:816 */
3117 #line 1098 "src/parser_proc_grammar.y" /* glr.c:816 */
3119 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3120 (*(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
)));
3121 (*(struct psi_decl_struct
**)(&(*yyvalp
)))->align
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)).pos
;
3122 (*(struct psi_decl_struct
**)(&(*yyvalp
)))->size
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)).len
;
3123 (*(struct psi_decl_struct
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3125 #line 3126 "src/parser_proc.c" /* glr.c:816 */
3129 #line 1108 "src/parser_proc_grammar.y" /* glr.c:816 */
3131 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
3133 #line 3134 "src/parser_proc.c" /* glr.c:816 */
3137 #line 1115 "src/parser_proc_grammar.y" /* glr.c:816 */
3139 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
3141 #line 3142 "src/parser_proc.c" /* glr.c:816 */
3145 #line 1121 "src/parser_proc_grammar.y" /* glr.c:816 */
3147 (*(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
)));
3149 #line 3150 "src/parser_proc.c" /* glr.c:816 */
3153 #line 1124 "src/parser_proc_grammar.y" /* glr.c:816 */
3155 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), &(*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3157 #line 3158 "src/parser_proc.c" /* glr.c:816 */
3161 #line 1130 "src/parser_proc_grammar.y" /* glr.c:816 */
3163 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3164 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->layout
= (*(struct psi_layout
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
3165 psi_parser_proc_add_from_typedef(P
, (*(struct psi_decl_arg
**)(&(*yyvalp
))));
3167 #line 3168 "src/parser_proc.c" /* glr.c:816 */
3171 #line 1138 "src/parser_proc_grammar.y" /* glr.c:816 */
3173 (*(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
)));
3174 (*(struct psi_decl_enum
**)(&(*yyvalp
)))->token
= (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
));
3176 #line 3177 "src/parser_proc.c" /* glr.c:816 */
3180 #line 1145 "src/parser_proc_grammar.y" /* glr.c:816 */
3182 (*(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
)));
3184 #line 3185 "src/parser_proc.c" /* glr.c:816 */
3188 #line 1148 "src/parser_proc_grammar.y" /* glr.c:816 */
3190 (*(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
)));
3192 #line 3193 "src/parser_proc.c" /* glr.c:816 */
3196 #line 1154 "src/parser_proc_grammar.y" /* glr.c:816 */
3198 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3199 (*(struct psi_decl_enum_item
**)(&(*yyvalp
))) = psi_decl_enum_item_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, NULL
);
3200 (*(struct psi_decl_enum_item
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3202 #line 3203 "src/parser_proc.c" /* glr.c:816 */
3206 #line 1159 "src/parser_proc_grammar.y" /* glr.c:816 */
3208 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3209 (*(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
)));
3210 (*(struct psi_decl_enum_item
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3212 #line 3213 "src/parser_proc.c" /* glr.c:816 */
3216 #line 1167 "src/parser_proc_grammar.y" /* glr.c:816 */
3218 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num((*(struct psi_number
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3219 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_number
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->token
);
3221 #line 3222 "src/parser_proc.c" /* glr.c:816 */
3225 #line 1171 "src/parser_proc_grammar.y" /* glr.c:816 */
3227 (*(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
)));
3228 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_decl_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->token
);
3230 #line 3231 "src/parser_proc.c" /* glr.c:816 */
3234 #line 1175 "src/parser_proc_grammar.y" /* glr.c:816 */
3236 (*(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
)));
3237 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3239 #line 3240 "src/parser_proc.c" /* glr.c:816 */
3243 #line 1179 "src/parser_proc_grammar.y" /* glr.c:816 */
3245 (*(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
)));
3246 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3248 #line 3249 "src/parser_proc.c" /* glr.c:816 */
3252 #line 1183 "src/parser_proc_grammar.y" /* glr.c:816 */
3254 (*(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
)));
3255 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3257 #line 3258 "src/parser_proc.c" /* glr.c:816 */
3261 #line 1187 "src/parser_proc_grammar.y" /* glr.c:816 */
3263 (*(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
)));
3264 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
3266 #line 3267 "src/parser_proc.c" /* glr.c:816 */
3270 #line 1194 "src/parser_proc_grammar.y" /* glr.c:816 */
3272 (*(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
);
3273 (*(struct psi_number
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3275 #line 3276 "src/parser_proc.c" /* glr.c:816 */
3279 #line 1198 "src/parser_proc_grammar.y" /* glr.c:816 */
3281 (*(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);
3282 (*(struct psi_number
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3284 #line 3285 "src/parser_proc.c" /* glr.c:816 */
3288 #line 1202 "src/parser_proc_grammar.y" /* glr.c:816 */
3290 (*(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);
3291 (*(struct psi_number
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3293 #line 3294 "src/parser_proc.c" /* glr.c:816 */
3297 #line 1206 "src/parser_proc_grammar.y" /* glr.c:816 */
3299 (*(struct psi_number
**)(&(*yyvalp
))) = psi_number_init(PSI_T_NAME
, (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), 0);
3300 (*(struct psi_number
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->token
);
3302 #line 3303 "src/parser_proc.c" /* glr.c:816 */
3306 #line 1213 "src/parser_proc_grammar.y" /* glr.c:816 */
3308 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3309 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3313 psi_token_hash((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), digest
);
3314 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_append("@", psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))), 1, digest
);
3317 #line 3318 "src/parser_proc.c" /* glr.c:816 */
3321 #line 1226 "src/parser_proc_grammar.y" /* glr.c:816 */
3323 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3324 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3328 psi_token_hash((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), digest
);
3329 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_append("@", psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))), 1, digest
);
3332 #line 3333 "src/parser_proc.c" /* glr.c:816 */
3336 #line 1239 "src/parser_proc_grammar.y" /* glr.c:816 */
3338 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3339 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3343 psi_token_hash((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), digest
);
3344 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_append("@", psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))), 1, digest
);
3347 #line 3348 "src/parser_proc.c" /* glr.c:816 */
3351 #line 1252 "src/parser_proc_grammar.y" /* glr.c:816 */
3353 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
3355 #line 3356 "src/parser_proc.c" /* glr.c:816 */
3359 #line 1255 "src/parser_proc_grammar.y" /* glr.c:816 */
3361 (*(struct psi_token
**)(&(*yyvalp
))) = (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3362 (*(struct psi_token
**)(&(*yyvalp
)))->type
= PSI_T_NAME
;
3364 #line 3365 "src/parser_proc.c" /* glr.c:816 */
3368 #line 1262 "src/parser_proc_grammar.y" /* glr.c:816 */
3370 (*(struct psi_layout
**)(&(*yyvalp
))) = NULL
;
3372 #line 3373 "src/parser_proc.c" /* glr.c:816 */
3376 #line 1265 "src/parser_proc_grammar.y" /* glr.c:816 */
3378 (*(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
));
3380 #line 3381 "src/parser_proc.c" /* glr.c:816 */
3384 #line 1271 "src/parser_proc_grammar.y" /* glr.c:816 */
3386 (*(struct psi_layout
*)(&(*yyvalp
))).pos
= 0;
3387 (*(struct psi_layout
*)(&(*yyvalp
))).len
= 0;
3389 #line 3390 "src/parser_proc.c" /* glr.c:816 */
3393 #line 1275 "src/parser_proc_grammar.y" /* glr.c:816 */
3395 (*(struct psi_layout
*)(&(*yyvalp
))).pos
= atol((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->text
);
3396 (*(struct psi_layout
*)(&(*yyvalp
))).len
= atol((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
);
3398 #line 3399 "src/parser_proc.c" /* glr.c:816 */
3402 #line 1282 "src/parser_proc_grammar.y" /* glr.c:816 */
3404 (*(size_t*)(&(*yyvalp
))) = 0;
3406 #line 3407 "src/parser_proc.c" /* glr.c:816 */
3410 #line 1285 "src/parser_proc_grammar.y" /* glr.c:816 */
3412 (*(size_t*)(&(*yyvalp
))) = atol((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
);
3414 #line 3415 "src/parser_proc.c" /* glr.c:816 */
3418 #line 1291 "src/parser_proc_grammar.y" /* glr.c:816 */
3420 (*(size_t*)(&(*yyvalp
))) = 0;
3422 #line 3423 "src/parser_proc.c" /* glr.c:816 */
3426 #line 1294 "src/parser_proc_grammar.y" /* glr.c:816 */
3428 (*(size_t*)(&(*yyvalp
))) = (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3430 #line 3431 "src/parser_proc.c" /* glr.c:816 */
3434 #line 1300 "src/parser_proc_grammar.y" /* glr.c:816 */
3436 (*(size_t*)(&(*yyvalp
))) = 1;
3438 #line 3439 "src/parser_proc.c" /* glr.c:816 */
3442 #line 1303 "src/parser_proc_grammar.y" /* glr.c:816 */
3444 (*(size_t*)(&(*yyvalp
))) = (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)) + 1;
3446 #line 3447 "src/parser_proc.c" /* glr.c:816 */
3450 #line 1315 "src/parser_proc_grammar.y" /* glr.c:816 */
3452 (*(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
)));
3454 #line 3455 "src/parser_proc.c" /* glr.c:816 */
3458 #line 1318 "src/parser_proc_grammar.y" /* glr.c:816 */
3460 (*(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
)));
3461 (*(struct psi_impl_func
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->static_memory
= 1;
3463 #line 3464 "src/parser_proc.c" /* glr.c:816 */
3467 #line 1325 "src/parser_proc_grammar.y" /* glr.c:816 */
3469 (*(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
)));
3470 (*(struct psi_impl_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
3471 (*(struct psi_impl_func
**)(&(*yyvalp
)))->return_reference
= (*(bool*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
));
3473 #line 3474 "src/parser_proc.c" /* glr.c:816 */
3477 #line 1330 "src/parser_proc_grammar.y" /* glr.c:816 */
3479 (*(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
)));
3480 (*(struct psi_impl_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
3481 (*(struct psi_impl_func
**)(&(*yyvalp
)))->return_reference
= (*(bool*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-6)].yystate
.yysemantics
.yysval
));
3483 #line 3484 "src/parser_proc.c" /* glr.c:816 */
3487 #line 1335 "src/parser_proc_grammar.y" /* glr.c:816 */
3489 (*(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
)));
3490 (*(struct psi_impl_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-10)].yystate
.yysemantics
.yysval
)));
3491 (*(struct psi_impl_func
**)(&(*yyvalp
)))->return_reference
= (*(bool*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-11)].yystate
.yysemantics
.yysval
));
3492 (*(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
);
3493 (*(struct psi_impl_func
**)(&(*yyvalp
)))->vararg
->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
3495 #line 3496 "src/parser_proc.c" /* glr.c:816 */
3499 #line 1345 "src/parser_proc_grammar.y" /* glr.c:816 */
3501 (*(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
)));
3503 #line 3504 "src/parser_proc.c" /* glr.c:816 */
3507 #line 1348 "src/parser_proc_grammar.y" /* glr.c:816 */
3509 (*(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
)));
3511 #line 3512 "src/parser_proc.c" /* glr.c:816 */
3515 #line 1354 "src/parser_proc_grammar.y" /* glr.c:816 */
3517 (*(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
);
3519 #line 3520 "src/parser_proc.c" /* glr.c:816 */
3523 #line 1357 "src/parser_proc_grammar.y" /* glr.c:816 */
3525 (*(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
)));
3527 #line 3528 "src/parser_proc.c" /* glr.c:816 */
3531 #line 1363 "src/parser_proc_grammar.y" /* glr.c:816 */
3533 (*(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
)));
3534 (*(struct psi_impl_var
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3536 #line 3537 "src/parser_proc.c" /* glr.c:816 */
3540 #line 1370 "src/parser_proc_grammar.y" /* glr.c:816 */
3542 (*(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
);
3543 (*(struct psi_impl_type
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3545 #line 3546 "src/parser_proc.c" /* glr.c:816 */
3549 #line 1389 "src/parser_proc_grammar.y" /* glr.c:816 */
3551 (*(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
)));
3553 #line 3554 "src/parser_proc.c" /* glr.c:816 */
3557 #line 1392 "src/parser_proc_grammar.y" /* glr.c:816 */
3559 (*(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
)));
3561 #line 3562 "src/parser_proc.c" /* glr.c:816 */
3565 #line 1398 "src/parser_proc_grammar.y" /* glr.c:816 */
3567 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_return_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3569 #line 3570 "src/parser_proc.c" /* glr.c:816 */
3573 #line 1401 "src/parser_proc_grammar.y" /* glr.c:816 */
3575 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_let_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3577 #line 3578 "src/parser_proc.c" /* glr.c:816 */
3581 #line 1404 "src/parser_proc_grammar.y" /* glr.c:816 */
3583 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_set_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3585 #line 3586 "src/parser_proc.c" /* glr.c:816 */
3589 #line 1407 "src/parser_proc_grammar.y" /* glr.c:816 */
3591 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_assert_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3593 #line 3594 "src/parser_proc.c" /* glr.c:816 */
3597 #line 1410 "src/parser_proc_grammar.y" /* glr.c:816 */
3599 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_free_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3601 #line 3602 "src/parser_proc.c" /* glr.c:816 */
3605 #line 1416 "src/parser_proc_grammar.y" /* glr.c:816 */
3607 (*(struct psi_let_stmt
**)(&(*yyvalp
))) = psi_let_stmt_init((*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3608 (*(struct psi_let_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3610 #line 3611 "src/parser_proc.c" /* glr.c:816 */
3614 #line 1420 "src/parser_proc_grammar.y" /* glr.c:816 */
3616 (*(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
))));
3617 (*(struct psi_let_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
3618 (*(struct psi_let_stmt
**)(&(*yyvalp
)))->exp
->is_reference
= (*(bool*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3620 #line 3621 "src/parser_proc.c" /* glr.c:816 */
3624 #line 1429 "src/parser_proc_grammar.y" /* glr.c:816 */
3626 (*(struct psi_let_exp
**)(&(*yyvalp
))) = (*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3627 (*(struct psi_let_exp
**)(&(*yyvalp
)))->is_reference
= true;
3629 #line 3630 "src/parser_proc.c" /* glr.c:816 */
3633 #line 1433 "src/parser_proc_grammar.y" /* glr.c:816 */
3635 (*(struct psi_let_exp
**)(&(*yyvalp
))) = (*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3636 (*(struct psi_let_exp
**)(&(*yyvalp
)))->is_reference
= false;
3638 #line 3639 "src/parser_proc.c" /* glr.c:816 */
3642 #line 1440 "src/parser_proc_grammar.y" /* glr.c:816 */
3644 (*(struct psi_let_exp
**)(&(*yyvalp
))) = psi_let_exp_init(PSI_LET_NULL
, NULL
);
3646 #line 3647 "src/parser_proc.c" /* glr.c:816 */
3650 #line 1443 "src/parser_proc_grammar.y" /* glr.c:816 */
3652 (*(struct psi_let_exp
**)(&(*yyvalp
))) = psi_let_exp_init(PSI_LET_CALLOC
, (*(struct psi_let_calloc
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3654 #line 3655 "src/parser_proc.c" /* glr.c:816 */
3658 #line 1446 "src/parser_proc_grammar.y" /* glr.c:816 */
3660 (*(struct psi_let_exp
**)(&(*yyvalp
))) = psi_let_exp_init(PSI_LET_CALLBACK
, (*(struct psi_let_callback
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3662 #line 3663 "src/parser_proc.c" /* glr.c:816 */
3666 #line 1449 "src/parser_proc_grammar.y" /* glr.c:816 */
3668 (*(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
)));
3670 #line 3671 "src/parser_proc.c" /* glr.c:816 */
3674 #line 1452 "src/parser_proc_grammar.y" /* glr.c:816 */
3676 (*(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
)));
3678 #line 3679 "src/parser_proc.c" /* glr.c:816 */
3682 #line 1458 "src/parser_proc_grammar.y" /* glr.c:816 */
3684 (*(struct psi_let_exp
**)(&(*yyvalp
))) = (*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3685 (*(struct psi_let_exp
**)(&(*yyvalp
)))->var
= (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3687 #line 3688 "src/parser_proc.c" /* glr.c:816 */
3691 #line 1462 "src/parser_proc_grammar.y" /* glr.c:816 */
3693 (*(struct psi_let_exp
**)(&(*yyvalp
))) = (*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3694 (*(struct psi_let_exp
**)(&(*yyvalp
)))->is_reference
= 1;
3695 (*(struct psi_let_exp
**)(&(*yyvalp
)))->var
= (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
));
3697 #line 3698 "src/parser_proc.c" /* glr.c:816 */
3701 #line 1470 "src/parser_proc_grammar.y" /* glr.c:816 */
3703 (*(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
)));
3704 (*(struct psi_let_calloc
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
3706 #line 3707 "src/parser_proc.c" /* glr.c:816 */
3710 #line 1477 "src/parser_proc_grammar.y" /* glr.c:816 */
3712 (*(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
)));
3713 (*(struct psi_let_callback
**)(&(*yyvalp
)))->func
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-6)].yystate
.yysemantics
.yysval
)));
3714 (*(struct psi_let_callback
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-7)].yystate
.yysemantics
.yysval
)));
3716 #line 3717 "src/parser_proc.c" /* glr.c:816 */
3720 #line 1485 "src/parser_proc_grammar.y" /* glr.c:816 */
3722 (*(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
)));
3723 (*(struct psi_let_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
3724 (*(struct psi_let_func
**)(&(*yyvalp
)))->inner
= (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
3726 #line 3727 "src/parser_proc.c" /* glr.c:816 */
3730 #line 1506 "src/parser_proc_grammar.y" /* glr.c:816 */
3732 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
3734 #line 3735 "src/parser_proc.c" /* glr.c:816 */
3738 #line 1509 "src/parser_proc_grammar.y" /* glr.c:816 */
3740 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3742 #line 3743 "src/parser_proc.c" /* glr.c:816 */
3746 #line 1515 "src/parser_proc_grammar.y" /* glr.c:816 */
3748 (*(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
)));
3750 #line 3751 "src/parser_proc.c" /* glr.c:816 */
3754 #line 1518 "src/parser_proc_grammar.y" /* glr.c:816 */
3756 (*(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
)));
3758 #line 3759 "src/parser_proc.c" /* glr.c:816 */
3762 #line 1529 "src/parser_proc_grammar.y" /* glr.c:816 */
3764 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
3766 #line 3767 "src/parser_proc.c" /* glr.c:816 */
3770 #line 1532 "src/parser_proc_grammar.y" /* glr.c:816 */
3772 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3774 #line 3775 "src/parser_proc.c" /* glr.c:816 */
3778 #line 1538 "src/parser_proc_grammar.y" /* glr.c:816 */
3780 (*(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
)));
3782 #line 3783 "src/parser_proc.c" /* glr.c:816 */
3786 #line 1541 "src/parser_proc_grammar.y" /* glr.c:816 */
3788 (*(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
)));
3790 #line 3791 "src/parser_proc.c" /* glr.c:816 */
3794 #line 1547 "src/parser_proc_grammar.y" /* glr.c:816 */
3796 (*(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
))));
3797 (*(struct psi_return_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3799 #line 3800 "src/parser_proc.c" /* glr.c:816 */
3803 #line 1554 "src/parser_proc_grammar.y" /* glr.c:816 */
3805 (*(struct psi_set_stmt
**)(&(*yyvalp
))) = psi_set_stmt_init((*(struct psi_set_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3806 (*(struct psi_set_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3808 #line 3809 "src/parser_proc.c" /* glr.c:816 */
3812 #line 1561 "src/parser_proc_grammar.y" /* glr.c:816 */
3814 (*(struct psi_set_exp
**)(&(*yyvalp
))) = psi_set_exp_init(PSI_SET_FUNC
, (*(struct psi_set_func
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3816 #line 3817 "src/parser_proc.c" /* glr.c:816 */
3820 #line 1564 "src/parser_proc_grammar.y" /* glr.c:816 */
3822 (*(struct psi_set_exp
**)(&(*yyvalp
))) = psi_set_exp_init(PSI_SET_NUMEXP
, (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3824 #line 3825 "src/parser_proc.c" /* glr.c:816 */
3828 #line 1567 "src/parser_proc_grammar.y" /* glr.c:816 */
3830 (*(struct psi_set_exp
**)(&(*yyvalp
))) = (*(struct psi_set_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3831 (*(struct psi_set_exp
**)(&(*yyvalp
)))->var
= (*(struct psi_impl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3833 #line 3834 "src/parser_proc.c" /* glr.c:816 */
3837 #line 1574 "src/parser_proc_grammar.y" /* glr.c:816 */
3839 (*(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
)));
3840 (*(struct psi_set_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
3841 (*(struct psi_set_func
**)(&(*yyvalp
)))->inner
= (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
3843 #line 3844 "src/parser_proc.c" /* glr.c:816 */
3847 #line 1579 "src/parser_proc_grammar.y" /* glr.c:816 */
3849 (*(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
)));
3850 (*(struct psi_set_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
3851 (*(struct psi_set_func
**)(&(*yyvalp
)))->recursive
= 1;
3853 #line 3854 "src/parser_proc.c" /* glr.c:816 */
3857 #line 1598 "src/parser_proc_grammar.y" /* glr.c:816 */
3859 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
3861 #line 3862 "src/parser_proc.c" /* glr.c:816 */
3865 #line 1601 "src/parser_proc_grammar.y" /* glr.c:816 */
3867 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3869 #line 3870 "src/parser_proc.c" /* glr.c:816 */
3873 #line 1607 "src/parser_proc_grammar.y" /* glr.c:816 */
3875 (*(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
)));
3877 #line 3878 "src/parser_proc.c" /* glr.c:816 */
3881 #line 1610 "src/parser_proc_grammar.y" /* glr.c:816 */
3883 (*(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
)));
3885 #line 3886 "src/parser_proc.c" /* glr.c:816 */
3889 #line 1616 "src/parser_proc_grammar.y" /* glr.c:816 */
3891 (*(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
)));
3892 (*(struct psi_assert_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3894 #line 3895 "src/parser_proc.c" /* glr.c:816 */
3898 #line 1628 "src/parser_proc_grammar.y" /* glr.c:816 */
3900 (*(struct psi_free_stmt
**)(&(*yyvalp
))) = psi_free_stmt_init((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3901 (*(struct psi_free_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3903 #line 3904 "src/parser_proc.c" /* glr.c:816 */
3907 #line 1635 "src/parser_proc_grammar.y" /* glr.c:816 */
3909 (*(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
)));
3911 #line 3912 "src/parser_proc.c" /* glr.c:816 */
3915 #line 1638 "src/parser_proc_grammar.y" /* glr.c:816 */
3917 (*(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
)));
3919 #line 3920 "src/parser_proc.c" /* glr.c:816 */
3923 #line 1644 "src/parser_proc_grammar.y" /* glr.c:816 */
3925 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3926 (*(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
)));
3927 (*(struct psi_free_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
3929 #line 3930 "src/parser_proc.c" /* glr.c:816 */
3933 #line 1652 "src/parser_proc_grammar.y" /* glr.c:816 */
3935 (*(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
)));
3937 #line 3938 "src/parser_proc.c" /* glr.c:816 */
3941 #line 1655 "src/parser_proc_grammar.y" /* glr.c:816 */
3943 (*(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
)));
3945 #line 3946 "src/parser_proc.c" /* glr.c:816 */
3949 #line 1661 "src/parser_proc_grammar.y" /* glr.c:816 */
3951 (*(bool*)(&(*yyvalp
))) = false;
3953 #line 3954 "src/parser_proc.c" /* glr.c:816 */
3957 #line 1664 "src/parser_proc_grammar.y" /* glr.c:816 */
3959 (*(bool*)(&(*yyvalp
))) = true;
3961 #line 3962 "src/parser_proc.c" /* glr.c:816 */
3965 #line 3966 "src/parser_proc.c" /* glr.c:816 */
3976 # undef YYRECOVERING
3981 yyuserMerge (int yyn
, YYSTYPE
* yy0
, YYSTYPE
* yy1
)
3993 /* Bison grammar-table manipulation. */
3995 /*-----------------------------------------------.
3996 | Release the memory associated to this symbol. |
3997 `-----------------------------------------------*/
4000 yydestruct (const char *yymsg
, int yytype
, YYSTYPE
*yyvaluep
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
4008 YY_SYMBOL_PRINT (yymsg
, yytype
, yyvaluep
, yylocationp
);
4010 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4013 case 128: /* binary_op_token */
4014 #line 272 "src/parser_proc_grammar.y" /* glr.c:846 */
4016 #line 4017 "src/parser_proc.c" /* glr.c:846 */
4019 case 129: /* unary_op_token */
4020 #line 272 "src/parser_proc_grammar.y" /* glr.c:846 */
4022 #line 4023 "src/parser_proc.c" /* glr.c:846 */
4025 case 130: /* name_token */
4026 #line 272 "src/parser_proc_grammar.y" /* glr.c:846 */
4028 #line 4029 "src/parser_proc.c" /* glr.c:846 */
4031 case 131: /* any_noeol_token */
4032 #line 272 "src/parser_proc_grammar.y" /* glr.c:846 */
4034 #line 4035 "src/parser_proc.c" /* glr.c:846 */
4038 #line 266 "src/parser_proc_grammar.y" /* glr.c:846 */
4039 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4040 #line 4041 "src/parser_proc.c" /* glr.c:846 */
4044 #line 281 "src/parser_proc_grammar.y" /* glr.c:846 */
4045 {psi_cpp_exp_free(&(*(struct psi_cpp_exp
**)(&(*yyvaluep
))));}
4046 #line 4047 "src/parser_proc.c" /* glr.c:846 */
4049 case 137: /* cpp_exp */
4050 #line 281 "src/parser_proc_grammar.y" /* glr.c:846 */
4051 {psi_cpp_exp_free(&(*(struct psi_cpp_exp
**)(&(*yyvaluep
))));}
4052 #line 4053 "src/parser_proc.c" /* glr.c:846 */
4055 case 138: /* cpp_message_token */
4056 #line 269 "src/parser_proc_grammar.y" /* glr.c:846 */
4058 #line 4059 "src/parser_proc.c" /* glr.c:846 */
4061 case 139: /* cpp_include_token */
4062 #line 269 "src/parser_proc_grammar.y" /* glr.c:846 */
4064 #line 4065 "src/parser_proc.c" /* glr.c:846 */
4067 case 140: /* cpp_header_token */
4068 #line 269 "src/parser_proc_grammar.y" /* glr.c:846 */
4070 #line 4071 "src/parser_proc.c" /* glr.c:846 */
4073 case 141: /* cpp_no_arg_token */
4074 #line 269 "src/parser_proc_grammar.y" /* glr.c:846 */
4076 #line 4077 "src/parser_proc.c" /* glr.c:846 */
4079 case 142: /* cpp_name_arg_token */
4080 #line 269 "src/parser_proc_grammar.y" /* glr.c:846 */
4082 #line 4083 "src/parser_proc.c" /* glr.c:846 */
4085 case 143: /* cpp_exp_arg_token */
4086 #line 269 "src/parser_proc_grammar.y" /* glr.c:846 */
4088 #line 4089 "src/parser_proc.c" /* glr.c:846 */
4091 case 144: /* cpp_macro_decl */
4092 #line 283 "src/parser_proc_grammar.y" /* glr.c:846 */
4093 {psi_cpp_macro_decl_free(&(*(struct psi_cpp_macro_decl
**)(&(*yyvaluep
))));}
4094 #line 4095 "src/parser_proc.c" /* glr.c:846 */
4097 case 145: /* cpp_macro_sig */
4098 #line 285 "src/parser_proc_grammar.y" /* glr.c:846 */
4099 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4100 #line 4101 "src/parser_proc.c" /* glr.c:846 */
4103 case 146: /* cpp_macro_sig_args */
4104 #line 285 "src/parser_proc_grammar.y" /* glr.c:846 */
4105 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4106 #line 4107 "src/parser_proc.c" /* glr.c:846 */
4109 case 147: /* cpp_macro_decl_tokens */
4110 #line 285 "src/parser_proc_grammar.y" /* glr.c:846 */
4111 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4112 #line 4113 "src/parser_proc.c" /* glr.c:846 */
4115 case 148: /* cpp_macro_decl_token_list */
4116 #line 285 "src/parser_proc_grammar.y" /* glr.c:846 */
4117 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4118 #line 4119 "src/parser_proc.c" /* glr.c:846 */
4121 case 149: /* cpp_macro_exp */
4122 #line 287 "src/parser_proc_grammar.y" /* glr.c:846 */
4123 {psi_num_exp_free(&(*(struct psi_num_exp
**)(&(*yyvaluep
))));}
4124 #line 4125 "src/parser_proc.c" /* glr.c:846 */
4127 case 150: /* cpp_macro_call_args */
4128 #line 285 "src/parser_proc_grammar.y" /* glr.c:846 */
4129 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4130 #line 4131 "src/parser_proc.c" /* glr.c:846 */
4133 case 151: /* cpp_macro_call_arg_list */
4134 #line 285 "src/parser_proc_grammar.y" /* glr.c:846 */
4135 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4136 #line 4137 "src/parser_proc.c" /* glr.c:846 */
4139 case 152: /* constant */
4140 #line 293 "src/parser_proc_grammar.y" /* glr.c:846 */
4141 {psi_const_free(&(*(struct psi_const
**)(&(*yyvaluep
))));}
4142 #line 4143 "src/parser_proc.c" /* glr.c:846 */
4145 case 153: /* constant_type */
4146 #line 295 "src/parser_proc_grammar.y" /* glr.c:846 */
4147 {psi_const_type_free(&(*(struct psi_const_type
**)(&(*yyvaluep
))));}
4148 #line 4149 "src/parser_proc.c" /* glr.c:846 */
4151 case 154: /* constant_type_token */
4152 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
4154 #line 4155 "src/parser_proc.c" /* glr.c:846 */
4157 case 155: /* impl_def_val */
4158 #line 297 "src/parser_proc_grammar.y" /* glr.c:846 */
4159 {psi_impl_def_val_free(&(*(struct psi_impl_def_val
**)(&(*yyvaluep
))));}
4160 #line 4161 "src/parser_proc.c" /* glr.c:846 */
4163 case 156: /* impl_def_val_token */
4164 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
4166 #line 4167 "src/parser_proc.c" /* glr.c:846 */
4169 case 157: /* decl_typedef */
4170 #line 310 "src/parser_proc_grammar.y" /* glr.c:846 */
4171 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4172 #line 4173 "src/parser_proc.c" /* glr.c:846 */
4175 case 158: /* typedef */
4176 #line 310 "src/parser_proc_grammar.y" /* glr.c:846 */
4177 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4178 #line 4179 "src/parser_proc.c" /* glr.c:846 */
4181 case 159: /* const_decl_type */
4182 #line 306 "src/parser_proc_grammar.y" /* glr.c:846 */
4183 {psi_decl_type_free(&(*(struct psi_decl_type
**)(&(*yyvaluep
))));}
4184 #line 4185 "src/parser_proc.c" /* glr.c:846 */
4187 case 160: /* decl_type */
4188 #line 306 "src/parser_proc_grammar.y" /* glr.c:846 */
4189 {psi_decl_type_free(&(*(struct psi_decl_type
**)(&(*yyvaluep
))));}
4190 #line 4191 "src/parser_proc.c" /* glr.c:846 */
4193 case 161: /* decl_type_complex */
4194 #line 306 "src/parser_proc_grammar.y" /* glr.c:846 */
4195 {psi_decl_type_free(&(*(struct psi_decl_type
**)(&(*yyvaluep
))));}
4196 #line 4197 "src/parser_proc.c" /* glr.c:846 */
4199 case 162: /* decl_type_simple */
4200 #line 300 "src/parser_proc_grammar.y" /* glr.c:846 */
4201 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4202 #line 4203 "src/parser_proc.c" /* glr.c:846 */
4205 case 163: /* decl_real_type */
4206 #line 300 "src/parser_proc_grammar.y" /* glr.c:846 */
4207 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4208 #line 4209 "src/parser_proc.c" /* glr.c:846 */
4211 case 164: /* decl_stdint_type */
4212 #line 303 "src/parser_proc_grammar.y" /* glr.c:846 */
4214 #line 4215 "src/parser_proc.c" /* glr.c:846 */
4217 case 165: /* int_signed */
4218 #line 278 "src/parser_proc_grammar.y" /* glr.c:846 */
4220 #line 4221 "src/parser_proc.c" /* glr.c:846 */
4223 case 166: /* int_width */
4224 #line 275 "src/parser_proc_grammar.y" /* glr.c:846 */
4225 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4226 #line 4227 "src/parser_proc.c" /* glr.c:846 */
4229 case 167: /* decl_int_type */
4230 #line 300 "src/parser_proc_grammar.y" /* glr.c:846 */
4231 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4232 #line 4233 "src/parser_proc.c" /* glr.c:846 */
4235 case 168: /* int_signed_types */
4236 #line 275 "src/parser_proc_grammar.y" /* glr.c:846 */
4237 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4238 #line 4239 "src/parser_proc.c" /* glr.c:846 */
4241 case 169: /* signed_short_types */
4242 #line 278 "src/parser_proc_grammar.y" /* glr.c:846 */
4244 #line 4245 "src/parser_proc.c" /* glr.c:846 */
4247 case 170: /* signed_long_types */
4248 #line 278 "src/parser_proc_grammar.y" /* glr.c:846 */
4250 #line 4251 "src/parser_proc.c" /* glr.c:846 */
4253 case 171: /* int_width_types */
4254 #line 275 "src/parser_proc_grammar.y" /* glr.c:846 */
4255 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4256 #line 4257 "src/parser_proc.c" /* glr.c:846 */
4259 case 172: /* decl_stmt */
4260 #line 308 "src/parser_proc_grammar.y" /* glr.c:846 */
4261 {psi_decl_free(&(*(struct psi_decl
**)(&(*yyvaluep
))));}
4262 #line 4263 "src/parser_proc.c" /* glr.c:846 */
4265 case 173: /* decl */
4266 #line 308 "src/parser_proc_grammar.y" /* glr.c:846 */
4267 {psi_decl_free(&(*(struct psi_decl
**)(&(*yyvaluep
))));}
4268 #line 4269 "src/parser_proc.c" /* glr.c:846 */
4271 case 174: /* decl_fn */
4272 #line 310 "src/parser_proc_grammar.y" /* glr.c:846 */
4273 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4274 #line 4275 "src/parser_proc.c" /* glr.c:846 */
4277 case 175: /* decl_functor */
4278 #line 310 "src/parser_proc_grammar.y" /* glr.c:846 */
4279 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4280 #line 4281 "src/parser_proc.c" /* glr.c:846 */
4283 case 176: /* decl_func */
4284 #line 310 "src/parser_proc_grammar.y" /* glr.c:846 */
4285 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4286 #line 4287 "src/parser_proc.c" /* glr.c:846 */
4289 case 177: /* decl_args */
4290 #line 322 "src/parser_proc_grammar.y" /* glr.c:846 */
4291 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4292 #line 4293 "src/parser_proc.c" /* glr.c:846 */
4295 case 178: /* decl_arg */
4296 #line 310 "src/parser_proc_grammar.y" /* glr.c:846 */
4297 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4298 #line 4299 "src/parser_proc.c" /* glr.c:846 */
4301 case 179: /* decl_var */
4302 #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */
4303 {psi_decl_var_free(&(*(struct psi_decl_var
**)(&(*yyvaluep
))));}
4304 #line 4305 "src/parser_proc.c" /* glr.c:846 */
4307 case 180: /* decl_union */
4308 #line 316 "src/parser_proc_grammar.y" /* glr.c:846 */
4309 {psi_decl_union_free(&(*(struct psi_decl_union
**)(&(*yyvaluep
))));}
4310 #line 4311 "src/parser_proc.c" /* glr.c:846 */
4313 case 181: /* decl_struct */
4314 #line 314 "src/parser_proc_grammar.y" /* glr.c:846 */
4315 {psi_decl_struct_free(&(*(struct psi_decl_struct
**)(&(*yyvaluep
))));}
4316 #line 4317 "src/parser_proc.c" /* glr.c:846 */
4319 case 182: /* decl_struct_args */
4320 #line 322 "src/parser_proc_grammar.y" /* glr.c:846 */
4321 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4322 #line 4323 "src/parser_proc.c" /* glr.c:846 */
4325 case 183: /* struct_args_block */
4326 #line 322 "src/parser_proc_grammar.y" /* glr.c:846 */
4327 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4328 #line 4329 "src/parser_proc.c" /* glr.c:846 */
4331 case 184: /* struct_args */
4332 #line 322 "src/parser_proc_grammar.y" /* glr.c:846 */
4333 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4334 #line 4335 "src/parser_proc.c" /* glr.c:846 */
4337 case 185: /* struct_arg */
4338 #line 310 "src/parser_proc_grammar.y" /* glr.c:846 */
4339 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4340 #line 4341 "src/parser_proc.c" /* glr.c:846 */
4343 case 186: /* decl_enum */
4344 #line 318 "src/parser_proc_grammar.y" /* glr.c:846 */
4345 {psi_decl_enum_free(&(*(struct psi_decl_enum
**)(&(*yyvaluep
))));}
4346 #line 4347 "src/parser_proc.c" /* glr.c:846 */
4349 case 187: /* decl_enum_items */
4350 #line 322 "src/parser_proc_grammar.y" /* glr.c:846 */
4351 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4352 #line 4353 "src/parser_proc.c" /* glr.c:846 */
4355 case 188: /* decl_enum_item */
4356 #line 320 "src/parser_proc_grammar.y" /* glr.c:846 */
4357 {psi_decl_enum_item_free(&(*(struct psi_decl_enum_item
**)(&(*yyvaluep
))));}
4358 #line 4359 "src/parser_proc.c" /* glr.c:846 */
4361 case 189: /* num_exp */
4362 #line 373 "src/parser_proc_grammar.y" /* glr.c:846 */
4363 {psi_num_exp_free(&(*(struct psi_num_exp
**)(&(*yyvaluep
))));}
4364 #line 4365 "src/parser_proc.c" /* glr.c:846 */
4367 case 190: /* number */
4368 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
4369 {psi_number_free(&(*(struct psi_number
**)(&(*yyvaluep
))));}
4370 #line 4371 "src/parser_proc.c" /* glr.c:846 */
4373 case 191: /* enum_name */
4374 #line 266 "src/parser_proc_grammar.y" /* glr.c:846 */
4375 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4376 #line 4377 "src/parser_proc.c" /* glr.c:846 */
4379 case 192: /* union_name */
4380 #line 266 "src/parser_proc_grammar.y" /* glr.c:846 */
4381 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4382 #line 4383 "src/parser_proc.c" /* glr.c:846 */
4385 case 193: /* struct_name */
4386 #line 266 "src/parser_proc_grammar.y" /* glr.c:846 */
4387 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4388 #line 4389 "src/parser_proc.c" /* glr.c:846 */
4391 case 194: /* optional_name */
4392 #line 266 "src/parser_proc_grammar.y" /* glr.c:846 */
4393 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4394 #line 4395 "src/parser_proc.c" /* glr.c:846 */
4397 case 195: /* decl_layout */
4398 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
4399 {psi_layout_free(&(*(struct psi_layout
**)(&(*yyvaluep
))));}
4400 #line 4401 "src/parser_proc.c" /* glr.c:846 */
4403 case 196: /* align_and_size */
4404 #line 325 "src/parser_proc_grammar.y" /* glr.c:846 */
4406 #line 4407 "src/parser_proc.c" /* glr.c:846 */
4409 case 197: /* array_size */
4410 #line 378 "src/parser_proc_grammar.y" /* glr.c:846 */
4412 #line 4413 "src/parser_proc.c" /* glr.c:846 */
4415 case 198: /* indirection */
4416 #line 378 "src/parser_proc_grammar.y" /* glr.c:846 */
4418 #line 4419 "src/parser_proc.c" /* glr.c:846 */
4421 case 199: /* pointers */
4422 #line 378 "src/parser_proc_grammar.y" /* glr.c:846 */
4424 #line 4425 "src/parser_proc.c" /* glr.c:846 */
4427 case 200: /* impl */
4428 #line 330 "src/parser_proc_grammar.y" /* glr.c:846 */
4429 {psi_impl_free(&(*(struct psi_impl
**)(&(*yyvaluep
))));}
4430 #line 4431 "src/parser_proc.c" /* glr.c:846 */
4433 case 201: /* impl_func */
4434 #line 332 "src/parser_proc_grammar.y" /* glr.c:846 */
4435 {psi_impl_func_free(&(*(struct psi_impl_func
**)(&(*yyvaluep
))));}
4436 #line 4437 "src/parser_proc.c" /* glr.c:846 */
4439 case 202: /* impl_args */
4440 #line 370 "src/parser_proc_grammar.y" /* glr.c:846 */
4441 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4442 #line 4443 "src/parser_proc.c" /* glr.c:846 */
4445 case 203: /* impl_arg */
4446 #line 334 "src/parser_proc_grammar.y" /* glr.c:846 */
4447 {psi_impl_arg_free(&(*(struct psi_impl_arg
**)(&(*yyvaluep
))));}
4448 #line 4449 "src/parser_proc.c" /* glr.c:846 */
4451 case 204: /* impl_var */
4452 #line 338 "src/parser_proc_grammar.y" /* glr.c:846 */
4453 {psi_impl_var_free(&(*(struct psi_impl_var
**)(&(*yyvaluep
))));}
4454 #line 4455 "src/parser_proc.c" /* glr.c:846 */
4457 case 205: /* impl_type */
4458 #line 336 "src/parser_proc_grammar.y" /* glr.c:846 */
4459 {psi_impl_type_free(&(*(struct psi_impl_type
**)(&(*yyvaluep
))));}
4460 #line 4461 "src/parser_proc.c" /* glr.c:846 */
4463 case 206: /* impl_type_token */
4464 #line 368 "src/parser_proc_grammar.y" /* glr.c:846 */
4465 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4466 #line 4467 "src/parser_proc.c" /* glr.c:846 */
4469 case 207: /* impl_stmts */
4470 #line 370 "src/parser_proc_grammar.y" /* glr.c:846 */
4471 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4472 #line 4473 "src/parser_proc.c" /* glr.c:846 */
4475 case 208: /* impl_stmt */
4476 #line 366 "src/parser_proc_grammar.y" /* glr.c:846 */
4477 {psi_impl_stmt_free(&(*(struct psi_token
***)(&(*yyvaluep
))));}
4478 #line 4479 "src/parser_proc.c" /* glr.c:846 */
4481 case 209: /* let_stmt */
4482 #line 341 "src/parser_proc_grammar.y" /* glr.c:846 */
4483 {psi_let_stmt_free(&(*(struct psi_let_stmt
**)(&(*yyvaluep
))));}
4484 #line 4485 "src/parser_proc.c" /* glr.c:846 */
4487 case 210: /* let_exp */
4488 #line 343 "src/parser_proc_grammar.y" /* glr.c:846 */
4489 {psi_let_exp_free(&(*(struct psi_let_exp
**)(&(*yyvaluep
))));}
4490 #line 4491 "src/parser_proc.c" /* glr.c:846 */
4493 case 211: /* let_exp_byref */
4494 #line 343 "src/parser_proc_grammar.y" /* glr.c:846 */
4495 {psi_let_exp_free(&(*(struct psi_let_exp
**)(&(*yyvaluep
))));}
4496 #line 4497 "src/parser_proc.c" /* glr.c:846 */
4499 case 212: /* let_exp_assign */
4500 #line 343 "src/parser_proc_grammar.y" /* glr.c:846 */
4501 {psi_let_exp_free(&(*(struct psi_let_exp
**)(&(*yyvaluep
))));}
4502 #line 4503 "src/parser_proc.c" /* glr.c:846 */
4505 case 213: /* let_calloc */
4506 #line 345 "src/parser_proc_grammar.y" /* glr.c:846 */
4507 {psi_let_calloc_free(&(*(struct psi_let_calloc
**)(&(*yyvaluep
))));}
4508 #line 4509 "src/parser_proc.c" /* glr.c:846 */
4511 case 214: /* let_callback */
4512 #line 347 "src/parser_proc_grammar.y" /* glr.c:846 */
4513 {psi_let_callback_free(&(*(struct psi_let_callback
**)(&(*yyvaluep
))));}
4514 #line 4515 "src/parser_proc.c" /* glr.c:846 */
4517 case 215: /* let_func */
4518 #line 349 "src/parser_proc_grammar.y" /* glr.c:846 */
4519 {psi_let_func_free(&(*(struct psi_let_func
**)(&(*yyvaluep
))));}
4520 #line 4521 "src/parser_proc.c" /* glr.c:846 */
4523 case 216: /* let_func_token */
4524 #line 368 "src/parser_proc_grammar.y" /* glr.c:846 */
4525 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4526 #line 4527 "src/parser_proc.c" /* glr.c:846 */
4529 case 217: /* let_func_exps */
4530 #line 370 "src/parser_proc_grammar.y" /* glr.c:846 */
4531 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4532 #line 4533 "src/parser_proc.c" /* glr.c:846 */
4535 case 218: /* let_exps */
4536 #line 370 "src/parser_proc_grammar.y" /* glr.c:846 */
4537 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4538 #line 4539 "src/parser_proc.c" /* glr.c:846 */
4541 case 219: /* callback_rval */
4542 #line 368 "src/parser_proc_grammar.y" /* glr.c:846 */
4543 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4544 #line 4545 "src/parser_proc.c" /* glr.c:846 */
4547 case 220: /* callback_arg_list */
4548 #line 370 "src/parser_proc_grammar.y" /* glr.c:846 */
4549 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4550 #line 4551 "src/parser_proc.c" /* glr.c:846 */
4553 case 221: /* callback_args */
4554 #line 370 "src/parser_proc_grammar.y" /* glr.c:846 */
4555 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4556 #line 4557 "src/parser_proc.c" /* glr.c:846 */
4559 case 222: /* return_stmt */
4560 #line 359 "src/parser_proc_grammar.y" /* glr.c:846 */
4561 {psi_return_stmt_free(&(*(struct psi_return_stmt
**)(&(*yyvaluep
))));}
4562 #line 4563 "src/parser_proc.c" /* glr.c:846 */
4565 case 223: /* set_stmt */
4566 #line 351 "src/parser_proc_grammar.y" /* glr.c:846 */
4567 {psi_set_stmt_free(&(*(struct psi_set_stmt
**)(&(*yyvaluep
))));}
4568 #line 4569 "src/parser_proc.c" /* glr.c:846 */
4571 case 224: /* set_exp */
4572 #line 353 "src/parser_proc_grammar.y" /* glr.c:846 */
4573 {psi_set_exp_free(&(*(struct psi_set_exp
**)(&(*yyvaluep
))));}
4574 #line 4575 "src/parser_proc.c" /* glr.c:846 */
4577 case 225: /* set_func */
4578 #line 355 "src/parser_proc_grammar.y" /* glr.c:846 */
4579 {psi_set_func_free(&(*(struct psi_set_func
**)(&(*yyvaluep
))));}
4580 #line 4581 "src/parser_proc.c" /* glr.c:846 */
4583 case 226: /* set_func_token */
4584 #line 368 "src/parser_proc_grammar.y" /* glr.c:846 */
4585 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4586 #line 4587 "src/parser_proc.c" /* glr.c:846 */
4589 case 227: /* set_func_exps */
4590 #line 370 "src/parser_proc_grammar.y" /* glr.c:846 */
4591 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4592 #line 4593 "src/parser_proc.c" /* glr.c:846 */
4595 case 228: /* set_exps */
4596 #line 370 "src/parser_proc_grammar.y" /* glr.c:846 */
4597 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4598 #line 4599 "src/parser_proc.c" /* glr.c:846 */
4601 case 229: /* assert_stmt */
4602 #line 357 "src/parser_proc_grammar.y" /* glr.c:846 */
4603 {psi_assert_stmt_free(&(*(struct psi_assert_stmt
**)(&(*yyvaluep
))));}
4604 #line 4605 "src/parser_proc.c" /* glr.c:846 */
4607 case 230: /* assert_stmt_token */
4608 #line 368 "src/parser_proc_grammar.y" /* glr.c:846 */
4609 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4610 #line 4611 "src/parser_proc.c" /* glr.c:846 */
4613 case 231: /* free_stmt */
4614 #line 361 "src/parser_proc_grammar.y" /* glr.c:846 */
4615 {psi_free_stmt_free(&(*(struct psi_free_stmt
**)(&(*yyvaluep
))));}
4616 #line 4617 "src/parser_proc.c" /* glr.c:846 */
4619 case 232: /* free_exps */
4620 #line 370 "src/parser_proc_grammar.y" /* glr.c:846 */
4621 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4622 #line 4623 "src/parser_proc.c" /* glr.c:846 */
4625 case 233: /* free_exp */
4626 #line 363 "src/parser_proc_grammar.y" /* glr.c:846 */
4627 {psi_free_exp_free(&(*(struct psi_free_exp
**)(&(*yyvaluep
))));}
4628 #line 4629 "src/parser_proc.c" /* glr.c:846 */
4631 case 234: /* decl_vars */
4632 #line 322 "src/parser_proc_grammar.y" /* glr.c:846 */
4633 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4634 #line 4635 "src/parser_proc.c" /* glr.c:846 */
4637 case 235: /* reference */
4638 #line 380 "src/parser_proc_grammar.y" /* glr.c:846 */
4640 #line 4641 "src/parser_proc.c" /* glr.c:846 */
4647 YY_IGNORE_MAYBE_UNINITIALIZED_END
4650 /** Number of symbols composing the right hand side of rule #RULE. */
4652 yyrhsLength (yyRuleNum yyrule
)
4654 return yyr2
[yyrule
];
4658 yydestroyGLRState (char const *yymsg
, yyGLRState
*yys
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
4660 if (yys
->yyresolved
)
4661 yydestruct (yymsg
, yystos
[yys
->yylrState
],
4662 &yys
->yysemantics
.yysval
, P
, tokens
, index
);
4668 if (yys
->yysemantics
.yyfirstVal
)
4669 YYFPRINTF (stderr
, "%s unresolved", yymsg
);
4671 YYFPRINTF (stderr
, "%s incomplete", yymsg
);
4672 YY_SYMBOL_PRINT ("", yystos
[yys
->yylrState
], YY_NULLPTR
, &yys
->yyloc
);
4676 if (yys
->yysemantics
.yyfirstVal
)
4678 yySemanticOption
*yyoption
= yys
->yysemantics
.yyfirstVal
;
4681 for (yyrh
= yyoption
->yystate
, yyn
= yyrhsLength (yyoption
->yyrule
);
4683 yyrh
= yyrh
->yypred
, yyn
-= 1)
4684 yydestroyGLRState (yymsg
, yyrh
, P
, tokens
, index
);
4689 /** Left-hand-side symbol for rule #YYRULE. */
4690 static inline yySymbol
4691 yylhsNonterm (yyRuleNum yyrule
)
4693 return yyr1
[yyrule
];
4696 #define yypact_value_is_default(Yystate) \
4697 (!!((Yystate) == (-505)))
4699 /** True iff LR state YYSTATE has only a default reduction (regardless
4701 static inline yybool
4702 yyisDefaultedState (yyStateNum yystate
)
4704 return yypact_value_is_default (yypact
[yystate
]);
4707 /** The default reduction for YYSTATE, assuming it has one. */
4708 static inline yyRuleNum
4709 yydefaultAction (yyStateNum yystate
)
4711 return yydefact
[yystate
];
4714 #define yytable_value_is_error(Yytable_value) \
4717 /** Set *YYACTION to the action to take in YYSTATE on seeing YYTOKEN.
4719 * R < 0: Reduce on rule -R.
4721 * R > 0: Shift to state R.
4722 * Set *YYCONFLICTS to a pointer into yyconfl to a 0-terminated list
4723 * of conflicting reductions.
4726 yygetLRActions (yyStateNum yystate
, int yytoken
,
4727 int* yyaction
, const short int** yyconflicts
)
4729 int yyindex
= yypact
[yystate
] + yytoken
;
4730 if (yypact_value_is_default (yypact
[yystate
])
4731 || yyindex
< 0 || YYLAST
< yyindex
|| yycheck
[yyindex
] != yytoken
)
4733 *yyaction
= -yydefact
[yystate
];
4734 *yyconflicts
= yyconfl
;
4736 else if (! yytable_value_is_error (yytable
[yyindex
]))
4738 *yyaction
= yytable
[yyindex
];
4739 *yyconflicts
= yyconfl
+ yyconflp
[yyindex
];
4744 *yyconflicts
= yyconfl
+ yyconflp
[yyindex
];
4748 /** Compute post-reduction state.
4749 * \param yystate the current state
4750 * \param yysym the nonterminal to push on the stack
4752 static inline yyStateNum
4753 yyLRgotoState (yyStateNum yystate
, yySymbol yysym
)
4755 int yyr
= yypgoto
[yysym
- YYNTOKENS
] + yystate
;
4756 if (0 <= yyr
&& yyr
<= YYLAST
&& yycheck
[yyr
] == yystate
)
4757 return yytable
[yyr
];
4759 return yydefgoto
[yysym
- YYNTOKENS
];
4762 static inline yybool
4763 yyisShiftAction (int yyaction
)
4765 return 0 < yyaction
;
4768 static inline yybool
4769 yyisErrorAction (int yyaction
)
4771 return yyaction
== 0;
4776 /** Return a fresh GLRStackItem in YYSTACKP. The item is an LR state
4777 * if YYISSTATE, and otherwise a semantic option. Callers should call
4778 * YY_RESERVE_GLRSTACK afterwards to make sure there is sufficient
4781 static inline yyGLRStackItem
*
4782 yynewGLRStackItem (yyGLRStack
* yystackp
, yybool yyisState
)
4784 yyGLRStackItem
* yynewItem
= yystackp
->yynextFree
;
4785 yystackp
->yyspaceLeft
-= 1;
4786 yystackp
->yynextFree
+= 1;
4787 yynewItem
->yystate
.yyisState
= yyisState
;
4791 /** Add a new semantic action that will execute the action for rule
4792 * YYRULE on the semantic values in YYRHS to the list of
4793 * alternative actions for YYSTATE. Assumes that YYRHS comes from
4794 * stack #YYK of *YYSTACKP. */
4796 yyaddDeferredAction (yyGLRStack
* yystackp
, size_t yyk
, yyGLRState
* yystate
,
4797 yyGLRState
* yyrhs
, yyRuleNum yyrule
)
4799 yySemanticOption
* yynewOption
=
4800 &yynewGLRStackItem (yystackp
, yyfalse
)->yyoption
;
4801 YYASSERT (!yynewOption
->yyisState
);
4802 yynewOption
->yystate
= yyrhs
;
4803 yynewOption
->yyrule
= yyrule
;
4804 if (yystackp
->yytops
.yylookaheadNeeds
[yyk
])
4806 yynewOption
->yyrawchar
= yychar
;
4807 yynewOption
->yyval
= yylval
;
4810 yynewOption
->yyrawchar
= YYEMPTY
;
4811 yynewOption
->yynext
= yystate
->yysemantics
.yyfirstVal
;
4812 yystate
->yysemantics
.yyfirstVal
= yynewOption
;
4814 YY_RESERVE_GLRSTACK (yystackp
);
4819 /** Initialize YYSET to a singleton set containing an empty stack. */
4821 yyinitStateSet (yyGLRStateSet
* yyset
)
4824 yyset
->yycapacity
= 16;
4825 yyset
->yystates
= (yyGLRState
**) YYMALLOC (16 * sizeof yyset
->yystates
[0]);
4826 if (! yyset
->yystates
)
4828 yyset
->yystates
[0] = YY_NULLPTR
;
4829 yyset
->yylookaheadNeeds
=
4830 (yybool
*) YYMALLOC (16 * sizeof yyset
->yylookaheadNeeds
[0]);
4831 if (! yyset
->yylookaheadNeeds
)
4833 YYFREE (yyset
->yystates
);
4839 static void yyfreeStateSet (yyGLRStateSet
* yyset
)
4841 YYFREE (yyset
->yystates
);
4842 YYFREE (yyset
->yylookaheadNeeds
);
4845 /** Initialize *YYSTACKP to a single empty stack, with total maximum
4846 * capacity for all stacks of YYSIZE. */
4848 yyinitGLRStack (yyGLRStack
* yystackp
, size_t yysize
)
4850 yystackp
->yyerrState
= 0;
4852 yystackp
->yyspaceLeft
= yysize
;
4854 (yyGLRStackItem
*) YYMALLOC (yysize
* sizeof yystackp
->yynextFree
[0]);
4855 if (!yystackp
->yyitems
)
4857 yystackp
->yynextFree
= yystackp
->yyitems
;
4858 yystackp
->yysplitPoint
= YY_NULLPTR
;
4859 yystackp
->yylastDeleted
= YY_NULLPTR
;
4860 return yyinitStateSet (&yystackp
->yytops
);
4864 #if YYSTACKEXPANDABLE
4865 # define YYRELOC(YYFROMITEMS,YYTOITEMS,YYX,YYTYPE) \
4866 &((YYTOITEMS) - ((YYFROMITEMS) - (yyGLRStackItem*) (YYX)))->YYTYPE
4868 /** If *YYSTACKP is expandable, extend it. WARNING: Pointers into the
4869 stack from outside should be considered invalid after this call.
4870 We always expand when there are 1 or fewer items left AFTER an
4871 allocation, so that we can avoid having external pointers exist
4872 across an allocation. */
4874 yyexpandGLRStack (yyGLRStack
* yystackp
)
4876 yyGLRStackItem
* yynewItems
;
4877 yyGLRStackItem
* yyp0
, *yyp1
;
4880 size_t yysize
= yystackp
->yynextFree
- yystackp
->yyitems
;
4881 if (YYMAXDEPTH
- YYHEADROOM
< yysize
)
4882 yyMemoryExhausted (yystackp
);
4883 yynewSize
= 2*yysize
;
4884 if (YYMAXDEPTH
< yynewSize
)
4885 yynewSize
= YYMAXDEPTH
;
4886 yynewItems
= (yyGLRStackItem
*) YYMALLOC (yynewSize
* sizeof yynewItems
[0]);
4888 yyMemoryExhausted (yystackp
);
4889 for (yyp0
= yystackp
->yyitems
, yyp1
= yynewItems
, yyn
= yysize
;
4891 yyn
-= 1, yyp0
+= 1, yyp1
+= 1)
4894 if (*(yybool
*) yyp0
)
4896 yyGLRState
* yys0
= &yyp0
->yystate
;
4897 yyGLRState
* yys1
= &yyp1
->yystate
;
4898 if (yys0
->yypred
!= YY_NULLPTR
)
4900 YYRELOC (yyp0
, yyp1
, yys0
->yypred
, yystate
);
4901 if (! yys0
->yyresolved
&& yys0
->yysemantics
.yyfirstVal
!= YY_NULLPTR
)
4902 yys1
->yysemantics
.yyfirstVal
=
4903 YYRELOC (yyp0
, yyp1
, yys0
->yysemantics
.yyfirstVal
, yyoption
);
4907 yySemanticOption
* yyv0
= &yyp0
->yyoption
;
4908 yySemanticOption
* yyv1
= &yyp1
->yyoption
;
4909 if (yyv0
->yystate
!= YY_NULLPTR
)
4910 yyv1
->yystate
= YYRELOC (yyp0
, yyp1
, yyv0
->yystate
, yystate
);
4911 if (yyv0
->yynext
!= YY_NULLPTR
)
4912 yyv1
->yynext
= YYRELOC (yyp0
, yyp1
, yyv0
->yynext
, yyoption
);
4915 if (yystackp
->yysplitPoint
!= YY_NULLPTR
)
4916 yystackp
->yysplitPoint
= YYRELOC (yystackp
->yyitems
, yynewItems
,
4917 yystackp
->yysplitPoint
, yystate
);
4919 for (yyn
= 0; yyn
< yystackp
->yytops
.yysize
; yyn
+= 1)
4920 if (yystackp
->yytops
.yystates
[yyn
] != YY_NULLPTR
)
4921 yystackp
->yytops
.yystates
[yyn
] =
4922 YYRELOC (yystackp
->yyitems
, yynewItems
,
4923 yystackp
->yytops
.yystates
[yyn
], yystate
);
4924 YYFREE (yystackp
->yyitems
);
4925 yystackp
->yyitems
= yynewItems
;
4926 yystackp
->yynextFree
= yynewItems
+ yysize
;
4927 yystackp
->yyspaceLeft
= yynewSize
- yysize
;
4932 yyfreeGLRStack (yyGLRStack
* yystackp
)
4934 YYFREE (yystackp
->yyitems
);
4935 yyfreeStateSet (&yystackp
->yytops
);
4938 /** Assuming that YYS is a GLRState somewhere on *YYSTACKP, update the
4939 * splitpoint of *YYSTACKP, if needed, so that it is at least as deep as
4942 yyupdateSplit (yyGLRStack
* yystackp
, yyGLRState
* yys
)
4944 if (yystackp
->yysplitPoint
!= YY_NULLPTR
&& yystackp
->yysplitPoint
> yys
)
4945 yystackp
->yysplitPoint
= yys
;
4948 /** Invalidate stack #YYK in *YYSTACKP. */
4950 yymarkStackDeleted (yyGLRStack
* yystackp
, size_t yyk
)
4952 if (yystackp
->yytops
.yystates
[yyk
] != YY_NULLPTR
)
4953 yystackp
->yylastDeleted
= yystackp
->yytops
.yystates
[yyk
];
4954 yystackp
->yytops
.yystates
[yyk
] = YY_NULLPTR
;
4957 /** Undelete the last stack in *YYSTACKP that was marked as deleted. Can
4958 only be done once after a deletion, and only when all other stacks have
4961 yyundeleteLastStack (yyGLRStack
* yystackp
)
4963 if (yystackp
->yylastDeleted
== YY_NULLPTR
|| yystackp
->yytops
.yysize
!= 0)
4965 yystackp
->yytops
.yystates
[0] = yystackp
->yylastDeleted
;
4966 yystackp
->yytops
.yysize
= 1;
4967 YYDPRINTF ((stderr
, "Restoring last deleted stack as stack #0.\n"));
4968 yystackp
->yylastDeleted
= YY_NULLPTR
;
4972 yyremoveDeletes (yyGLRStack
* yystackp
)
4976 while (yyj
< yystackp
->yytops
.yysize
)
4978 if (yystackp
->yytops
.yystates
[yyi
] == YY_NULLPTR
)
4982 YYDPRINTF ((stderr
, "Removing dead stacks.\n"));
4984 yystackp
->yytops
.yysize
-= 1;
4988 yystackp
->yytops
.yystates
[yyj
] = yystackp
->yytops
.yystates
[yyi
];
4989 /* In the current implementation, it's unnecessary to copy
4990 yystackp->yytops.yylookaheadNeeds[yyi] since, after
4991 yyremoveDeletes returns, the parser immediately either enters
4992 deterministic operation or shifts a token. However, it doesn't
4993 hurt, and the code might evolve to need it. */
4994 yystackp
->yytops
.yylookaheadNeeds
[yyj
] =
4995 yystackp
->yytops
.yylookaheadNeeds
[yyi
];
4998 YYDPRINTF ((stderr
, "Rename stack %lu -> %lu.\n",
4999 (unsigned long int) yyi
, (unsigned long int) yyj
));
5007 /** Shift to a new state on stack #YYK of *YYSTACKP, corresponding to LR
5008 * state YYLRSTATE, at input position YYPOSN, with (resolved) semantic
5009 * value *YYVALP and source location *YYLOCP. */
5011 yyglrShift (yyGLRStack
* yystackp
, size_t yyk
, yyStateNum yylrState
,
5015 yyGLRState
* yynewState
= &yynewGLRStackItem (yystackp
, yytrue
)->yystate
;
5017 yynewState
->yylrState
= yylrState
;
5018 yynewState
->yyposn
= yyposn
;
5019 yynewState
->yyresolved
= yytrue
;
5020 yynewState
->yypred
= yystackp
->yytops
.yystates
[yyk
];
5021 yynewState
->yysemantics
.yysval
= *yyvalp
;
5022 yystackp
->yytops
.yystates
[yyk
] = yynewState
;
5024 YY_RESERVE_GLRSTACK (yystackp
);
5027 /** Shift stack #YYK of *YYSTACKP, to a new state corresponding to LR
5028 * state YYLRSTATE, at input position YYPOSN, with the (unresolved)
5029 * semantic value of YYRHS under the action for YYRULE. */
5031 yyglrShiftDefer (yyGLRStack
* yystackp
, size_t yyk
, yyStateNum yylrState
,
5032 size_t yyposn
, yyGLRState
* yyrhs
, yyRuleNum yyrule
)
5034 yyGLRState
* yynewState
= &yynewGLRStackItem (yystackp
, yytrue
)->yystate
;
5035 YYASSERT (yynewState
->yyisState
);
5037 yynewState
->yylrState
= yylrState
;
5038 yynewState
->yyposn
= yyposn
;
5039 yynewState
->yyresolved
= yyfalse
;
5040 yynewState
->yypred
= yystackp
->yytops
.yystates
[yyk
];
5041 yynewState
->yysemantics
.yyfirstVal
= YY_NULLPTR
;
5042 yystackp
->yytops
.yystates
[yyk
] = yynewState
;
5044 /* Invokes YY_RESERVE_GLRSTACK. */
5045 yyaddDeferredAction (yystackp
, yyk
, yynewState
, yyrhs
, yyrule
);
5049 # define YY_REDUCE_PRINT(Args)
5051 # define YY_REDUCE_PRINT(Args) \
5054 yy_reduce_print Args; \
5057 /*----------------------------------------------------------------------.
5058 | Report that stack #YYK of *YYSTACKP is going to be reduced by YYRULE. |
5059 `----------------------------------------------------------------------*/
5062 yy_reduce_print (int yynormal
, yyGLRStackItem
* yyvsp
, size_t yyk
,
5063 yyRuleNum yyrule
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5065 int yynrhs
= yyrhsLength (yyrule
);
5067 YYFPRINTF (stderr
, "Reducing stack %lu by rule %d (line %lu):\n",
5068 (unsigned long int) yyk
, yyrule
- 1,
5069 (unsigned long int) yyrline
[yyrule
]);
5071 yyfillin (yyvsp
, 1, -yynrhs
);
5072 /* The symbols being reduced. */
5073 for (yyi
= 0; yyi
< yynrhs
; yyi
++)
5075 YYFPRINTF (stderr
, " $%d = ", yyi
+ 1);
5076 yy_symbol_print (stderr
,
5077 yystos
[yyvsp
[yyi
- yynrhs
+ 1].yystate
.yylrState
],
5078 &yyvsp
[yyi
- yynrhs
+ 1].yystate
.yysemantics
.yysval
5079 , P
, tokens
, index
);
5080 if (!yyvsp
[yyi
- yynrhs
+ 1].yystate
.yyresolved
)
5081 YYFPRINTF (stderr
, " (unresolved)");
5082 YYFPRINTF (stderr
, "\n");
5087 /** Pop the symbols consumed by reduction #YYRULE from the top of stack
5088 * #YYK of *YYSTACKP, and perform the appropriate semantic action on their
5089 * semantic values. Assumes that all ambiguities in semantic values
5090 * have been previously resolved. Set *YYVALP to the resulting value,
5091 * and *YYLOCP to the computed location (if any). Return value is as
5092 * for userAction. */
5093 static inline YYRESULTTAG
5094 yydoAction (yyGLRStack
* yystackp
, size_t yyk
, yyRuleNum yyrule
,
5095 YYSTYPE
* yyvalp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5097 int yynrhs
= yyrhsLength (yyrule
);
5099 if (yystackp
->yysplitPoint
== YY_NULLPTR
)
5101 /* Standard special case: single stack. */
5102 yyGLRStackItem
* yyrhs
= (yyGLRStackItem
*) yystackp
->yytops
.yystates
[yyk
];
5103 YYASSERT (yyk
== 0);
5104 yystackp
->yynextFree
-= yynrhs
;
5105 yystackp
->yyspaceLeft
+= yynrhs
;
5106 yystackp
->yytops
.yystates
[0] = & yystackp
->yynextFree
[-1].yystate
;
5107 YY_REDUCE_PRINT ((1, yyrhs
, yyk
, yyrule
, P
, tokens
, index
));
5108 return yyuserAction (yyrule
, yynrhs
, yyrhs
, yystackp
,
5109 yyvalp
, P
, tokens
, index
);
5115 yyGLRStackItem yyrhsVals
[YYMAXRHS
+ YYMAXLEFT
+ 1];
5116 yys
= yyrhsVals
[YYMAXRHS
+ YYMAXLEFT
].yystate
.yypred
5117 = yystackp
->yytops
.yystates
[yyk
];
5118 for (yyi
= 0; yyi
< yynrhs
; yyi
+= 1)
5123 yyupdateSplit (yystackp
, yys
);
5124 yystackp
->yytops
.yystates
[yyk
] = yys
;
5125 YY_REDUCE_PRINT ((0, yyrhsVals
+ YYMAXRHS
+ YYMAXLEFT
- 1, yyk
, yyrule
, P
, tokens
, index
));
5126 return yyuserAction (yyrule
, yynrhs
, yyrhsVals
+ YYMAXRHS
+ YYMAXLEFT
- 1,
5127 yystackp
, yyvalp
, P
, tokens
, index
);
5131 /** Pop items off stack #YYK of *YYSTACKP according to grammar rule YYRULE,
5132 * and push back on the resulting nonterminal symbol. Perform the
5133 * semantic action associated with YYRULE and store its value with the
5134 * newly pushed state, if YYFORCEEVAL or if *YYSTACKP is currently
5135 * unambiguous. Otherwise, store the deferred semantic action with
5136 * the new state. If the new state would have an identical input
5137 * position, LR state, and predecessor to an existing state on the stack,
5138 * it is identified with that existing state, eliminating stack #YYK from
5139 * *YYSTACKP. In this case, the semantic value is
5140 * added to the options for the existing state's semantic value.
5142 static inline YYRESULTTAG
5143 yyglrReduce (yyGLRStack
* yystackp
, size_t yyk
, yyRuleNum yyrule
,
5144 yybool yyforceEval
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5146 size_t yyposn
= yystackp
->yytops
.yystates
[yyk
]->yyposn
;
5148 if (yyforceEval
|| yystackp
->yysplitPoint
== YY_NULLPTR
)
5152 YYRESULTTAG yyflag
= yydoAction (yystackp
, yyk
, yyrule
, &yysval
, P
, tokens
, index
);
5153 if (yyflag
== yyerr
&& yystackp
->yysplitPoint
!= YY_NULLPTR
)
5155 YYDPRINTF ((stderr
, "Parse on stack %lu rejected by rule #%d.\n",
5156 (unsigned long int) yyk
, yyrule
- 1));
5160 YY_SYMBOL_PRINT ("-> $$ =", yyr1
[yyrule
], &yysval
, &yyloc
);
5161 yyglrShift (yystackp
, yyk
,
5162 yyLRgotoState (yystackp
->yytops
.yystates
[yyk
]->yylrState
,
5163 yylhsNonterm (yyrule
)),
5170 yyGLRState
* yys
, *yys0
= yystackp
->yytops
.yystates
[yyk
];
5171 yyStateNum yynewLRState
;
5173 for (yys
= yystackp
->yytops
.yystates
[yyk
], yyn
= yyrhsLength (yyrule
);
5179 yyupdateSplit (yystackp
, yys
);
5180 yynewLRState
= yyLRgotoState (yys
->yylrState
, yylhsNonterm (yyrule
));
5182 "Reduced stack %lu by rule #%d; action deferred. "
5183 "Now in state %d.\n",
5184 (unsigned long int) yyk
, yyrule
- 1, yynewLRState
));
5185 for (yyi
= 0; yyi
< yystackp
->yytops
.yysize
; yyi
+= 1)
5186 if (yyi
!= yyk
&& yystackp
->yytops
.yystates
[yyi
] != YY_NULLPTR
)
5188 yyGLRState
*yysplit
= yystackp
->yysplitPoint
;
5189 yyGLRState
*yyp
= yystackp
->yytops
.yystates
[yyi
];
5190 while (yyp
!= yys
&& yyp
!= yysplit
&& yyp
->yyposn
>= yyposn
)
5192 if (yyp
->yylrState
== yynewLRState
&& yyp
->yypred
== yys
)
5194 yyaddDeferredAction (yystackp
, yyk
, yyp
, yys0
, yyrule
);
5195 yymarkStackDeleted (yystackp
, yyk
);
5196 YYDPRINTF ((stderr
, "Merging stack %lu into stack %lu.\n",
5197 (unsigned long int) yyk
,
5198 (unsigned long int) yyi
));
5204 yystackp
->yytops
.yystates
[yyk
] = yys
;
5205 yyglrShiftDefer (yystackp
, yyk
, yynewLRState
, yyposn
, yys0
, yyrule
);
5211 yysplitStack (yyGLRStack
* yystackp
, size_t yyk
)
5213 if (yystackp
->yysplitPoint
== YY_NULLPTR
)
5215 YYASSERT (yyk
== 0);
5216 yystackp
->yysplitPoint
= yystackp
->yytops
.yystates
[yyk
];
5218 if (yystackp
->yytops
.yysize
>= yystackp
->yytops
.yycapacity
)
5220 yyGLRState
** yynewStates
;
5221 yybool
* yynewLookaheadNeeds
;
5223 yynewStates
= YY_NULLPTR
;
5225 if (yystackp
->yytops
.yycapacity
5226 > (YYSIZEMAX
/ (2 * sizeof yynewStates
[0])))
5227 yyMemoryExhausted (yystackp
);
5228 yystackp
->yytops
.yycapacity
*= 2;
5231 (yyGLRState
**) YYREALLOC (yystackp
->yytops
.yystates
,
5232 (yystackp
->yytops
.yycapacity
5233 * sizeof yynewStates
[0]));
5234 if (yynewStates
== YY_NULLPTR
)
5235 yyMemoryExhausted (yystackp
);
5236 yystackp
->yytops
.yystates
= yynewStates
;
5238 yynewLookaheadNeeds
=
5239 (yybool
*) YYREALLOC (yystackp
->yytops
.yylookaheadNeeds
,
5240 (yystackp
->yytops
.yycapacity
5241 * sizeof yynewLookaheadNeeds
[0]));
5242 if (yynewLookaheadNeeds
== YY_NULLPTR
)
5243 yyMemoryExhausted (yystackp
);
5244 yystackp
->yytops
.yylookaheadNeeds
= yynewLookaheadNeeds
;
5246 yystackp
->yytops
.yystates
[yystackp
->yytops
.yysize
]
5247 = yystackp
->yytops
.yystates
[yyk
];
5248 yystackp
->yytops
.yylookaheadNeeds
[yystackp
->yytops
.yysize
]
5249 = yystackp
->yytops
.yylookaheadNeeds
[yyk
];
5250 yystackp
->yytops
.yysize
+= 1;
5251 return yystackp
->yytops
.yysize
-1;
5254 /** True iff YYY0 and YYY1 represent identical options at the top level.
5255 * That is, they represent the same rule applied to RHS symbols
5256 * that produce the same terminal symbols. */
5258 yyidenticalOptions (yySemanticOption
* yyy0
, yySemanticOption
* yyy1
)
5260 if (yyy0
->yyrule
== yyy1
->yyrule
)
5262 yyGLRState
*yys0
, *yys1
;
5264 for (yys0
= yyy0
->yystate
, yys1
= yyy1
->yystate
,
5265 yyn
= yyrhsLength (yyy0
->yyrule
);
5267 yys0
= yys0
->yypred
, yys1
= yys1
->yypred
, yyn
-= 1)
5268 if (yys0
->yyposn
!= yys1
->yyposn
)
5276 /** Assuming identicalOptions (YYY0,YYY1), destructively merge the
5277 * alternative semantic values for the RHS-symbols of YYY1 and YYY0. */
5279 yymergeOptionSets (yySemanticOption
* yyy0
, yySemanticOption
* yyy1
)
5281 yyGLRState
*yys0
, *yys1
;
5283 for (yys0
= yyy0
->yystate
, yys1
= yyy1
->yystate
,
5284 yyn
= yyrhsLength (yyy0
->yyrule
);
5286 yys0
= yys0
->yypred
, yys1
= yys1
->yypred
, yyn
-= 1)
5290 else if (yys0
->yyresolved
)
5292 yys1
->yyresolved
= yytrue
;
5293 yys1
->yysemantics
.yysval
= yys0
->yysemantics
.yysval
;
5295 else if (yys1
->yyresolved
)
5297 yys0
->yyresolved
= yytrue
;
5298 yys0
->yysemantics
.yysval
= yys1
->yysemantics
.yysval
;
5302 yySemanticOption
** yyz0p
= &yys0
->yysemantics
.yyfirstVal
;
5303 yySemanticOption
* yyz1
= yys1
->yysemantics
.yyfirstVal
;
5306 if (yyz1
== *yyz0p
|| yyz1
== YY_NULLPTR
)
5308 else if (*yyz0p
== YY_NULLPTR
)
5313 else if (*yyz0p
< yyz1
)
5315 yySemanticOption
* yyz
= *yyz0p
;
5317 yyz1
= yyz1
->yynext
;
5318 (*yyz0p
)->yynext
= yyz
;
5320 yyz0p
= &(*yyz0p
)->yynext
;
5322 yys1
->yysemantics
.yyfirstVal
= yys0
->yysemantics
.yyfirstVal
;
5327 /** Y0 and Y1 represent two possible actions to take in a given
5328 * parsing state; return 0 if no combination is possible,
5329 * 1 if user-mergeable, 2 if Y0 is preferred, 3 if Y1 is preferred. */
5331 yypreference (yySemanticOption
* y0
, yySemanticOption
* y1
)
5333 yyRuleNum r0
= y0
->yyrule
, r1
= y1
->yyrule
;
5334 int p0
= yydprec
[r0
], p1
= yydprec
[r1
];
5338 if (yymerger
[r0
] == 0 || yymerger
[r0
] != yymerger
[r1
])
5343 if (p0
== 0 || p1
== 0)
5352 static YYRESULTTAG
yyresolveValue (yyGLRState
* yys
,
5353 yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
);
5356 /** Resolve the previous YYN states starting at and including state YYS
5357 * on *YYSTACKP. If result != yyok, some states may have been left
5358 * unresolved possibly with empty semantic option chains. Regardless
5359 * of whether result = yyok, each state has been left with consistent
5360 * data so that yydestroyGLRState can be invoked if necessary. */
5362 yyresolveStates (yyGLRState
* yys
, int yyn
,
5363 yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5367 YYASSERT (yys
->yypred
);
5368 YYCHK (yyresolveStates (yys
->yypred
, yyn
-1, yystackp
, P
, tokens
, index
));
5369 if (! yys
->yyresolved
)
5370 YYCHK (yyresolveValue (yys
, yystackp
, P
, tokens
, index
));
5375 /** Resolve the states for the RHS of YYOPT on *YYSTACKP, perform its
5376 * user action, and return the semantic value and location in *YYVALP
5377 * and *YYLOCP. Regardless of whether result = yyok, all RHS states
5378 * have been destroyed (assuming the user action destroys all RHS
5379 * semantic values if invoked). */
5381 yyresolveAction (yySemanticOption
* yyopt
, yyGLRStack
* yystackp
,
5382 YYSTYPE
* yyvalp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5384 yyGLRStackItem yyrhsVals
[YYMAXRHS
+ YYMAXLEFT
+ 1];
5385 int yynrhs
= yyrhsLength (yyopt
->yyrule
);
5386 YYRESULTTAG yyflag
=
5387 yyresolveStates (yyopt
->yystate
, yynrhs
, yystackp
, P
, tokens
, index
);
5391 for (yys
= yyopt
->yystate
; yynrhs
> 0; yys
= yys
->yypred
, yynrhs
-= 1)
5392 yydestroyGLRState ("Cleanup: popping", yys
, P
, tokens
, index
);
5396 yyrhsVals
[YYMAXRHS
+ YYMAXLEFT
].yystate
.yypred
= yyopt
->yystate
;
5398 int yychar_current
= yychar
;
5399 YYSTYPE yylval_current
= yylval
;
5400 yychar
= yyopt
->yyrawchar
;
5401 yylval
= yyopt
->yyval
;
5402 yyflag
= yyuserAction (yyopt
->yyrule
, yynrhs
,
5403 yyrhsVals
+ YYMAXRHS
+ YYMAXLEFT
- 1,
5404 yystackp
, yyvalp
, P
, tokens
, index
);
5405 yychar
= yychar_current
;
5406 yylval
= yylval_current
;
5413 yyreportTree (yySemanticOption
* yyx
, int yyindent
)
5415 int yynrhs
= yyrhsLength (yyx
->yyrule
);
5418 yyGLRState
* yystates
[1 + YYMAXRHS
];
5419 yyGLRState yyleftmost_state
;
5421 for (yyi
= yynrhs
, yys
= yyx
->yystate
; 0 < yyi
; yyi
-= 1, yys
= yys
->yypred
)
5422 yystates
[yyi
] = yys
;
5423 if (yys
== YY_NULLPTR
)
5425 yyleftmost_state
.yyposn
= 0;
5426 yystates
[0] = &yyleftmost_state
;
5431 if (yyx
->yystate
->yyposn
< yys
->yyposn
+ 1)
5432 YYFPRINTF (stderr
, "%*s%s -> <Rule %d, empty>\n",
5433 yyindent
, "", yytokenName (yylhsNonterm (yyx
->yyrule
)),
5436 YYFPRINTF (stderr
, "%*s%s -> <Rule %d, tokens %lu .. %lu>\n",
5437 yyindent
, "", yytokenName (yylhsNonterm (yyx
->yyrule
)),
5438 yyx
->yyrule
- 1, (unsigned long int) (yys
->yyposn
+ 1),
5439 (unsigned long int) yyx
->yystate
->yyposn
);
5440 for (yyi
= 1; yyi
<= yynrhs
; yyi
+= 1)
5442 if (yystates
[yyi
]->yyresolved
)
5444 if (yystates
[yyi
-1]->yyposn
+1 > yystates
[yyi
]->yyposn
)
5445 YYFPRINTF (stderr
, "%*s%s <empty>\n", yyindent
+2, "",
5446 yytokenName (yystos
[yystates
[yyi
]->yylrState
]));
5448 YYFPRINTF (stderr
, "%*s%s <tokens %lu .. %lu>\n", yyindent
+2, "",
5449 yytokenName (yystos
[yystates
[yyi
]->yylrState
]),
5450 (unsigned long int) (yystates
[yyi
-1]->yyposn
+ 1),
5451 (unsigned long int) yystates
[yyi
]->yyposn
);
5454 yyreportTree (yystates
[yyi
]->yysemantics
.yyfirstVal
, yyindent
+2);
5460 yyreportAmbiguity (yySemanticOption
* yyx0
,
5461 yySemanticOption
* yyx1
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5467 YYFPRINTF (stderr
, "Ambiguity detected.\n");
5468 YYFPRINTF (stderr
, "Option 1,\n");
5469 yyreportTree (yyx0
, 2);
5470 YYFPRINTF (stderr
, "\nOption 2,\n");
5471 yyreportTree (yyx1
, 2);
5472 YYFPRINTF (stderr
, "\n");
5475 yyerror (P
, tokens
, index
, YY_("syntax is ambiguous"));
5479 /** Resolve the ambiguity represented in state YYS in *YYSTACKP,
5480 * perform the indicated actions, and set the semantic value of YYS.
5481 * If result != yyok, the chain of semantic options in YYS has been
5482 * cleared instead or it has been left unmodified except that
5483 * redundant options may have been removed. Regardless of whether
5484 * result = yyok, YYS has been left with consistent data so that
5485 * yydestroyGLRState can be invoked if necessary. */
5487 yyresolveValue (yyGLRState
* yys
, yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5489 yySemanticOption
* yyoptionList
= yys
->yysemantics
.yyfirstVal
;
5490 yySemanticOption
* yybest
= yyoptionList
;
5491 yySemanticOption
** yypp
;
5492 yybool yymerge
= yyfalse
;
5496 for (yypp
= &yyoptionList
->yynext
; *yypp
!= YY_NULLPTR
; )
5498 yySemanticOption
* yyp
= *yypp
;
5500 if (yyidenticalOptions (yybest
, yyp
))
5502 yymergeOptionSets (yybest
, yyp
);
5503 *yypp
= yyp
->yynext
;
5507 switch (yypreference (yybest
, yyp
))
5510 return yyreportAmbiguity (yybest
, yyp
, P
, tokens
, index
);
5522 /* This cannot happen so it is not worth a YYASSERT (yyfalse),
5523 but some compilers complain if the default case is
5527 yypp
= &yyp
->yynext
;
5533 yySemanticOption
* yyp
;
5534 int yyprec
= yydprec
[yybest
->yyrule
];
5535 yyflag
= yyresolveAction (yybest
, yystackp
, &yysval
, P
, tokens
, index
);
5537 for (yyp
= yybest
->yynext
; yyp
!= YY_NULLPTR
; yyp
= yyp
->yynext
)
5539 if (yyprec
== yydprec
[yyp
->yyrule
])
5541 YYSTYPE yysval_other
;
5542 yyflag
= yyresolveAction (yyp
, yystackp
, &yysval_other
, P
, tokens
, index
);
5545 yydestruct ("Cleanup: discarding incompletely merged value for",
5546 yystos
[yys
->yylrState
],
5547 &yysval
, P
, tokens
, index
);
5550 yyuserMerge (yymerger
[yyp
->yyrule
], &yysval
, &yysval_other
);
5555 yyflag
= yyresolveAction (yybest
, yystackp
, &yysval
, P
, tokens
, index
);
5559 yys
->yyresolved
= yytrue
;
5560 yys
->yysemantics
.yysval
= yysval
;
5563 yys
->yysemantics
.yyfirstVal
= YY_NULLPTR
;
5568 yyresolveStack (yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5570 if (yystackp
->yysplitPoint
!= YY_NULLPTR
)
5575 for (yyn
= 0, yys
= yystackp
->yytops
.yystates
[0];
5576 yys
!= yystackp
->yysplitPoint
;
5577 yys
= yys
->yypred
, yyn
+= 1)
5579 YYCHK (yyresolveStates (yystackp
->yytops
.yystates
[0], yyn
, yystackp
5580 , P
, tokens
, index
));
5586 yycompressStack (yyGLRStack
* yystackp
)
5588 yyGLRState
* yyp
, *yyq
, *yyr
;
5590 if (yystackp
->yytops
.yysize
!= 1 || yystackp
->yysplitPoint
== YY_NULLPTR
)
5593 for (yyp
= yystackp
->yytops
.yystates
[0], yyq
= yyp
->yypred
, yyr
= YY_NULLPTR
;
5594 yyp
!= yystackp
->yysplitPoint
;
5595 yyr
= yyp
, yyp
= yyq
, yyq
= yyp
->yypred
)
5598 yystackp
->yyspaceLeft
+= yystackp
->yynextFree
- yystackp
->yyitems
;
5599 yystackp
->yynextFree
= ((yyGLRStackItem
*) yystackp
->yysplitPoint
) + 1;
5600 yystackp
->yyspaceLeft
-= yystackp
->yynextFree
- yystackp
->yyitems
;
5601 yystackp
->yysplitPoint
= YY_NULLPTR
;
5602 yystackp
->yylastDeleted
= YY_NULLPTR
;
5604 while (yyr
!= YY_NULLPTR
)
5606 yystackp
->yynextFree
->yystate
= *yyr
;
5608 yystackp
->yynextFree
->yystate
.yypred
= &yystackp
->yynextFree
[-1].yystate
;
5609 yystackp
->yytops
.yystates
[0] = &yystackp
->yynextFree
->yystate
;
5610 yystackp
->yynextFree
+= 1;
5611 yystackp
->yyspaceLeft
-= 1;
5616 yyprocessOneStack (yyGLRStack
* yystackp
, size_t yyk
,
5617 size_t yyposn
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5619 while (yystackp
->yytops
.yystates
[yyk
] != YY_NULLPTR
)
5621 yyStateNum yystate
= yystackp
->yytops
.yystates
[yyk
]->yylrState
;
5622 YYDPRINTF ((stderr
, "Stack %lu Entering state %d\n",
5623 (unsigned long int) yyk
, yystate
));
5625 YYASSERT (yystate
!= YYFINAL
);
5627 if (yyisDefaultedState (yystate
))
5630 yyRuleNum yyrule
= yydefaultAction (yystate
);
5633 YYDPRINTF ((stderr
, "Stack %lu dies.\n",
5634 (unsigned long int) yyk
));
5635 yymarkStackDeleted (yystackp
, yyk
);
5638 yyflag
= yyglrReduce (yystackp
, yyk
, yyrule
, yyimmediate
[yyrule
], P
, tokens
, index
);
5639 if (yyflag
== yyerr
)
5643 "(predicate failure or explicit user error).\n",
5644 (unsigned long int) yyk
));
5645 yymarkStackDeleted (yystackp
, yyk
);
5655 const short int* yyconflicts
;
5657 yystackp
->yytops
.yylookaheadNeeds
[yyk
] = yytrue
;
5658 if (yychar
== YYEMPTY
)
5660 YYDPRINTF ((stderr
, "Reading a token: "));
5661 yychar
= yylex (&yylval
, P
, tokens
, index
);
5664 if (yychar
<= YYEOF
)
5666 yychar
= yytoken
= YYEOF
;
5667 YYDPRINTF ((stderr
, "Now at end of input.\n"));
5671 yytoken
= YYTRANSLATE (yychar
);
5672 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
5675 yygetLRActions (yystate
, yytoken
, &yyaction
, &yyconflicts
);
5677 while (*yyconflicts
!= 0)
5680 size_t yynewStack
= yysplitStack (yystackp
, yyk
);
5681 YYDPRINTF ((stderr
, "Splitting off stack %lu from %lu.\n",
5682 (unsigned long int) yynewStack
,
5683 (unsigned long int) yyk
));
5684 yyflag
= yyglrReduce (yystackp
, yynewStack
,
5686 yyimmediate
[*yyconflicts
], P
, tokens
, index
);
5688 YYCHK (yyprocessOneStack (yystackp
, yynewStack
,
5689 yyposn
, P
, tokens
, index
));
5690 else if (yyflag
== yyerr
)
5692 YYDPRINTF ((stderr
, "Stack %lu dies.\n",
5693 (unsigned long int) yynewStack
));
5694 yymarkStackDeleted (yystackp
, yynewStack
);
5701 if (yyisShiftAction (yyaction
))
5703 else if (yyisErrorAction (yyaction
))
5705 YYDPRINTF ((stderr
, "Stack %lu dies.\n",
5706 (unsigned long int) yyk
));
5707 yymarkStackDeleted (yystackp
, yyk
);
5712 YYRESULTTAG yyflag
= yyglrReduce (yystackp
, yyk
, -yyaction
,
5713 yyimmediate
[-yyaction
], P
, tokens
, index
);
5714 if (yyflag
== yyerr
)
5718 "(predicate failure or explicit user error).\n",
5719 (unsigned long int) yyk
));
5720 yymarkStackDeleted (yystackp
, yyk
);
5723 else if (yyflag
!= yyok
)
5732 yyreportSyntaxError (yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5734 if (yystackp
->yyerrState
!= 0)
5736 #if ! YYERROR_VERBOSE
5737 yyerror (P
, tokens
, index
, YY_("syntax error"));
5740 yySymbol yytoken
= yychar
== YYEMPTY
? YYEMPTY
: YYTRANSLATE (yychar
);
5741 size_t yysize0
= yytnamerr (YY_NULLPTR
, yytokenName (yytoken
));
5742 size_t yysize
= yysize0
;
5743 yybool yysize_overflow
= yyfalse
;
5744 char* yymsg
= YY_NULLPTR
;
5745 enum { YYERROR_VERBOSE_ARGS_MAXIMUM
= 5 };
5746 /* Internationalized format string. */
5747 const char *yyformat
= YY_NULLPTR
;
5748 /* Arguments of yyformat. */
5749 char const *yyarg
[YYERROR_VERBOSE_ARGS_MAXIMUM
];
5750 /* Number of reported tokens (one for the "unexpected", one per
5754 /* There are many possibilities here to consider:
5755 - If this state is a consistent state with a default action, then
5756 the only way this function was invoked is if the default action
5757 is an error action. In that case, don't check for expected
5758 tokens because there are none.
5759 - The only way there can be no lookahead present (in yychar) is if
5760 this state is a consistent state with a default action. Thus,
5761 detecting the absence of a lookahead is sufficient to determine
5762 that there is no unexpected or expected token to report. In that
5763 case, just report a simple "syntax error".
5764 - Don't assume there isn't a lookahead just because this state is a
5765 consistent state with a default action. There might have been a
5766 previous inconsistent state, consistent state with a non-default
5767 action, or user semantic action that manipulated yychar.
5768 - Of course, the expected token list depends on states to have
5769 correct lookahead information, and it depends on the parser not
5770 to perform extra reductions after fetching a lookahead from the
5771 scanner and before detecting a syntax error. Thus, state merging
5772 (from LALR or IELR) and default reductions corrupt the expected
5773 token list. However, the list is correct for canonical LR with
5774 one exception: it will still contain any token that will not be
5775 accepted due to an error action in a later state.
5777 if (yytoken
!= YYEMPTY
)
5779 int yyn
= yypact
[yystackp
->yytops
.yystates
[0]->yylrState
];
5780 yyarg
[yycount
++] = yytokenName (yytoken
);
5781 if (!yypact_value_is_default (yyn
))
5783 /* Start YYX at -YYN if negative to avoid negative indexes in
5784 YYCHECK. In other words, skip the first -YYN actions for this
5785 state because they are default actions. */
5786 int yyxbegin
= yyn
< 0 ? -yyn
: 0;
5787 /* Stay within bounds of both yycheck and yytname. */
5788 int yychecklim
= YYLAST
- yyn
+ 1;
5789 int yyxend
= yychecklim
< YYNTOKENS
? yychecklim
: YYNTOKENS
;
5791 for (yyx
= yyxbegin
; yyx
< yyxend
; ++yyx
)
5792 if (yycheck
[yyx
+ yyn
] == yyx
&& yyx
!= YYTERROR
5793 && !yytable_value_is_error (yytable
[yyx
+ yyn
]))
5795 if (yycount
== YYERROR_VERBOSE_ARGS_MAXIMUM
)
5801 yyarg
[yycount
++] = yytokenName (yyx
);
5803 size_t yysz
= yysize
+ yytnamerr (YY_NULLPTR
, yytokenName (yyx
));
5804 yysize_overflow
|= yysz
< yysize
;
5813 #define YYCASE_(N, S) \
5817 YYCASE_(0, YY_("syntax error"));
5818 YYCASE_(1, YY_("syntax error, unexpected %s"));
5819 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
5820 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
5821 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
5822 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
5827 size_t yysz
= yysize
+ strlen (yyformat
);
5828 yysize_overflow
|= yysz
< yysize
;
5832 if (!yysize_overflow
)
5833 yymsg
= (char *) YYMALLOC (yysize
);
5839 while ((*yyp
= *yyformat
))
5841 if (*yyp
== '%' && yyformat
[1] == 's' && yyi
< yycount
)
5843 yyp
+= yytnamerr (yyp
, yyarg
[yyi
++]);
5852 yyerror (P
, tokens
, index
, yymsg
);
5857 yyerror (P
, tokens
, index
, YY_("syntax error"));
5858 yyMemoryExhausted (yystackp
);
5861 #endif /* YYERROR_VERBOSE */
5865 /* Recover from a syntax error on *YYSTACKP, assuming that *YYSTACKP->YYTOKENP,
5866 yylval, and yylloc are the syntactic category, semantic value, and location
5867 of the lookahead. */
5869 yyrecoverSyntaxError (yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5874 if (yystackp
->yyerrState
== 3)
5875 /* We just shifted the error token and (perhaps) took some
5876 reductions. Skip tokens until we can proceed. */
5880 if (yychar
== YYEOF
)
5881 yyFail (yystackp
, P
, tokens
, index
, YY_NULLPTR
);
5882 if (yychar
!= YYEMPTY
)
5884 yytoken
= YYTRANSLATE (yychar
);
5885 yydestruct ("Error: discarding",
5886 yytoken
, &yylval
, P
, tokens
, index
);
5888 YYDPRINTF ((stderr
, "Reading a token: "));
5889 yychar
= yylex (&yylval
, P
, tokens
, index
);
5890 if (yychar
<= YYEOF
)
5892 yychar
= yytoken
= YYEOF
;
5893 YYDPRINTF ((stderr
, "Now at end of input.\n"));
5897 yytoken
= YYTRANSLATE (yychar
);
5898 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
5900 yyj
= yypact
[yystackp
->yytops
.yystates
[0]->yylrState
];
5901 if (yypact_value_is_default (yyj
))
5904 if (yyj
< 0 || YYLAST
< yyj
|| yycheck
[yyj
] != yytoken
)
5906 if (yydefact
[yystackp
->yytops
.yystates
[0]->yylrState
] != 0)
5909 else if (! yytable_value_is_error (yytable
[yyj
]))
5913 /* Reduce to one stack. */
5914 for (yyk
= 0; yyk
< yystackp
->yytops
.yysize
; yyk
+= 1)
5915 if (yystackp
->yytops
.yystates
[yyk
] != YY_NULLPTR
)
5917 if (yyk
>= yystackp
->yytops
.yysize
)
5918 yyFail (yystackp
, P
, tokens
, index
, YY_NULLPTR
);
5919 for (yyk
+= 1; yyk
< yystackp
->yytops
.yysize
; yyk
+= 1)
5920 yymarkStackDeleted (yystackp
, yyk
);
5921 yyremoveDeletes (yystackp
);
5922 yycompressStack (yystackp
);
5924 /* Now pop stack until we find a state that shifts the error token. */
5925 yystackp
->yyerrState
= 3;
5926 while (yystackp
->yytops
.yystates
[0] != YY_NULLPTR
)
5928 yyGLRState
*yys
= yystackp
->yytops
.yystates
[0];
5929 yyj
= yypact
[yys
->yylrState
];
5930 if (! yypact_value_is_default (yyj
))
5933 if (0 <= yyj
&& yyj
<= YYLAST
&& yycheck
[yyj
] == YYTERROR
5934 && yyisShiftAction (yytable
[yyj
]))
5936 /* Shift the error token. */
5937 YY_SYMBOL_PRINT ("Shifting", yystos
[yytable
[yyj
]],
5938 &yylval
, &yyerrloc
);
5939 yyglrShift (yystackp
, 0, yytable
[yyj
],
5940 yys
->yyposn
, &yylval
);
5941 yys
= yystackp
->yytops
.yystates
[0];
5945 if (yys
->yypred
!= YY_NULLPTR
)
5946 yydestroyGLRState ("Error: popping", yys
, P
, tokens
, index
);
5947 yystackp
->yytops
.yystates
[0] = yys
->yypred
;
5948 yystackp
->yynextFree
-= 1;
5949 yystackp
->yyspaceLeft
+= 1;
5951 if (yystackp
->yytops
.yystates
[0] == YY_NULLPTR
)
5952 yyFail (yystackp
, P
, tokens
, index
, YY_NULLPTR
);
5955 #define YYCHK1(YYE) \
5965 goto yyuser_error; \
5976 yyparse (struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5980 yyGLRStack
* const yystackp
= &yystack
;
5983 YYDPRINTF ((stderr
, "Starting parse\n"));
5986 yylval
= yyval_default
;
5988 /* User initialization code. */
5989 #line 117 "src/parser_proc_grammar.y" /* glr.c:2270 */
5993 #line 5994 "src/parser_proc.c" /* glr.c:2270 */
5995 if (! yyinitGLRStack (yystackp
, YYINITDEPTH
))
5996 goto yyexhaustedlab
;
5997 switch (YYSETJMP (yystack
.yyexception_buffer
))
6000 case 1: goto yyabortlab
;
6001 case 2: goto yyexhaustedlab
;
6002 default: goto yybuglab
;
6004 yyglrShift (&yystack
, 0, 0, 0, &yylval
);
6009 /* For efficiency, we have two loops, the first of which is
6010 specialized to deterministic operation (single stack, no
6011 potential ambiguity). */
6017 const short int* yyconflicts
;
6019 yyStateNum yystate
= yystack
.yytops
.yystates
[0]->yylrState
;
6020 YYDPRINTF ((stderr
, "Entering state %d\n", yystate
));
6021 if (yystate
== YYFINAL
)
6023 if (yyisDefaultedState (yystate
))
6025 yyrule
= yydefaultAction (yystate
);
6029 yyreportSyntaxError (&yystack
, P
, tokens
, index
);
6032 YYCHK1 (yyglrReduce (&yystack
, 0, yyrule
, yytrue
, P
, tokens
, index
));
6037 if (yychar
== YYEMPTY
)
6039 YYDPRINTF ((stderr
, "Reading a token: "));
6040 yychar
= yylex (&yylval
, P
, tokens
, index
);
6043 if (yychar
<= YYEOF
)
6045 yychar
= yytoken
= YYEOF
;
6046 YYDPRINTF ((stderr
, "Now at end of input.\n"));
6050 yytoken
= YYTRANSLATE (yychar
);
6051 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
6054 yygetLRActions (yystate
, yytoken
, &yyaction
, &yyconflicts
);
6055 if (*yyconflicts
!= 0)
6057 if (yyisShiftAction (yyaction
))
6059 YY_SYMBOL_PRINT ("Shifting", yytoken
, &yylval
, &yylloc
);
6062 yyglrShift (&yystack
, 0, yyaction
, yyposn
, &yylval
);
6063 if (0 < yystack
.yyerrState
)
6064 yystack
.yyerrState
-= 1;
6066 else if (yyisErrorAction (yyaction
))
6069 yyreportSyntaxError (&yystack
, P
, tokens
, index
);
6073 YYCHK1 (yyglrReduce (&yystack
, 0, -yyaction
, yytrue
, P
, tokens
, index
));
6079 yySymbol yytoken_to_shift
;
6082 for (yys
= 0; yys
< yystack
.yytops
.yysize
; yys
+= 1)
6083 yystackp
->yytops
.yylookaheadNeeds
[yys
] = yychar
!= YYEMPTY
;
6085 /* yyprocessOneStack returns one of three things:
6087 - An error flag. If the caller is yyprocessOneStack, it
6088 immediately returns as well. When the caller is finally
6089 yyparse, it jumps to an error label via YYCHK1.
6091 - yyok, but yyprocessOneStack has invoked yymarkStackDeleted
6092 (&yystack, yys), which sets the top state of yys to NULL. Thus,
6093 yyparse's following invocation of yyremoveDeletes will remove
6096 - yyok, when ready to shift a token.
6098 Except in the first case, yyparse will invoke yyremoveDeletes and
6099 then shift the next token onto all remaining stacks. This
6100 synchronization of the shift (that is, after all preceding
6101 reductions on all stacks) helps prevent double destructor calls
6102 on yylval in the event of memory exhaustion. */
6104 for (yys
= 0; yys
< yystack
.yytops
.yysize
; yys
+= 1)
6105 YYCHK1 (yyprocessOneStack (&yystack
, yys
, yyposn
, P
, tokens
, index
));
6106 yyremoveDeletes (&yystack
);
6107 if (yystack
.yytops
.yysize
== 0)
6109 yyundeleteLastStack (&yystack
);
6110 if (yystack
.yytops
.yysize
== 0)
6111 yyFail (&yystack
, P
, tokens
, index
, YY_("syntax error"));
6112 YYCHK1 (yyresolveStack (&yystack
, P
, tokens
, index
));
6113 YYDPRINTF ((stderr
, "Returning to deterministic operation.\n"));
6115 yyreportSyntaxError (&yystack
, P
, tokens
, index
);
6119 /* If any yyglrShift call fails, it will fail after shifting. Thus,
6120 a copy of yylval will already be on stack 0 in the event of a
6121 failure in the following loop. Thus, yychar is set to YYEMPTY
6122 before the loop to make sure the user destructor for yylval isn't
6124 yytoken_to_shift
= YYTRANSLATE (yychar
);
6127 for (yys
= 0; yys
< yystack
.yytops
.yysize
; yys
+= 1)
6130 const short int* yyconflicts
;
6131 yyStateNum yystate
= yystack
.yytops
.yystates
[yys
]->yylrState
;
6132 yygetLRActions (yystate
, yytoken_to_shift
, &yyaction
,
6134 /* Note that yyconflicts were handled by yyprocessOneStack. */
6135 YYDPRINTF ((stderr
, "On stack %lu, ", (unsigned long int) yys
));
6136 YY_SYMBOL_PRINT ("shifting", yytoken_to_shift
, &yylval
, &yylloc
);
6137 yyglrShift (&yystack
, yys
, yyaction
, yyposn
,
6139 YYDPRINTF ((stderr
, "Stack %lu now in state #%d\n",
6140 (unsigned long int) yys
,
6141 yystack
.yytops
.yystates
[yys
]->yylrState
));
6144 if (yystack
.yytops
.yysize
== 1)
6146 YYCHK1 (yyresolveStack (&yystack
, P
, tokens
, index
));
6147 YYDPRINTF ((stderr
, "Returning to deterministic operation.\n"));
6148 yycompressStack (&yystack
);
6154 yyrecoverSyntaxError (&yystack
, P
, tokens
, index
);
6155 yyposn
= yystack
.yytops
.yystates
[0]->yyposn
;
6171 yyerror (P
, tokens
, index
, YY_("memory exhausted"));
6176 if (yychar
!= YYEMPTY
)
6177 yydestruct ("Cleanup: discarding lookahead",
6178 YYTRANSLATE (yychar
), &yylval
, P
, tokens
, index
);
6180 /* If the stack is well-formed, pop the stack until it is empty,
6181 destroying its entries as we go. But free the stack regardless
6182 of whether it is well-formed. */
6183 if (yystack
.yyitems
)
6185 yyGLRState
** yystates
= yystack
.yytops
.yystates
;
6188 size_t yysize
= yystack
.yytops
.yysize
;
6190 for (yyk
= 0; yyk
< yysize
; yyk
+= 1)
6193 while (yystates
[yyk
])
6195 yyGLRState
*yys
= yystates
[yyk
];
6196 if (yys
->yypred
!= YY_NULLPTR
)
6197 yydestroyGLRState ("Cleanup: popping", yys
, P
, tokens
, index
);
6198 yystates
[yyk
] = yys
->yypred
;
6199 yystack
.yynextFree
-= 1;
6200 yystack
.yyspaceLeft
+= 1;
6205 yyfreeGLRStack (&yystack
);
6211 /* DEBUGGING ONLY */
6214 yy_yypstack (yyGLRState
* yys
)
6218 yy_yypstack (yys
->yypred
);
6219 YYFPRINTF (stderr
, " -> ");
6221 YYFPRINTF (stderr
, "%d@%lu", yys
->yylrState
,
6222 (unsigned long int) yys
->yyposn
);
6226 yypstates (yyGLRState
* yyst
)
6228 if (yyst
== YY_NULLPTR
)
6229 YYFPRINTF (stderr
, "<null>");
6232 YYFPRINTF (stderr
, "\n");
6236 yypstack (yyGLRStack
* yystackp
, size_t yyk
)
6238 yypstates (yystackp
->yytops
.yystates
[yyk
]);
6241 #define YYINDEX(YYX) \
6242 ((YYX) == YY_NULLPTR ? -1 : (yyGLRStackItem*) (YYX) - yystackp->yyitems)
6246 yypdumpstack (yyGLRStack
* yystackp
)
6248 yyGLRStackItem
* yyp
;
6250 for (yyp
= yystackp
->yyitems
; yyp
< yystackp
->yynextFree
; yyp
+= 1)
6252 YYFPRINTF (stderr
, "%3lu. ",
6253 (unsigned long int) (yyp
- yystackp
->yyitems
));
6254 if (*(yybool
*) yyp
)
6256 YYASSERT (yyp
->yystate
.yyisState
);
6257 YYASSERT (yyp
->yyoption
.yyisState
);
6258 YYFPRINTF (stderr
, "Res: %d, LR State: %d, posn: %lu, pred: %ld",
6259 yyp
->yystate
.yyresolved
, yyp
->yystate
.yylrState
,
6260 (unsigned long int) yyp
->yystate
.yyposn
,
6261 (long int) YYINDEX (yyp
->yystate
.yypred
));
6262 if (! yyp
->yystate
.yyresolved
)
6263 YYFPRINTF (stderr
, ", firstVal: %ld",
6264 (long int) YYINDEX (yyp
->yystate
6265 .yysemantics
.yyfirstVal
));
6269 YYASSERT (!yyp
->yystate
.yyisState
);
6270 YYASSERT (!yyp
->yyoption
.yyisState
);
6271 YYFPRINTF (stderr
, "Option. rule: %d, state: %ld, next: %ld",
6272 yyp
->yyoption
.yyrule
- 1,
6273 (long int) YYINDEX (yyp
->yyoption
.yystate
),
6274 (long int) YYINDEX (yyp
->yyoption
.yynext
));
6276 YYFPRINTF (stderr
, "\n");
6278 YYFPRINTF (stderr
, "Tops:");
6279 for (yyi
= 0; yyi
< yystackp
->yytops
.yysize
; yyi
+= 1)
6280 YYFPRINTF (stderr
, "%lu: %ld; ", (unsigned long int) yyi
,
6281 (long int) YYINDEX (yystackp
->yytops
.yystates
[yyi
]));
6282 YYFPRINTF (stderr
, "\n");
6290 /* Substitute the variable and function names. */
6291 #define yyparse psi_parser_proc_parse
6292 #define yylex psi_parser_proc_lex
6293 #define yyerror psi_parser_proc_error
6294 #define yylval psi_parser_proc_lval
6295 #define yychar psi_parser_proc_char
6296 #define yydebug psi_parser_proc_debug
6297 #define yynerrs psi_parser_proc_nerrs
6299 #line 1673 "src/parser_proc_grammar.y" /* glr.c:2584 */
6304 static int psi_parser_proc_lex(YYSTYPE
*lvalp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6306 struct psi_token
*token
;
6308 if (psi_plist_get(tokens
, (*index
)++, &token
)) {
6309 if (P
->flags
& PSI_DEBUG
) {
6310 psi_token_dump(2, token
);
6313 *((struct psi_token
**)lvalp
) = token
;
6317 PSI_DEBUG_PRINT(P
, "EOF(%d)\n", PSI_T_EOF
);
6323 static void psi_parser_proc_error(struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
, const char *msg
)
6325 struct psi_token
*T
= NULL
;
6334 psi_plist_get(tokens
, last
, &T
);
6336 P
->error(PSI_DATA(P
), T
, PSI_WARNING
, "PSI %s at col %u", msg
, T
->col
);
6338 P
->error(PSI_DATA(P
), NULL
, PSI_WARNING
, "PSI %s", msg
);