cosmetics
[m6w6/ext-psi] / src / parser_proc.c
1 /* A Bison parser, made by GNU Bison 3.0.4. */
2
3 /* Skeleton implementation for Bison GLR parsers in C
4
5 Copyright (C) 2002-2015 Free Software Foundation, Inc.
6
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.
11
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.
16
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/>. */
19
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.
29
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
32
33 /* C GLR parser skeleton written by Paul Hilfinger. */
34
35 /* Identify Bison output. */
36 #define YYBISON 1
37
38 /* Bison version. */
39 #define YYBISON_VERSION "3.0.4"
40
41 /* Skeleton name. */
42 #define YYSKELETON_NAME "glr.c"
43
44 /* Pure parsers. */
45 #define YYPURE 1
46
47
48 /* "%code top" blocks. */
49 #line 1 "src/parser_proc_grammar.y" /* glr.c:222 */
50
51 #include "php_psi_stdinc.h"
52
53 #line 54 "src/parser_proc.c" /* glr.c:222 */
54
55
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
61
62
63 /* First part of user declarations. */
64
65 #line 66 "src/parser_proc.c" /* glr.c:240 */
66
67 # ifndef YY_NULLPTR
68 # if defined __cplusplus && 201103L <= __cplusplus
69 # define YY_NULLPTR nullptr
70 # else
71 # define YY_NULLPTR 0
72 # endif
73 # endif
74
75 #include "parser_proc.h"
76
77 /* Enabling verbose error messages. */
78 #ifdef YYERROR_VERBOSE
79 # undef YYERROR_VERBOSE
80 # define YYERROR_VERBOSE 1
81 #else
82 # define YYERROR_VERBOSE 1
83 #endif
84
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;
90
91 /* Copy the second part of user declarations. */
92
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 */
96
97 #include <assert.h>
98 #include <stdarg.h>
99
100 #include "plist.h"
101 #include "parser.h"
102 #define YYDEBUG 1
103
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);
106
107 static inline void psi_parser_proc_add_struct(struct psi_parser *P, struct psi_decl_struct *strct)
108 {
109 assert(strct);
110 if (!P->structs) {
111 P->structs = psi_plist_init((psi_plist_dtor) psi_decl_struct_free);
112 }
113 P->structs = psi_plist_add(P->structs, &strct);
114 }
115 static inline void psi_parser_proc_add_union(struct psi_parser *P, struct psi_decl_union *u)
116 {
117 assert(u);
118 if (!P->unions) {
119 P->unions = psi_plist_init((psi_plist_dtor) psi_decl_union_free);
120 }
121 P->unions = psi_plist_add(P->unions, &u);
122 }
123 static inline void psi_parser_proc_add_enum(struct psi_parser *P, struct psi_decl_enum *e)
124 {
125 assert(e);
126 if (!P->enums) {
127 P->enums = psi_plist_init((psi_plist_dtor) psi_decl_enum_free);
128 }
129 P->enums = psi_plist_add(P->enums, &e);
130 }
131 static inline void psi_parser_proc_add_typedef(struct psi_parser *P, struct psi_decl_arg *def)
132 {
133 assert(def);
134 if (!P->types) {
135 P->types = psi_plist_init((psi_plist_dtor) psi_decl_arg_free);
136 }
137 P->types = psi_plist_add(P->types, &def);
138 }
139 static inline void psi_parser_proc_add_const(struct psi_parser *P, struct psi_const *cnst) {
140 assert(cnst);
141 if (!P->consts) {
142 P->consts = psi_plist_init((psi_plist_dtor) psi_const_free);
143 }
144 P->consts = psi_plist_add(P->consts, &cnst);
145
146 }
147 static inline void psi_parser_proc_add_decl(struct psi_parser *P, struct psi_decl *decl) {
148 assert(decl);
149 if (!P->decls) {
150 P->decls = psi_plist_init((psi_plist_dtor) psi_decl_free);
151 }
152 P->decls = psi_plist_add(P->decls, &decl);
153 }
154 static inline void psi_parser_proc_add_impl(struct psi_parser *P, struct psi_impl *impl) {
155 assert(impl);
156 if (!P->impls) {
157 P->impls = psi_plist_init((psi_plist_dtor) psi_impl_free);
158 }
159 P->impls = psi_plist_add(P->impls, &impl);
160 }
161
162 /* end code */
163
164 #line 165 "src/parser_proc.c" /* glr.c:264 */
165
166 #include <stdio.h>
167 #include <stdlib.h>
168 #include <string.h>
169
170 #ifndef YY_
171 # if defined YYENABLE_NLS && YYENABLE_NLS
172 # if ENABLE_NLS
173 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
174 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
175 # endif
176 # endif
177 # ifndef YY_
178 # define YY_(Msgid) Msgid
179 # endif
180 #endif
181
182 #ifndef YYFREE
183 # define YYFREE free
184 #endif
185 #ifndef YYMALLOC
186 # define YYMALLOC malloc
187 #endif
188 #ifndef YYREALLOC
189 # define YYREALLOC realloc
190 #endif
191
192 #define YYSIZEMAX ((size_t) -1)
193
194 #ifdef __cplusplus
195 typedef bool yybool;
196 #else
197 typedef unsigned char yybool;
198 #endif
199 #define yytrue 1
200 #define yyfalse 0
201
202 #ifndef YYSETJMP
203 # include <setjmp.h>
204 # define YYJMP_BUF jmp_buf
205 # define YYSETJMP(Env) setjmp (Env)
206 /* Pacify clang. */
207 # define YYLONGJMP(Env, Val) (longjmp (Env, Val), YYASSERT (0))
208 #endif
209
210 #ifndef YY_ATTRIBUTE
211 # if (defined __GNUC__ \
212 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
213 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
214 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
215 # else
216 # define YY_ATTRIBUTE(Spec) /* empty */
217 # endif
218 #endif
219
220 #ifndef YY_ATTRIBUTE_PURE
221 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
222 #endif
223
224 #ifndef YY_ATTRIBUTE_UNUSED
225 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
226 #endif
227
228 #if !defined _Noreturn \
229 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
230 # if defined _MSC_VER && 1200 <= _MSC_VER
231 # define _Noreturn __declspec (noreturn)
232 # else
233 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
234 # endif
235 #endif
236
237 /* Suppress unused-variable warnings by "using" E. */
238 #if ! defined lint || defined __GNUC__
239 # define YYUSE(E) ((void) (E))
240 #else
241 # define YYUSE(E) /* empty */
242 #endif
243
244 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
245 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
246 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
247 _Pragma ("GCC diagnostic push") \
248 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
249 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
250 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
251 _Pragma ("GCC diagnostic pop")
252 #else
253 # define YY_INITIAL_VALUE(Value) Value
254 #endif
255 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
256 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
257 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
258 #endif
259 #ifndef YY_INITIAL_VALUE
260 # define YY_INITIAL_VALUE(Value) /* Nothing. */
261 #endif
262
263
264 #ifndef YYASSERT
265 # define YYASSERT(Condition) ((void) ((Condition) || (abort (), 0)))
266 #endif
267
268 /* YYFINAL -- State number of the termination state. */
269 #define YYFINAL 169
270 /* YYLAST -- Last index in YYTABLE. */
271 #define YYLAST 3407
272
273 /* YYNTOKENS -- Number of terminals. */
274 #define YYNTOKENS 132
275 /* YYNNTS -- Number of nonterminals. */
276 #define YYNNTS 123
277 /* YYNRULES -- Number of rules. */
278 #define YYNRULES 485
279 /* YYNRULES -- Number of states. */
280 #define YYNSTATES 718
281 /* YYMAXRHS -- Maximum number of symbols on right-hand side of rule. */
282 #define YYMAXRHS 13
283 /* YYMAXLEFT -- Maximum number of symbols to the left of a handle
284 accessed by $0, $-1, etc., in any rule. */
285 #define YYMAXLEFT 0
286
287 /* YYTRANSLATE(X) -- Bison symbol number corresponding to X. */
288 #define YYUNDEFTOK 2
289 #define YYMAXUTOK 386
290
291 #define YYTRANSLATE(YYX) \
292 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
293
294 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
295 static const unsigned char yytranslate[] =
296 {
297 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
298 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
299 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
300 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
301 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
302 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
303 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
304 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
305 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
306 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
307 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
308 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
309 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
310 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
311 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
312 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
313 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
314 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
315 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
316 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
317 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
318 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
319 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
320 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
321 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
322 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
323 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
324 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
325 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
326 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
327 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
328 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
329 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
330 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
331 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
332 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
333 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
334 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
335 125, 126, 127, 128, 129, 130, 131
336 };
337
338 #if YYDEBUG
339 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
340 static const unsigned short int yyrline[] =
341 {
342 0, 373, 373, 373, 373, 373, 373, 373, 373, 373,
343 373, 373, 373, 373, 373, 373, 373, 373, 373, 373,
344 374, 374, 374, 374, 375, 375, 375, 375, 375, 375,
345 375, 375, 375, 375, 375, 375, 375, 375, 375, 375,
346 375, 375, 376, 376, 376, 376, 376, 376, 376, 376,
347 376, 376, 376, 376, 376, 376, 376, 376, 376, 376,
348 376, 376, 376, 376, 376, 376, 376, 376, 376, 376,
349 376, 376, 376, 376, 376, 376, 376, 376, 376, 376,
350 376, 376, 376, 376, 376, 376, 376, 376, 376, 376,
351 376, 376, 376, 376, 376, 376, 376, 376, 376, 376,
352 376, 376, 376, 376, 376, 376, 376, 376, 376, 376,
353 376, 376, 376, 376, 376, 376, 376, 376, 376, 376,
354 376, 376, 376, 376, 376, 376, 376, 376, 376, 376,
355 376, 376, 376, 376, 376, 376, 376, 376, 376, 376,
356 376, 376, 376, 376, 376, 376, 376, 376, 376, 376,
357 376, 376, 376, 376, 376, 376, 376, 376, 376, 376,
358 376, 376, 376, 376, 380, 381, 384, 385, 388, 389,
359 390, 391, 397, 405, 408, 411, 412, 415, 418, 421,
360 424, 430, 436, 439, 445, 468, 472, 476, 481, 485,
361 489, 493, 500, 501, 505, 506, 510, 511, 512, 516,
362 517, 521, 522, 526, 527, 528, 532, 533, 537, 538,
363 539, 540, 541, 542, 546, 551, 559, 562, 565, 566,
364 572, 577, 585, 588, 592, 596, 603, 607, 611, 615,
365 620, 630, 640, 645, 650, 656, 665, 668, 672, 676,
366 682, 689, 695, 696, 697, 698, 702, 705, 736, 743,
367 744, 745, 746, 750, 753, 762, 768, 769, 777, 788,
368 797, 806, 814, 817, 821, 825, 829, 834, 839, 847,
369 848, 849, 852, 858, 861, 864, 870, 871, 872, 873,
370 874, 875, 876, 877, 881, 882, 886, 889, 892, 898,
371 901, 904, 912, 924, 927, 930, 937, 940, 950, 953,
372 956, 959, 960, 964, 967, 970, 981, 984, 990, 991,
373 995, 996, 1000, 1004, 1010, 1011, 1017, 1020, 1026, 1027,
374 1034, 1035, 1039, 1046, 1057, 1064, 1075, 1082, 1093, 1104,
375 1118, 1119, 1131, 1134, 1137, 1140, 1147, 1150, 1156, 1165,
376 1177, 1185, 1188, 1198, 1211, 1216, 1224, 1234, 1244, 1247,
377 1251, 1257, 1271, 1288, 1291, 1297, 1304, 1314, 1321, 1324,
378 1330, 1335, 1343, 1347, 1351, 1355, 1359, 1363, 1370, 1374,
379 1378, 1382, 1389, 1402, 1415, 1428, 1431, 1438, 1441, 1444,
380 1447, 1453, 1457, 1464, 1467, 1470, 1476, 1479, 1485, 1486,
381 1492, 1495, 1501, 1502, 1512, 1515, 1522, 1527, 1532, 1542,
382 1545, 1551, 1554, 1560, 1567, 1574, 1575, 1576, 1577, 1578,
383 1579, 1580, 1581, 1582, 1586, 1589, 1595, 1598, 1601, 1604,
384 1607, 1613, 1617, 1625, 1626, 1630, 1637, 1640, 1643, 1647,
385 1650, 1653, 1659, 1663, 1671, 1678, 1686, 1694, 1695, 1696,
386 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1707, 1710, 1716,
387 1719, 1725, 1726, 1730, 1733, 1739, 1742, 1748, 1755, 1762,
388 1765, 1768, 1775, 1780, 1788, 1789, 1790, 1791, 1792, 1793,
389 1794, 1795, 1799, 1802, 1808, 1811, 1817, 1824, 1825, 1829,
390 1836, 1839, 1845, 1853, 1856, 1862
391 };
392 #endif
393
394 #if YYDEBUG || YYERROR_VERBOSE || 1
395 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
396 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
397 static const char *const yytname[] =
398 {
399 "\"end of file\"", "error", "$undefined", "BOOL", "CHAR", "SHORT",
400 "INT", "SIGNED", "UNSIGNED", "LONG", "FLOAT", "DOUBLE", "STRING",
401 "MIXED", "ARRAY", "OBJECT", "CALLABLE", "VOID", "ZVAL", "INT8", "UINT8",
402 "INT16", "UINT16", "INT32", "UINT32", "INT64", "UINT64", "NULL", "TRUE",
403 "FALSE", "NAME", "NSNAME", "DOLLAR_NAME", "NUMBER", "QUOTED_STRING",
404 "QUOTED_CHAR", "\"end of line\"", "\";\"", "\"(\"", "\")\"", "\",\"",
405 "\":\"", "\"{\"", "\"}\"", "\"[\"", "\"]\"", "\"=\"", "\"#\"", "\"|\"",
406 "\"^\"", "\"&\"", "\"<<\"", "\">>\"", "\"+\"", "\"-\"", "\"*\"", "\"/\"",
407 "\"%\"", "\"<\"", "\">\"", "\">=\"", "\"<=\"", "\"||\"", "\"&&\"",
408 "\"==\"", "\"!=\"", "\"~\"", "\"!\"", "\".\"", "\"\\\\\"", "\"...\"",
409 "\"?\"", "PRAGMA", "PRAGMA_ONCE", "LINE", "ERROR", "WARNING", "IF",
410 "IFDEF", "IFNDEF", "ELSE", "ELIF", "ENDIF", "DEFINE", "DEFINED", "UNDEF",
411 "IMPORT", "INCLUDE", "INCLUDE_NEXT", "TYPEDEF", "STRUCT", "UNION",
412 "ENUM", "CONST", "LIB", "STATIC", "CALLBACK", "FUNCTION", "LET", "SET",
413 "TEMP", "FREE", "RETURN", "PRE_ASSERT", "POST_ASSERT", "BOOLVAL",
414 "INTVAL", "STRVAL", "PATHVAL", "STRLEN", "FLOATVAL", "ARRVAL", "OBJVAL",
415 "COUNT", "CALLOC", "TO_BOOL", "TO_INT", "TO_STRING", "TO_FLOAT",
416 "TO_ARRAY", "TO_OBJECT", "COMMENT", "WHITESPACE", "NO_WHITESPACE",
417 "CPP_HEADER", "CPP_ATTRIBUTE", "CPP_EXTENSION", "CPP_PASTE",
418 "CPP_RESTRICT", "CPP_ASM", "BINARY", "UNARY", "$accept",
419 "binary_op_token", "unary_op_token", "name_token", "any_noeol_token",
420 "file", "blocks", "block", "lib", "cpp", "cpp_exp", "cpp_ignored_token",
421 "cpp_message_token", "cpp_include_token", "cpp_header_token",
422 "cpp_no_arg_token", "cpp_name_arg_token", "cpp_exp_arg_token",
423 "cpp_special_name_token", "cpp_macro_decl", "cpp_macro_sig",
424 "cpp_macro_sig_args", "cpp_macro_decl_tokens",
425 "cpp_macro_decl_token_list", "cpp_macro_exp", "cpp_macro_call_args",
426 "cpp_macro_call_arg_list", "constant", "constant_type",
427 "constant_type_token", "impl_def_val", "impl_def_val_token",
428 "decl_typedef", "typedef", "const_decl_type", "decl_type",
429 "decl_type_complex", "decl_type_simple", "decl_real_type",
430 "decl_stdint_type", "int_signed", "int_width", "decl_int_type",
431 "int_signed_types", "signed_short_types", "signed_long_types",
432 "int_width_types", "decl_stmt", "decl_asm", "ignored_quoted_strings",
433 "decl_ext_var_stmt", "decl_ext_var", "decl_ext_var_list", "decl_vars",
434 "decl", "decl_body", "decl_func_body", "decl_functor_body",
435 "decl_functor", "decl_func", "decl_args", "decl_anon_arg", "decl_arg",
436 "decl_var", "decl_union", "decl_struct", "decl_struct_args",
437 "struct_args_block", "struct_args", "struct_arg_var_list",
438 "decl_vars_with_layout", "decl_enum", "decl_enum_items",
439 "decl_enum_item", "num_exp", "number", "enum_name", "union_name",
440 "struct_name", "optional_name", "decl_layout", "align_and_size",
441 "array_size", "indirection", "pointers", "asterisks", "asterisk", "impl",
442 "impl_func", "impl_args", "impl_arg", "impl_var", "impl_type",
443 "impl_type_token", "impl_stmts", "impl_stmt", "let_stmt", "let_exp",
444 "let_exp_byref", "let_exp_assign", "let_calloc", "let_callback",
445 "let_func", "let_func_token", "let_func_exps", "let_exps",
446 "callback_rval", "callback_arg_list", "callback_args", "return_stmt",
447 "set_stmt", "set_exp", "set_func", "set_func_token", "set_func_exps",
448 "set_exps", "assert_stmt", "assert_stmt_token", "free_stmt", "free_exps",
449 "free_exp", "reference", "byref", YY_NULLPTR
450 };
451 #endif
452
453 #define YYPACT_NINF -565
454 #define YYTABLE_NINF -484
455
456 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
457 STATE-NUM. */
458 static const short int yypact[] =
459 {
460 954, -565, -565, -565, -565, -565, 113, -565, -565, 2258,
461 -565, -565, -565, -565, -565, -565, -565, -565, 2910, -565,
462 -565, 192, 2937, 2766, 2766, 2766, 541, 35, 10, 50,
463 -565, 313, 95, 954, -565, -565, -565, -565, -565, 2307,
464 -565, -565, -565, -565, -565, 41, 36, -565, -565, -565,
465 75, -4, -565, -565, 79, 77, 106, -565, -565, -565,
466 -565, 91, -565, 116, -565, -565, -565, -565, -565, 664,
467 -565, 105, 71, -565, -565, -565, -565, -565, -565, -565,
468 -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
469 -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
470 -565, -565, 2425, -22, -565, -565, -565, -565, 2766, 2766,
471 2766, 3091, -565, 107, -565, -565, -565, -565, -565, -565,
472 -565, -565, -565, -565, -565, -565, 913, -565, -565, -565,
473 -565, 149, 794, 794, 3, -565, 913, 2140, 2258, 2766,
474 2766, 150, 1904, -565, -565, 153, 2766, 154, 154, 33,
475 33, 162, -565, -565, 175, 184, -565, 105, 187, -565,
476 -565, 182, 197, -565, 198, -565, 2987, 3014, -4, -565,
477 -565, 196, -565, 204, 2766, -565, 239, -565, 73, -565,
478 -565, 41, -565, -565, 208, 210, 3041, 3041, 2766, -41,
479 2766, -565, -565, 105, -565, -565, -565, -565, -565, -565,
480 2307, -565, -565, -565, -565, -565, -565, 126, 794, -565,
481 -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
482 -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
483 -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
484 -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
485 -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
486 -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
487 -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
488 -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
489 -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
490 -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
491 -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
492 -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
493 -565, -565, -565, -565, -565, 794, -565, -565, -565, -565,
494 -565, -565, -565, -565, 2140, -565, -565, -565, -565, 2474,
495 2140, 215, 3264, 211, 13, -565, 13, -565, -565, -565,
496 -565, 214, 216, 216, 30, 30, 2592, 213, -565, -41,
497 218, 220, 224, 8, -565, 105, 196, -565, -565, -565,
498 -565, -565, -565, 228, -565, 1, 3118, 2307, 45, -565,
499 -565, 129, 217, 46, -565, 2307, 1786, 2307, 2766, 81,
500 -565, -565, 109, -565, -565, -565, -565, -565, 2022, -565,
501 237, 2766, 241, -565, 2766, 244, -565, -565, 3136, 2766,
502 -565, -565, 2140, -565, -565, -565, -565, -565, -565, -565,
503 -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
504 -565, 2140, 2140, -565, 245, 3014, 2307, 2307, -565, -565,
505 -565, -565, 105, -565, 1196, 123, 371, -565, -565, 240,
506 -565, 2766, -565, -565, 42, 2425, 105, 204, 196, 1048,
507 196, 2883, 2022, 2766, -565, 238, 249, -565, -565, -565,
508 1078, 2022, -565, 3288, -565, 242, 250, -565, 255, 262,
509 251, 257, 56, -565, -565, 259, 255, -565, -565, 3108,
510 -565, 260, 2307, 2643, -565, 263, 3264, 265, 266, 3215,
511 -565, 274, 267, 1945, -565, -565, 2766, -565, -565, -565,
512 -565, 272, -565, 3288, -565, -565, -565, -565, -565, -565,
513 -565, -565, -565, -565, 269, 141, -565, 50, -565, -565,
514 276, -565, -565, 2592, -565, 1, 286, -565, -565, 289,
515 3288, -565, 1314, -565, 290, 485, 292, 3163, -565, 2022,
516 2022, 1786, -565, 2307, -565, 50, 2307, -565, 2766, -565,
517 -565, -565, -565, -565, -565, 301, 273, -565, -565, 2140,
518 2140, 302, 7, 305, -565, 267, 307, -565, 464, 300,
519 464, 306, -565, 196, 196, -565, 233, 125, 315, 3288,
520 -565, -565, -565, -565, 316, 1432, 2022, -565, 3240, -565,
521 -565, 311, 2307, 143, -565, 794, 2717, 3264, 3312, 322,
522 319, 323, 2307, 320, 305, -565, -565, 464, -565, 50,
523 1196, -565, -565, 315, -565, -565, -565, -565, 324, 2022,
524 50, -565, -565, 2022, 1550, 325, 328, -565, -565, -565,
525 -565, 330, 326, 337, 267, 331, -565, 335, -565, -2,
526 -565, 50, 594, 333, 3336, 336, -565, 339, -565, -565,
527 -565, 338, 342, -565, 2307, -565, 357, 352, 2022, 1314,
528 353, -565, 1786, 360, 361, 267, 356, 1668, 3190, 238,
529 -565, -565, -565, 359, 1432, -565, -565, 369, 358, -565,
530 355, 362, 372, -565, -565, 1314, -565, 367, -565, 464,
531 374, 1786, -565, 376, -565, -565, -565, -565
532 };
533
534 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
535 Performed when YYTABLE does not specify something else to do. Zero
536 means the default is an error. */
537 static const unsigned short int yydefact[] =
538 {
539 164, 289, 286, 290, 284, 285, 287, 273, 274, 0,
540 276, 277, 278, 279, 280, 281, 282, 283, 272, 169,
541 168, 0, 0, 0, 0, 375, 0, 0, 0, 483,
542 170, 0, 0, 165, 166, 172, 171, 173, 176, 386,
543 263, 265, 264, 270, 271, 293, 303, 269, 174, 175,
544 0, 308, 318, 320, 321, 0, 0, 330, 178, 177,
545 179, 0, 180, 0, 288, 275, 33, 34, 471, 437,
546 24, 386, 392, 39, 38, 37, 35, 36, 32, 31,
547 25, 29, 28, 26, 27, 445, 444, 442, 440, 441,
548 443, 439, 438, 446, 30, 469, 467, 466, 468, 465,
549 464, 331, 0, 388, 390, 40, 41, 272, 0, 0,
550 0, 0, 319, 314, 182, 193, 190, 192, 194, 195,
551 206, 203, 204, 201, 207, 202, 0, 205, 196, 197,
552 198, 0, 222, 222, 0, 186, 0, 0, 0, 375,
553 375, 0, 386, 257, 340, 256, 0, 381, 381, 266,
554 267, 268, 372, 242, 290, 273, 245, 0, 0, 241,
555 262, 0, 0, 485, 0, 484, 272, 0, 308, 1,
556 167, 383, 341, 0, 387, 294, 298, 296, 300, 291,
557 304, 293, 292, 312, 0, 0, 332, 332, 0, 0,
558 0, 387, 393, 386, 343, 389, 391, 266, 267, 268,
559 0, 313, 209, 210, 211, 213, 212, 208, 222, 188,
560 183, 75, 42, 43, 44, 45, 46, 47, 48, 49,
561 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
562 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
563 70, 71, 72, 73, 74, 76, 77, 78, 79, 80,
564 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
565 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
566 101, 102, 103, 104, 105, 106, 107, 108, 109, 115,
567 113, 114, 112, 110, 111, 116, 117, 118, 119, 120,
568 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
569 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
570 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
571 151, 152, 153, 154, 155, 156, 157, 158, 159, 162,
572 160, 161, 163, 224, 191, 223, 184, 199, 200, 185,
573 208, 187, 232, 233, 0, 22, 23, 20, 21, 0,
574 0, 234, 189, 331, 266, 374, 267, 373, 253, 261,
575 258, 0, 0, 0, 0, 0, 0, 0, 181, 0,
576 0, 0, 0, 0, 345, 386, 383, 299, 295, 301,
577 302, 297, 305, 0, 306, 333, 0, 386, 0, 334,
578 336, 0, 360, 0, 358, 0, 483, 0, 0, 0,
579 477, 478, 0, 414, 417, 416, 418, 419, 0, 420,
580 0, 0, 315, 316, 0, 0, 215, 225, 0, 0,
581 230, 227, 236, 2, 3, 4, 5, 6, 7, 8,
582 9, 10, 11, 13, 12, 14, 15, 16, 17, 18,
583 19, 0, 0, 254, 0, 0, 0, 0, 348, 347,
584 349, 346, 386, 342, 246, 0, 0, 255, 307, 0,
585 384, 0, 344, 310, 0, 339, 0, 337, 383, 0,
586 383, 0, 0, 0, 357, 0, 0, 369, 368, 370,
587 0, 0, 371, 460, 362, 0, 0, 459, 41, 0,
588 0, 0, 0, 480, 470, 0, 0, 394, 415, 0,
589 329, 0, 0, 216, 226, 0, 238, 0, 237, 0,
590 228, 0, 377, 0, 260, 259, 0, 249, 250, 251,
591 252, 0, 248, 247, 395, 407, 408, 409, 410, 406,
592 411, 412, 413, 405, 0, 0, 399, 483, 404, 385,
593 0, 311, 309, 338, 324, 0, 0, 335, 322, 0,
594 361, 359, 0, 421, 24, 0, 0, 0, 366, 0,
595 0, 483, 458, 0, 403, 483, 0, 479, 0, 457,
596 476, 328, 317, 217, 220, 0, 218, 231, 235, 0,
597 0, 0, 0, 353, 350, 377, 0, 240, 0, 0,
598 0, 401, 326, 383, 383, 426, 0, 31, 30, 431,
599 432, 427, 429, 430, 40, 0, 0, 364, 0, 365,
600 461, 472, 0, 0, 481, 222, 0, 239, 229, 0,
601 378, 0, 0, 0, 353, 327, 396, 0, 400, 483,
602 246, 325, 323, 0, 428, 451, 437, 452, 0, 0,
603 483, 433, 363, 0, 483, 0, 0, 482, 214, 219,
604 221, 0, 0, 0, 377, 354, 351, 0, 397, 0,
605 402, 483, 0, 447, 367, 0, 474, 473, 462, 422,
606 382, 0, 0, 355, 0, 352, 0, 0, 0, 0,
607 0, 463, 483, 0, 0, 377, 0, 453, 0, 371,
608 449, 425, 423, 448, 0, 436, 475, 0, 0, 356,
609 0, 0, 454, 455, 434, 0, 424, 0, 379, 0,
610 0, 483, 450, 0, 398, 435, 456, 380
611 };
612
613 /* YYPGOTO[NTERM-NUM]. */
614 static const short int yypgoto[] =
615 {
616 -565, -317, -130, 0, 82, -565, -565, 383, -565, -565,
617 -565, -565, -565, -565, -565, -565, -565, -565, 282, -565,
618 -565, -565, -128, -565, -328, -565, -565, -565, -565, -565,
619 -210, -565, -565, -154, -11, -23, -565, -565, -565, 279,
620 377, -565, -565, 243, -565, -565, -565, -565, 258, -565,
621 -565, -565, -565, -141, 396, -1, -16, 18, -565, -565,
622 246, -312, -14, -39, -565, -565, 65, -285, -565, -196,
623 -565, 38, -565, -38, -389, -565, -565, -565, -565, 63,
624 -564, -20, -350, -61, -7, -565, 329, -565, 408, -565,
625 -153, -506, -561, -565, 69, -368, -565, -266, -532, 48,
626 -156, -565, -565, -500, -565, -565, -565, -565, -565, -565,
627 -565, -533, 47, -384, -565, -565, -565, -565, -565, -565,
628 -124, -28, -538
629 };
630
631 /* YYDEFGOTO[NTERM-NUM]. */
632 static const short int yydefgoto[] =
633 {
634 -1, 560, 481, 171, 333, 32, 33, 34, 35, 36,
635 131, 132, 133, 134, 339, 135, 136, 137, 208, 209,
636 575, 576, 334, 335, 352, 507, 508, 37, 158, 159,
637 521, 522, 38, 141, 39, 40, 41, 42, 43, 44,
638 45, 46, 47, 179, 378, 381, 182, 48, 185, 464,
639 49, 50, 201, 412, 51, 52, 53, 144, 55, 56,
640 388, 389, 57, 482, 58, 59, 449, 450, 513, 623,
641 655, 146, 393, 394, 483, 484, 61, 147, 148, 152,
642 583, 362, 374, 173, 414, 103, 104, 62, 63, 535,
643 536, 485, 537, 538, 402, 403, 404, 690, 691, 692,
644 601, 602, 603, 105, 680, 693, 638, 701, 702, 405,
645 406, 486, 487, 106, 645, 667, 407, 408, 409, 492,
646 493, 489, 165
647 };
648
649 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
650 positive, shift that token. If negative, reduce the rule whose
651 number is the opposite. If YYTABLE_NINF, syntax error. */
652 static const short int yytable[] =
653 {
654 172, 164, 102, 160, 113, 336, 143, 350, 145, 101,
655 190, 142, 488, 371, 605, 496, 418, 112, 54, 499,
656 600, 624, 421, 149, 150, 151, 462, 626, 610, 629,
657 564, 591, 174, 72, 498, 442, 54, 337, 60, 71,
658 620, 459, 180, 4, 5, 175, 176, 177, 621, 54,
659 178, 54, 604, 460, -376, -376, 72, 395, 396, 397,
660 398, 399, 400, 401, 191, 523, 658, 448, 676, 161,
661 -381, 60, 445, 641, 361, -381, 541, 446, 447, 379,
662 416, 542, 380, 550, 468, 469, 473, 498, 160, 474,
663 673, 557, 558, 567, 506, 169, 568, 637, 68, 494,
664 163, 442, 194, 172, 442, 604, 195, 29, 197, 198,
665 199, 666, 183, 509, 510, 186, -321, -340, 544, -340,
666 548, 699, 64, 591, 65, 184, 207, 338, 363, 364,
667 365, 102, 411, 188, 663, 174, 340, 351, 353, 354,
668 356, 694, 635, 636, 187, -330, 360, 200, 714, 696,
669 366, 143, 497, 145, 703, 677, 142, 547, 189, 547,
670 72, 413, 706, 599, 192, 112, 524, 694, 470, 471,
671 608, 609, 390, 390, 376, 387, 387, 488, 716, 604,
672 589, 590, 647, 502, 54, 210, 191, 358, 392, 442,
673 410, -330, 442, 442, 604, 361, 95, 96, 97, 98,
674 99, 100, 355, 357, -376, 604, -243, 395, 396, 397,
675 398, 399, 400, 401, 350, -244, 599, 642, 367, 368,
676 350, 395, 396, 397, 398, 399, 400, 401, 114, 370,
677 85, 86, 87, 88, 89, 90, 91, 92, 93, 369,
678 373, 523, 375, 631, 632, 377, 383, 384, 443, 415,
679 662, 617, 618, 422, 664, 444, 456, 457, 445, 454,
680 488, 458, 463, 472, 115, 116, 117, 118, 119, 120,
681 121, 122, 123, 124, 125, 126, 500, 127, 128, 129,
682 130, 502, 503, 511, 552, 539, 553, 562, 561, 688,
683 599, 512, 350, 563, 564, 566, 569, 565, 488, 571,
684 442, 442, 577, 488, 578, 599, 579, 581, 582, 587,
685 588, 350, 350, 616, 461, 592, 599, 1, 2, 3,
686 4, 5, 6, 7, 8, 593, 467, 488, 594, -24,
687 9, 606, 10, 11, 12, 13, 14, 15, 16, 17,
688 615, 627, 619, 166, 351, 622, 625, 633, 172, 420,
689 351, 644, 630, 639, 640, 651, 475, 656, 490, 585,
690 652, 653, 661, 160, 668, 669, 453, 671, 191, 670,
691 672, 674, 675, 679, 525, 681, 683, 526, 465, 682,
692 174, 527, 684, 528, 529, 530, 531, 532, 533, 686,
693 687, 516, 695, 697, 698, 700, 709, 708, 491, 705,
694 713, 710, 167, 108, 109, 110, 111, 514, 515, 707,
695 534, 501, 711, 715, 376, 717, 170, 417, 341, 505,
696 660, 359, 351, 181, 382, 613, 372, 168, 657, 143,
697 451, 145, 196, 391, 142, 551, 162, 628, 455, 712,
698 634, 351, 351, 476, 614, 191, 495, 0, 0, 350,
699 350, 0, 0, 0, 0, 390, 0, 390, 387, 543,
700 387, 540, 0, 572, 0, 194, 0, 525, 0, 556,
701 526, 0, 0, 392, 527, 0, 528, 529, 530, 531,
702 532, 533, 0, 0, 0, 0, 0, 648, 0, 1,
703 2, 3, 4, 5, 6, 7, 8, 143, 0, 145,
704 0, 0, 142, 574, 10, 11, 12, 13, 14, 15,
705 16, 17, 0, 0, 0, 107, 586, 0, 0, 0,
706 0, 0, 0, 0, 611, 0, 0, 413, 0, 0,
707 0, 0, 160, 0, 0, 0, 0, 612, 465, 0,
708 0, 0, 0, 453, 153, 1, 2, 154, 4, 5,
709 6, 155, 8, 156, 0, 0, 0, 0, 157, 0,
710 10, 11, 12, 13, 14, 15, 16, 17, 491, 0,
711 0, 107, 0, 646, 0, 108, 109, 110, 0, 351,
712 351, 0, 0, 654, 0, 0, 0, 0, 0, 0,
713 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
714 0, 659, 0, 0, 0, 0, 0, 0, 0, 0,
715 0, 0, 0, 0, 0, 0, 650, 0, 0, 0,
716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
717 0, 108, 109, 110, 678, 685, 0, 0, 0, 0,
718 689, 0, 423, 424, 425, 426, 427, 428, 429, 430,
719 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
720 0, 0, 0, 0, -437, 559, 689, -437, -437, -437,
721 -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
722 -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
723 -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
724 -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
725 -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
726 -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
727 -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
728 -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
729 0, -437, 0, -437, -437, -437, -437, -437, -437, -437,
730 -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
731 -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
732 -437, -437, -437, -437, -437, -437, 0, -437, -437, 0,
733 -437, -437, -437, -437, 211, 0, 0, 212, 213, 214,
734 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
735 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
736 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
737 0, 245, 246, 247, 248, 249, 250, 251, 252, 253,
738 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
739 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
740 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
741 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
742 0, 294, 0, 295, 296, 297, 298, 299, 300, 301,
743 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
744 312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
745 322, 323, 324, 325, 326, 327, 66, 0, 328, 0,
746 329, 330, 331, 332, 0, 67, 0, 0, 0, 0,
747 68, 69, 0, 0, 0, 0, 0, 0, 0, 0,
748 202, 203, 204, 70, 0, 0, 0, 0, 0, 0,
749 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,
750 3, 4, 5, 6, 7, 8, 0, 0, 0, 0,
751 0, 9, 0, 10, 11, 12, 13, 14, 15, 16,
752 17, 0, 0, 0, 18, 73, 74, 75, 76, 77,
753 19, 20, 0, 0, 0, 0, 0, 0, 0, 0,
754 0, 21, 0, 0, 0, 0, 0, 78, 0, 79,
755 80, 81, 82, 83, 84, 0, 0, 0, 85, 86,
756 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
757 97, 98, 99, 100, 0, 0, 0, 0, 0, 205,
758 0, 206, 0, 22, 23, 24, 25, 26, 27, 28,
759 0, 29, 1, 2, 3, 4, 5, 6, 7, 8,
760 0, 0, 0, 0, 0, 545, 0, 10, 11, 12,
761 13, 14, 15, 16, 17, 30, 0, 0, 107, 0,
762 31, 66, 1, 2, 3, 4, 5, 6, 7, 8,
763 67, 0, 0, 0, 0, 68, 69, 10, 11, 12,
764 13, 14, 15, 16, 17, 0, 0, 0, 554, 477,
765 0, 478, 0, 479, 0, 0, 480, 0, 546, 0,
766 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
767 0, 345, 346, 72, 0, 0, 0, 0, 108, 109,
768 110, 386, 0, 0, 347, 348, 0, 0, 0, 0,
769 73, 74, 75, 76, 77, 0, 0, 0, 0, 0,
770 0, 0, 0, 0, 0, 0, 0, 0, 108, 109,
771 110, 555, 78, 0, 79, 80, 81, 82, 83, 84,
772 0, 0, 0, 85, 86, 87, 88, 89, 90, 91,
773 92, 93, 94, 95, 96, 97, 98, 99, 100, 66,
774 0, 0, 0, 0, 0, 0, 0, 0, 67, 0,
775 0, 0, 0, 68, 69, 0, 0, 0, 0, 0,
776 0, 0, 0, 517, 518, 519, 70, 477, 0, 478,
777 520, 479, 0, 0, 480, 0, 0, 0, 0, 0,
778 0, 0, 0, 0, 0, 0, 0, 0, 0, 345,
779 346, 72, 0, 0, 0, 0, 0, 0, 0, 0,
780 0, 0, 347, 348, 0, 0, 0, 0, 73, 74,
781 75, 76, 77, 0, 0, 0, 0, 0, 0, 0,
782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
783 78, 0, 79, 80, 81, 82, 83, 84, 0, 0,
784 0, 85, 86, 87, 88, 89, 90, 91, 92, 93,
785 94, 95, 96, 97, 98, 99, 100, 66, 0, 0,
786 0, 0, 0, 0, 0, 0, 67, 0, 0, 0,
787 0, 68, 69, 0, 0, 0, 0, 0, 0, 0,
788 0, 595, 0, 0, 70, 477, 0, 478, 0, 479,
789 0, 0, 480, 0, 0, 0, 0, 0, 0, 0,
790 0, 0, 0, 0, 163, 0, 0, 345, 346, 72,
791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
792 347, 348, 0, 0, 0, 0, 73, 74, 75, 76,
793 77, 0, 0, 0, 0, 0, 0, 0, 0, 0,
794 0, 0, 0, 0, 0, 0, 0, 0, 78, 596,
795 597, 80, 81, 82, 83, 84, 0, 0, 0, 85,
796 86, 87, 88, 89, 90, 91, 92, 93, 598, 95,
797 96, 97, 98, 99, 100, 66, 0, 0, 0, 0,
798 0, 0, 0, 0, 67, 0, 0, 0, 0, 68,
799 69, 0, 0, 0, 0, 0, 0, 0, 0, 595,
800 0, 0, 70, 477, 0, 478, 0, 479, 0, 0,
801 480, 0, 0, 0, 0, 0, 0, 0, 0, 0,
802 0, 0, 0, 0, 0, 345, 346, 72, 0, 0,
803 0, 0, 0, 0, 0, 0, 0, 0, 347, 348,
804 0, 0, 0, 0, 73, 74, 75, 76, 77, 0,
805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
806 0, 0, 0, 0, 0, 0, 78, 596, 597, 80,
807 81, 82, 83, 84, 0, 0, 0, 85, 86, 87,
808 88, 89, 90, 91, 92, 93, 598, 95, 96, 97,
809 98, 99, 100, 66, 0, 0, 0, 0, 0, 0,
810 0, 0, 67, 0, 0, 0, 0, 68, 69, 0,
811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
812 70, 477, 0, 478, 0, 479, 0, 0, 480, 0,
813 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
814 163, 0, 0, 345, 346, 72, 0, 0, 0, 0,
815 0, 0, 0, 0, 0, 0, 347, 348, 0, 0,
816 665, 0, 73, 74, 75, 76, 77, 0, 0, 0,
817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
818 0, 0, 0, 0, 78, 0, 79, 80, 81, 82,
819 83, 84, 0, 0, 0, 85, 86, 87, 88, 89,
820 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
821 100, 66, 0, 0, 0, 0, 0, 0, 0, 0,
822 67, 0, 0, 0, 0, 68, 69, 0, 0, 0,
823 0, 0, 0, 0, 0, 0, 0, 0, 70, 477,
824 -483, 478, 0, 479, 0, 0, 480, 0, 0, 0,
825 0, 0, 0, 0, 0, 0, 0, 0, 163, 0,
826 0, 345, 346, 72, 0, 0, 0, 0, 0, 0,
827 0, 0, 0, 0, 347, 348, 0, 0, 0, 0,
828 73, 74, 75, 76, 77, 0, 0, 0, 0, 0,
829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
830 0, 0, 78, 0, 79, 80, 81, 82, 83, 84,
831 0, 0, 0, 85, 86, 87, 88, 89, 90, 91,
832 92, 93, 94, 95, 96, 97, 98, 99, 100, 66,
833 0, 0, 0, 0, 0, 0, 0, 0, 67, 0,
834 0, 0, 0, 68, 69, 0, 0, 0, 0, 0,
835 0, 0, 0, 0, 0, 0, 70, 477, 0, 478,
836 0, 479, 0, 0, 480, 0, 0, 0, 0, 0,
837 0, 0, 0, 0, 0, 0, 163, 0, 0, 345,
838 346, 72, 0, 0, 0, 0, 0, 0, 0, 0,
839 0, 0, 347, 348, 0, 0, 0, 0, 73, 74,
840 75, 76, 77, 0, 0, 0, 0, 0, 0, 0,
841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
842 78, 0, 79, 80, 81, 82, 83, 84, 0, 0,
843 0, 85, 86, 87, 88, 89, 90, 91, 92, 93,
844 94, 95, 96, 97, 98, 99, 100, 66, 0, 0,
845 0, 0, 0, 0, 0, 0, 67, 0, 0, 0,
846 0, 68, 69, 10, 11, 12, 13, 14, 15, 16,
847 17, 0, 0, 0, 70, 0, 0, 0, 0, 0,
848 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
849 2, 3, 4, 5, 6, 7, 8, 0, 0, 72,
850 0, 0, 9, 0, 10, 11, 12, 13, 14, 15,
851 16, 17, 0, 0, 0, 107, 73, 74, 75, 76,
852 77, 0, 0, 0, 0, 0, 0, 0, 584, 0,
853 0, 0, 0, 0, 0, 0, 0, 0, 78, 0,
854 79, 80, 81, 82, 83, 84, 0, 0, 0, 85,
855 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
856 96, 97, 98, 99, 100, 66, 0, 0, 0, 0,
857 0, 0, 0, 0, 67, 139, 140, 25, 111, 68,
858 69, 0, 0, 0, 0, 0, 0, 0, 0, 0,
859 0, 0, 70, 477, 0, 478, 0, 479, 0, 0,
860 480, 0, 0, 0, 0, 0, 0, 0, 0, 0,
861 0, 0, 0, 0, 0, 345, 346, 72, 0, 0,
862 0, 0, 0, 0, 0, 0, 0, 0, 347, 348,
863 0, 0, 0, 0, 73, 74, 75, 76, 77, 0,
864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
865 0, 0, 0, 0, 0, 0, 78, 0, 79, 80,
866 81, 82, 83, 84, 0, 0, 0, 85, 86, 87,
867 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
868 98, 99, 100, 66, 0, 0, 0, 0, 0, 0,
869 0, 0, 67, 0, 0, 0, 0, 68, 69, 0,
870 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
871 70, 0, 0, 342, 0, 343, 0, 0, 344, 0,
872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
873 0, 0, 0, 345, 346, 0, 0, 0, 0, 0,
874 0, 0, 0, 0, 0, 0, 347, 348, 0, 0,
875 0, 0, 73, 74, 75, 76, 77, 0, 0, 0,
876 0, 0, 0, 0, 349, 0, 0, 0, 0, 0,
877 0, 0, 0, 0, 78, 0, 79, 80, 81, 82,
878 83, 84, 0, 0, 0, 85, 86, 87, 88, 89,
879 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
880 100, 66, 0, 0, 0, 0, 0, 0, 0, 0,
881 67, 0, 0, 0, 0, 68, 69, 0, 0, 0,
882 0, 0, 0, 0, 0, 0, 0, 0, 70, 0,
883 0, 0, 0, 0, 0, 0, 71, 0, 0, 0,
884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
885 66, 0, 0, 72, 0, 0, 0, 0, 0, 67,
886 0, 0, 0, 0, 68, 69, 0, 0, 0, 0,
887 73, 74, 75, 76, 77, 0, 0, 70, 0, 0,
888 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
889 0, 0, 78, 0, 79, 80, 81, 82, 83, 84,
890 0, 0, 72, 85, 86, 87, 88, 89, 90, 91,
891 92, 93, 94, 95, 96, 97, 98, 99, 100, 73,
892 74, 75, 76, 77, 0, 0, 0, 0, 0, 0,
893 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
894 0, 78, 0, 79, 80, 81, 82, 83, 84, 0,
895 0, 0, 85, 86, 87, 88, 89, 90, 91, 92,
896 93, 94, 95, 96, 97, 98, 99, 100, 66, 0,
897 0, 0, 0, 0, 0, 0, 0, 67, 0, 0,
898 0, 0, 68, 69, 0, 0, 0, 0, 0, 0,
899 0, 0, 0, 0, 0, 70, 0, 0, 0, 0,
900 0, 0, 0, 193, 0, 0, 0, 0, 0, 0,
901 0, 0, 0, 0, 0, 0, 0, 66, 0, 0,
902 0, 0, 0, 0, 0, 0, 67, 0, 0, 0,
903 0, 68, 69, 0, 0, 0, 0, 73, 74, 75,
904 76, 77, 0, 0, 70, 0, 0, 0, 0, 0,
905 0, 0, 419, 0, 0, 0, 0, 0, 0, 78,
906 0, 79, 80, 81, 82, 83, 84, 0, 0, 0,
907 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
908 95, 96, 97, 98, 99, 100, 73, 74, 75, 76,
909 77, 0, 0, 0, 0, 0, 0, 0, 0, 0,
910 0, 0, 0, 0, 0, 0, 0, 0, 78, 0,
911 79, 80, 81, 82, 83, 84, 0, 0, 0, 85,
912 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
913 96, 97, 98, 99, 100, 66, 0, 0, 0, 0,
914 0, 0, 0, 0, 67, 0, 0, 0, 0, 68,
915 69, 0, 0, 0, 0, 0, 0, 0, 0, 0,
916 0, 0, 70, 0, 0, 0, 0, 0, 0, 0,
917 452, 0, 0, 0, 0, 0, 0, 0, 0, 0,
918 0, 0, 0, 0, 0, 0, 66, 0, 0, 0,
919 0, 0, 0, 0, 0, 67, 0, 0, 0, 0,
920 68, 69, 0, 0, 73, 74, 75, 76, 77, 0,
921 0, 0, 0, 70, 0, 0, 0, 0, 0, 0,
922 0, 0, 0, 0, 0, 0, 78, 0, 79, 80,
923 81, 82, 83, 84, 0, 0, 0, 85, 86, 87,
924 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
925 98, 99, 100, 573, 0, 73, 74, 75, 76, 77,
926 66, 0, 0, 0, 0, 0, 0, 0, 0, 67,
927 0, 0, 0, 0, 68, 69, 0, 78, 0, 79,
928 80, 81, 82, 83, 84, 0, 0, 70, 85, 86,
929 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
930 97, 98, 99, 100, 0, 0, 0, 0, 0, 66,
931 0, 0, 0, 0, 0, 0, 0, 0, 67, 0,
932 0, 0, 0, 68, 69, 0, 0, 649, 0, 73,
933 74, 75, 76, 77, 0, 0, 70, 0, 0, 0,
934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
935 0, 78, 0, 79, 80, 81, 82, 83, 84, 0,
936 0, 0, 85, 86, 87, 88, 89, 90, 91, 92,
937 93, 94, 95, 96, 97, 98, 99, 100, 73, 74,
938 75, 76, 77, 0, 0, 0, 0, 0, 0, 0,
939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
940 78, 0, 79, 80, 81, 82, 83, 84, 0, 0,
941 0, 85, 86, 87, 88, 89, 90, 91, 92, 93,
942 94, 95, 96, 97, 98, 99, 100, 1, 2, 3,
943 4, 5, 6, 7, 8, 0, 0, 0, 0, 0,
944 545, 0, 10, 11, 12, 13, 14, 15, 16, 17,
945 0, 0, 0, 107, 1, 2, 3, 4, 5, 6,
946 7, 8, 0, 0, 0, 0, 0, 9, 0, 10,
947 11, 12, 13, 14, 15, 16, 17, 0, 0, 0,
948 107, 1, 2, 3, 4, 5, 6, 7, 8, 0,
949 0, 0, 0, 549, 138, 0, 10, 11, 12, 13,
950 14, 15, 16, 17, 0, 0, 0, 107, 0, 0,
951 0, 0, 0, 108, 109, 110, 386, 0, 0, 0,
952 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
953 0, 1, 2, 3, 4, 5, 6, 7, 8, 0,
954 108, 109, 110, 111, 9, 0, 10, 11, 12, 13,
955 14, 15, 16, 17, 0, 0, 0, 107, 1, 2,
956 3, 4, 5, 6, 7, 8, 0, 139, 140, 25,
957 111, 9, 0, 10, 11, 12, 13, 14, 15, 16,
958 17, 0, 0, 0, 107, 1, 2, 3, 4, 5,
959 6, 7, 8, 0, 0, 0, 0, 0, 385, 0,
960 10, 11, 12, 13, 14, 15, 16, 17, 0, 0,
961 0, 107, 0, 0, 0, 0, 0, 108, 109, 110,
962 111, 0, 0, 0, 0, 0, 0, 0, 0, 0,
963 0, 0, 0, 0, 0, 1, 2, 3, 4, 5,
964 6, 7, 8, 0, 139, 140, 25, 111, 157, 0,
965 10, 11, 12, 13, 14, 15, 16, 17, 0, 0,
966 0, 107, 1, 2, 3, 4, 5, 6, 7, 8,
967 0, 108, 109, 110, 386, 466, 0, 10, 11, 12,
968 13, 14, 15, 16, 17, 570, 0, 0, 107, 0,
969 0, 0, 0, 0, 0, 0, 423, 424, 425, 426,
970 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
971 437, 438, 439, 440, 0, 504, 0, 0, 0, 559,
972 0, 108, 109, 110, 423, 424, 425, 426, 427, 428,
973 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
974 439, 440, 607, 0, 0, 0, 0, 441, 108, 109,
975 110, 423, 424, 425, 426, 427, 428, 429, 430, 431,
976 432, 433, 434, 435, 436, 437, 438, 439, 440, 704,
977 0, 0, 0, 0, 559, 0, 0, 0, 423, 424,
978 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
979 435, 436, 437, 438, 439, 440, 580, 0, 0, 0,
980 0, 559, 0, 423, 424, 425, 426, 427, 428, 429,
981 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
982 440, 643, 0, 0, 0, 0, 441, 0, 423, 424,
983 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
984 435, 436, 437, 438, 439, 440, 0, 0, 0, 0,
985 0, 559, 423, 424, 425, 426, 427, 428, 429, 430,
986 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
987 0, 0, 0, 0, 0, 441, 423, 424, 425, 426,
988 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
989 437, 438, 439, 440, 0, 0, 0, 0, 0, 559,
990 423, 424, 425, 426, 427, 428, 429, 430, 431, 432,
991 433, 434, 435, 436, 437, 438, 439, 440, 0, 0,
992 0, 0, 0, 441, 423, 424, 425, 426, 427, 428,
993 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
994 439, 440, 0, 0, 0, 0, 0, 559
995 };
996
997 static const short int yycheck[] =
998 {
999 39, 29, 9, 26, 18, 133, 22, 137, 22, 9,
1000 71, 22, 396, 167, 552, 399, 344, 18, 0, 408,
1001 552, 585, 350, 23, 24, 25, 376, 588, 561, 590,
1002 32, 537, 39, 55, 402, 352, 18, 34, 0, 38,
1003 33, 33, 6, 7, 8, 4, 5, 6, 41, 31,
1004 9, 33, 552, 45, 41, 42, 55, 98, 99, 100,
1005 101, 102, 103, 104, 71, 454, 627, 37, 70, 34,
1006 37, 33, 42, 605, 41, 42, 34, 362, 363, 6,
1007 208, 39, 9, 472, 39, 40, 40, 455, 111, 43,
1008 654, 480, 481, 37, 422, 0, 40, 597, 17, 18,
1009 50, 418, 102, 142, 421, 605, 128, 97, 108, 109,
1010 110, 644, 37, 441, 442, 38, 37, 38, 468, 40,
1011 470, 685, 9, 629, 11, 129, 126, 124, 148, 149,
1012 150, 138, 193, 42, 640, 142, 136, 137, 138, 139,
1013 140, 679, 17, 18, 38, 38, 146, 40, 709, 682,
1014 157, 167, 43, 167, 687, 661, 167, 469, 42, 471,
1015 55, 200, 694, 552, 93, 166, 43, 705, 39, 40,
1016 559, 560, 186, 187, 174, 186, 187, 561, 711, 679,
1017 39, 40, 39, 40, 166, 36, 193, 37, 188, 506,
1018 190, 38, 509, 510, 694, 41, 115, 116, 117, 118,
1019 119, 120, 139, 140, 42, 705, 31, 98, 99, 100,
1020 101, 102, 103, 104, 344, 31, 605, 606, 31, 37,
1021 350, 98, 99, 100, 101, 102, 103, 104, 36, 31,
1022 105, 106, 107, 108, 109, 110, 111, 112, 113, 42,
1023 44, 630, 38, 593, 594, 6, 38, 37, 37, 123,
1024 639, 579, 580, 38, 643, 41, 38, 37, 42, 46,
1025 644, 37, 34, 46, 72, 73, 74, 75, 76, 77,
1026 78, 79, 80, 81, 82, 83, 39, 85, 86, 87,
1027 88, 40, 38, 38, 46, 45, 37, 37, 46, 678,
1028 679, 445, 422, 38, 32, 38, 37, 46, 682, 39,
1029 617, 618, 39, 687, 39, 694, 40, 33, 41, 37,
1030 41, 441, 442, 40, 375, 39, 705, 4, 5, 6,
1031 7, 8, 9, 10, 11, 39, 387, 711, 39, 39,
1032 17, 39, 19, 20, 21, 22, 23, 24, 25, 26,
1033 39, 41, 40, 30, 344, 40, 39, 114, 387, 349,
1034 350, 40, 46, 38, 38, 33, 395, 37, 397, 513,
1035 41, 38, 38, 386, 39, 37, 366, 41, 375, 39,
1036 33, 40, 37, 40, 3, 39, 38, 6, 385, 40,
1037 387, 10, 40, 12, 13, 14, 15, 16, 17, 32,
1038 38, 452, 39, 33, 33, 39, 41, 39, 398, 40,
1039 33, 39, 89, 90, 91, 92, 93, 446, 447, 40,
1040 39, 411, 40, 39, 414, 39, 33, 335, 136, 419,
1041 630, 142, 422, 46, 181, 566, 168, 31, 624, 445,
1042 365, 445, 103, 187, 445, 473, 28, 590, 369, 705,
1043 596, 441, 442, 395, 568, 452, 399, -1, -1, 579,
1044 580, -1, -1, -1, -1, 469, -1, 471, 469, 466,
1045 471, 461, -1, 502, -1, 465, -1, 3, -1, 480,
1046 6, -1, -1, 473, 10, -1, 12, 13, 14, 15,
1047 16, 17, -1, -1, -1, -1, -1, 615, -1, 4,
1048 5, 6, 7, 8, 9, 10, 11, 513, -1, 513,
1049 -1, -1, 513, 503, 19, 20, 21, 22, 23, 24,
1050 25, 26, -1, -1, -1, 30, 516, -1, -1, -1,
1051 -1, -1, -1, -1, 563, -1, -1, 566, -1, -1,
1052 -1, -1, 555, -1, -1, -1, -1, 565, 545, -1,
1053 -1, -1, -1, 543, 3, 4, 5, 6, 7, 8,
1054 9, 10, 11, 12, -1, -1, -1, -1, 17, -1,
1055 19, 20, 21, 22, 23, 24, 25, 26, 568, -1,
1056 -1, 30, -1, 612, -1, 90, 91, 92, -1, 579,
1057 580, -1, -1, 622, -1, -1, -1, -1, -1, -1,
1058 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1059 -1, 629, -1, -1, -1, -1, -1, -1, -1, -1,
1060 -1, -1, -1, -1, -1, -1, 616, -1, -1, -1,
1061 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1062 -1, 90, 91, 92, 40, 674, -1, -1, -1, -1,
1063 679, -1, 48, 49, 50, 51, 52, 53, 54, 55,
1064 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1065 -1, -1, -1, -1, 0, 71, 705, 3, 4, 5,
1066 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1067 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1068 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1069 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1070 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1071 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1072 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1073 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1074 -1, 87, -1, 89, 90, 91, 92, 93, 94, 95,
1075 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1076 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1077 116, 117, 118, 119, 120, 121, -1, 123, 124, -1,
1078 126, 127, 128, 129, 0, -1, -1, 3, 4, 5,
1079 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1080 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1081 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1082 -1, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1083 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1084 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1085 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1086 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1087 -1, 87, -1, 89, 90, 91, 92, 93, 94, 95,
1088 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1089 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1090 116, 117, 118, 119, 120, 121, 3, -1, 124, -1,
1091 126, 127, 128, 129, -1, 12, -1, -1, -1, -1,
1092 17, 18, -1, -1, -1, -1, -1, -1, -1, -1,
1093 27, 28, 29, 30, -1, -1, -1, -1, -1, -1,
1094 -1, -1, -1, -1, -1, -1, -1, -1, 4, 5,
1095 6, 7, 8, 9, 10, 11, -1, -1, -1, -1,
1096 -1, 17, -1, 19, 20, 21, 22, 23, 24, 25,
1097 26, -1, -1, -1, 30, 72, 73, 74, 75, 76,
1098 36, 37, -1, -1, -1, -1, -1, -1, -1, -1,
1099 -1, 47, -1, -1, -1, -1, -1, 94, -1, 96,
1100 97, 98, 99, 100, 101, -1, -1, -1, 105, 106,
1101 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1102 117, 118, 119, 120, -1, -1, -1, -1, -1, 126,
1103 -1, 128, -1, 89, 90, 91, 92, 93, 94, 95,
1104 -1, 97, 4, 5, 6, 7, 8, 9, 10, 11,
1105 -1, -1, -1, -1, -1, 17, -1, 19, 20, 21,
1106 22, 23, 24, 25, 26, 121, -1, -1, 30, -1,
1107 126, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1108 12, -1, -1, -1, -1, 17, 18, 19, 20, 21,
1109 22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
1110 -1, 33, -1, 35, -1, -1, 38, -1, 70, -1,
1111 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1112 -1, 53, 54, 55, -1, -1, -1, -1, 90, 91,
1113 92, 93, -1, -1, 66, 67, -1, -1, -1, -1,
1114 72, 73, 74, 75, 76, -1, -1, -1, -1, -1,
1115 -1, -1, -1, -1, -1, -1, -1, -1, 90, 91,
1116 92, 93, 94, -1, 96, 97, 98, 99, 100, 101,
1117 -1, -1, -1, 105, 106, 107, 108, 109, 110, 111,
1118 112, 113, 114, 115, 116, 117, 118, 119, 120, 3,
1119 -1, -1, -1, -1, -1, -1, -1, -1, 12, -1,
1120 -1, -1, -1, 17, 18, -1, -1, -1, -1, -1,
1121 -1, -1, -1, 27, 28, 29, 30, 31, -1, 33,
1122 34, 35, -1, -1, 38, -1, -1, -1, -1, -1,
1123 -1, -1, -1, -1, -1, -1, -1, -1, -1, 53,
1124 54, 55, -1, -1, -1, -1, -1, -1, -1, -1,
1125 -1, -1, 66, 67, -1, -1, -1, -1, 72, 73,
1126 74, 75, 76, -1, -1, -1, -1, -1, -1, -1,
1127 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1128 94, -1, 96, 97, 98, 99, 100, 101, -1, -1,
1129 -1, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1130 114, 115, 116, 117, 118, 119, 120, 3, -1, -1,
1131 -1, -1, -1, -1, -1, -1, 12, -1, -1, -1,
1132 -1, 17, 18, -1, -1, -1, -1, -1, -1, -1,
1133 -1, 27, -1, -1, 30, 31, -1, 33, -1, 35,
1134 -1, -1, 38, -1, -1, -1, -1, -1, -1, -1,
1135 -1, -1, -1, -1, 50, -1, -1, 53, 54, 55,
1136 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1137 66, 67, -1, -1, -1, -1, 72, 73, 74, 75,
1138 76, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1139 -1, -1, -1, -1, -1, -1, -1, -1, 94, 95,
1140 96, 97, 98, 99, 100, 101, -1, -1, -1, 105,
1141 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1142 116, 117, 118, 119, 120, 3, -1, -1, -1, -1,
1143 -1, -1, -1, -1, 12, -1, -1, -1, -1, 17,
1144 18, -1, -1, -1, -1, -1, -1, -1, -1, 27,
1145 -1, -1, 30, 31, -1, 33, -1, 35, -1, -1,
1146 38, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1147 -1, -1, -1, -1, -1, 53, 54, 55, -1, -1,
1148 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
1149 -1, -1, -1, -1, 72, 73, 74, 75, 76, -1,
1150 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1151 -1, -1, -1, -1, -1, -1, 94, 95, 96, 97,
1152 98, 99, 100, 101, -1, -1, -1, 105, 106, 107,
1153 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1154 118, 119, 120, 3, -1, -1, -1, -1, -1, -1,
1155 -1, -1, 12, -1, -1, -1, -1, 17, 18, -1,
1156 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1157 30, 31, -1, 33, -1, 35, -1, -1, 38, -1,
1158 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1159 50, -1, -1, 53, 54, 55, -1, -1, -1, -1,
1160 -1, -1, -1, -1, -1, -1, 66, 67, -1, -1,
1161 70, -1, 72, 73, 74, 75, 76, -1, -1, -1,
1162 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1163 -1, -1, -1, -1, 94, -1, 96, 97, 98, 99,
1164 100, 101, -1, -1, -1, 105, 106, 107, 108, 109,
1165 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
1166 120, 3, -1, -1, -1, -1, -1, -1, -1, -1,
1167 12, -1, -1, -1, -1, 17, 18, -1, -1, -1,
1168 -1, -1, -1, -1, -1, -1, -1, -1, 30, 31,
1169 32, 33, -1, 35, -1, -1, 38, -1, -1, -1,
1170 -1, -1, -1, -1, -1, -1, -1, -1, 50, -1,
1171 -1, 53, 54, 55, -1, -1, -1, -1, -1, -1,
1172 -1, -1, -1, -1, 66, 67, -1, -1, -1, -1,
1173 72, 73, 74, 75, 76, -1, -1, -1, -1, -1,
1174 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1175 -1, -1, 94, -1, 96, 97, 98, 99, 100, 101,
1176 -1, -1, -1, 105, 106, 107, 108, 109, 110, 111,
1177 112, 113, 114, 115, 116, 117, 118, 119, 120, 3,
1178 -1, -1, -1, -1, -1, -1, -1, -1, 12, -1,
1179 -1, -1, -1, 17, 18, -1, -1, -1, -1, -1,
1180 -1, -1, -1, -1, -1, -1, 30, 31, -1, 33,
1181 -1, 35, -1, -1, 38, -1, -1, -1, -1, -1,
1182 -1, -1, -1, -1, -1, -1, 50, -1, -1, 53,
1183 54, 55, -1, -1, -1, -1, -1, -1, -1, -1,
1184 -1, -1, 66, 67, -1, -1, -1, -1, 72, 73,
1185 74, 75, 76, -1, -1, -1, -1, -1, -1, -1,
1186 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1187 94, -1, 96, 97, 98, 99, 100, 101, -1, -1,
1188 -1, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1189 114, 115, 116, 117, 118, 119, 120, 3, -1, -1,
1190 -1, -1, -1, -1, -1, -1, 12, -1, -1, -1,
1191 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1192 26, -1, -1, -1, 30, -1, -1, -1, -1, -1,
1193 -1, -1, -1, -1, -1, -1, -1, -1, -1, 4,
1194 5, 6, 7, 8, 9, 10, 11, -1, -1, 55,
1195 -1, -1, 17, -1, 19, 20, 21, 22, 23, 24,
1196 25, 26, -1, -1, -1, 30, 72, 73, 74, 75,
1197 76, -1, -1, -1, -1, -1, -1, -1, 43, -1,
1198 -1, -1, -1, -1, -1, -1, -1, -1, 94, -1,
1199 96, 97, 98, 99, 100, 101, -1, -1, -1, 105,
1200 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1201 116, 117, 118, 119, 120, 3, -1, -1, -1, -1,
1202 -1, -1, -1, -1, 12, 90, 91, 92, 93, 17,
1203 18, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1204 -1, -1, 30, 31, -1, 33, -1, 35, -1, -1,
1205 38, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1206 -1, -1, -1, -1, -1, 53, 54, 55, -1, -1,
1207 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
1208 -1, -1, -1, -1, 72, 73, 74, 75, 76, -1,
1209 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1210 -1, -1, -1, -1, -1, -1, 94, -1, 96, 97,
1211 98, 99, 100, 101, -1, -1, -1, 105, 106, 107,
1212 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1213 118, 119, 120, 3, -1, -1, -1, -1, -1, -1,
1214 -1, -1, 12, -1, -1, -1, -1, 17, 18, -1,
1215 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1216 30, -1, -1, 33, -1, 35, -1, -1, 38, -1,
1217 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1218 -1, -1, -1, 53, 54, -1, -1, -1, -1, -1,
1219 -1, -1, -1, -1, -1, -1, 66, 67, -1, -1,
1220 -1, -1, 72, 73, 74, 75, 76, -1, -1, -1,
1221 -1, -1, -1, -1, 84, -1, -1, -1, -1, -1,
1222 -1, -1, -1, -1, 94, -1, 96, 97, 98, 99,
1223 100, 101, -1, -1, -1, 105, 106, 107, 108, 109,
1224 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
1225 120, 3, -1, -1, -1, -1, -1, -1, -1, -1,
1226 12, -1, -1, -1, -1, 17, 18, -1, -1, -1,
1227 -1, -1, -1, -1, -1, -1, -1, -1, 30, -1,
1228 -1, -1, -1, -1, -1, -1, 38, -1, -1, -1,
1229 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1230 3, -1, -1, 55, -1, -1, -1, -1, -1, 12,
1231 -1, -1, -1, -1, 17, 18, -1, -1, -1, -1,
1232 72, 73, 74, 75, 76, -1, -1, 30, -1, -1,
1233 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1234 -1, -1, 94, -1, 96, 97, 98, 99, 100, 101,
1235 -1, -1, 55, 105, 106, 107, 108, 109, 110, 111,
1236 112, 113, 114, 115, 116, 117, 118, 119, 120, 72,
1237 73, 74, 75, 76, -1, -1, -1, -1, -1, -1,
1238 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1239 -1, 94, -1, 96, 97, 98, 99, 100, 101, -1,
1240 -1, -1, 105, 106, 107, 108, 109, 110, 111, 112,
1241 113, 114, 115, 116, 117, 118, 119, 120, 3, -1,
1242 -1, -1, -1, -1, -1, -1, -1, 12, -1, -1,
1243 -1, -1, 17, 18, -1, -1, -1, -1, -1, -1,
1244 -1, -1, -1, -1, -1, 30, -1, -1, -1, -1,
1245 -1, -1, -1, 38, -1, -1, -1, -1, -1, -1,
1246 -1, -1, -1, -1, -1, -1, -1, 3, -1, -1,
1247 -1, -1, -1, -1, -1, -1, 12, -1, -1, -1,
1248 -1, 17, 18, -1, -1, -1, -1, 72, 73, 74,
1249 75, 76, -1, -1, 30, -1, -1, -1, -1, -1,
1250 -1, -1, 38, -1, -1, -1, -1, -1, -1, 94,
1251 -1, 96, 97, 98, 99, 100, 101, -1, -1, -1,
1252 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1253 115, 116, 117, 118, 119, 120, 72, 73, 74, 75,
1254 76, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1255 -1, -1, -1, -1, -1, -1, -1, -1, 94, -1,
1256 96, 97, 98, 99, 100, 101, -1, -1, -1, 105,
1257 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1258 116, 117, 118, 119, 120, 3, -1, -1, -1, -1,
1259 -1, -1, -1, -1, 12, -1, -1, -1, -1, 17,
1260 18, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1261 -1, -1, 30, -1, -1, -1, -1, -1, -1, -1,
1262 38, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1263 -1, -1, -1, -1, -1, -1, 3, -1, -1, -1,
1264 -1, -1, -1, -1, -1, 12, -1, -1, -1, -1,
1265 17, 18, -1, -1, 72, 73, 74, 75, 76, -1,
1266 -1, -1, -1, 30, -1, -1, -1, -1, -1, -1,
1267 -1, -1, -1, -1, -1, -1, 94, -1, 96, 97,
1268 98, 99, 100, 101, -1, -1, -1, 105, 106, 107,
1269 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1270 118, 119, 120, 70, -1, 72, 73, 74, 75, 76,
1271 3, -1, -1, -1, -1, -1, -1, -1, -1, 12,
1272 -1, -1, -1, -1, 17, 18, -1, 94, -1, 96,
1273 97, 98, 99, 100, 101, -1, -1, 30, 105, 106,
1274 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1275 117, 118, 119, 120, -1, -1, -1, -1, -1, 3,
1276 -1, -1, -1, -1, -1, -1, -1, -1, 12, -1,
1277 -1, -1, -1, 17, 18, -1, -1, 70, -1, 72,
1278 73, 74, 75, 76, -1, -1, 30, -1, -1, -1,
1279 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1280 -1, 94, -1, 96, 97, 98, 99, 100, 101, -1,
1281 -1, -1, 105, 106, 107, 108, 109, 110, 111, 112,
1282 113, 114, 115, 116, 117, 118, 119, 120, 72, 73,
1283 74, 75, 76, -1, -1, -1, -1, -1, -1, -1,
1284 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1285 94, -1, 96, 97, 98, 99, 100, 101, -1, -1,
1286 -1, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1287 114, 115, 116, 117, 118, 119, 120, 4, 5, 6,
1288 7, 8, 9, 10, 11, -1, -1, -1, -1, -1,
1289 17, -1, 19, 20, 21, 22, 23, 24, 25, 26,
1290 -1, -1, -1, 30, 4, 5, 6, 7, 8, 9,
1291 10, 11, -1, -1, -1, -1, -1, 17, -1, 19,
1292 20, 21, 22, 23, 24, 25, 26, -1, -1, -1,
1293 30, 4, 5, 6, 7, 8, 9, 10, 11, -1,
1294 -1, -1, -1, 70, 17, -1, 19, 20, 21, 22,
1295 23, 24, 25, 26, -1, -1, -1, 30, -1, -1,
1296 -1, -1, -1, 90, 91, 92, 93, -1, -1, -1,
1297 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1298 -1, 4, 5, 6, 7, 8, 9, 10, 11, -1,
1299 90, 91, 92, 93, 17, -1, 19, 20, 21, 22,
1300 23, 24, 25, 26, -1, -1, -1, 30, 4, 5,
1301 6, 7, 8, 9, 10, 11, -1, 90, 91, 92,
1302 93, 17, -1, 19, 20, 21, 22, 23, 24, 25,
1303 26, -1, -1, -1, 30, 4, 5, 6, 7, 8,
1304 9, 10, 11, -1, -1, -1, -1, -1, 17, -1,
1305 19, 20, 21, 22, 23, 24, 25, 26, -1, -1,
1306 -1, 30, -1, -1, -1, -1, -1, 90, 91, 92,
1307 93, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1308 -1, -1, -1, -1, -1, 4, 5, 6, 7, 8,
1309 9, 10, 11, -1, 90, 91, 92, 93, 17, -1,
1310 19, 20, 21, 22, 23, 24, 25, 26, -1, -1,
1311 -1, 30, 4, 5, 6, 7, 8, 9, 10, 11,
1312 -1, 90, 91, 92, 93, 17, -1, 19, 20, 21,
1313 22, 23, 24, 25, 26, 37, -1, -1, 30, -1,
1314 -1, -1, -1, -1, -1, -1, 48, 49, 50, 51,
1315 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1316 62, 63, 64, 65, -1, 39, -1, -1, -1, 71,
1317 -1, 90, 91, 92, 48, 49, 50, 51, 52, 53,
1318 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1319 64, 65, 39, -1, -1, -1, -1, 71, 90, 91,
1320 92, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1321 57, 58, 59, 60, 61, 62, 63, 64, 65, 39,
1322 -1, -1, -1, -1, 71, -1, -1, -1, 48, 49,
1323 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1324 60, 61, 62, 63, 64, 65, 41, -1, -1, -1,
1325 -1, 71, -1, 48, 49, 50, 51, 52, 53, 54,
1326 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1327 65, 41, -1, -1, -1, -1, 71, -1, 48, 49,
1328 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1329 60, 61, 62, 63, 64, 65, -1, -1, -1, -1,
1330 -1, 71, 48, 49, 50, 51, 52, 53, 54, 55,
1331 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1332 -1, -1, -1, -1, -1, 71, 48, 49, 50, 51,
1333 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1334 62, 63, 64, 65, -1, -1, -1, -1, -1, 71,
1335 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1336 58, 59, 60, 61, 62, 63, 64, 65, -1, -1,
1337 -1, -1, -1, 71, 48, 49, 50, 51, 52, 53,
1338 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1339 64, 65, -1, -1, -1, -1, -1, 71
1340 };
1341
1342 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1343 symbol of state STATE-NUM. */
1344 static const unsigned char yystos[] =
1345 {
1346 0, 4, 5, 6, 7, 8, 9, 10, 11, 17,
1347 19, 20, 21, 22, 23, 24, 25, 26, 30, 36,
1348 37, 47, 89, 90, 91, 92, 93, 94, 95, 97,
1349 121, 126, 137, 138, 139, 140, 141, 159, 164, 166,
1350 167, 168, 169, 170, 171, 172, 173, 174, 179, 182,
1351 183, 186, 187, 188, 189, 190, 191, 194, 196, 197,
1352 203, 208, 219, 220, 9, 11, 3, 12, 17, 18,
1353 30, 38, 55, 72, 73, 74, 75, 76, 94, 96,
1354 97, 98, 99, 100, 101, 105, 106, 107, 108, 109,
1355 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
1356 120, 135, 216, 217, 218, 235, 245, 30, 90, 91,
1357 92, 93, 187, 194, 36, 72, 73, 74, 75, 76,
1358 77, 78, 79, 80, 81, 82, 83, 85, 86, 87,
1359 88, 142, 143, 144, 145, 147, 148, 149, 17, 90,
1360 91, 165, 166, 188, 189, 194, 203, 209, 210, 135,
1361 135, 135, 211, 3, 6, 10, 12, 17, 160, 161,
1362 167, 34, 220, 50, 253, 254, 30, 89, 186, 0,
1363 139, 135, 195, 215, 216, 4, 5, 6, 9, 175,
1364 6, 172, 178, 37, 129, 180, 38, 38, 42, 42,
1365 215, 216, 93, 38, 135, 128, 218, 135, 135, 135,
1366 40, 184, 27, 28, 29, 126, 128, 135, 150, 151,
1367 36, 0, 3, 4, 5, 6, 7, 8, 9, 10,
1368 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1369 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1370 31, 32, 33, 34, 35, 37, 38, 39, 40, 41,
1371 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1372 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1373 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1374 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1375 82, 83, 84, 85, 87, 89, 90, 91, 92, 93,
1376 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
1377 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1378 114, 115, 116, 117, 118, 119, 120, 121, 124, 126,
1379 127, 128, 129, 136, 154, 155, 154, 34, 124, 146,
1380 135, 150, 33, 35, 38, 53, 54, 66, 67, 84,
1381 134, 135, 156, 135, 135, 211, 135, 211, 37, 171,
1382 135, 41, 213, 213, 213, 213, 216, 31, 37, 42,
1383 31, 165, 180, 44, 214, 38, 135, 6, 176, 6,
1384 9, 177, 175, 38, 37, 17, 93, 166, 192, 193,
1385 194, 192, 135, 204, 205, 98, 99, 100, 101, 102,
1386 103, 104, 226, 227, 228, 241, 242, 248, 249, 250,
1387 135, 215, 185, 195, 216, 123, 154, 136, 156, 38,
1388 135, 156, 38, 48, 49, 50, 51, 52, 53, 54,
1389 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1390 65, 71, 133, 37, 41, 42, 199, 199, 37, 198,
1391 199, 198, 38, 135, 46, 226, 38, 37, 37, 33,
1392 45, 215, 214, 34, 181, 216, 17, 215, 39, 40,
1393 39, 40, 46, 40, 43, 195, 231, 31, 33, 35,
1394 38, 134, 195, 206, 207, 223, 243, 244, 245, 253,
1395 195, 135, 251, 252, 18, 244, 245, 43, 227, 206,
1396 39, 135, 40, 38, 39, 135, 156, 157, 158, 156,
1397 156, 38, 165, 200, 195, 195, 215, 27, 28, 29,
1398 34, 162, 163, 206, 43, 3, 6, 10, 12, 13,
1399 14, 15, 16, 17, 39, 221, 222, 224, 225, 45,
1400 135, 34, 39, 216, 214, 17, 70, 193, 214, 70,
1401 206, 205, 46, 37, 30, 93, 166, 206, 206, 71,
1402 133, 46, 37, 38, 32, 46, 38, 37, 40, 37,
1403 37, 39, 195, 70, 135, 152, 153, 39, 39, 40,
1404 41, 33, 41, 212, 43, 165, 135, 37, 41, 39,
1405 40, 223, 39, 39, 39, 27, 95, 96, 114, 206,
1406 230, 232, 233, 234, 235, 254, 39, 39, 206, 206,
1407 243, 195, 253, 185, 252, 39, 40, 156, 156, 40,
1408 33, 41, 40, 201, 212, 39, 224, 41, 222, 224,
1409 46, 214, 214, 114, 232, 17, 18, 235, 238, 38,
1410 38, 230, 206, 41, 40, 246, 195, 39, 154, 70,
1411 135, 33, 41, 38, 195, 202, 37, 201, 224, 253,
1412 162, 38, 206, 223, 206, 70, 243, 247, 39, 37,
1413 39, 41, 33, 212, 40, 37, 70, 223, 40, 40,
1414 236, 39, 40, 38, 40, 195, 32, 38, 206, 195,
1415 229, 230, 231, 237, 254, 39, 243, 33, 33, 212,
1416 39, 239, 240, 243, 39, 40, 230, 40, 39, 41,
1417 39, 40, 229, 33, 224, 39, 243, 39
1418 };
1419
1420 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1421 static const unsigned char yyr1[] =
1422 {
1423 0, 132, 133, 133, 133, 133, 133, 133, 133, 133,
1424 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
1425 134, 134, 134, 134, 135, 135, 135, 135, 135, 135,
1426 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
1427 135, 135, 136, 136, 136, 136, 136, 136, 136, 136,
1428 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1429 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1430 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1431 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1432 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1433 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1434 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1435 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1436 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1437 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1438 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1439 136, 136, 136, 136, 137, 137, 138, 138, 139, 139,
1440 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
1441 139, 140, 141, 141, 142, 142, 142, 142, 142, 142,
1442 142, 142, 143, 143, 144, 144, 145, 145, 145, 146,
1443 146, 147, 147, 148, 148, 148, 149, 149, 150, 150,
1444 150, 150, 150, 150, 151, 151, 152, 152, 152, 152,
1445 153, 153, 154, 154, 155, 155, 156, 156, 156, 156,
1446 156, 156, 156, 156, 156, 156, 157, 157, 158, 158,
1447 159, 160, 161, 161, 161, 161, 162, 162, 162, 163,
1448 163, 163, 163, 164, 164, 164, 165, 165, 165, 165,
1449 165, 165, 166, 166, 167, 167, 168, 168, 168, 169,
1450 169, 169, 169, 170, 170, 170, 171, 171, 171, 171,
1451 171, 171, 171, 171, 172, 172, 173, 173, 173, 174,
1452 174, 174, 174, 175, 175, 175, 175, 175, 176, 176,
1453 177, 177, 177, 178, 178, 178, 179, 179, 180, 180,
1454 181, 181, 182, 183, 184, 184, 185, 185, 186, 186,
1455 187, 187, 188, 188, 189, 189, 190, 190, 190, 190,
1456 191, 191, 192, 192, 192, 192, 193, 193, 193, 193,
1457 194, 194, 194, 194, 195, 195, 196, 197, 198, 198,
1458 199, 200, 200, 201, 201, 202, 202, 203, 204, 204,
1459 205, 205, 206, 206, 206, 206, 206, 206, 207, 207,
1460 207, 207, 208, 209, 210, 211, 211, 212, 212, 212,
1461 212, 213, 213, 214, 214, 214, 215, 215, 216, 216,
1462 217, 217, 218, 218, 219, 219, 220, 220, 220, 221,
1463 221, 222, 222, 223, 224, 225, 225, 225, 225, 225,
1464 225, 225, 225, 225, 226, 226, 227, 227, 227, 227,
1465 227, 228, 228, 229, 229, 229, 230, 230, 230, 230,
1466 230, 230, 231, 231, 232, 233, 234, 235, 235, 235,
1467 235, 235, 235, 235, 235, 235, 235, 236, 236, 237,
1468 237, 238, 238, 239, 239, 240, 240, 241, 242, 243,
1469 243, 243, 244, 244, 245, 245, 245, 245, 245, 245,
1470 245, 245, 246, 246, 247, 247, 248, 249, 249, 250,
1471 251, 251, 252, 253, 253, 254
1472 };
1473
1474 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
1475 static const unsigned char yyr2[] =
1476 {
1477 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1478 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1479 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1480 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1481 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1482 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1483 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1484 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1485 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1486 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1487 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1488 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1489 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1490 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1491 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1492 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1493 1, 1, 1, 1, 0, 1, 1, 2, 1, 1,
1494 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1495 1, 3, 2, 3, 2, 2, 1, 2, 2, 2,
1496 1, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1497 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1498 1, 1, 1, 1, 6, 2, 0, 1, 1, 3,
1499 1, 3, 0, 1, 1, 2, 3, 2, 3, 5,
1500 2, 4, 1, 1, 1, 4, 0, 1, 1, 3,
1501 6, 1, 1, 1, 1, 1, 0, 1, 1, 1,
1502 1, 1, 1, 3, 4, 4, 1, 1, 2, 4,
1503 4, 2, 2, 1, 1, 1, 2, 2, 2, 1,
1504 1, 1, 1, 1, 1, 2, 1, 1, 1, 1,
1505 1, 1, 1, 1, 1, 1, 1, 1, 2, 1,
1506 1, 2, 2, 0, 1, 2, 1, 2, 0, 1,
1507 0, 1, 1, 0, 1, 2, 3, 4, 0, 4,
1508 1, 2, 2, 3, 0, 2, 1, 3, 1, 2,
1509 1, 1, 5, 7, 5, 7, 6, 7, 6, 5,
1510 1, 2, 0, 1, 1, 3, 1, 2, 3, 2,
1511 1, 2, 4, 3, 3, 2, 4, 4, 1, 1,
1512 3, 4, 5, 0, 2, 2, 4, 4, 1, 3,
1513 1, 3, 1, 4, 3, 3, 2, 5, 1, 1,
1514 1, 1, 2, 2, 2, 0, 1, 0, 2, 7,
1515 9, 0, 7, 0, 2, 3, 0, 1, 1, 2,
1516 1, 2, 1, 2, 4, 5, 7, 8, 13, 1,
1517 3, 2, 4, 2, 1, 1, 1, 1, 1, 1,
1518 1, 1, 1, 1, 1, 2, 1, 1, 1, 1,
1519 1, 3, 6, 1, 2, 1, 1, 1, 2, 1,
1520 1, 1, 3, 4, 6, 8, 5, 1, 1, 1,
1521 1, 1, 1, 1, 1, 1, 1, 0, 2, 1,
1522 3, 1, 1, 0, 1, 1, 3, 3, 3, 1,
1523 1, 3, 5, 6, 1, 1, 1, 1, 1, 1,
1524 1, 1, 0, 2, 1, 3, 3, 1, 1, 3,
1525 1, 3, 4, 0, 1, 1
1526 };
1527
1528
1529 /* YYDPREC[RULE-NUM] -- Dynamic precedence of rule #RULE-NUM (0 if none). */
1530 static const unsigned char yydprec[] =
1531 {
1532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1534 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1541 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1546 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1548 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1550 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1551 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1552 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1553 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1554 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1555 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1559 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1560 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1563 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1565 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1567 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1570 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1571 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1572 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1574 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1575 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1576 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1577 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1578 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1579 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1580 0, 0, 0, 0, 0, 0
1581 };
1582
1583 /* YYMERGER[RULE-NUM] -- Index of merging function for rule #RULE-NUM. */
1584 static const unsigned char yymerger[] =
1585 {
1586 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1587 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1588 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1589 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1590 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1593 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1595 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1596 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1598 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1600 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1601 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1602 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1603 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1604 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1605 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1606 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1607 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1608 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1609 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1611 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1612 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1613 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1614 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1615 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1616 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1617 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1618 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1619 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1620 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1621 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1622 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1623 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1624 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1625 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1626 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1627 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1632 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1633 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1634 0, 0, 0, 0, 0, 0
1635 };
1636
1637 /* YYIMMEDIATE[RULE-NUM] -- True iff rule #RULE-NUM is not to be deferred, as
1638 in the case of predicates. */
1639 static const yybool yyimmediate[] =
1640 {
1641 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1642 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1643 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1647 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1648 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1649 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1650 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1654 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1656 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1657 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1658 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1659 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1662 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1667 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1668 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1670 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1671 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1673 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1674 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1676 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1677 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1678 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1679 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1680 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1681 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1682 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1683 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1684 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1685 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1687 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1688 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1689 0, 0, 0, 0, 0, 0
1690 };
1691
1692 /* YYCONFLP[YYPACT[STATE-NUM]] -- Pointer into YYCONFL of start of
1693 list of conflicting reductions corresponding to action entry for
1694 state STATE-NUM in yytable. 0 means no conflicts. The list in
1695 yyconfl is terminated by a rule number of 0. */
1696 static const unsigned short int yyconflp[] =
1697 {
1698 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1699 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1700 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1701 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1702 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1703 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1704 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1705 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1706 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1707 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1709 0, 0, 0, 0, 0, 0, 5, 0, 0, 0,
1710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1712 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1713 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1714 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1715 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1717 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1725 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1726 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1728 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1730 0, 0, 0, 0, 0, 0, 0, 0, 0, 259,
1731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1734 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1737 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1740 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1743 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1748 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1759 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1762 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1763 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1764 0, 0, 0, 0, 7, 0, 0, 9, 11, 13,
1765 15, 17, 19, 21, 23, 25, 27, 29, 31, 33,
1766 35, 37, 39, 41, 43, 45, 47, 49, 51, 53,
1767 55, 57, 59, 61, 63, 65, 67, 69, 71, 73,
1768 75, 77, 79, 81, 83, 85, 87, 89, 91, 93,
1769 95, 97, 99, 101, 103, 105, 107, 109, 111, 113,
1770 115, 117, 119, 121, 123, 125, 127, 129, 131, 133,
1771 135, 137, 139, 141, 143, 145, 147, 149, 151, 153,
1772 155, 157, 159, 161, 163, 165, 167, 169, 171, 173,
1773 0, 175, 0, 177, 179, 181, 183, 185, 187, 189,
1774 191, 193, 195, 197, 199, 201, 203, 205, 207, 209,
1775 211, 213, 215, 217, 219, 221, 223, 225, 227, 229,
1776 231, 233, 235, 237, 239, 241, 0, 243, 245, 0,
1777 247, 249, 251, 253, 0, 0, 0, 0, 0, 0,
1778 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1780 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1781 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1799 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1803 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1807 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1808 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1810 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1812 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1813 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1814 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1815 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1825 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1863 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1865 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1866 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1870 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1876 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1877 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1878 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1879 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1880 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1881 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1882 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1883 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1886 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1887 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1888 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1889 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1890 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1891 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1893 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1894 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1897 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1898 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1899 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1902 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1908 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1911 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1912 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1914 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1918 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1921 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1922 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1923 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1924 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1926 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1930 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1931 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1932 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1935 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1936 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1938 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1940 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1941 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1942 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1944 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1945 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1946 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1947 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1949 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1950 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1951 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1952 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1953 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1954 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1955 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1956 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1957 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1958 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1959 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1960 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1961 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1962 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1963 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1964 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1965 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1966 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1967 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1968 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1969 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1970 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1971 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1972 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1973 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1975 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1976 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1977 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1978 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1979 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1980 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1981 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1982 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1983 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1984 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1985 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1986 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1987 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1988 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1989 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1990 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
1991 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1992 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1993 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1994 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1995 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1996 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1997 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1998 0, 0, 0, 0, 255, 0, 0, 0, 0, 0,
1999 0, 0, 0, 0, 0, 0, 0, 257, 0, 0,
2000 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2001 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2002 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2003 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2004 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2005 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2006 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2007 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2008 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2009 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2010 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2011 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2012 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2013 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2014 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2015 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2016 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2017 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2018 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2019 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2020 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2021 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2022 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2023 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2024 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2025 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2026 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2027 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2028 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2029 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2030 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2031 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2032 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2033 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2034 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2035 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2036 0, 0, 0, 261, 0, 0, 0, 0, 0, 0,
2037 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2038 0, 0, 0, 0, 0, 0, 0, 263
2039 };
2040
2041 /* YYCONFL[I] -- lists of conflicting rule numbers, each terminated by
2042 0, pointed into by YYCONFLP. */
2043 static const short int yyconfl[] =
2044 {
2045 0, 272, 0, 272, 0, 340, 0, 470, 0, 470,
2046 0, 470, 0, 470, 0, 470, 0, 470, 0, 470,
2047 0, 470, 0, 470, 0, 470, 0, 470, 0, 470,
2048 0, 470, 0, 470, 0, 470, 0, 470, 0, 470,
2049 0, 470, 0, 470, 0, 470, 0, 470, 0, 470,
2050 0, 470, 0, 470, 0, 470, 0, 470, 0, 470,
2051 0, 470, 0, 470, 0, 470, 0, 470, 0, 470,
2052 0, 470, 0, 470, 0, 470, 0, 470, 0, 470,
2053 0, 470, 0, 470, 0, 470, 0, 470, 0, 470,
2054 0, 470, 0, 470, 0, 470, 0, 470, 0, 470,
2055 0, 470, 0, 470, 0, 470, 0, 470, 0, 470,
2056 0, 470, 0, 470, 0, 470, 0, 470, 0, 470,
2057 0, 470, 0, 470, 0, 470, 0, 470, 0, 470,
2058 0, 470, 0, 470, 0, 470, 0, 470, 0, 470,
2059 0, 470, 0, 470, 0, 470, 0, 470, 0, 470,
2060 0, 470, 0, 470, 0, 470, 0, 470, 0, 470,
2061 0, 470, 0, 470, 0, 470, 0, 470, 0, 470,
2062 0, 470, 0, 470, 0, 470, 0, 470, 0, 470,
2063 0, 470, 0, 470, 0, 470, 0, 470, 0, 470,
2064 0, 470, 0, 470, 0, 470, 0, 470, 0, 470,
2065 0, 470, 0, 470, 0, 470, 0, 470, 0, 470,
2066 0, 470, 0, 470, 0, 470, 0, 470, 0, 470,
2067 0, 470, 0, 470, 0, 470, 0, 470, 0, 470,
2068 0, 470, 0, 470, 0, 470, 0, 470, 0, 470,
2069 0, 470, 0, 470, 0, 470, 0, 470, 0, 470,
2070 0, 470, 0, 470, 0, 272, 0, 272, 0, 272,
2071 0, 229, 0, 367, 0
2072 };
2073
2074 /* Error token number */
2075 #define YYTERROR 1
2076
2077
2078
2079
2080 #undef yynerrs
2081 #define yynerrs (yystackp->yyerrcnt)
2082 #undef yychar
2083 #define yychar (yystackp->yyrawchar)
2084 #undef yylval
2085 #define yylval (yystackp->yyval)
2086 #undef yylloc
2087 #define yylloc (yystackp->yyloc)
2088 #define psi_parser_proc_nerrs yynerrs
2089 #define psi_parser_proc_char yychar
2090 #define psi_parser_proc_lval yylval
2091 #define psi_parser_proc_lloc yylloc
2092
2093 static const int YYEOF = 0;
2094 static const int YYEMPTY = -2;
2095
2096 typedef enum { yyok, yyaccept, yyabort, yyerr } YYRESULTTAG;
2097
2098 #define YYCHK(YYE) \
2099 do { \
2100 YYRESULTTAG yychk_flag = YYE; \
2101 if (yychk_flag != yyok) \
2102 return yychk_flag; \
2103 } while (0)
2104
2105 #if YYDEBUG
2106
2107 # ifndef YYFPRINTF
2108 # define YYFPRINTF fprintf
2109 # endif
2110
2111 /* This macro is provided for backward compatibility. */
2112 #ifndef YY_LOCATION_PRINT
2113 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2114 #endif
2115
2116
2117 # define YYDPRINTF(Args) \
2118 do { \
2119 if (yydebug) \
2120 YYFPRINTF Args; \
2121 } while (0)
2122
2123
2124 /*----------------------------------------.
2125 | Print this symbol's value on YYOUTPUT. |
2126 `----------------------------------------*/
2127
2128 static void
2129 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
2130 {
2131 FILE *yyo = yyoutput;
2132 YYUSE (yyo);
2133 YYUSE (P);
2134 YYUSE (tokens);
2135 YYUSE (index);
2136 if (!yyvaluep)
2137 return;
2138 YYUSE (yytype);
2139 }
2140
2141
2142 /*--------------------------------.
2143 | Print this symbol on YYOUTPUT. |
2144 `--------------------------------*/
2145
2146 static void
2147 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
2148 {
2149 YYFPRINTF (yyoutput, "%s %s (",
2150 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2151
2152 yy_symbol_value_print (yyoutput, yytype, yyvaluep, P, tokens, index);
2153 YYFPRINTF (yyoutput, ")");
2154 }
2155
2156 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2157 do { \
2158 if (yydebug) \
2159 { \
2160 YYFPRINTF (stderr, "%s ", Title); \
2161 yy_symbol_print (stderr, Type, Value, P, tokens, index); \
2162 YYFPRINTF (stderr, "\n"); \
2163 } \
2164 } while (0)
2165
2166 /* Nonzero means print parse trace. It is left uninitialized so that
2167 multiple parsers can coexist. */
2168 int yydebug;
2169
2170 struct yyGLRStack;
2171 static void yypstack (struct yyGLRStack* yystackp, size_t yyk)
2172 YY_ATTRIBUTE_UNUSED;
2173 static void yypdumpstack (struct yyGLRStack* yystackp)
2174 YY_ATTRIBUTE_UNUSED;
2175
2176 #else /* !YYDEBUG */
2177
2178 # define YYDPRINTF(Args)
2179 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2180
2181 #endif /* !YYDEBUG */
2182
2183 /* YYINITDEPTH -- initial size of the parser's stacks. */
2184 #ifndef YYINITDEPTH
2185 # define YYINITDEPTH 200
2186 #endif
2187
2188 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2189 if the built-in stack extension method is used).
2190
2191 Do not make this value too large; the results are undefined if
2192 SIZE_MAX < YYMAXDEPTH * sizeof (GLRStackItem)
2193 evaluated with infinite-precision integer arithmetic. */
2194
2195 #ifndef YYMAXDEPTH
2196 # define YYMAXDEPTH 10000
2197 #endif
2198
2199 /* Minimum number of free items on the stack allowed after an
2200 allocation. This is to allow allocation and initialization
2201 to be completed by functions that call yyexpandGLRStack before the
2202 stack is expanded, thus insuring that all necessary pointers get
2203 properly redirected to new data. */
2204 #define YYHEADROOM 2
2205
2206 #ifndef YYSTACKEXPANDABLE
2207 # define YYSTACKEXPANDABLE 1
2208 #endif
2209
2210 #if YYSTACKEXPANDABLE
2211 # define YY_RESERVE_GLRSTACK(Yystack) \
2212 do { \
2213 if (Yystack->yyspaceLeft < YYHEADROOM) \
2214 yyexpandGLRStack (Yystack); \
2215 } while (0)
2216 #else
2217 # define YY_RESERVE_GLRSTACK(Yystack) \
2218 do { \
2219 if (Yystack->yyspaceLeft < YYHEADROOM) \
2220 yyMemoryExhausted (Yystack); \
2221 } while (0)
2222 #endif
2223
2224
2225 #if YYERROR_VERBOSE
2226
2227 # ifndef yystpcpy
2228 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2229 # define yystpcpy stpcpy
2230 # else
2231 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2232 YYDEST. */
2233 static char *
2234 yystpcpy (char *yydest, const char *yysrc)
2235 {
2236 char *yyd = yydest;
2237 const char *yys = yysrc;
2238
2239 while ((*yyd++ = *yys++) != '\0')
2240 continue;
2241
2242 return yyd - 1;
2243 }
2244 # endif
2245 # endif
2246
2247 # ifndef yytnamerr
2248 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2249 quotes and backslashes, so that it's suitable for yyerror. The
2250 heuristic is that double-quoting is unnecessary unless the string
2251 contains an apostrophe, a comma, or backslash (other than
2252 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2253 null, do not copy; instead, return the length of what the result
2254 would have been. */
2255 static size_t
2256 yytnamerr (char *yyres, const char *yystr)
2257 {
2258 if (*yystr == '"')
2259 {
2260 size_t yyn = 0;
2261 char const *yyp = yystr;
2262
2263 for (;;)
2264 switch (*++yyp)
2265 {
2266 case '\'':
2267 case ',':
2268 goto do_not_strip_quotes;
2269
2270 case '\\':
2271 if (*++yyp != '\\')
2272 goto do_not_strip_quotes;
2273 /* Fall through. */
2274 default:
2275 if (yyres)
2276 yyres[yyn] = *yyp;
2277 yyn++;
2278 break;
2279
2280 case '"':
2281 if (yyres)
2282 yyres[yyn] = '\0';
2283 return yyn;
2284 }
2285 do_not_strip_quotes: ;
2286 }
2287
2288 if (! yyres)
2289 return strlen (yystr);
2290
2291 return yystpcpy (yyres, yystr) - yyres;
2292 }
2293 # endif
2294
2295 #endif /* !YYERROR_VERBOSE */
2296
2297 /** State numbers, as in LALR(1) machine */
2298 typedef int yyStateNum;
2299
2300 /** Rule numbers, as in LALR(1) machine */
2301 typedef int yyRuleNum;
2302
2303 /** Grammar symbol */
2304 typedef int yySymbol;
2305
2306 /** Item references, as in LALR(1) machine */
2307 typedef short int yyItemNum;
2308
2309 typedef struct yyGLRState yyGLRState;
2310 typedef struct yyGLRStateSet yyGLRStateSet;
2311 typedef struct yySemanticOption yySemanticOption;
2312 typedef union yyGLRStackItem yyGLRStackItem;
2313 typedef struct yyGLRStack yyGLRStack;
2314
2315 struct yyGLRState {
2316 /** Type tag: always true. */
2317 yybool yyisState;
2318 /** Type tag for yysemantics. If true, yysval applies, otherwise
2319 * yyfirstVal applies. */
2320 yybool yyresolved;
2321 /** Number of corresponding LALR(1) machine state. */
2322 yyStateNum yylrState;
2323 /** Preceding state in this stack */
2324 yyGLRState* yypred;
2325 /** Source position of the last token produced by my symbol */
2326 size_t yyposn;
2327 union {
2328 /** First in a chain of alternative reductions producing the
2329 * non-terminal corresponding to this state, threaded through
2330 * yynext. */
2331 yySemanticOption* yyfirstVal;
2332 /** Semantic value for this state. */
2333 YYSTYPE yysval;
2334 } yysemantics;
2335 };
2336
2337 struct yyGLRStateSet {
2338 yyGLRState** yystates;
2339 /** During nondeterministic operation, yylookaheadNeeds tracks which
2340 * stacks have actually needed the current lookahead. During deterministic
2341 * operation, yylookaheadNeeds[0] is not maintained since it would merely
2342 * duplicate yychar != YYEMPTY. */
2343 yybool* yylookaheadNeeds;
2344 size_t yysize, yycapacity;
2345 };
2346
2347 struct yySemanticOption {
2348 /** Type tag: always false. */
2349 yybool yyisState;
2350 /** Rule number for this reduction */
2351 yyRuleNum yyrule;
2352 /** The last RHS state in the list of states to be reduced. */
2353 yyGLRState* yystate;
2354 /** The lookahead for this reduction. */
2355 int yyrawchar;
2356 YYSTYPE yyval;
2357 /** Next sibling in chain of options. To facilitate merging,
2358 * options are chained in decreasing order by address. */
2359 yySemanticOption* yynext;
2360 };
2361
2362 /** Type of the items in the GLR stack. The yyisState field
2363 * indicates which item of the union is valid. */
2364 union yyGLRStackItem {
2365 yyGLRState yystate;
2366 yySemanticOption yyoption;
2367 };
2368
2369 struct yyGLRStack {
2370 int yyerrState;
2371
2372
2373 int yyerrcnt;
2374 int yyrawchar;
2375 YYSTYPE yyval;
2376
2377 YYJMP_BUF yyexception_buffer;
2378 yyGLRStackItem* yyitems;
2379 yyGLRStackItem* yynextFree;
2380 size_t yyspaceLeft;
2381 yyGLRState* yysplitPoint;
2382 yyGLRState* yylastDeleted;
2383 yyGLRStateSet yytops;
2384 };
2385
2386 #if YYSTACKEXPANDABLE
2387 static void yyexpandGLRStack (yyGLRStack* yystackp);
2388 #endif
2389
2390 static _Noreturn void
2391 yyFail (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char* yymsg)
2392 {
2393 if (yymsg != YY_NULLPTR)
2394 yyerror (P, tokens, index, yymsg);
2395 YYLONGJMP (yystackp->yyexception_buffer, 1);
2396 }
2397
2398 static _Noreturn void
2399 yyMemoryExhausted (yyGLRStack* yystackp)
2400 {
2401 YYLONGJMP (yystackp->yyexception_buffer, 2);
2402 }
2403
2404 #if YYDEBUG || YYERROR_VERBOSE
2405 /** A printable representation of TOKEN. */
2406 static inline const char*
2407 yytokenName (yySymbol yytoken)
2408 {
2409 if (yytoken == YYEMPTY)
2410 return "";
2411
2412 return yytname[yytoken];
2413 }
2414 #endif
2415
2416 /** Fill in YYVSP[YYLOW1 .. YYLOW0-1] from the chain of states starting
2417 * at YYVSP[YYLOW0].yystate.yypred. Leaves YYVSP[YYLOW1].yystate.yypred
2418 * containing the pointer to the next state in the chain. */
2419 static void yyfillin (yyGLRStackItem *, int, int) YY_ATTRIBUTE_UNUSED;
2420 static void
2421 yyfillin (yyGLRStackItem *yyvsp, int yylow0, int yylow1)
2422 {
2423 int i;
2424 yyGLRState *s = yyvsp[yylow0].yystate.yypred;
2425 for (i = yylow0-1; i >= yylow1; i -= 1)
2426 {
2427 #if YYDEBUG
2428 yyvsp[i].yystate.yylrState = s->yylrState;
2429 #endif
2430 yyvsp[i].yystate.yyresolved = s->yyresolved;
2431 if (s->yyresolved)
2432 yyvsp[i].yystate.yysemantics.yysval = s->yysemantics.yysval;
2433 else
2434 /* The effect of using yysval or yyloc (in an immediate rule) is
2435 * undefined. */
2436 yyvsp[i].yystate.yysemantics.yyfirstVal = YY_NULLPTR;
2437 s = yyvsp[i].yystate.yypred = s->yypred;
2438 }
2439 }
2440
2441 /* Do nothing if YYNORMAL or if *YYLOW <= YYLOW1. Otherwise, fill in
2442 * YYVSP[YYLOW1 .. *YYLOW-1] as in yyfillin and set *YYLOW = YYLOW1.
2443 * For convenience, always return YYLOW1. */
2444 static inline int yyfill (yyGLRStackItem *, int *, int, yybool)
2445 YY_ATTRIBUTE_UNUSED;
2446 static inline int
2447 yyfill (yyGLRStackItem *yyvsp, int *yylow, int yylow1, yybool yynormal)
2448 {
2449 if (!yynormal && yylow1 < *yylow)
2450 {
2451 yyfillin (yyvsp, *yylow, yylow1);
2452 *yylow = yylow1;
2453 }
2454 return yylow1;
2455 }
2456
2457 /** Perform user action for rule number YYN, with RHS length YYRHSLEN,
2458 * and top stack item YYVSP. YYLVALP points to place to put semantic
2459 * value ($$), and yylocp points to place for location information
2460 * (@$). Returns yyok for normal return, yyaccept for YYACCEPT,
2461 * yyerr for YYERROR, yyabort for YYABORT. */
2462 static YYRESULTTAG
2463 yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp,
2464 yyGLRStack* yystackp,
2465 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
2466 {
2467 yybool yynormal YY_ATTRIBUTE_UNUSED = (yystackp->yysplitPoint == YY_NULLPTR);
2468 int yylow;
2469 YYUSE (yyvalp);
2470 YYUSE (P);
2471 YYUSE (tokens);
2472 YYUSE (index);
2473 YYUSE (yyrhslen);
2474 # undef yyerrok
2475 # define yyerrok (yystackp->yyerrState = 0)
2476 # undef YYACCEPT
2477 # define YYACCEPT return yyaccept
2478 # undef YYABORT
2479 # define YYABORT return yyabort
2480 # undef YYERROR
2481 # define YYERROR return yyerrok, yyerr
2482 # undef YYRECOVERING
2483 # define YYRECOVERING() (yystackp->yyerrState != 0)
2484 # undef yyclearin
2485 # define yyclearin (yychar = YYEMPTY)
2486 # undef YYFILL
2487 # define YYFILL(N) yyfill (yyvsp, &yylow, N, yynormal)
2488 # undef YYBACKUP
2489 # define YYBACKUP(Token, Value) \
2490 return yyerror (P, tokens, index, YY_("syntax error: cannot back up")), \
2491 yyerrok, yyerr
2492
2493 yylow = 1;
2494 if (yyrhslen == 0)
2495 *yyvalp = yyval_default;
2496 else
2497 *yyvalp = yyvsp[YYFILL (1-yyrhslen)].yystate.yysemantics.yysval;
2498 switch (yyn)
2499 {
2500 case 171:
2501 #line 391 "src/parser_proc_grammar.y" /* glr.c:816 */
2502 {
2503 if ((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
2504 psi_cpp_exp_exec((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), P->preproc, PSI_DATA(P));
2505 psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2506 }
2507 }
2508 #line 2509 "src/parser_proc.c" /* glr.c:816 */
2509 break;
2510
2511 case 172:
2512 #line 397 "src/parser_proc_grammar.y" /* glr.c:816 */
2513 {
2514 if (P->file.ln) {
2515 P->error(PSI_DATA(P), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), PSI_WARNING,
2516 "Extra 'lib \"%s\"' statement has no effect", (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text);
2517 } else {
2518 P->file.ln = strndup((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->size);
2519 }
2520 }
2521 #line 2522 "src/parser_proc.c" /* glr.c:816 */
2522 break;
2523
2524 case 173:
2525 #line 405 "src/parser_proc_grammar.y" /* glr.c:816 */
2526 {
2527 psi_parser_proc_add_const(P, (*(struct psi_const **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2528 }
2529 #line 2530 "src/parser_proc.c" /* glr.c:816 */
2530 break;
2531
2532 case 174:
2533 #line 408 "src/parser_proc_grammar.y" /* glr.c:816 */
2534 {
2535 psi_parser_proc_add_decl(P, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2536 }
2537 #line 2538 "src/parser_proc.c" /* glr.c:816 */
2538 break;
2539
2540 case 176:
2541 #line 412 "src/parser_proc_grammar.y" /* glr.c:816 */
2542 {
2543 psi_parser_proc_add_typedef(P, (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2544 }
2545 #line 2546 "src/parser_proc.c" /* glr.c:816 */
2546 break;
2547
2548 case 177:
2549 #line 415 "src/parser_proc_grammar.y" /* glr.c:816 */
2550 {
2551 psi_parser_proc_add_struct(P, (*(struct psi_decl_struct **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2552 }
2553 #line 2554 "src/parser_proc.c" /* glr.c:816 */
2554 break;
2555
2556 case 178:
2557 #line 418 "src/parser_proc_grammar.y" /* glr.c:816 */
2558 {
2559 psi_parser_proc_add_union(P, (*(struct psi_decl_union **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2560 }
2561 #line 2562 "src/parser_proc.c" /* glr.c:816 */
2562 break;
2563
2564 case 179:
2565 #line 421 "src/parser_proc_grammar.y" /* glr.c:816 */
2566 {
2567 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2568 }
2569 #line 2570 "src/parser_proc.c" /* glr.c:816 */
2570 break;
2571
2572 case 180:
2573 #line 424 "src/parser_proc_grammar.y" /* glr.c:816 */
2574 {
2575 psi_parser_proc_add_impl(P, (*(struct psi_impl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2576 }
2577 #line 2578 "src/parser_proc.c" /* glr.c:816 */
2578 break;
2579
2580 case 181:
2581 #line 430 "src/parser_proc_grammar.y" /* glr.c:816 */
2582 {
2583 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
2584 }
2585 #line 2586 "src/parser_proc.c" /* glr.c:816 */
2586 break;
2587
2588 case 182:
2589 #line 436 "src/parser_proc_grammar.y" /* glr.c:816 */
2590 {
2591 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
2592 }
2593 #line 2594 "src/parser_proc.c" /* glr.c:816 */
2594 break;
2595
2596 case 183:
2597 #line 439 "src/parser_proc_grammar.y" /* glr.c:816 */
2598 {
2599 (*(struct psi_cpp_exp **)(&(*yyvalp))) = (*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
2600 }
2601 #line 2602 "src/parser_proc.c" /* glr.c:816 */
2602 break;
2603
2604 case 184:
2605 #line 445 "src/parser_proc_grammar.y" /* glr.c:816 */
2606 {
2607 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
2608 struct psi_token *msg = NULL;
2609
2610 if (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0, &msg)) {
2611 size_t index = 1;
2612 struct psi_token *next;
2613
2614 msg = psi_token_copy(msg);
2615 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), index++, &next)) {
2616 struct psi_token *old = msg;
2617 msg = psi_token_cat(" ", 2, msg, next);
2618 free(old);
2619 }
2620 }
2621 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2622
2623 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, msg);
2624 } else {
2625 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, NULL);
2626 }
2627 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2628 }
2629 #line 2630 "src/parser_proc.c" /* glr.c:816 */
2630 break;
2631
2632 case 185:
2633 #line 468 "src/parser_proc_grammar.y" /* glr.c:816 */
2634 {
2635 (*(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))));
2636 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2637 }
2638 #line 2639 "src/parser_proc.c" /* glr.c:816 */
2639 break;
2640
2641 case 186:
2642 #line 472 "src/parser_proc_grammar.y" /* glr.c:816 */
2643 {
2644 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL);
2645 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2646 }
2647 #line 2648 "src/parser_proc.c" /* glr.c:816 */
2648 break;
2649
2650 case 187:
2651 #line 476 "src/parser_proc_grammar.y" /* glr.c:816 */
2652 {
2653 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
2654 (*(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))));
2655 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2656 }
2657 #line 2658 "src/parser_proc.c" /* glr.c:816 */
2658 break;
2659
2660 case 188:
2661 #line 481 "src/parser_proc_grammar.y" /* glr.c:816 */
2662 {
2663 (*(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)));
2664 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2665 }
2666 #line 2667 "src/parser_proc.c" /* glr.c:816 */
2667 break;
2668
2669 case 189:
2670 #line 485 "src/parser_proc_grammar.y" /* glr.c:816 */
2671 {
2672 (*(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)));
2673 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2674 }
2675 #line 2676 "src/parser_proc.c" /* glr.c:816 */
2676 break;
2677
2678 case 190:
2679 #line 489 "src/parser_proc_grammar.y" /* glr.c:816 */
2680 {
2681 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL);
2682 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2683 }
2684 #line 2685 "src/parser_proc.c" /* glr.c:816 */
2685 break;
2686
2687 case 191:
2688 #line 493 "src/parser_proc_grammar.y" /* glr.c:816 */
2689 {
2690 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2691 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
2692 }
2693 #line 2694 "src/parser_proc.c" /* glr.c:816 */
2694 break;
2695
2696 case 214:
2697 #line 546 "src/parser_proc_grammar.y" /* glr.c:816 */
2698 {
2699 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
2700 (*(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);
2701 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
2702 }
2703 #line 2704 "src/parser_proc.c" /* glr.c:816 */
2704 break;
2705
2706 case 215:
2707 #line 551 "src/parser_proc_grammar.y" /* glr.c:816 */
2708 {
2709 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
2710 (*(struct psi_cpp_macro_decl **)(&(*yyvalp))) = psi_cpp_macro_decl_init(NULL, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), NULL);
2711 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2712 }
2713 #line 2714 "src/parser_proc.c" /* glr.c:816 */
2714 break;
2715
2716 case 216:
2717 #line 559 "src/parser_proc_grammar.y" /* glr.c:816 */
2718 {
2719 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL);
2720 }
2721 #line 2722 "src/parser_proc.c" /* glr.c:816 */
2722 break;
2723
2724 case 217:
2725 #line 562 "src/parser_proc_grammar.y" /* glr.c:816 */
2726 {
2727 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL); /* FIXME */
2728 }
2729 #line 2730 "src/parser_proc.c" /* glr.c:816 */
2730 break;
2731
2732 case 219:
2733 #line 566 "src/parser_proc_grammar.y" /* glr.c:816 */
2734 {
2735 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
2736 }
2737 #line 2738 "src/parser_proc.c" /* glr.c:816 */
2738 break;
2739
2740 case 220:
2741 #line 572 "src/parser_proc_grammar.y" /* glr.c:816 */
2742 {
2743 (*(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)));
2744 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
2745 (*(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)));
2746 }
2747 #line 2748 "src/parser_proc.c" /* glr.c:816 */
2748 break;
2749
2750 case 221:
2751 #line 577 "src/parser_proc_grammar.y" /* glr.c:816 */
2752 {
2753 (*(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)));
2754 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
2755 (*(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)));
2756 }
2757 #line 2758 "src/parser_proc.c" /* glr.c:816 */
2758 break;
2759
2760 case 222:
2761 #line 585 "src/parser_proc_grammar.y" /* glr.c:816 */
2762 {
2763 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
2764 }
2765 #line 2766 "src/parser_proc.c" /* glr.c:816 */
2766 break;
2767
2768 case 224:
2769 #line 592 "src/parser_proc_grammar.y" /* glr.c:816 */
2770 {
2771 (*(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)));
2772 (*(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)));
2773 }
2774 #line 2775 "src/parser_proc.c" /* glr.c:816 */
2775 break;
2776
2777 case 225:
2778 #line 596 "src/parser_proc_grammar.y" /* glr.c:816 */
2779 {
2780 (*(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)));
2781 (*(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)));
2782 }
2783 #line 2784 "src/parser_proc.c" /* glr.c:816 */
2784 break;
2785
2786 case 226:
2787 #line 603 "src/parser_proc_grammar.y" /* glr.c:816 */
2788 {
2789 (*(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)));
2790 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
2791 }
2792 #line 2793 "src/parser_proc.c" /* glr.c:816 */
2793 break;
2794
2795 case 227:
2796 #line 607 "src/parser_proc_grammar.y" /* glr.c:816 */
2797 {
2798 (*(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)));
2799 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2800 }
2801 #line 2802 "src/parser_proc.c" /* glr.c:816 */
2802 break;
2803
2804 case 228:
2805 #line 611 "src/parser_proc_grammar.y" /* glr.c:816 */
2806 {
2807 (*(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)));
2808 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2809 }
2810 #line 2811 "src/parser_proc.c" /* glr.c:816 */
2811 break;
2812
2813 case 229:
2814 #line 615 "src/parser_proc_grammar.y" /* glr.c:816 */
2815 {
2816 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_ternary((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2817 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
2818 }
2819 #line 2820 "src/parser_proc.c" /* glr.c:816 */
2820 break;
2821
2822 case 230:
2823 #line 620 "src/parser_proc_grammar.y" /* glr.c:816 */
2824 {
2825 {
2826 uint8_t exists;
2827
2828 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
2829 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2830 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8, &exists, 0));
2831 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2832 }
2833 }
2834 #line 2835 "src/parser_proc.c" /* glr.c:816 */
2835 break;
2836
2837 case 231:
2838 #line 630 "src/parser_proc_grammar.y" /* glr.c:816 */
2839 {
2840 {
2841 uint8_t exists;
2842
2843 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
2844 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2845 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8, &exists, 0));
2846 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2847 }
2848 }
2849 #line 2850 "src/parser_proc.c" /* glr.c:816 */
2850 break;
2851
2852 case 232:
2853 #line 640 "src/parser_proc_grammar.y" /* glr.c:816 */
2854 {
2855 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->flags));
2856 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2857 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2858 }
2859 #line 2860 "src/parser_proc.c" /* glr.c:816 */
2860 break;
2861
2862 case 233:
2863 #line 645 "src/parser_proc_grammar.y" /* glr.c:816 */
2864 {
2865 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0));
2866 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2867 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2868 }
2869 #line 2870 "src/parser_proc.c" /* glr.c:816 */
2870 break;
2871
2872 case 234:
2873 #line 650 "src/parser_proc_grammar.y" /* glr.c:816 */
2874 {
2875 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
2876 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_DEFINE, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0));
2877 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2878 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2879 }
2880 #line 2881 "src/parser_proc.c" /* glr.c:816 */
2881 break;
2882
2883 case 235:
2884 #line 656 "src/parser_proc_grammar.y" /* glr.c:816 */
2885 {
2886 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
2887 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_FUNCTION,
2888 psi_cpp_macro_call_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 0));
2889 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
2890 }
2891 #line 2892 "src/parser_proc.c" /* glr.c:816 */
2892 break;
2893
2894 case 236:
2895 #line 665 "src/parser_proc_grammar.y" /* glr.c:816 */
2896 {
2897 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
2898 }
2899 #line 2900 "src/parser_proc.c" /* glr.c:816 */
2900 break;
2901
2902 case 238:
2903 #line 672 "src/parser_proc_grammar.y" /* glr.c:816 */
2904 {
2905 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_num_exp_free),
2906 &(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2907 }
2908 #line 2909 "src/parser_proc.c" /* glr.c:816 */
2909 break;
2910
2911 case 239:
2912 #line 676 "src/parser_proc_grammar.y" /* glr.c:816 */
2913 {
2914 (*(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)));
2915 }
2916 #line 2917 "src/parser_proc.c" /* glr.c:816 */
2917 break;
2918
2919 case 240:
2920 #line 682 "src/parser_proc_grammar.y" /* glr.c:816 */
2921 {
2922 (*(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)));
2923 (*(struct psi_const **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
2924 }
2925 #line 2926 "src/parser_proc.c" /* glr.c:816 */
2926 break;
2927
2928 case 241:
2929 #line 689 "src/parser_proc_grammar.y" /* glr.c:816 */
2930 {
2931 (*(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);
2932 }
2933 #line 2934 "src/parser_proc.c" /* glr.c:816 */
2934 break;
2935
2936 case 246:
2937 #line 702 "src/parser_proc_grammar.y" /* glr.c:816 */
2938 {
2939 (*(struct psi_impl_def_val **)(&(*yyvalp))) = NULL;
2940 }
2941 #line 2942 "src/parser_proc.c" /* glr.c:816 */
2942 break;
2943
2944 case 247:
2945 #line 705 "src/parser_proc_grammar.y" /* glr.c:816 */
2946 {
2947 if (psi_num_exp_validate(PSI_DATA(P), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), NULL, NULL, NULL, NULL, NULL)) {
2948 impl_val res = {0};
2949 token_t type = psi_num_exp_exec((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), &res, NULL, &P->preproc->defs);
2950
2951 if (type == PSI_T_FLOAT || type == PSI_T_DOUBLE) {
2952 (*(struct psi_impl_def_val **)(&(*yyvalp))) = psi_impl_def_val_init(type, NULL);
2953 } else {
2954 (*(struct psi_impl_def_val **)(&(*yyvalp))) = psi_impl_def_val_init(PSI_T_INT, NULL);
2955 }
2956
2957 switch (type) {
2958 case PSI_T_UINT8: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u8; break;
2959 case PSI_T_UINT16: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u16; break;
2960 case PSI_T_UINT32: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u32; break;
2961 case PSI_T_UINT64: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u64; break; /* FIXME */
2962 case PSI_T_INT8: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i8; break;
2963 case PSI_T_INT16: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i16; break;
2964 case PSI_T_INT32: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i32; break;
2965 case PSI_T_INT64: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i64; break;
2966 case PSI_T_FLOAT: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.dval = res.fval; break;
2967 case PSI_T_DOUBLE: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.dval = res.dval; break;
2968 default:
2969 assert(0);
2970
2971 }
2972 } else {
2973 (*(struct psi_impl_def_val **)(&(*yyvalp))) = NULL;
2974 }
2975 psi_num_exp_free(&(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2976 }
2977 #line 2978 "src/parser_proc.c" /* glr.c:816 */
2978 break;
2979
2980 case 248:
2981 #line 736 "src/parser_proc_grammar.y" /* glr.c:816 */
2982 {
2983 (*(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);
2984 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2985 }
2986 #line 2987 "src/parser_proc.c" /* glr.c:816 */
2987 break;
2988
2989 case 253:
2990 #line 750 "src/parser_proc_grammar.y" /* glr.c:816 */
2991 {
2992 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
2993 }
2994 #line 2995 "src/parser_proc.c" /* glr.c:816 */
2995 break;
2996
2997 case 254:
2998 #line 753 "src/parser_proc_grammar.y" /* glr.c:816 */
2999 {
3000 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3001 psi_decl_type_init(PSI_T_VOID, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->text),
3002 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text, 0, 0)
3003 );
3004 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3005 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3006 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3007 }
3008 #line 3009 "src/parser_proc.c" /* glr.c:816 */
3009 break;
3010
3011 case 255:
3012 #line 762 "src/parser_proc_grammar.y" /* glr.c:816 */
3013 {
3014 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3015 }
3016 #line 3017 "src/parser_proc.c" /* glr.c:816 */
3017 break;
3018
3019 case 257:
3020 #line 769 "src/parser_proc_grammar.y" /* glr.c:816 */
3021 {
3022 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3023 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
3024 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
3025 );
3026 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
3027 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3028 }
3029 #line 3030 "src/parser_proc.c" /* glr.c:816 */
3030 break;
3031
3032 case 258:
3033 #line 777 "src/parser_proc_grammar.y" /* glr.c:816 */
3034 {
3035 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3036 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3037 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->name),
3038 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0, 0)
3039 );
3040 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3041 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->token);
3042 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3043 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3044 }
3045 #line 3046 "src/parser_proc.c" /* glr.c:816 */
3046 break;
3047
3048 case 259:
3049 #line 788 "src/parser_proc_grammar.y" /* glr.c:816 */
3050 {
3051 (*(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)));
3052 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
3053 (*(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)));
3054 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3055 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
3056 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
3057 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
3058 }
3059 #line 3060 "src/parser_proc.c" /* glr.c:816 */
3060 break;
3061
3062 case 260:
3063 #line 797 "src/parser_proc_grammar.y" /* glr.c:816 */
3064 {
3065 (*(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)));
3066 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
3067 (*(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)));
3068 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3069 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
3070 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
3071 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
3072 }
3073 #line 3074 "src/parser_proc.c" /* glr.c:816 */
3074 break;
3075
3076 case 261:
3077 #line 806 "src/parser_proc_grammar.y" /* glr.c:816 */
3078 {
3079 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3080 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0, 0));
3081 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3082 }
3083 #line 3084 "src/parser_proc.c" /* glr.c:816 */
3084 break;
3085
3086 case 262:
3087 #line 814 "src/parser_proc_grammar.y" /* glr.c:816 */
3088 {
3089 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3090 }
3091 #line 3092 "src/parser_proc.c" /* glr.c:816 */
3092 break;
3093
3094 case 264:
3095 #line 821 "src/parser_proc_grammar.y" /* glr.c:816 */
3096 {
3097 (*(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);
3098 (*(struct psi_decl_type **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3099 }
3100 #line 3101 "src/parser_proc.c" /* glr.c:816 */
3101 break;
3102
3103 case 266:
3104 #line 829 "src/parser_proc_grammar.y" /* glr.c:816 */
3105 {
3106 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3107 (*(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);
3108 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3109 }
3110 #line 3111 "src/parser_proc.c" /* glr.c:816 */
3111 break;
3112
3113 case 267:
3114 #line 834 "src/parser_proc_grammar.y" /* glr.c:816 */
3115 {
3116 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3117 (*(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);
3118 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3119 }
3120 #line 3121 "src/parser_proc.c" /* glr.c:816 */
3121 break;
3122
3123 case 268:
3124 #line 839 "src/parser_proc_grammar.y" /* glr.c:816 */
3125 {
3126 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3127 (*(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);
3128 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3129 }
3130 #line 3131 "src/parser_proc.c" /* glr.c:816 */
3131 break;
3132
3133 case 271:
3134 #line 849 "src/parser_proc_grammar.y" /* glr.c:816 */
3135 {
3136 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3137 }
3138 #line 3139 "src/parser_proc.c" /* glr.c:816 */
3139 break;
3140
3141 case 272:
3142 #line 852 "src/parser_proc_grammar.y" /* glr.c:816 */
3143 {
3144 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3145 }
3146 #line 3147 "src/parser_proc.c" /* glr.c:816 */
3147 break;
3148
3149 case 273:
3150 #line 858 "src/parser_proc_grammar.y" /* glr.c:816 */
3151 {
3152 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3153 }
3154 #line 3155 "src/parser_proc.c" /* glr.c:816 */
3155 break;
3156
3157 case 274:
3158 #line 861 "src/parser_proc_grammar.y" /* glr.c:816 */
3159 {
3160 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3161 }
3162 #line 3163 "src/parser_proc.c" /* glr.c:816 */
3163 break;
3164
3165 case 275:
3166 #line 864 "src/parser_proc_grammar.y" /* glr.c:816 */
3167 {
3168 (*(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)));
3169 }
3170 #line 3171 "src/parser_proc.c" /* glr.c:816 */
3171 break;
3172
3173 case 286:
3174 #line 886 "src/parser_proc_grammar.y" /* glr.c:816 */
3175 {
3176 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3177 }
3178 #line 3179 "src/parser_proc.c" /* glr.c:816 */
3179 break;
3180
3181 case 287:
3182 #line 889 "src/parser_proc_grammar.y" /* glr.c:816 */
3183 {
3184 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3185 }
3186 #line 3187 "src/parser_proc.c" /* glr.c:816 */
3187 break;
3188
3189 case 288:
3190 #line 892 "src/parser_proc_grammar.y" /* glr.c:816 */
3191 {
3192 (*(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)));
3193 }
3194 #line 3195 "src/parser_proc.c" /* glr.c:816 */
3195 break;
3196
3197 case 289:
3198 #line 898 "src/parser_proc_grammar.y" /* glr.c:816 */
3199 {
3200 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3201 }
3202 #line 3203 "src/parser_proc.c" /* glr.c:816 */
3203 break;
3204
3205 case 290:
3206 #line 901 "src/parser_proc_grammar.y" /* glr.c:816 */
3207 {
3208 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3209 }
3210 #line 3211 "src/parser_proc.c" /* glr.c:816 */
3211 break;
3212
3213 case 291:
3214 #line 904 "src/parser_proc_grammar.y" /* glr.c:816 */
3215 {
3216 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3217 (*(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)));
3218 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3219 } else {
3220 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3221 }
3222 }
3223 #line 3224 "src/parser_proc.c" /* glr.c:816 */
3224 break;
3225
3226 case 292:
3227 #line 912 "src/parser_proc_grammar.y" /* glr.c:816 */
3228 {
3229 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3230 (*(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)));
3231 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3232 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3233 } else {
3234 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3235 }
3236 }
3237 #line 3238 "src/parser_proc.c" /* glr.c:816 */
3238 break;
3239
3240 case 293:
3241 #line 924 "src/parser_proc_grammar.y" /* glr.c:816 */
3242 {
3243 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3244 }
3245 #line 3246 "src/parser_proc.c" /* glr.c:816 */
3246 break;
3247
3248 case 294:
3249 #line 927 "src/parser_proc_grammar.y" /* glr.c:816 */
3250 {
3251 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3252 }
3253 #line 3254 "src/parser_proc.c" /* glr.c:816 */
3254 break;
3255
3256 case 295:
3257 #line 930 "src/parser_proc_grammar.y" /* glr.c:816 */
3258 {
3259 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3260 (*(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)));
3261 } else {
3262 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3263 }
3264 }
3265 #line 3266 "src/parser_proc.c" /* glr.c:816 */
3266 break;
3267
3268 case 296:
3269 #line 937 "src/parser_proc_grammar.y" /* glr.c:816 */
3270 {
3271 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3272 }
3273 #line 3274 "src/parser_proc.c" /* glr.c:816 */
3274 break;
3275
3276 case 297:
3277 #line 940 "src/parser_proc_grammar.y" /* glr.c:816 */
3278 {
3279 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3280 (*(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)));
3281 } else {
3282 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3283 }
3284 }
3285 #line 3286 "src/parser_proc.c" /* glr.c:816 */
3286 break;
3287
3288 case 298:
3289 #line 950 "src/parser_proc_grammar.y" /* glr.c:816 */
3290 {
3291 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3292 }
3293 #line 3294 "src/parser_proc.c" /* glr.c:816 */
3294 break;
3295
3296 case 300:
3297 #line 956 "src/parser_proc_grammar.y" /* glr.c:816 */
3298 {
3299 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3300 }
3301 #line 3302 "src/parser_proc.c" /* glr.c:816 */
3302 break;
3303
3304 case 303:
3305 #line 964 "src/parser_proc_grammar.y" /* glr.c:816 */
3306 {
3307 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3308 }
3309 #line 3310 "src/parser_proc.c" /* glr.c:816 */
3310 break;
3311
3312 case 304:
3313 #line 967 "src/parser_proc_grammar.y" /* glr.c:816 */
3314 {
3315 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3316 }
3317 #line 3318 "src/parser_proc.c" /* glr.c:816 */
3318 break;
3319
3320 case 305:
3321 #line 970 "src/parser_proc_grammar.y" /* glr.c:816 */
3322 {
3323 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3324 (*(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)));
3325 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3326 } else {
3327 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3328 }
3329 }
3330 #line 3331 "src/parser_proc.c" /* glr.c:816 */
3331 break;
3332
3333 case 306:
3334 #line 981 "src/parser_proc_grammar.y" /* glr.c:816 */
3335 {
3336 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3337 }
3338 #line 3339 "src/parser_proc.c" /* glr.c:816 */
3339 break;
3340
3341 case 307:
3342 #line 984 "src/parser_proc_grammar.y" /* glr.c:816 */
3343 {
3344 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3345 }
3346 #line 3347 "src/parser_proc.c" /* glr.c:816 */
3347 break;
3348
3349 case 313:
3350 #line 1004 "src/parser_proc_grammar.y" /* glr.c:816 */
3351 {
3352 psi_decl_arg_free(&(*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3353 }
3354 #line 3355 "src/parser_proc.c" /* glr.c:816 */
3355 break;
3356
3357 case 315:
3358 #line 1011 "src/parser_proc_grammar.y" /* glr.c:816 */
3359 {
3360 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3361 }
3362 #line 3363 "src/parser_proc.c" /* glr.c:816 */
3363 break;
3364
3365 case 316:
3366 #line 1017 "src/parser_proc_grammar.y" /* glr.c:816 */
3367 {
3368 (*(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)));
3369 }
3370 #line 3371 "src/parser_proc.c" /* glr.c:816 */
3371 break;
3372
3373 case 317:
3374 #line 1020 "src/parser_proc_grammar.y" /* glr.c:816 */
3375 {
3376 (*(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)));
3377 }
3378 #line 3379 "src/parser_proc.c" /* glr.c:816 */
3379 break;
3380
3381 case 319:
3382 #line 1027 "src/parser_proc_grammar.y" /* glr.c:816 */
3383 {
3384 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3385 (*(struct psi_decl **)(&(*yyvalp)))->abi = psi_decl_abi_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
3386 }
3387 #line 3388 "src/parser_proc.c" /* glr.c:816 */
3388 break;
3389
3390 case 322:
3391 #line 1039 "src/parser_proc_grammar.y" /* glr.c:816 */
3392 {
3393 (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3394 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3395 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3396 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3397 }
3398 }
3399 #line 3400 "src/parser_proc.c" /* glr.c:816 */
3400 break;
3401
3402 case 323:
3403 #line 1046 "src/parser_proc_grammar.y" /* glr.c:816 */
3404 {
3405 (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
3406 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
3407 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3408 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3409 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3410 }
3411 }
3412 #line 3413 "src/parser_proc.c" /* glr.c:816 */
3413 break;
3414
3415 case 324:
3416 #line 1057 "src/parser_proc_grammar.y" /* glr.c:816 */
3417 {
3418 (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3419 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3420 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3421 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3422 }
3423 }
3424 #line 3425 "src/parser_proc.c" /* glr.c:816 */
3425 break;
3426
3427 case 325:
3428 #line 1064 "src/parser_proc_grammar.y" /* glr.c:816 */
3429 {
3430 (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
3431 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
3432 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3433 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3434 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3435 }
3436 }
3437 #line 3438 "src/parser_proc.c" /* glr.c:816 */
3438 break;
3439
3440 case 326:
3441 #line 1075 "src/parser_proc_grammar.y" /* glr.c:816 */
3442 {
3443 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3444 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3445 (*(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));
3446 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3447 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3448 }
3449 #line 3450 "src/parser_proc.c" /* glr.c:816 */
3450 break;
3451
3452 case 327:
3453 #line 1082 "src/parser_proc_grammar.y" /* glr.c:816 */
3454 {
3455 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3456 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3457 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3458 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),
3459 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)
3460 );
3461 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
3462 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3463 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3464 }
3465 #line 3466 "src/parser_proc.c" /* glr.c:816 */
3466 break;
3467
3468 case 328:
3469 #line 1093 "src/parser_proc_grammar.y" /* glr.c:816 */
3470 {
3471 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3472 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3473 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3474 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),
3475 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)
3476 );
3477 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
3478 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3479 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3480 }
3481 #line 3482 "src/parser_proc.c" /* glr.c:816 */
3482 break;
3483
3484 case 329:
3485 #line 1104 "src/parser_proc_grammar.y" /* glr.c:816 */
3486 {
3487 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3488 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3489 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3490 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),
3491 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text, 0, 0)
3492 );
3493 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
3494 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3495 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3496 }
3497 #line 3498 "src/parser_proc.c" /* glr.c:816 */
3498 break;
3499
3500 case 331:
3501 #line 1119 "src/parser_proc_grammar.y" /* glr.c:816 */
3502 {
3503 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3504 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),
3505 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0, 0)
3506 );
3507 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3508 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3509 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3510 }
3511 #line 3512 "src/parser_proc.c" /* glr.c:816 */
3512 break;
3513
3514 case 332:
3515 #line 1131 "src/parser_proc_grammar.y" /* glr.c:816 */
3516 {
3517 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3518 }
3519 #line 3520 "src/parser_proc.c" /* glr.c:816 */
3520 break;
3521
3522 case 333:
3523 #line 1134 "src/parser_proc_grammar.y" /* glr.c:816 */
3524 {
3525 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3526 }
3527 #line 3528 "src/parser_proc.c" /* glr.c:816 */
3528 break;
3529
3530 case 334:
3531 #line 1137 "src/parser_proc_grammar.y" /* glr.c:816 */
3532 {
3533 (*(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)));
3534 }
3535 #line 3536 "src/parser_proc.c" /* glr.c:816 */
3536 break;
3537
3538 case 335:
3539 #line 1140 "src/parser_proc_grammar.y" /* glr.c:816 */
3540 {
3541 (*(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)));
3542 }
3543 #line 3544 "src/parser_proc.c" /* glr.c:816 */
3544 break;
3545
3546 case 336:
3547 #line 1147 "src/parser_proc_grammar.y" /* glr.c:816 */
3548 {
3549 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3550 }
3551 #line 3552 "src/parser_proc.c" /* glr.c:816 */
3552 break;
3553
3554 case 337:
3555 #line 1150 "src/parser_proc_grammar.y" /* glr.c:816 */
3556 {
3557 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3558 (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)),
3559 psi_decl_var_init(NULL, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0)
3560 );
3561 }
3562 #line 3563 "src/parser_proc.c" /* glr.c:816 */
3563 break;
3564
3565 case 338:
3566 #line 1156 "src/parser_proc_grammar.y" /* glr.c:816 */
3567 {
3568 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3569 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),
3570 psi_decl_var_init(NULL, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0)
3571 );
3572 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3573 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3574 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3575 }
3576 #line 3577 "src/parser_proc.c" /* glr.c:816 */
3577 break;
3578
3579 case 339:
3580 #line 1165 "src/parser_proc_grammar.y" /* glr.c:816 */
3581 {
3582 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3583 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),
3584 psi_decl_var_init(NULL, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0)
3585 );
3586 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3587 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3588 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3589 }
3590 #line 3591 "src/parser_proc.c" /* glr.c:816 */
3591 break;
3592
3593 case 340:
3594 #line 1177 "src/parser_proc_grammar.y" /* glr.c:816 */
3595 {
3596 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3597 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
3598 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
3599 );
3600 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
3601 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3602 }
3603 #line 3604 "src/parser_proc.c" /* glr.c:816 */
3604 break;
3605
3606 case 341:
3607 #line 1185 "src/parser_proc_grammar.y" /* glr.c:816 */
3608 {
3609 (*(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)));
3610 }
3611 #line 3612 "src/parser_proc.c" /* glr.c:816 */
3612 break;
3613
3614 case 342:
3615 #line 1188 "src/parser_proc_grammar.y" /* glr.c:816 */
3616 {
3617 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3618 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3619 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),
3620 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)
3621 );
3622 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3623 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3624 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3625 }
3626 #line 3627 "src/parser_proc.c" /* glr.c:816 */
3627 break;
3628
3629 case 343:
3630 #line 1198 "src/parser_proc_grammar.y" /* glr.c:816 */
3631 {
3632 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3633 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3634 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),
3635 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)
3636 );
3637 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3638 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3639 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3640 }
3641 #line 3642 "src/parser_proc.c" /* glr.c:816 */
3642 break;
3643
3644 case 344:
3645 #line 1211 "src/parser_proc_grammar.y" /* glr.c:816 */
3646 {
3647 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3648 (*(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)));
3649 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3650 }
3651 #line 3652 "src/parser_proc.c" /* glr.c:816 */
3652 break;
3653
3654 case 345:
3655 #line 1216 "src/parser_proc_grammar.y" /* glr.c:816 */
3656 {
3657 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3658 (*(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)));
3659 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3660 }
3661 #line 3662 "src/parser_proc.c" /* glr.c:816 */
3662 break;
3663
3664 case 346:
3665 #line 1224 "src/parser_proc_grammar.y" /* glr.c:816 */
3666 {
3667 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3668 (*(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)));
3669 (*(struct psi_decl_union **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
3670 (*(struct psi_decl_union **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
3671 (*(struct psi_decl_union **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3672 }
3673 #line 3674 "src/parser_proc.c" /* glr.c:816 */
3674 break;
3675
3676 case 347:
3677 #line 1234 "src/parser_proc_grammar.y" /* glr.c:816 */
3678 {
3679 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3680 (*(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)));
3681 (*(struct psi_decl_struct **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
3682 (*(struct psi_decl_struct **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
3683 (*(struct psi_decl_struct **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3684 }
3685 #line 3686 "src/parser_proc.c" /* glr.c:816 */
3686 break;
3687
3688 case 348:
3689 #line 1244 "src/parser_proc_grammar.y" /* glr.c:816 */
3690 {
3691 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3692 }
3693 #line 3694 "src/parser_proc.c" /* glr.c:816 */
3694 break;
3695
3696 case 350:
3697 #line 1251 "src/parser_proc_grammar.y" /* glr.c:816 */
3698 {
3699 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3700 }
3701 #line 3702 "src/parser_proc.c" /* glr.c:816 */
3702 break;
3703
3704 case 351:
3705 #line 1257 "src/parser_proc_grammar.y" /* glr.c:816 */
3706 {
3707 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3708 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &(*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3709 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
3710 size_t i = 0;
3711 struct psi_decl_arg *arg;
3712
3713 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
3714 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
3715 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
3716 }
3717 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3718 }
3719 }
3720 #line 3721 "src/parser_proc.c" /* glr.c:816 */
3721 break;
3722
3723 case 352:
3724 #line 1271 "src/parser_proc_grammar.y" /* glr.c:816 */
3725 {
3726 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3727 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)), &(*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3728 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
3729 size_t i = 0;
3730 struct psi_decl_arg *arg;
3731
3732 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
3733 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
3734 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
3735 }
3736 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3737 }
3738 }
3739 #line 3740 "src/parser_proc.c" /* glr.c:816 */
3740 break;
3741
3742 case 353:
3743 #line 1288 "src/parser_proc_grammar.y" /* glr.c:816 */
3744 {
3745 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3746 }
3747 #line 3748 "src/parser_proc.c" /* glr.c:816 */
3748 break;
3749
3750 case 354:
3751 #line 1291 "src/parser_proc_grammar.y" /* glr.c:816 */
3752 {
3753 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3754 }
3755 #line 3756 "src/parser_proc.c" /* glr.c:816 */
3756 break;
3757
3758 case 355:
3759 #line 1297 "src/parser_proc_grammar.y" /* glr.c:816 */
3760 {
3761 {
3762 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3763 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3764 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &arg);
3765 }
3766 }
3767 #line 3768 "src/parser_proc.c" /* glr.c:816 */
3768 break;
3769
3770 case 356:
3771 #line 1304 "src/parser_proc_grammar.y" /* glr.c:816 */
3772 {
3773 {
3774 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3775 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3776 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), &arg);
3777 }
3778 }
3779 #line 3780 "src/parser_proc.c" /* glr.c:816 */
3780 break;
3781
3782 case 357:
3783 #line 1314 "src/parser_proc_grammar.y" /* glr.c:816 */
3784 {
3785 (*(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)));
3786 (*(struct psi_decl_enum **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
3787 }
3788 #line 3789 "src/parser_proc.c" /* glr.c:816 */
3789 break;
3790
3791 case 358:
3792 #line 1321 "src/parser_proc_grammar.y" /* glr.c:816 */
3793 {
3794 (*(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)));
3795 }
3796 #line 3797 "src/parser_proc.c" /* glr.c:816 */
3797 break;
3798
3799 case 359:
3800 #line 1324 "src/parser_proc_grammar.y" /* glr.c:816 */
3801 {
3802 (*(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)));
3803 }
3804 #line 3805 "src/parser_proc.c" /* glr.c:816 */
3805 break;
3806
3807 case 360:
3808 #line 1330 "src/parser_proc_grammar.y" /* glr.c:816 */
3809 {
3810 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3811 (*(struct psi_decl_enum_item **)(&(*yyvalp))) = psi_decl_enum_item_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, NULL);
3812 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3813 }
3814 #line 3815 "src/parser_proc.c" /* glr.c:816 */
3815 break;
3816
3817 case 361:
3818 #line 1335 "src/parser_proc_grammar.y" /* glr.c:816 */
3819 {
3820 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3821 (*(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)));
3822 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3823 }
3824 #line 3825 "src/parser_proc.c" /* glr.c:816 */
3825 break;
3826
3827 case 362:
3828 #line 1343 "src/parser_proc_grammar.y" /* glr.c:816 */
3829 {
3830 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3831 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
3832 }
3833 #line 3834 "src/parser_proc.c" /* glr.c:816 */
3834 break;
3835
3836 case 363:
3837 #line 1347 "src/parser_proc_grammar.y" /* glr.c:816 */
3838 {
3839 (*(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)));
3840 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->token);
3841 }
3842 #line 3843 "src/parser_proc.c" /* glr.c:816 */
3843 break;
3844
3845 case 364:
3846 #line 1351 "src/parser_proc_grammar.y" /* glr.c:816 */
3847 {
3848 (*(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)));
3849 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3850 }
3851 #line 3852 "src/parser_proc.c" /* glr.c:816 */
3852 break;
3853
3854 case 365:
3855 #line 1355 "src/parser_proc_grammar.y" /* glr.c:816 */
3856 {
3857 (*(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)));
3858 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3859 }
3860 #line 3861 "src/parser_proc.c" /* glr.c:816 */
3861 break;
3862
3863 case 366:
3864 #line 1359 "src/parser_proc_grammar.y" /* glr.c:816 */
3865 {
3866 (*(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)));
3867 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3868 }
3869 #line 3870 "src/parser_proc.c" /* glr.c:816 */
3870 break;
3871
3872 case 367:
3873 #line 1363 "src/parser_proc_grammar.y" /* glr.c:816 */
3874 {
3875 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_ternary((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3876 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3877 }
3878 #line 3879 "src/parser_proc.c" /* glr.c:816 */
3879 break;
3880
3881 case 368:
3882 #line 1370 "src/parser_proc_grammar.y" /* glr.c:816 */
3883 {
3884 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->flags);
3885 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3886 }
3887 #line 3888 "src/parser_proc.c" /* glr.c:816 */
3888 break;
3889
3890 case 369:
3891 #line 1374 "src/parser_proc_grammar.y" /* glr.c:816 */
3892 {
3893 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0);
3894 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3895 }
3896 #line 3897 "src/parser_proc.c" /* glr.c:816 */
3897 break;
3898
3899 case 370:
3900 #line 1378 "src/parser_proc_grammar.y" /* glr.c:816 */
3901 {
3902 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0);
3903 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3904 }
3905 #line 3906 "src/parser_proc.c" /* glr.c:816 */
3906 break;
3907
3908 case 371:
3909 #line 1382 "src/parser_proc_grammar.y" /* glr.c:816 */
3910 {
3911 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_NAME, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0);
3912 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
3913 }
3914 #line 3915 "src/parser_proc.c" /* glr.c:816 */
3915 break;
3916
3917 case 372:
3918 #line 1389 "src/parser_proc_grammar.y" /* glr.c:816 */
3919 {
3920 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3921 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3922 } else {
3923 char digest[17];
3924
3925 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
3926 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
3927 }
3928 }
3929 #line 3930 "src/parser_proc.c" /* glr.c:816 */
3930 break;
3931
3932 case 373:
3933 #line 1402 "src/parser_proc_grammar.y" /* glr.c:816 */
3934 {
3935 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3936 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3937 } else {
3938 char digest[17];
3939
3940 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
3941 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
3942 }
3943 }
3944 #line 3945 "src/parser_proc.c" /* glr.c:816 */
3945 break;
3946
3947 case 374:
3948 #line 1415 "src/parser_proc_grammar.y" /* glr.c:816 */
3949 {
3950 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3951 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3952 } else {
3953 char digest[17];
3954
3955 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
3956 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
3957 }
3958 }
3959 #line 3960 "src/parser_proc.c" /* glr.c:816 */
3960 break;
3961
3962 case 375:
3963 #line 1428 "src/parser_proc_grammar.y" /* glr.c:816 */
3964 {
3965 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3966 }
3967 #line 3968 "src/parser_proc.c" /* glr.c:816 */
3968 break;
3969
3970 case 376:
3971 #line 1431 "src/parser_proc_grammar.y" /* glr.c:816 */
3972 {
3973 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3974 (*(struct psi_token **)(&(*yyvalp)))->type = PSI_T_NAME;
3975 }
3976 #line 3977 "src/parser_proc.c" /* glr.c:816 */
3977 break;
3978
3979 case 377:
3980 #line 1438 "src/parser_proc_grammar.y" /* glr.c:816 */
3981 {
3982 (*(struct psi_layout **)(&(*yyvalp))) = NULL;
3983 }
3984 #line 3985 "src/parser_proc.c" /* glr.c:816 */
3985 break;
3986
3987 case 378:
3988 #line 1441 "src/parser_proc_grammar.y" /* glr.c:816 */
3989 {
3990 (*(struct psi_layout **)(&(*yyvalp))) = psi_layout_init(0, 0, psi_layout_init(0, atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text), NULL));
3991 }
3992 #line 3993 "src/parser_proc.c" /* glr.c:816 */
3993 break;
3994
3995 case 379:
3996 #line 1444 "src/parser_proc_grammar.y" /* glr.c:816 */
3997 {
3998 (*(struct psi_layout **)(&(*yyvalp))) = psi_layout_init(atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text), atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text), NULL);
3999 }
4000 #line 4001 "src/parser_proc.c" /* glr.c:816 */
4001 break;
4002
4003 case 380:
4004 #line 1447 "src/parser_proc_grammar.y" /* glr.c:816 */
4005 {
4006 (*(struct psi_layout **)(&(*yyvalp))) = psi_layout_init(atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text), atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text), psi_layout_init(0, atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval))->text), NULL));
4007 }
4008 #line 4009 "src/parser_proc.c" /* glr.c:816 */
4009 break;
4010
4011 case 381:
4012 #line 1453 "src/parser_proc_grammar.y" /* glr.c:816 */
4013 {
4014 (*(struct psi_layout*)(&(*yyvalp))).pos = 0;
4015 (*(struct psi_layout*)(&(*yyvalp))).len = 0;
4016 }
4017 #line 4018 "src/parser_proc.c" /* glr.c:816 */
4018 break;
4019
4020 case 382:
4021 #line 1457 "src/parser_proc_grammar.y" /* glr.c:816 */
4022 {
4023 (*(struct psi_layout*)(&(*yyvalp))).pos = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text);
4024 (*(struct psi_layout*)(&(*yyvalp))).len = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
4025 }
4026 #line 4027 "src/parser_proc.c" /* glr.c:816 */
4027 break;
4028
4029 case 383:
4030 #line 1464 "src/parser_proc_grammar.y" /* glr.c:816 */
4031 {
4032 (*(size_t*)(&(*yyvalp))) = 0;
4033 }
4034 #line 4035 "src/parser_proc.c" /* glr.c:816 */
4035 break;
4036
4037 case 384:
4038 #line 1467 "src/parser_proc_grammar.y" /* glr.c:816 */
4039 {
4040 (*(size_t*)(&(*yyvalp))) = 0;
4041 }
4042 #line 4043 "src/parser_proc.c" /* glr.c:816 */
4043 break;
4044
4045 case 385:
4046 #line 1470 "src/parser_proc_grammar.y" /* glr.c:816 */
4047 {
4048 (*(size_t*)(&(*yyvalp))) = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
4049 }
4050 #line 4051 "src/parser_proc.c" /* glr.c:816 */
4051 break;
4052
4053 case 386:
4054 #line 1476 "src/parser_proc_grammar.y" /* glr.c:816 */
4055 {
4056 (*(size_t*)(&(*yyvalp))) = 0;
4057 }
4058 #line 4059 "src/parser_proc.c" /* glr.c:816 */
4059 break;
4060
4061 case 387:
4062 #line 1479 "src/parser_proc_grammar.y" /* glr.c:816 */
4063 {
4064 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4065 }
4066 #line 4067 "src/parser_proc.c" /* glr.c:816 */
4067 break;
4068
4069 case 389:
4070 #line 1486 "src/parser_proc_grammar.y" /* glr.c:816 */
4071 {
4072 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4073 }
4074 #line 4075 "src/parser_proc.c" /* glr.c:816 */
4075 break;
4076
4077 case 390:
4078 #line 1492 "src/parser_proc_grammar.y" /* glr.c:816 */
4079 {
4080 (*(size_t*)(&(*yyvalp))) = 1;
4081 }
4082 #line 4083 "src/parser_proc.c" /* glr.c:816 */
4083 break;
4084
4085 case 391:
4086 #line 1495 "src/parser_proc_grammar.y" /* glr.c:816 */
4087 {
4088 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)) + 1;
4089 }
4090 #line 4091 "src/parser_proc.c" /* glr.c:816 */
4091 break;
4092
4093 case 394:
4094 #line 1512 "src/parser_proc_grammar.y" /* glr.c:816 */
4095 {
4096 (*(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)));
4097 }
4098 #line 4099 "src/parser_proc.c" /* glr.c:816 */
4099 break;
4100
4101 case 395:
4102 #line 1515 "src/parser_proc_grammar.y" /* glr.c:816 */
4103 {
4104 (*(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)));
4105 (*(struct psi_impl_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->static_memory = 1;
4106 }
4107 #line 4108 "src/parser_proc.c" /* glr.c:816 */
4108 break;
4109
4110 case 396:
4111 #line 1522 "src/parser_proc_grammar.y" /* glr.c:816 */
4112 {
4113 (*(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)));
4114 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
4115 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval));
4116 }
4117 #line 4118 "src/parser_proc.c" /* glr.c:816 */
4118 break;
4119
4120 case 397:
4121 #line 1527 "src/parser_proc_grammar.y" /* glr.c:816 */
4122 {
4123 (*(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)));
4124 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4125 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval));
4126 }
4127 #line 4128 "src/parser_proc.c" /* glr.c:816 */
4128 break;
4129
4130 case 398:
4131 #line 1532 "src/parser_proc_grammar.y" /* glr.c:816 */
4132 {
4133 (*(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)));
4134 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval)));
4135 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-11)].yystate.yysemantics.yysval));
4136 (*(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);
4137 (*(struct psi_impl_func **)(&(*yyvalp)))->vararg->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4138 }
4139 #line 4140 "src/parser_proc.c" /* glr.c:816 */
4140 break;
4141
4142 case 399:
4143 #line 1542 "src/parser_proc_grammar.y" /* glr.c:816 */
4144 {
4145 (*(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)));
4146 }
4147 #line 4148 "src/parser_proc.c" /* glr.c:816 */
4148 break;
4149
4150 case 400:
4151 #line 1545 "src/parser_proc_grammar.y" /* glr.c:816 */
4152 {
4153 (*(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)));
4154 }
4155 #line 4156 "src/parser_proc.c" /* glr.c:816 */
4156 break;
4157
4158 case 401:
4159 #line 1551 "src/parser_proc_grammar.y" /* glr.c:816 */
4160 {
4161 (*(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);
4162 }
4163 #line 4164 "src/parser_proc.c" /* glr.c:816 */
4164 break;
4165
4166 case 402:
4167 #line 1554 "src/parser_proc_grammar.y" /* glr.c:816 */
4168 {
4169 (*(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)));
4170 }
4171 #line 4172 "src/parser_proc.c" /* glr.c:816 */
4172 break;
4173
4174 case 403:
4175 #line 1560 "src/parser_proc_grammar.y" /* glr.c:816 */
4176 {
4177 (*(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)));
4178 (*(struct psi_impl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4179 }
4180 #line 4181 "src/parser_proc.c" /* glr.c:816 */
4181 break;
4182
4183 case 404:
4184 #line 1567 "src/parser_proc_grammar.y" /* glr.c:816 */
4185 {
4186 (*(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);
4187 (*(struct psi_impl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4188 }
4189 #line 4190 "src/parser_proc.c" /* glr.c:816 */
4190 break;
4191
4192 case 414:
4193 #line 1586 "src/parser_proc_grammar.y" /* glr.c:816 */
4194 {
4195 (*(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)));
4196 }
4197 #line 4198 "src/parser_proc.c" /* glr.c:816 */
4198 break;
4199
4200 case 415:
4201 #line 1589 "src/parser_proc_grammar.y" /* glr.c:816 */
4202 {
4203 (*(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)));
4204 }
4205 #line 4206 "src/parser_proc.c" /* glr.c:816 */
4206 break;
4207
4208 case 416:
4209 #line 1595 "src/parser_proc_grammar.y" /* glr.c:816 */
4210 {
4211 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_return_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4212 }
4213 #line 4214 "src/parser_proc.c" /* glr.c:816 */
4214 break;
4215
4216 case 417:
4217 #line 1598 "src/parser_proc_grammar.y" /* glr.c:816 */
4218 {
4219 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_let_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4220 }
4221 #line 4222 "src/parser_proc.c" /* glr.c:816 */
4222 break;
4223
4224 case 418:
4225 #line 1601 "src/parser_proc_grammar.y" /* glr.c:816 */
4226 {
4227 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_set_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4228 }
4229 #line 4230 "src/parser_proc.c" /* glr.c:816 */
4230 break;
4231
4232 case 419:
4233 #line 1604 "src/parser_proc_grammar.y" /* glr.c:816 */
4234 {
4235 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_assert_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4236 }
4237 #line 4238 "src/parser_proc.c" /* glr.c:816 */
4238 break;
4239
4240 case 420:
4241 #line 1607 "src/parser_proc_grammar.y" /* glr.c:816 */
4242 {
4243 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_free_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4244 }
4245 #line 4246 "src/parser_proc.c" /* glr.c:816 */
4246 break;
4247
4248 case 421:
4249 #line 1613 "src/parser_proc_grammar.y" /* glr.c:816 */
4250 {
4251 (*(struct psi_let_stmt **)(&(*yyvalp))) = psi_let_stmt_init((*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4252 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4253 }
4254 #line 4255 "src/parser_proc.c" /* glr.c:816 */
4255 break;
4256
4257 case 422:
4258 #line 1617 "src/parser_proc_grammar.y" /* glr.c:816 */
4259 {
4260 (*(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))));
4261 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4262 (*(struct psi_let_stmt **)(&(*yyvalp)))->exp->is_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4263 }
4264 #line 4265 "src/parser_proc.c" /* glr.c:816 */
4265 break;
4266
4267 case 424:
4268 #line 1626 "src/parser_proc_grammar.y" /* glr.c:816 */
4269 {
4270 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4271 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = true;
4272 }
4273 #line 4274 "src/parser_proc.c" /* glr.c:816 */
4274 break;
4275
4276 case 425:
4277 #line 1630 "src/parser_proc_grammar.y" /* glr.c:816 */
4278 {
4279 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4280 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = false;
4281 }
4282 #line 4283 "src/parser_proc.c" /* glr.c:816 */
4283 break;
4284
4285 case 426:
4286 #line 1637 "src/parser_proc_grammar.y" /* glr.c:816 */
4287 {
4288 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_NULL, NULL);
4289 }
4290 #line 4291 "src/parser_proc.c" /* glr.c:816 */
4291 break;
4292
4293 case 427:
4294 #line 1640 "src/parser_proc_grammar.y" /* glr.c:816 */
4295 {
4296 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4297 }
4298 #line 4299 "src/parser_proc.c" /* glr.c:816 */
4299 break;
4300
4301 case 428:
4302 #line 1643 "src/parser_proc_grammar.y" /* glr.c:816 */
4303 {
4304 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4305 (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->static_memory = 1;
4306 }
4307 #line 4308 "src/parser_proc.c" /* glr.c:816 */
4308 break;
4309
4310 case 429:
4311 #line 1647 "src/parser_proc_grammar.y" /* glr.c:816 */
4312 {
4313 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLBACK, (*(struct psi_let_callback **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4314 }
4315 #line 4316 "src/parser_proc.c" /* glr.c:816 */
4316 break;
4317
4318 case 430:
4319 #line 1650 "src/parser_proc_grammar.y" /* glr.c:816 */
4320 {
4321 (*(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)));
4322 }
4323 #line 4324 "src/parser_proc.c" /* glr.c:816 */
4324 break;
4325
4326 case 431:
4327 #line 1653 "src/parser_proc_grammar.y" /* glr.c:816 */
4328 {
4329 (*(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)));
4330 }
4331 #line 4332 "src/parser_proc.c" /* glr.c:816 */
4332 break;
4333
4334 case 432:
4335 #line 1659 "src/parser_proc_grammar.y" /* glr.c:816 */
4336 {
4337 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4338 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4339 }
4340 #line 4341 "src/parser_proc.c" /* glr.c:816 */
4341 break;
4342
4343 case 433:
4344 #line 1663 "src/parser_proc_grammar.y" /* glr.c:816 */
4345 {
4346 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4347 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = 1;
4348 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
4349 }
4350 #line 4351 "src/parser_proc.c" /* glr.c:816 */
4351 break;
4352
4353 case 434:
4354 #line 1671 "src/parser_proc_grammar.y" /* glr.c:816 */
4355 {
4356 (*(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)));
4357 (*(struct psi_let_calloc **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4358 }
4359 #line 4360 "src/parser_proc.c" /* glr.c:816 */
4360 break;
4361
4362 case 435:
4363 #line 1678 "src/parser_proc_grammar.y" /* glr.c:816 */
4364 {
4365 (*(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)));
4366 (*(struct psi_let_callback **)(&(*yyvalp)))->func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
4367 (*(struct psi_let_callback **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval)));
4368 }
4369 #line 4370 "src/parser_proc.c" /* glr.c:816 */
4370 break;
4371
4372 case 436:
4373 #line 1686 "src/parser_proc_grammar.y" /* glr.c:816 */
4374 {
4375 (*(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)));
4376 (*(struct psi_let_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
4377 (*(struct psi_let_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4378 }
4379 #line 4380 "src/parser_proc.c" /* glr.c:816 */
4380 break;
4381
4382 case 447:
4383 #line 1707 "src/parser_proc_grammar.y" /* glr.c:816 */
4384 {
4385 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4386 }
4387 #line 4388 "src/parser_proc.c" /* glr.c:816 */
4388 break;
4389
4390 case 448:
4391 #line 1710 "src/parser_proc_grammar.y" /* glr.c:816 */
4392 {
4393 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4394 }
4395 #line 4396 "src/parser_proc.c" /* glr.c:816 */
4396 break;
4397
4398 case 449:
4399 #line 1716 "src/parser_proc_grammar.y" /* glr.c:816 */
4400 {
4401 (*(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)));
4402 }
4403 #line 4404 "src/parser_proc.c" /* glr.c:816 */
4404 break;
4405
4406 case 450:
4407 #line 1719 "src/parser_proc_grammar.y" /* glr.c:816 */
4408 {
4409 (*(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)));
4410 }
4411 #line 4412 "src/parser_proc.c" /* glr.c:816 */
4412 break;
4413
4414 case 453:
4415 #line 1730 "src/parser_proc_grammar.y" /* glr.c:816 */
4416 {
4417 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4418 }
4419 #line 4420 "src/parser_proc.c" /* glr.c:816 */
4420 break;
4421
4422 case 454:
4423 #line 1733 "src/parser_proc_grammar.y" /* glr.c:816 */
4424 {
4425 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4426 }
4427 #line 4428 "src/parser_proc.c" /* glr.c:816 */
4428 break;
4429
4430 case 455:
4431 #line 1739 "src/parser_proc_grammar.y" /* glr.c:816 */
4432 {
4433 (*(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)));
4434 }
4435 #line 4436 "src/parser_proc.c" /* glr.c:816 */
4436 break;
4437
4438 case 456:
4439 #line 1742 "src/parser_proc_grammar.y" /* glr.c:816 */
4440 {
4441 (*(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)));
4442 }
4443 #line 4444 "src/parser_proc.c" /* glr.c:816 */
4444 break;
4445
4446 case 457:
4447 #line 1748 "src/parser_proc_grammar.y" /* glr.c:816 */
4448 {
4449 (*(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))));
4450 (*(struct psi_return_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4451 }
4452 #line 4453 "src/parser_proc.c" /* glr.c:816 */
4453 break;
4454
4455 case 458:
4456 #line 1755 "src/parser_proc_grammar.y" /* glr.c:816 */
4457 {
4458 (*(struct psi_set_stmt **)(&(*yyvalp))) = psi_set_stmt_init((*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4459 (*(struct psi_set_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4460 }
4461 #line 4462 "src/parser_proc.c" /* glr.c:816 */
4462 break;
4463
4464 case 459:
4465 #line 1762 "src/parser_proc_grammar.y" /* glr.c:816 */
4466 {
4467 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_FUNC, (*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4468 }
4469 #line 4470 "src/parser_proc.c" /* glr.c:816 */
4470 break;
4471
4472 case 460:
4473 #line 1765 "src/parser_proc_grammar.y" /* glr.c:816 */
4474 {
4475 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_NUMEXP, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4476 }
4477 #line 4478 "src/parser_proc.c" /* glr.c:816 */
4478 break;
4479
4480 case 461:
4481 #line 1768 "src/parser_proc_grammar.y" /* glr.c:816 */
4482 {
4483 (*(struct psi_set_exp **)(&(*yyvalp))) = (*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4484 (*(struct psi_set_exp **)(&(*yyvalp)))->var = (*(struct psi_impl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4485 }
4486 #line 4487 "src/parser_proc.c" /* glr.c:816 */
4487 break;
4488
4489 case 462:
4490 #line 1775 "src/parser_proc_grammar.y" /* glr.c:816 */
4491 {
4492 (*(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)));
4493 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
4494 (*(struct psi_set_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4495 }
4496 #line 4497 "src/parser_proc.c" /* glr.c:816 */
4497 break;
4498
4499 case 463:
4500 #line 1780 "src/parser_proc_grammar.y" /* glr.c:816 */
4501 {
4502 (*(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)));
4503 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4504 (*(struct psi_set_func **)(&(*yyvalp)))->recursive = 1;
4505 }
4506 #line 4507 "src/parser_proc.c" /* glr.c:816 */
4507 break;
4508
4509 case 472:
4510 #line 1799 "src/parser_proc_grammar.y" /* glr.c:816 */
4511 {
4512 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4513 }
4514 #line 4515 "src/parser_proc.c" /* glr.c:816 */
4515 break;
4516
4517 case 473:
4518 #line 1802 "src/parser_proc_grammar.y" /* glr.c:816 */
4519 {
4520 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4521 }
4522 #line 4523 "src/parser_proc.c" /* glr.c:816 */
4523 break;
4524
4525 case 474:
4526 #line 1808 "src/parser_proc_grammar.y" /* glr.c:816 */
4527 {
4528 (*(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)));
4529 }
4530 #line 4531 "src/parser_proc.c" /* glr.c:816 */
4531 break;
4532
4533 case 475:
4534 #line 1811 "src/parser_proc_grammar.y" /* glr.c:816 */
4535 {
4536 (*(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)));
4537 }
4538 #line 4539 "src/parser_proc.c" /* glr.c:816 */
4539 break;
4540
4541 case 476:
4542 #line 1817 "src/parser_proc_grammar.y" /* glr.c:816 */
4543 {
4544 (*(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)));
4545 (*(struct psi_assert_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4546 }
4547 #line 4548 "src/parser_proc.c" /* glr.c:816 */
4548 break;
4549
4550 case 479:
4551 #line 1829 "src/parser_proc_grammar.y" /* glr.c:816 */
4552 {
4553 (*(struct psi_free_stmt **)(&(*yyvalp))) = psi_free_stmt_init((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4554 (*(struct psi_free_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4555 }
4556 #line 4557 "src/parser_proc.c" /* glr.c:816 */
4557 break;
4558
4559 case 480:
4560 #line 1836 "src/parser_proc_grammar.y" /* glr.c:816 */
4561 {
4562 (*(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)));
4563 }
4564 #line 4565 "src/parser_proc.c" /* glr.c:816 */
4565 break;
4566
4567 case 481:
4568 #line 1839 "src/parser_proc_grammar.y" /* glr.c:816 */
4569 {
4570 (*(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)));
4571 }
4572 #line 4573 "src/parser_proc.c" /* glr.c:816 */
4573 break;
4574
4575 case 482:
4576 #line 1845 "src/parser_proc_grammar.y" /* glr.c:816 */
4577 {
4578 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4579 (*(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)));
4580 (*(struct psi_free_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4581 }
4582 #line 4583 "src/parser_proc.c" /* glr.c:816 */
4583 break;
4584
4585 case 483:
4586 #line 1853 "src/parser_proc_grammar.y" /* glr.c:816 */
4587 {
4588 (*(bool*)(&(*yyvalp))) = false;
4589 }
4590 #line 4591 "src/parser_proc.c" /* glr.c:816 */
4591 break;
4592
4593 case 484:
4594 #line 1856 "src/parser_proc_grammar.y" /* glr.c:816 */
4595 {
4596 (*(bool*)(&(*yyvalp))) = true;
4597 }
4598 #line 4599 "src/parser_proc.c" /* glr.c:816 */
4599 break;
4600
4601
4602 #line 4603 "src/parser_proc.c" /* glr.c:816 */
4603 default: break;
4604 }
4605
4606 return yyok;
4607 # undef yyerrok
4608 # undef YYABORT
4609 # undef YYACCEPT
4610 # undef YYERROR
4611 # undef YYBACKUP
4612 # undef yyclearin
4613 # undef YYRECOVERING
4614 }
4615
4616
4617 static void
4618 yyuserMerge (int yyn, YYSTYPE* yy0, YYSTYPE* yy1)
4619 {
4620 YYUSE (yy0);
4621 YYUSE (yy1);
4622
4623 switch (yyn)
4624 {
4625
4626 default: break;
4627 }
4628 }
4629
4630 /* Bison grammar-table manipulation. */
4631
4632 /*-----------------------------------------------.
4633 | Release the memory associated to this symbol. |
4634 `-----------------------------------------------*/
4635
4636 static void
4637 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
4638 {
4639 YYUSE (yyvaluep);
4640 YYUSE (P);
4641 YYUSE (tokens);
4642 YYUSE (index);
4643 if (!yymsg)
4644 yymsg = "Deleting";
4645 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
4646
4647 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4648 switch (yytype)
4649 {
4650 case 133: /* binary_op_token */
4651 #line 258 "src/parser_proc_grammar.y" /* glr.c:846 */
4652 {}
4653 #line 4654 "src/parser_proc.c" /* glr.c:846 */
4654 break;
4655
4656 case 134: /* unary_op_token */
4657 #line 258 "src/parser_proc_grammar.y" /* glr.c:846 */
4658 {}
4659 #line 4660 "src/parser_proc.c" /* glr.c:846 */
4660 break;
4661
4662 case 135: /* name_token */
4663 #line 258 "src/parser_proc_grammar.y" /* glr.c:846 */
4664 {}
4665 #line 4666 "src/parser_proc.c" /* glr.c:846 */
4666 break;
4667
4668 case 136: /* any_noeol_token */
4669 #line 258 "src/parser_proc_grammar.y" /* glr.c:846 */
4670 {}
4671 #line 4672 "src/parser_proc.c" /* glr.c:846 */
4672 break;
4673
4674 case 140: /* lib */
4675 #line 252 "src/parser_proc_grammar.y" /* glr.c:846 */
4676 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
4677 #line 4678 "src/parser_proc.c" /* glr.c:846 */
4678 break;
4679
4680 case 141: /* cpp */
4681 #line 267 "src/parser_proc_grammar.y" /* glr.c:846 */
4682 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
4683 #line 4684 "src/parser_proc.c" /* glr.c:846 */
4684 break;
4685
4686 case 142: /* cpp_exp */
4687 #line 267 "src/parser_proc_grammar.y" /* glr.c:846 */
4688 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
4689 #line 4690 "src/parser_proc.c" /* glr.c:846 */
4690 break;
4691
4692 case 144: /* cpp_message_token */
4693 #line 255 "src/parser_proc_grammar.y" /* glr.c:846 */
4694 {}
4695 #line 4696 "src/parser_proc.c" /* glr.c:846 */
4696 break;
4697
4698 case 145: /* cpp_include_token */
4699 #line 255 "src/parser_proc_grammar.y" /* glr.c:846 */
4700 {}
4701 #line 4702 "src/parser_proc.c" /* glr.c:846 */
4702 break;
4703
4704 case 146: /* cpp_header_token */
4705 #line 255 "src/parser_proc_grammar.y" /* glr.c:846 */
4706 {}
4707 #line 4708 "src/parser_proc.c" /* glr.c:846 */
4708 break;
4709
4710 case 147: /* cpp_no_arg_token */
4711 #line 255 "src/parser_proc_grammar.y" /* glr.c:846 */
4712 {}
4713 #line 4714 "src/parser_proc.c" /* glr.c:846 */
4714 break;
4715
4716 case 148: /* cpp_name_arg_token */
4717 #line 255 "src/parser_proc_grammar.y" /* glr.c:846 */
4718 {}
4719 #line 4720 "src/parser_proc.c" /* glr.c:846 */
4720 break;
4721
4722 case 149: /* cpp_exp_arg_token */
4723 #line 255 "src/parser_proc_grammar.y" /* glr.c:846 */
4724 {}
4725 #line 4726 "src/parser_proc.c" /* glr.c:846 */
4726 break;
4727
4728 case 150: /* cpp_special_name_token */
4729 #line 255 "src/parser_proc_grammar.y" /* glr.c:846 */
4730 {}
4731 #line 4732 "src/parser_proc.c" /* glr.c:846 */
4732 break;
4733
4734 case 151: /* cpp_macro_decl */
4735 #line 269 "src/parser_proc_grammar.y" /* glr.c:846 */
4736 {psi_cpp_macro_decl_free(&(*(struct psi_cpp_macro_decl **)(&(*yyvaluep))));}
4737 #line 4738 "src/parser_proc.c" /* glr.c:846 */
4738 break;
4739
4740 case 152: /* cpp_macro_sig */
4741 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
4742 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
4743 #line 4744 "src/parser_proc.c" /* glr.c:846 */
4744 break;
4745
4746 case 153: /* cpp_macro_sig_args */
4747 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
4748 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
4749 #line 4750 "src/parser_proc.c" /* glr.c:846 */
4750 break;
4751
4752 case 154: /* cpp_macro_decl_tokens */
4753 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
4754 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
4755 #line 4756 "src/parser_proc.c" /* glr.c:846 */
4756 break;
4757
4758 case 155: /* cpp_macro_decl_token_list */
4759 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
4760 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
4761 #line 4762 "src/parser_proc.c" /* glr.c:846 */
4762 break;
4763
4764 case 156: /* cpp_macro_exp */
4765 #line 273 "src/parser_proc_grammar.y" /* glr.c:846 */
4766 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
4767 #line 4768 "src/parser_proc.c" /* glr.c:846 */
4768 break;
4769
4770 case 157: /* cpp_macro_call_args */
4771 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
4772 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
4773 #line 4774 "src/parser_proc.c" /* glr.c:846 */
4774 break;
4775
4776 case 158: /* cpp_macro_call_arg_list */
4777 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
4778 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
4779 #line 4780 "src/parser_proc.c" /* glr.c:846 */
4780 break;
4781
4782 case 159: /* constant */
4783 #line 279 "src/parser_proc_grammar.y" /* glr.c:846 */
4784 {psi_const_free(&(*(struct psi_const **)(&(*yyvaluep))));}
4785 #line 4786 "src/parser_proc.c" /* glr.c:846 */
4786 break;
4787
4788 case 160: /* constant_type */
4789 #line 281 "src/parser_proc_grammar.y" /* glr.c:846 */
4790 {psi_const_type_free(&(*(struct psi_const_type **)(&(*yyvaluep))));}
4791 #line 4792 "src/parser_proc.c" /* glr.c:846 */
4792 break;
4793
4794 case 161: /* constant_type_token */
4795 #line 276 "src/parser_proc_grammar.y" /* glr.c:846 */
4796 {}
4797 #line 4798 "src/parser_proc.c" /* glr.c:846 */
4798 break;
4799
4800 case 162: /* impl_def_val */
4801 #line 283 "src/parser_proc_grammar.y" /* glr.c:846 */
4802 {psi_impl_def_val_free(&(*(struct psi_impl_def_val **)(&(*yyvaluep))));}
4803 #line 4804 "src/parser_proc.c" /* glr.c:846 */
4804 break;
4805
4806 case 163: /* impl_def_val_token */
4807 #line 276 "src/parser_proc_grammar.y" /* glr.c:846 */
4808 {}
4809 #line 4810 "src/parser_proc.c" /* glr.c:846 */
4810 break;
4811
4812 case 164: /* decl_typedef */
4813 #line 296 "src/parser_proc_grammar.y" /* glr.c:846 */
4814 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
4815 #line 4816 "src/parser_proc.c" /* glr.c:846 */
4816 break;
4817
4818 case 165: /* typedef */
4819 #line 296 "src/parser_proc_grammar.y" /* glr.c:846 */
4820 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
4821 #line 4822 "src/parser_proc.c" /* glr.c:846 */
4822 break;
4823
4824 case 166: /* const_decl_type */
4825 #line 292 "src/parser_proc_grammar.y" /* glr.c:846 */
4826 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
4827 #line 4828 "src/parser_proc.c" /* glr.c:846 */
4828 break;
4829
4830 case 167: /* decl_type */
4831 #line 292 "src/parser_proc_grammar.y" /* glr.c:846 */
4832 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
4833 #line 4834 "src/parser_proc.c" /* glr.c:846 */
4834 break;
4835
4836 case 168: /* decl_type_complex */
4837 #line 292 "src/parser_proc_grammar.y" /* glr.c:846 */
4838 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
4839 #line 4840 "src/parser_proc.c" /* glr.c:846 */
4840 break;
4841
4842 case 169: /* decl_type_simple */
4843 #line 286 "src/parser_proc_grammar.y" /* glr.c:846 */
4844 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
4845 #line 4846 "src/parser_proc.c" /* glr.c:846 */
4846 break;
4847
4848 case 170: /* decl_real_type */
4849 #line 286 "src/parser_proc_grammar.y" /* glr.c:846 */
4850 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
4851 #line 4852 "src/parser_proc.c" /* glr.c:846 */
4852 break;
4853
4854 case 171: /* decl_stdint_type */
4855 #line 289 "src/parser_proc_grammar.y" /* glr.c:846 */
4856 {}
4857 #line 4858 "src/parser_proc.c" /* glr.c:846 */
4858 break;
4859
4860 case 172: /* int_signed */
4861 #line 264 "src/parser_proc_grammar.y" /* glr.c:846 */
4862 {}
4863 #line 4864 "src/parser_proc.c" /* glr.c:846 */
4864 break;
4865
4866 case 173: /* int_width */
4867 #line 261 "src/parser_proc_grammar.y" /* glr.c:846 */
4868 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
4869 #line 4870 "src/parser_proc.c" /* glr.c:846 */
4870 break;
4871
4872 case 174: /* decl_int_type */
4873 #line 286 "src/parser_proc_grammar.y" /* glr.c:846 */
4874 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
4875 #line 4876 "src/parser_proc.c" /* glr.c:846 */
4876 break;
4877
4878 case 175: /* int_signed_types */
4879 #line 261 "src/parser_proc_grammar.y" /* glr.c:846 */
4880 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
4881 #line 4882 "src/parser_proc.c" /* glr.c:846 */
4882 break;
4883
4884 case 176: /* signed_short_types */
4885 #line 264 "src/parser_proc_grammar.y" /* glr.c:846 */
4886 {}
4887 #line 4888 "src/parser_proc.c" /* glr.c:846 */
4888 break;
4889
4890 case 177: /* signed_long_types */
4891 #line 264 "src/parser_proc_grammar.y" /* glr.c:846 */
4892 {}
4893 #line 4894 "src/parser_proc.c" /* glr.c:846 */
4894 break;
4895
4896 case 178: /* int_width_types */
4897 #line 261 "src/parser_proc_grammar.y" /* glr.c:846 */
4898 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
4899 #line 4900 "src/parser_proc.c" /* glr.c:846 */
4900 break;
4901
4902 case 179: /* decl_stmt */
4903 #line 294 "src/parser_proc_grammar.y" /* glr.c:846 */
4904 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
4905 #line 4906 "src/parser_proc.c" /* glr.c:846 */
4906 break;
4907
4908 case 185: /* decl_vars */
4909 #line 308 "src/parser_proc_grammar.y" /* glr.c:846 */
4910 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
4911 #line 4912 "src/parser_proc.c" /* glr.c:846 */
4912 break;
4913
4914 case 186: /* decl */
4915 #line 294 "src/parser_proc_grammar.y" /* glr.c:846 */
4916 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
4917 #line 4918 "src/parser_proc.c" /* glr.c:846 */
4918 break;
4919
4920 case 187: /* decl_body */
4921 #line 294 "src/parser_proc_grammar.y" /* glr.c:846 */
4922 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
4923 #line 4924 "src/parser_proc.c" /* glr.c:846 */
4924 break;
4925
4926 case 188: /* decl_func_body */
4927 #line 294 "src/parser_proc_grammar.y" /* glr.c:846 */
4928 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
4929 #line 4930 "src/parser_proc.c" /* glr.c:846 */
4930 break;
4931
4932 case 189: /* decl_functor_body */
4933 #line 294 "src/parser_proc_grammar.y" /* glr.c:846 */
4934 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
4935 #line 4936 "src/parser_proc.c" /* glr.c:846 */
4936 break;
4937
4938 case 190: /* decl_functor */
4939 #line 296 "src/parser_proc_grammar.y" /* glr.c:846 */
4940 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
4941 #line 4942 "src/parser_proc.c" /* glr.c:846 */
4942 break;
4943
4944 case 191: /* decl_func */
4945 #line 296 "src/parser_proc_grammar.y" /* glr.c:846 */
4946 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
4947 #line 4948 "src/parser_proc.c" /* glr.c:846 */
4948 break;
4949
4950 case 192: /* decl_args */
4951 #line 308 "src/parser_proc_grammar.y" /* glr.c:846 */
4952 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
4953 #line 4954 "src/parser_proc.c" /* glr.c:846 */
4954 break;
4955
4956 case 193: /* decl_anon_arg */
4957 #line 296 "src/parser_proc_grammar.y" /* glr.c:846 */
4958 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
4959 #line 4960 "src/parser_proc.c" /* glr.c:846 */
4960 break;
4961
4962 case 194: /* decl_arg */
4963 #line 296 "src/parser_proc_grammar.y" /* glr.c:846 */
4964 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
4965 #line 4966 "src/parser_proc.c" /* glr.c:846 */
4966 break;
4967
4968 case 195: /* decl_var */
4969 #line 298 "src/parser_proc_grammar.y" /* glr.c:846 */
4970 {psi_decl_var_free(&(*(struct psi_decl_var **)(&(*yyvaluep))));}
4971 #line 4972 "src/parser_proc.c" /* glr.c:846 */
4972 break;
4973
4974 case 196: /* decl_union */
4975 #line 302 "src/parser_proc_grammar.y" /* glr.c:846 */
4976 {psi_decl_union_free(&(*(struct psi_decl_union **)(&(*yyvaluep))));}
4977 #line 4978 "src/parser_proc.c" /* glr.c:846 */
4978 break;
4979
4980 case 197: /* decl_struct */
4981 #line 300 "src/parser_proc_grammar.y" /* glr.c:846 */
4982 {psi_decl_struct_free(&(*(struct psi_decl_struct **)(&(*yyvaluep))));}
4983 #line 4984 "src/parser_proc.c" /* glr.c:846 */
4984 break;
4985
4986 case 198: /* decl_struct_args */
4987 #line 308 "src/parser_proc_grammar.y" /* glr.c:846 */
4988 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
4989 #line 4990 "src/parser_proc.c" /* glr.c:846 */
4990 break;
4991
4992 case 199: /* struct_args_block */
4993 #line 308 "src/parser_proc_grammar.y" /* glr.c:846 */
4994 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
4995 #line 4996 "src/parser_proc.c" /* glr.c:846 */
4996 break;
4997
4998 case 200: /* struct_args */
4999 #line 308 "src/parser_proc_grammar.y" /* glr.c:846 */
5000 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5001 #line 5002 "src/parser_proc.c" /* glr.c:846 */
5002 break;
5003
5004 case 201: /* struct_arg_var_list */
5005 #line 308 "src/parser_proc_grammar.y" /* glr.c:846 */
5006 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5007 #line 5008 "src/parser_proc.c" /* glr.c:846 */
5008 break;
5009
5010 case 202: /* decl_vars_with_layout */
5011 #line 308 "src/parser_proc_grammar.y" /* glr.c:846 */
5012 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5013 #line 5014 "src/parser_proc.c" /* glr.c:846 */
5014 break;
5015
5016 case 203: /* decl_enum */
5017 #line 304 "src/parser_proc_grammar.y" /* glr.c:846 */
5018 {psi_decl_enum_free(&(*(struct psi_decl_enum **)(&(*yyvaluep))));}
5019 #line 5020 "src/parser_proc.c" /* glr.c:846 */
5020 break;
5021
5022 case 204: /* decl_enum_items */
5023 #line 308 "src/parser_proc_grammar.y" /* glr.c:846 */
5024 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5025 #line 5026 "src/parser_proc.c" /* glr.c:846 */
5026 break;
5027
5028 case 205: /* decl_enum_item */
5029 #line 306 "src/parser_proc_grammar.y" /* glr.c:846 */
5030 {psi_decl_enum_item_free(&(*(struct psi_decl_enum_item **)(&(*yyvaluep))));}
5031 #line 5032 "src/parser_proc.c" /* glr.c:846 */
5032 break;
5033
5034 case 206: /* num_exp */
5035 #line 359 "src/parser_proc_grammar.y" /* glr.c:846 */
5036 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
5037 #line 5038 "src/parser_proc.c" /* glr.c:846 */
5038 break;
5039
5040 case 207: /* number */
5041 #line 361 "src/parser_proc_grammar.y" /* glr.c:846 */
5042 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
5043 #line 5044 "src/parser_proc.c" /* glr.c:846 */
5044 break;
5045
5046 case 208: /* enum_name */
5047 #line 252 "src/parser_proc_grammar.y" /* glr.c:846 */
5048 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5049 #line 5050 "src/parser_proc.c" /* glr.c:846 */
5050 break;
5051
5052 case 209: /* union_name */
5053 #line 252 "src/parser_proc_grammar.y" /* glr.c:846 */
5054 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5055 #line 5056 "src/parser_proc.c" /* glr.c:846 */
5056 break;
5057
5058 case 210: /* struct_name */
5059 #line 252 "src/parser_proc_grammar.y" /* glr.c:846 */
5060 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5061 #line 5062 "src/parser_proc.c" /* glr.c:846 */
5062 break;
5063
5064 case 211: /* optional_name */
5065 #line 252 "src/parser_proc_grammar.y" /* glr.c:846 */
5066 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5067 #line 5068 "src/parser_proc.c" /* glr.c:846 */
5068 break;
5069
5070 case 212: /* decl_layout */
5071 #line 313 "src/parser_proc_grammar.y" /* glr.c:846 */
5072 {psi_layout_free(&(*(struct psi_layout **)(&(*yyvaluep))));}
5073 #line 5074 "src/parser_proc.c" /* glr.c:846 */
5074 break;
5075
5076 case 213: /* align_and_size */
5077 #line 311 "src/parser_proc_grammar.y" /* glr.c:846 */
5078 {}
5079 #line 5080 "src/parser_proc.c" /* glr.c:846 */
5080 break;
5081
5082 case 214: /* array_size */
5083 #line 364 "src/parser_proc_grammar.y" /* glr.c:846 */
5084 {}
5085 #line 5086 "src/parser_proc.c" /* glr.c:846 */
5086 break;
5087
5088 case 215: /* indirection */
5089 #line 364 "src/parser_proc_grammar.y" /* glr.c:846 */
5090 {}
5091 #line 5092 "src/parser_proc.c" /* glr.c:846 */
5092 break;
5093
5094 case 216: /* pointers */
5095 #line 364 "src/parser_proc_grammar.y" /* glr.c:846 */
5096 {}
5097 #line 5098 "src/parser_proc.c" /* glr.c:846 */
5098 break;
5099
5100 case 217: /* asterisks */
5101 #line 364 "src/parser_proc_grammar.y" /* glr.c:846 */
5102 {}
5103 #line 5104 "src/parser_proc.c" /* glr.c:846 */
5104 break;
5105
5106 case 219: /* impl */
5107 #line 316 "src/parser_proc_grammar.y" /* glr.c:846 */
5108 {psi_impl_free(&(*(struct psi_impl **)(&(*yyvaluep))));}
5109 #line 5110 "src/parser_proc.c" /* glr.c:846 */
5110 break;
5111
5112 case 220: /* impl_func */
5113 #line 318 "src/parser_proc_grammar.y" /* glr.c:846 */
5114 {psi_impl_func_free(&(*(struct psi_impl_func **)(&(*yyvaluep))));}
5115 #line 5116 "src/parser_proc.c" /* glr.c:846 */
5116 break;
5117
5118 case 221: /* impl_args */
5119 #line 356 "src/parser_proc_grammar.y" /* glr.c:846 */
5120 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5121 #line 5122 "src/parser_proc.c" /* glr.c:846 */
5122 break;
5123
5124 case 222: /* impl_arg */
5125 #line 320 "src/parser_proc_grammar.y" /* glr.c:846 */
5126 {psi_impl_arg_free(&(*(struct psi_impl_arg **)(&(*yyvaluep))));}
5127 #line 5128 "src/parser_proc.c" /* glr.c:846 */
5128 break;
5129
5130 case 223: /* impl_var */
5131 #line 324 "src/parser_proc_grammar.y" /* glr.c:846 */
5132 {psi_impl_var_free(&(*(struct psi_impl_var **)(&(*yyvaluep))));}
5133 #line 5134 "src/parser_proc.c" /* glr.c:846 */
5134 break;
5135
5136 case 224: /* impl_type */
5137 #line 322 "src/parser_proc_grammar.y" /* glr.c:846 */
5138 {psi_impl_type_free(&(*(struct psi_impl_type **)(&(*yyvaluep))));}
5139 #line 5140 "src/parser_proc.c" /* glr.c:846 */
5140 break;
5141
5142 case 225: /* impl_type_token */
5143 #line 354 "src/parser_proc_grammar.y" /* glr.c:846 */
5144 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5145 #line 5146 "src/parser_proc.c" /* glr.c:846 */
5146 break;
5147
5148 case 226: /* impl_stmts */
5149 #line 356 "src/parser_proc_grammar.y" /* glr.c:846 */
5150 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5151 #line 5152 "src/parser_proc.c" /* glr.c:846 */
5152 break;
5153
5154 case 227: /* impl_stmt */
5155 #line 352 "src/parser_proc_grammar.y" /* glr.c:846 */
5156 {psi_impl_stmt_free(&(*(struct psi_token ***)(&(*yyvaluep))));}
5157 #line 5158 "src/parser_proc.c" /* glr.c:846 */
5158 break;
5159
5160 case 228: /* let_stmt */
5161 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
5162 {psi_let_stmt_free(&(*(struct psi_let_stmt **)(&(*yyvaluep))));}
5163 #line 5164 "src/parser_proc.c" /* glr.c:846 */
5164 break;
5165
5166 case 229: /* let_exp */
5167 #line 329 "src/parser_proc_grammar.y" /* glr.c:846 */
5168 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
5169 #line 5170 "src/parser_proc.c" /* glr.c:846 */
5170 break;
5171
5172 case 230: /* let_exp_byref */
5173 #line 329 "src/parser_proc_grammar.y" /* glr.c:846 */
5174 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
5175 #line 5176 "src/parser_proc.c" /* glr.c:846 */
5176 break;
5177
5178 case 231: /* let_exp_assign */
5179 #line 329 "src/parser_proc_grammar.y" /* glr.c:846 */
5180 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
5181 #line 5182 "src/parser_proc.c" /* glr.c:846 */
5182 break;
5183
5184 case 232: /* let_calloc */
5185 #line 331 "src/parser_proc_grammar.y" /* glr.c:846 */
5186 {psi_let_calloc_free(&(*(struct psi_let_calloc **)(&(*yyvaluep))));}
5187 #line 5188 "src/parser_proc.c" /* glr.c:846 */
5188 break;
5189
5190 case 233: /* let_callback */
5191 #line 333 "src/parser_proc_grammar.y" /* glr.c:846 */
5192 {psi_let_callback_free(&(*(struct psi_let_callback **)(&(*yyvaluep))));}
5193 #line 5194 "src/parser_proc.c" /* glr.c:846 */
5194 break;
5195
5196 case 234: /* let_func */
5197 #line 335 "src/parser_proc_grammar.y" /* glr.c:846 */
5198 {psi_let_func_free(&(*(struct psi_let_func **)(&(*yyvaluep))));}
5199 #line 5200 "src/parser_proc.c" /* glr.c:846 */
5200 break;
5201
5202 case 235: /* let_func_token */
5203 #line 354 "src/parser_proc_grammar.y" /* glr.c:846 */
5204 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5205 #line 5206 "src/parser_proc.c" /* glr.c:846 */
5206 break;
5207
5208 case 236: /* let_func_exps */
5209 #line 356 "src/parser_proc_grammar.y" /* glr.c:846 */
5210 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5211 #line 5212 "src/parser_proc.c" /* glr.c:846 */
5212 break;
5213
5214 case 237: /* let_exps */
5215 #line 356 "src/parser_proc_grammar.y" /* glr.c:846 */
5216 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5217 #line 5218 "src/parser_proc.c" /* glr.c:846 */
5218 break;
5219
5220 case 238: /* callback_rval */
5221 #line 354 "src/parser_proc_grammar.y" /* glr.c:846 */
5222 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5223 #line 5224 "src/parser_proc.c" /* glr.c:846 */
5224 break;
5225
5226 case 239: /* callback_arg_list */
5227 #line 356 "src/parser_proc_grammar.y" /* glr.c:846 */
5228 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5229 #line 5230 "src/parser_proc.c" /* glr.c:846 */
5230 break;
5231
5232 case 240: /* callback_args */
5233 #line 356 "src/parser_proc_grammar.y" /* glr.c:846 */
5234 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5235 #line 5236 "src/parser_proc.c" /* glr.c:846 */
5236 break;
5237
5238 case 241: /* return_stmt */
5239 #line 345 "src/parser_proc_grammar.y" /* glr.c:846 */
5240 {psi_return_stmt_free(&(*(struct psi_return_stmt **)(&(*yyvaluep))));}
5241 #line 5242 "src/parser_proc.c" /* glr.c:846 */
5242 break;
5243
5244 case 242: /* set_stmt */
5245 #line 337 "src/parser_proc_grammar.y" /* glr.c:846 */
5246 {psi_set_stmt_free(&(*(struct psi_set_stmt **)(&(*yyvaluep))));}
5247 #line 5248 "src/parser_proc.c" /* glr.c:846 */
5248 break;
5249
5250 case 243: /* set_exp */
5251 #line 339 "src/parser_proc_grammar.y" /* glr.c:846 */
5252 {psi_set_exp_free(&(*(struct psi_set_exp **)(&(*yyvaluep))));}
5253 #line 5254 "src/parser_proc.c" /* glr.c:846 */
5254 break;
5255
5256 case 244: /* set_func */
5257 #line 341 "src/parser_proc_grammar.y" /* glr.c:846 */
5258 {psi_set_func_free(&(*(struct psi_set_func **)(&(*yyvaluep))));}
5259 #line 5260 "src/parser_proc.c" /* glr.c:846 */
5260 break;
5261
5262 case 245: /* set_func_token */
5263 #line 354 "src/parser_proc_grammar.y" /* glr.c:846 */
5264 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5265 #line 5266 "src/parser_proc.c" /* glr.c:846 */
5266 break;
5267
5268 case 246: /* set_func_exps */
5269 #line 356 "src/parser_proc_grammar.y" /* glr.c:846 */
5270 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5271 #line 5272 "src/parser_proc.c" /* glr.c:846 */
5272 break;
5273
5274 case 247: /* set_exps */
5275 #line 356 "src/parser_proc_grammar.y" /* glr.c:846 */
5276 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5277 #line 5278 "src/parser_proc.c" /* glr.c:846 */
5278 break;
5279
5280 case 248: /* assert_stmt */
5281 #line 343 "src/parser_proc_grammar.y" /* glr.c:846 */
5282 {psi_assert_stmt_free(&(*(struct psi_assert_stmt **)(&(*yyvaluep))));}
5283 #line 5284 "src/parser_proc.c" /* glr.c:846 */
5284 break;
5285
5286 case 249: /* assert_stmt_token */
5287 #line 354 "src/parser_proc_grammar.y" /* glr.c:846 */
5288 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5289 #line 5290 "src/parser_proc.c" /* glr.c:846 */
5290 break;
5291
5292 case 250: /* free_stmt */
5293 #line 347 "src/parser_proc_grammar.y" /* glr.c:846 */
5294 {psi_free_stmt_free(&(*(struct psi_free_stmt **)(&(*yyvaluep))));}
5295 #line 5296 "src/parser_proc.c" /* glr.c:846 */
5296 break;
5297
5298 case 251: /* free_exps */
5299 #line 356 "src/parser_proc_grammar.y" /* glr.c:846 */
5300 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5301 #line 5302 "src/parser_proc.c" /* glr.c:846 */
5302 break;
5303
5304 case 252: /* free_exp */
5305 #line 349 "src/parser_proc_grammar.y" /* glr.c:846 */
5306 {psi_free_exp_free(&(*(struct psi_free_exp **)(&(*yyvaluep))));}
5307 #line 5308 "src/parser_proc.c" /* glr.c:846 */
5308 break;
5309
5310 case 253: /* reference */
5311 #line 366 "src/parser_proc_grammar.y" /* glr.c:846 */
5312 {}
5313 #line 5314 "src/parser_proc.c" /* glr.c:846 */
5314 break;
5315
5316
5317 default:
5318 break;
5319 }
5320 YY_IGNORE_MAYBE_UNINITIALIZED_END
5321 }
5322
5323 /** Number of symbols composing the right hand side of rule #RULE. */
5324 static inline int
5325 yyrhsLength (yyRuleNum yyrule)
5326 {
5327 return yyr2[yyrule];
5328 }
5329
5330 static void
5331 yydestroyGLRState (char const *yymsg, yyGLRState *yys, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
5332 {
5333 if (yys->yyresolved)
5334 yydestruct (yymsg, yystos[yys->yylrState],
5335 &yys->yysemantics.yysval, P, tokens, index);
5336 else
5337 {
5338 #if YYDEBUG
5339 if (yydebug)
5340 {
5341 if (yys->yysemantics.yyfirstVal)
5342 YYFPRINTF (stderr, "%s unresolved", yymsg);
5343 else
5344 YYFPRINTF (stderr, "%s incomplete", yymsg);
5345 YY_SYMBOL_PRINT ("", yystos[yys->yylrState], YY_NULLPTR, &yys->yyloc);
5346 }
5347 #endif
5348
5349 if (yys->yysemantics.yyfirstVal)
5350 {
5351 yySemanticOption *yyoption = yys->yysemantics.yyfirstVal;
5352 yyGLRState *yyrh;
5353 int yyn;
5354 for (yyrh = yyoption->yystate, yyn = yyrhsLength (yyoption->yyrule);
5355 yyn > 0;
5356 yyrh = yyrh->yypred, yyn -= 1)
5357 yydestroyGLRState (yymsg, yyrh, P, tokens, index);
5358 }
5359 }
5360 }
5361
5362 /** Left-hand-side symbol for rule #YYRULE. */
5363 static inline yySymbol
5364 yylhsNonterm (yyRuleNum yyrule)
5365 {
5366 return yyr1[yyrule];
5367 }
5368
5369 #define yypact_value_is_default(Yystate) \
5370 (!!((Yystate) == (-565)))
5371
5372 /** True iff LR state YYSTATE has only a default reduction (regardless
5373 * of token). */
5374 static inline yybool
5375 yyisDefaultedState (yyStateNum yystate)
5376 {
5377 return yypact_value_is_default (yypact[yystate]);
5378 }
5379
5380 /** The default reduction for YYSTATE, assuming it has one. */
5381 static inline yyRuleNum
5382 yydefaultAction (yyStateNum yystate)
5383 {
5384 return yydefact[yystate];
5385 }
5386
5387 #define yytable_value_is_error(Yytable_value) \
5388 0
5389
5390 /** Set *YYACTION to the action to take in YYSTATE on seeing YYTOKEN.
5391 * Result R means
5392 * R < 0: Reduce on rule -R.
5393 * R = 0: Error.
5394 * R > 0: Shift to state R.
5395 * Set *YYCONFLICTS to a pointer into yyconfl to a 0-terminated list
5396 * of conflicting reductions.
5397 */
5398 static inline void
5399 yygetLRActions (yyStateNum yystate, int yytoken,
5400 int* yyaction, const short int** yyconflicts)
5401 {
5402 int yyindex = yypact[yystate] + yytoken;
5403 if (yypact_value_is_default (yypact[yystate])
5404 || yyindex < 0 || YYLAST < yyindex || yycheck[yyindex] != yytoken)
5405 {
5406 *yyaction = -yydefact[yystate];
5407 *yyconflicts = yyconfl;
5408 }
5409 else if (! yytable_value_is_error (yytable[yyindex]))
5410 {
5411 *yyaction = yytable[yyindex];
5412 *yyconflicts = yyconfl + yyconflp[yyindex];
5413 }
5414 else
5415 {
5416 *yyaction = 0;
5417 *yyconflicts = yyconfl + yyconflp[yyindex];
5418 }
5419 }
5420
5421 /** Compute post-reduction state.
5422 * \param yystate the current state
5423 * \param yysym the nonterminal to push on the stack
5424 */
5425 static inline yyStateNum
5426 yyLRgotoState (yyStateNum yystate, yySymbol yysym)
5427 {
5428 int yyr = yypgoto[yysym - YYNTOKENS] + yystate;
5429 if (0 <= yyr && yyr <= YYLAST && yycheck[yyr] == yystate)
5430 return yytable[yyr];
5431 else
5432 return yydefgoto[yysym - YYNTOKENS];
5433 }
5434
5435 static inline yybool
5436 yyisShiftAction (int yyaction)
5437 {
5438 return 0 < yyaction;
5439 }
5440
5441 static inline yybool
5442 yyisErrorAction (int yyaction)
5443 {
5444 return yyaction == 0;
5445 }
5446
5447 /* GLRStates */
5448
5449 /** Return a fresh GLRStackItem in YYSTACKP. The item is an LR state
5450 * if YYISSTATE, and otherwise a semantic option. Callers should call
5451 * YY_RESERVE_GLRSTACK afterwards to make sure there is sufficient
5452 * headroom. */
5453
5454 static inline yyGLRStackItem*
5455 yynewGLRStackItem (yyGLRStack* yystackp, yybool yyisState)
5456 {
5457 yyGLRStackItem* yynewItem = yystackp->yynextFree;
5458 yystackp->yyspaceLeft -= 1;
5459 yystackp->yynextFree += 1;
5460 yynewItem->yystate.yyisState = yyisState;
5461 return yynewItem;
5462 }
5463
5464 /** Add a new semantic action that will execute the action for rule
5465 * YYRULE on the semantic values in YYRHS to the list of
5466 * alternative actions for YYSTATE. Assumes that YYRHS comes from
5467 * stack #YYK of *YYSTACKP. */
5468 static void
5469 yyaddDeferredAction (yyGLRStack* yystackp, size_t yyk, yyGLRState* yystate,
5470 yyGLRState* yyrhs, yyRuleNum yyrule)
5471 {
5472 yySemanticOption* yynewOption =
5473 &yynewGLRStackItem (yystackp, yyfalse)->yyoption;
5474 YYASSERT (!yynewOption->yyisState);
5475 yynewOption->yystate = yyrhs;
5476 yynewOption->yyrule = yyrule;
5477 if (yystackp->yytops.yylookaheadNeeds[yyk])
5478 {
5479 yynewOption->yyrawchar = yychar;
5480 yynewOption->yyval = yylval;
5481 }
5482 else
5483 yynewOption->yyrawchar = YYEMPTY;
5484 yynewOption->yynext = yystate->yysemantics.yyfirstVal;
5485 yystate->yysemantics.yyfirstVal = yynewOption;
5486
5487 YY_RESERVE_GLRSTACK (yystackp);
5488 }
5489
5490 /* GLRStacks */
5491
5492 /** Initialize YYSET to a singleton set containing an empty stack. */
5493 static yybool
5494 yyinitStateSet (yyGLRStateSet* yyset)
5495 {
5496 yyset->yysize = 1;
5497 yyset->yycapacity = 16;
5498 yyset->yystates = (yyGLRState**) YYMALLOC (16 * sizeof yyset->yystates[0]);
5499 if (! yyset->yystates)
5500 return yyfalse;
5501 yyset->yystates[0] = YY_NULLPTR;
5502 yyset->yylookaheadNeeds =
5503 (yybool*) YYMALLOC (16 * sizeof yyset->yylookaheadNeeds[0]);
5504 if (! yyset->yylookaheadNeeds)
5505 {
5506 YYFREE (yyset->yystates);
5507 return yyfalse;
5508 }
5509 return yytrue;
5510 }
5511
5512 static void yyfreeStateSet (yyGLRStateSet* yyset)
5513 {
5514 YYFREE (yyset->yystates);
5515 YYFREE (yyset->yylookaheadNeeds);
5516 }
5517
5518 /** Initialize *YYSTACKP to a single empty stack, with total maximum
5519 * capacity for all stacks of YYSIZE. */
5520 static yybool
5521 yyinitGLRStack (yyGLRStack* yystackp, size_t yysize)
5522 {
5523 yystackp->yyerrState = 0;
5524 yynerrs = 0;
5525 yystackp->yyspaceLeft = yysize;
5526 yystackp->yyitems =
5527 (yyGLRStackItem*) YYMALLOC (yysize * sizeof yystackp->yynextFree[0]);
5528 if (!yystackp->yyitems)
5529 return yyfalse;
5530 yystackp->yynextFree = yystackp->yyitems;
5531 yystackp->yysplitPoint = YY_NULLPTR;
5532 yystackp->yylastDeleted = YY_NULLPTR;
5533 return yyinitStateSet (&yystackp->yytops);
5534 }
5535
5536
5537 #if YYSTACKEXPANDABLE
5538 # define YYRELOC(YYFROMITEMS,YYTOITEMS,YYX,YYTYPE) \
5539 &((YYTOITEMS) - ((YYFROMITEMS) - (yyGLRStackItem*) (YYX)))->YYTYPE
5540
5541 /** If *YYSTACKP is expandable, extend it. WARNING: Pointers into the
5542 stack from outside should be considered invalid after this call.
5543 We always expand when there are 1 or fewer items left AFTER an
5544 allocation, so that we can avoid having external pointers exist
5545 across an allocation. */
5546 static void
5547 yyexpandGLRStack (yyGLRStack* yystackp)
5548 {
5549 yyGLRStackItem* yynewItems;
5550 yyGLRStackItem* yyp0, *yyp1;
5551 size_t yynewSize;
5552 size_t yyn;
5553 size_t yysize = yystackp->yynextFree - yystackp->yyitems;
5554 if (YYMAXDEPTH - YYHEADROOM < yysize)
5555 yyMemoryExhausted (yystackp);
5556 yynewSize = 2*yysize;
5557 if (YYMAXDEPTH < yynewSize)
5558 yynewSize = YYMAXDEPTH;
5559 yynewItems = (yyGLRStackItem*) YYMALLOC (yynewSize * sizeof yynewItems[0]);
5560 if (! yynewItems)
5561 yyMemoryExhausted (yystackp);
5562 for (yyp0 = yystackp->yyitems, yyp1 = yynewItems, yyn = yysize;
5563 0 < yyn;
5564 yyn -= 1, yyp0 += 1, yyp1 += 1)
5565 {
5566 *yyp1 = *yyp0;
5567 if (*(yybool *) yyp0)
5568 {
5569 yyGLRState* yys0 = &yyp0->yystate;
5570 yyGLRState* yys1 = &yyp1->yystate;
5571 if (yys0->yypred != YY_NULLPTR)
5572 yys1->yypred =
5573 YYRELOC (yyp0, yyp1, yys0->yypred, yystate);
5574 if (! yys0->yyresolved && yys0->yysemantics.yyfirstVal != YY_NULLPTR)
5575 yys1->yysemantics.yyfirstVal =
5576 YYRELOC (yyp0, yyp1, yys0->yysemantics.yyfirstVal, yyoption);
5577 }
5578 else
5579 {
5580 yySemanticOption* yyv0 = &yyp0->yyoption;
5581 yySemanticOption* yyv1 = &yyp1->yyoption;
5582 if (yyv0->yystate != YY_NULLPTR)
5583 yyv1->yystate = YYRELOC (yyp0, yyp1, yyv0->yystate, yystate);
5584 if (yyv0->yynext != YY_NULLPTR)
5585 yyv1->yynext = YYRELOC (yyp0, yyp1, yyv0->yynext, yyoption);
5586 }
5587 }
5588 if (yystackp->yysplitPoint != YY_NULLPTR)
5589 yystackp->yysplitPoint = YYRELOC (yystackp->yyitems, yynewItems,
5590 yystackp->yysplitPoint, yystate);
5591
5592 for (yyn = 0; yyn < yystackp->yytops.yysize; yyn += 1)
5593 if (yystackp->yytops.yystates[yyn] != YY_NULLPTR)
5594 yystackp->yytops.yystates[yyn] =
5595 YYRELOC (yystackp->yyitems, yynewItems,
5596 yystackp->yytops.yystates[yyn], yystate);
5597 YYFREE (yystackp->yyitems);
5598 yystackp->yyitems = yynewItems;
5599 yystackp->yynextFree = yynewItems + yysize;
5600 yystackp->yyspaceLeft = yynewSize - yysize;
5601 }
5602 #endif
5603
5604 static void
5605 yyfreeGLRStack (yyGLRStack* yystackp)
5606 {
5607 YYFREE (yystackp->yyitems);
5608 yyfreeStateSet (&yystackp->yytops);
5609 }
5610
5611 /** Assuming that YYS is a GLRState somewhere on *YYSTACKP, update the
5612 * splitpoint of *YYSTACKP, if needed, so that it is at least as deep as
5613 * YYS. */
5614 static inline void
5615 yyupdateSplit (yyGLRStack* yystackp, yyGLRState* yys)
5616 {
5617 if (yystackp->yysplitPoint != YY_NULLPTR && yystackp->yysplitPoint > yys)
5618 yystackp->yysplitPoint = yys;
5619 }
5620
5621 /** Invalidate stack #YYK in *YYSTACKP. */
5622 static inline void
5623 yymarkStackDeleted (yyGLRStack* yystackp, size_t yyk)
5624 {
5625 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
5626 yystackp->yylastDeleted = yystackp->yytops.yystates[yyk];
5627 yystackp->yytops.yystates[yyk] = YY_NULLPTR;
5628 }
5629
5630 /** Undelete the last stack in *YYSTACKP that was marked as deleted. Can
5631 only be done once after a deletion, and only when all other stacks have
5632 been deleted. */
5633 static void
5634 yyundeleteLastStack (yyGLRStack* yystackp)
5635 {
5636 if (yystackp->yylastDeleted == YY_NULLPTR || yystackp->yytops.yysize != 0)
5637 return;
5638 yystackp->yytops.yystates[0] = yystackp->yylastDeleted;
5639 yystackp->yytops.yysize = 1;
5640 YYDPRINTF ((stderr, "Restoring last deleted stack as stack #0.\n"));
5641 yystackp->yylastDeleted = YY_NULLPTR;
5642 }
5643
5644 static inline void
5645 yyremoveDeletes (yyGLRStack* yystackp)
5646 {
5647 size_t yyi, yyj;
5648 yyi = yyj = 0;
5649 while (yyj < yystackp->yytops.yysize)
5650 {
5651 if (yystackp->yytops.yystates[yyi] == YY_NULLPTR)
5652 {
5653 if (yyi == yyj)
5654 {
5655 YYDPRINTF ((stderr, "Removing dead stacks.\n"));
5656 }
5657 yystackp->yytops.yysize -= 1;
5658 }
5659 else
5660 {
5661 yystackp->yytops.yystates[yyj] = yystackp->yytops.yystates[yyi];
5662 /* In the current implementation, it's unnecessary to copy
5663 yystackp->yytops.yylookaheadNeeds[yyi] since, after
5664 yyremoveDeletes returns, the parser immediately either enters
5665 deterministic operation or shifts a token. However, it doesn't
5666 hurt, and the code might evolve to need it. */
5667 yystackp->yytops.yylookaheadNeeds[yyj] =
5668 yystackp->yytops.yylookaheadNeeds[yyi];
5669 if (yyj != yyi)
5670 {
5671 YYDPRINTF ((stderr, "Rename stack %lu -> %lu.\n",
5672 (unsigned long int) yyi, (unsigned long int) yyj));
5673 }
5674 yyj += 1;
5675 }
5676 yyi += 1;
5677 }
5678 }
5679
5680 /** Shift to a new state on stack #YYK of *YYSTACKP, corresponding to LR
5681 * state YYLRSTATE, at input position YYPOSN, with (resolved) semantic
5682 * value *YYVALP and source location *YYLOCP. */
5683 static inline void
5684 yyglrShift (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
5685 size_t yyposn,
5686 YYSTYPE* yyvalp)
5687 {
5688 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
5689
5690 yynewState->yylrState = yylrState;
5691 yynewState->yyposn = yyposn;
5692 yynewState->yyresolved = yytrue;
5693 yynewState->yypred = yystackp->yytops.yystates[yyk];
5694 yynewState->yysemantics.yysval = *yyvalp;
5695 yystackp->yytops.yystates[yyk] = yynewState;
5696
5697 YY_RESERVE_GLRSTACK (yystackp);
5698 }
5699
5700 /** Shift stack #YYK of *YYSTACKP, to a new state corresponding to LR
5701 * state YYLRSTATE, at input position YYPOSN, with the (unresolved)
5702 * semantic value of YYRHS under the action for YYRULE. */
5703 static inline void
5704 yyglrShiftDefer (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
5705 size_t yyposn, yyGLRState* yyrhs, yyRuleNum yyrule)
5706 {
5707 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
5708 YYASSERT (yynewState->yyisState);
5709
5710 yynewState->yylrState = yylrState;
5711 yynewState->yyposn = yyposn;
5712 yynewState->yyresolved = yyfalse;
5713 yynewState->yypred = yystackp->yytops.yystates[yyk];
5714 yynewState->yysemantics.yyfirstVal = YY_NULLPTR;
5715 yystackp->yytops.yystates[yyk] = yynewState;
5716
5717 /* Invokes YY_RESERVE_GLRSTACK. */
5718 yyaddDeferredAction (yystackp, yyk, yynewState, yyrhs, yyrule);
5719 }
5720
5721 #if !YYDEBUG
5722 # define YY_REDUCE_PRINT(Args)
5723 #else
5724 # define YY_REDUCE_PRINT(Args) \
5725 do { \
5726 if (yydebug) \
5727 yy_reduce_print Args; \
5728 } while (0)
5729
5730 /*----------------------------------------------------------------------.
5731 | Report that stack #YYK of *YYSTACKP is going to be reduced by YYRULE. |
5732 `----------------------------------------------------------------------*/
5733
5734 static inline void
5735 yy_reduce_print (int yynormal, yyGLRStackItem* yyvsp, size_t yyk,
5736 yyRuleNum yyrule, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
5737 {
5738 int yynrhs = yyrhsLength (yyrule);
5739 int yyi;
5740 YYFPRINTF (stderr, "Reducing stack %lu by rule %d (line %lu):\n",
5741 (unsigned long int) yyk, yyrule - 1,
5742 (unsigned long int) yyrline[yyrule]);
5743 if (! yynormal)
5744 yyfillin (yyvsp, 1, -yynrhs);
5745 /* The symbols being reduced. */
5746 for (yyi = 0; yyi < yynrhs; yyi++)
5747 {
5748 YYFPRINTF (stderr, " $%d = ", yyi + 1);
5749 yy_symbol_print (stderr,
5750 yystos[yyvsp[yyi - yynrhs + 1].yystate.yylrState],
5751 &yyvsp[yyi - yynrhs + 1].yystate.yysemantics.yysval
5752 , P, tokens, index);
5753 if (!yyvsp[yyi - yynrhs + 1].yystate.yyresolved)
5754 YYFPRINTF (stderr, " (unresolved)");
5755 YYFPRINTF (stderr, "\n");
5756 }
5757 }
5758 #endif
5759
5760 /** Pop the symbols consumed by reduction #YYRULE from the top of stack
5761 * #YYK of *YYSTACKP, and perform the appropriate semantic action on their
5762 * semantic values. Assumes that all ambiguities in semantic values
5763 * have been previously resolved. Set *YYVALP to the resulting value,
5764 * and *YYLOCP to the computed location (if any). Return value is as
5765 * for userAction. */
5766 static inline YYRESULTTAG
5767 yydoAction (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
5768 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
5769 {
5770 int yynrhs = yyrhsLength (yyrule);
5771
5772 if (yystackp->yysplitPoint == YY_NULLPTR)
5773 {
5774 /* Standard special case: single stack. */
5775 yyGLRStackItem* yyrhs = (yyGLRStackItem*) yystackp->yytops.yystates[yyk];
5776 YYASSERT (yyk == 0);
5777 yystackp->yynextFree -= yynrhs;
5778 yystackp->yyspaceLeft += yynrhs;
5779 yystackp->yytops.yystates[0] = & yystackp->yynextFree[-1].yystate;
5780 YY_REDUCE_PRINT ((1, yyrhs, yyk, yyrule, P, tokens, index));
5781 return yyuserAction (yyrule, yynrhs, yyrhs, yystackp,
5782 yyvalp, P, tokens, index);
5783 }
5784 else
5785 {
5786 int yyi;
5787 yyGLRState* yys;
5788 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
5789 yys = yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred
5790 = yystackp->yytops.yystates[yyk];
5791 for (yyi = 0; yyi < yynrhs; yyi += 1)
5792 {
5793 yys = yys->yypred;
5794 YYASSERT (yys);
5795 }
5796 yyupdateSplit (yystackp, yys);
5797 yystackp->yytops.yystates[yyk] = yys;
5798 YY_REDUCE_PRINT ((0, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1, yyk, yyrule, P, tokens, index));
5799 return yyuserAction (yyrule, yynrhs, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
5800 yystackp, yyvalp, P, tokens, index);
5801 }
5802 }
5803
5804 /** Pop items off stack #YYK of *YYSTACKP according to grammar rule YYRULE,
5805 * and push back on the resulting nonterminal symbol. Perform the
5806 * semantic action associated with YYRULE and store its value with the
5807 * newly pushed state, if YYFORCEEVAL or if *YYSTACKP is currently
5808 * unambiguous. Otherwise, store the deferred semantic action with
5809 * the new state. If the new state would have an identical input
5810 * position, LR state, and predecessor to an existing state on the stack,
5811 * it is identified with that existing state, eliminating stack #YYK from
5812 * *YYSTACKP. In this case, the semantic value is
5813 * added to the options for the existing state's semantic value.
5814 */
5815 static inline YYRESULTTAG
5816 yyglrReduce (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
5817 yybool yyforceEval, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
5818 {
5819 size_t yyposn = yystackp->yytops.yystates[yyk]->yyposn;
5820
5821 if (yyforceEval || yystackp->yysplitPoint == YY_NULLPTR)
5822 {
5823 YYSTYPE yysval;
5824
5825 YYRESULTTAG yyflag = yydoAction (yystackp, yyk, yyrule, &yysval, P, tokens, index);
5826 if (yyflag == yyerr && yystackp->yysplitPoint != YY_NULLPTR)
5827 {
5828 YYDPRINTF ((stderr, "Parse on stack %lu rejected by rule #%d.\n",
5829 (unsigned long int) yyk, yyrule - 1));
5830 }
5831 if (yyflag != yyok)
5832 return yyflag;
5833 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyrule], &yysval, &yyloc);
5834 yyglrShift (yystackp, yyk,
5835 yyLRgotoState (yystackp->yytops.yystates[yyk]->yylrState,
5836 yylhsNonterm (yyrule)),
5837 yyposn, &yysval);
5838 }
5839 else
5840 {
5841 size_t yyi;
5842 int yyn;
5843 yyGLRState* yys, *yys0 = yystackp->yytops.yystates[yyk];
5844 yyStateNum yynewLRState;
5845
5846 for (yys = yystackp->yytops.yystates[yyk], yyn = yyrhsLength (yyrule);
5847 0 < yyn; yyn -= 1)
5848 {
5849 yys = yys->yypred;
5850 YYASSERT (yys);
5851 }
5852 yyupdateSplit (yystackp, yys);
5853 yynewLRState = yyLRgotoState (yys->yylrState, yylhsNonterm (yyrule));
5854 YYDPRINTF ((stderr,
5855 "Reduced stack %lu by rule #%d; action deferred. "
5856 "Now in state %d.\n",
5857 (unsigned long int) yyk, yyrule - 1, yynewLRState));
5858 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
5859 if (yyi != yyk && yystackp->yytops.yystates[yyi] != YY_NULLPTR)
5860 {
5861 yyGLRState *yysplit = yystackp->yysplitPoint;
5862 yyGLRState *yyp = yystackp->yytops.yystates[yyi];
5863 while (yyp != yys && yyp != yysplit && yyp->yyposn >= yyposn)
5864 {
5865 if (yyp->yylrState == yynewLRState && yyp->yypred == yys)
5866 {
5867 yyaddDeferredAction (yystackp, yyk, yyp, yys0, yyrule);
5868 yymarkStackDeleted (yystackp, yyk);
5869 YYDPRINTF ((stderr, "Merging stack %lu into stack %lu.\n",
5870 (unsigned long int) yyk,
5871 (unsigned long int) yyi));
5872 return yyok;
5873 }
5874 yyp = yyp->yypred;
5875 }
5876 }
5877 yystackp->yytops.yystates[yyk] = yys;
5878 yyglrShiftDefer (yystackp, yyk, yynewLRState, yyposn, yys0, yyrule);
5879 }
5880 return yyok;
5881 }
5882
5883 static size_t
5884 yysplitStack (yyGLRStack* yystackp, size_t yyk)
5885 {
5886 if (yystackp->yysplitPoint == YY_NULLPTR)
5887 {
5888 YYASSERT (yyk == 0);
5889 yystackp->yysplitPoint = yystackp->yytops.yystates[yyk];
5890 }
5891 if (yystackp->yytops.yysize >= yystackp->yytops.yycapacity)
5892 {
5893 yyGLRState** yynewStates;
5894 yybool* yynewLookaheadNeeds;
5895
5896 yynewStates = YY_NULLPTR;
5897
5898 if (yystackp->yytops.yycapacity
5899 > (YYSIZEMAX / (2 * sizeof yynewStates[0])))
5900 yyMemoryExhausted (yystackp);
5901 yystackp->yytops.yycapacity *= 2;
5902
5903 yynewStates =
5904 (yyGLRState**) YYREALLOC (yystackp->yytops.yystates,
5905 (yystackp->yytops.yycapacity
5906 * sizeof yynewStates[0]));
5907 if (yynewStates == YY_NULLPTR)
5908 yyMemoryExhausted (yystackp);
5909 yystackp->yytops.yystates = yynewStates;
5910
5911 yynewLookaheadNeeds =
5912 (yybool*) YYREALLOC (yystackp->yytops.yylookaheadNeeds,
5913 (yystackp->yytops.yycapacity
5914 * sizeof yynewLookaheadNeeds[0]));
5915 if (yynewLookaheadNeeds == YY_NULLPTR)
5916 yyMemoryExhausted (yystackp);
5917 yystackp->yytops.yylookaheadNeeds = yynewLookaheadNeeds;
5918 }
5919 yystackp->yytops.yystates[yystackp->yytops.yysize]
5920 = yystackp->yytops.yystates[yyk];
5921 yystackp->yytops.yylookaheadNeeds[yystackp->yytops.yysize]
5922 = yystackp->yytops.yylookaheadNeeds[yyk];
5923 yystackp->yytops.yysize += 1;
5924 return yystackp->yytops.yysize-1;
5925 }
5926
5927 /** True iff YYY0 and YYY1 represent identical options at the top level.
5928 * That is, they represent the same rule applied to RHS symbols
5929 * that produce the same terminal symbols. */
5930 static yybool
5931 yyidenticalOptions (yySemanticOption* yyy0, yySemanticOption* yyy1)
5932 {
5933 if (yyy0->yyrule == yyy1->yyrule)
5934 {
5935 yyGLRState *yys0, *yys1;
5936 int yyn;
5937 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
5938 yyn = yyrhsLength (yyy0->yyrule);
5939 yyn > 0;
5940 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
5941 if (yys0->yyposn != yys1->yyposn)
5942 return yyfalse;
5943 return yytrue;
5944 }
5945 else
5946 return yyfalse;
5947 }
5948
5949 /** Assuming identicalOptions (YYY0,YYY1), destructively merge the
5950 * alternative semantic values for the RHS-symbols of YYY1 and YYY0. */
5951 static void
5952 yymergeOptionSets (yySemanticOption* yyy0, yySemanticOption* yyy1)
5953 {
5954 yyGLRState *yys0, *yys1;
5955 int yyn;
5956 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
5957 yyn = yyrhsLength (yyy0->yyrule);
5958 yyn > 0;
5959 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
5960 {
5961 if (yys0 == yys1)
5962 break;
5963 else if (yys0->yyresolved)
5964 {
5965 yys1->yyresolved = yytrue;
5966 yys1->yysemantics.yysval = yys0->yysemantics.yysval;
5967 }
5968 else if (yys1->yyresolved)
5969 {
5970 yys0->yyresolved = yytrue;
5971 yys0->yysemantics.yysval = yys1->yysemantics.yysval;
5972 }
5973 else
5974 {
5975 yySemanticOption** yyz0p = &yys0->yysemantics.yyfirstVal;
5976 yySemanticOption* yyz1 = yys1->yysemantics.yyfirstVal;
5977 while (yytrue)
5978 {
5979 if (yyz1 == *yyz0p || yyz1 == YY_NULLPTR)
5980 break;
5981 else if (*yyz0p == YY_NULLPTR)
5982 {
5983 *yyz0p = yyz1;
5984 break;
5985 }
5986 else if (*yyz0p < yyz1)
5987 {
5988 yySemanticOption* yyz = *yyz0p;
5989 *yyz0p = yyz1;
5990 yyz1 = yyz1->yynext;
5991 (*yyz0p)->yynext = yyz;
5992 }
5993 yyz0p = &(*yyz0p)->yynext;
5994 }
5995 yys1->yysemantics.yyfirstVal = yys0->yysemantics.yyfirstVal;
5996 }
5997 }
5998 }
5999
6000 /** Y0 and Y1 represent two possible actions to take in a given
6001 * parsing state; return 0 if no combination is possible,
6002 * 1 if user-mergeable, 2 if Y0 is preferred, 3 if Y1 is preferred. */
6003 static int
6004 yypreference (yySemanticOption* y0, yySemanticOption* y1)
6005 {
6006 yyRuleNum r0 = y0->yyrule, r1 = y1->yyrule;
6007 int p0 = yydprec[r0], p1 = yydprec[r1];
6008
6009 if (p0 == p1)
6010 {
6011 if (yymerger[r0] == 0 || yymerger[r0] != yymerger[r1])
6012 return 0;
6013 else
6014 return 1;
6015 }
6016 if (p0 == 0 || p1 == 0)
6017 return 0;
6018 if (p0 < p1)
6019 return 3;
6020 if (p1 < p0)
6021 return 2;
6022 return 0;
6023 }
6024
6025 static YYRESULTTAG yyresolveValue (yyGLRState* yys,
6026 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index);
6027
6028
6029 /** Resolve the previous YYN states starting at and including state YYS
6030 * on *YYSTACKP. If result != yyok, some states may have been left
6031 * unresolved possibly with empty semantic option chains. Regardless
6032 * of whether result = yyok, each state has been left with consistent
6033 * data so that yydestroyGLRState can be invoked if necessary. */
6034 static YYRESULTTAG
6035 yyresolveStates (yyGLRState* yys, int yyn,
6036 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6037 {
6038 if (0 < yyn)
6039 {
6040 YYASSERT (yys->yypred);
6041 YYCHK (yyresolveStates (yys->yypred, yyn-1, yystackp, P, tokens, index));
6042 if (! yys->yyresolved)
6043 YYCHK (yyresolveValue (yys, yystackp, P, tokens, index));
6044 }
6045 return yyok;
6046 }
6047
6048 /** Resolve the states for the RHS of YYOPT on *YYSTACKP, perform its
6049 * user action, and return the semantic value and location in *YYVALP
6050 * and *YYLOCP. Regardless of whether result = yyok, all RHS states
6051 * have been destroyed (assuming the user action destroys all RHS
6052 * semantic values if invoked). */
6053 static YYRESULTTAG
6054 yyresolveAction (yySemanticOption* yyopt, yyGLRStack* yystackp,
6055 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6056 {
6057 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
6058 int yynrhs = yyrhsLength (yyopt->yyrule);
6059 YYRESULTTAG yyflag =
6060 yyresolveStates (yyopt->yystate, yynrhs, yystackp, P, tokens, index);
6061 if (yyflag != yyok)
6062 {
6063 yyGLRState *yys;
6064 for (yys = yyopt->yystate; yynrhs > 0; yys = yys->yypred, yynrhs -= 1)
6065 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
6066 return yyflag;
6067 }
6068
6069 yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred = yyopt->yystate;
6070 {
6071 int yychar_current = yychar;
6072 YYSTYPE yylval_current = yylval;
6073 yychar = yyopt->yyrawchar;
6074 yylval = yyopt->yyval;
6075 yyflag = yyuserAction (yyopt->yyrule, yynrhs,
6076 yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
6077 yystackp, yyvalp, P, tokens, index);
6078 yychar = yychar_current;
6079 yylval = yylval_current;
6080 }
6081 return yyflag;
6082 }
6083
6084 #if YYDEBUG
6085 static void
6086 yyreportTree (yySemanticOption* yyx, int yyindent)
6087 {
6088 int yynrhs = yyrhsLength (yyx->yyrule);
6089 int yyi;
6090 yyGLRState* yys;
6091 yyGLRState* yystates[1 + YYMAXRHS];
6092 yyGLRState yyleftmost_state;
6093
6094 for (yyi = yynrhs, yys = yyx->yystate; 0 < yyi; yyi -= 1, yys = yys->yypred)
6095 yystates[yyi] = yys;
6096 if (yys == YY_NULLPTR)
6097 {
6098 yyleftmost_state.yyposn = 0;
6099 yystates[0] = &yyleftmost_state;
6100 }
6101 else
6102 yystates[0] = yys;
6103
6104 if (yyx->yystate->yyposn < yys->yyposn + 1)
6105 YYFPRINTF (stderr, "%*s%s -> <Rule %d, empty>\n",
6106 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
6107 yyx->yyrule - 1);
6108 else
6109 YYFPRINTF (stderr, "%*s%s -> <Rule %d, tokens %lu .. %lu>\n",
6110 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
6111 yyx->yyrule - 1, (unsigned long int) (yys->yyposn + 1),
6112 (unsigned long int) yyx->yystate->yyposn);
6113 for (yyi = 1; yyi <= yynrhs; yyi += 1)
6114 {
6115 if (yystates[yyi]->yyresolved)
6116 {
6117 if (yystates[yyi-1]->yyposn+1 > yystates[yyi]->yyposn)
6118 YYFPRINTF (stderr, "%*s%s <empty>\n", yyindent+2, "",
6119 yytokenName (yystos[yystates[yyi]->yylrState]));
6120 else
6121 YYFPRINTF (stderr, "%*s%s <tokens %lu .. %lu>\n", yyindent+2, "",
6122 yytokenName (yystos[yystates[yyi]->yylrState]),
6123 (unsigned long int) (yystates[yyi-1]->yyposn + 1),
6124 (unsigned long int) yystates[yyi]->yyposn);
6125 }
6126 else
6127 yyreportTree (yystates[yyi]->yysemantics.yyfirstVal, yyindent+2);
6128 }
6129 }
6130 #endif
6131
6132 static YYRESULTTAG
6133 yyreportAmbiguity (yySemanticOption* yyx0,
6134 yySemanticOption* yyx1, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6135 {
6136 YYUSE (yyx0);
6137 YYUSE (yyx1);
6138
6139 #if YYDEBUG
6140 YYFPRINTF (stderr, "Ambiguity detected.\n");
6141 YYFPRINTF (stderr, "Option 1,\n");
6142 yyreportTree (yyx0, 2);
6143 YYFPRINTF (stderr, "\nOption 2,\n");
6144 yyreportTree (yyx1, 2);
6145 YYFPRINTF (stderr, "\n");
6146 #endif
6147
6148 yyerror (P, tokens, index, YY_("syntax is ambiguous"));
6149 return yyabort;
6150 }
6151
6152 /** Resolve the ambiguity represented in state YYS in *YYSTACKP,
6153 * perform the indicated actions, and set the semantic value of YYS.
6154 * If result != yyok, the chain of semantic options in YYS has been
6155 * cleared instead or it has been left unmodified except that
6156 * redundant options may have been removed. Regardless of whether
6157 * result = yyok, YYS has been left with consistent data so that
6158 * yydestroyGLRState can be invoked if necessary. */
6159 static YYRESULTTAG
6160 yyresolveValue (yyGLRState* yys, yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6161 {
6162 yySemanticOption* yyoptionList = yys->yysemantics.yyfirstVal;
6163 yySemanticOption* yybest = yyoptionList;
6164 yySemanticOption** yypp;
6165 yybool yymerge = yyfalse;
6166 YYSTYPE yysval;
6167 YYRESULTTAG yyflag;
6168
6169 for (yypp = &yyoptionList->yynext; *yypp != YY_NULLPTR; )
6170 {
6171 yySemanticOption* yyp = *yypp;
6172
6173 if (yyidenticalOptions (yybest, yyp))
6174 {
6175 yymergeOptionSets (yybest, yyp);
6176 *yypp = yyp->yynext;
6177 }
6178 else
6179 {
6180 switch (yypreference (yybest, yyp))
6181 {
6182 case 0:
6183 return yyreportAmbiguity (yybest, yyp, P, tokens, index);
6184 break;
6185 case 1:
6186 yymerge = yytrue;
6187 break;
6188 case 2:
6189 break;
6190 case 3:
6191 yybest = yyp;
6192 yymerge = yyfalse;
6193 break;
6194 default:
6195 /* This cannot happen so it is not worth a YYASSERT (yyfalse),
6196 but some compilers complain if the default case is
6197 omitted. */
6198 break;
6199 }
6200 yypp = &yyp->yynext;
6201 }
6202 }
6203
6204 if (yymerge)
6205 {
6206 yySemanticOption* yyp;
6207 int yyprec = yydprec[yybest->yyrule];
6208 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
6209 if (yyflag == yyok)
6210 for (yyp = yybest->yynext; yyp != YY_NULLPTR; yyp = yyp->yynext)
6211 {
6212 if (yyprec == yydprec[yyp->yyrule])
6213 {
6214 YYSTYPE yysval_other;
6215 yyflag = yyresolveAction (yyp, yystackp, &yysval_other, P, tokens, index);
6216 if (yyflag != yyok)
6217 {
6218 yydestruct ("Cleanup: discarding incompletely merged value for",
6219 yystos[yys->yylrState],
6220 &yysval, P, tokens, index);
6221 break;
6222 }
6223 yyuserMerge (yymerger[yyp->yyrule], &yysval, &yysval_other);
6224 }
6225 }
6226 }
6227 else
6228 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
6229
6230 if (yyflag == yyok)
6231 {
6232 yys->yyresolved = yytrue;
6233 yys->yysemantics.yysval = yysval;
6234 }
6235 else
6236 yys->yysemantics.yyfirstVal = YY_NULLPTR;
6237 return yyflag;
6238 }
6239
6240 static YYRESULTTAG
6241 yyresolveStack (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6242 {
6243 if (yystackp->yysplitPoint != YY_NULLPTR)
6244 {
6245 yyGLRState* yys;
6246 int yyn;
6247
6248 for (yyn = 0, yys = yystackp->yytops.yystates[0];
6249 yys != yystackp->yysplitPoint;
6250 yys = yys->yypred, yyn += 1)
6251 continue;
6252 YYCHK (yyresolveStates (yystackp->yytops.yystates[0], yyn, yystackp
6253 , P, tokens, index));
6254 }
6255 return yyok;
6256 }
6257
6258 static void
6259 yycompressStack (yyGLRStack* yystackp)
6260 {
6261 yyGLRState* yyp, *yyq, *yyr;
6262
6263 if (yystackp->yytops.yysize != 1 || yystackp->yysplitPoint == YY_NULLPTR)
6264 return;
6265
6266 for (yyp = yystackp->yytops.yystates[0], yyq = yyp->yypred, yyr = YY_NULLPTR;
6267 yyp != yystackp->yysplitPoint;
6268 yyr = yyp, yyp = yyq, yyq = yyp->yypred)
6269 yyp->yypred = yyr;
6270
6271 yystackp->yyspaceLeft += yystackp->yynextFree - yystackp->yyitems;
6272 yystackp->yynextFree = ((yyGLRStackItem*) yystackp->yysplitPoint) + 1;
6273 yystackp->yyspaceLeft -= yystackp->yynextFree - yystackp->yyitems;
6274 yystackp->yysplitPoint = YY_NULLPTR;
6275 yystackp->yylastDeleted = YY_NULLPTR;
6276
6277 while (yyr != YY_NULLPTR)
6278 {
6279 yystackp->yynextFree->yystate = *yyr;
6280 yyr = yyr->yypred;
6281 yystackp->yynextFree->yystate.yypred = &yystackp->yynextFree[-1].yystate;
6282 yystackp->yytops.yystates[0] = &yystackp->yynextFree->yystate;
6283 yystackp->yynextFree += 1;
6284 yystackp->yyspaceLeft -= 1;
6285 }
6286 }
6287
6288 static YYRESULTTAG
6289 yyprocessOneStack (yyGLRStack* yystackp, size_t yyk,
6290 size_t yyposn, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6291 {
6292 while (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
6293 {
6294 yyStateNum yystate = yystackp->yytops.yystates[yyk]->yylrState;
6295 YYDPRINTF ((stderr, "Stack %lu Entering state %d\n",
6296 (unsigned long int) yyk, yystate));
6297
6298 YYASSERT (yystate != YYFINAL);
6299
6300 if (yyisDefaultedState (yystate))
6301 {
6302 YYRESULTTAG yyflag;
6303 yyRuleNum yyrule = yydefaultAction (yystate);
6304 if (yyrule == 0)
6305 {
6306 YYDPRINTF ((stderr, "Stack %lu dies.\n",
6307 (unsigned long int) yyk));
6308 yymarkStackDeleted (yystackp, yyk);
6309 return yyok;
6310 }
6311 yyflag = yyglrReduce (yystackp, yyk, yyrule, yyimmediate[yyrule], P, tokens, index);
6312 if (yyflag == yyerr)
6313 {
6314 YYDPRINTF ((stderr,
6315 "Stack %lu dies "
6316 "(predicate failure or explicit user error).\n",
6317 (unsigned long int) yyk));
6318 yymarkStackDeleted (yystackp, yyk);
6319 return yyok;
6320 }
6321 if (yyflag != yyok)
6322 return yyflag;
6323 }
6324 else
6325 {
6326 yySymbol yytoken;
6327 int yyaction;
6328 const short int* yyconflicts;
6329
6330 yystackp->yytops.yylookaheadNeeds[yyk] = yytrue;
6331 if (yychar == YYEMPTY)
6332 {
6333 YYDPRINTF ((stderr, "Reading a token: "));
6334 yychar = yylex (&yylval, P, tokens, index);
6335 }
6336
6337 if (yychar <= YYEOF)
6338 {
6339 yychar = yytoken = YYEOF;
6340 YYDPRINTF ((stderr, "Now at end of input.\n"));
6341 }
6342 else
6343 {
6344 yytoken = YYTRANSLATE (yychar);
6345 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
6346 }
6347
6348 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
6349
6350 while (*yyconflicts != 0)
6351 {
6352 YYRESULTTAG yyflag;
6353 size_t yynewStack = yysplitStack (yystackp, yyk);
6354 YYDPRINTF ((stderr, "Splitting off stack %lu from %lu.\n",
6355 (unsigned long int) yynewStack,
6356 (unsigned long int) yyk));
6357 yyflag = yyglrReduce (yystackp, yynewStack,
6358 *yyconflicts,
6359 yyimmediate[*yyconflicts], P, tokens, index);
6360 if (yyflag == yyok)
6361 YYCHK (yyprocessOneStack (yystackp, yynewStack,
6362 yyposn, P, tokens, index));
6363 else if (yyflag == yyerr)
6364 {
6365 YYDPRINTF ((stderr, "Stack %lu dies.\n",
6366 (unsigned long int) yynewStack));
6367 yymarkStackDeleted (yystackp, yynewStack);
6368 }
6369 else
6370 return yyflag;
6371 yyconflicts += 1;
6372 }
6373
6374 if (yyisShiftAction (yyaction))
6375 break;
6376 else if (yyisErrorAction (yyaction))
6377 {
6378 YYDPRINTF ((stderr, "Stack %lu dies.\n",
6379 (unsigned long int) yyk));
6380 yymarkStackDeleted (yystackp, yyk);
6381 break;
6382 }
6383 else
6384 {
6385 YYRESULTTAG yyflag = yyglrReduce (yystackp, yyk, -yyaction,
6386 yyimmediate[-yyaction], P, tokens, index);
6387 if (yyflag == yyerr)
6388 {
6389 YYDPRINTF ((stderr,
6390 "Stack %lu dies "
6391 "(predicate failure or explicit user error).\n",
6392 (unsigned long int) yyk));
6393 yymarkStackDeleted (yystackp, yyk);
6394 break;
6395 }
6396 else if (yyflag != yyok)
6397 return yyflag;
6398 }
6399 }
6400 }
6401 return yyok;
6402 }
6403
6404 static void
6405 yyreportSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6406 {
6407 if (yystackp->yyerrState != 0)
6408 return;
6409 #if ! YYERROR_VERBOSE
6410 yyerror (P, tokens, index, YY_("syntax error"));
6411 #else
6412 {
6413 yySymbol yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
6414 size_t yysize0 = yytnamerr (YY_NULLPTR, yytokenName (yytoken));
6415 size_t yysize = yysize0;
6416 yybool yysize_overflow = yyfalse;
6417 char* yymsg = YY_NULLPTR;
6418 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
6419 /* Internationalized format string. */
6420 const char *yyformat = YY_NULLPTR;
6421 /* Arguments of yyformat. */
6422 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
6423 /* Number of reported tokens (one for the "unexpected", one per
6424 "expected"). */
6425 int yycount = 0;
6426
6427 /* There are many possibilities here to consider:
6428 - If this state is a consistent state with a default action, then
6429 the only way this function was invoked is if the default action
6430 is an error action. In that case, don't check for expected
6431 tokens because there are none.
6432 - The only way there can be no lookahead present (in yychar) is if
6433 this state is a consistent state with a default action. Thus,
6434 detecting the absence of a lookahead is sufficient to determine
6435 that there is no unexpected or expected token to report. In that
6436 case, just report a simple "syntax error".
6437 - Don't assume there isn't a lookahead just because this state is a
6438 consistent state with a default action. There might have been a
6439 previous inconsistent state, consistent state with a non-default
6440 action, or user semantic action that manipulated yychar.
6441 - Of course, the expected token list depends on states to have
6442 correct lookahead information, and it depends on the parser not
6443 to perform extra reductions after fetching a lookahead from the
6444 scanner and before detecting a syntax error. Thus, state merging
6445 (from LALR or IELR) and default reductions corrupt the expected
6446 token list. However, the list is correct for canonical LR with
6447 one exception: it will still contain any token that will not be
6448 accepted due to an error action in a later state.
6449 */
6450 if (yytoken != YYEMPTY)
6451 {
6452 int yyn = yypact[yystackp->yytops.yystates[0]->yylrState];
6453 yyarg[yycount++] = yytokenName (yytoken);
6454 if (!yypact_value_is_default (yyn))
6455 {
6456 /* Start YYX at -YYN if negative to avoid negative indexes in
6457 YYCHECK. In other words, skip the first -YYN actions for this
6458 state because they are default actions. */
6459 int yyxbegin = yyn < 0 ? -yyn : 0;
6460 /* Stay within bounds of both yycheck and yytname. */
6461 int yychecklim = YYLAST - yyn + 1;
6462 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
6463 int yyx;
6464 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
6465 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
6466 && !yytable_value_is_error (yytable[yyx + yyn]))
6467 {
6468 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
6469 {
6470 yycount = 1;
6471 yysize = yysize0;
6472 break;
6473 }
6474 yyarg[yycount++] = yytokenName (yyx);
6475 {
6476 size_t yysz = yysize + yytnamerr (YY_NULLPTR, yytokenName (yyx));
6477 yysize_overflow |= yysz < yysize;
6478 yysize = yysz;
6479 }
6480 }
6481 }
6482 }
6483
6484 switch (yycount)
6485 {
6486 #define YYCASE_(N, S) \
6487 case N: \
6488 yyformat = S; \
6489 break
6490 YYCASE_(0, YY_("syntax error"));
6491 YYCASE_(1, YY_("syntax error, unexpected %s"));
6492 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
6493 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
6494 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
6495 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
6496 #undef YYCASE_
6497 }
6498
6499 {
6500 size_t yysz = yysize + strlen (yyformat);
6501 yysize_overflow |= yysz < yysize;
6502 yysize = yysz;
6503 }
6504
6505 if (!yysize_overflow)
6506 yymsg = (char *) YYMALLOC (yysize);
6507
6508 if (yymsg)
6509 {
6510 char *yyp = yymsg;
6511 int yyi = 0;
6512 while ((*yyp = *yyformat))
6513 {
6514 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
6515 {
6516 yyp += yytnamerr (yyp, yyarg[yyi++]);
6517 yyformat += 2;
6518 }
6519 else
6520 {
6521 yyp++;
6522 yyformat++;
6523 }
6524 }
6525 yyerror (P, tokens, index, yymsg);
6526 YYFREE (yymsg);
6527 }
6528 else
6529 {
6530 yyerror (P, tokens, index, YY_("syntax error"));
6531 yyMemoryExhausted (yystackp);
6532 }
6533 }
6534 #endif /* YYERROR_VERBOSE */
6535 yynerrs += 1;
6536 }
6537
6538 /* Recover from a syntax error on *YYSTACKP, assuming that *YYSTACKP->YYTOKENP,
6539 yylval, and yylloc are the syntactic category, semantic value, and location
6540 of the lookahead. */
6541 static void
6542 yyrecoverSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6543 {
6544 size_t yyk;
6545 int yyj;
6546
6547 if (yystackp->yyerrState == 3)
6548 /* We just shifted the error token and (perhaps) took some
6549 reductions. Skip tokens until we can proceed. */
6550 while (yytrue)
6551 {
6552 yySymbol yytoken;
6553 if (yychar == YYEOF)
6554 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
6555 if (yychar != YYEMPTY)
6556 {
6557 yytoken = YYTRANSLATE (yychar);
6558 yydestruct ("Error: discarding",
6559 yytoken, &yylval, P, tokens, index);
6560 }
6561 YYDPRINTF ((stderr, "Reading a token: "));
6562 yychar = yylex (&yylval, P, tokens, index);
6563 if (yychar <= YYEOF)
6564 {
6565 yychar = yytoken = YYEOF;
6566 YYDPRINTF ((stderr, "Now at end of input.\n"));
6567 }
6568 else
6569 {
6570 yytoken = YYTRANSLATE (yychar);
6571 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
6572 }
6573 yyj = yypact[yystackp->yytops.yystates[0]->yylrState];
6574 if (yypact_value_is_default (yyj))
6575 return;
6576 yyj += yytoken;
6577 if (yyj < 0 || YYLAST < yyj || yycheck[yyj] != yytoken)
6578 {
6579 if (yydefact[yystackp->yytops.yystates[0]->yylrState] != 0)
6580 return;
6581 }
6582 else if (! yytable_value_is_error (yytable[yyj]))
6583 return;
6584 }
6585
6586 /* Reduce to one stack. */
6587 for (yyk = 0; yyk < yystackp->yytops.yysize; yyk += 1)
6588 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
6589 break;
6590 if (yyk >= yystackp->yytops.yysize)
6591 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
6592 for (yyk += 1; yyk < yystackp->yytops.yysize; yyk += 1)
6593 yymarkStackDeleted (yystackp, yyk);
6594 yyremoveDeletes (yystackp);
6595 yycompressStack (yystackp);
6596
6597 /* Now pop stack until we find a state that shifts the error token. */
6598 yystackp->yyerrState = 3;
6599 while (yystackp->yytops.yystates[0] != YY_NULLPTR)
6600 {
6601 yyGLRState *yys = yystackp->yytops.yystates[0];
6602 yyj = yypact[yys->yylrState];
6603 if (! yypact_value_is_default (yyj))
6604 {
6605 yyj += YYTERROR;
6606 if (0 <= yyj && yyj <= YYLAST && yycheck[yyj] == YYTERROR
6607 && yyisShiftAction (yytable[yyj]))
6608 {
6609 /* Shift the error token. */
6610 YY_SYMBOL_PRINT ("Shifting", yystos[yytable[yyj]],
6611 &yylval, &yyerrloc);
6612 yyglrShift (yystackp, 0, yytable[yyj],
6613 yys->yyposn, &yylval);
6614 yys = yystackp->yytops.yystates[0];
6615 break;
6616 }
6617 }
6618 if (yys->yypred != YY_NULLPTR)
6619 yydestroyGLRState ("Error: popping", yys, P, tokens, index);
6620 yystackp->yytops.yystates[0] = yys->yypred;
6621 yystackp->yynextFree -= 1;
6622 yystackp->yyspaceLeft += 1;
6623 }
6624 if (yystackp->yytops.yystates[0] == YY_NULLPTR)
6625 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
6626 }
6627
6628 #define YYCHK1(YYE) \
6629 do { \
6630 switch (YYE) { \
6631 case yyok: \
6632 break; \
6633 case yyabort: \
6634 goto yyabortlab; \
6635 case yyaccept: \
6636 goto yyacceptlab; \
6637 case yyerr: \
6638 goto yyuser_error; \
6639 default: \
6640 goto yybuglab; \
6641 } \
6642 } while (0)
6643
6644 /*----------.
6645 | yyparse. |
6646 `----------*/
6647
6648 int
6649 yyparse (struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6650 {
6651 int yyresult;
6652 yyGLRStack yystack;
6653 yyGLRStack* const yystackp = &yystack;
6654 size_t yyposn;
6655
6656 YYDPRINTF ((stderr, "Starting parse\n"));
6657
6658 yychar = YYEMPTY;
6659 yylval = yyval_default;
6660
6661 /* User initialization code. */
6662 #line 98 "src/parser_proc_grammar.y" /* glr.c:2270 */
6663 {
6664 }
6665
6666 #line 6667 "src/parser_proc.c" /* glr.c:2270 */
6667
6668 if (! yyinitGLRStack (yystackp, YYINITDEPTH))
6669 goto yyexhaustedlab;
6670 switch (YYSETJMP (yystack.yyexception_buffer))
6671 {
6672 case 0: break;
6673 case 1: goto yyabortlab;
6674 case 2: goto yyexhaustedlab;
6675 default: goto yybuglab;
6676 }
6677 yyglrShift (&yystack, 0, 0, 0, &yylval);
6678 yyposn = 0;
6679
6680 while (yytrue)
6681 {
6682 /* For efficiency, we have two loops, the first of which is
6683 specialized to deterministic operation (single stack, no
6684 potential ambiguity). */
6685 /* Standard mode */
6686 while (yytrue)
6687 {
6688 yyRuleNum yyrule;
6689 int yyaction;
6690 const short int* yyconflicts;
6691
6692 yyStateNum yystate = yystack.yytops.yystates[0]->yylrState;
6693 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
6694 if (yystate == YYFINAL)
6695 goto yyacceptlab;
6696 if (yyisDefaultedState (yystate))
6697 {
6698 yyrule = yydefaultAction (yystate);
6699 if (yyrule == 0)
6700 {
6701
6702 yyreportSyntaxError (&yystack, P, tokens, index);
6703 goto yyuser_error;
6704 }
6705 YYCHK1 (yyglrReduce (&yystack, 0, yyrule, yytrue, P, tokens, index));
6706 }
6707 else
6708 {
6709 yySymbol yytoken;
6710 if (yychar == YYEMPTY)
6711 {
6712 YYDPRINTF ((stderr, "Reading a token: "));
6713 yychar = yylex (&yylval, P, tokens, index);
6714 }
6715
6716 if (yychar <= YYEOF)
6717 {
6718 yychar = yytoken = YYEOF;
6719 YYDPRINTF ((stderr, "Now at end of input.\n"));
6720 }
6721 else
6722 {
6723 yytoken = YYTRANSLATE (yychar);
6724 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
6725 }
6726
6727 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
6728 if (*yyconflicts != 0)
6729 break;
6730 if (yyisShiftAction (yyaction))
6731 {
6732 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
6733 yychar = YYEMPTY;
6734 yyposn += 1;
6735 yyglrShift (&yystack, 0, yyaction, yyposn, &yylval);
6736 if (0 < yystack.yyerrState)
6737 yystack.yyerrState -= 1;
6738 }
6739 else if (yyisErrorAction (yyaction))
6740 {
6741
6742 yyreportSyntaxError (&yystack, P, tokens, index);
6743 goto yyuser_error;
6744 }
6745 else
6746 YYCHK1 (yyglrReduce (&yystack, 0, -yyaction, yytrue, P, tokens, index));
6747 }
6748 }
6749
6750 while (yytrue)
6751 {
6752 yySymbol yytoken_to_shift;
6753 size_t yys;
6754
6755 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
6756 yystackp->yytops.yylookaheadNeeds[yys] = yychar != YYEMPTY;
6757
6758 /* yyprocessOneStack returns one of three things:
6759
6760 - An error flag. If the caller is yyprocessOneStack, it
6761 immediately returns as well. When the caller is finally
6762 yyparse, it jumps to an error label via YYCHK1.
6763
6764 - yyok, but yyprocessOneStack has invoked yymarkStackDeleted
6765 (&yystack, yys), which sets the top state of yys to NULL. Thus,
6766 yyparse's following invocation of yyremoveDeletes will remove
6767 the stack.
6768
6769 - yyok, when ready to shift a token.
6770
6771 Except in the first case, yyparse will invoke yyremoveDeletes and
6772 then shift the next token onto all remaining stacks. This
6773 synchronization of the shift (that is, after all preceding
6774 reductions on all stacks) helps prevent double destructor calls
6775 on yylval in the event of memory exhaustion. */
6776
6777 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
6778 YYCHK1 (yyprocessOneStack (&yystack, yys, yyposn, P, tokens, index));
6779 yyremoveDeletes (&yystack);
6780 if (yystack.yytops.yysize == 0)
6781 {
6782 yyundeleteLastStack (&yystack);
6783 if (yystack.yytops.yysize == 0)
6784 yyFail (&yystack, P, tokens, index, YY_("syntax error"));
6785 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
6786 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
6787
6788 yyreportSyntaxError (&yystack, P, tokens, index);
6789 goto yyuser_error;
6790 }
6791
6792 /* If any yyglrShift call fails, it will fail after shifting. Thus,
6793 a copy of yylval will already be on stack 0 in the event of a
6794 failure in the following loop. Thus, yychar is set to YYEMPTY
6795 before the loop to make sure the user destructor for yylval isn't
6796 called twice. */
6797 yytoken_to_shift = YYTRANSLATE (yychar);
6798 yychar = YYEMPTY;
6799 yyposn += 1;
6800 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
6801 {
6802 int yyaction;
6803 const short int* yyconflicts;
6804 yyStateNum yystate = yystack.yytops.yystates[yys]->yylrState;
6805 yygetLRActions (yystate, yytoken_to_shift, &yyaction,
6806 &yyconflicts);
6807 /* Note that yyconflicts were handled by yyprocessOneStack. */
6808 YYDPRINTF ((stderr, "On stack %lu, ", (unsigned long int) yys));
6809 YY_SYMBOL_PRINT ("shifting", yytoken_to_shift, &yylval, &yylloc);
6810 yyglrShift (&yystack, yys, yyaction, yyposn,
6811 &yylval);
6812 YYDPRINTF ((stderr, "Stack %lu now in state #%d\n",
6813 (unsigned long int) yys,
6814 yystack.yytops.yystates[yys]->yylrState));
6815 }
6816
6817 if (yystack.yytops.yysize == 1)
6818 {
6819 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
6820 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
6821 yycompressStack (&yystack);
6822 break;
6823 }
6824 }
6825 continue;
6826 yyuser_error:
6827 yyrecoverSyntaxError (&yystack, P, tokens, index);
6828 yyposn = yystack.yytops.yystates[0]->yyposn;
6829 }
6830
6831 yyacceptlab:
6832 yyresult = 0;
6833 goto yyreturn;
6834
6835 yybuglab:
6836 YYASSERT (yyfalse);
6837 goto yyabortlab;
6838
6839 yyabortlab:
6840 yyresult = 1;
6841 goto yyreturn;
6842
6843 yyexhaustedlab:
6844 yyerror (P, tokens, index, YY_("memory exhausted"));
6845 yyresult = 2;
6846 goto yyreturn;
6847
6848 yyreturn:
6849 if (yychar != YYEMPTY)
6850 yydestruct ("Cleanup: discarding lookahead",
6851 YYTRANSLATE (yychar), &yylval, P, tokens, index);
6852
6853 /* If the stack is well-formed, pop the stack until it is empty,
6854 destroying its entries as we go. But free the stack regardless
6855 of whether it is well-formed. */
6856 if (yystack.yyitems)
6857 {
6858 yyGLRState** yystates = yystack.yytops.yystates;
6859 if (yystates)
6860 {
6861 size_t yysize = yystack.yytops.yysize;
6862 size_t yyk;
6863 for (yyk = 0; yyk < yysize; yyk += 1)
6864 if (yystates[yyk])
6865 {
6866 while (yystates[yyk])
6867 {
6868 yyGLRState *yys = yystates[yyk];
6869 if (yys->yypred != YY_NULLPTR)
6870 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
6871 yystates[yyk] = yys->yypred;
6872 yystack.yynextFree -= 1;
6873 yystack.yyspaceLeft += 1;
6874 }
6875 break;
6876 }
6877 }
6878 yyfreeGLRStack (&yystack);
6879 }
6880
6881 return yyresult;
6882 }
6883
6884 /* DEBUGGING ONLY */
6885 #if YYDEBUG
6886 static void
6887 yy_yypstack (yyGLRState* yys)
6888 {
6889 if (yys->yypred)
6890 {
6891 yy_yypstack (yys->yypred);
6892 YYFPRINTF (stderr, " -> ");
6893 }
6894 YYFPRINTF (stderr, "%d@%lu", yys->yylrState,
6895 (unsigned long int) yys->yyposn);
6896 }
6897
6898 static void
6899 yypstates (yyGLRState* yyst)
6900 {
6901 if (yyst == YY_NULLPTR)
6902 YYFPRINTF (stderr, "<null>");
6903 else
6904 yy_yypstack (yyst);
6905 YYFPRINTF (stderr, "\n");
6906 }
6907
6908 static void
6909 yypstack (yyGLRStack* yystackp, size_t yyk)
6910 {
6911 yypstates (yystackp->yytops.yystates[yyk]);
6912 }
6913
6914 #define YYINDEX(YYX) \
6915 ((YYX) == YY_NULLPTR ? -1 : (yyGLRStackItem*) (YYX) - yystackp->yyitems)
6916
6917
6918 static void
6919 yypdumpstack (yyGLRStack* yystackp)
6920 {
6921 yyGLRStackItem* yyp;
6922 size_t yyi;
6923 for (yyp = yystackp->yyitems; yyp < yystackp->yynextFree; yyp += 1)
6924 {
6925 YYFPRINTF (stderr, "%3lu. ",
6926 (unsigned long int) (yyp - yystackp->yyitems));
6927 if (*(yybool *) yyp)
6928 {
6929 YYASSERT (yyp->yystate.yyisState);
6930 YYASSERT (yyp->yyoption.yyisState);
6931 YYFPRINTF (stderr, "Res: %d, LR State: %d, posn: %lu, pred: %ld",
6932 yyp->yystate.yyresolved, yyp->yystate.yylrState,
6933 (unsigned long int) yyp->yystate.yyposn,
6934 (long int) YYINDEX (yyp->yystate.yypred));
6935 if (! yyp->yystate.yyresolved)
6936 YYFPRINTF (stderr, ", firstVal: %ld",
6937 (long int) YYINDEX (yyp->yystate
6938 .yysemantics.yyfirstVal));
6939 }
6940 else
6941 {
6942 YYASSERT (!yyp->yystate.yyisState);
6943 YYASSERT (!yyp->yyoption.yyisState);
6944 YYFPRINTF (stderr, "Option. rule: %d, state: %ld, next: %ld",
6945 yyp->yyoption.yyrule - 1,
6946 (long int) YYINDEX (yyp->yyoption.yystate),
6947 (long int) YYINDEX (yyp->yyoption.yynext));
6948 }
6949 YYFPRINTF (stderr, "\n");
6950 }
6951 YYFPRINTF (stderr, "Tops:");
6952 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
6953 YYFPRINTF (stderr, "%lu: %ld; ", (unsigned long int) yyi,
6954 (long int) YYINDEX (yystackp->yytops.yystates[yyi]));
6955 YYFPRINTF (stderr, "\n");
6956 }
6957 #endif
6958
6959 #undef yylval
6960 #undef yychar
6961 #undef yynerrs
6962
6963 /* Substitute the variable and function names. */
6964 #define yyparse psi_parser_proc_parse
6965 #define yylex psi_parser_proc_lex
6966 #define yyerror psi_parser_proc_error
6967 #define yylval psi_parser_proc_lval
6968 #define yychar psi_parser_proc_char
6969 #define yydebug psi_parser_proc_debug
6970 #define yynerrs psi_parser_proc_nerrs
6971
6972 #line 1865 "src/parser_proc_grammar.y" /* glr.c:2584 */
6973
6974
6975 /* epilogue */
6976
6977 static int psi_parser_proc_lex(YYSTYPE *lvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6978 {
6979 struct psi_token *token;
6980
6981 if (psi_plist_get(tokens, (*index)++, &token)) {
6982 if (P->flags & PSI_DEBUG) {
6983 psi_token_dump(2, token);
6984 }
6985
6986 *((struct psi_token **)lvalp) = token;
6987 return token->type;
6988 } else {
6989 (*index)--;
6990 PSI_DEBUG_PRINT(P, "EOF(%d)\n", PSI_T_EOF);
6991 }
6992
6993 return PSI_T_EOF;
6994 }
6995
6996 static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char *msg)
6997 {
6998 struct psi_token *T = NULL;
6999 size_t last;
7000
7001 if (*index == 0) {
7002 last = 0;
7003 } else {
7004 last = --(*index);
7005 }
7006
7007 psi_plist_get(tokens, last, &T);
7008 if (T) {
7009 P->error(PSI_DATA(P), T, PSI_WARNING, "PSI %s at col %u", msg, T->col);
7010 } else {
7011 P->error(PSI_DATA(P), NULL, PSI_WARNING, "PSI %s", msg);
7012 }
7013 P->errors++;
7014 }
7015