1 /* A Bison parser, made by GNU Bison 3.0.4. */
3 /* Skeleton implementation for Bison GLR parsers in C
5 Copyright (C) 2002-2015 Free Software Foundation, Inc.
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
20 /* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
33 /* C GLR parser skeleton written by Paul Hilfinger. */
35 /* Identify Bison output. */
39 #define YYBISON_VERSION "3.0.4"
42 #define YYSKELETON_NAME "glr.c"
48 /* "%code top" blocks. */
49 #line 1 "src/parser_proc_grammar.y" /* glr.c:222 */
51 #include "php_psi_stdinc.h"
53 #line 54 "src/parser_proc.c" /* glr.c:222 */
56 /* Substitute the variable and function names. */
57 #define yyparse psi_parser_proc_parse
58 #define yylex psi_parser_proc_lex
59 #define yyerror psi_parser_proc_error
60 #define yydebug psi_parser_proc_debug
63 /* First part of user declarations. */
65 #line 66 "src/parser_proc.c" /* glr.c:240 */
68 # if defined __cplusplus && 201103L <= __cplusplus
69 # define YY_NULLPTR nullptr
75 #include "parser_proc.h"
77 /* Enabling verbose error messages. */
78 #ifdef YYERROR_VERBOSE
79 # undef YYERROR_VERBOSE
80 # define YYERROR_VERBOSE 1
82 # define YYERROR_VERBOSE 1
85 /* Default (constant) value used for initialization for null
86 right-hand sides. Unlike the standard yacc.c template, here we set
87 the default value of $$ to a zeroed-out value. Since the default
88 value is undefined, this behavior is technically correct. */
89 static YYSTYPE yyval_default
;
91 /* Copy the second part of user declarations. */
93 #line 94 "src/parser_proc.c" /* glr.c:263 */
94 /* Unqualified %code blocks. */
95 #line 5 "src/parser_proc_grammar.y" /* glr.c:264 */
104 static int psi_parser_proc_lex(YYSTYPE
*u
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
);
105 static void psi_parser_proc_error(struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
, const char *msg
);
107 static inline void psi_parser_proc_add_struct(struct psi_parser
*P
, struct psi_decl_struct
*strct
)
111 P
->structs
= psi_plist_init((psi_plist_dtor
) psi_decl_struct_free
);
113 P
->structs
= psi_plist_add(P
->structs
, &strct
);
115 static inline void psi_parser_proc_add_union(struct psi_parser
*P
, struct psi_decl_union
*u
)
119 P
->unions
= psi_plist_init((psi_plist_dtor
) psi_decl_union_free
);
121 P
->unions
= psi_plist_add(P
->unions
, &u
);
123 static inline void psi_parser_proc_add_enum(struct psi_parser
*P
, struct psi_decl_enum
*e
)
127 P
->enums
= psi_plist_init((psi_plist_dtor
) psi_decl_enum_free
);
129 P
->enums
= psi_plist_add(P
->enums
, &e
);
131 static inline void psi_parser_proc_add_from_typedef(struct psi_parser
*P
, struct psi_decl_arg
*def
)
133 if (def
->type
->real
.def
) {
134 switch (def
->type
->type
) {
136 psi_parser_proc_add_struct(P
, def
->type
->real
.strct
);
139 psi_parser_proc_add_union(P
, def
->type
->real
.unn
);
142 psi_parser_proc_add_enum(P
, def
->type
->real
.enm
);
149 static inline void psi_parser_proc_add_typedef(struct psi_parser
*P
, struct psi_decl_arg
*def
)
153 P
->types
= psi_plist_init((psi_plist_dtor
) psi_decl_arg_free
);
155 P
->types
= psi_plist_add(P
->types
, &def
);
157 psi_parser_proc_add_from_typedef(P
, def
);
159 static inline void psi_parser_proc_add_const(struct psi_parser
*P
, struct psi_const
*cnst
) {
162 P
->consts
= psi_plist_init((psi_plist_dtor
) psi_const_free
);
164 P
->consts
= psi_plist_add(P
->consts
, &cnst
);
167 static inline void psi_parser_proc_add_decl(struct psi_parser
*P
, struct psi_decl
*decl
) {
170 P
->decls
= psi_plist_init((psi_plist_dtor
) psi_decl_free
);
172 P
->decls
= psi_plist_add(P
->decls
, &decl
);
174 static inline void psi_parser_proc_add_impl(struct psi_parser
*P
, struct psi_impl
*impl
) {
177 P
->impls
= psi_plist_init((psi_plist_dtor
) psi_impl_free
);
179 P
->impls
= psi_plist_add(P
->impls
, &impl
);
184 #line 185 "src/parser_proc.c" /* glr.c:264 */
191 # if defined YYENABLE_NLS && YYENABLE_NLS
193 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
194 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
198 # define YY_(Msgid) Msgid
206 # define YYMALLOC malloc
209 # define YYREALLOC realloc
212 #define YYSIZEMAX ((size_t) -1)
217 typedef unsigned char yybool
;
224 # define YYJMP_BUF jmp_buf
225 # define YYSETJMP(Env) setjmp (Env)
227 # define YYLONGJMP(Env, Val) (longjmp (Env, Val), YYASSERT (0))
231 # if (defined __GNUC__ \
232 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
233 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
234 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
236 # define YY_ATTRIBUTE(Spec) /* empty */
240 #ifndef YY_ATTRIBUTE_PURE
241 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
244 #ifndef YY_ATTRIBUTE_UNUSED
245 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
248 #if !defined _Noreturn \
249 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
250 # if defined _MSC_VER && 1200 <= _MSC_VER
251 # define _Noreturn __declspec (noreturn)
253 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
257 /* Suppress unused-variable warnings by "using" E. */
258 #if ! defined lint || defined __GNUC__
259 # define YYUSE(E) ((void) (E))
261 # define YYUSE(E) /* empty */
264 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
265 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
266 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
267 _Pragma ("GCC diagnostic push") \
268 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
269 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
270 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
271 _Pragma ("GCC diagnostic pop")
273 # define YY_INITIAL_VALUE(Value) Value
275 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
276 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
277 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
279 #ifndef YY_INITIAL_VALUE
280 # define YY_INITIAL_VALUE(Value) /* Nothing. */
285 # define YYASSERT(Condition) ((void) ((Condition) || (abort (), 0)))
288 /* YYFINAL -- State number of the termination state. */
290 /* YYLAST -- Last index in YYTABLE. */
293 /* YYNTOKENS -- Number of terminals. */
294 #define YYNTOKENS 123
295 /* YYNNTS -- Number of nonterminals. */
297 /* YYNRULES -- Number of rules. */
299 /* YYNRULES -- Number of states. */
300 #define YYNSTATES 629
301 /* YYMAXRHS -- Maximum number of symbols on right-hand side of rule. */
303 /* YYMAXLEFT -- Maximum number of symbols to the left of a handle
304 accessed by $0, $-1, etc., in any rule. */
307 /* YYTRANSLATE(X) -- Bison symbol number corresponding to X. */
309 #define YYMAXUTOK 377
311 #define YYTRANSLATE(YYX) \
312 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
314 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
315 static const unsigned char yytranslate
[] =
317 0, 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, 2, 2, 2, 2,
342 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
343 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
344 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
345 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
346 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
347 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
348 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
349 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
350 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
351 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
352 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
353 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
354 115, 116, 117, 118, 119, 120, 121, 122
358 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
359 static const unsigned short int yyrline
[] =
361 0, 386, 386, 386, 386, 386, 386, 386, 386, 386,
362 386, 386, 386, 386, 386, 386, 386, 386, 386, 386,
363 387, 387, 387, 387, 388, 388, 388, 388, 388, 388,
364 388, 388, 388, 388, 388, 388, 388, 388, 389, 389,
365 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
366 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
367 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
368 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
369 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
370 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
371 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
372 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
373 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
374 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
375 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
376 389, 389, 393, 394, 397, 398, 401, 402, 403, 404,
377 410, 418, 421, 424, 427, 430, 433, 436, 442, 448,
378 454, 477, 481, 485, 490, 495, 499, 506, 507, 511,
379 512, 513, 517, 518, 522, 523, 527, 528, 529, 533,
380 534, 538, 543, 548, 556, 559, 563, 568, 576, 579,
381 583, 587, 594, 598, 602, 606, 616, 626, 631, 636,
382 642, 651, 654, 658, 662, 668, 675, 681, 682, 683,
383 684, 688, 691, 698, 699, 700, 701, 702, 706, 712,
384 713, 721, 731, 739, 750, 753, 757, 761, 765, 770,
385 775, 783, 784, 785, 788, 794, 797, 800, 806, 807,
386 808, 809, 810, 811, 812, 813, 817, 818, 822, 825,
387 828, 834, 837, 840, 848, 860, 863, 866, 873, 876,
388 886, 889, 892, 895, 896, 900, 903, 906, 917, 923,
389 930, 938, 945, 956, 957, 961, 967, 977, 987, 1000,
390 1001, 1013, 1016, 1019, 1022, 1028, 1031, 1041, 1054, 1059,
391 1067, 1077, 1087, 1090, 1094, 1100, 1103, 1109, 1117, 1124,
392 1127, 1133, 1138, 1146, 1150, 1154, 1158, 1162, 1169, 1173,
393 1177, 1181, 1188, 1201, 1214, 1227, 1230, 1237, 1240, 1246,
394 1250, 1257, 1260, 1266, 1269, 1275, 1278, 1290, 1293, 1300,
395 1305, 1310, 1320, 1323, 1329, 1332, 1338, 1345, 1352, 1353,
396 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1364, 1367, 1373,
397 1376, 1379, 1382, 1385, 1391, 1395, 1403, 1404, 1408, 1415,
398 1418, 1421, 1424, 1427, 1433, 1437, 1445, 1452, 1460, 1468,
399 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1481,
400 1484, 1490, 1493, 1499, 1500, 1504, 1507, 1513, 1516, 1522,
401 1529, 1536, 1539, 1542, 1549, 1554, 1562, 1563, 1564, 1565,
402 1566, 1567, 1568, 1569, 1573, 1576, 1582, 1585, 1591, 1598,
403 1599, 1603, 1610, 1613, 1619, 1627, 1630, 1636, 1639, 1645
407 #if YYDEBUG || YYERROR_VERBOSE || 1
408 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
409 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
410 static const char *const yytname
[] =
412 "\"end of file\"", "error", "$undefined", "BOOL", "CHAR", "SHORT",
413 "INT", "SIGNED", "UNSIGNED", "LONG", "FLOAT", "DOUBLE", "STRING",
414 "MIXED", "ARRAY", "OBJECT", "CALLABLE", "VOID", "ZVAL", "INT8", "UINT8",
415 "INT16", "UINT16", "INT32", "UINT32", "INT64", "UINT64", "NULL", "TRUE",
416 "FALSE", "NAME", "NSNAME", "DOLLAR_NAME", "NUMBER", "QUOTED_STRING",
417 "QUOTED_CHAR", "\"end of line\"", "\";\"", "\"(\"", "\")\"", "\",\"",
418 "\":\"", "\"{\"", "\"}\"", "\"[\"", "\"]\"", "\"=\"", "\"#\"", "\"|\"",
419 "\"^\"", "\"&\"", "\"<<\"", "\">>\"", "\"+\"", "\"-\"", "\"*\"", "\"/\"",
420 "\"%\"", "\"<\"", "\">\"", "\">=\"", "\"<=\"", "\"||\"", "\"&&\"",
421 "\"==\"", "\"!=\"", "\"~\"", "\"!\"", "\".\"", "\"\\\\\"", "\"...\"",
422 "ERROR", "WARNING", "IF", "IFDEF", "IFNDEF", "ELSE", "ELIF", "ENDIF",
423 "DEFINE", "DEFINED", "UNDEF", "IMPORT", "INCLUDE", "INCLUDE_NEXT",
424 "TYPEDEF", "STRUCT", "UNION", "ENUM", "CONST", "LIB", "STATIC",
425 "CALLBACK", "FUNCTION", "LET", "SET", "TEMP", "FREE", "RETURN",
426 "PRE_ASSERT", "POST_ASSERT", "BOOLVAL", "INTVAL", "STRVAL", "PATHVAL",
427 "STRLEN", "FLOATVAL", "ARRVAL", "OBJVAL", "COUNT", "CALLOC", "TO_BOOL",
428 "TO_INT", "TO_STRING", "TO_FLOAT", "TO_ARRAY", "TO_OBJECT", "COMMENT",
429 "WHITESPACE", "NO_WHITESPACE", "CPP_HEADER", "BINARY", "UNARY",
430 "$accept", "binary_op_token", "unary_op_token", "name_token",
431 "any_noeol_token", "file", "blocks", "block", "lib", "cpp", "cpp_exp",
432 "cpp_message_token", "cpp_include_token", "cpp_header_token",
433 "cpp_no_arg_token", "cpp_name_arg_token", "cpp_exp_arg_token",
434 "cpp_macro_decl", "cpp_macro_sig", "cpp_macro_sig_args",
435 "cpp_macro_decl_tokens", "cpp_macro_decl_token_list", "cpp_macro_exp",
436 "cpp_macro_call_args", "cpp_macro_call_arg_list", "constant",
437 "constant_type", "constant_type_token", "impl_def_val",
438 "impl_def_val_token", "decl_typedef", "typedef", "const_decl_type",
439 "decl_type", "decl_type_complex", "decl_type_simple", "decl_real_type",
440 "decl_stdint_type", "int_signed", "int_width", "decl_int_type",
441 "int_signed_types", "signed_short_types", "signed_long_types",
442 "int_width_types", "decl_stmt", "decl", "decl_fn", "decl_functor",
443 "decl_func", "decl_args", "decl_arg", "decl_var", "decl_union",
444 "decl_struct", "decl_struct_args", "struct_args_block", "struct_args",
445 "struct_arg", "decl_enum", "decl_enum_items", "decl_enum_item",
446 "num_exp", "number", "enum_name", "union_name", "struct_name",
447 "optional_name", "decl_layout", "align_and_size", "array_size",
448 "indirection", "pointers", "impl", "impl_func", "impl_args", "impl_arg",
449 "impl_var", "impl_type", "impl_type_token", "impl_stmts", "impl_stmt",
450 "let_stmt", "let_exp", "let_exp_byref", "let_exp_assign", "let_calloc",
451 "let_callback", "let_func", "let_func_token", "let_func_exps",
452 "let_exps", "callback_rval", "callback_arg_list", "callback_args",
453 "return_stmt", "set_stmt", "set_exp", "set_func", "set_func_token",
454 "set_func_exps", "set_exps", "assert_stmt", "assert_stmt_token",
455 "free_stmt", "free_exps", "free_exp", "decl_vars", "reference", "byref", YY_NULLPTR
459 #define YYPACT_NINF -490
460 #define YYTABLE_NINF -428
462 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
464 static const short int yypact
[] =
466 925, -490, -490, -490, -490, -490, 54, -490, -490, 1321,
467 -490, -490, -490, -490, -490, -490, -490, -490, 1695, -490,
468 -490, 1423, 1722, 1473, 1473, 1473, 1568, 0, -50, -3,
469 -490, 45, 925, -490, -490, -490, -490, -490, 347, -490,
470 -490, -490, -490, -490, 82, 97, -490, -490, 19, 28,
471 -490, -490, -490, -490, -490, -490, 40, -490, 42, -490,
472 -490, -490, -490, -490, -490, 55, -490, -490, -490, -490,
473 -490, -490, -490, -490, -490, -490, -490, -490, 1332, -490,
474 1473, 1473, 1473, 1795, 31, -490, -490, -490, -490, -490,
475 -490, -490, -490, 885, -490, -490, -490, -490, 87, 697,
476 -12, -490, 1155, 1251, 1473, 1473, 88, -490, 89, 1473,
477 99, 99, 75, 75, 108, -490, -490, 122, 126, -490,
478 55, 128, -490, -490, 114, 118, -490, 134, -490, -490,
479 -490, 123, -490, 130, 1378, -490, 171, -490, 35, -490,
480 -490, 82, -490, -490, 1749, 1473, 384, 1473, 124, 55,
481 -490, -490, -490, -490, -490, 1749, 697, 579, -490, -490,
482 -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
483 -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
484 -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
485 -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
486 -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
487 -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
488 -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
489 -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
490 -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
491 -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
492 -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
493 -490, -490, -490, -490, -490, -490, 697, -490, -490, -490,
494 -490, -490, -490, -490, 1251, -490, -490, -490, -490, 1441,
495 1251, 140, 1964, 38, -490, 38, -490, -490, -490, 139,
496 146, 146, -2, -2, 1368, 136, -490, 384, 151, 157,
497 -490, 55, 123, -490, -490, -490, -490, -490, -490, 55,
498 1822, 347, 50, -490, 145, 14, -490, 347, 812, 347,
499 1473, 59, -490, -490, 120, -490, -490, -490, -490, -490,
500 337, -490, 153, 1473, 67, -490, 156, -490, -490, 1866,
501 1473, -490, -490, 1251, -490, -490, -490, -490, -490, -490,
502 -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
503 -490, -490, 1251, 158, 1722, 347, 347, -490, -490, -490,
504 -490, 55, -490, 3, 234, 36, 150, 1473, -490, 1378,
505 55, 1378, 123, 1595, 337, 1473, -490, 154, 162, -490,
506 166, -490, -490, -490, 1025, -490, -490, -490, -490, -490,
507 -490, 337, -490, 1964, -490, 176, 192, -490, 193, 198,
508 187, 196, 18, -490, -490, 200, -490, -490, 1839, -490,
509 199, 123, 1622, 1473, -490, 209, 1964, 210, 211, -490,
510 206, 212, 979, -490, -490, -490, 1473, -490, -490, -490,
511 -490, -490, 213, -490, -490, -490, -490, -490, -490, -490,
512 -490, -490, -490, -490, 216, 74, -490, -3, -490, -490,
513 219, 1378, -490, 55, 221, -490, 1964, -490, 1098, -490,
514 222, 1849, 223, 1893, -490, 337, 812, -490, 347, -490,
515 -3, 347, -490, 1473, -490, -490, -490, -490, 224, -490,
516 226, 227, -490, -490, 1251, 228, 225, 215, -490, -490,
517 232, -490, 505, 231, 505, 233, -490, 123, 235, -490,
518 104, -490, -490, -490, -490, -490, -490, -490, -490, 236,
519 240, 1964, -490, -490, -490, -490, 242, 1206, 337, -490,
520 -490, -490, 244, 347, -490, 79, -490, 123, 697, 1473,
521 1964, 252, 248, -490, -490, -490, 505, -490, -3, 3,
522 -490, -490, -490, -490, -490, 249, 337, -3, -490, -490,
523 131, 251, 255, -490, 347, -490, -490, -490, 254, 264,
524 -490, -6, -490, -3, 1946, 260, 262, -490, 263, -490,
525 -490, -490, -490, 265, 256, 266, 337, 1098, 268, -490,
526 812, 269, 270, 459, 1920, 154, -490, -490, -490, 271,
527 1206, -490, -490, 273, 272, 276, 278, -490, -490, 1098,
528 -490, -490, 505, 277, 812, -490, -490, -490, -490
531 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
532 Performed when YYTABLE does not specify something else to do. Zero
533 means the default is an error. */
534 static const unsigned short int yydefact
[] =
536 152, 261, 258, 262, 256, 257, 259, 245, 246, 0,
537 248, 249, 250, 251, 252, 253, 254, 255, 244, 157,
538 156, 0, 0, 0, 0, 325, 0, 0, 0, 427,
539 158, 0, 153, 154, 160, 159, 161, 163, 333, 235,
540 237, 236, 242, 243, 265, 275, 241, 162, 0, 0,
541 284, 283, 289, 165, 164, 166, 0, 167, 0, 260,
542 247, 37, 33, 31, 24, 333, 335, 35, 36, 32,
543 30, 28, 27, 25, 26, 34, 29, 290, 0, 244,
544 0, 0, 0, 0, 0, 177, 178, 189, 186, 187,
545 184, 190, 185, 0, 188, 179, 180, 181, 0, 198,
546 0, 172, 0, 0, 325, 325, 0, 230, 229, 0,
547 329, 329, 238, 239, 240, 322, 217, 262, 245, 220,
548 0, 0, 216, 234, 0, 0, 429, 0, 428, 1,
549 155, 331, 295, 0, 334, 266, 270, 268, 272, 263,
550 276, 265, 264, 278, 291, 0, 0, 0, 334, 333,
551 336, 297, 238, 239, 240, 291, 198, 198, 175, 169,
552 71, 38, 39, 40, 41, 42, 43, 44, 45, 46,
553 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
554 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
555 67, 68, 69, 70, 72, 73, 74, 75, 76, 77,
556 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
557 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
558 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
559 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
560 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
561 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
562 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
563 148, 149, 150, 151, 200, 170, 199, 182, 183, 171,
564 174, 173, 207, 208, 0, 22, 23, 20, 21, 0,
565 0, 209, 176, 238, 324, 239, 323, 228, 231, 0,
566 0, 0, 0, 0, 0, 0, 168, 0, 0, 0,
567 299, 333, 331, 271, 267, 273, 274, 269, 277, 292,
568 0, 0, 0, 293, 311, 0, 309, 0, 427, 0,
569 0, 0, 419, 420, 0, 357, 360, 359, 361, 362,
570 0, 363, 0, 0, 0, 193, 0, 192, 201, 0,
571 0, 205, 203, 211, 2, 3, 4, 5, 6, 7,
572 8, 9, 10, 11, 13, 12, 14, 15, 16, 17,
573 18, 19, 0, 0, 0, 0, 0, 302, 301, 303,
574 300, 333, 296, 221, 0, 0, 0, 0, 298, 0,
575 0, 0, 331, 0, 0, 0, 308, 0, 0, 413,
576 31, 319, 318, 320, 0, 411, 409, 408, 410, 407,
577 406, 0, 321, 402, 313, 0, 0, 401, 0, 0,
578 0, 0, 0, 422, 412, 0, 337, 358, 0, 288,
579 0, 331, 0, 194, 202, 0, 213, 0, 212, 204,
580 0, 327, 0, 305, 233, 232, 0, 223, 225, 226,
581 224, 227, 0, 222, 338, 350, 351, 352, 353, 349,
582 354, 355, 356, 348, 0, 0, 342, 427, 347, 332,
583 0, 0, 279, 0, 0, 294, 312, 310, 0, 364,
584 24, 0, 0, 0, 317, 0, 427, 400, 0, 346,
585 427, 0, 421, 0, 399, 418, 287, 281, 0, 196,
586 0, 195, 206, 210, 0, 0, 0, 0, 304, 306,
587 0, 215, 0, 0, 0, 344, 285, 331, 31, 369,
588 30, 387, 386, 384, 382, 383, 385, 381, 380, 34,
589 29, 373, 374, 370, 371, 372, 0, 0, 0, 315,
590 316, 403, 414, 0, 425, 0, 423, 331, 198, 0,
591 214, 0, 0, 307, 286, 339, 0, 343, 427, 221,
592 280, 393, 379, 388, 394, 0, 0, 427, 375, 314,
593 427, 0, 0, 424, 0, 282, 191, 197, 0, 0,
594 340, 0, 345, 427, 0, 389, 0, 416, 415, 404,
595 365, 426, 330, 0, 0, 0, 0, 0, 0, 405,
596 427, 0, 0, 395, 0, 321, 391, 368, 366, 390,
597 0, 378, 417, 0, 0, 0, 396, 397, 376, 0,
598 367, 328, 0, 0, 427, 392, 341, 377, 398
601 /* YYPGOTO[NTERM-NUM]. */
602 static const short int yypgoto
[] =
604 -490, -281, -97, -8, 43, -490, -490, 288, -490, -490,
605 -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
606 -149, -490, -272, -490, -490, -490, -490, -490, -249, -490,
607 -490, 299, -134, -21, -490, -490, -490, -490, 279, -490,
608 -490, 182, -490, -490, -490, -490, 27, 308, -490, -490,
609 172, -20, -38, -490, -490, 33, -171, -490, -103, 29,
610 -490, -54, -302, -490, -490, -490, -490, 37, -490, 34,
611 -293, -56, -5, -490, 315, -490, -170, -447, -489, -490,
612 39, -306, -490, -271, -454, 20, -490, -490, -490, -169,
613 -490, -490, -490, -490, -490, -490, -490, -472, 21, -490,
614 -490, -490, -490, -490, -490, -490, -140, -490, -26, -465
617 /* YYDEFGOTO[NTERM-NUM]. */
618 static const short int yydefgoto
[] =
620 -1, 485, 411, 131, 274, 31, 32, 33, 34, 35,
621 98, 99, 100, 279, 101, 102, 103, 158, 500, 501,
622 275, 276, 292, 437, 438, 36, 121, 122, 452, 453,
623 37, 441, 38, 39, 40, 41, 42, 43, 44, 45,
624 46, 139, 314, 317, 142, 47, 107, 49, 50, 51,
625 322, 52, 412, 53, 54, 378, 379, 442, 443, 109,
626 325, 326, 413, 414, 56, 110, 111, 115, 507, 300,
627 310, 133, 391, 57, 58, 465, 466, 415, 467, 468,
628 334, 335, 336, 606, 607, 608, 533, 534, 535, 536,
629 598, 609, 565, 615, 616, 337, 338, 416, 417, 418,
630 571, 588, 339, 340, 341, 422, 423, 545, 419, 128
633 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
634 positive, shift that token. If negative, reduce the rule whose
635 number is the opposite. If YYTABLE_NINF, syntax error. */
636 static const short int yytable
[] =
638 132, 77, 108, 127, 78, 123, 290, 345, 347, 147,
639 321, 372, 349, 537, 541, 112, 113, 114, 352, 388,
640 515, 321, 277, 555, 532, 558, 489, 48, 427, 55,
641 447, 448, 449, 134, 124, 377, 450, 451, 428, 455,
642 374, 315, 456, 29, 316, 129, 457, 126, 458, 459,
643 460, 461, 462, 463, 395, 492, 143, 396, 493, 48,
644 148, 55, 123, 59, 594, 60, 144, 580, 372, 155,
645 151, 372, 152, 153, 154, 464, 399, 424, 427, -326,
646 -326, 436, 145, 568, 146, 157, 135, 136, 137, 392,
647 393, 138, 476, 343, 281, 291, 293, 295, 587, 472,
648 439, 298, 483, 140, 4, 5, 431, 432, 278, 484,
649 66, 515, -329, 513, 514, 304, 299, -329, 573, 574,
650 585, 561, 562, 159, 323, 297, 312, -289, 612, 375,
651 376, 617, 610, 626, 61, 323, 595, 324, 497, 342,
652 299, 294, 296, 62, 148, 301, 302, 303, 399, 400,
653 -326, 306, 628, -218, 610, 372, 620, -219, 372, 305,
654 307, 64, 401, 426, 402, 308, 403, 309, 311, 404,
655 405, 406, 407, 408, 409, 410, 531, 313, 353, 150,
656 373, 126, 383, 540, 285, 286, 66, 290, 374, 385,
657 386, 394, 429, 290, 433, 469, 440, 287, 288, 479,
658 478, 586, 67, 68, -412, 521, 522, 523, 524, 525,
659 526, 527, 528, 563, 327, 328, 329, 330, 331, 332,
660 333, 69, 486, 70, 560, 71, 72, 73, 74, 487,
661 489, 488, 550, 490, 491, 531, 569, 494, 496, 505,
662 75, 76, 405, 406, 407, 408, 409, 410, 502, 503,
663 511, 504, 553, 506, 575, 387, 290, 512, 516, 321,
664 517, -24, 538, 547, 584, 548, 552, 549, 551, 372,
665 482, 554, 556, -379, -388, 290, 291, 454, 566, 559,
666 567, 351, 291, 132, 570, 578, 579, 583, 602, 397,
667 589, 420, 590, 592, 604, 531, 382, 593, 321, 123,
668 597, 599, 613, 600, 603, 601, 148, 611, 531, 614,
669 582, 619, 621, 622, 389, 623, 627, 531, 624, 348,
670 130, 106, 421, 318, 141, 446, 84, 344, 327, 328,
671 329, 330, 331, 332, 333, 430, 380, 444, 445, 509,
672 61, 477, 435, 125, 557, 291, 384, 398, 625, 62,
673 61, 564, 425, 546, 108, 63, 0, 0, 0, 62,
674 0, 0, 0, 0, 291, 63, 0, 64, 401, 0,
675 402, 0, 403, 475, 0, 404, 148, 64, 0, 470,
676 0, 151, 0, 312, 0, 471, 0, 324, 0, 0,
677 285, 286, 66, 0, 0, 0, 0, 0, 0, 576,
678 0, 0, 66, 287, 288, 0, 0, 290, 67, 68,
679 0, 0, 475, 0, 0, 0, 0, 0, 67, 68,
680 0, 0, 108, 0, 0, 499, 0, 69, 0, 70,
681 0, 71, 72, 73, 74, 0, 0, 69, 510, 70,
682 0, 71, 72, 73, 74, 0, 75, 76, 0, 0,
683 542, 0, 0, 544, 0, 0, 75, 76, 0, 0,
684 123, 0, 61, 382, 543, 0, 0, 0, 389, 0,
685 0, 62, 0, 0, 0, 0, 399, 400, 327, 328,
686 329, 330, 331, 332, 333, 421, 0, 0, 0, 64,
687 401, -427, 402, 0, 403, 0, 291, 404, 0, 0,
688 0, 0, 0, 0, 0, 572, 0, 0, 455, 126,
689 0, 456, 285, 286, 66, 457, 0, 458, 459, 460,
690 461, 462, 463, 0, 0, 287, 288, 0, 0, 0,
691 67, 68, 581, 0, 0, 0, 591, 0, 0, 0,
692 0, 577, 0, 0, 0, 0, 0, 0, 0, 69,
693 0, 70, 0, 71, 72, 73, 74, 0, 0, 605,
694 0, 0, 0, 0, 0, 0, 0, 0, 75, 76,
695 405, 406, 407, 408, 409, 410, 0, 0, 0, 160,
696 0, 605, 161, 162, 163, 164, 165, 166, 167, 168,
697 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
698 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
699 189, 190, 191, 192, 193, 0, 194, 195, 196, 197,
700 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
701 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
702 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
703 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
704 238, 0, 239, 0, 240, 241, 242, 243, 244, 245,
705 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
706 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
707 266, 267, 268, 269, 270, 271, 272, 160, 346, 273,
708 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
709 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
710 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
711 191, 192, 193, 0, 194, 195, 196, 197, 198, 199,
712 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
713 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
714 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
715 230, 231, 232, 233, 234, 235, 236, 237, 238, 0,
716 239, 0, 240, 241, 242, 243, 244, 245, 246, 247,
717 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
718 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
719 268, 269, 270, 271, 272, 61, 0, 273, 0, 0,
720 0, 0, 0, 0, 62, 0, 0, 0, 0, 399,
721 400, 0, 0, 0, 0, 0, 0, 0, 0, 0,
722 0, 0, 64, 401, 0, 402, 0, 403, 0, 0,
723 404, 0, 0, 0, 0, 0, 0, 0, 0, 0,
724 0, 0, 126, 0, 0, 285, 286, 66, 0, 0,
725 0, 0, 0, 0, 0, 0, 0, 0, 287, 288,
726 0, 0, 0, 67, 68, 0, 0, 0, 61, 0,
727 0, 0, 0, 0, 0, 0, 0, 62, 0, 0,
728 0, 0, 69, 63, 70, 0, 71, 72, 73, 74,
729 0, 0, 156, 0, 0, 64, 0, 0, 0, 0,
730 0, 75, 76, 405, 406, 407, 408, 409, 410, 1,
731 2, 3, 4, 5, 6, 7, 8, 0, 0, 0,
732 0, 0, 9, 0, 10, 11, 12, 13, 14, 15,
733 16, 17, 0, 0, 0, 18, 67, 68, 0, 0,
734 0, 19, 20, 0, 0, 0, 0, 0, 0, 0,
735 0, 0, 21, 0, 0, 69, 0, 70, 0, 71,
736 72, 73, 74, 1, 2, 3, 4, 5, 6, 7,
737 8, 0, 0, 0, 75, 76, 9, 0, 10, 11,
738 12, 13, 14, 15, 16, 17, 0, 0, 0, 18,
739 22, 23, 24, 25, 26, 27, 28, 0, 29, 0,
740 0, 0, 508, 0, 0, 0, 0, 0, 61, 1,
741 2, 3, 4, 5, 6, 7, 8, 62, 0, 0,
742 0, 0, 30, 63, 10, 11, 12, 13, 14, 15,
743 16, 17, 0, 0, 0, 480, 401, 0, 402, 0,
744 403, 0, 0, 404, 0, 104, 105, 25, 83, 0,
745 0, 0, 0, 0, 0, 0, 0, 0, 285, 286,
746 66, 0, 0, 0, 0, 0, 0, 0, 0, 0,
747 0, 287, 288, 0, 0, 0, 67, 68, 0, 0,
748 0, 61, 0, 0, 0, 0, 0, 0, 0, 0,
749 62, 80, 81, 82, 481, 69, 518, 70, 0, 71,
750 72, 73, 74, 0, 0, 519, 0, 0, 64, 401,
751 0, 402, 0, 403, 75, 76, 404, 0, 0, 0,
752 0, 0, 0, 0, 0, 0, 0, 0, 126, 0,
753 0, 285, 286, 66, 0, 0, 0, 0, 61, 0,
754 0, 0, 0, 0, 287, 288, 0, 62, 0, 67,
755 68, 0, 0, 63, 0, 0, 0, 0, 0, 0,
756 0, 0, 280, 0, 0, 64, 0, 0, 69, 0,
757 520, 0, 71, 72, 73, 74, 0, 0, 0, 521,
758 522, 523, 524, 525, 526, 527, 528, 529, 530, 61,
759 0, 0, 0, 0, 0, 0, 0, 0, 62, 0,
760 0, 0, 0, 0, 518, 0, 67, 68, 0, 0,
761 0, 0, 0, 519, 0, 0, 64, 401, 0, 402,
762 0, 403, 0, 0, 404, 69, 0, 70, 0, 71,
763 72, 73, 74, 0, 61, 0, 0, 0, 0, 285,
764 286, 66, 0, 62, 75, 76, 0, 0, 0, 63,
765 0, 0, 287, 288, 0, 0, 0, 67, 68, 0,
766 0, 64, 0, 0, 282, 0, 283, 0, 0, 284,
767 0, 0, 0, 0, 0, 0, 69, 0, 520, 0,
768 71, 72, 73, 74, 285, 286, 0, 521, 522, 523,
769 524, 525, 526, 527, 528, 529, 530, 287, 288, 0,
770 0, 0, 67, 68, 61, 0, 0, 0, 0, 0,
771 0, 289, 0, 62, 0, 61, 0, 0, 0, 63,
772 0, 69, 0, 70, 62, 71, 72, 73, 74, 0,
773 63, 64, 0, 0, 0, 0, 0, 0, 0, 65,
774 75, 76, 64, 0, 0, 0, 0, 0, 0, 0,
775 149, 61, 0, 0, 0, 0, 66, 0, 0, 0,
776 62, 61, 0, 0, 0, 0, 63, 150, 0, 0,
777 62, 0, 67, 68, 0, 0, 63, 0, 64, 0,
778 0, 0, 0, 67, 68, 0, 381, 0, 64, 0,
779 0, 69, 0, 70, 0, 71, 72, 73, 74, 0,
780 0, 0, 69, 150, 70, 0, 71, 72, 73, 74,
781 75, 76, 0, 150, 0, 0, 0, 0, 0, 67,
782 68, 75, 76, 0, 61, 0, 0, 0, 0, 67,
783 68, 0, 0, 62, 0, 0, 0, 0, 69, 63,
784 70, 0, 71, 72, 73, 74, 0, 0, 69, 0,
785 70, 64, 71, 72, 73, 74, 61, 75, 76, 350,
786 0, 0, 0, 0, 0, 62, 0, 75, 76, 0,
787 0, 63, 0, 0, 85, 86, 87, 88, 89, 90,
788 91, 92, 93, 64, 94, 95, 96, 97, 0, 0,
789 0, 0, 67, 68, 0, 0, 0, 0, 0, 0,
790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
791 0, 69, 0, 70, 0, 71, 72, 73, 74, 0,
792 0, 0, 0, 0, 67, 68, 0, 0, 0, 0,
793 75, 76, 0, 0, 0, 0, 0, 0, 0, 0,
794 0, 0, 0, 69, 0, 70, 0, 71, 72, 73,
795 74, 116, 1, 2, 117, 4, 5, 6, 118, 8,
796 119, 0, 75, 76, 0, 120, 0, 10, 11, 12,
797 13, 14, 15, 16, 17, 0, 0, 0, 79, 1,
798 2, 3, 4, 5, 6, 7, 8, 0, 0, 0,
799 0, 0, 473, 0, 10, 11, 12, 13, 14, 15,
800 16, 17, 0, 0, 0, 79, 1, 2, 3, 4,
801 5, 6, 7, 8, 0, 0, 0, 0, 0, 473,
802 0, 10, 11, 12, 13, 14, 15, 16, 17, 0,
803 0, 0, 79, 0, 80, 81, 82, 0, 0, 0,
804 0, 0, 0, 0, 0, 474, 0, 0, 0, 0,
805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
806 0, 80, 81, 82, 320, 0, 0, 0, 0, 0,
807 0, 0, 498, 0, 0, 0, 0, 0, 0, 1,
808 2, 3, 4, 5, 6, 7, 8, 0, 80, 81,
809 82, 320, 9, 0, 10, 11, 12, 13, 14, 15,
810 16, 17, 0, 0, 0, 79, 1, 2, 3, 4,
811 5, 6, 7, 8, 0, 0, 0, 0, 0, 9,
812 0, 10, 11, 12, 13, 14, 15, 16, 17, 0,
813 0, 0, 18, 1, 2, 3, 4, 5, 6, 7,
814 8, 0, 0, 0, 0, 0, 319, 0, 10, 11,
815 12, 13, 14, 15, 16, 17, 0, 0, 0, 79,
816 0, 80, 81, 82, 83, 0, 0, 0, 0, 0,
817 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
818 2, 3, 4, 5, 6, 7, 8, 0, 104, 105,
819 25, 83, 120, 0, 10, 11, 12, 13, 14, 15,
820 16, 17, 0, 0, 0, 79, 1, 2, 3, 4,
821 5, 6, 7, 8, 0, 80, 81, 82, 320, 390,
822 0, 10, 11, 12, 13, 14, 15, 16, 17, 0,
823 0, 0, 79, 1, 2, 3, 4, 5, 6, 7,
824 8, 0, 0, 0, 0, 0, 0, 0, 10, 11,
825 12, 13, 14, 15, 16, 17, 495, 0, 0, 79,
826 0, 80, 81, 82, 0, 0, 0, 354, 355, 356,
827 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
828 367, 368, 369, 370, 371, 434, 0, 0, 80, 81,
829 82, 0, 0, 0, 354, 355, 356, 357, 358, 359,
830 360, 361, 362, 363, 364, 365, 366, 367, 368, 369,
831 370, 371, 539, 0, 0, 80, 81, 82, 0, 0,
832 0, 354, 355, 356, 357, 358, 359, 360, 361, 362,
833 363, 364, 365, 366, 367, 368, 369, 370, 371, 618,
834 0, 0, 0, 0, 0, 0, 0, 0, 354, 355,
835 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
836 366, 367, 368, 369, 370, 371, 596, 0, 0, 0,
837 0, 0, 0, 0, 354, 355, 356, 357, 358, 359,
838 360, 361, 362, 363, 364, 365, 366, 367, 368, 369,
839 370, 371, 354, 355, 356, 357, 358, 359, 360, 361,
840 362, 363, 364, 365, 366, 367, 368, 369, 370, 371
843 static const short int yycheck
[] =
845 38, 9, 22, 29, 9, 26, 103, 156, 157, 65,
846 144, 292, 284, 478, 486, 23, 24, 25, 290, 312,
847 467, 155, 34, 512, 478, 514, 32, 0, 334, 0,
848 27, 28, 29, 38, 34, 37, 33, 34, 340, 3,
849 42, 6, 6, 93, 9, 0, 10, 50, 12, 13,
850 14, 15, 16, 17, 40, 37, 37, 43, 40, 32,
851 65, 32, 83, 9, 70, 11, 38, 556, 349, 38,
852 78, 352, 80, 81, 82, 39, 17, 18, 384, 41,
853 42, 353, 42, 537, 42, 93, 4, 5, 6, 39,
854 40, 9, 394, 149, 102, 103, 104, 105, 570, 392,
855 372, 109, 404, 6, 7, 8, 39, 40, 120, 411,
856 55, 558, 37, 39, 40, 120, 41, 42, 39, 40,
857 567, 17, 18, 36, 144, 37, 134, 38, 600, 300,
858 301, 603, 597, 622, 3, 155, 583, 145, 431, 147,
859 41, 104, 105, 12, 149, 111, 112, 113, 17, 18,
860 42, 37, 624, 31, 619, 436, 610, 31, 439, 31,
861 42, 30, 31, 43, 33, 31, 35, 44, 38, 38,
862 111, 112, 113, 114, 115, 116, 478, 6, 38, 55,
863 41, 50, 46, 485, 53, 54, 55, 284, 42, 38,
864 33, 46, 39, 290, 38, 45, 38, 66, 67, 37,
865 46, 70, 71, 72, 38, 101, 102, 103, 104, 105,
866 106, 107, 108, 109, 94, 95, 96, 97, 98, 99,
867 100, 90, 46, 92, 517, 94, 95, 96, 97, 37,
868 32, 38, 504, 46, 38, 537, 538, 37, 39, 33,
869 109, 110, 111, 112, 113, 114, 115, 116, 39, 39,
870 37, 40, 37, 41, 547, 311, 353, 41, 39, 393,
871 39, 39, 39, 39, 566, 39, 41, 40, 40, 550,
872 404, 39, 41, 38, 38, 372, 284, 43, 38, 46,
873 38, 289, 290, 321, 40, 33, 38, 38, 32, 327,
874 39, 329, 37, 39, 596, 597, 304, 33, 432, 320,
875 40, 39, 33, 40, 38, 40, 311, 39, 610, 39,
876 559, 40, 39, 41, 319, 39, 39, 619, 40, 276,
877 32, 22, 330, 141, 45, 381, 18, 155, 94, 95,
878 96, 97, 98, 99, 100, 343, 303, 375, 376, 442,
879 3, 395, 350, 28, 514, 353, 307, 327, 619, 12,
880 3, 520, 331, 493, 374, 18, -1, -1, -1, 12,
881 -1, -1, -1, -1, 372, 18, -1, 30, 31, -1,
882 33, -1, 35, 393, -1, 38, 381, 30, -1, 387,
883 -1, 389, -1, 391, -1, 390, -1, 395, -1, -1,
884 53, 54, 55, -1, -1, -1, -1, -1, -1, 548,
885 -1, -1, 55, 66, 67, -1, -1, 504, 71, 72,
886 -1, -1, 432, -1, -1, -1, -1, -1, 71, 72,
887 -1, -1, 442, -1, -1, 433, -1, 90, -1, 92,
888 -1, 94, 95, 96, 97, -1, -1, 90, 446, 92,
889 -1, 94, 95, 96, 97, -1, 109, 110, -1, -1,
890 488, -1, -1, 491, -1, -1, 109, 110, -1, -1,
891 481, -1, 3, 471, 490, -1, -1, -1, 473, -1,
892 -1, 12, -1, -1, -1, -1, 17, 18, 94, 95,
893 96, 97, 98, 99, 100, 493, -1, -1, -1, 30,
894 31, 32, 33, -1, 35, -1, 504, 38, -1, -1,
895 -1, -1, -1, -1, -1, 543, -1, -1, 3, 50,
896 -1, 6, 53, 54, 55, 10, -1, 12, 13, 14,
897 15, 16, 17, -1, -1, 66, 67, -1, -1, -1,
898 71, 72, 558, -1, -1, -1, 574, -1, -1, -1,
899 -1, 549, -1, -1, -1, -1, -1, -1, -1, 90,
900 -1, 92, -1, 94, 95, 96, 97, -1, -1, 597,
901 -1, -1, -1, -1, -1, -1, -1, -1, 109, 110,
902 111, 112, 113, 114, 115, 116, -1, -1, -1, 0,
903 -1, 619, 3, 4, 5, 6, 7, 8, 9, 10,
904 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
905 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
906 31, 32, 33, 34, 35, -1, 37, 38, 39, 40,
907 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
908 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
909 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
910 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
911 81, -1, 83, -1, 85, 86, 87, 88, 89, 90,
912 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
913 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
914 111, 112, 113, 114, 115, 116, 117, 0, 119, 120,
915 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
916 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
917 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
918 33, 34, 35, -1, 37, 38, 39, 40, 41, 42,
919 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
920 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
921 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
922 73, 74, 75, 76, 77, 78, 79, 80, 81, -1,
923 83, -1, 85, 86, 87, 88, 89, 90, 91, 92,
924 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
925 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
926 113, 114, 115, 116, 117, 3, -1, 120, -1, -1,
927 -1, -1, -1, -1, 12, -1, -1, -1, -1, 17,
928 18, -1, -1, -1, -1, -1, -1, -1, -1, -1,
929 -1, -1, 30, 31, -1, 33, -1, 35, -1, -1,
930 38, -1, -1, -1, -1, -1, -1, -1, -1, -1,
931 -1, -1, 50, -1, -1, 53, 54, 55, -1, -1,
932 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
933 -1, -1, -1, 71, 72, -1, -1, -1, 3, -1,
934 -1, -1, -1, -1, -1, -1, -1, 12, -1, -1,
935 -1, -1, 90, 18, 92, -1, 94, 95, 96, 97,
936 -1, -1, 27, -1, -1, 30, -1, -1, -1, -1,
937 -1, 109, 110, 111, 112, 113, 114, 115, 116, 4,
938 5, 6, 7, 8, 9, 10, 11, -1, -1, -1,
939 -1, -1, 17, -1, 19, 20, 21, 22, 23, 24,
940 25, 26, -1, -1, -1, 30, 71, 72, -1, -1,
941 -1, 36, 37, -1, -1, -1, -1, -1, -1, -1,
942 -1, -1, 47, -1, -1, 90, -1, 92, -1, 94,
943 95, 96, 97, 4, 5, 6, 7, 8, 9, 10,
944 11, -1, -1, -1, 109, 110, 17, -1, 19, 20,
945 21, 22, 23, 24, 25, 26, -1, -1, -1, 30,
946 85, 86, 87, 88, 89, 90, 91, -1, 93, -1,
947 -1, -1, 43, -1, -1, -1, -1, -1, 3, 4,
948 5, 6, 7, 8, 9, 10, 11, 12, -1, -1,
949 -1, -1, 117, 18, 19, 20, 21, 22, 23, 24,
950 25, 26, -1, -1, -1, 30, 31, -1, 33, -1,
951 35, -1, -1, 38, -1, 86, 87, 88, 89, -1,
952 -1, -1, -1, -1, -1, -1, -1, -1, 53, 54,
953 55, -1, -1, -1, -1, -1, -1, -1, -1, -1,
954 -1, 66, 67, -1, -1, -1, 71, 72, -1, -1,
955 -1, 3, -1, -1, -1, -1, -1, -1, -1, -1,
956 12, 86, 87, 88, 89, 90, 18, 92, -1, 94,
957 95, 96, 97, -1, -1, 27, -1, -1, 30, 31,
958 -1, 33, -1, 35, 109, 110, 38, -1, -1, -1,
959 -1, -1, -1, -1, -1, -1, -1, -1, 50, -1,
960 -1, 53, 54, 55, -1, -1, -1, -1, 3, -1,
961 -1, -1, -1, -1, 66, 67, -1, 12, -1, 71,
962 72, -1, -1, 18, -1, -1, -1, -1, -1, -1,
963 -1, -1, 27, -1, -1, 30, -1, -1, 90, -1,
964 92, -1, 94, 95, 96, 97, -1, -1, -1, 101,
965 102, 103, 104, 105, 106, 107, 108, 109, 110, 3,
966 -1, -1, -1, -1, -1, -1, -1, -1, 12, -1,
967 -1, -1, -1, -1, 18, -1, 71, 72, -1, -1,
968 -1, -1, -1, 27, -1, -1, 30, 31, -1, 33,
969 -1, 35, -1, -1, 38, 90, -1, 92, -1, 94,
970 95, 96, 97, -1, 3, -1, -1, -1, -1, 53,
971 54, 55, -1, 12, 109, 110, -1, -1, -1, 18,
972 -1, -1, 66, 67, -1, -1, -1, 71, 72, -1,
973 -1, 30, -1, -1, 33, -1, 35, -1, -1, 38,
974 -1, -1, -1, -1, -1, -1, 90, -1, 92, -1,
975 94, 95, 96, 97, 53, 54, -1, 101, 102, 103,
976 104, 105, 106, 107, 108, 109, 110, 66, 67, -1,
977 -1, -1, 71, 72, 3, -1, -1, -1, -1, -1,
978 -1, 80, -1, 12, -1, 3, -1, -1, -1, 18,
979 -1, 90, -1, 92, 12, 94, 95, 96, 97, -1,
980 18, 30, -1, -1, -1, -1, -1, -1, -1, 38,
981 109, 110, 30, -1, -1, -1, -1, -1, -1, -1,
982 38, 3, -1, -1, -1, -1, 55, -1, -1, -1,
983 12, 3, -1, -1, -1, -1, 18, 55, -1, -1,
984 12, -1, 71, 72, -1, -1, 18, -1, 30, -1,
985 -1, -1, -1, 71, 72, -1, 38, -1, 30, -1,
986 -1, 90, -1, 92, -1, 94, 95, 96, 97, -1,
987 -1, -1, 90, 55, 92, -1, 94, 95, 96, 97,
988 109, 110, -1, 55, -1, -1, -1, -1, -1, 71,
989 72, 109, 110, -1, 3, -1, -1, -1, -1, 71,
990 72, -1, -1, 12, -1, -1, -1, -1, 90, 18,
991 92, -1, 94, 95, 96, 97, -1, -1, 90, -1,
992 92, 30, 94, 95, 96, 97, 3, 109, 110, 38,
993 -1, -1, -1, -1, -1, 12, -1, 109, 110, -1,
994 -1, 18, -1, -1, 71, 72, 73, 74, 75, 76,
995 77, 78, 79, 30, 81, 82, 83, 84, -1, -1,
996 -1, -1, 71, 72, -1, -1, -1, -1, -1, -1,
997 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
998 -1, 90, -1, 92, -1, 94, 95, 96, 97, -1,
999 -1, -1, -1, -1, 71, 72, -1, -1, -1, -1,
1000 109, 110, -1, -1, -1, -1, -1, -1, -1, -1,
1001 -1, -1, -1, 90, -1, 92, -1, 94, 95, 96,
1002 97, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1003 12, -1, 109, 110, -1, 17, -1, 19, 20, 21,
1004 22, 23, 24, 25, 26, -1, -1, -1, 30, 4,
1005 5, 6, 7, 8, 9, 10, 11, -1, -1, -1,
1006 -1, -1, 17, -1, 19, 20, 21, 22, 23, 24,
1007 25, 26, -1, -1, -1, 30, 4, 5, 6, 7,
1008 8, 9, 10, 11, -1, -1, -1, -1, -1, 17,
1009 -1, 19, 20, 21, 22, 23, 24, 25, 26, -1,
1010 -1, -1, 30, -1, 86, 87, 88, -1, -1, -1,
1011 -1, -1, -1, -1, -1, 70, -1, -1, -1, -1,
1012 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1013 -1, 86, 87, 88, 89, -1, -1, -1, -1, -1,
1014 -1, -1, 70, -1, -1, -1, -1, -1, -1, 4,
1015 5, 6, 7, 8, 9, 10, 11, -1, 86, 87,
1016 88, 89, 17, -1, 19, 20, 21, 22, 23, 24,
1017 25, 26, -1, -1, -1, 30, 4, 5, 6, 7,
1018 8, 9, 10, 11, -1, -1, -1, -1, -1, 17,
1019 -1, 19, 20, 21, 22, 23, 24, 25, 26, -1,
1020 -1, -1, 30, 4, 5, 6, 7, 8, 9, 10,
1021 11, -1, -1, -1, -1, -1, 17, -1, 19, 20,
1022 21, 22, 23, 24, 25, 26, -1, -1, -1, 30,
1023 -1, 86, 87, 88, 89, -1, -1, -1, -1, -1,
1024 -1, -1, -1, -1, -1, -1, -1, -1, -1, 4,
1025 5, 6, 7, 8, 9, 10, 11, -1, 86, 87,
1026 88, 89, 17, -1, 19, 20, 21, 22, 23, 24,
1027 25, 26, -1, -1, -1, 30, 4, 5, 6, 7,
1028 8, 9, 10, 11, -1, 86, 87, 88, 89, 17,
1029 -1, 19, 20, 21, 22, 23, 24, 25, 26, -1,
1030 -1, -1, 30, 4, 5, 6, 7, 8, 9, 10,
1031 11, -1, -1, -1, -1, -1, -1, -1, 19, 20,
1032 21, 22, 23, 24, 25, 26, 37, -1, -1, 30,
1033 -1, 86, 87, 88, -1, -1, -1, 48, 49, 50,
1034 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1035 61, 62, 63, 64, 65, 39, -1, -1, 86, 87,
1036 88, -1, -1, -1, 48, 49, 50, 51, 52, 53,
1037 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1038 64, 65, 39, -1, -1, 86, 87, 88, -1, -1,
1039 -1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1040 57, 58, 59, 60, 61, 62, 63, 64, 65, 39,
1041 -1, -1, -1, -1, -1, -1, -1, -1, 48, 49,
1042 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1043 60, 61, 62, 63, 64, 65, 40, -1, -1, -1,
1044 -1, -1, -1, -1, 48, 49, 50, 51, 52, 53,
1045 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1046 64, 65, 48, 49, 50, 51, 52, 53, 54, 55,
1047 56, 57, 58, 59, 60, 61, 62, 63, 64, 65
1050 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1051 symbol of state STATE-NUM. */
1052 static const unsigned char yystos
[] =
1054 0, 4, 5, 6, 7, 8, 9, 10, 11, 17,
1055 19, 20, 21, 22, 23, 24, 25, 26, 30, 36,
1056 37, 47, 85, 86, 87, 88, 89, 90, 91, 93,
1057 117, 128, 129, 130, 131, 132, 148, 153, 155, 156,
1058 157, 158, 159, 160, 161, 162, 163, 168, 169, 170,
1059 171, 172, 174, 176, 177, 182, 187, 196, 197, 9,
1060 11, 3, 12, 18, 30, 38, 55, 71, 72, 90,
1061 92, 94, 95, 96, 97, 109, 110, 126, 195, 30,
1062 86, 87, 88, 89, 170, 71, 72, 73, 74, 75,
1063 76, 77, 78, 79, 81, 82, 83, 84, 133, 134,
1064 135, 137, 138, 139, 86, 87, 154, 169, 174, 182,
1065 188, 189, 126, 126, 126, 190, 3, 6, 10, 12,
1066 17, 149, 150, 156, 34, 197, 50, 231, 232, 0,
1067 130, 126, 175, 194, 195, 4, 5, 6, 9, 164,
1068 6, 161, 167, 37, 38, 42, 42, 194, 195, 38,
1069 55, 126, 126, 126, 126, 38, 27, 126, 140, 36,
1070 0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1071 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1072 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1073 32, 33, 34, 35, 37, 38, 39, 40, 41, 42,
1074 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1075 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1076 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1077 73, 74, 75, 76, 77, 78, 79, 80, 81, 83,
1078 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1079 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1080 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1081 115, 116, 117, 120, 127, 143, 144, 34, 120, 136,
1082 27, 126, 33, 35, 38, 53, 54, 66, 67, 80,
1083 125, 126, 145, 126, 190, 126, 190, 37, 126, 41,
1084 192, 192, 192, 192, 195, 31, 37, 42, 31, 44,
1085 193, 38, 126, 6, 165, 6, 9, 166, 164, 17,
1086 89, 155, 173, 174, 126, 183, 184, 94, 95, 96,
1087 97, 98, 99, 100, 203, 204, 205, 218, 219, 225,
1088 226, 227, 126, 194, 173, 143, 119, 143, 127, 145,
1089 38, 126, 145, 38, 48, 49, 50, 51, 52, 53,
1090 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1091 64, 65, 124, 41, 42, 179, 179, 37, 178, 179,
1092 178, 38, 126, 46, 203, 38, 33, 194, 193, 195,
1093 17, 195, 39, 40, 46, 40, 43, 175, 208, 17,
1094 18, 31, 33, 35, 38, 111, 112, 113, 114, 115,
1095 116, 125, 175, 185, 186, 200, 220, 221, 222, 231,
1096 175, 126, 228, 229, 18, 221, 43, 204, 185, 39,
1097 126, 39, 40, 38, 39, 126, 145, 146, 147, 145,
1098 38, 154, 180, 181, 175, 175, 194, 27, 28, 29,
1099 33, 34, 151, 152, 43, 3, 6, 10, 12, 13,
1100 14, 15, 16, 17, 39, 198, 199, 201, 202, 45,
1101 126, 195, 193, 17, 70, 174, 185, 184, 46, 37,
1102 30, 89, 155, 185, 185, 124, 46, 37, 38, 32,
1103 46, 38, 37, 40, 37, 37, 39, 193, 70, 126,
1104 141, 142, 39, 39, 40, 33, 41, 191, 43, 181,
1105 126, 37, 41, 39, 40, 200, 39, 39, 18, 27,
1106 92, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1107 110, 185, 207, 209, 210, 211, 212, 232, 39, 39,
1108 185, 220, 175, 231, 175, 230, 229, 39, 39, 40,
1109 145, 40, 41, 37, 39, 201, 41, 199, 201, 46,
1110 193, 17, 18, 109, 212, 215, 38, 38, 207, 185,
1111 40, 223, 175, 39, 40, 193, 143, 126, 33, 38,
1112 201, 231, 151, 38, 185, 200, 70, 220, 224, 39,
1113 37, 175, 39, 33, 70, 200, 40, 40, 213, 39,
1114 40, 40, 32, 38, 185, 175, 206, 207, 208, 214,
1115 232, 39, 220, 33, 39, 216, 217, 220, 39, 40,
1116 207, 39, 41, 39, 40, 206, 201, 39, 220
1119 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1120 static const unsigned char yyr1
[] =
1122 0, 123, 124, 124, 124, 124, 124, 124, 124, 124,
1123 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
1124 125, 125, 125, 125, 126, 126, 126, 126, 126, 126,
1125 126, 126, 126, 126, 126, 126, 126, 126, 127, 127,
1126 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
1127 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
1128 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
1129 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
1130 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
1131 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
1132 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
1133 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
1134 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
1135 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
1136 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
1137 127, 127, 128, 128, 129, 129, 130, 130, 130, 130,
1138 130, 130, 130, 130, 130, 130, 130, 130, 131, 132,
1139 133, 133, 133, 133, 133, 133, 133, 134, 134, 135,
1140 135, 135, 136, 136, 137, 137, 138, 138, 138, 139,
1141 139, 140, 140, 140, 141, 141, 142, 142, 143, 143,
1142 144, 144, 145, 145, 145, 145, 145, 145, 145, 145,
1143 145, 146, 146, 147, 147, 148, 149, 150, 150, 150,
1144 150, 151, 151, 152, 152, 152, 152, 152, 153, 154,
1145 154, 154, 154, 154, 155, 155, 156, 156, 157, 157,
1146 157, 158, 158, 158, 158, 159, 159, 159, 160, 160,
1147 160, 160, 160, 160, 160, 160, 161, 161, 162, 162,
1148 162, 163, 163, 163, 163, 164, 164, 164, 164, 164,
1149 165, 165, 166, 166, 166, 167, 167, 167, 168, 169,
1150 169, 169, 169, 170, 170, 171, 171, 171, 171, 172,
1151 172, 173, 173, 173, 173, 174, 174, 174, 175, 175,
1152 176, 177, 178, 178, 179, 180, 180, 181, 182, 183,
1153 183, 184, 184, 185, 185, 185, 185, 185, 186, 186,
1154 186, 186, 187, 188, 189, 190, 190, 191, 191, 192,
1155 192, 193, 193, 194, 194, 195, 195, 196, 196, 197,
1156 197, 197, 198, 198, 199, 199, 200, 201, 202, 202,
1157 202, 202, 202, 202, 202, 202, 202, 203, 203, 204,
1158 204, 204, 204, 204, 205, 205, 206, 206, 206, 207,
1159 207, 207, 207, 207, 208, 208, 209, 210, 211, 212,
1160 212, 212, 212, 212, 212, 212, 212, 212, 212, 213,
1161 213, 214, 214, 215, 215, 216, 216, 217, 217, 218,
1162 219, 220, 220, 220, 221, 221, 222, 222, 222, 222,
1163 222, 222, 222, 222, 223, 223, 224, 224, 225, 226,
1164 226, 227, 228, 228, 229, 230, 230, 231, 231, 232
1167 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
1168 static const unsigned char yyr2
[] =
1170 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1171 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1172 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1173 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1174 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1175 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1176 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1177 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1178 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1179 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1180 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1181 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1182 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1183 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1184 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1185 1, 1, 0, 1, 1, 2, 1, 1, 1, 1,
1186 1, 1, 1, 1, 1, 1, 1, 1, 3, 3,
1187 2, 2, 1, 2, 2, 2, 2, 1, 1, 1,
1188 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1189 1, 6, 2, 2, 0, 1, 1, 3, 0, 1,
1190 1, 2, 3, 2, 3, 2, 4, 1, 1, 1,
1191 4, 0, 1, 1, 3, 6, 1, 1, 1, 1,
1192 1, 0, 1, 1, 1, 1, 1, 1, 3, 1,
1193 1, 2, 4, 4, 2, 1, 1, 1, 2, 2,
1194 2, 1, 1, 1, 1, 1, 1, 2, 1, 1,
1195 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1196 2, 1, 1, 2, 2, 0, 1, 2, 1, 2,
1197 0, 1, 0, 1, 1, 0, 1, 2, 2, 5,
1198 7, 6, 8, 1, 1, 6, 7, 6, 5, 1,
1199 2, 0, 1, 1, 3, 2, 4, 3, 3, 2,
1200 4, 4, 1, 1, 3, 1, 2, 3, 4, 1,
1201 3, 1, 3, 1, 4, 3, 3, 2, 1, 1,
1202 1, 1, 2, 2, 2, 0, 1, 0, 7, 0,
1203 7, 0, 3, 0, 1, 1, 2, 4, 5, 7,
1204 8, 13, 1, 3, 2, 4, 2, 1, 1, 1,
1205 1, 1, 1, 1, 1, 1, 1, 1, 2, 1,
1206 1, 1, 1, 1, 3, 6, 1, 2, 1, 1,
1207 1, 1, 1, 1, 3, 4, 6, 8, 5, 1,
1208 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
1209 2, 1, 3, 1, 1, 0, 1, 1, 3, 3,
1210 3, 1, 1, 3, 5, 6, 1, 1, 1, 1,
1211 1, 1, 1, 1, 0, 2, 1, 3, 3, 1,
1212 1, 3, 1, 3, 4, 1, 3, 0, 1, 1
1216 /* YYDPREC[RULE-NUM] -- Dynamic precedence of rule #RULE-NUM (0 if none). */
1217 static const unsigned char yydprec
[] =
1219 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1220 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1222 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1223 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1224 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1225 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1226 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1227 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1228 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1229 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1230 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1231 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1232 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1233 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1234 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1235 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1236 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1237 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1238 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1239 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1240 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1242 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1243 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1244 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1245 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1246 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1247 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1248 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1249 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1250 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1251 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1252 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1253 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1254 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1255 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1256 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1257 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1258 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1259 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1260 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1261 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
1264 /* YYMERGER[RULE-NUM] -- Index of merging function for rule #RULE-NUM. */
1265 static const unsigned char yymerger
[] =
1267 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1268 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1269 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1270 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1271 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1272 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1273 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1274 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1275 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1276 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1277 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1278 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1279 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1280 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1281 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1282 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1283 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1284 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1285 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1286 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1287 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1288 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1289 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1290 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1291 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1292 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1293 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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
1312 /* YYIMMEDIATE[RULE-NUM] -- True iff rule #RULE-NUM is not to be deferred, as
1313 in the case of predicates. */
1314 static const yybool yyimmediate
[] =
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, 0, 0,
1338 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1339 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1340 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1341 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1342 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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
1361 /* YYCONFLP[YYPACT[STATE-NUM]] -- Pointer into YYCONFL of start of
1362 list of conflicting reductions corresponding to action entry for
1363 state STATE-NUM in yytable. 0 means no conflicts. The list in
1364 yyconfl is terminated by a rule number of 0. */
1365 static const unsigned char yyconflp
[] =
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, 0, 0,
1387 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1388 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1389 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1390 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1391 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1393 0, 3, 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, 0, 0,
1437 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1438 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1442 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1473 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1505 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 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
1572 /* YYCONFL[I] -- lists of conflicting rule numbers, each terminated by
1573 0, pointed into by YYCONFLP. */
1574 static const short int yyconfl
[] =
1579 /* Error token number */
1586 #define yynerrs (yystackp->yyerrcnt)
1588 #define yychar (yystackp->yyrawchar)
1590 #define yylval (yystackp->yyval)
1592 #define yylloc (yystackp->yyloc)
1593 #define psi_parser_proc_nerrs yynerrs
1594 #define psi_parser_proc_char yychar
1595 #define psi_parser_proc_lval yylval
1596 #define psi_parser_proc_lloc yylloc
1598 static const int YYEOF
= 0;
1599 static const int YYEMPTY
= -2;
1601 typedef enum { yyok
, yyaccept
, yyabort
, yyerr
} YYRESULTTAG
;
1603 #define YYCHK(YYE) \
1605 YYRESULTTAG yychk_flag = YYE; \
1606 if (yychk_flag != yyok) \
1607 return yychk_flag; \
1613 # define YYFPRINTF fprintf
1616 /* This macro is provided for backward compatibility. */
1617 #ifndef YY_LOCATION_PRINT
1618 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1622 # define YYDPRINTF(Args) \
1629 /*----------------------------------------.
1630 | Print this symbol's value on YYOUTPUT. |
1631 `----------------------------------------*/
1634 yy_symbol_value_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
1636 FILE *yyo
= yyoutput
;
1647 /*--------------------------------.
1648 | Print this symbol on YYOUTPUT. |
1649 `--------------------------------*/
1652 yy_symbol_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
1654 YYFPRINTF (yyoutput
, "%s %s (",
1655 yytype
< YYNTOKENS
? "token" : "nterm", yytname
[yytype
]);
1657 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
, P
, tokens
, index
);
1658 YYFPRINTF (yyoutput
, ")");
1661 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1665 YYFPRINTF (stderr, "%s ", Title); \
1666 yy_symbol_print (stderr, Type, Value, P, tokens, index); \
1667 YYFPRINTF (stderr, "\n"); \
1671 /* Nonzero means print parse trace. It is left uninitialized so that
1672 multiple parsers can coexist. */
1676 static void yypstack (struct yyGLRStack
* yystackp
, size_t yyk
)
1677 YY_ATTRIBUTE_UNUSED
;
1678 static void yypdumpstack (struct yyGLRStack
* yystackp
)
1679 YY_ATTRIBUTE_UNUSED
;
1681 #else /* !YYDEBUG */
1683 # define YYDPRINTF(Args)
1684 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1686 #endif /* !YYDEBUG */
1688 /* YYINITDEPTH -- initial size of the parser's stacks. */
1690 # define YYINITDEPTH 200
1693 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1694 if the built-in stack extension method is used).
1696 Do not make this value too large; the results are undefined if
1697 SIZE_MAX < YYMAXDEPTH * sizeof (GLRStackItem)
1698 evaluated with infinite-precision integer arithmetic. */
1701 # define YYMAXDEPTH 10000
1704 /* Minimum number of free items on the stack allowed after an
1705 allocation. This is to allow allocation and initialization
1706 to be completed by functions that call yyexpandGLRStack before the
1707 stack is expanded, thus insuring that all necessary pointers get
1708 properly redirected to new data. */
1709 #define YYHEADROOM 2
1711 #ifndef YYSTACKEXPANDABLE
1712 # define YYSTACKEXPANDABLE 1
1715 #if YYSTACKEXPANDABLE
1716 # define YY_RESERVE_GLRSTACK(Yystack) \
1718 if (Yystack->yyspaceLeft < YYHEADROOM) \
1719 yyexpandGLRStack (Yystack); \
1722 # define YY_RESERVE_GLRSTACK(Yystack) \
1724 if (Yystack->yyspaceLeft < YYHEADROOM) \
1725 yyMemoryExhausted (Yystack); \
1733 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1734 # define yystpcpy stpcpy
1736 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1739 yystpcpy (char *yydest
, const char *yysrc
)
1742 const char *yys
= yysrc
;
1744 while ((*yyd
++ = *yys
++) != '\0')
1753 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1754 quotes and backslashes, so that it's suitable for yyerror. The
1755 heuristic is that double-quoting is unnecessary unless the string
1756 contains an apostrophe, a comma, or backslash (other than
1757 backslash-backslash). YYSTR is taken from yytname. If YYRES is
1758 null, do not copy; instead, return the length of what the result
1761 yytnamerr (char *yyres
, const char *yystr
)
1766 char const *yyp
= yystr
;
1773 goto do_not_strip_quotes
;
1777 goto do_not_strip_quotes
;
1790 do_not_strip_quotes
: ;
1794 return strlen (yystr
);
1796 return yystpcpy (yyres
, yystr
) - yyres
;
1800 #endif /* !YYERROR_VERBOSE */
1802 /** State numbers, as in LALR(1) machine */
1803 typedef int yyStateNum
;
1805 /** Rule numbers, as in LALR(1) machine */
1806 typedef int yyRuleNum
;
1808 /** Grammar symbol */
1809 typedef int yySymbol
;
1811 /** Item references, as in LALR(1) machine */
1812 typedef short int yyItemNum
;
1814 typedef struct yyGLRState yyGLRState
;
1815 typedef struct yyGLRStateSet yyGLRStateSet
;
1816 typedef struct yySemanticOption yySemanticOption
;
1817 typedef union yyGLRStackItem yyGLRStackItem
;
1818 typedef struct yyGLRStack yyGLRStack
;
1821 /** Type tag: always true. */
1823 /** Type tag for yysemantics. If true, yysval applies, otherwise
1824 * yyfirstVal applies. */
1826 /** Number of corresponding LALR(1) machine state. */
1827 yyStateNum yylrState
;
1828 /** Preceding state in this stack */
1830 /** Source position of the last token produced by my symbol */
1833 /** First in a chain of alternative reductions producing the
1834 * non-terminal corresponding to this state, threaded through
1836 yySemanticOption
* yyfirstVal
;
1837 /** Semantic value for this state. */
1842 struct yyGLRStateSet
{
1843 yyGLRState
** yystates
;
1844 /** During nondeterministic operation, yylookaheadNeeds tracks which
1845 * stacks have actually needed the current lookahead. During deterministic
1846 * operation, yylookaheadNeeds[0] is not maintained since it would merely
1847 * duplicate yychar != YYEMPTY. */
1848 yybool
* yylookaheadNeeds
;
1849 size_t yysize
, yycapacity
;
1852 struct yySemanticOption
{
1853 /** Type tag: always false. */
1855 /** Rule number for this reduction */
1857 /** The last RHS state in the list of states to be reduced. */
1858 yyGLRState
* yystate
;
1859 /** The lookahead for this reduction. */
1862 /** Next sibling in chain of options. To facilitate merging,
1863 * options are chained in decreasing order by address. */
1864 yySemanticOption
* yynext
;
1867 /** Type of the items in the GLR stack. The yyisState field
1868 * indicates which item of the union is valid. */
1869 union yyGLRStackItem
{
1871 yySemanticOption yyoption
;
1882 YYJMP_BUF yyexception_buffer
;
1883 yyGLRStackItem
* yyitems
;
1884 yyGLRStackItem
* yynextFree
;
1886 yyGLRState
* yysplitPoint
;
1887 yyGLRState
* yylastDeleted
;
1888 yyGLRStateSet yytops
;
1891 #if YYSTACKEXPANDABLE
1892 static void yyexpandGLRStack (yyGLRStack
* yystackp
);
1895 static _Noreturn
void
1896 yyFail (yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
, const char* yymsg
)
1898 if (yymsg
!= YY_NULLPTR
)
1899 yyerror (P
, tokens
, index
, yymsg
);
1900 YYLONGJMP (yystackp
->yyexception_buffer
, 1);
1903 static _Noreturn
void
1904 yyMemoryExhausted (yyGLRStack
* yystackp
)
1906 YYLONGJMP (yystackp
->yyexception_buffer
, 2);
1909 #if YYDEBUG || YYERROR_VERBOSE
1910 /** A printable representation of TOKEN. */
1911 static inline const char*
1912 yytokenName (yySymbol yytoken
)
1914 if (yytoken
== YYEMPTY
)
1917 return yytname
[yytoken
];
1921 /** Fill in YYVSP[YYLOW1 .. YYLOW0-1] from the chain of states starting
1922 * at YYVSP[YYLOW0].yystate.yypred. Leaves YYVSP[YYLOW1].yystate.yypred
1923 * containing the pointer to the next state in the chain. */
1924 static void yyfillin (yyGLRStackItem
*, int, int) YY_ATTRIBUTE_UNUSED
;
1926 yyfillin (yyGLRStackItem
*yyvsp
, int yylow0
, int yylow1
)
1929 yyGLRState
*s
= yyvsp
[yylow0
].yystate
.yypred
;
1930 for (i
= yylow0
-1; i
>= yylow1
; i
-= 1)
1933 yyvsp
[i
].yystate
.yylrState
= s
->yylrState
;
1935 yyvsp
[i
].yystate
.yyresolved
= s
->yyresolved
;
1937 yyvsp
[i
].yystate
.yysemantics
.yysval
= s
->yysemantics
.yysval
;
1939 /* The effect of using yysval or yyloc (in an immediate rule) is
1941 yyvsp
[i
].yystate
.yysemantics
.yyfirstVal
= YY_NULLPTR
;
1942 s
= yyvsp
[i
].yystate
.yypred
= s
->yypred
;
1946 /* Do nothing if YYNORMAL or if *YYLOW <= YYLOW1. Otherwise, fill in
1947 * YYVSP[YYLOW1 .. *YYLOW-1] as in yyfillin and set *YYLOW = YYLOW1.
1948 * For convenience, always return YYLOW1. */
1949 static inline int yyfill (yyGLRStackItem
*, int *, int, yybool
)
1950 YY_ATTRIBUTE_UNUSED
;
1952 yyfill (yyGLRStackItem
*yyvsp
, int *yylow
, int yylow1
, yybool yynormal
)
1954 if (!yynormal
&& yylow1
< *yylow
)
1956 yyfillin (yyvsp
, *yylow
, yylow1
);
1962 /** Perform user action for rule number YYN, with RHS length YYRHSLEN,
1963 * and top stack item YYVSP. YYLVALP points to place to put semantic
1964 * value ($$), and yylocp points to place for location information
1965 * (@$). Returns yyok for normal return, yyaccept for YYACCEPT,
1966 * yyerr for YYERROR, yyabort for YYABORT. */
1968 yyuserAction (yyRuleNum yyn
, size_t yyrhslen
, yyGLRStackItem
* yyvsp
,
1969 yyGLRStack
* yystackp
,
1970 YYSTYPE
* yyvalp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
1972 yybool yynormal YY_ATTRIBUTE_UNUSED
= (yystackp
->yysplitPoint
== YY_NULLPTR
);
1980 # define yyerrok (yystackp->yyerrState = 0)
1982 # define YYACCEPT return yyaccept
1984 # define YYABORT return yyabort
1986 # define YYERROR return yyerrok, yyerr
1987 # undef YYRECOVERING
1988 # define YYRECOVERING() (yystackp->yyerrState != 0)
1990 # define yyclearin (yychar = YYEMPTY)
1992 # define YYFILL(N) yyfill (yyvsp, &yylow, N, yynormal)
1994 # define YYBACKUP(Token, Value) \
1995 return yyerror (P, tokens, index, YY_("syntax error: cannot back up")), \
2000 *yyvalp
= yyval_default
;
2002 *yyvalp
= yyvsp
[YYFILL (1-yyrhslen
)].yystate
.yysemantics
.yysval
;
2006 #line 404 "src/parser_proc_grammar.y" /* glr.c:816 */
2008 if ((*(struct psi_cpp_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2009 psi_cpp_exp_exec((*(struct psi_cpp_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), P
->preproc
, PSI_DATA(P
));
2010 psi_cpp_exp_free(&(*(struct psi_cpp_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2013 #line 2014 "src/parser_proc.c" /* glr.c:816 */
2017 #line 410 "src/parser_proc_grammar.y" /* glr.c:816 */
2020 P
->error(PSI_DATA(P
), (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), PSI_WARNING
,
2021 "Extra 'lib %s' statement has no effect", (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
);
2023 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);
2026 #line 2027 "src/parser_proc.c" /* glr.c:816 */
2030 #line 418 "src/parser_proc_grammar.y" /* glr.c:816 */
2032 psi_parser_proc_add_const(P
, (*(struct psi_const
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2034 #line 2035 "src/parser_proc.c" /* glr.c:816 */
2038 #line 421 "src/parser_proc_grammar.y" /* glr.c:816 */
2040 psi_parser_proc_add_decl(P
, (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2042 #line 2043 "src/parser_proc.c" /* glr.c:816 */
2046 #line 424 "src/parser_proc_grammar.y" /* glr.c:816 */
2048 psi_parser_proc_add_typedef(P
, (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2050 #line 2051 "src/parser_proc.c" /* glr.c:816 */
2054 #line 427 "src/parser_proc_grammar.y" /* glr.c:816 */
2056 psi_parser_proc_add_struct(P
, (*(struct psi_decl_struct
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2058 #line 2059 "src/parser_proc.c" /* glr.c:816 */
2062 #line 430 "src/parser_proc_grammar.y" /* glr.c:816 */
2064 psi_parser_proc_add_union(P
, (*(struct psi_decl_union
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2066 #line 2067 "src/parser_proc.c" /* glr.c:816 */
2070 #line 433 "src/parser_proc_grammar.y" /* glr.c:816 */
2072 psi_parser_proc_add_enum(P
, (*(struct psi_decl_enum
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2074 #line 2075 "src/parser_proc.c" /* glr.c:816 */
2078 #line 436 "src/parser_proc_grammar.y" /* glr.c:816 */
2080 psi_parser_proc_add_impl(P
, (*(struct psi_impl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2082 #line 2083 "src/parser_proc.c" /* glr.c:816 */
2086 #line 442 "src/parser_proc_grammar.y" /* glr.c:816 */
2088 (*(struct psi_token
**)(&(*yyvalp
))) = (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2090 #line 2091 "src/parser_proc.c" /* glr.c:816 */
2094 #line 448 "src/parser_proc_grammar.y" /* glr.c:816 */
2096 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = (*(struct psi_cpp_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2098 #line 2099 "src/parser_proc.c" /* glr.c:816 */
2102 #line 454 "src/parser_proc_grammar.y" /* glr.c:816 */
2104 if ((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2105 struct psi_token
*msg
= NULL
;
2107 if (psi_plist_get((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), 0, &msg
)) {
2109 struct psi_token
*next
;
2111 msg
= psi_token_copy(msg
);
2112 while (psi_plist_get((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), index
++, &next
)) {
2113 struct psi_token
*old
= msg
;
2114 msg
= psi_token_cat(" ", 2, msg
, next
);
2118 psi_plist_free((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2120 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, msg
);
2122 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
, NULL
);
2124 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2126 #line 2127 "src/parser_proc.c" /* glr.c:816 */
2130 #line 477 "src/parser_proc_grammar.y" /* glr.c:816 */
2132 (*(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
))));
2133 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2135 #line 2136 "src/parser_proc.c" /* glr.c:816 */
2139 #line 481 "src/parser_proc_grammar.y" /* glr.c:816 */
2141 (*(struct psi_cpp_exp
**)(&(*yyvalp
))) = psi_cpp_exp_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
, NULL
);
2142 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2144 #line 2145 "src/parser_proc.c" /* glr.c:816 */
2148 #line 485 "src/parser_proc_grammar.y" /* glr.c:816 */
2150 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2151 (*(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
))));
2152 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2154 #line 2155 "src/parser_proc.c" /* glr.c:816 */
2158 #line 490 "src/parser_proc_grammar.y" /* glr.c:816 */
2160 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2161 (*(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
))));
2162 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2164 #line 2165 "src/parser_proc.c" /* glr.c:816 */
2168 #line 495 "src/parser_proc_grammar.y" /* glr.c:816 */
2170 (*(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
)));
2171 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2173 #line 2174 "src/parser_proc.c" /* glr.c:816 */
2177 #line 499 "src/parser_proc_grammar.y" /* glr.c:816 */
2179 (*(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
)));
2180 (*(struct psi_cpp_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2182 #line 2183 "src/parser_proc.c" /* glr.c:816 */
2186 #line 538 "src/parser_proc_grammar.y" /* glr.c:816 */
2188 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2189 (*(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
);
2190 (*(struct psi_cpp_macro_decl
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
2192 #line 2193 "src/parser_proc.c" /* glr.c:816 */
2196 #line 543 "src/parser_proc_grammar.y" /* glr.c:816 */
2198 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2199 (*(struct psi_cpp_macro_decl
**)(&(*yyvalp
))) = psi_cpp_macro_decl_init(NULL
, (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), NULL
);
2200 (*(struct psi_cpp_macro_decl
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2202 #line 2203 "src/parser_proc.c" /* glr.c:816 */
2206 #line 548 "src/parser_proc_grammar.y" /* glr.c:816 */
2208 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2209 (*(struct psi_cpp_macro_decl
**)(&(*yyvalp
))) = psi_cpp_macro_decl_init(NULL
, (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)), NULL
);
2210 (*(struct psi_cpp_macro_decl
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2212 #line 2213 "src/parser_proc.c" /* glr.c:816 */
2216 #line 556 "src/parser_proc_grammar.y" /* glr.c:816 */
2218 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_init(NULL
);
2220 #line 2221 "src/parser_proc.c" /* glr.c:816 */
2224 #line 563 "src/parser_proc_grammar.y" /* glr.c:816 */
2226 (*(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
)));
2227 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2228 (*(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
)));
2230 #line 2231 "src/parser_proc.c" /* glr.c:816 */
2234 #line 568 "src/parser_proc_grammar.y" /* glr.c:816 */
2236 (*(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
)));
2237 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2238 (*(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
)));
2240 #line 2241 "src/parser_proc.c" /* glr.c:816 */
2244 #line 576 "src/parser_proc_grammar.y" /* glr.c:816 */
2246 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
2248 #line 2249 "src/parser_proc.c" /* glr.c:816 */
2252 #line 583 "src/parser_proc_grammar.y" /* glr.c:816 */
2254 (*(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
)));
2255 (*(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
)));
2257 #line 2258 "src/parser_proc.c" /* glr.c:816 */
2261 #line 587 "src/parser_proc_grammar.y" /* glr.c:816 */
2263 (*(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
)));
2264 (*(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
)));
2266 #line 2267 "src/parser_proc.c" /* glr.c:816 */
2270 #line 594 "src/parser_proc_grammar.y" /* glr.c:816 */
2272 (*(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
)));
2273 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
2275 #line 2276 "src/parser_proc.c" /* glr.c:816 */
2279 #line 598 "src/parser_proc_grammar.y" /* glr.c:816 */
2281 (*(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
)));
2282 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2284 #line 2285 "src/parser_proc.c" /* glr.c:816 */
2288 #line 602 "src/parser_proc_grammar.y" /* glr.c:816 */
2290 (*(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
)));
2291 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2293 #line 2294 "src/parser_proc.c" /* glr.c:816 */
2297 #line 606 "src/parser_proc_grammar.y" /* glr.c:816 */
2302 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2303 exists
= psi_cpp_defined(P
->preproc
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2304 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8
, &exists
));
2305 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2308 #line 2309 "src/parser_proc.c" /* glr.c:816 */
2312 #line 616 "src/parser_proc_grammar.y" /* glr.c:816 */
2317 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2318 exists
= psi_cpp_defined(P
->preproc
, (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2319 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8
, &exists
));
2320 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2323 #line 2324 "src/parser_proc.c" /* glr.c:816 */
2327 #line 626 "src/parser_proc_grammar.y" /* glr.c:816 */
2329 (*(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
));
2330 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2331 (*(struct psi_num_exp
**)(&(*yyvalp
)))->data
.n
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2333 #line 2334 "src/parser_proc.c" /* glr.c:816 */
2337 #line 631 "src/parser_proc_grammar.y" /* glr.c:816 */
2339 (*(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
));
2340 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2341 (*(struct psi_num_exp
**)(&(*yyvalp
)))->data
.n
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2343 #line 2344 "src/parser_proc.c" /* glr.c:816 */
2347 #line 636 "src/parser_proc_grammar.y" /* glr.c:816 */
2349 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2350 (*(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
));
2351 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2352 (*(struct psi_num_exp
**)(&(*yyvalp
)))->data
.n
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2354 #line 2355 "src/parser_proc.c" /* glr.c:816 */
2358 #line 642 "src/parser_proc_grammar.y" /* glr.c:816 */
2360 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2361 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num(psi_number_init(PSI_T_FUNCTION
,
2362 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
)))));
2363 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2365 #line 2366 "src/parser_proc.c" /* glr.c:816 */
2369 #line 651 "src/parser_proc_grammar.y" /* glr.c:816 */
2371 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
2373 #line 2374 "src/parser_proc.c" /* glr.c:816 */
2377 #line 658 "src/parser_proc_grammar.y" /* glr.c:816 */
2379 (*(struct psi_plist
**)(&(*yyvalp
))) = psi_plist_add(psi_plist_init((void (*)(void *)) psi_num_exp_free
),
2380 &(*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2382 #line 2383 "src/parser_proc.c" /* glr.c:816 */
2386 #line 662 "src/parser_proc_grammar.y" /* glr.c:816 */
2388 (*(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
)));
2390 #line 2391 "src/parser_proc.c" /* glr.c:816 */
2394 #line 668 "src/parser_proc_grammar.y" /* glr.c:816 */
2396 (*(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
)));
2397 (*(struct psi_const
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2399 #line 2400 "src/parser_proc.c" /* glr.c:816 */
2403 #line 675 "src/parser_proc_grammar.y" /* glr.c:816 */
2405 (*(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
);
2407 #line 2408 "src/parser_proc.c" /* glr.c:816 */
2411 #line 688 "src/parser_proc_grammar.y" /* glr.c:816 */
2413 (*(struct psi_impl_def_val
**)(&(*yyvalp
))) = NULL
;
2415 #line 2416 "src/parser_proc.c" /* glr.c:816 */
2419 #line 691 "src/parser_proc_grammar.y" /* glr.c:816 */
2421 (*(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
);
2422 (*(struct psi_impl_def_val
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2424 #line 2425 "src/parser_proc.c" /* glr.c:816 */
2428 #line 706 "src/parser_proc_grammar.y" /* glr.c:816 */
2430 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2432 #line 2433 "src/parser_proc.c" /* glr.c:816 */
2436 #line 713 "src/parser_proc_grammar.y" /* glr.c:816 */
2438 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
2439 psi_decl_type_init(PSI_T_FUNCTION
, (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->var
->name
),
2440 psi_decl_var_copy((*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->var
)
2442 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->func
->token
);
2443 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.func
= (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
2445 #line 2446 "src/parser_proc.c" /* glr.c:816 */
2449 #line 721 "src/parser_proc_grammar.y" /* glr.c:816 */
2451 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2452 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
2453 psi_decl_type_init(PSI_T_ENUM
, (*(struct psi_decl_enum
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->name
),
2454 psi_decl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, 0, 0)
2456 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2457 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_decl_enum
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->token
);
2458 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.enm
= (*(struct psi_decl_enum
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2460 #line 2461 "src/parser_proc.c" /* glr.c:816 */
2464 #line 731 "src/parser_proc_grammar.y" /* glr.c:816 */
2466 (*(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
)));
2467 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
));
2468 (*(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
)));
2469 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.strct
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2470 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.strct
->align
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)).pos
;
2471 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.strct
->size
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)).len
;
2473 #line 2474 "src/parser_proc.c" /* glr.c:816 */
2477 #line 739 "src/parser_proc_grammar.y" /* glr.c:816 */
2479 (*(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
)));
2480 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
));
2481 (*(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
)));
2482 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.unn
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
2483 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.unn
->align
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)).pos
;
2484 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->real
.unn
->size
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)).len
;
2486 #line 2487 "src/parser_proc.c" /* glr.c:816 */
2490 #line 750 "src/parser_proc_grammar.y" /* glr.c:816 */
2492 (*(struct psi_decl_type
**)(&(*yyvalp
))) = (*(struct psi_decl_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
2494 #line 2495 "src/parser_proc.c" /* glr.c:816 */
2498 #line 757 "src/parser_proc_grammar.y" /* glr.c:816 */
2500 (*(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
);
2501 (*(struct psi_decl_type
**)(&(*yyvalp
)))->token
= (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
2503 #line 2504 "src/parser_proc.c" /* glr.c:816 */
2507 #line 765 "src/parser_proc_grammar.y" /* glr.c:816 */
2509 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2510 (*(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
);
2511 (*(struct psi_decl_type
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2513 #line 2514 "src/parser_proc.c" /* glr.c:816 */
2517 #line 770 "src/parser_proc_grammar.y" /* glr.c:816 */
2519 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2520 (*(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
);
2521 (*(struct psi_decl_type
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2523 #line 2524 "src/parser_proc.c" /* glr.c:816 */
2527 #line 775 "src/parser_proc_grammar.y" /* glr.c:816 */
2529 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2530 (*(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
);
2531 (*(struct psi_decl_type
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2533 #line 2534 "src/parser_proc.c" /* glr.c:816 */
2537 #line 785 "src/parser_proc_grammar.y" /* glr.c:816 */
2539 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2541 #line 2542 "src/parser_proc.c" /* glr.c:816 */
2545 #line 788 "src/parser_proc_grammar.y" /* glr.c:816 */
2547 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2549 #line 2550 "src/parser_proc.c" /* glr.c:816 */
2553 #line 794 "src/parser_proc_grammar.y" /* glr.c:816 */
2555 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2557 #line 2558 "src/parser_proc.c" /* glr.c:816 */
2561 #line 797 "src/parser_proc_grammar.y" /* glr.c:816 */
2563 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2565 #line 2566 "src/parser_proc.c" /* glr.c:816 */
2569 #line 800 "src/parser_proc_grammar.y" /* glr.c:816 */
2571 (*(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
)));
2573 #line 2574 "src/parser_proc.c" /* glr.c:816 */
2577 #line 822 "src/parser_proc_grammar.y" /* glr.c:816 */
2579 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2581 #line 2582 "src/parser_proc.c" /* glr.c:816 */
2585 #line 825 "src/parser_proc_grammar.y" /* glr.c:816 */
2587 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2589 #line 2590 "src/parser_proc.c" /* glr.c:816 */
2593 #line 828 "src/parser_proc_grammar.y" /* glr.c:816 */
2595 (*(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
)));
2597 #line 2598 "src/parser_proc.c" /* glr.c:816 */
2601 #line 834 "src/parser_proc_grammar.y" /* glr.c:816 */
2603 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2605 #line 2606 "src/parser_proc.c" /* glr.c:816 */
2609 #line 837 "src/parser_proc_grammar.y" /* glr.c:816 */
2611 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2613 #line 2614 "src/parser_proc.c" /* glr.c:816 */
2617 #line 840 "src/parser_proc_grammar.y" /* glr.c:816 */
2619 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2620 (*(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
)));
2621 free((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2623 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2626 #line 2627 "src/parser_proc.c" /* glr.c:816 */
2630 #line 848 "src/parser_proc_grammar.y" /* glr.c:816 */
2632 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2633 (*(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
)));
2634 free((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2635 free((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2637 (*(struct psi_token
**)(&(*yyvalp
))) = (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2640 #line 2641 "src/parser_proc.c" /* glr.c:816 */
2644 #line 860 "src/parser_proc_grammar.y" /* glr.c:816 */
2646 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
2648 #line 2649 "src/parser_proc.c" /* glr.c:816 */
2652 #line 863 "src/parser_proc_grammar.y" /* glr.c:816 */
2654 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2656 #line 2657 "src/parser_proc.c" /* glr.c:816 */
2660 #line 866 "src/parser_proc_grammar.y" /* glr.c:816 */
2662 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2663 (*(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
)));
2665 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2668 #line 2669 "src/parser_proc.c" /* glr.c:816 */
2672 #line 873 "src/parser_proc_grammar.y" /* glr.c:816 */
2674 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2676 #line 2677 "src/parser_proc.c" /* glr.c:816 */
2680 #line 876 "src/parser_proc_grammar.y" /* glr.c:816 */
2682 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2683 (*(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
)));
2685 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2688 #line 2689 "src/parser_proc.c" /* glr.c:816 */
2692 #line 886 "src/parser_proc_grammar.y" /* glr.c:816 */
2694 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
2696 #line 2697 "src/parser_proc.c" /* glr.c:816 */
2700 #line 892 "src/parser_proc_grammar.y" /* glr.c:816 */
2702 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
2704 #line 2705 "src/parser_proc.c" /* glr.c:816 */
2708 #line 900 "src/parser_proc_grammar.y" /* glr.c:816 */
2710 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
2712 #line 2713 "src/parser_proc.c" /* glr.c:816 */
2716 #line 903 "src/parser_proc_grammar.y" /* glr.c:816 */
2718 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2720 #line 2721 "src/parser_proc.c" /* glr.c:816 */
2724 #line 906 "src/parser_proc_grammar.y" /* glr.c:816 */
2726 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2727 (*(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
)));
2728 free((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2730 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2733 #line 2734 "src/parser_proc.c" /* glr.c:816 */
2737 #line 917 "src/parser_proc_grammar.y" /* glr.c:816 */
2739 (*(struct psi_decl
**)(&(*yyvalp
))) = (*(struct psi_decl
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2741 #line 2742 "src/parser_proc.c" /* glr.c:816 */
2745 #line 923 "src/parser_proc_grammar.y" /* glr.c:816 */
2747 (*(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
)));
2748 if ((*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2749 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->pointer_level
+= 1;
2750 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->array_size
= (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
2753 #line 2754 "src/parser_proc.c" /* glr.c:816 */
2757 #line 930 "src/parser_proc_grammar.y" /* glr.c:816 */
2759 (*(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
)));
2760 (*(struct psi_decl
**)(&(*yyvalp
)))->varargs
= 1;
2761 if ((*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2762 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->pointer_level
+= 1;
2763 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->array_size
= (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
2766 #line 2767 "src/parser_proc.c" /* glr.c:816 */
2770 #line 938 "src/parser_proc_grammar.y" /* glr.c:816 */
2772 (*(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
)));
2773 if ((*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2774 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->pointer_level
+= 1;
2775 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->array_size
= (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
2778 #line 2779 "src/parser_proc.c" /* glr.c:816 */
2782 #line 945 "src/parser_proc_grammar.y" /* glr.c:816 */
2784 (*(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
)));
2785 (*(struct psi_decl
**)(&(*yyvalp
)))->varargs
= 1;
2786 if ((*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
2787 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->pointer_level
+= 1;
2788 (*(struct psi_decl
**)(&(*yyvalp
)))->func
->var
->array_size
= (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
2791 #line 2792 "src/parser_proc.c" /* glr.c:816 */
2795 #line 961 "src/parser_proc_grammar.y" /* glr.c:816 */
2797 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2798 (*(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));
2799 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2800 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2802 #line 2803 "src/parser_proc.c" /* glr.c:816 */
2806 #line 967 "src/parser_proc_grammar.y" /* glr.c:816 */
2808 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2809 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
2810 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
),
2811 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)
2813 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
2814 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2815 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2817 #line 2818 "src/parser_proc.c" /* glr.c:816 */
2821 #line 977 "src/parser_proc_grammar.y" /* glr.c:816 */
2823 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2824 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
2825 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
),
2826 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)
2828 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
2829 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2830 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2832 #line 2833 "src/parser_proc.c" /* glr.c:816 */
2836 #line 987 "src/parser_proc_grammar.y" /* glr.c:816 */
2838 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2839 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
2840 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
),
2841 psi_decl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
, 0, 0)
2843 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
2844 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2845 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2847 #line 2848 "src/parser_proc.c" /* glr.c:816 */
2851 #line 1001 "src/parser_proc_grammar.y" /* glr.c:816 */
2853 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
2854 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
),
2855 psi_decl_var_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, 0, 0)
2857 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2858 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2859 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2861 #line 2862 "src/parser_proc.c" /* glr.c:816 */
2865 #line 1013 "src/parser_proc_grammar.y" /* glr.c:816 */
2867 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
2869 #line 2870 "src/parser_proc.c" /* glr.c:816 */
2873 #line 1016 "src/parser_proc_grammar.y" /* glr.c:816 */
2875 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
2877 #line 2878 "src/parser_proc.c" /* glr.c:816 */
2881 #line 1019 "src/parser_proc_grammar.y" /* glr.c:816 */
2883 (*(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
)));
2885 #line 2886 "src/parser_proc.c" /* glr.c:816 */
2889 #line 1022 "src/parser_proc_grammar.y" /* glr.c:816 */
2891 (*(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
)));
2893 #line 2894 "src/parser_proc.c" /* glr.c:816 */
2897 #line 1028 "src/parser_proc_grammar.y" /* glr.c:816 */
2899 (*(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
)));
2901 #line 2902 "src/parser_proc.c" /* glr.c:816 */
2905 #line 1031 "src/parser_proc_grammar.y" /* glr.c:816 */
2907 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2908 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
2909 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
),
2910 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)
2912 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
2913 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2914 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2916 #line 2917 "src/parser_proc.c" /* glr.c:816 */
2920 #line 1041 "src/parser_proc_grammar.y" /* glr.c:816 */
2922 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2923 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = psi_decl_arg_init(
2924 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
),
2925 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)
2927 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->type
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
2928 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2929 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
2931 #line 2932 "src/parser_proc.c" /* glr.c:816 */
2935 #line 1054 "src/parser_proc_grammar.y" /* glr.c:816 */
2937 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2938 (*(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
)));
2939 (*(struct psi_decl_var
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2941 #line 2942 "src/parser_proc.c" /* glr.c:816 */
2945 #line 1059 "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_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
)));
2949 (*(struct psi_decl_var
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
2951 #line 2952 "src/parser_proc.c" /* glr.c:816 */
2955 #line 1067 "src/parser_proc_grammar.y" /* glr.c:816 */
2957 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2958 (*(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
)));
2959 (*(struct psi_decl_union
**)(&(*yyvalp
)))->align
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)).pos
;
2960 (*(struct psi_decl_union
**)(&(*yyvalp
)))->size
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)).len
;
2961 (*(struct psi_decl_union
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
2963 #line 2964 "src/parser_proc.c" /* glr.c:816 */
2967 #line 1077 "src/parser_proc_grammar.y" /* glr.c:816 */
2969 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
2970 (*(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
)));
2971 (*(struct psi_decl_struct
**)(&(*yyvalp
)))->align
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)).pos
;
2972 (*(struct psi_decl_struct
**)(&(*yyvalp
)))->size
= (*(struct psi_layout
*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)).len
;
2973 (*(struct psi_decl_struct
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
2975 #line 2976 "src/parser_proc.c" /* glr.c:816 */
2979 #line 1087 "src/parser_proc_grammar.y" /* glr.c:816 */
2981 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
2983 #line 2984 "src/parser_proc.c" /* glr.c:816 */
2987 #line 1094 "src/parser_proc_grammar.y" /* glr.c:816 */
2989 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
2991 #line 2992 "src/parser_proc.c" /* glr.c:816 */
2995 #line 1100 "src/parser_proc_grammar.y" /* glr.c:816 */
2997 (*(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
)));
2999 #line 3000 "src/parser_proc.c" /* glr.c:816 */
3003 #line 1103 "src/parser_proc_grammar.y" /* glr.c:816 */
3005 (*(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
)));
3007 #line 3008 "src/parser_proc.c" /* glr.c:816 */
3011 #line 1109 "src/parser_proc_grammar.y" /* glr.c:816 */
3013 (*(struct psi_decl_arg
**)(&(*yyvalp
))) = (*(struct psi_decl_arg
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3014 (*(struct psi_decl_arg
**)(&(*yyvalp
)))->layout
= (*(struct psi_layout
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
3015 psi_parser_proc_add_from_typedef(P
, (*(struct psi_decl_arg
**)(&(*yyvalp
))));
3017 #line 3018 "src/parser_proc.c" /* glr.c:816 */
3021 #line 1117 "src/parser_proc_grammar.y" /* glr.c:816 */
3023 (*(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
)));
3024 (*(struct psi_decl_enum
**)(&(*yyvalp
)))->token
= (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
));
3026 #line 3027 "src/parser_proc.c" /* glr.c:816 */
3030 #line 1124 "src/parser_proc_grammar.y" /* glr.c:816 */
3032 (*(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
)));
3034 #line 3035 "src/parser_proc.c" /* glr.c:816 */
3038 #line 1127 "src/parser_proc_grammar.y" /* glr.c:816 */
3040 (*(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
)));
3042 #line 3043 "src/parser_proc.c" /* glr.c:816 */
3046 #line 1133 "src/parser_proc_grammar.y" /* glr.c:816 */
3048 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3049 (*(struct psi_decl_enum_item
**)(&(*yyvalp
))) = psi_decl_enum_item_init((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->text
, NULL
);
3050 (*(struct psi_decl_enum_item
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3052 #line 3053 "src/parser_proc.c" /* glr.c:816 */
3056 #line 1138 "src/parser_proc_grammar.y" /* glr.c:816 */
3058 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3059 (*(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
)));
3060 (*(struct psi_decl_enum_item
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3062 #line 3063 "src/parser_proc.c" /* glr.c:816 */
3066 #line 1146 "src/parser_proc_grammar.y" /* glr.c:816 */
3068 (*(struct psi_num_exp
**)(&(*yyvalp
))) = psi_num_exp_init_num((*(struct psi_number
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3069 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_number
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->token
);
3071 #line 3072 "src/parser_proc.c" /* glr.c:816 */
3075 #line 1150 "src/parser_proc_grammar.y" /* glr.c:816 */
3077 (*(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
)));
3078 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_decl_type
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
))->token
);
3080 #line 3081 "src/parser_proc.c" /* glr.c:816 */
3084 #line 1154 "src/parser_proc_grammar.y" /* glr.c:816 */
3086 (*(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
)));
3087 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3089 #line 3090 "src/parser_proc.c" /* glr.c:816 */
3093 #line 1158 "src/parser_proc_grammar.y" /* glr.c:816 */
3095 (*(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
)));
3096 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3098 #line 3099 "src/parser_proc.c" /* glr.c:816 */
3102 #line 1162 "src/parser_proc_grammar.y" /* glr.c:816 */
3104 (*(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
)));
3105 (*(struct psi_num_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3107 #line 3108 "src/parser_proc.c" /* glr.c:816 */
3111 #line 1169 "src/parser_proc_grammar.y" /* glr.c:816 */
3113 (*(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
);
3114 (*(struct psi_number
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3116 #line 3117 "src/parser_proc.c" /* glr.c:816 */
3120 #line 1173 "src/parser_proc_grammar.y" /* glr.c:816 */
3122 (*(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
);
3123 (*(struct psi_number
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3125 #line 3126 "src/parser_proc.c" /* glr.c:816 */
3129 #line 1177 "src/parser_proc_grammar.y" /* glr.c:816 */
3131 (*(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
);
3132 (*(struct psi_number
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3134 #line 3135 "src/parser_proc.c" /* glr.c:816 */
3138 #line 1181 "src/parser_proc_grammar.y" /* glr.c:816 */
3140 (*(struct psi_number
**)(&(*yyvalp
))) = psi_number_init(PSI_T_NAME
, (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3141 (*(struct psi_number
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))->token
);
3143 #line 3144 "src/parser_proc.c" /* glr.c:816 */
3147 #line 1188 "src/parser_proc_grammar.y" /* glr.c:816 */
3149 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3150 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3154 psi_token_hash((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), digest
);
3155 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_append("@", psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))), 1, digest
);
3158 #line 3159 "src/parser_proc.c" /* glr.c:816 */
3162 #line 1201 "src/parser_proc_grammar.y" /* glr.c:816 */
3164 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3165 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3169 psi_token_hash((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), digest
);
3170 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_append("@", psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))), 1, digest
);
3173 #line 3174 "src/parser_proc.c" /* glr.c:816 */
3177 #line 1214 "src/parser_proc_grammar.y" /* glr.c:816 */
3179 if ((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
))) {
3180 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3184 psi_token_hash((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)), digest
);
3185 (*(struct psi_token
**)(&(*yyvalp
))) = psi_token_append("@", psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))), 1, digest
);
3188 #line 3189 "src/parser_proc.c" /* glr.c:816 */
3192 #line 1227 "src/parser_proc_grammar.y" /* glr.c:816 */
3194 (*(struct psi_token
**)(&(*yyvalp
))) = NULL
;
3196 #line 3197 "src/parser_proc.c" /* glr.c:816 */
3200 #line 1230 "src/parser_proc_grammar.y" /* glr.c:816 */
3202 (*(struct psi_token
**)(&(*yyvalp
))) = (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3203 (*(struct psi_token
**)(&(*yyvalp
)))->type
= PSI_T_NAME
;
3205 #line 3206 "src/parser_proc.c" /* glr.c:816 */
3209 #line 1237 "src/parser_proc_grammar.y" /* glr.c:816 */
3211 (*(struct psi_layout
**)(&(*yyvalp
))) = NULL
;
3213 #line 3214 "src/parser_proc.c" /* glr.c:816 */
3217 #line 1240 "src/parser_proc_grammar.y" /* glr.c:816 */
3219 (*(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
));
3221 #line 3222 "src/parser_proc.c" /* glr.c:816 */
3225 #line 1246 "src/parser_proc_grammar.y" /* glr.c:816 */
3227 (*(struct psi_layout
*)(&(*yyvalp
))).pos
= 0;
3228 (*(struct psi_layout
*)(&(*yyvalp
))).len
= 0;
3230 #line 3231 "src/parser_proc.c" /* glr.c:816 */
3234 #line 1250 "src/parser_proc_grammar.y" /* glr.c:816 */
3236 (*(struct psi_layout
*)(&(*yyvalp
))).pos
= atol((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->text
);
3237 (*(struct psi_layout
*)(&(*yyvalp
))).len
= atol((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
);
3239 #line 3240 "src/parser_proc.c" /* glr.c:816 */
3243 #line 1257 "src/parser_proc_grammar.y" /* glr.c:816 */
3245 (*(size_t*)(&(*yyvalp
))) = 0;
3247 #line 3248 "src/parser_proc.c" /* glr.c:816 */
3251 #line 1260 "src/parser_proc_grammar.y" /* glr.c:816 */
3253 (*(size_t*)(&(*yyvalp
))) = atol((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
))->text
);
3255 #line 3256 "src/parser_proc.c" /* glr.c:816 */
3259 #line 1266 "src/parser_proc_grammar.y" /* glr.c:816 */
3261 (*(size_t*)(&(*yyvalp
))) = 0;
3263 #line 3264 "src/parser_proc.c" /* glr.c:816 */
3267 #line 1269 "src/parser_proc_grammar.y" /* glr.c:816 */
3269 (*(size_t*)(&(*yyvalp
))) = (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3271 #line 3272 "src/parser_proc.c" /* glr.c:816 */
3275 #line 1275 "src/parser_proc_grammar.y" /* glr.c:816 */
3277 (*(size_t*)(&(*yyvalp
))) = 1;
3279 #line 3280 "src/parser_proc.c" /* glr.c:816 */
3283 #line 1278 "src/parser_proc_grammar.y" /* glr.c:816 */
3285 (*(size_t*)(&(*yyvalp
))) = (*(size_t*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)) + 1;
3287 #line 3288 "src/parser_proc.c" /* glr.c:816 */
3291 #line 1290 "src/parser_proc_grammar.y" /* glr.c:816 */
3293 (*(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
)));
3295 #line 3296 "src/parser_proc.c" /* glr.c:816 */
3299 #line 1293 "src/parser_proc_grammar.y" /* glr.c:816 */
3301 (*(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
)));
3302 (*(struct psi_impl_func
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->static_memory
= 1;
3304 #line 3305 "src/parser_proc.c" /* glr.c:816 */
3308 #line 1300 "src/parser_proc_grammar.y" /* glr.c:816 */
3310 (*(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
)));
3311 (*(struct psi_impl_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
3312 (*(struct psi_impl_func
**)(&(*yyvalp
)))->return_reference
= (*(bool*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
));
3314 #line 3315 "src/parser_proc.c" /* glr.c:816 */
3318 #line 1305 "src/parser_proc_grammar.y" /* glr.c:816 */
3320 (*(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
)));
3321 (*(struct psi_impl_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
3322 (*(struct psi_impl_func
**)(&(*yyvalp
)))->return_reference
= (*(bool*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-6)].yystate
.yysemantics
.yysval
));
3324 #line 3325 "src/parser_proc.c" /* glr.c:816 */
3328 #line 1310 "src/parser_proc_grammar.y" /* glr.c:816 */
3330 (*(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
)));
3331 (*(struct psi_impl_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-10)].yystate
.yysemantics
.yysval
)));
3332 (*(struct psi_impl_func
**)(&(*yyvalp
)))->return_reference
= (*(bool*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-11)].yystate
.yysemantics
.yysval
));
3333 (*(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
);
3334 (*(struct psi_impl_func
**)(&(*yyvalp
)))->vararg
->var
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
3336 #line 3337 "src/parser_proc.c" /* glr.c:816 */
3340 #line 1320 "src/parser_proc_grammar.y" /* glr.c:816 */
3342 (*(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
)));
3344 #line 3345 "src/parser_proc.c" /* glr.c:816 */
3348 #line 1323 "src/parser_proc_grammar.y" /* glr.c:816 */
3350 (*(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
)));
3352 #line 3353 "src/parser_proc.c" /* glr.c:816 */
3356 #line 1329 "src/parser_proc_grammar.y" /* glr.c:816 */
3358 (*(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
);
3360 #line 3361 "src/parser_proc.c" /* glr.c:816 */
3364 #line 1332 "src/parser_proc_grammar.y" /* glr.c:816 */
3366 (*(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
)));
3368 #line 3369 "src/parser_proc.c" /* glr.c:816 */
3372 #line 1338 "src/parser_proc_grammar.y" /* glr.c:816 */
3374 (*(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
)));
3375 (*(struct psi_impl_var
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3377 #line 3378 "src/parser_proc.c" /* glr.c:816 */
3381 #line 1345 "src/parser_proc_grammar.y" /* glr.c:816 */
3383 (*(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
);
3384 (*(struct psi_impl_type
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3386 #line 3387 "src/parser_proc.c" /* glr.c:816 */
3390 #line 1364 "src/parser_proc_grammar.y" /* glr.c:816 */
3392 (*(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
)));
3394 #line 3395 "src/parser_proc.c" /* glr.c:816 */
3398 #line 1367 "src/parser_proc_grammar.y" /* glr.c:816 */
3400 (*(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
)));
3402 #line 3403 "src/parser_proc.c" /* glr.c:816 */
3406 #line 1373 "src/parser_proc_grammar.y" /* glr.c:816 */
3408 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_return_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3410 #line 3411 "src/parser_proc.c" /* glr.c:816 */
3414 #line 1376 "src/parser_proc_grammar.y" /* glr.c:816 */
3416 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_let_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3418 #line 3419 "src/parser_proc.c" /* glr.c:816 */
3422 #line 1379 "src/parser_proc_grammar.y" /* glr.c:816 */
3424 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_set_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3426 #line 3427 "src/parser_proc.c" /* glr.c:816 */
3430 #line 1382 "src/parser_proc_grammar.y" /* glr.c:816 */
3432 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_assert_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3434 #line 3435 "src/parser_proc.c" /* glr.c:816 */
3438 #line 1385 "src/parser_proc_grammar.y" /* glr.c:816 */
3440 (*(struct psi_token
***)(&(*yyvalp
))) = (struct psi_token
**) (*(struct psi_free_stmt
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3442 #line 3443 "src/parser_proc.c" /* glr.c:816 */
3446 #line 1391 "src/parser_proc_grammar.y" /* glr.c:816 */
3448 (*(struct psi_let_stmt
**)(&(*yyvalp
))) = psi_let_stmt_init((*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3449 (*(struct psi_let_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3451 #line 3452 "src/parser_proc.c" /* glr.c:816 */
3455 #line 1395 "src/parser_proc_grammar.y" /* glr.c:816 */
3457 (*(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
))));
3458 (*(struct psi_let_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
3459 (*(struct psi_let_stmt
**)(&(*yyvalp
)))->exp
->is_reference
= (*(bool*)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3461 #line 3462 "src/parser_proc.c" /* glr.c:816 */
3465 #line 1404 "src/parser_proc_grammar.y" /* glr.c:816 */
3467 (*(struct psi_let_exp
**)(&(*yyvalp
))) = (*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3468 (*(struct psi_let_exp
**)(&(*yyvalp
)))->is_reference
= true;
3470 #line 3471 "src/parser_proc.c" /* glr.c:816 */
3474 #line 1408 "src/parser_proc_grammar.y" /* glr.c:816 */
3476 (*(struct psi_let_exp
**)(&(*yyvalp
))) = (*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3477 (*(struct psi_let_exp
**)(&(*yyvalp
)))->is_reference
= false;
3479 #line 3480 "src/parser_proc.c" /* glr.c:816 */
3483 #line 1415 "src/parser_proc_grammar.y" /* glr.c:816 */
3485 (*(struct psi_let_exp
**)(&(*yyvalp
))) = psi_let_exp_init(PSI_LET_NULL
, NULL
);
3487 #line 3488 "src/parser_proc.c" /* glr.c:816 */
3491 #line 1418 "src/parser_proc_grammar.y" /* glr.c:816 */
3493 (*(struct psi_let_exp
**)(&(*yyvalp
))) = psi_let_exp_init(PSI_LET_CALLOC
, (*(struct psi_let_calloc
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3495 #line 3496 "src/parser_proc.c" /* glr.c:816 */
3499 #line 1421 "src/parser_proc_grammar.y" /* glr.c:816 */
3501 (*(struct psi_let_exp
**)(&(*yyvalp
))) = psi_let_exp_init(PSI_LET_CALLBACK
, (*(struct psi_let_callback
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3503 #line 3504 "src/parser_proc.c" /* glr.c:816 */
3507 #line 1424 "src/parser_proc_grammar.y" /* glr.c:816 */
3509 (*(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
)));
3511 #line 3512 "src/parser_proc.c" /* glr.c:816 */
3515 #line 1427 "src/parser_proc_grammar.y" /* glr.c:816 */
3517 (*(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
)));
3519 #line 3520 "src/parser_proc.c" /* glr.c:816 */
3523 #line 1433 "src/parser_proc_grammar.y" /* glr.c:816 */
3525 (*(struct psi_let_exp
**)(&(*yyvalp
))) = (*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3526 (*(struct psi_let_exp
**)(&(*yyvalp
)))->var
= (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3528 #line 3529 "src/parser_proc.c" /* glr.c:816 */
3532 #line 1437 "src/parser_proc_grammar.y" /* glr.c:816 */
3534 (*(struct psi_let_exp
**)(&(*yyvalp
))) = (*(struct psi_let_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3535 (*(struct psi_let_exp
**)(&(*yyvalp
)))->is_reference
= 1;
3536 (*(struct psi_let_exp
**)(&(*yyvalp
)))->var
= (*(struct psi_decl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
));
3538 #line 3539 "src/parser_proc.c" /* glr.c:816 */
3542 #line 1445 "src/parser_proc_grammar.y" /* glr.c:816 */
3544 (*(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
)));
3545 (*(struct psi_let_calloc
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
3547 #line 3548 "src/parser_proc.c" /* glr.c:816 */
3551 #line 1452 "src/parser_proc_grammar.y" /* glr.c:816 */
3553 (*(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
)));
3554 (*(struct psi_let_callback
**)(&(*yyvalp
)))->func
->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-6)].yystate
.yysemantics
.yysval
)));
3555 (*(struct psi_let_callback
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-7)].yystate
.yysemantics
.yysval
)));
3557 #line 3558 "src/parser_proc.c" /* glr.c:816 */
3561 #line 1460 "src/parser_proc_grammar.y" /* glr.c:816 */
3563 (*(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
)));
3564 (*(struct psi_let_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
3565 (*(struct psi_let_func
**)(&(*yyvalp
)))->inner
= (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
3567 #line 3568 "src/parser_proc.c" /* glr.c:816 */
3571 #line 1481 "src/parser_proc_grammar.y" /* glr.c:816 */
3573 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
3575 #line 3576 "src/parser_proc.c" /* glr.c:816 */
3579 #line 1484 "src/parser_proc_grammar.y" /* glr.c:816 */
3581 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3583 #line 3584 "src/parser_proc.c" /* glr.c:816 */
3587 #line 1490 "src/parser_proc_grammar.y" /* glr.c:816 */
3589 (*(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
)));
3591 #line 3592 "src/parser_proc.c" /* glr.c:816 */
3595 #line 1493 "src/parser_proc_grammar.y" /* glr.c:816 */
3597 (*(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
)));
3599 #line 3600 "src/parser_proc.c" /* glr.c:816 */
3603 #line 1504 "src/parser_proc_grammar.y" /* glr.c:816 */
3605 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
3607 #line 3608 "src/parser_proc.c" /* glr.c:816 */
3611 #line 1507 "src/parser_proc_grammar.y" /* glr.c:816 */
3613 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3615 #line 3616 "src/parser_proc.c" /* glr.c:816 */
3619 #line 1513 "src/parser_proc_grammar.y" /* glr.c:816 */
3621 (*(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
)));
3623 #line 3624 "src/parser_proc.c" /* glr.c:816 */
3627 #line 1516 "src/parser_proc_grammar.y" /* glr.c:816 */
3629 (*(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
)));
3631 #line 3632 "src/parser_proc.c" /* glr.c:816 */
3635 #line 1522 "src/parser_proc_grammar.y" /* glr.c:816 */
3637 (*(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
))));
3638 (*(struct psi_return_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3640 #line 3641 "src/parser_proc.c" /* glr.c:816 */
3644 #line 1529 "src/parser_proc_grammar.y" /* glr.c:816 */
3646 (*(struct psi_set_stmt
**)(&(*yyvalp
))) = psi_set_stmt_init((*(struct psi_set_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3647 (*(struct psi_set_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3649 #line 3650 "src/parser_proc.c" /* glr.c:816 */
3653 #line 1536 "src/parser_proc_grammar.y" /* glr.c:816 */
3655 (*(struct psi_set_exp
**)(&(*yyvalp
))) = psi_set_exp_init(PSI_SET_FUNC
, (*(struct psi_set_func
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3657 #line 3658 "src/parser_proc.c" /* glr.c:816 */
3661 #line 1539 "src/parser_proc_grammar.y" /* glr.c:816 */
3663 (*(struct psi_set_exp
**)(&(*yyvalp
))) = psi_set_exp_init(PSI_SET_NUMEXP
, (*(struct psi_num_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
)));
3665 #line 3666 "src/parser_proc.c" /* glr.c:816 */
3669 #line 1542 "src/parser_proc_grammar.y" /* glr.c:816 */
3671 (*(struct psi_set_exp
**)(&(*yyvalp
))) = (*(struct psi_set_exp
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3672 (*(struct psi_set_exp
**)(&(*yyvalp
)))->var
= (*(struct psi_impl_var
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
));
3674 #line 3675 "src/parser_proc.c" /* glr.c:816 */
3678 #line 1549 "src/parser_proc_grammar.y" /* glr.c:816 */
3680 (*(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
)));
3681 (*(struct psi_set_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-4)].yystate
.yysemantics
.yysval
)));
3682 (*(struct psi_set_func
**)(&(*yyvalp
)))->inner
= (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
));
3684 #line 3685 "src/parser_proc.c" /* glr.c:816 */
3688 #line 1554 "src/parser_proc_grammar.y" /* glr.c:816 */
3690 (*(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
)));
3691 (*(struct psi_set_func
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-5)].yystate
.yysemantics
.yysval
)));
3692 (*(struct psi_set_func
**)(&(*yyvalp
)))->recursive
= 1;
3694 #line 3695 "src/parser_proc.c" /* glr.c:816 */
3698 #line 1573 "src/parser_proc_grammar.y" /* glr.c:816 */
3700 (*(struct psi_plist
**)(&(*yyvalp
))) = NULL
;
3702 #line 3703 "src/parser_proc.c" /* glr.c:816 */
3706 #line 1576 "src/parser_proc_grammar.y" /* glr.c:816 */
3708 (*(struct psi_plist
**)(&(*yyvalp
))) = (*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (0)].yystate
.yysemantics
.yysval
));
3710 #line 3711 "src/parser_proc.c" /* glr.c:816 */
3714 #line 1582 "src/parser_proc_grammar.y" /* glr.c:816 */
3716 (*(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
)));
3718 #line 3719 "src/parser_proc.c" /* glr.c:816 */
3722 #line 1585 "src/parser_proc_grammar.y" /* glr.c:816 */
3724 (*(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
)));
3726 #line 3727 "src/parser_proc.c" /* glr.c:816 */
3730 #line 1591 "src/parser_proc_grammar.y" /* glr.c:816 */
3732 (*(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
)));
3733 (*(struct psi_assert_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3735 #line 3736 "src/parser_proc.c" /* glr.c:816 */
3739 #line 1603 "src/parser_proc_grammar.y" /* glr.c:816 */
3741 (*(struct psi_free_stmt
**)(&(*yyvalp
))) = psi_free_stmt_init((*(struct psi_plist
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-1)].yystate
.yysemantics
.yysval
)));
3742 (*(struct psi_free_stmt
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-2)].yystate
.yysemantics
.yysval
)));
3744 #line 3745 "src/parser_proc.c" /* glr.c:816 */
3748 #line 1610 "src/parser_proc_grammar.y" /* glr.c:816 */
3750 (*(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
)));
3752 #line 3753 "src/parser_proc.c" /* glr.c:816 */
3756 #line 1613 "src/parser_proc_grammar.y" /* glr.c:816 */
3758 (*(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
)));
3760 #line 3761 "src/parser_proc.c" /* glr.c:816 */
3764 #line 1619 "src/parser_proc_grammar.y" /* glr.c:816 */
3766 (*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
))->type
= PSI_T_NAME
;
3767 (*(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
)));
3768 (*(struct psi_free_exp
**)(&(*yyvalp
)))->token
= psi_token_copy((*(struct psi_token
**)(&((yyGLRStackItem
const *)yyvsp
)[YYFILL (-3)].yystate
.yysemantics
.yysval
)));
3770 #line 3771 "src/parser_proc.c" /* glr.c:816 */
3774 #line 1627 "src/parser_proc_grammar.y" /* glr.c:816 */
3776 (*(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
)));
3778 #line 3779 "src/parser_proc.c" /* glr.c:816 */
3782 #line 1630 "src/parser_proc_grammar.y" /* glr.c:816 */
3784 (*(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
)));
3786 #line 3787 "src/parser_proc.c" /* glr.c:816 */
3790 #line 1636 "src/parser_proc_grammar.y" /* glr.c:816 */
3792 (*(bool*)(&(*yyvalp
))) = false;
3794 #line 3795 "src/parser_proc.c" /* glr.c:816 */
3798 #line 1639 "src/parser_proc_grammar.y" /* glr.c:816 */
3800 (*(bool*)(&(*yyvalp
))) = true;
3802 #line 3803 "src/parser_proc.c" /* glr.c:816 */
3806 #line 3807 "src/parser_proc.c" /* glr.c:816 */
3817 # undef YYRECOVERING
3822 yyuserMerge (int yyn
, YYSTYPE
* yy0
, YYSTYPE
* yy1
)
3834 /* Bison grammar-table manipulation. */
3836 /*-----------------------------------------------.
3837 | Release the memory associated to this symbol. |
3838 `-----------------------------------------------*/
3841 yydestruct (const char *yymsg
, int yytype
, YYSTYPE
*yyvaluep
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
3849 YY_SYMBOL_PRINT (yymsg
, yytype
, yyvaluep
, yylocationp
);
3851 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3854 case 124: /* binary_op_token */
3855 #line 269 "src/parser_proc_grammar.y" /* glr.c:846 */
3857 #line 3858 "src/parser_proc.c" /* glr.c:846 */
3860 case 125: /* unary_op_token */
3861 #line 269 "src/parser_proc_grammar.y" /* glr.c:846 */
3863 #line 3864 "src/parser_proc.c" /* glr.c:846 */
3866 case 126: /* name_token */
3867 #line 269 "src/parser_proc_grammar.y" /* glr.c:846 */
3869 #line 3870 "src/parser_proc.c" /* glr.c:846 */
3872 case 127: /* any_noeol_token */
3873 #line 269 "src/parser_proc_grammar.y" /* glr.c:846 */
3875 #line 3876 "src/parser_proc.c" /* glr.c:846 */
3879 #line 263 "src/parser_proc_grammar.y" /* glr.c:846 */
3880 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
3881 #line 3882 "src/parser_proc.c" /* glr.c:846 */
3885 #line 278 "src/parser_proc_grammar.y" /* glr.c:846 */
3886 {psi_cpp_exp_free(&(*(struct psi_cpp_exp
**)(&(*yyvaluep
))));}
3887 #line 3888 "src/parser_proc.c" /* glr.c:846 */
3890 case 133: /* cpp_exp */
3891 #line 278 "src/parser_proc_grammar.y" /* glr.c:846 */
3892 {psi_cpp_exp_free(&(*(struct psi_cpp_exp
**)(&(*yyvaluep
))));}
3893 #line 3894 "src/parser_proc.c" /* glr.c:846 */
3896 case 134: /* cpp_message_token */
3897 #line 266 "src/parser_proc_grammar.y" /* glr.c:846 */
3899 #line 3900 "src/parser_proc.c" /* glr.c:846 */
3902 case 135: /* cpp_include_token */
3903 #line 266 "src/parser_proc_grammar.y" /* glr.c:846 */
3905 #line 3906 "src/parser_proc.c" /* glr.c:846 */
3908 case 136: /* cpp_header_token */
3909 #line 266 "src/parser_proc_grammar.y" /* glr.c:846 */
3911 #line 3912 "src/parser_proc.c" /* glr.c:846 */
3914 case 137: /* cpp_no_arg_token */
3915 #line 266 "src/parser_proc_grammar.y" /* glr.c:846 */
3917 #line 3918 "src/parser_proc.c" /* glr.c:846 */
3920 case 138: /* cpp_name_arg_token */
3921 #line 266 "src/parser_proc_grammar.y" /* glr.c:846 */
3923 #line 3924 "src/parser_proc.c" /* glr.c:846 */
3926 case 139: /* cpp_exp_arg_token */
3927 #line 266 "src/parser_proc_grammar.y" /* glr.c:846 */
3929 #line 3930 "src/parser_proc.c" /* glr.c:846 */
3932 case 140: /* cpp_macro_decl */
3933 #line 280 "src/parser_proc_grammar.y" /* glr.c:846 */
3934 {psi_cpp_macro_decl_free(&(*(struct psi_cpp_macro_decl
**)(&(*yyvaluep
))));}
3935 #line 3936 "src/parser_proc.c" /* glr.c:846 */
3938 case 141: /* cpp_macro_sig */
3939 #line 282 "src/parser_proc_grammar.y" /* glr.c:846 */
3940 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
3941 #line 3942 "src/parser_proc.c" /* glr.c:846 */
3944 case 142: /* cpp_macro_sig_args */
3945 #line 282 "src/parser_proc_grammar.y" /* glr.c:846 */
3946 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
3947 #line 3948 "src/parser_proc.c" /* glr.c:846 */
3950 case 143: /* cpp_macro_decl_tokens */
3951 #line 282 "src/parser_proc_grammar.y" /* glr.c:846 */
3952 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
3953 #line 3954 "src/parser_proc.c" /* glr.c:846 */
3956 case 144: /* cpp_macro_decl_token_list */
3957 #line 282 "src/parser_proc_grammar.y" /* glr.c:846 */
3958 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
3959 #line 3960 "src/parser_proc.c" /* glr.c:846 */
3962 case 145: /* cpp_macro_exp */
3963 #line 284 "src/parser_proc_grammar.y" /* glr.c:846 */
3964 {psi_num_exp_free(&(*(struct psi_num_exp
**)(&(*yyvaluep
))));}
3965 #line 3966 "src/parser_proc.c" /* glr.c:846 */
3968 case 146: /* cpp_macro_call_args */
3969 #line 282 "src/parser_proc_grammar.y" /* glr.c:846 */
3970 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
3971 #line 3972 "src/parser_proc.c" /* glr.c:846 */
3974 case 147: /* cpp_macro_call_arg_list */
3975 #line 282 "src/parser_proc_grammar.y" /* glr.c:846 */
3976 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
3977 #line 3978 "src/parser_proc.c" /* glr.c:846 */
3980 case 148: /* constant */
3981 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
3982 {psi_const_free(&(*(struct psi_const
**)(&(*yyvaluep
))));}
3983 #line 3984 "src/parser_proc.c" /* glr.c:846 */
3986 case 149: /* constant_type */
3987 #line 292 "src/parser_proc_grammar.y" /* glr.c:846 */
3988 {psi_const_type_free(&(*(struct psi_const_type
**)(&(*yyvaluep
))));}
3989 #line 3990 "src/parser_proc.c" /* glr.c:846 */
3992 case 150: /* constant_type_token */
3993 #line 287 "src/parser_proc_grammar.y" /* glr.c:846 */
3995 #line 3996 "src/parser_proc.c" /* glr.c:846 */
3998 case 151: /* impl_def_val */
3999 #line 294 "src/parser_proc_grammar.y" /* glr.c:846 */
4000 {psi_impl_def_val_free(&(*(struct psi_impl_def_val
**)(&(*yyvaluep
))));}
4001 #line 4002 "src/parser_proc.c" /* glr.c:846 */
4004 case 152: /* impl_def_val_token */
4005 #line 287 "src/parser_proc_grammar.y" /* glr.c:846 */
4007 #line 4008 "src/parser_proc.c" /* glr.c:846 */
4010 case 153: /* decl_typedef */
4011 #line 307 "src/parser_proc_grammar.y" /* glr.c:846 */
4012 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4013 #line 4014 "src/parser_proc.c" /* glr.c:846 */
4016 case 154: /* typedef */
4017 #line 307 "src/parser_proc_grammar.y" /* glr.c:846 */
4018 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4019 #line 4020 "src/parser_proc.c" /* glr.c:846 */
4022 case 155: /* const_decl_type */
4023 #line 303 "src/parser_proc_grammar.y" /* glr.c:846 */
4024 {psi_decl_type_free(&(*(struct psi_decl_type
**)(&(*yyvaluep
))));}
4025 #line 4026 "src/parser_proc.c" /* glr.c:846 */
4028 case 156: /* decl_type */
4029 #line 303 "src/parser_proc_grammar.y" /* glr.c:846 */
4030 {psi_decl_type_free(&(*(struct psi_decl_type
**)(&(*yyvaluep
))));}
4031 #line 4032 "src/parser_proc.c" /* glr.c:846 */
4034 case 157: /* decl_type_complex */
4035 #line 303 "src/parser_proc_grammar.y" /* glr.c:846 */
4036 {psi_decl_type_free(&(*(struct psi_decl_type
**)(&(*yyvaluep
))));}
4037 #line 4038 "src/parser_proc.c" /* glr.c:846 */
4040 case 158: /* decl_type_simple */
4041 #line 297 "src/parser_proc_grammar.y" /* glr.c:846 */
4042 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4043 #line 4044 "src/parser_proc.c" /* glr.c:846 */
4046 case 159: /* decl_real_type */
4047 #line 297 "src/parser_proc_grammar.y" /* glr.c:846 */
4048 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4049 #line 4050 "src/parser_proc.c" /* glr.c:846 */
4052 case 160: /* decl_stdint_type */
4053 #line 300 "src/parser_proc_grammar.y" /* glr.c:846 */
4055 #line 4056 "src/parser_proc.c" /* glr.c:846 */
4058 case 161: /* int_signed */
4059 #line 275 "src/parser_proc_grammar.y" /* glr.c:846 */
4061 #line 4062 "src/parser_proc.c" /* glr.c:846 */
4064 case 162: /* int_width */
4065 #line 272 "src/parser_proc_grammar.y" /* glr.c:846 */
4066 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4067 #line 4068 "src/parser_proc.c" /* glr.c:846 */
4070 case 163: /* decl_int_type */
4071 #line 297 "src/parser_proc_grammar.y" /* glr.c:846 */
4072 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4073 #line 4074 "src/parser_proc.c" /* glr.c:846 */
4076 case 164: /* int_signed_types */
4077 #line 272 "src/parser_proc_grammar.y" /* glr.c:846 */
4078 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4079 #line 4080 "src/parser_proc.c" /* glr.c:846 */
4082 case 165: /* signed_short_types */
4083 #line 275 "src/parser_proc_grammar.y" /* glr.c:846 */
4085 #line 4086 "src/parser_proc.c" /* glr.c:846 */
4088 case 166: /* signed_long_types */
4089 #line 275 "src/parser_proc_grammar.y" /* glr.c:846 */
4091 #line 4092 "src/parser_proc.c" /* glr.c:846 */
4094 case 167: /* int_width_types */
4095 #line 272 "src/parser_proc_grammar.y" /* glr.c:846 */
4096 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4097 #line 4098 "src/parser_proc.c" /* glr.c:846 */
4100 case 168: /* decl_stmt */
4101 #line 305 "src/parser_proc_grammar.y" /* glr.c:846 */
4102 {psi_decl_free(&(*(struct psi_decl
**)(&(*yyvaluep
))));}
4103 #line 4104 "src/parser_proc.c" /* glr.c:846 */
4106 case 169: /* decl */
4107 #line 305 "src/parser_proc_grammar.y" /* glr.c:846 */
4108 {psi_decl_free(&(*(struct psi_decl
**)(&(*yyvaluep
))));}
4109 #line 4110 "src/parser_proc.c" /* glr.c:846 */
4112 case 170: /* decl_fn */
4113 #line 307 "src/parser_proc_grammar.y" /* glr.c:846 */
4114 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4115 #line 4116 "src/parser_proc.c" /* glr.c:846 */
4118 case 171: /* decl_functor */
4119 #line 307 "src/parser_proc_grammar.y" /* glr.c:846 */
4120 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4121 #line 4122 "src/parser_proc.c" /* glr.c:846 */
4124 case 172: /* decl_func */
4125 #line 307 "src/parser_proc_grammar.y" /* glr.c:846 */
4126 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4127 #line 4128 "src/parser_proc.c" /* glr.c:846 */
4130 case 173: /* decl_args */
4131 #line 319 "src/parser_proc_grammar.y" /* glr.c:846 */
4132 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4133 #line 4134 "src/parser_proc.c" /* glr.c:846 */
4136 case 174: /* decl_arg */
4137 #line 307 "src/parser_proc_grammar.y" /* glr.c:846 */
4138 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4139 #line 4140 "src/parser_proc.c" /* glr.c:846 */
4142 case 175: /* decl_var */
4143 #line 309 "src/parser_proc_grammar.y" /* glr.c:846 */
4144 {psi_decl_var_free(&(*(struct psi_decl_var
**)(&(*yyvaluep
))));}
4145 #line 4146 "src/parser_proc.c" /* glr.c:846 */
4148 case 176: /* decl_union */
4149 #line 313 "src/parser_proc_grammar.y" /* glr.c:846 */
4150 {psi_decl_union_free(&(*(struct psi_decl_union
**)(&(*yyvaluep
))));}
4151 #line 4152 "src/parser_proc.c" /* glr.c:846 */
4154 case 177: /* decl_struct */
4155 #line 311 "src/parser_proc_grammar.y" /* glr.c:846 */
4156 {psi_decl_struct_free(&(*(struct psi_decl_struct
**)(&(*yyvaluep
))));}
4157 #line 4158 "src/parser_proc.c" /* glr.c:846 */
4160 case 178: /* decl_struct_args */
4161 #line 319 "src/parser_proc_grammar.y" /* glr.c:846 */
4162 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4163 #line 4164 "src/parser_proc.c" /* glr.c:846 */
4166 case 179: /* struct_args_block */
4167 #line 319 "src/parser_proc_grammar.y" /* glr.c:846 */
4168 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4169 #line 4170 "src/parser_proc.c" /* glr.c:846 */
4172 case 180: /* struct_args */
4173 #line 319 "src/parser_proc_grammar.y" /* glr.c:846 */
4174 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4175 #line 4176 "src/parser_proc.c" /* glr.c:846 */
4178 case 181: /* struct_arg */
4179 #line 307 "src/parser_proc_grammar.y" /* glr.c:846 */
4180 {psi_decl_arg_free(&(*(struct psi_decl_arg
**)(&(*yyvaluep
))));}
4181 #line 4182 "src/parser_proc.c" /* glr.c:846 */
4184 case 182: /* decl_enum */
4185 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
4186 {psi_decl_enum_free(&(*(struct psi_decl_enum
**)(&(*yyvaluep
))));}
4187 #line 4188 "src/parser_proc.c" /* glr.c:846 */
4190 case 183: /* decl_enum_items */
4191 #line 319 "src/parser_proc_grammar.y" /* glr.c:846 */
4192 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4193 #line 4194 "src/parser_proc.c" /* glr.c:846 */
4196 case 184: /* decl_enum_item */
4197 #line 317 "src/parser_proc_grammar.y" /* glr.c:846 */
4198 {psi_decl_enum_item_free(&(*(struct psi_decl_enum_item
**)(&(*yyvaluep
))));}
4199 #line 4200 "src/parser_proc.c" /* glr.c:846 */
4202 case 185: /* num_exp */
4203 #line 370 "src/parser_proc_grammar.y" /* glr.c:846 */
4204 {psi_num_exp_free(&(*(struct psi_num_exp
**)(&(*yyvaluep
))));}
4205 #line 4206 "src/parser_proc.c" /* glr.c:846 */
4208 case 186: /* number */
4209 #line 372 "src/parser_proc_grammar.y" /* glr.c:846 */
4210 {psi_number_free(&(*(struct psi_number
**)(&(*yyvaluep
))));}
4211 #line 4212 "src/parser_proc.c" /* glr.c:846 */
4214 case 187: /* enum_name */
4215 #line 263 "src/parser_proc_grammar.y" /* glr.c:846 */
4216 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4217 #line 4218 "src/parser_proc.c" /* glr.c:846 */
4220 case 188: /* union_name */
4221 #line 263 "src/parser_proc_grammar.y" /* glr.c:846 */
4222 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4223 #line 4224 "src/parser_proc.c" /* glr.c:846 */
4226 case 189: /* struct_name */
4227 #line 263 "src/parser_proc_grammar.y" /* glr.c:846 */
4228 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4229 #line 4230 "src/parser_proc.c" /* glr.c:846 */
4232 case 190: /* optional_name */
4233 #line 263 "src/parser_proc_grammar.y" /* glr.c:846 */
4234 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4235 #line 4236 "src/parser_proc.c" /* glr.c:846 */
4238 case 191: /* decl_layout */
4239 #line 324 "src/parser_proc_grammar.y" /* glr.c:846 */
4240 {psi_layout_free(&(*(struct psi_layout
**)(&(*yyvaluep
))));}
4241 #line 4242 "src/parser_proc.c" /* glr.c:846 */
4244 case 192: /* align_and_size */
4245 #line 322 "src/parser_proc_grammar.y" /* glr.c:846 */
4247 #line 4248 "src/parser_proc.c" /* glr.c:846 */
4250 case 193: /* array_size */
4251 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
4253 #line 4254 "src/parser_proc.c" /* glr.c:846 */
4256 case 194: /* indirection */
4257 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
4259 #line 4260 "src/parser_proc.c" /* glr.c:846 */
4262 case 195: /* pointers */
4263 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
4265 #line 4266 "src/parser_proc.c" /* glr.c:846 */
4268 case 196: /* impl */
4269 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
4270 {psi_impl_free(&(*(struct psi_impl
**)(&(*yyvaluep
))));}
4271 #line 4272 "src/parser_proc.c" /* glr.c:846 */
4274 case 197: /* impl_func */
4275 #line 329 "src/parser_proc_grammar.y" /* glr.c:846 */
4276 {psi_impl_func_free(&(*(struct psi_impl_func
**)(&(*yyvaluep
))));}
4277 #line 4278 "src/parser_proc.c" /* glr.c:846 */
4280 case 198: /* impl_args */
4281 #line 367 "src/parser_proc_grammar.y" /* glr.c:846 */
4282 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4283 #line 4284 "src/parser_proc.c" /* glr.c:846 */
4286 case 199: /* impl_arg */
4287 #line 331 "src/parser_proc_grammar.y" /* glr.c:846 */
4288 {psi_impl_arg_free(&(*(struct psi_impl_arg
**)(&(*yyvaluep
))));}
4289 #line 4290 "src/parser_proc.c" /* glr.c:846 */
4292 case 200: /* impl_var */
4293 #line 335 "src/parser_proc_grammar.y" /* glr.c:846 */
4294 {psi_impl_var_free(&(*(struct psi_impl_var
**)(&(*yyvaluep
))));}
4295 #line 4296 "src/parser_proc.c" /* glr.c:846 */
4298 case 201: /* impl_type */
4299 #line 333 "src/parser_proc_grammar.y" /* glr.c:846 */
4300 {psi_impl_type_free(&(*(struct psi_impl_type
**)(&(*yyvaluep
))));}
4301 #line 4302 "src/parser_proc.c" /* glr.c:846 */
4304 case 202: /* impl_type_token */
4305 #line 365 "src/parser_proc_grammar.y" /* glr.c:846 */
4306 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4307 #line 4308 "src/parser_proc.c" /* glr.c:846 */
4310 case 203: /* impl_stmts */
4311 #line 367 "src/parser_proc_grammar.y" /* glr.c:846 */
4312 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4313 #line 4314 "src/parser_proc.c" /* glr.c:846 */
4316 case 204: /* impl_stmt */
4317 #line 363 "src/parser_proc_grammar.y" /* glr.c:846 */
4318 {psi_impl_stmt_free(&(*(struct psi_token
***)(&(*yyvaluep
))));}
4319 #line 4320 "src/parser_proc.c" /* glr.c:846 */
4322 case 205: /* let_stmt */
4323 #line 338 "src/parser_proc_grammar.y" /* glr.c:846 */
4324 {psi_let_stmt_free(&(*(struct psi_let_stmt
**)(&(*yyvaluep
))));}
4325 #line 4326 "src/parser_proc.c" /* glr.c:846 */
4328 case 206: /* let_exp */
4329 #line 340 "src/parser_proc_grammar.y" /* glr.c:846 */
4330 {psi_let_exp_free(&(*(struct psi_let_exp
**)(&(*yyvaluep
))));}
4331 #line 4332 "src/parser_proc.c" /* glr.c:846 */
4334 case 207: /* let_exp_byref */
4335 #line 340 "src/parser_proc_grammar.y" /* glr.c:846 */
4336 {psi_let_exp_free(&(*(struct psi_let_exp
**)(&(*yyvaluep
))));}
4337 #line 4338 "src/parser_proc.c" /* glr.c:846 */
4340 case 208: /* let_exp_assign */
4341 #line 340 "src/parser_proc_grammar.y" /* glr.c:846 */
4342 {psi_let_exp_free(&(*(struct psi_let_exp
**)(&(*yyvaluep
))));}
4343 #line 4344 "src/parser_proc.c" /* glr.c:846 */
4346 case 209: /* let_calloc */
4347 #line 342 "src/parser_proc_grammar.y" /* glr.c:846 */
4348 {psi_let_calloc_free(&(*(struct psi_let_calloc
**)(&(*yyvaluep
))));}
4349 #line 4350 "src/parser_proc.c" /* glr.c:846 */
4352 case 210: /* let_callback */
4353 #line 344 "src/parser_proc_grammar.y" /* glr.c:846 */
4354 {psi_let_callback_free(&(*(struct psi_let_callback
**)(&(*yyvaluep
))));}
4355 #line 4356 "src/parser_proc.c" /* glr.c:846 */
4358 case 211: /* let_func */
4359 #line 346 "src/parser_proc_grammar.y" /* glr.c:846 */
4360 {psi_let_func_free(&(*(struct psi_let_func
**)(&(*yyvaluep
))));}
4361 #line 4362 "src/parser_proc.c" /* glr.c:846 */
4364 case 212: /* let_func_token */
4365 #line 365 "src/parser_proc_grammar.y" /* glr.c:846 */
4366 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4367 #line 4368 "src/parser_proc.c" /* glr.c:846 */
4370 case 213: /* let_func_exps */
4371 #line 367 "src/parser_proc_grammar.y" /* glr.c:846 */
4372 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4373 #line 4374 "src/parser_proc.c" /* glr.c:846 */
4376 case 214: /* let_exps */
4377 #line 367 "src/parser_proc_grammar.y" /* glr.c:846 */
4378 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4379 #line 4380 "src/parser_proc.c" /* glr.c:846 */
4382 case 215: /* callback_rval */
4383 #line 365 "src/parser_proc_grammar.y" /* glr.c:846 */
4384 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4385 #line 4386 "src/parser_proc.c" /* glr.c:846 */
4388 case 216: /* callback_arg_list */
4389 #line 367 "src/parser_proc_grammar.y" /* glr.c:846 */
4390 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4391 #line 4392 "src/parser_proc.c" /* glr.c:846 */
4394 case 217: /* callback_args */
4395 #line 367 "src/parser_proc_grammar.y" /* glr.c:846 */
4396 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4397 #line 4398 "src/parser_proc.c" /* glr.c:846 */
4400 case 218: /* return_stmt */
4401 #line 356 "src/parser_proc_grammar.y" /* glr.c:846 */
4402 {psi_return_stmt_free(&(*(struct psi_return_stmt
**)(&(*yyvaluep
))));}
4403 #line 4404 "src/parser_proc.c" /* glr.c:846 */
4406 case 219: /* set_stmt */
4407 #line 348 "src/parser_proc_grammar.y" /* glr.c:846 */
4408 {psi_set_stmt_free(&(*(struct psi_set_stmt
**)(&(*yyvaluep
))));}
4409 #line 4410 "src/parser_proc.c" /* glr.c:846 */
4412 case 220: /* set_exp */
4413 #line 350 "src/parser_proc_grammar.y" /* glr.c:846 */
4414 {psi_set_exp_free(&(*(struct psi_set_exp
**)(&(*yyvaluep
))));}
4415 #line 4416 "src/parser_proc.c" /* glr.c:846 */
4418 case 221: /* set_func */
4419 #line 352 "src/parser_proc_grammar.y" /* glr.c:846 */
4420 {psi_set_func_free(&(*(struct psi_set_func
**)(&(*yyvaluep
))));}
4421 #line 4422 "src/parser_proc.c" /* glr.c:846 */
4424 case 222: /* set_func_token */
4425 #line 365 "src/parser_proc_grammar.y" /* glr.c:846 */
4426 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4427 #line 4428 "src/parser_proc.c" /* glr.c:846 */
4430 case 223: /* set_func_exps */
4431 #line 367 "src/parser_proc_grammar.y" /* glr.c:846 */
4432 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4433 #line 4434 "src/parser_proc.c" /* glr.c:846 */
4436 case 224: /* set_exps */
4437 #line 367 "src/parser_proc_grammar.y" /* glr.c:846 */
4438 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4439 #line 4440 "src/parser_proc.c" /* glr.c:846 */
4442 case 225: /* assert_stmt */
4443 #line 354 "src/parser_proc_grammar.y" /* glr.c:846 */
4444 {psi_assert_stmt_free(&(*(struct psi_assert_stmt
**)(&(*yyvaluep
))));}
4445 #line 4446 "src/parser_proc.c" /* glr.c:846 */
4448 case 226: /* assert_stmt_token */
4449 #line 365 "src/parser_proc_grammar.y" /* glr.c:846 */
4450 {psi_token_free(&(*(struct psi_token
**)(&(*yyvaluep
))));}
4451 #line 4452 "src/parser_proc.c" /* glr.c:846 */
4454 case 227: /* free_stmt */
4455 #line 358 "src/parser_proc_grammar.y" /* glr.c:846 */
4456 {psi_free_stmt_free(&(*(struct psi_free_stmt
**)(&(*yyvaluep
))));}
4457 #line 4458 "src/parser_proc.c" /* glr.c:846 */
4460 case 228: /* free_exps */
4461 #line 367 "src/parser_proc_grammar.y" /* glr.c:846 */
4462 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4463 #line 4464 "src/parser_proc.c" /* glr.c:846 */
4466 case 229: /* free_exp */
4467 #line 360 "src/parser_proc_grammar.y" /* glr.c:846 */
4468 {psi_free_exp_free(&(*(struct psi_free_exp
**)(&(*yyvaluep
))));}
4469 #line 4470 "src/parser_proc.c" /* glr.c:846 */
4472 case 230: /* decl_vars */
4473 #line 319 "src/parser_proc_grammar.y" /* glr.c:846 */
4474 {psi_plist_free((*(struct psi_plist
**)(&(*yyvaluep
))));}
4475 #line 4476 "src/parser_proc.c" /* glr.c:846 */
4478 case 231: /* reference */
4479 #line 377 "src/parser_proc_grammar.y" /* glr.c:846 */
4481 #line 4482 "src/parser_proc.c" /* glr.c:846 */
4488 YY_IGNORE_MAYBE_UNINITIALIZED_END
4491 /** Number of symbols composing the right hand side of rule #RULE. */
4493 yyrhsLength (yyRuleNum yyrule
)
4495 return yyr2
[yyrule
];
4499 yydestroyGLRState (char const *yymsg
, yyGLRState
*yys
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
4501 if (yys
->yyresolved
)
4502 yydestruct (yymsg
, yystos
[yys
->yylrState
],
4503 &yys
->yysemantics
.yysval
, P
, tokens
, index
);
4509 if (yys
->yysemantics
.yyfirstVal
)
4510 YYFPRINTF (stderr
, "%s unresolved", yymsg
);
4512 YYFPRINTF (stderr
, "%s incomplete", yymsg
);
4513 YY_SYMBOL_PRINT ("", yystos
[yys
->yylrState
], YY_NULLPTR
, &yys
->yyloc
);
4517 if (yys
->yysemantics
.yyfirstVal
)
4519 yySemanticOption
*yyoption
= yys
->yysemantics
.yyfirstVal
;
4522 for (yyrh
= yyoption
->yystate
, yyn
= yyrhsLength (yyoption
->yyrule
);
4524 yyrh
= yyrh
->yypred
, yyn
-= 1)
4525 yydestroyGLRState (yymsg
, yyrh
, P
, tokens
, index
);
4530 /** Left-hand-side symbol for rule #YYRULE. */
4531 static inline yySymbol
4532 yylhsNonterm (yyRuleNum yyrule
)
4534 return yyr1
[yyrule
];
4537 #define yypact_value_is_default(Yystate) \
4538 (!!((Yystate) == (-490)))
4540 /** True iff LR state YYSTATE has only a default reduction (regardless
4542 static inline yybool
4543 yyisDefaultedState (yyStateNum yystate
)
4545 return yypact_value_is_default (yypact
[yystate
]);
4548 /** The default reduction for YYSTATE, assuming it has one. */
4549 static inline yyRuleNum
4550 yydefaultAction (yyStateNum yystate
)
4552 return yydefact
[yystate
];
4555 #define yytable_value_is_error(Yytable_value) \
4558 /** Set *YYACTION to the action to take in YYSTATE on seeing YYTOKEN.
4560 * R < 0: Reduce on rule -R.
4562 * R > 0: Shift to state R.
4563 * Set *YYCONFLICTS to a pointer into yyconfl to a 0-terminated list
4564 * of conflicting reductions.
4567 yygetLRActions (yyStateNum yystate
, int yytoken
,
4568 int* yyaction
, const short int** yyconflicts
)
4570 int yyindex
= yypact
[yystate
] + yytoken
;
4571 if (yypact_value_is_default (yypact
[yystate
])
4572 || yyindex
< 0 || YYLAST
< yyindex
|| yycheck
[yyindex
] != yytoken
)
4574 *yyaction
= -yydefact
[yystate
];
4575 *yyconflicts
= yyconfl
;
4577 else if (! yytable_value_is_error (yytable
[yyindex
]))
4579 *yyaction
= yytable
[yyindex
];
4580 *yyconflicts
= yyconfl
+ yyconflp
[yyindex
];
4585 *yyconflicts
= yyconfl
+ yyconflp
[yyindex
];
4589 /** Compute post-reduction state.
4590 * \param yystate the current state
4591 * \param yysym the nonterminal to push on the stack
4593 static inline yyStateNum
4594 yyLRgotoState (yyStateNum yystate
, yySymbol yysym
)
4596 int yyr
= yypgoto
[yysym
- YYNTOKENS
] + yystate
;
4597 if (0 <= yyr
&& yyr
<= YYLAST
&& yycheck
[yyr
] == yystate
)
4598 return yytable
[yyr
];
4600 return yydefgoto
[yysym
- YYNTOKENS
];
4603 static inline yybool
4604 yyisShiftAction (int yyaction
)
4606 return 0 < yyaction
;
4609 static inline yybool
4610 yyisErrorAction (int yyaction
)
4612 return yyaction
== 0;
4617 /** Return a fresh GLRStackItem in YYSTACKP. The item is an LR state
4618 * if YYISSTATE, and otherwise a semantic option. Callers should call
4619 * YY_RESERVE_GLRSTACK afterwards to make sure there is sufficient
4622 static inline yyGLRStackItem
*
4623 yynewGLRStackItem (yyGLRStack
* yystackp
, yybool yyisState
)
4625 yyGLRStackItem
* yynewItem
= yystackp
->yynextFree
;
4626 yystackp
->yyspaceLeft
-= 1;
4627 yystackp
->yynextFree
+= 1;
4628 yynewItem
->yystate
.yyisState
= yyisState
;
4632 /** Add a new semantic action that will execute the action for rule
4633 * YYRULE on the semantic values in YYRHS to the list of
4634 * alternative actions for YYSTATE. Assumes that YYRHS comes from
4635 * stack #YYK of *YYSTACKP. */
4637 yyaddDeferredAction (yyGLRStack
* yystackp
, size_t yyk
, yyGLRState
* yystate
,
4638 yyGLRState
* yyrhs
, yyRuleNum yyrule
)
4640 yySemanticOption
* yynewOption
=
4641 &yynewGLRStackItem (yystackp
, yyfalse
)->yyoption
;
4642 YYASSERT (!yynewOption
->yyisState
);
4643 yynewOption
->yystate
= yyrhs
;
4644 yynewOption
->yyrule
= yyrule
;
4645 if (yystackp
->yytops
.yylookaheadNeeds
[yyk
])
4647 yynewOption
->yyrawchar
= yychar
;
4648 yynewOption
->yyval
= yylval
;
4651 yynewOption
->yyrawchar
= YYEMPTY
;
4652 yynewOption
->yynext
= yystate
->yysemantics
.yyfirstVal
;
4653 yystate
->yysemantics
.yyfirstVal
= yynewOption
;
4655 YY_RESERVE_GLRSTACK (yystackp
);
4660 /** Initialize YYSET to a singleton set containing an empty stack. */
4662 yyinitStateSet (yyGLRStateSet
* yyset
)
4665 yyset
->yycapacity
= 16;
4666 yyset
->yystates
= (yyGLRState
**) YYMALLOC (16 * sizeof yyset
->yystates
[0]);
4667 if (! yyset
->yystates
)
4669 yyset
->yystates
[0] = YY_NULLPTR
;
4670 yyset
->yylookaheadNeeds
=
4671 (yybool
*) YYMALLOC (16 * sizeof yyset
->yylookaheadNeeds
[0]);
4672 if (! yyset
->yylookaheadNeeds
)
4674 YYFREE (yyset
->yystates
);
4680 static void yyfreeStateSet (yyGLRStateSet
* yyset
)
4682 YYFREE (yyset
->yystates
);
4683 YYFREE (yyset
->yylookaheadNeeds
);
4686 /** Initialize *YYSTACKP to a single empty stack, with total maximum
4687 * capacity for all stacks of YYSIZE. */
4689 yyinitGLRStack (yyGLRStack
* yystackp
, size_t yysize
)
4691 yystackp
->yyerrState
= 0;
4693 yystackp
->yyspaceLeft
= yysize
;
4695 (yyGLRStackItem
*) YYMALLOC (yysize
* sizeof yystackp
->yynextFree
[0]);
4696 if (!yystackp
->yyitems
)
4698 yystackp
->yynextFree
= yystackp
->yyitems
;
4699 yystackp
->yysplitPoint
= YY_NULLPTR
;
4700 yystackp
->yylastDeleted
= YY_NULLPTR
;
4701 return yyinitStateSet (&yystackp
->yytops
);
4705 #if YYSTACKEXPANDABLE
4706 # define YYRELOC(YYFROMITEMS,YYTOITEMS,YYX,YYTYPE) \
4707 &((YYTOITEMS) - ((YYFROMITEMS) - (yyGLRStackItem*) (YYX)))->YYTYPE
4709 /** If *YYSTACKP is expandable, extend it. WARNING: Pointers into the
4710 stack from outside should be considered invalid after this call.
4711 We always expand when there are 1 or fewer items left AFTER an
4712 allocation, so that we can avoid having external pointers exist
4713 across an allocation. */
4715 yyexpandGLRStack (yyGLRStack
* yystackp
)
4717 yyGLRStackItem
* yynewItems
;
4718 yyGLRStackItem
* yyp0
, *yyp1
;
4721 size_t yysize
= yystackp
->yynextFree
- yystackp
->yyitems
;
4722 if (YYMAXDEPTH
- YYHEADROOM
< yysize
)
4723 yyMemoryExhausted (yystackp
);
4724 yynewSize
= 2*yysize
;
4725 if (YYMAXDEPTH
< yynewSize
)
4726 yynewSize
= YYMAXDEPTH
;
4727 yynewItems
= (yyGLRStackItem
*) YYMALLOC (yynewSize
* sizeof yynewItems
[0]);
4729 yyMemoryExhausted (yystackp
);
4730 for (yyp0
= yystackp
->yyitems
, yyp1
= yynewItems
, yyn
= yysize
;
4732 yyn
-= 1, yyp0
+= 1, yyp1
+= 1)
4735 if (*(yybool
*) yyp0
)
4737 yyGLRState
* yys0
= &yyp0
->yystate
;
4738 yyGLRState
* yys1
= &yyp1
->yystate
;
4739 if (yys0
->yypred
!= YY_NULLPTR
)
4741 YYRELOC (yyp0
, yyp1
, yys0
->yypred
, yystate
);
4742 if (! yys0
->yyresolved
&& yys0
->yysemantics
.yyfirstVal
!= YY_NULLPTR
)
4743 yys1
->yysemantics
.yyfirstVal
=
4744 YYRELOC (yyp0
, yyp1
, yys0
->yysemantics
.yyfirstVal
, yyoption
);
4748 yySemanticOption
* yyv0
= &yyp0
->yyoption
;
4749 yySemanticOption
* yyv1
= &yyp1
->yyoption
;
4750 if (yyv0
->yystate
!= YY_NULLPTR
)
4751 yyv1
->yystate
= YYRELOC (yyp0
, yyp1
, yyv0
->yystate
, yystate
);
4752 if (yyv0
->yynext
!= YY_NULLPTR
)
4753 yyv1
->yynext
= YYRELOC (yyp0
, yyp1
, yyv0
->yynext
, yyoption
);
4756 if (yystackp
->yysplitPoint
!= YY_NULLPTR
)
4757 yystackp
->yysplitPoint
= YYRELOC (yystackp
->yyitems
, yynewItems
,
4758 yystackp
->yysplitPoint
, yystate
);
4760 for (yyn
= 0; yyn
< yystackp
->yytops
.yysize
; yyn
+= 1)
4761 if (yystackp
->yytops
.yystates
[yyn
] != YY_NULLPTR
)
4762 yystackp
->yytops
.yystates
[yyn
] =
4763 YYRELOC (yystackp
->yyitems
, yynewItems
,
4764 yystackp
->yytops
.yystates
[yyn
], yystate
);
4765 YYFREE (yystackp
->yyitems
);
4766 yystackp
->yyitems
= yynewItems
;
4767 yystackp
->yynextFree
= yynewItems
+ yysize
;
4768 yystackp
->yyspaceLeft
= yynewSize
- yysize
;
4773 yyfreeGLRStack (yyGLRStack
* yystackp
)
4775 YYFREE (yystackp
->yyitems
);
4776 yyfreeStateSet (&yystackp
->yytops
);
4779 /** Assuming that YYS is a GLRState somewhere on *YYSTACKP, update the
4780 * splitpoint of *YYSTACKP, if needed, so that it is at least as deep as
4783 yyupdateSplit (yyGLRStack
* yystackp
, yyGLRState
* yys
)
4785 if (yystackp
->yysplitPoint
!= YY_NULLPTR
&& yystackp
->yysplitPoint
> yys
)
4786 yystackp
->yysplitPoint
= yys
;
4789 /** Invalidate stack #YYK in *YYSTACKP. */
4791 yymarkStackDeleted (yyGLRStack
* yystackp
, size_t yyk
)
4793 if (yystackp
->yytops
.yystates
[yyk
] != YY_NULLPTR
)
4794 yystackp
->yylastDeleted
= yystackp
->yytops
.yystates
[yyk
];
4795 yystackp
->yytops
.yystates
[yyk
] = YY_NULLPTR
;
4798 /** Undelete the last stack in *YYSTACKP that was marked as deleted. Can
4799 only be done once after a deletion, and only when all other stacks have
4802 yyundeleteLastStack (yyGLRStack
* yystackp
)
4804 if (yystackp
->yylastDeleted
== YY_NULLPTR
|| yystackp
->yytops
.yysize
!= 0)
4806 yystackp
->yytops
.yystates
[0] = yystackp
->yylastDeleted
;
4807 yystackp
->yytops
.yysize
= 1;
4808 YYDPRINTF ((stderr
, "Restoring last deleted stack as stack #0.\n"));
4809 yystackp
->yylastDeleted
= YY_NULLPTR
;
4813 yyremoveDeletes (yyGLRStack
* yystackp
)
4817 while (yyj
< yystackp
->yytops
.yysize
)
4819 if (yystackp
->yytops
.yystates
[yyi
] == YY_NULLPTR
)
4823 YYDPRINTF ((stderr
, "Removing dead stacks.\n"));
4825 yystackp
->yytops
.yysize
-= 1;
4829 yystackp
->yytops
.yystates
[yyj
] = yystackp
->yytops
.yystates
[yyi
];
4830 /* In the current implementation, it's unnecessary to copy
4831 yystackp->yytops.yylookaheadNeeds[yyi] since, after
4832 yyremoveDeletes returns, the parser immediately either enters
4833 deterministic operation or shifts a token. However, it doesn't
4834 hurt, and the code might evolve to need it. */
4835 yystackp
->yytops
.yylookaheadNeeds
[yyj
] =
4836 yystackp
->yytops
.yylookaheadNeeds
[yyi
];
4839 YYDPRINTF ((stderr
, "Rename stack %lu -> %lu.\n",
4840 (unsigned long int) yyi
, (unsigned long int) yyj
));
4848 /** Shift to a new state on stack #YYK of *YYSTACKP, corresponding to LR
4849 * state YYLRSTATE, at input position YYPOSN, with (resolved) semantic
4850 * value *YYVALP and source location *YYLOCP. */
4852 yyglrShift (yyGLRStack
* yystackp
, size_t yyk
, yyStateNum yylrState
,
4856 yyGLRState
* yynewState
= &yynewGLRStackItem (yystackp
, yytrue
)->yystate
;
4858 yynewState
->yylrState
= yylrState
;
4859 yynewState
->yyposn
= yyposn
;
4860 yynewState
->yyresolved
= yytrue
;
4861 yynewState
->yypred
= yystackp
->yytops
.yystates
[yyk
];
4862 yynewState
->yysemantics
.yysval
= *yyvalp
;
4863 yystackp
->yytops
.yystates
[yyk
] = yynewState
;
4865 YY_RESERVE_GLRSTACK (yystackp
);
4868 /** Shift stack #YYK of *YYSTACKP, to a new state corresponding to LR
4869 * state YYLRSTATE, at input position YYPOSN, with the (unresolved)
4870 * semantic value of YYRHS under the action for YYRULE. */
4872 yyglrShiftDefer (yyGLRStack
* yystackp
, size_t yyk
, yyStateNum yylrState
,
4873 size_t yyposn
, yyGLRState
* yyrhs
, yyRuleNum yyrule
)
4875 yyGLRState
* yynewState
= &yynewGLRStackItem (yystackp
, yytrue
)->yystate
;
4876 YYASSERT (yynewState
->yyisState
);
4878 yynewState
->yylrState
= yylrState
;
4879 yynewState
->yyposn
= yyposn
;
4880 yynewState
->yyresolved
= yyfalse
;
4881 yynewState
->yypred
= yystackp
->yytops
.yystates
[yyk
];
4882 yynewState
->yysemantics
.yyfirstVal
= YY_NULLPTR
;
4883 yystackp
->yytops
.yystates
[yyk
] = yynewState
;
4885 /* Invokes YY_RESERVE_GLRSTACK. */
4886 yyaddDeferredAction (yystackp
, yyk
, yynewState
, yyrhs
, yyrule
);
4890 # define YY_REDUCE_PRINT(Args)
4892 # define YY_REDUCE_PRINT(Args) \
4895 yy_reduce_print Args; \
4898 /*----------------------------------------------------------------------.
4899 | Report that stack #YYK of *YYSTACKP is going to be reduced by YYRULE. |
4900 `----------------------------------------------------------------------*/
4903 yy_reduce_print (int yynormal
, yyGLRStackItem
* yyvsp
, size_t yyk
,
4904 yyRuleNum yyrule
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
4906 int yynrhs
= yyrhsLength (yyrule
);
4908 YYFPRINTF (stderr
, "Reducing stack %lu by rule %d (line %lu):\n",
4909 (unsigned long int) yyk
, yyrule
- 1,
4910 (unsigned long int) yyrline
[yyrule
]);
4912 yyfillin (yyvsp
, 1, -yynrhs
);
4913 /* The symbols being reduced. */
4914 for (yyi
= 0; yyi
< yynrhs
; yyi
++)
4916 YYFPRINTF (stderr
, " $%d = ", yyi
+ 1);
4917 yy_symbol_print (stderr
,
4918 yystos
[yyvsp
[yyi
- yynrhs
+ 1].yystate
.yylrState
],
4919 &yyvsp
[yyi
- yynrhs
+ 1].yystate
.yysemantics
.yysval
4920 , P
, tokens
, index
);
4921 if (!yyvsp
[yyi
- yynrhs
+ 1].yystate
.yyresolved
)
4922 YYFPRINTF (stderr
, " (unresolved)");
4923 YYFPRINTF (stderr
, "\n");
4928 /** Pop the symbols consumed by reduction #YYRULE from the top of stack
4929 * #YYK of *YYSTACKP, and perform the appropriate semantic action on their
4930 * semantic values. Assumes that all ambiguities in semantic values
4931 * have been previously resolved. Set *YYVALP to the resulting value,
4932 * and *YYLOCP to the computed location (if any). Return value is as
4933 * for userAction. */
4934 static inline YYRESULTTAG
4935 yydoAction (yyGLRStack
* yystackp
, size_t yyk
, yyRuleNum yyrule
,
4936 YYSTYPE
* yyvalp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
4938 int yynrhs
= yyrhsLength (yyrule
);
4940 if (yystackp
->yysplitPoint
== YY_NULLPTR
)
4942 /* Standard special case: single stack. */
4943 yyGLRStackItem
* yyrhs
= (yyGLRStackItem
*) yystackp
->yytops
.yystates
[yyk
];
4944 YYASSERT (yyk
== 0);
4945 yystackp
->yynextFree
-= yynrhs
;
4946 yystackp
->yyspaceLeft
+= yynrhs
;
4947 yystackp
->yytops
.yystates
[0] = & yystackp
->yynextFree
[-1].yystate
;
4948 YY_REDUCE_PRINT ((1, yyrhs
, yyk
, yyrule
, P
, tokens
, index
));
4949 return yyuserAction (yyrule
, yynrhs
, yyrhs
, yystackp
,
4950 yyvalp
, P
, tokens
, index
);
4956 yyGLRStackItem yyrhsVals
[YYMAXRHS
+ YYMAXLEFT
+ 1];
4957 yys
= yyrhsVals
[YYMAXRHS
+ YYMAXLEFT
].yystate
.yypred
4958 = yystackp
->yytops
.yystates
[yyk
];
4959 for (yyi
= 0; yyi
< yynrhs
; yyi
+= 1)
4964 yyupdateSplit (yystackp
, yys
);
4965 yystackp
->yytops
.yystates
[yyk
] = yys
;
4966 YY_REDUCE_PRINT ((0, yyrhsVals
+ YYMAXRHS
+ YYMAXLEFT
- 1, yyk
, yyrule
, P
, tokens
, index
));
4967 return yyuserAction (yyrule
, yynrhs
, yyrhsVals
+ YYMAXRHS
+ YYMAXLEFT
- 1,
4968 yystackp
, yyvalp
, P
, tokens
, index
);
4972 /** Pop items off stack #YYK of *YYSTACKP according to grammar rule YYRULE,
4973 * and push back on the resulting nonterminal symbol. Perform the
4974 * semantic action associated with YYRULE and store its value with the
4975 * newly pushed state, if YYFORCEEVAL or if *YYSTACKP is currently
4976 * unambiguous. Otherwise, store the deferred semantic action with
4977 * the new state. If the new state would have an identical input
4978 * position, LR state, and predecessor to an existing state on the stack,
4979 * it is identified with that existing state, eliminating stack #YYK from
4980 * *YYSTACKP. In this case, the semantic value is
4981 * added to the options for the existing state's semantic value.
4983 static inline YYRESULTTAG
4984 yyglrReduce (yyGLRStack
* yystackp
, size_t yyk
, yyRuleNum yyrule
,
4985 yybool yyforceEval
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
4987 size_t yyposn
= yystackp
->yytops
.yystates
[yyk
]->yyposn
;
4989 if (yyforceEval
|| yystackp
->yysplitPoint
== YY_NULLPTR
)
4993 YYRESULTTAG yyflag
= yydoAction (yystackp
, yyk
, yyrule
, &yysval
, P
, tokens
, index
);
4994 if (yyflag
== yyerr
&& yystackp
->yysplitPoint
!= YY_NULLPTR
)
4996 YYDPRINTF ((stderr
, "Parse on stack %lu rejected by rule #%d.\n",
4997 (unsigned long int) yyk
, yyrule
- 1));
5001 YY_SYMBOL_PRINT ("-> $$ =", yyr1
[yyrule
], &yysval
, &yyloc
);
5002 yyglrShift (yystackp
, yyk
,
5003 yyLRgotoState (yystackp
->yytops
.yystates
[yyk
]->yylrState
,
5004 yylhsNonterm (yyrule
)),
5011 yyGLRState
* yys
, *yys0
= yystackp
->yytops
.yystates
[yyk
];
5012 yyStateNum yynewLRState
;
5014 for (yys
= yystackp
->yytops
.yystates
[yyk
], yyn
= yyrhsLength (yyrule
);
5020 yyupdateSplit (yystackp
, yys
);
5021 yynewLRState
= yyLRgotoState (yys
->yylrState
, yylhsNonterm (yyrule
));
5023 "Reduced stack %lu by rule #%d; action deferred. "
5024 "Now in state %d.\n",
5025 (unsigned long int) yyk
, yyrule
- 1, yynewLRState
));
5026 for (yyi
= 0; yyi
< yystackp
->yytops
.yysize
; yyi
+= 1)
5027 if (yyi
!= yyk
&& yystackp
->yytops
.yystates
[yyi
] != YY_NULLPTR
)
5029 yyGLRState
*yysplit
= yystackp
->yysplitPoint
;
5030 yyGLRState
*yyp
= yystackp
->yytops
.yystates
[yyi
];
5031 while (yyp
!= yys
&& yyp
!= yysplit
&& yyp
->yyposn
>= yyposn
)
5033 if (yyp
->yylrState
== yynewLRState
&& yyp
->yypred
== yys
)
5035 yyaddDeferredAction (yystackp
, yyk
, yyp
, yys0
, yyrule
);
5036 yymarkStackDeleted (yystackp
, yyk
);
5037 YYDPRINTF ((stderr
, "Merging stack %lu into stack %lu.\n",
5038 (unsigned long int) yyk
,
5039 (unsigned long int) yyi
));
5045 yystackp
->yytops
.yystates
[yyk
] = yys
;
5046 yyglrShiftDefer (yystackp
, yyk
, yynewLRState
, yyposn
, yys0
, yyrule
);
5052 yysplitStack (yyGLRStack
* yystackp
, size_t yyk
)
5054 if (yystackp
->yysplitPoint
== YY_NULLPTR
)
5056 YYASSERT (yyk
== 0);
5057 yystackp
->yysplitPoint
= yystackp
->yytops
.yystates
[yyk
];
5059 if (yystackp
->yytops
.yysize
>= yystackp
->yytops
.yycapacity
)
5061 yyGLRState
** yynewStates
;
5062 yybool
* yynewLookaheadNeeds
;
5064 yynewStates
= YY_NULLPTR
;
5066 if (yystackp
->yytops
.yycapacity
5067 > (YYSIZEMAX
/ (2 * sizeof yynewStates
[0])))
5068 yyMemoryExhausted (yystackp
);
5069 yystackp
->yytops
.yycapacity
*= 2;
5072 (yyGLRState
**) YYREALLOC (yystackp
->yytops
.yystates
,
5073 (yystackp
->yytops
.yycapacity
5074 * sizeof yynewStates
[0]));
5075 if (yynewStates
== YY_NULLPTR
)
5076 yyMemoryExhausted (yystackp
);
5077 yystackp
->yytops
.yystates
= yynewStates
;
5079 yynewLookaheadNeeds
=
5080 (yybool
*) YYREALLOC (yystackp
->yytops
.yylookaheadNeeds
,
5081 (yystackp
->yytops
.yycapacity
5082 * sizeof yynewLookaheadNeeds
[0]));
5083 if (yynewLookaheadNeeds
== YY_NULLPTR
)
5084 yyMemoryExhausted (yystackp
);
5085 yystackp
->yytops
.yylookaheadNeeds
= yynewLookaheadNeeds
;
5087 yystackp
->yytops
.yystates
[yystackp
->yytops
.yysize
]
5088 = yystackp
->yytops
.yystates
[yyk
];
5089 yystackp
->yytops
.yylookaheadNeeds
[yystackp
->yytops
.yysize
]
5090 = yystackp
->yytops
.yylookaheadNeeds
[yyk
];
5091 yystackp
->yytops
.yysize
+= 1;
5092 return yystackp
->yytops
.yysize
-1;
5095 /** True iff YYY0 and YYY1 represent identical options at the top level.
5096 * That is, they represent the same rule applied to RHS symbols
5097 * that produce the same terminal symbols. */
5099 yyidenticalOptions (yySemanticOption
* yyy0
, yySemanticOption
* yyy1
)
5101 if (yyy0
->yyrule
== yyy1
->yyrule
)
5103 yyGLRState
*yys0
, *yys1
;
5105 for (yys0
= yyy0
->yystate
, yys1
= yyy1
->yystate
,
5106 yyn
= yyrhsLength (yyy0
->yyrule
);
5108 yys0
= yys0
->yypred
, yys1
= yys1
->yypred
, yyn
-= 1)
5109 if (yys0
->yyposn
!= yys1
->yyposn
)
5117 /** Assuming identicalOptions (YYY0,YYY1), destructively merge the
5118 * alternative semantic values for the RHS-symbols of YYY1 and YYY0. */
5120 yymergeOptionSets (yySemanticOption
* yyy0
, yySemanticOption
* yyy1
)
5122 yyGLRState
*yys0
, *yys1
;
5124 for (yys0
= yyy0
->yystate
, yys1
= yyy1
->yystate
,
5125 yyn
= yyrhsLength (yyy0
->yyrule
);
5127 yys0
= yys0
->yypred
, yys1
= yys1
->yypred
, yyn
-= 1)
5131 else if (yys0
->yyresolved
)
5133 yys1
->yyresolved
= yytrue
;
5134 yys1
->yysemantics
.yysval
= yys0
->yysemantics
.yysval
;
5136 else if (yys1
->yyresolved
)
5138 yys0
->yyresolved
= yytrue
;
5139 yys0
->yysemantics
.yysval
= yys1
->yysemantics
.yysval
;
5143 yySemanticOption
** yyz0p
= &yys0
->yysemantics
.yyfirstVal
;
5144 yySemanticOption
* yyz1
= yys1
->yysemantics
.yyfirstVal
;
5147 if (yyz1
== *yyz0p
|| yyz1
== YY_NULLPTR
)
5149 else if (*yyz0p
== YY_NULLPTR
)
5154 else if (*yyz0p
< yyz1
)
5156 yySemanticOption
* yyz
= *yyz0p
;
5158 yyz1
= yyz1
->yynext
;
5159 (*yyz0p
)->yynext
= yyz
;
5161 yyz0p
= &(*yyz0p
)->yynext
;
5163 yys1
->yysemantics
.yyfirstVal
= yys0
->yysemantics
.yyfirstVal
;
5168 /** Y0 and Y1 represent two possible actions to take in a given
5169 * parsing state; return 0 if no combination is possible,
5170 * 1 if user-mergeable, 2 if Y0 is preferred, 3 if Y1 is preferred. */
5172 yypreference (yySemanticOption
* y0
, yySemanticOption
* y1
)
5174 yyRuleNum r0
= y0
->yyrule
, r1
= y1
->yyrule
;
5175 int p0
= yydprec
[r0
], p1
= yydprec
[r1
];
5179 if (yymerger
[r0
] == 0 || yymerger
[r0
] != yymerger
[r1
])
5184 if (p0
== 0 || p1
== 0)
5193 static YYRESULTTAG
yyresolveValue (yyGLRState
* yys
,
5194 yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
);
5197 /** Resolve the previous YYN states starting at and including state YYS
5198 * on *YYSTACKP. If result != yyok, some states may have been left
5199 * unresolved possibly with empty semantic option chains. Regardless
5200 * of whether result = yyok, each state has been left with consistent
5201 * data so that yydestroyGLRState can be invoked if necessary. */
5203 yyresolveStates (yyGLRState
* yys
, int yyn
,
5204 yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5208 YYASSERT (yys
->yypred
);
5209 YYCHK (yyresolveStates (yys
->yypred
, yyn
-1, yystackp
, P
, tokens
, index
));
5210 if (! yys
->yyresolved
)
5211 YYCHK (yyresolveValue (yys
, yystackp
, P
, tokens
, index
));
5216 /** Resolve the states for the RHS of YYOPT on *YYSTACKP, perform its
5217 * user action, and return the semantic value and location in *YYVALP
5218 * and *YYLOCP. Regardless of whether result = yyok, all RHS states
5219 * have been destroyed (assuming the user action destroys all RHS
5220 * semantic values if invoked). */
5222 yyresolveAction (yySemanticOption
* yyopt
, yyGLRStack
* yystackp
,
5223 YYSTYPE
* yyvalp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5225 yyGLRStackItem yyrhsVals
[YYMAXRHS
+ YYMAXLEFT
+ 1];
5226 int yynrhs
= yyrhsLength (yyopt
->yyrule
);
5227 YYRESULTTAG yyflag
=
5228 yyresolveStates (yyopt
->yystate
, yynrhs
, yystackp
, P
, tokens
, index
);
5232 for (yys
= yyopt
->yystate
; yynrhs
> 0; yys
= yys
->yypred
, yynrhs
-= 1)
5233 yydestroyGLRState ("Cleanup: popping", yys
, P
, tokens
, index
);
5237 yyrhsVals
[YYMAXRHS
+ YYMAXLEFT
].yystate
.yypred
= yyopt
->yystate
;
5239 int yychar_current
= yychar
;
5240 YYSTYPE yylval_current
= yylval
;
5241 yychar
= yyopt
->yyrawchar
;
5242 yylval
= yyopt
->yyval
;
5243 yyflag
= yyuserAction (yyopt
->yyrule
, yynrhs
,
5244 yyrhsVals
+ YYMAXRHS
+ YYMAXLEFT
- 1,
5245 yystackp
, yyvalp
, P
, tokens
, index
);
5246 yychar
= yychar_current
;
5247 yylval
= yylval_current
;
5254 yyreportTree (yySemanticOption
* yyx
, int yyindent
)
5256 int yynrhs
= yyrhsLength (yyx
->yyrule
);
5259 yyGLRState
* yystates
[1 + YYMAXRHS
];
5260 yyGLRState yyleftmost_state
;
5262 for (yyi
= yynrhs
, yys
= yyx
->yystate
; 0 < yyi
; yyi
-= 1, yys
= yys
->yypred
)
5263 yystates
[yyi
] = yys
;
5264 if (yys
== YY_NULLPTR
)
5266 yyleftmost_state
.yyposn
= 0;
5267 yystates
[0] = &yyleftmost_state
;
5272 if (yyx
->yystate
->yyposn
< yys
->yyposn
+ 1)
5273 YYFPRINTF (stderr
, "%*s%s -> <Rule %d, empty>\n",
5274 yyindent
, "", yytokenName (yylhsNonterm (yyx
->yyrule
)),
5277 YYFPRINTF (stderr
, "%*s%s -> <Rule %d, tokens %lu .. %lu>\n",
5278 yyindent
, "", yytokenName (yylhsNonterm (yyx
->yyrule
)),
5279 yyx
->yyrule
- 1, (unsigned long int) (yys
->yyposn
+ 1),
5280 (unsigned long int) yyx
->yystate
->yyposn
);
5281 for (yyi
= 1; yyi
<= yynrhs
; yyi
+= 1)
5283 if (yystates
[yyi
]->yyresolved
)
5285 if (yystates
[yyi
-1]->yyposn
+1 > yystates
[yyi
]->yyposn
)
5286 YYFPRINTF (stderr
, "%*s%s <empty>\n", yyindent
+2, "",
5287 yytokenName (yystos
[yystates
[yyi
]->yylrState
]));
5289 YYFPRINTF (stderr
, "%*s%s <tokens %lu .. %lu>\n", yyindent
+2, "",
5290 yytokenName (yystos
[yystates
[yyi
]->yylrState
]),
5291 (unsigned long int) (yystates
[yyi
-1]->yyposn
+ 1),
5292 (unsigned long int) yystates
[yyi
]->yyposn
);
5295 yyreportTree (yystates
[yyi
]->yysemantics
.yyfirstVal
, yyindent
+2);
5301 yyreportAmbiguity (yySemanticOption
* yyx0
,
5302 yySemanticOption
* yyx1
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5308 YYFPRINTF (stderr
, "Ambiguity detected.\n");
5309 YYFPRINTF (stderr
, "Option 1,\n");
5310 yyreportTree (yyx0
, 2);
5311 YYFPRINTF (stderr
, "\nOption 2,\n");
5312 yyreportTree (yyx1
, 2);
5313 YYFPRINTF (stderr
, "\n");
5316 yyerror (P
, tokens
, index
, YY_("syntax is ambiguous"));
5320 /** Resolve the ambiguity represented in state YYS in *YYSTACKP,
5321 * perform the indicated actions, and set the semantic value of YYS.
5322 * If result != yyok, the chain of semantic options in YYS has been
5323 * cleared instead or it has been left unmodified except that
5324 * redundant options may have been removed. Regardless of whether
5325 * result = yyok, YYS has been left with consistent data so that
5326 * yydestroyGLRState can be invoked if necessary. */
5328 yyresolveValue (yyGLRState
* yys
, yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5330 yySemanticOption
* yyoptionList
= yys
->yysemantics
.yyfirstVal
;
5331 yySemanticOption
* yybest
= yyoptionList
;
5332 yySemanticOption
** yypp
;
5333 yybool yymerge
= yyfalse
;
5337 for (yypp
= &yyoptionList
->yynext
; *yypp
!= YY_NULLPTR
; )
5339 yySemanticOption
* yyp
= *yypp
;
5341 if (yyidenticalOptions (yybest
, yyp
))
5343 yymergeOptionSets (yybest
, yyp
);
5344 *yypp
= yyp
->yynext
;
5348 switch (yypreference (yybest
, yyp
))
5351 return yyreportAmbiguity (yybest
, yyp
, P
, tokens
, index
);
5363 /* This cannot happen so it is not worth a YYASSERT (yyfalse),
5364 but some compilers complain if the default case is
5368 yypp
= &yyp
->yynext
;
5374 yySemanticOption
* yyp
;
5375 int yyprec
= yydprec
[yybest
->yyrule
];
5376 yyflag
= yyresolveAction (yybest
, yystackp
, &yysval
, P
, tokens
, index
);
5378 for (yyp
= yybest
->yynext
; yyp
!= YY_NULLPTR
; yyp
= yyp
->yynext
)
5380 if (yyprec
== yydprec
[yyp
->yyrule
])
5382 YYSTYPE yysval_other
;
5383 yyflag
= yyresolveAction (yyp
, yystackp
, &yysval_other
, P
, tokens
, index
);
5386 yydestruct ("Cleanup: discarding incompletely merged value for",
5387 yystos
[yys
->yylrState
],
5388 &yysval
, P
, tokens
, index
);
5391 yyuserMerge (yymerger
[yyp
->yyrule
], &yysval
, &yysval_other
);
5396 yyflag
= yyresolveAction (yybest
, yystackp
, &yysval
, P
, tokens
, index
);
5400 yys
->yyresolved
= yytrue
;
5401 yys
->yysemantics
.yysval
= yysval
;
5404 yys
->yysemantics
.yyfirstVal
= YY_NULLPTR
;
5409 yyresolveStack (yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5411 if (yystackp
->yysplitPoint
!= YY_NULLPTR
)
5416 for (yyn
= 0, yys
= yystackp
->yytops
.yystates
[0];
5417 yys
!= yystackp
->yysplitPoint
;
5418 yys
= yys
->yypred
, yyn
+= 1)
5420 YYCHK (yyresolveStates (yystackp
->yytops
.yystates
[0], yyn
, yystackp
5421 , P
, tokens
, index
));
5427 yycompressStack (yyGLRStack
* yystackp
)
5429 yyGLRState
* yyp
, *yyq
, *yyr
;
5431 if (yystackp
->yytops
.yysize
!= 1 || yystackp
->yysplitPoint
== YY_NULLPTR
)
5434 for (yyp
= yystackp
->yytops
.yystates
[0], yyq
= yyp
->yypred
, yyr
= YY_NULLPTR
;
5435 yyp
!= yystackp
->yysplitPoint
;
5436 yyr
= yyp
, yyp
= yyq
, yyq
= yyp
->yypred
)
5439 yystackp
->yyspaceLeft
+= yystackp
->yynextFree
- yystackp
->yyitems
;
5440 yystackp
->yynextFree
= ((yyGLRStackItem
*) yystackp
->yysplitPoint
) + 1;
5441 yystackp
->yyspaceLeft
-= yystackp
->yynextFree
- yystackp
->yyitems
;
5442 yystackp
->yysplitPoint
= YY_NULLPTR
;
5443 yystackp
->yylastDeleted
= YY_NULLPTR
;
5445 while (yyr
!= YY_NULLPTR
)
5447 yystackp
->yynextFree
->yystate
= *yyr
;
5449 yystackp
->yynextFree
->yystate
.yypred
= &yystackp
->yynextFree
[-1].yystate
;
5450 yystackp
->yytops
.yystates
[0] = &yystackp
->yynextFree
->yystate
;
5451 yystackp
->yynextFree
+= 1;
5452 yystackp
->yyspaceLeft
-= 1;
5457 yyprocessOneStack (yyGLRStack
* yystackp
, size_t yyk
,
5458 size_t yyposn
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5460 while (yystackp
->yytops
.yystates
[yyk
] != YY_NULLPTR
)
5462 yyStateNum yystate
= yystackp
->yytops
.yystates
[yyk
]->yylrState
;
5463 YYDPRINTF ((stderr
, "Stack %lu Entering state %d\n",
5464 (unsigned long int) yyk
, yystate
));
5466 YYASSERT (yystate
!= YYFINAL
);
5468 if (yyisDefaultedState (yystate
))
5471 yyRuleNum yyrule
= yydefaultAction (yystate
);
5474 YYDPRINTF ((stderr
, "Stack %lu dies.\n",
5475 (unsigned long int) yyk
));
5476 yymarkStackDeleted (yystackp
, yyk
);
5479 yyflag
= yyglrReduce (yystackp
, yyk
, yyrule
, yyimmediate
[yyrule
], P
, tokens
, index
);
5480 if (yyflag
== yyerr
)
5484 "(predicate failure or explicit user error).\n",
5485 (unsigned long int) yyk
));
5486 yymarkStackDeleted (yystackp
, yyk
);
5496 const short int* yyconflicts
;
5498 yystackp
->yytops
.yylookaheadNeeds
[yyk
] = yytrue
;
5499 if (yychar
== YYEMPTY
)
5501 YYDPRINTF ((stderr
, "Reading a token: "));
5502 yychar
= yylex (&yylval
, P
, tokens
, index
);
5505 if (yychar
<= YYEOF
)
5507 yychar
= yytoken
= YYEOF
;
5508 YYDPRINTF ((stderr
, "Now at end of input.\n"));
5512 yytoken
= YYTRANSLATE (yychar
);
5513 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
5516 yygetLRActions (yystate
, yytoken
, &yyaction
, &yyconflicts
);
5518 while (*yyconflicts
!= 0)
5521 size_t yynewStack
= yysplitStack (yystackp
, yyk
);
5522 YYDPRINTF ((stderr
, "Splitting off stack %lu from %lu.\n",
5523 (unsigned long int) yynewStack
,
5524 (unsigned long int) yyk
));
5525 yyflag
= yyglrReduce (yystackp
, yynewStack
,
5527 yyimmediate
[*yyconflicts
], P
, tokens
, index
);
5529 YYCHK (yyprocessOneStack (yystackp
, yynewStack
,
5530 yyposn
, P
, tokens
, index
));
5531 else if (yyflag
== yyerr
)
5533 YYDPRINTF ((stderr
, "Stack %lu dies.\n",
5534 (unsigned long int) yynewStack
));
5535 yymarkStackDeleted (yystackp
, yynewStack
);
5542 if (yyisShiftAction (yyaction
))
5544 else if (yyisErrorAction (yyaction
))
5546 YYDPRINTF ((stderr
, "Stack %lu dies.\n",
5547 (unsigned long int) yyk
));
5548 yymarkStackDeleted (yystackp
, yyk
);
5553 YYRESULTTAG yyflag
= yyglrReduce (yystackp
, yyk
, -yyaction
,
5554 yyimmediate
[-yyaction
], P
, tokens
, index
);
5555 if (yyflag
== yyerr
)
5559 "(predicate failure or explicit user error).\n",
5560 (unsigned long int) yyk
));
5561 yymarkStackDeleted (yystackp
, yyk
);
5564 else if (yyflag
!= yyok
)
5573 yyreportSyntaxError (yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5575 if (yystackp
->yyerrState
!= 0)
5577 #if ! YYERROR_VERBOSE
5578 yyerror (P
, tokens
, index
, YY_("syntax error"));
5581 yySymbol yytoken
= yychar
== YYEMPTY
? YYEMPTY
: YYTRANSLATE (yychar
);
5582 size_t yysize0
= yytnamerr (YY_NULLPTR
, yytokenName (yytoken
));
5583 size_t yysize
= yysize0
;
5584 yybool yysize_overflow
= yyfalse
;
5585 char* yymsg
= YY_NULLPTR
;
5586 enum { YYERROR_VERBOSE_ARGS_MAXIMUM
= 5 };
5587 /* Internationalized format string. */
5588 const char *yyformat
= YY_NULLPTR
;
5589 /* Arguments of yyformat. */
5590 char const *yyarg
[YYERROR_VERBOSE_ARGS_MAXIMUM
];
5591 /* Number of reported tokens (one for the "unexpected", one per
5595 /* There are many possibilities here to consider:
5596 - If this state is a consistent state with a default action, then
5597 the only way this function was invoked is if the default action
5598 is an error action. In that case, don't check for expected
5599 tokens because there are none.
5600 - The only way there can be no lookahead present (in yychar) is if
5601 this state is a consistent state with a default action. Thus,
5602 detecting the absence of a lookahead is sufficient to determine
5603 that there is no unexpected or expected token to report. In that
5604 case, just report a simple "syntax error".
5605 - Don't assume there isn't a lookahead just because this state is a
5606 consistent state with a default action. There might have been a
5607 previous inconsistent state, consistent state with a non-default
5608 action, or user semantic action that manipulated yychar.
5609 - Of course, the expected token list depends on states to have
5610 correct lookahead information, and it depends on the parser not
5611 to perform extra reductions after fetching a lookahead from the
5612 scanner and before detecting a syntax error. Thus, state merging
5613 (from LALR or IELR) and default reductions corrupt the expected
5614 token list. However, the list is correct for canonical LR with
5615 one exception: it will still contain any token that will not be
5616 accepted due to an error action in a later state.
5618 if (yytoken
!= YYEMPTY
)
5620 int yyn
= yypact
[yystackp
->yytops
.yystates
[0]->yylrState
];
5621 yyarg
[yycount
++] = yytokenName (yytoken
);
5622 if (!yypact_value_is_default (yyn
))
5624 /* Start YYX at -YYN if negative to avoid negative indexes in
5625 YYCHECK. In other words, skip the first -YYN actions for this
5626 state because they are default actions. */
5627 int yyxbegin
= yyn
< 0 ? -yyn
: 0;
5628 /* Stay within bounds of both yycheck and yytname. */
5629 int yychecklim
= YYLAST
- yyn
+ 1;
5630 int yyxend
= yychecklim
< YYNTOKENS
? yychecklim
: YYNTOKENS
;
5632 for (yyx
= yyxbegin
; yyx
< yyxend
; ++yyx
)
5633 if (yycheck
[yyx
+ yyn
] == yyx
&& yyx
!= YYTERROR
5634 && !yytable_value_is_error (yytable
[yyx
+ yyn
]))
5636 if (yycount
== YYERROR_VERBOSE_ARGS_MAXIMUM
)
5642 yyarg
[yycount
++] = yytokenName (yyx
);
5644 size_t yysz
= yysize
+ yytnamerr (YY_NULLPTR
, yytokenName (yyx
));
5645 yysize_overflow
|= yysz
< yysize
;
5654 #define YYCASE_(N, S) \
5658 YYCASE_(0, YY_("syntax error"));
5659 YYCASE_(1, YY_("syntax error, unexpected %s"));
5660 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
5661 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
5662 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
5663 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
5668 size_t yysz
= yysize
+ strlen (yyformat
);
5669 yysize_overflow
|= yysz
< yysize
;
5673 if (!yysize_overflow
)
5674 yymsg
= (char *) YYMALLOC (yysize
);
5680 while ((*yyp
= *yyformat
))
5682 if (*yyp
== '%' && yyformat
[1] == 's' && yyi
< yycount
)
5684 yyp
+= yytnamerr (yyp
, yyarg
[yyi
++]);
5693 yyerror (P
, tokens
, index
, yymsg
);
5698 yyerror (P
, tokens
, index
, YY_("syntax error"));
5699 yyMemoryExhausted (yystackp
);
5702 #endif /* YYERROR_VERBOSE */
5706 /* Recover from a syntax error on *YYSTACKP, assuming that *YYSTACKP->YYTOKENP,
5707 yylval, and yylloc are the syntactic category, semantic value, and location
5708 of the lookahead. */
5710 yyrecoverSyntaxError (yyGLRStack
* yystackp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5715 if (yystackp
->yyerrState
== 3)
5716 /* We just shifted the error token and (perhaps) took some
5717 reductions. Skip tokens until we can proceed. */
5721 if (yychar
== YYEOF
)
5722 yyFail (yystackp
, P
, tokens
, index
, YY_NULLPTR
);
5723 if (yychar
!= YYEMPTY
)
5725 yytoken
= YYTRANSLATE (yychar
);
5726 yydestruct ("Error: discarding",
5727 yytoken
, &yylval
, P
, tokens
, index
);
5729 YYDPRINTF ((stderr
, "Reading a token: "));
5730 yychar
= yylex (&yylval
, P
, tokens
, index
);
5731 if (yychar
<= YYEOF
)
5733 yychar
= yytoken
= YYEOF
;
5734 YYDPRINTF ((stderr
, "Now at end of input.\n"));
5738 yytoken
= YYTRANSLATE (yychar
);
5739 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
5741 yyj
= yypact
[yystackp
->yytops
.yystates
[0]->yylrState
];
5742 if (yypact_value_is_default (yyj
))
5745 if (yyj
< 0 || YYLAST
< yyj
|| yycheck
[yyj
] != yytoken
)
5747 if (yydefact
[yystackp
->yytops
.yystates
[0]->yylrState
] != 0)
5750 else if (! yytable_value_is_error (yytable
[yyj
]))
5754 /* Reduce to one stack. */
5755 for (yyk
= 0; yyk
< yystackp
->yytops
.yysize
; yyk
+= 1)
5756 if (yystackp
->yytops
.yystates
[yyk
] != YY_NULLPTR
)
5758 if (yyk
>= yystackp
->yytops
.yysize
)
5759 yyFail (yystackp
, P
, tokens
, index
, YY_NULLPTR
);
5760 for (yyk
+= 1; yyk
< yystackp
->yytops
.yysize
; yyk
+= 1)
5761 yymarkStackDeleted (yystackp
, yyk
);
5762 yyremoveDeletes (yystackp
);
5763 yycompressStack (yystackp
);
5765 /* Now pop stack until we find a state that shifts the error token. */
5766 yystackp
->yyerrState
= 3;
5767 while (yystackp
->yytops
.yystates
[0] != YY_NULLPTR
)
5769 yyGLRState
*yys
= yystackp
->yytops
.yystates
[0];
5770 yyj
= yypact
[yys
->yylrState
];
5771 if (! yypact_value_is_default (yyj
))
5774 if (0 <= yyj
&& yyj
<= YYLAST
&& yycheck
[yyj
] == YYTERROR
5775 && yyisShiftAction (yytable
[yyj
]))
5777 /* Shift the error token. */
5778 YY_SYMBOL_PRINT ("Shifting", yystos
[yytable
[yyj
]],
5779 &yylval
, &yyerrloc
);
5780 yyglrShift (yystackp
, 0, yytable
[yyj
],
5781 yys
->yyposn
, &yylval
);
5782 yys
= yystackp
->yytops
.yystates
[0];
5786 if (yys
->yypred
!= YY_NULLPTR
)
5787 yydestroyGLRState ("Error: popping", yys
, P
, tokens
, index
);
5788 yystackp
->yytops
.yystates
[0] = yys
->yypred
;
5789 yystackp
->yynextFree
-= 1;
5790 yystackp
->yyspaceLeft
+= 1;
5792 if (yystackp
->yytops
.yystates
[0] == YY_NULLPTR
)
5793 yyFail (yystackp
, P
, tokens
, index
, YY_NULLPTR
);
5796 #define YYCHK1(YYE) \
5806 goto yyuser_error; \
5817 yyparse (struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
5821 yyGLRStack
* const yystackp
= &yystack
;
5824 YYDPRINTF ((stderr
, "Starting parse\n"));
5827 yylval
= yyval_default
;
5829 /* User initialization code. */
5830 #line 118 "src/parser_proc_grammar.y" /* glr.c:2270 */
5834 #line 5835 "src/parser_proc.c" /* glr.c:2270 */
5836 if (! yyinitGLRStack (yystackp
, YYINITDEPTH
))
5837 goto yyexhaustedlab
;
5838 switch (YYSETJMP (yystack
.yyexception_buffer
))
5841 case 1: goto yyabortlab
;
5842 case 2: goto yyexhaustedlab
;
5843 default: goto yybuglab
;
5845 yyglrShift (&yystack
, 0, 0, 0, &yylval
);
5850 /* For efficiency, we have two loops, the first of which is
5851 specialized to deterministic operation (single stack, no
5852 potential ambiguity). */
5858 const short int* yyconflicts
;
5860 yyStateNum yystate
= yystack
.yytops
.yystates
[0]->yylrState
;
5861 YYDPRINTF ((stderr
, "Entering state %d\n", yystate
));
5862 if (yystate
== YYFINAL
)
5864 if (yyisDefaultedState (yystate
))
5866 yyrule
= yydefaultAction (yystate
);
5870 yyreportSyntaxError (&yystack
, P
, tokens
, index
);
5873 YYCHK1 (yyglrReduce (&yystack
, 0, yyrule
, yytrue
, P
, tokens
, index
));
5878 if (yychar
== YYEMPTY
)
5880 YYDPRINTF ((stderr
, "Reading a token: "));
5881 yychar
= yylex (&yylval
, P
, tokens
, index
);
5884 if (yychar
<= YYEOF
)
5886 yychar
= yytoken
= YYEOF
;
5887 YYDPRINTF ((stderr
, "Now at end of input.\n"));
5891 yytoken
= YYTRANSLATE (yychar
);
5892 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
5895 yygetLRActions (yystate
, yytoken
, &yyaction
, &yyconflicts
);
5896 if (*yyconflicts
!= 0)
5898 if (yyisShiftAction (yyaction
))
5900 YY_SYMBOL_PRINT ("Shifting", yytoken
, &yylval
, &yylloc
);
5903 yyglrShift (&yystack
, 0, yyaction
, yyposn
, &yylval
);
5904 if (0 < yystack
.yyerrState
)
5905 yystack
.yyerrState
-= 1;
5907 else if (yyisErrorAction (yyaction
))
5910 yyreportSyntaxError (&yystack
, P
, tokens
, index
);
5914 YYCHK1 (yyglrReduce (&yystack
, 0, -yyaction
, yytrue
, P
, tokens
, index
));
5920 yySymbol yytoken_to_shift
;
5923 for (yys
= 0; yys
< yystack
.yytops
.yysize
; yys
+= 1)
5924 yystackp
->yytops
.yylookaheadNeeds
[yys
] = yychar
!= YYEMPTY
;
5926 /* yyprocessOneStack returns one of three things:
5928 - An error flag. If the caller is yyprocessOneStack, it
5929 immediately returns as well. When the caller is finally
5930 yyparse, it jumps to an error label via YYCHK1.
5932 - yyok, but yyprocessOneStack has invoked yymarkStackDeleted
5933 (&yystack, yys), which sets the top state of yys to NULL. Thus,
5934 yyparse's following invocation of yyremoveDeletes will remove
5937 - yyok, when ready to shift a token.
5939 Except in the first case, yyparse will invoke yyremoveDeletes and
5940 then shift the next token onto all remaining stacks. This
5941 synchronization of the shift (that is, after all preceding
5942 reductions on all stacks) helps prevent double destructor calls
5943 on yylval in the event of memory exhaustion. */
5945 for (yys
= 0; yys
< yystack
.yytops
.yysize
; yys
+= 1)
5946 YYCHK1 (yyprocessOneStack (&yystack
, yys
, yyposn
, P
, tokens
, index
));
5947 yyremoveDeletes (&yystack
);
5948 if (yystack
.yytops
.yysize
== 0)
5950 yyundeleteLastStack (&yystack
);
5951 if (yystack
.yytops
.yysize
== 0)
5952 yyFail (&yystack
, P
, tokens
, index
, YY_("syntax error"));
5953 YYCHK1 (yyresolveStack (&yystack
, P
, tokens
, index
));
5954 YYDPRINTF ((stderr
, "Returning to deterministic operation.\n"));
5956 yyreportSyntaxError (&yystack
, P
, tokens
, index
);
5960 /* If any yyglrShift call fails, it will fail after shifting. Thus,
5961 a copy of yylval will already be on stack 0 in the event of a
5962 failure in the following loop. Thus, yychar is set to YYEMPTY
5963 before the loop to make sure the user destructor for yylval isn't
5965 yytoken_to_shift
= YYTRANSLATE (yychar
);
5968 for (yys
= 0; yys
< yystack
.yytops
.yysize
; yys
+= 1)
5971 const short int* yyconflicts
;
5972 yyStateNum yystate
= yystack
.yytops
.yystates
[yys
]->yylrState
;
5973 yygetLRActions (yystate
, yytoken_to_shift
, &yyaction
,
5975 /* Note that yyconflicts were handled by yyprocessOneStack. */
5976 YYDPRINTF ((stderr
, "On stack %lu, ", (unsigned long int) yys
));
5977 YY_SYMBOL_PRINT ("shifting", yytoken_to_shift
, &yylval
, &yylloc
);
5978 yyglrShift (&yystack
, yys
, yyaction
, yyposn
,
5980 YYDPRINTF ((stderr
, "Stack %lu now in state #%d\n",
5981 (unsigned long int) yys
,
5982 yystack
.yytops
.yystates
[yys
]->yylrState
));
5985 if (yystack
.yytops
.yysize
== 1)
5987 YYCHK1 (yyresolveStack (&yystack
, P
, tokens
, index
));
5988 YYDPRINTF ((stderr
, "Returning to deterministic operation.\n"));
5989 yycompressStack (&yystack
);
5995 yyrecoverSyntaxError (&yystack
, P
, tokens
, index
);
5996 yyposn
= yystack
.yytops
.yystates
[0]->yyposn
;
6012 yyerror (P
, tokens
, index
, YY_("memory exhausted"));
6017 if (yychar
!= YYEMPTY
)
6018 yydestruct ("Cleanup: discarding lookahead",
6019 YYTRANSLATE (yychar
), &yylval
, P
, tokens
, index
);
6021 /* If the stack is well-formed, pop the stack until it is empty,
6022 destroying its entries as we go. But free the stack regardless
6023 of whether it is well-formed. */
6024 if (yystack
.yyitems
)
6026 yyGLRState
** yystates
= yystack
.yytops
.yystates
;
6029 size_t yysize
= yystack
.yytops
.yysize
;
6031 for (yyk
= 0; yyk
< yysize
; yyk
+= 1)
6034 while (yystates
[yyk
])
6036 yyGLRState
*yys
= yystates
[yyk
];
6037 if (yys
->yypred
!= YY_NULLPTR
)
6038 yydestroyGLRState ("Cleanup: popping", yys
, P
, tokens
, index
);
6039 yystates
[yyk
] = yys
->yypred
;
6040 yystack
.yynextFree
-= 1;
6041 yystack
.yyspaceLeft
+= 1;
6046 yyfreeGLRStack (&yystack
);
6052 /* DEBUGGING ONLY */
6055 yy_yypstack (yyGLRState
* yys
)
6059 yy_yypstack (yys
->yypred
);
6060 YYFPRINTF (stderr
, " -> ");
6062 YYFPRINTF (stderr
, "%d@%lu", yys
->yylrState
,
6063 (unsigned long int) yys
->yyposn
);
6067 yypstates (yyGLRState
* yyst
)
6069 if (yyst
== YY_NULLPTR
)
6070 YYFPRINTF (stderr
, "<null>");
6073 YYFPRINTF (stderr
, "\n");
6077 yypstack (yyGLRStack
* yystackp
, size_t yyk
)
6079 yypstates (yystackp
->yytops
.yystates
[yyk
]);
6082 #define YYINDEX(YYX) \
6083 ((YYX) == YY_NULLPTR ? -1 : (yyGLRStackItem*) (YYX) - yystackp->yyitems)
6087 yypdumpstack (yyGLRStack
* yystackp
)
6089 yyGLRStackItem
* yyp
;
6091 for (yyp
= yystackp
->yyitems
; yyp
< yystackp
->yynextFree
; yyp
+= 1)
6093 YYFPRINTF (stderr
, "%3lu. ",
6094 (unsigned long int) (yyp
- yystackp
->yyitems
));
6095 if (*(yybool
*) yyp
)
6097 YYASSERT (yyp
->yystate
.yyisState
);
6098 YYASSERT (yyp
->yyoption
.yyisState
);
6099 YYFPRINTF (stderr
, "Res: %d, LR State: %d, posn: %lu, pred: %ld",
6100 yyp
->yystate
.yyresolved
, yyp
->yystate
.yylrState
,
6101 (unsigned long int) yyp
->yystate
.yyposn
,
6102 (long int) YYINDEX (yyp
->yystate
.yypred
));
6103 if (! yyp
->yystate
.yyresolved
)
6104 YYFPRINTF (stderr
, ", firstVal: %ld",
6105 (long int) YYINDEX (yyp
->yystate
6106 .yysemantics
.yyfirstVal
));
6110 YYASSERT (!yyp
->yystate
.yyisState
);
6111 YYASSERT (!yyp
->yyoption
.yyisState
);
6112 YYFPRINTF (stderr
, "Option. rule: %d, state: %ld, next: %ld",
6113 yyp
->yyoption
.yyrule
- 1,
6114 (long int) YYINDEX (yyp
->yyoption
.yystate
),
6115 (long int) YYINDEX (yyp
->yyoption
.yynext
));
6117 YYFPRINTF (stderr
, "\n");
6119 YYFPRINTF (stderr
, "Tops:");
6120 for (yyi
= 0; yyi
< yystackp
->yytops
.yysize
; yyi
+= 1)
6121 YYFPRINTF (stderr
, "%lu: %ld; ", (unsigned long int) yyi
,
6122 (long int) YYINDEX (yystackp
->yytops
.yystates
[yyi
]));
6123 YYFPRINTF (stderr
, "\n");
6131 /* Substitute the variable and function names. */
6132 #define yyparse psi_parser_proc_parse
6133 #define yylex psi_parser_proc_lex
6134 #define yyerror psi_parser_proc_error
6135 #define yylval psi_parser_proc_lval
6136 #define yychar psi_parser_proc_char
6137 #define yydebug psi_parser_proc_debug
6138 #define yynerrs psi_parser_proc_nerrs
6140 #line 1648 "src/parser_proc_grammar.y" /* glr.c:2584 */
6145 static int psi_parser_proc_lex(YYSTYPE
*lvalp
, struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
)
6147 struct psi_token
*token
;
6149 if (psi_plist_get(tokens
, (*index
)++, &token
)) {
6150 if (P
->flags
& PSI_DEBUG
) {
6151 psi_token_dump(2, token
);
6154 *((struct psi_token
**)lvalp
) = token
;
6158 PSI_DEBUG_PRINT(P
, "EOF(%d)\n", PSI_T_EOF
);
6164 static void psi_parser_proc_error(struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
, const char *msg
)
6166 struct psi_token
*T
= NULL
;
6175 psi_plist_get(tokens
, last
, &T
);
6177 P
->error(PSI_DATA(P
), T
, PSI_WARNING
, "PSI %s at col %u", msg
, T
->col
);
6179 P
->error(PSI_DATA(P
), NULL
, PSI_WARNING
, "PSI %s", msg
);