fix size of array elements
[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 #define PSI_PARSER_PROC_DEBUG 1
104
105 static int psi_parser_proc_lex(YYSTYPE *u, struct psi_parser *P, struct psi_plist *tokens, size_t *index);
106 static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char *msg);
107
108 static inline void psi_parser_proc_add_struct(struct psi_parser *P, struct psi_decl_struct *strct)
109 {
110 assert(strct);
111 if (!P->structs) {
112 P->structs = psi_plist_init((psi_plist_dtor) psi_decl_struct_free);
113 }
114 P->structs = psi_plist_add(P->structs, &strct);
115 }
116 static inline void psi_parser_proc_add_union(struct psi_parser *P, struct psi_decl_union *u)
117 {
118 assert(u);
119 if (!P->unions) {
120 P->unions = psi_plist_init((psi_plist_dtor) psi_decl_union_free);
121 }
122 P->unions = psi_plist_add(P->unions, &u);
123 }
124 static inline void psi_parser_proc_add_enum(struct psi_parser *P, struct psi_decl_enum *e)
125 {
126 assert(e);
127 if (!P->enums) {
128 P->enums = psi_plist_init((psi_plist_dtor) psi_decl_enum_free);
129 }
130 P->enums = psi_plist_add(P->enums, &e);
131 }
132 static inline void psi_parser_proc_add_typedef(struct psi_parser *P, struct psi_decl_arg *def)
133 {
134 assert(def);
135 if (!P->types) {
136 P->types = psi_plist_init((psi_plist_dtor) psi_decl_arg_free);
137 }
138 P->types = psi_plist_add(P->types, &def);
139 }
140 static inline void psi_parser_proc_add_const(struct psi_parser *P, struct psi_const *cnst) {
141 assert(cnst);
142 if (!P->consts) {
143 P->consts = psi_plist_init((psi_plist_dtor) psi_const_free);
144 }
145 P->consts = psi_plist_add(P->consts, &cnst);
146
147 }
148 static inline void psi_parser_proc_add_decl(struct psi_parser *P, struct psi_decl *decl) {
149 assert(decl);
150 if (!P->decls) {
151 P->decls = psi_plist_init((psi_plist_dtor) psi_decl_free);
152 }
153 P->decls = psi_plist_add(P->decls, &decl);
154 }
155 static inline void psi_parser_proc_add_impl(struct psi_parser *P, struct psi_impl *impl) {
156 assert(impl);
157 if (!P->impls) {
158 P->impls = psi_plist_init((psi_plist_dtor) psi_impl_free);
159 }
160 P->impls = psi_plist_add(P->impls, &impl);
161 }
162
163 /* end code */
164
165 #line 166 "src/parser_proc.c" /* glr.c:264 */
166
167 #include <stdio.h>
168 #include <stdlib.h>
169 #include <string.h>
170
171 #ifndef YY_
172 # if defined YYENABLE_NLS && YYENABLE_NLS
173 # if ENABLE_NLS
174 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
175 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
176 # endif
177 # endif
178 # ifndef YY_
179 # define YY_(Msgid) Msgid
180 # endif
181 #endif
182
183 #ifndef YYFREE
184 # define YYFREE free
185 #endif
186 #ifndef YYMALLOC
187 # define YYMALLOC malloc
188 #endif
189 #ifndef YYREALLOC
190 # define YYREALLOC realloc
191 #endif
192
193 #define YYSIZEMAX ((size_t) -1)
194
195 #ifdef __cplusplus
196 typedef bool yybool;
197 #else
198 typedef unsigned char yybool;
199 #endif
200 #define yytrue 1
201 #define yyfalse 0
202
203 #ifndef YYSETJMP
204 # include <setjmp.h>
205 # define YYJMP_BUF jmp_buf
206 # define YYSETJMP(Env) setjmp (Env)
207 /* Pacify clang. */
208 # define YYLONGJMP(Env, Val) (longjmp (Env, Val), YYASSERT (0))
209 #endif
210
211 #ifndef YY_ATTRIBUTE
212 # if (defined __GNUC__ \
213 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
214 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
215 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
216 # else
217 # define YY_ATTRIBUTE(Spec) /* empty */
218 # endif
219 #endif
220
221 #ifndef YY_ATTRIBUTE_PURE
222 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
223 #endif
224
225 #ifndef YY_ATTRIBUTE_UNUSED
226 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
227 #endif
228
229 #if !defined _Noreturn \
230 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
231 # if defined _MSC_VER && 1200 <= _MSC_VER
232 # define _Noreturn __declspec (noreturn)
233 # else
234 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
235 # endif
236 #endif
237
238 /* Suppress unused-variable warnings by "using" E. */
239 #if ! defined lint || defined __GNUC__
240 # define YYUSE(E) ((void) (E))
241 #else
242 # define YYUSE(E) /* empty */
243 #endif
244
245 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
246 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
247 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
248 _Pragma ("GCC diagnostic push") \
249 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
250 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
251 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
252 _Pragma ("GCC diagnostic pop")
253 #else
254 # define YY_INITIAL_VALUE(Value) Value
255 #endif
256 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
257 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
258 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
259 #endif
260 #ifndef YY_INITIAL_VALUE
261 # define YY_INITIAL_VALUE(Value) /* Nothing. */
262 #endif
263
264
265 #ifndef YYASSERT
266 # define YYASSERT(Condition) ((void) ((Condition) || (abort (), 0)))
267 #endif
268
269 /* YYFINAL -- State number of the termination state. */
270 #define YYFINAL 178
271 /* YYLAST -- Last index in YYTABLE. */
272 #define YYLAST 4188
273
274 /* YYNTOKENS -- Number of terminals. */
275 #define YYNTOKENS 135
276 /* YYNNTS -- Number of nonterminals. */
277 #define YYNNTS 134
278 /* YYNRULES -- Number of rules. */
279 #define YYNRULES 641
280 /* YYNRULES -- Number of states. */
281 #define YYNSTATES 893
282 /* YYMAXRHS -- Maximum number of symbols on right-hand side of rule. */
283 #define YYMAXRHS 13
284 /* YYMAXLEFT -- Maximum number of symbols to the left of a handle
285 accessed by $0, $-1, etc., in any rule. */
286 #define YYMAXLEFT 0
287
288 /* YYTRANSLATE(X) -- Bison symbol number corresponding to X. */
289 #define YYUNDEFTOK 2
290 #define YYMAXUTOK 389
291
292 #define YYTRANSLATE(YYX) \
293 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
294
295 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
296 static const unsigned char yytranslate[] =
297 {
298 0, 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, 2, 2, 2, 2,
323 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
324 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
325 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
326 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
327 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
328 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
329 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
330 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
331 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
332 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
333 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
334 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
335 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
336 125, 126, 127, 128, 129, 130, 131, 132, 133, 134
337 };
338
339 #if YYDEBUG
340 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
341 static const unsigned short int yyrline[] =
342 {
343 0, 380, 380, 380, 380, 380, 380, 380, 380, 380,
344 380, 380, 380, 380, 380, 380, 380, 380, 380, 380,
345 381, 381, 381, 381, 382, 382, 382, 382, 382, 382,
346 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
347 382, 382, 383, 383, 383, 383, 383, 383, 383, 383,
348 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
349 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
350 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
351 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
352 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
353 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
354 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
355 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
356 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
357 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
358 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
359 383, 383, 383, 383, 383, 383, 383, 384, 384, 384,
360 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
361 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
362 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
363 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
364 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
365 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
366 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
367 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
368 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
369 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
370 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
371 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
372 388, 389, 392, 393, 396, 397, 398, 399, 405, 413,
373 416, 419, 420, 421, 424, 427, 430, 433, 439, 445,
374 448, 454, 477, 481, 485, 490, 494, 498, 502, 509,
375 510, 514, 515, 519, 520, 521, 525, 526, 530, 531,
376 535, 536, 537, 541, 542, 546, 547, 548, 549, 550,
377 551, 552, 556, 561, 569, 572, 575, 576, 582, 587,
378 595, 598, 602, 606, 613, 617, 621, 625, 630, 640,
379 650, 655, 660, 664, 670, 679, 682, 686, 690, 696,
380 703, 709, 710, 711, 712, 716, 719, 750, 757, 758,
381 759, 760, 764, 767, 776, 782, 785, 791, 794, 800,
382 801, 809, 820, 829, 838, 846, 847, 851, 861, 870,
383 882, 885, 888, 892, 896, 900, 905, 910, 918, 919,
384 920, 923, 929, 932, 935, 941, 942, 943, 944, 945,
385 946, 947, 948, 952, 953, 957, 960, 963, 969, 972,
386 975, 983, 995, 998, 1001, 1008, 1011, 1021, 1024, 1027,
387 1030, 1031, 1032, 1036, 1039, 1042, 1053, 1056, 1062, 1063,
388 1067, 1068, 1072, 1076, 1082, 1083, 1089, 1092, 1098, 1101,
389 1104, 1110, 1114, 1115, 1119, 1120, 1124, 1125, 1132, 1133,
390 1137, 1144, 1155, 1162, 1173, 1180, 1191, 1202, 1216, 1217,
391 1229, 1232, 1235, 1238, 1245, 1248, 1254, 1263, 1275, 1283,
392 1286, 1296, 1309, 1314, 1331, 1341, 1351, 1354, 1358, 1364,
393 1378, 1395, 1398, 1404, 1411, 1421, 1428, 1431, 1437, 1442,
394 1450, 1454, 1458, 1462, 1466, 1470, 1477, 1481, 1485, 1489,
395 1493, 1499, 1503, 1510, 1513, 1524, 1528, 1532, 1538, 1551,
396 1564, 1577, 1580, 1587, 1590, 1593, 1596, 1602, 1606, 1613,
397 1616, 1619, 1629, 1632, 1638, 1639, 1645, 1648, 1654, 1655,
398 1665, 1668, 1675, 1680, 1685, 1695, 1698, 1704, 1707, 1713,
399 1720, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735,
400 1739, 1742, 1748, 1751, 1754, 1757, 1760, 1766, 1770, 1778,
401 1779, 1783, 1790, 1793, 1796, 1800, 1803, 1806, 1812, 1816,
402 1824, 1831, 1839, 1847, 1848, 1849, 1850, 1851, 1852, 1853,
403 1854, 1855, 1856, 1860, 1863, 1869, 1872, 1878, 1879, 1883,
404 1886, 1892, 1895, 1901, 1908, 1915, 1918, 1921, 1928, 1933,
405 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1952, 1955,
406 1961, 1964, 1970, 1977, 1978, 1982, 1989, 1992, 1998, 2006,
407 2009, 2015
408 };
409 #endif
410
411 #if YYDEBUG || YYERROR_VERBOSE || 1
412 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
413 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
414 static const char *const yytname[] =
415 {
416 "\"end of file\"", "error", "$undefined", "BOOL", "CHAR", "SHORT",
417 "INT", "SIGNED", "UNSIGNED", "LONG", "FLOAT", "DOUBLE", "STRING",
418 "MIXED", "ARRAY", "OBJECT", "CALLABLE", "VOID", "ZVAL", "INT8", "UINT8",
419 "INT16", "UINT16", "INT32", "UINT32", "INT64", "UINT64", "NULL", "TRUE",
420 "FALSE", "NAME", "NSNAME", "DOLLAR_NAME", "NUMBER", "QUOTED_STRING",
421 "QUOTED_CHAR", "SIZEOF", "VOLATILE", "\"end of line\"", "\";\"", "\"(\"",
422 "\")\"", "\",\"", "\":\"", "\"{\"", "\"}\"", "\"[\"", "\"]\"", "\"=\"",
423 "\"#\"", "\"|\"", "\"^\"", "\"&\"", "\"<<\"", "\">>\"", "\"+\"", "\"-\"",
424 "\"*\"", "\"/\"", "\"%\"", "\"<\"", "\">\"", "\">=\"", "\"<=\"",
425 "\"||\"", "\"&&\"", "\"==\"", "\"!=\"", "\"~\"", "\"!\"", "\".\"",
426 "\"\\\\\"", "\"...\"", "\"?\"", "PRAGMA", "PRAGMA_ONCE", "LINE", "ERROR",
427 "WARNING", "IF", "IFDEF", "IFNDEF", "ELSE", "ELIF", "ENDIF", "DEFINE",
428 "DEFINED", "UNDEF", "IMPORT", "INCLUDE", "INCLUDE_NEXT", "TYPEDEF",
429 "STRUCT", "UNION", "ENUM", "CONST", "LIB", "STATIC", "CALLBACK",
430 "FUNCTION", "LET", "SET", "TEMP", "FREE", "RETURN", "PRE_ASSERT",
431 "POST_ASSERT", "BOOLVAL", "INTVAL", "STRVAL", "PATHVAL", "STRLEN",
432 "FLOATVAL", "ARRVAL", "OBJVAL", "COUNT", "CALLOC", "TO_BOOL", "TO_INT",
433 "TO_STRING", "TO_FLOAT", "TO_ARRAY", "TO_OBJECT", "COMMENT",
434 "WHITESPACE", "NO_WHITESPACE", "CPP_HEADER", "CPP_ATTRIBUTE",
435 "CPP_EXTENSION", "CPP_PASTE", "CPP_INLINE", "CPP_RESTRICT", "CPP_ASM",
436 "BINARY", "UNARY", "$accept", "binary_op_token", "unary_op_token",
437 "name_token", "any_noeol_token", "any_nobrace_token", "file", "blocks",
438 "block", "lib", "cpp", "cpp_exp", "cpp_ignored_token",
439 "cpp_message_token", "cpp_include_token", "cpp_header_token",
440 "cpp_no_arg_token", "cpp_name_arg_token", "cpp_exp_arg_token",
441 "cpp_special_name_token", "cpp_macro_decl", "cpp_macro_sig",
442 "cpp_macro_sig_args", "cpp_macro_decl_tokens",
443 "cpp_macro_decl_token_list", "cpp_macro_exp", "cpp_macro_call_args",
444 "cpp_macro_call_arg_list", "constant", "constant_type",
445 "constant_type_token", "impl_def_val", "impl_def_val_token",
446 "decl_typedef", "typedef", "typedef_anon", "typedef_decl",
447 "typedef_anon_decl", "qualified_decl_type", "decl_type",
448 "decl_type_complex", "decl_type_simple", "decl_real_type",
449 "decl_stdint_type", "int_signed", "int_width", "decl_int_type",
450 "int_signed_types", "signed_short_types", "signed_long_types",
451 "int_width_types", "decl_stmt", "decl_asm", "ignored_quoted_strings",
452 "decl_ext_var_stmt", "decl_ext_var", "decl_ext_var_list", "decl_vars",
453 "ignored_decl", "ignored_decl_body", "ignored_decl_body_stmts",
454 "ignored_decl_body_stmt", "decl", "decl_body", "decl_func_body",
455 "decl_functor_body", "decl_functor", "decl_func", "decl_args",
456 "decl_anon_arg", "decl_arg", "decl_var", "decl_union", "decl_struct",
457 "decl_struct_args", "struct_args_block", "struct_args",
458 "struct_arg_var_list", "decl_vars_with_layout", "decl_enum",
459 "decl_enum_items", "decl_enum_item", "num_exp", "number", "sizeof",
460 "sizeof_body", "sizeof_body_notypes", "enum_name", "union_name",
461 "struct_name", "optional_name", "decl_layout", "align_and_size",
462 "array_size", "indirection", "pointers", "asterisks", "asterisk", "impl",
463 "impl_func", "impl_args", "impl_arg", "impl_var", "impl_type",
464 "impl_type_token", "impl_stmts", "impl_stmt", "let_stmt", "let_exp",
465 "let_exp_byref", "let_exp_assign", "let_calloc", "let_callback",
466 "let_func", "let_func_token", "let_func_exps", "let_exps",
467 "callback_rval", "callback_arg_list", "callback_args", "return_stmt",
468 "set_stmt", "set_exp", "set_func", "set_func_token", "set_func_exps",
469 "set_exps", "assert_stmt", "assert_stmt_token", "free_stmt", "free_exps",
470 "free_exp", "reference", "byref", YY_NULLPTR
471 };
472 #endif
473
474 #define YYPACT_NINF -722
475 #define YYTABLE_NINF -640
476
477 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
478 STATE-NUM. */
479 static const short int yypact[] =
480 {
481 481, -722, -722, -722, -722, -722, 47, -722, -722, 3033,
482 -722, -722, -722, -722, -722, -722, -722, -722, 3652, 726,
483 -722, -722, 477, 1491, 3454, 3454, 3454, 1825, 48, 278,
484 12, -722, 1620, 3686, 93, 481, -722, -722, -722, -722,
485 -722, 3109, -722, -722, -722, -722, -722, 91, 147, -722,
486 -722, -722, 64, -722, -21, -722, -722, 70, 84, 122,
487 -722, -722, -722, -722, 120, -722, 126, -722, -722, -722,
488 -722, -722, 837, -722, 115, 80, -722, -722, -722, -722,
489 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
490 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
491 -722, -722, -722, -722, -722, 685, -18, -722, -722, -722,
492 -722, 3454, 3454, 3454, 2065, -722, 59, -722, -722, -722,
493 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
494 1357, -722, -722, -722, -722, 158, 970, 970, 14, -722,
495 1357, 2864, 3033, 3454, 3454, 3731, 160, -722, 2984, -722,
496 -722, 162, 3454, 163, 163, 82, 82, 161, -722, -722,
497 178, 179, -722, 115, 181, -722, -722, 174, 3686, 171,
498 172, -722, 187, -722, 3765, 1528, -21, 171, -722, -722,
499 173, -722, 180, 3454, -722, 217, -722, 68, -722, -722,
500 91, -722, -722, 184, 186, 3810, 3810, 3454, 258, 3454,
501 -722, -722, 115, -722, -722, -722, -722, -722, -722, 3109,
502 -722, -722, -722, -722, -722, -722, -722, 102, 970, -722,
503 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
504 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
505 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
506 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
507 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
508 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
509 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
510 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
511 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
512 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
513 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
514 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
515 -722, -722, -722, -722, -722, -722, -722, -722, 970, -722,
516 -722, -722, -722, -722, -722, -722, -722, 19, 2864, -722,
517 -722, -722, -722, 3158, 2864, 188, 4043, -722, 190, 98,
518 -722, 103, -722, -722, -722, -722, -722, 191, 189, 189,
519 36, 36, 3278, 192, -722, 171, 1236, -722, 258, 195,
520 198, 199, -722, 2384, -722, 115, 173, -722, -722, -722,
521 233, -722, -722, 208, -722, 15, 2665, 3109, 116, -722,
522 -722, 136, 197, 77, -722, 3109, 2504, 3109, 3454, 132,
523 -722, -722, 159, -722, -722, -722, -722, -722, 2624, -722,
524 202, 3454, 213, -722, 3454, 234, -722, -722, -722, -722,
525 3844, 227, -722, 3889, 3454, -722, -722, 2864, -722, -722,
526 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
527 -722, -722, -722, -722, -722, -722, 2864, 2864, -722, 236,
528 1570, 3109, 3109, -722, -722, -722, -722, 115, -722, 1784,
529 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
530 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
531 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
532 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
533 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
534 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
535 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
536 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
537 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
538 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
539 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
540 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
541 -722, -722, -722, -722, -722, -722, 1103, -722, 166, 73,
542 -722, -722, -722, -722, -722, 1664, -722, 2624, -722, 2965,
543 -722, -722, 3454, -722, -722, -722, 26, 685, 115, 180,
544 173, 3573, 173, 3607, 2624, 3454, -722, 225, 238, 4067,
545 230, 240, -722, 241, 248, 242, 251, 76, -722, -722,
546 253, 241, -722, -722, 3856, -722, 252, 3109, 3329, 115,
547 255, -722, -722, -722, 264, 4043, 265, 267, 3994, -722,
548 261, 3731, 268, -722, -722, 2744, 1399, 3454, 163, 163,
549 -722, -722, 3454, -722, -722, -722, -722, 271, -722, 4067,
550 -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
551 -722, -722, 269, 138, -722, 12, -722, 266, 726, 273,
552 3916, -722, -722, 2624, 2624, 277, -722, -722, 3278, -722,
553 15, 279, -722, -722, 290, 4067, -722, 1904, -722, 2504,
554 -722, 3109, -722, 12, 3109, -722, 3454, -722, -722, -722,
555 -722, -722, -722, 292, 293, -722, -722, -722, -722, 2864,
556 2864, 294, -722, 30, 295, -722, 268, 189, 189, 299,
557 -722, 519, 291, 519, 297, 2624, -722, 4019, -722, -722,
558 173, 173, -722, 231, 214, 301, 4067, -722, -722, -722,
559 -722, 303, 2024, -722, 304, 3109, 142, -722, 970, 3405,
560 4043, 4091, 315, 309, 313, 3109, 326, 295, 3109, 3109,
561 -722, -722, 519, -722, 12, 1784, -722, 2624, -722, -722,
562 301, -722, -722, -722, -722, 327, 2624, 12, -722, 2144,
563 328, 339, -722, -722, -722, -722, 338, 337, 348, 268,
564 340, -722, 344, -722, 20, -722, 4115, 12, 3969, 342,
565 347, -722, 343, -722, -722, -722, 349, 350, -722, 3109,
566 -722, 358, 353, 2624, 1904, 354, -722, 2504, 363, 364,
567 268, 357, 2264, 3943, 225, -722, -722, -722, 360, 2024,
568 -722, -722, 362, 359, -722, 356, 366, 370, -722, -722,
569 1904, -722, 372, -722, 519, 374, 2504, -722, 375, -722,
570 -722, -722, -722
571 };
572
573 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
574 Performed when YYTABLE does not specify something else to do. Zero
575 means the default is an error. */
576 static const unsigned short int yydefact[] =
577 {
578 290, 428, 425, 429, 423, 424, 426, 412, 413, 0,
579 415, 416, 417, 418, 419, 420, 421, 422, 411, 0,
580 295, 294, 0, 0, 0, 0, 531, 0, 0, 0,
581 639, 296, 0, 0, 0, 291, 292, 298, 297, 299,
582 303, 542, 402, 404, 403, 409, 410, 432, 443, 408,
583 300, 302, 0, 301, 448, 466, 468, 469, 0, 0,
584 478, 305, 304, 306, 0, 307, 0, 427, 414, 33,
585 34, 627, 593, 24, 542, 548, 39, 38, 37, 35,
586 36, 32, 31, 25, 29, 28, 26, 27, 601, 600,
587 598, 596, 597, 599, 595, 594, 602, 30, 625, 623,
588 622, 624, 621, 620, 479, 0, 544, 546, 40, 41,
589 411, 0, 0, 0, 0, 467, 454, 401, 309, 320,
590 317, 319, 321, 322, 333, 330, 331, 328, 334, 329,
591 0, 332, 323, 324, 325, 0, 350, 350, 0, 313,
592 0, 0, 0, 531, 531, 0, 0, 385, 542, 390,
593 488, 389, 0, 537, 537, 405, 406, 407, 528, 371,
594 429, 412, 374, 0, 0, 370, 400, 0, 0, 0,
595 0, 641, 0, 640, 411, 0, 448, 0, 1, 293,
596 539, 489, 0, 543, 433, 437, 435, 439, 430, 444,
597 432, 431, 452, 0, 0, 480, 480, 0, 0, 0,
598 543, 549, 542, 491, 545, 547, 405, 406, 407, 0,
599 453, 336, 337, 338, 340, 341, 339, 335, 350, 315,
600 310, 75, 42, 43, 44, 45, 46, 47, 48, 49,
601 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
602 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
603 70, 71, 72, 73, 74, 165, 166, 76, 77, 78,
604 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
605 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
606 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
607 109, 115, 113, 114, 112, 110, 111, 116, 117, 118,
608 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
609 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
610 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
611 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
612 159, 163, 160, 161, 162, 164, 352, 318, 351, 311,
613 326, 327, 312, 335, 314, 360, 361, 0, 0, 22,
614 23, 20, 21, 0, 0, 363, 316, 362, 479, 405,
615 530, 406, 529, 386, 382, 394, 391, 0, 0, 0,
616 0, 0, 0, 0, 308, 0, 0, 458, 0, 0,
617 0, 0, 459, 0, 493, 542, 539, 438, 434, 440,
618 441, 436, 445, 0, 446, 481, 0, 542, 0, 482,
619 484, 0, 508, 0, 506, 0, 639, 0, 0, 0,
620 633, 634, 0, 570, 573, 572, 574, 575, 0, 576,
621 0, 0, 455, 456, 0, 0, 343, 353, 527, 526,
622 0, 0, 522, 0, 0, 358, 355, 365, 2, 3,
623 4, 5, 6, 7, 8, 9, 10, 11, 13, 12,
624 14, 15, 16, 17, 18, 19, 0, 0, 383, 0,
625 0, 0, 0, 496, 495, 497, 494, 542, 490, 375,
626 460, 200, 167, 168, 169, 170, 171, 172, 173, 174,
627 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
628 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
629 195, 196, 197, 198, 199, 288, 289, 201, 202, 203,
630 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
631 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
632 224, 225, 226, 227, 228, 229, 230, 231, 232, 238,
633 236, 237, 235, 233, 234, 239, 240, 241, 242, 243,
634 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
635 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
636 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
637 274, 275, 276, 277, 278, 279, 280, 281, 282, 286,
638 283, 284, 285, 287, 464, 465, 0, 462, 0, 0,
639 384, 447, 517, 516, 518, 0, 540, 0, 519, 0,
640 510, 520, 0, 492, 442, 450, 0, 487, 0, 485,
641 539, 0, 539, 0, 0, 0, 505, 0, 0, 616,
642 0, 0, 615, 41, 0, 0, 0, 0, 636, 626,
643 0, 0, 550, 571, 0, 477, 0, 0, 344, 542,
644 0, 523, 525, 354, 0, 367, 0, 366, 0, 356,
645 0, 0, 533, 395, 387, 396, 0, 397, 537, 537,
646 393, 392, 0, 378, 379, 380, 381, 0, 377, 376,
647 461, 463, 551, 563, 564, 565, 566, 562, 567, 568,
648 569, 561, 0, 0, 555, 639, 560, 24, 0, 0,
649 0, 514, 541, 0, 0, 0, 451, 449, 486, 472,
650 0, 0, 483, 470, 0, 509, 507, 0, 577, 639,
651 614, 0, 559, 639, 0, 635, 0, 613, 632, 476,
652 457, 345, 348, 0, 346, 524, 521, 359, 364, 0,
653 0, 0, 388, 0, 501, 498, 533, 0, 0, 0,
654 369, 0, 0, 0, 557, 0, 512, 0, 513, 474,
655 539, 539, 582, 0, 31, 30, 587, 588, 583, 585,
656 586, 40, 0, 617, 628, 0, 0, 637, 350, 0,
657 368, 357, 0, 534, 0, 0, 0, 501, 399, 398,
658 475, 552, 0, 556, 639, 375, 511, 0, 473, 471,
659 0, 584, 607, 593, 608, 0, 0, 639, 589, 639,
660 0, 0, 638, 342, 347, 349, 0, 0, 0, 533,
661 502, 499, 0, 553, 0, 558, 515, 639, 0, 603,
662 0, 630, 629, 618, 578, 538, 0, 0, 503, 0,
663 500, 0, 0, 0, 0, 0, 619, 639, 0, 0,
664 533, 0, 609, 0, 519, 605, 581, 579, 604, 0,
665 592, 631, 0, 0, 504, 0, 0, 610, 611, 590,
666 0, 580, 0, 535, 0, 0, 639, 606, 0, 554,
667 591, 612, 536
668 };
669
670 /* YYPGOTO[NTERM-NUM]. */
671 static const short int yypgoto[] =
672 {
673 -722, -352, -128, -7, 65, -722, -722, -722, 382, -722,
674 -722, -722, -722, -722, -722, -722, -722, -722, -722, 280,
675 -722, -722, -722, -134, -722, -315, -722, -722, -722, -722,
676 -722, -386, -722, -722, 243, -255, 22, -249, -2, -12,
677 -722, -722, -722, -138, 377, -722, -722, 239, -722, -722,
678 -722, -722, 250, -722, -722, -722, -722, -301, -722, -141,
679 -722, -170, 409, 17, -15, 33, -722, -722, 246, -504,
680 -14, -41, -722, -722, 62, -348, -722, -353, -722, 6,
681 -722, -190, -359, -722, -117, -722, 7, -722, -454, -450,
682 43, -712, -129, -384, -63, -4, -722, 345, -722, 420,
683 -722, -313, -648, -721, -722, 66, -400, -722, -428, -704,
684 38, -312, -722, -722, -666, -722, -722, -722, -722, -722,
685 -722, -722, -691, 39, -387, -722, -722, -722, -722, -722,
686 -722, -274, -29, -680
687 };
688
689 /* YYDEFGOTO[NTERM-NUM]. */
690 static const short int yydefgoto[] =
691 {
692 -1, 714, 617, 180, 346, 604, 34, 35, 36, 37,
693 38, 135, 136, 137, 138, 352, 139, 140, 141, 218,
694 219, 743, 744, 347, 348, 366, 666, 667, 39, 164,
695 165, 687, 688, 40, 146, 672, 673, 674, 41, 42,
696 43, 44, 45, 46, 47, 48, 49, 188, 398, 401,
697 191, 50, 194, 626, 51, 52, 210, 432, 53, 605,
698 606, 607, 54, 55, 56, 150, 58, 59, 408, 409,
699 60, 618, 61, 62, 474, 475, 676, 796, 830, 152,
700 413, 414, 639, 620, 621, 660, 442, 64, 153, 154,
701 158, 754, 378, 394, 182, 434, 106, 107, 65, 66,
702 703, 704, 640, 705, 706, 422, 423, 424, 865, 866,
703 867, 778, 779, 780, 108, 855, 868, 815, 876, 877,
704 425, 426, 641, 642, 109, 820, 842, 427, 428, 429,
705 647, 648, 644, 173
706 };
707
708 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
709 positive, shift that token. If negative, reduce the rule whose
710 number is the opposite. If YYTABLE_NINF, syntax error. */
711 static const short int yytable[] =
712 {
713 181, 172, 104, 349, 116, 105, 63, 117, 149, 151,
714 375, 199, 623, 364, 467, 166, 678, 155, 156, 157,
715 679, 148, 653, 777, 367, 379, 380, 381, 387, 643,
716 471, 472, 651, 57, 619, 115, 392, 183, 783, 75,
717 801, 63, 804, 443, 797, 147, 169, 782, 350, 446,
718 177, 57, 732, 438, 439, 74, 67, 764, 68, 440,
719 716, 781, 57, 793, 171, 57, 57, 717, 57, 654,
720 200, 441, 75, 794, 399, 473, 693, 400, 818, 694,
721 470, 833, 167, 695, 436, 696, 697, 698, 699, 700,
722 701, 467, 851, 178, 467, 184, 185, 186, 203, -478,
723 187, 209, 166, 192, 206, 207, 208, 181, 814, -469,
724 -488, 193, -488, 204, 702, 735, 781, 848, 736, 635,
725 689, -537, 636, 217, 195, 377, -537, 722, 841, 722,
726 149, 151, 665, 353, 365, 368, 369, 371, 105, 431,
727 351, -405, -532, 148, 183, 376, -406, -532, 874, 71,
728 649, 668, 669, 189, 4, 5, 764, 630, 631, 382,
729 149, 151, 196, 889, 197, 881, 871, 373, 433, 839,
730 198, 878, 75, 148, 869, 201, 396, 632, 633, 762,
731 763, 410, 410, 822, 657, 385, 370, 372, 781, 852,
732 412, 115, 430, 407, 407, 891, 220, 147, 200, 374,
733 869, 57, -478, 781, 652, -532, 377, 57, 653, -372,
734 -373, 692, 383, 384, 781, 386, 388, 678, 389, 393,
735 395, 679, 678, 397, 403, 404, 679, 435, 447, 468,
736 364, 812, 813, 470, 469, 609, 364, 610, 611, 624,
737 479, 367, 625, 655, 480, 634, 719, 367, 723, 98,
738 99, 100, 101, 102, 103, 657, 710, 662, 711, 415,
739 416, 417, 418, 419, 420, 421, 415, 416, 417, 418,
740 419, 420, 421, 727, 658, 725, 670, 728, 729, 730,
741 732, 731, 1, 2, 3, 4, 5, 6, 7, 8,
742 733, 734, 737, 739, 751, 9, 746, 10, 11, 12,
743 13, 14, 15, 16, 17, 747, 748, -24, 110, 749,
744 760, 753, 761, 467, 765, 19, 467, 467, 769, 364,
745 770, 88, 89, 90, 91, 92, 93, 94, 95, 96,
746 367, 771, 622, 788, 802, 789, 792, 795, 364, 364,
747 800, 816, 643, 817, 629, 805, 819, 810, 826, 367,
748 367, 365, 827, 828, 767, 768, 445, 365, 415, 416,
749 417, 418, 419, 420, 421, 831, 181, 837, 776, 843,
750 111, 112, 113, 114, 637, 478, 645, 30, 844, 845,
751 846, 847, 849, 850, 854, 857, 808, 809, 856, 858,
752 861, 200, 859, 862, 166, 870, 872, 873, 875, 884,
753 883, 627, 880, 183, 882, 888, 806, 885, 168, 798,
754 799, 646, 886, 437, 682, 890, 892, 179, 390, 835,
755 354, 756, 752, 776, 656, 190, 391, 396, 659, 402,
756 680, 681, 643, 786, 790, 791, 691, 664, 467, 467,
757 365, 176, 411, 476, 832, 726, 689, 661, 836, 170,
758 803, 205, 887, 638, 608, 149, 151, 838, 650, 365,
759 365, 811, 787, 0, 0, 0, 0, 0, 675, 0,
760 643, 0, 0, 200, 0, 643, 677, 0, 0, 0,
761 0, 0, 0, 0, 0, 1, 2, 3, 4, 5,
762 6, 7, 8, 0, 863, 776, 0, 0, 9, 643,
763 10, 11, 12, 13, 14, 15, 16, 17, 0, 0,
764 776, 18, 0, 0, 0, 118, 0, 0, 19, 20,
765 21, 776, 693, 0, 0, 694, 0, 0, 0, 695,
766 22, 696, 697, 698, 699, 700, 701, 375, 0, 0,
767 0, 0, 0, 0, 0, 0, 0, 0, 0, 757,
768 758, 119, 120, 121, 122, 123, 124, 125, 126, 127,
769 128, 129, 130, 0, 131, 132, 133, 134, 0, 0,
770 0, 0, 23, 24, 25, 26, 27, 28, 29, 0,
771 30, 0, 0, 0, 0, 0, 0, 0, 0, 0,
772 0, 0, 0, 0, 0, 0, 745, 0, 0, 0,
773 0, 0, 0, 0, 31, 0, 0, 0, 0, 32,
774 0, 33, 0, 709, 0, 715, 740, 410, 0, 410,
775 203, 364, 364, 0, 718, 0, 0, 0, 412, 407,
776 0, 407, 367, 367, 181, 0, 0, 0, 0, 0,
777 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
778 0, 742, 0, 0, 823, 200, 149, 151, 0, 0,
779 0, 149, 151, 0, 0, 0, 0, 0, 0, 675,
780 376, 183, 0, 0, 675, 759, 0, 677, 0, 0,
781 0, 0, 677, 0, 0, 0, 0, 0, 69, 0,
782 784, 0, 0, 433, 0, 0, 166, 70, 0, 0,
783 0, 0, 71, 72, 785, 0, 0, 0, 0, 0,
784 0, 478, 0, 0, 0, 73, 627, 0, 0, 0,
785 0, 0, 0, 0, 0, 202, 0, 0, 0, 646,
786 1, 2, 3, 4, 5, 6, 7, 8, 0, 0,
787 0, 0, 365, 365, 821, 10, 11, 12, 13, 14,
788 15, 16, 17, 0, 829, 0, 110, 680, 681, 76,
789 77, 78, 79, 80, 0, 0, 0, 0, 0, 0,
790 0, 0, 0, 0, 0, 834, 0, 0, 0, 0,
791 0, 81, 825, 82, 83, 84, 85, 86, 87, 0,
792 0, 0, 88, 89, 90, 91, 92, 93, 94, 95,
793 96, 97, 98, 99, 100, 101, 102, 103, 860, 0,
794 0, 0, 0, 864, 0, 0, 0, 0, 111, 112,
795 113, 0, 0, 0, 0, 0, 0, 0, 0, 0,
796 0, 0, 0, 0, 0, 0, 0, -593, 0, 864,
797 -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
798 -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
799 -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
800 -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
801 -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
802 -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
803 -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
804 -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
805 -593, -593, -593, -593, -593, 0, -593, 0, -593, -593,
806 -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
807 -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
808 -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
809 -593, 0, -593, -593, 0, -593, -593, -593, -593, -593,
810 221, 0, 0, 222, 223, 224, 225, 226, 227, 228,
811 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
812 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
813 249, 250, 251, 252, 253, 254, 255, 256, 0, 257,
814 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
815 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
816 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
817 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
818 298, 299, 300, 301, 302, 303, 304, 305, 0, 306,
819 0, 307, 308, 309, 310, 311, 312, 313, 314, 315,
820 316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
821 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
822 336, 337, 338, 339, 0, 0, 340, 0, 341, 342,
823 343, 344, 345, 481, 0, 0, 482, 483, 484, 485,
824 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
825 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
826 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
827 516, 0, 517, 518, 519, 520, 521, 386, 690, 522,
828 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
829 533, 534, 535, 536, 537, 538, 539, 540, 541, 542,
830 543, 544, 545, 546, 547, 548, 549, 550, 551, 552,
831 553, 554, 555, 556, 557, 558, 559, 560, 561, 562,
832 563, 0, 564, 0, 565, 566, 567, 568, 569, 570,
833 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
834 581, 582, 583, 584, 585, 586, 587, 588, 589, 590,
835 591, 592, 593, 594, 595, 596, 597, 0, 0, 598,
836 0, 599, 600, 601, 602, 603, 481, 0, 0, 482,
837 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
838 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
839 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
840 513, 514, 515, 516, 0, 517, 518, 519, 520, 521,
841 386, 0, 522, 523, 524, 525, 526, 527, 528, 529,
842 530, 531, 532, 533, 534, 535, 536, 537, 538, 539,
843 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
844 550, 551, 552, 553, 554, 555, 556, 557, 558, 559,
845 560, 561, 562, 563, 0, 564, 0, 565, 566, 567,
846 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
847 578, 579, 580, 581, 582, 583, 584, 585, 586, 587,
848 588, 589, 590, 591, 592, 593, 594, 595, 596, 597,
849 69, 0, 598, 0, 599, 600, 601, 602, 603, 70,
850 0, 0, 0, 0, 71, 72, 0, 0, 0, 0,
851 0, 0, 0, 0, 211, 212, 213, 73, 0, 0,
852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
853 0, 0, 0, 1, 2, 3, 4, 5, 6, 7,
854 8, 0, 0, 0, 0, 0, 9, 0, 10, 11,
855 12, 13, 14, 15, 16, 17, 0, 0, 0, 110,
856 0, 76, 77, 78, 79, 80, 19, 0, 0, 0,
857 0, 0, 0, 0, 755, 0, 0, 0, 0, 0,
858 0, 0, 0, 81, 0, 82, 83, 84, 85, 86,
859 87, 0, 0, 0, 88, 89, 90, 91, 92, 93,
860 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
861 0, 0, 0, 0, 0, 214, 0, 215, 216, 0,
862 0, 143, 144, 26, 114, 1, 2, 3, 4, 5,
863 6, 7, 8, 0, 0, 0, 0, 0, 142, 0,
864 10, 11, 12, 13, 14, 15, 16, 17, 0, 0,
865 0, 110, 0, 0, 0, 0, 0, 671, 19, 0,
866 0, 0, 1, 2, 3, 4, 5, 6, 7, 8,
867 0, 0, 0, 0, 0, 9, 0, 10, 11, 12,
868 13, 14, 15, 16, 17, 0, 0, 0, 110, 0,
869 0, 0, 0, 0, 0, 19, 0, 0, 0, 0,
870 0, 0, 0, 0, 1, 2, 3, 4, 5, 6,
871 7, 8, 0, 143, 144, 26, 114, 9, 0, 10,
872 11, 12, 13, 14, 15, 16, 17, 0, 0, 0,
873 110, 0, 0, 0, 0, 0, 0, 19, 0, 0,
874 0, 0, 0, 0, 0, 0, 0, 0, 0, 145,
875 143, 144, 26, 114, 1, 2, 3, 4, 5, 6,
876 7, 8, 0, 0, 0, 0, 0, 9, 0, 10,
877 11, 12, 13, 14, 15, 16, 17, 0, 0, 0,
878 174, 0, 0, 0, 0, 0, 145, 19, 0, 0,
879 0, 0, 143, 144, 26, 114, 0, 69, 1, 2,
880 3, 4, 5, 6, 7, 8, 70, 0, 0, 0,
881 0, 71, 72, 10, 11, 12, 13, 14, 15, 16,
882 17, 0, 0, 0, 707, 612, 0, 613, 671, 614,
883 357, 19, 0, 0, 615, 0, 0, 0, 0, 0,
884 0, 175, 111, 112, 113, 114, 0, 0, 0, 359,
885 360, 75, 0, 0, 0, 0, 0, 0, 0, 0,
886 0, 0, 361, 362, 0, 0, 0, 0, 76, 77,
887 78, 79, 80, 0, 0, 0, 0, 0, 0, 0,
888 0, 0, 0, 0, 0, 0, 111, 112, 113, 708,
889 81, 0, 82, 83, 84, 85, 86, 87, 0, 0,
890 0, 88, 89, 90, 91, 92, 93, 94, 95, 96,
891 97, 98, 99, 100, 101, 102, 103, 69, 0, 0,
892 0, 0, 0, 0, 0, 0, 70, 0, 0, 0,
893 0, 71, 72, 0, 0, 0, 0, 0, 0, 0,
894 0, 683, 684, 685, 73, 612, 0, 613, 686, 614,
895 357, 0, 0, 0, 615, 0, 0, 0, 159, 1,
896 2, 160, 4, 5, 6, 161, 8, 162, 0, 359,
897 360, 75, 163, 0, 10, 11, 12, 13, 14, 15,
898 16, 17, 361, 362, 0, 110, 0, 0, 76, 77,
899 78, 79, 80, 0, 0, 0, 0, 0, 0, 0,
900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
901 81, 0, 82, 83, 84, 85, 86, 87, 0, 0,
902 0, 88, 89, 90, 91, 92, 93, 94, 95, 96,
903 97, 98, 99, 100, 101, 102, 103, 69, 0, 0,
904 0, 0, 0, 0, 0, 0, 70, 111, 112, 113,
905 0, 71, 72, 0, 0, 0, 0, 0, 0, 0,
906 0, 772, 0, 0, 73, 612, 0, 613, 0, 614,
907 357, 0, 0, 0, 615, 0, 0, 0, 0, 0,
908 0, 0, 0, 0, 0, 0, 171, 0, 0, 359,
909 360, 75, 0, 0, 0, 0, 0, 0, 0, 0,
910 0, 0, 361, 362, 0, 0, 0, 0, 76, 77,
911 78, 79, 80, 0, 0, 0, 0, 0, 0, 0,
912 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
913 81, 773, 774, 83, 84, 85, 86, 87, 0, 0,
914 0, 88, 89, 90, 91, 92, 93, 94, 95, 96,
915 775, 98, 99, 100, 101, 102, 103, 69, 0, 0,
916 0, 0, 0, 0, 0, 0, 70, 0, 0, 0,
917 0, 71, 72, 0, 0, 0, 0, 0, 0, 0,
918 0, 772, 0, 0, 73, 612, 0, 613, 0, 614,
919 357, 0, 0, 0, 615, 0, 0, 0, 0, 1,
920 2, 3, 4, 5, 6, 7, 8, 0, 0, 359,
921 360, 75, 163, 0, 10, 11, 12, 13, 14, 15,
922 16, 17, 361, 362, 0, 110, 0, 0, 76, 77,
923 78, 79, 80, 0, 0, 0, 0, 0, 0, 0,
924 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
925 81, 773, 774, 83, 84, 85, 86, 87, 0, 0,
926 0, 88, 89, 90, 91, 92, 93, 94, 95, 96,
927 775, 98, 99, 100, 101, 102, 103, 69, 0, 0,
928 0, 0, 0, 0, 0, 0, 70, 111, 112, 113,
929 0, 71, 72, 0, 0, 0, 0, 0, 0, 0,
930 0, 0, 0, 0, 73, 612, 0, 613, 0, 614,
931 357, 0, 0, 0, 615, 0, 0, 0, 0, 0,
932 0, 0, 0, 0, 0, 0, 171, 0, 0, 359,
933 360, 75, 0, 0, 0, 0, 0, 0, 0, 0,
934 0, 0, 361, 362, 0, 0, 840, 0, 76, 77,
935 78, 79, 80, 0, 0, 0, 0, 0, 0, 0,
936 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
937 81, 0, 82, 83, 84, 85, 86, 87, 0, 0,
938 0, 88, 89, 90, 91, 92, 93, 94, 95, 96,
939 97, 98, 99, 100, 101, 102, 103, 69, 0, 0,
940 0, 0, 0, 0, 0, 0, 70, 0, 0, 0,
941 0, 71, 72, 0, 0, 0, 0, 0, 0, 0,
942 0, 0, 0, 0, 73, 612, -639, 613, 0, 614,
943 357, 0, 0, 0, 615, 0, 0, 0, 0, 0,
944 0, 0, 0, 0, 0, 0, 171, 0, 0, 359,
945 360, 75, 0, 0, 0, 0, 0, 0, 0, 0,
946 0, 0, 361, 362, 0, 0, 0, 0, 76, 77,
947 78, 79, 80, 0, 0, 0, 0, 0, 0, 0,
948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
949 81, 0, 82, 83, 84, 85, 86, 87, 0, 0,
950 0, 88, 89, 90, 91, 92, 93, 94, 95, 96,
951 97, 98, 99, 100, 101, 102, 103, 69, 0, 0,
952 0, 0, 0, 0, 0, 0, 70, 0, 0, 0,
953 0, 71, 72, 0, 0, 0, 0, 0, 0, 0,
954 0, 0, 0, 0, 73, 612, 0, 613, 0, 614,
955 357, 0, 0, 0, 615, 0, 0, 0, 0, 0,
956 0, 616, 0, 0, 0, 0, 0, 0, 0, 359,
957 360, 75, 0, 0, 0, 0, 0, 0, 0, 0,
958 0, 0, 361, 362, 0, 0, 0, 0, 76, 77,
959 78, 79, 80, 0, 0, 0, 0, 0, 0, 0,
960 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
961 81, 0, 82, 83, 84, 85, 86, 87, 0, 0,
962 0, 88, 89, 90, 91, 92, 93, 94, 95, 96,
963 97, 98, 99, 100, 101, 102, 103, 69, 0, 0,
964 0, 0, 0, 0, 0, 0, 70, 0, 0, 0,
965 0, 71, 72, 0, 0, 0, 0, 0, 0, 0,
966 0, 0, 0, 0, 73, 612, 0, 613, 0, 614,
967 357, 0, 0, 0, 615, 0, 0, 0, 0, 0,
968 0, 0, 0, 0, 0, 0, 171, 0, 0, 359,
969 360, 75, 0, 0, 0, 0, 0, 0, 0, 0,
970 0, 0, 361, 362, 0, 0, 0, 0, 76, 77,
971 78, 79, 80, 0, 0, 0, 0, 0, 0, 0,
972 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
973 81, 0, 82, 83, 84, 85, 86, 87, 0, 0,
974 0, 88, 89, 90, 91, 92, 93, 94, 95, 96,
975 97, 98, 99, 100, 101, 102, 103, 69, 0, 0,
976 0, 0, 0, 0, 0, 0, 70, 0, 0, 0,
977 0, 71, 72, 0, 0, 0, 0, 0, 0, 0,
978 0, 0, 0, 0, 73, 612, 0, 613, 0, 614,
979 357, 0, 0, 0, 615, 0, 0, 0, 0, 1,
980 2, 3, 4, 5, 6, 7, 8, 0, 0, 359,
981 360, 75, 628, 0, 10, 11, 12, 13, 14, 15,
982 16, 17, 361, 362, 0, 110, 0, 0, 76, 77,
983 78, 79, 80, 0, 0, 0, 0, 0, 0, 0,
984 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
985 81, 0, 82, 83, 84, 85, 86, 87, 0, 0,
986 0, 88, 89, 90, 91, 92, 93, 94, 95, 96,
987 97, 98, 99, 100, 101, 102, 103, 69, 0, 0,
988 0, 0, 0, 0, 0, 0, 70, 111, 112, 113,
989 0, 71, 72, 10, 11, 12, 13, 14, 15, 16,
990 17, 0, 0, 0, 73, 0, 0, 0, 0, 0,
991 0, 0, 0, 0, -542, 0, 0, 0, 0, 0,
992 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
993 0, 75, 0, 0, 0, 0, 0, 0, 0, 0,
994 0, 0, 0, 0, 0, 0, 0, 0, 76, 77,
995 78, 79, 80, 0, 0, 0, 0, 0, 0, 0,
996 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
997 81, 0, 82, 83, 84, 85, 86, 87, 0, 0,
998 0, 88, 89, 90, 91, 92, 93, 94, 95, 96,
999 97, 98, 99, 100, 101, 102, 103, 69, 0, 0,
1000 0, 0, 0, 0, 0, 0, 70, 0, 0, 0,
1001 0, 71, 72, 0, 0, 0, 0, 0, 0, 0,
1002 0, 0, 0, 0, 73, 0, 0, 355, 0, 356,
1003 357, 0, 0, 0, 358, 0, 0, 0, 0, 0,
1004 0, 0, 0, 0, 0, 0, 0, 0, 0, 359,
1005 360, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1006 0, 0, 361, 362, 0, 0, 0, 0, 76, 77,
1007 78, 79, 80, 0, 0, 0, 0, 0, 0, 0,
1008 363, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1009 81, 0, 82, 83, 84, 85, 86, 87, 0, 0,
1010 0, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1011 97, 98, 99, 100, 101, 102, 103, 69, 0, 0,
1012 0, 0, 0, 0, 0, 0, 70, 0, 0, 0,
1013 0, 71, 72, 10, 11, 12, 13, 14, 15, 16,
1014 17, 0, 712, 0, 73, 448, 449, 450, 451, 452,
1015 453, 454, 455, 456, 457, 458, 459, 460, 461, 462,
1016 463, 464, 465, 0, 0, 0, 69, 0, 713, 0,
1017 0, 75, 0, 0, 0, 70, 0, 0, 0, 0,
1018 71, 72, 0, 0, 0, 0, 0, 0, 76, 77,
1019 78, 79, 80, 73, 0, 0, 0, 0, 0, 0,
1020 0, 0, 0, 74, 0, 0, 0, 0, 0, 0,
1021 81, 0, 82, 83, 84, 85, 86, 87, 0, 0,
1022 75, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1023 97, 98, 99, 100, 101, 102, 103, 76, 77, 78,
1024 79, 80, 69, 0, 0, 0, 0, 0, 0, 0,
1025 0, 70, 0, 0, 0, 0, 71, 72, 0, 81,
1026 0, 82, 83, 84, 85, 86, 87, 0, 0, 73,
1027 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1028 98, 99, 100, 101, 102, 103, 0, 0, 0, 0,
1029 0, 69, 0, 0, 0, 0, 75, 0, 0, 0,
1030 70, 0, 0, 0, 0, 71, 72, 0, 0, 0,
1031 0, 0, 0, 76, 77, 78, 79, 80, 73, 0,
1032 0, 0, 0, 0, 0, 0, 0, 0, 444, 0,
1033 0, 0, 0, 0, 0, 81, 0, 82, 83, 84,
1034 85, 86, 87, 0, 0, 0, 88, 89, 90, 91,
1035 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1036 102, 103, 76, 77, 78, 79, 80, 0, 0, 0,
1037 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1038 0, 0, 0, 0, 81, 0, 82, 83, 84, 85,
1039 86, 87, 0, 0, 0, 88, 89, 90, 91, 92,
1040 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1041 103, 69, 0, 0, 0, 0, 0, 0, 0, 0,
1042 70, 0, 0, 0, 0, 71, 72, 0, 0, 0,
1043 0, 0, 0, 0, 0, 0, 0, 0, 73, 0,
1044 0, 0, 0, 0, 0, 0, 0, 0, 477, 0,
1045 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1046 0, 0, 69, 0, 0, 0, 0, 0, 0, 0,
1047 0, 70, 0, 0, 0, 0, 71, 72, 0, 0,
1048 0, 0, 76, 77, 78, 79, 80, 0, 0, 73,
1049 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1050 0, 0, 0, 0, 81, 0, 82, 83, 84, 85,
1051 86, 87, 0, 0, 0, 88, 89, 90, 91, 92,
1052 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1053 103, 741, 0, 76, 77, 78, 79, 80, 69, 0,
1054 0, 0, 0, 0, 0, 0, 0, 70, 0, 0,
1055 0, 0, 71, 72, 0, 81, 0, 82, 83, 84,
1056 85, 86, 87, 0, 0, 73, 88, 89, 90, 91,
1057 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1058 102, 103, 0, 0, 0, 0, 0, 69, 0, 0,
1059 0, 0, 0, 0, 0, 0, 70, 0, 0, 0,
1060 0, 71, 72, 0, 0, 0, 0, 824, 0, 76,
1061 77, 78, 79, 80, 73, 0, 0, 0, 0, 0,
1062 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1063 0, 81, 0, 82, 83, 84, 85, 86, 87, 0,
1064 0, 0, 88, 89, 90, 91, 92, 93, 94, 95,
1065 96, 97, 98, 99, 100, 101, 102, 103, 76, 77,
1066 78, 79, 80, 0, 0, 0, 0, 0, 0, 0,
1067 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1068 81, 0, 82, 83, 84, 85, 86, 87, 0, 0,
1069 0, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1070 97, 98, 99, 100, 101, 102, 103, 1, 2, 3,
1071 4, 5, 6, 7, 8, 0, 0, 0, 0, 0,
1072 720, 0, 10, 11, 12, 13, 14, 15, 16, 17,
1073 0, 0, 0, 110, 0, 0, 0, 0, 0, 0,
1074 19, 1, 2, 3, 4, 5, 6, 7, 8, 0,
1075 0, 0, 0, 0, 720, 0, 10, 11, 12, 13,
1076 14, 15, 16, 17, 0, 0, 0, 110, 0, 0,
1077 0, 0, 0, 0, 19, 721, 0, 0, 0, 0,
1078 0, 0, 0, 0, 0, 0, 1, 2, 3, 4,
1079 5, 6, 7, 8, 0, 111, 112, 113, 406, 9,
1080 0, 10, 11, 12, 13, 14, 15, 16, 17, 724,
1081 0, 0, 110, 0, 0, 0, 0, 0, 0, 19,
1082 1, 2, 3, 4, 5, 6, 7, 8, 0, 111,
1083 112, 113, 406, 9, 0, 10, 11, 12, 13, 14,
1084 15, 16, 17, 0, 0, 0, 110, 0, 0, 0,
1085 0, 0, 0, 19, 0, 0, 0, 0, 0, 0,
1086 0, 0, 0, 0, 0, 1, 2, 3, 4, 5,
1087 6, 7, 8, 0, 111, 112, 113, 114, 9, 0,
1088 10, 11, 12, 13, 14, 15, 16, 17, 0, 0,
1089 0, 110, 0, 0, 0, 0, 0, 0, 19, 1,
1090 2, 3, 4, 5, 6, 7, 8, 0, 111, 112,
1091 113, 114, 9, 0, 10, 11, 12, 13, 14, 15,
1092 16, 17, 0, 0, 0, 110, 0, 0, 0, 0,
1093 0, 0, 19, 0, 0, 0, 0, 0, 0, 0,
1094 0, 0, 0, 0, 1, 2, 3, 4, 5, 6,
1095 7, 8, 0, 143, 144, 26, 114, 405, 0, 10,
1096 11, 12, 13, 14, 15, 16, 17, 0, 0, 0,
1097 110, 0, 0, 0, 0, 0, 0, 19, 1, 2,
1098 3, 4, 5, 6, 7, 8, 0, 111, 112, 113,
1099 114, 0, 0, 10, 11, 12, 13, 14, 15, 16,
1100 17, 0, 0, 0, 110, 0, 0, 0, 438, 439,
1101 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1102 0, 0, 0, 0, 0, 738, 441, 0, 0, 0,
1103 0, 0, 111, 112, 113, 406, 448, 449, 450, 451,
1104 452, 453, 454, 455, 456, 457, 458, 459, 460, 461,
1105 462, 463, 464, 465, 0, 0, 0, 0, 0, 713,
1106 663, 0, 0, 0, 0, 0, 111, 112, 113, 448,
1107 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
1108 459, 460, 461, 462, 463, 464, 465, 766, 0, 0,
1109 0, 0, 466, 0, 0, 0, 448, 449, 450, 451,
1110 452, 453, 454, 455, 456, 457, 458, 459, 460, 461,
1111 462, 463, 464, 465, 879, 0, 0, 0, 0, 713,
1112 0, 0, 0, 448, 449, 450, 451, 452, 453, 454,
1113 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
1114 465, 853, 0, 0, 0, 0, 713, 0, 0, 448,
1115 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
1116 459, 460, 461, 462, 463, 464, 465, 750, 0, 0,
1117 0, 0, 713, 0, 448, 449, 450, 451, 452, 453,
1118 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
1119 464, 465, 807, 0, 0, 0, 0, 466, 0, 448,
1120 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
1121 459, 460, 461, 462, 463, 464, 465, 0, 0, 0,
1122 0, 0, 713, 448, 449, 450, 451, 452, 453, 454,
1123 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
1124 465, 0, 0, 0, 0, 0, 466, 448, 449, 450,
1125 451, 452, 453, 454, 455, 456, 457, 458, 459, 460,
1126 461, 462, 463, 464, 465, 0, 0, 0, 0, 0,
1127 713, 448, 449, 450, 451, 452, 453, 454, 455, 456,
1128 457, 458, 459, 460, 461, 462, 463, 464, 465, 0,
1129 0, 0, 0, 0, 466, 448, 449, 450, 451, 452,
1130 453, 454, 455, 456, 457, 458, 459, 460, 461, 462,
1131 463, 464, 465, 0, 0, 0, 0, 0, 713
1132 };
1133
1134 static const short int yycheck[] =
1135 {
1136 41, 30, 9, 137, 18, 9, 0, 19, 23, 23,
1137 148, 74, 396, 141, 366, 27, 470, 24, 25, 26,
1138 470, 23, 422, 727, 141, 154, 155, 156, 169, 416,
1139 378, 379, 419, 0, 393, 18, 177, 41, 729, 57,
1140 761, 35, 763, 358, 756, 23, 29, 727, 34, 364,
1141 33, 18, 32, 34, 35, 40, 9, 705, 11, 40,
1142 34, 727, 29, 33, 52, 32, 33, 41, 35, 428,
1143 74, 52, 57, 43, 6, 39, 3, 9, 782, 6,
1144 44, 802, 34, 10, 218, 12, 13, 14, 15, 16,
1145 17, 443, 72, 0, 446, 4, 5, 6, 105, 40,
1146 9, 42, 114, 39, 111, 112, 113, 148, 774, 39,
1147 40, 132, 42, 131, 41, 39, 782, 829, 42, 42,
1148 479, 39, 45, 130, 40, 43, 44, 631, 819, 633,
1149 145, 145, 447, 140, 141, 142, 143, 144, 142, 202,
1150 126, 43, 44, 145, 148, 152, 43, 44, 860, 17,
1151 18, 466, 467, 6, 7, 8, 804, 41, 42, 163,
1152 175, 175, 40, 884, 44, 869, 857, 145, 209, 817,
1153 44, 862, 57, 175, 854, 95, 183, 41, 42, 41,
1154 42, 195, 196, 41, 42, 168, 143, 144, 854, 837,
1155 197, 174, 199, 195, 196, 886, 38, 175, 202, 39,
1156 880, 168, 40, 869, 45, 44, 43, 174, 608, 31,
1157 31, 45, 31, 39, 880, 44, 44, 671, 31, 46,
1158 40, 671, 676, 6, 40, 39, 676, 125, 40, 39,
1159 358, 17, 18, 44, 43, 40, 364, 39, 39, 6,
1160 48, 358, 34, 41, 385, 48, 630, 364, 632, 117,
1161 118, 119, 120, 121, 122, 42, 615, 30, 617, 100,
1162 101, 102, 103, 104, 105, 106, 100, 101, 102, 103,
1163 104, 105, 106, 48, 40, 634, 40, 39, 48, 39,
1164 32, 40, 4, 5, 6, 7, 8, 9, 10, 11,
1165 48, 40, 39, 41, 33, 17, 41, 19, 20, 21,
1166 22, 23, 24, 25, 26, 41, 41, 41, 30, 42,
1167 39, 43, 43, 665, 41, 37, 668, 669, 41, 447,
1168 41, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1169 447, 41, 395, 41, 43, 42, 42, 42, 466, 467,
1170 41, 40, 729, 40, 407, 48, 42, 116, 33, 466,
1171 467, 358, 43, 40, 713, 714, 363, 364, 100, 101,
1172 102, 103, 104, 105, 106, 39, 407, 40, 727, 41,
1173 92, 93, 94, 95, 415, 382, 417, 99, 39, 41,
1174 43, 33, 42, 39, 42, 42, 770, 771, 41, 40,
1175 32, 395, 42, 40, 406, 41, 33, 33, 41, 43,
1176 41, 405, 42, 407, 42, 33, 765, 41, 130, 757,
1177 758, 418, 42, 348, 477, 41, 41, 35, 175, 805,
1178 140, 676, 671, 782, 431, 48, 176, 434, 440, 190,
1179 471, 472, 819, 734, 749, 750, 606, 444, 790, 791,
1180 447, 32, 196, 381, 797, 635, 805, 440, 807, 29,
1181 763, 106, 880, 415, 388, 470, 470, 816, 419, 466,
1182 467, 773, 736, -1, -1, -1, -1, -1, 470, -1,
1183 857, -1, -1, 477, -1, 862, 470, -1, -1, -1,
1184 -1, -1, -1, -1, -1, 4, 5, 6, 7, 8,
1185 9, 10, 11, -1, 853, 854, -1, -1, 17, 886,
1186 19, 20, 21, 22, 23, 24, 25, 26, -1, -1,
1187 869, 30, -1, -1, -1, 38, -1, -1, 37, 38,
1188 39, 880, 3, -1, -1, 6, -1, -1, -1, 10,
1189 49, 12, 13, 14, 15, 16, 17, 675, -1, -1,
1190 -1, -1, -1, -1, -1, -1, -1, -1, -1, 678,
1191 679, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1192 83, 84, 85, -1, 87, 88, 89, 90, -1, -1,
1193 -1, -1, 91, 92, 93, 94, 95, 96, 97, -1,
1194 99, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1195 -1, -1, -1, -1, -1, -1, 659, -1, -1, -1,
1196 -1, -1, -1, -1, 123, -1, -1, -1, -1, 128,
1197 -1, 130, -1, 615, -1, 622, 657, 631, -1, 633,
1198 627, 749, 750, -1, 628, -1, -1, -1, 635, 631,
1199 -1, 633, 749, 750, 675, -1, -1, -1, -1, -1,
1200 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1201 -1, 658, -1, -1, 788, 659, 671, 671, -1, -1,
1202 -1, 676, 676, -1, -1, -1, -1, -1, -1, 671,
1203 677, 675, -1, -1, 676, 682, -1, 671, -1, -1,
1204 -1, -1, 676, -1, -1, -1, -1, -1, 3, -1,
1205 731, -1, -1, 734, -1, -1, 708, 12, -1, -1,
1206 -1, -1, 17, 18, 733, -1, -1, -1, -1, -1,
1207 -1, 718, -1, -1, -1, 30, 720, -1, -1, -1,
1208 -1, -1, -1, -1, -1, 40, -1, -1, -1, 736,
1209 4, 5, 6, 7, 8, 9, 10, 11, -1, -1,
1210 -1, -1, 749, 750, 785, 19, 20, 21, 22, 23,
1211 24, 25, 26, -1, 795, -1, 30, 798, 799, 74,
1212 75, 76, 77, 78, -1, -1, -1, -1, -1, -1,
1213 -1, -1, -1, -1, -1, 804, -1, -1, -1, -1,
1214 -1, 96, 789, 98, 99, 100, 101, 102, 103, -1,
1215 -1, -1, 107, 108, 109, 110, 111, 112, 113, 114,
1216 115, 116, 117, 118, 119, 120, 121, 122, 849, -1,
1217 -1, -1, -1, 854, -1, -1, -1, -1, 92, 93,
1218 94, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1219 -1, -1, -1, -1, -1, -1, -1, 0, -1, 880,
1220 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
1221 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1222 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1223 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1224 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1225 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1226 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1227 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1228 83, 84, 85, 86, 87, -1, 89, -1, 91, 92,
1229 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1230 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1231 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
1232 123, -1, 125, 126, -1, 128, 129, 130, 131, 132,
1233 0, -1, -1, 3, 4, 5, 6, 7, 8, 9,
1234 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1235 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1236 30, 31, 32, 33, 34, 35, 36, 37, -1, 39,
1237 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1238 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1239 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1240 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1241 80, 81, 82, 83, 84, 85, 86, 87, -1, 89,
1242 -1, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1243 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1244 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
1245 120, 121, 122, 123, -1, -1, 126, -1, 128, 129,
1246 130, 131, 132, 0, -1, -1, 3, 4, 5, 6,
1247 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1248 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1249 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1250 37, -1, 39, 40, 41, 42, 43, 44, 45, 46,
1251 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1252 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1253 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1254 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
1255 87, -1, 89, -1, 91, 92, 93, 94, 95, 96,
1256 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1257 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1258 117, 118, 119, 120, 121, 122, 123, -1, -1, 126,
1259 -1, 128, 129, 130, 131, 132, 0, -1, -1, 3,
1260 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1261 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1262 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1263 34, 35, 36, 37, -1, 39, 40, 41, 42, 43,
1264 44, -1, 46, 47, 48, 49, 50, 51, 52, 53,
1265 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1266 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1267 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1268 84, 85, 86, 87, -1, 89, -1, 91, 92, 93,
1269 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
1270 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1271 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
1272 3, -1, 126, -1, 128, 129, 130, 131, 132, 12,
1273 -1, -1, -1, -1, 17, 18, -1, -1, -1, -1,
1274 -1, -1, -1, -1, 27, 28, 29, 30, -1, -1,
1275 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1276 -1, -1, -1, 4, 5, 6, 7, 8, 9, 10,
1277 11, -1, -1, -1, -1, -1, 17, -1, 19, 20,
1278 21, 22, 23, 24, 25, 26, -1, -1, -1, 30,
1279 -1, 74, 75, 76, 77, 78, 37, -1, -1, -1,
1280 -1, -1, -1, -1, 45, -1, -1, -1, -1, -1,
1281 -1, -1, -1, 96, -1, 98, 99, 100, 101, 102,
1282 103, -1, -1, -1, 107, 108, 109, 110, 111, 112,
1283 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
1284 -1, -1, -1, -1, -1, 128, -1, 130, 131, -1,
1285 -1, 92, 93, 94, 95, 4, 5, 6, 7, 8,
1286 9, 10, 11, -1, -1, -1, -1, -1, 17, -1,
1287 19, 20, 21, 22, 23, 24, 25, 26, -1, -1,
1288 -1, 30, -1, -1, -1, -1, -1, 128, 37, -1,
1289 -1, -1, 4, 5, 6, 7, 8, 9, 10, 11,
1290 -1, -1, -1, -1, -1, 17, -1, 19, 20, 21,
1291 22, 23, 24, 25, 26, -1, -1, -1, 30, -1,
1292 -1, -1, -1, -1, -1, 37, -1, -1, -1, -1,
1293 -1, -1, -1, -1, 4, 5, 6, 7, 8, 9,
1294 10, 11, -1, 92, 93, 94, 95, 17, -1, 19,
1295 20, 21, 22, 23, 24, 25, 26, -1, -1, -1,
1296 30, -1, -1, -1, -1, -1, -1, 37, -1, -1,
1297 -1, -1, -1, -1, -1, -1, -1, -1, -1, 128,
1298 92, 93, 94, 95, 4, 5, 6, 7, 8, 9,
1299 10, 11, -1, -1, -1, -1, -1, 17, -1, 19,
1300 20, 21, 22, 23, 24, 25, 26, -1, -1, -1,
1301 30, -1, -1, -1, -1, -1, 128, 37, -1, -1,
1302 -1, -1, 92, 93, 94, 95, -1, 3, 4, 5,
1303 6, 7, 8, 9, 10, 11, 12, -1, -1, -1,
1304 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1305 26, -1, -1, -1, 30, 31, -1, 33, 128, 35,
1306 36, 37, -1, -1, 40, -1, -1, -1, -1, -1,
1307 -1, 91, 92, 93, 94, 95, -1, -1, -1, 55,
1308 56, 57, -1, -1, -1, -1, -1, -1, -1, -1,
1309 -1, -1, 68, 69, -1, -1, -1, -1, 74, 75,
1310 76, 77, 78, -1, -1, -1, -1, -1, -1, -1,
1311 -1, -1, -1, -1, -1, -1, 92, 93, 94, 95,
1312 96, -1, 98, 99, 100, 101, 102, 103, -1, -1,
1313 -1, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1314 116, 117, 118, 119, 120, 121, 122, 3, -1, -1,
1315 -1, -1, -1, -1, -1, -1, 12, -1, -1, -1,
1316 -1, 17, 18, -1, -1, -1, -1, -1, -1, -1,
1317 -1, 27, 28, 29, 30, 31, -1, 33, 34, 35,
1318 36, -1, -1, -1, 40, -1, -1, -1, 3, 4,
1319 5, 6, 7, 8, 9, 10, 11, 12, -1, 55,
1320 56, 57, 17, -1, 19, 20, 21, 22, 23, 24,
1321 25, 26, 68, 69, -1, 30, -1, -1, 74, 75,
1322 76, 77, 78, -1, -1, -1, -1, -1, -1, -1,
1323 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1324 96, -1, 98, 99, 100, 101, 102, 103, -1, -1,
1325 -1, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1326 116, 117, 118, 119, 120, 121, 122, 3, -1, -1,
1327 -1, -1, -1, -1, -1, -1, 12, 92, 93, 94,
1328 -1, 17, 18, -1, -1, -1, -1, -1, -1, -1,
1329 -1, 27, -1, -1, 30, 31, -1, 33, -1, 35,
1330 36, -1, -1, -1, 40, -1, -1, -1, -1, -1,
1331 -1, -1, -1, -1, -1, -1, 52, -1, -1, 55,
1332 56, 57, -1, -1, -1, -1, -1, -1, -1, -1,
1333 -1, -1, 68, 69, -1, -1, -1, -1, 74, 75,
1334 76, 77, 78, -1, -1, -1, -1, -1, -1, -1,
1335 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1336 96, 97, 98, 99, 100, 101, 102, 103, -1, -1,
1337 -1, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1338 116, 117, 118, 119, 120, 121, 122, 3, -1, -1,
1339 -1, -1, -1, -1, -1, -1, 12, -1, -1, -1,
1340 -1, 17, 18, -1, -1, -1, -1, -1, -1, -1,
1341 -1, 27, -1, -1, 30, 31, -1, 33, -1, 35,
1342 36, -1, -1, -1, 40, -1, -1, -1, -1, 4,
1343 5, 6, 7, 8, 9, 10, 11, -1, -1, 55,
1344 56, 57, 17, -1, 19, 20, 21, 22, 23, 24,
1345 25, 26, 68, 69, -1, 30, -1, -1, 74, 75,
1346 76, 77, 78, -1, -1, -1, -1, -1, -1, -1,
1347 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1348 96, 97, 98, 99, 100, 101, 102, 103, -1, -1,
1349 -1, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1350 116, 117, 118, 119, 120, 121, 122, 3, -1, -1,
1351 -1, -1, -1, -1, -1, -1, 12, 92, 93, 94,
1352 -1, 17, 18, -1, -1, -1, -1, -1, -1, -1,
1353 -1, -1, -1, -1, 30, 31, -1, 33, -1, 35,
1354 36, -1, -1, -1, 40, -1, -1, -1, -1, -1,
1355 -1, -1, -1, -1, -1, -1, 52, -1, -1, 55,
1356 56, 57, -1, -1, -1, -1, -1, -1, -1, -1,
1357 -1, -1, 68, 69, -1, -1, 72, -1, 74, 75,
1358 76, 77, 78, -1, -1, -1, -1, -1, -1, -1,
1359 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1360 96, -1, 98, 99, 100, 101, 102, 103, -1, -1,
1361 -1, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1362 116, 117, 118, 119, 120, 121, 122, 3, -1, -1,
1363 -1, -1, -1, -1, -1, -1, 12, -1, -1, -1,
1364 -1, 17, 18, -1, -1, -1, -1, -1, -1, -1,
1365 -1, -1, -1, -1, 30, 31, 32, 33, -1, 35,
1366 36, -1, -1, -1, 40, -1, -1, -1, -1, -1,
1367 -1, -1, -1, -1, -1, -1, 52, -1, -1, 55,
1368 56, 57, -1, -1, -1, -1, -1, -1, -1, -1,
1369 -1, -1, 68, 69, -1, -1, -1, -1, 74, 75,
1370 76, 77, 78, -1, -1, -1, -1, -1, -1, -1,
1371 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1372 96, -1, 98, 99, 100, 101, 102, 103, -1, -1,
1373 -1, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1374 116, 117, 118, 119, 120, 121, 122, 3, -1, -1,
1375 -1, -1, -1, -1, -1, -1, 12, -1, -1, -1,
1376 -1, 17, 18, -1, -1, -1, -1, -1, -1, -1,
1377 -1, -1, -1, -1, 30, 31, -1, 33, -1, 35,
1378 36, -1, -1, -1, 40, -1, -1, -1, -1, -1,
1379 -1, 47, -1, -1, -1, -1, -1, -1, -1, 55,
1380 56, 57, -1, -1, -1, -1, -1, -1, -1, -1,
1381 -1, -1, 68, 69, -1, -1, -1, -1, 74, 75,
1382 76, 77, 78, -1, -1, -1, -1, -1, -1, -1,
1383 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1384 96, -1, 98, 99, 100, 101, 102, 103, -1, -1,
1385 -1, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1386 116, 117, 118, 119, 120, 121, 122, 3, -1, -1,
1387 -1, -1, -1, -1, -1, -1, 12, -1, -1, -1,
1388 -1, 17, 18, -1, -1, -1, -1, -1, -1, -1,
1389 -1, -1, -1, -1, 30, 31, -1, 33, -1, 35,
1390 36, -1, -1, -1, 40, -1, -1, -1, -1, -1,
1391 -1, -1, -1, -1, -1, -1, 52, -1, -1, 55,
1392 56, 57, -1, -1, -1, -1, -1, -1, -1, -1,
1393 -1, -1, 68, 69, -1, -1, -1, -1, 74, 75,
1394 76, 77, 78, -1, -1, -1, -1, -1, -1, -1,
1395 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1396 96, -1, 98, 99, 100, 101, 102, 103, -1, -1,
1397 -1, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1398 116, 117, 118, 119, 120, 121, 122, 3, -1, -1,
1399 -1, -1, -1, -1, -1, -1, 12, -1, -1, -1,
1400 -1, 17, 18, -1, -1, -1, -1, -1, -1, -1,
1401 -1, -1, -1, -1, 30, 31, -1, 33, -1, 35,
1402 36, -1, -1, -1, 40, -1, -1, -1, -1, 4,
1403 5, 6, 7, 8, 9, 10, 11, -1, -1, 55,
1404 56, 57, 17, -1, 19, 20, 21, 22, 23, 24,
1405 25, 26, 68, 69, -1, 30, -1, -1, 74, 75,
1406 76, 77, 78, -1, -1, -1, -1, -1, -1, -1,
1407 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1408 96, -1, 98, 99, 100, 101, 102, 103, -1, -1,
1409 -1, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1410 116, 117, 118, 119, 120, 121, 122, 3, -1, -1,
1411 -1, -1, -1, -1, -1, -1, 12, 92, 93, 94,
1412 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1413 26, -1, -1, -1, 30, -1, -1, -1, -1, -1,
1414 -1, -1, -1, -1, 40, -1, -1, -1, -1, -1,
1415 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1416 -1, 57, -1, -1, -1, -1, -1, -1, -1, -1,
1417 -1, -1, -1, -1, -1, -1, -1, -1, 74, 75,
1418 76, 77, 78, -1, -1, -1, -1, -1, -1, -1,
1419 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1420 96, -1, 98, 99, 100, 101, 102, 103, -1, -1,
1421 -1, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1422 116, 117, 118, 119, 120, 121, 122, 3, -1, -1,
1423 -1, -1, -1, -1, -1, -1, 12, -1, -1, -1,
1424 -1, 17, 18, -1, -1, -1, -1, -1, -1, -1,
1425 -1, -1, -1, -1, 30, -1, -1, 33, -1, 35,
1426 36, -1, -1, -1, 40, -1, -1, -1, -1, -1,
1427 -1, -1, -1, -1, -1, -1, -1, -1, -1, 55,
1428 56, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1429 -1, -1, 68, 69, -1, -1, -1, -1, 74, 75,
1430 76, 77, 78, -1, -1, -1, -1, -1, -1, -1,
1431 86, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1432 96, -1, 98, 99, 100, 101, 102, 103, -1, -1,
1433 -1, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1434 116, 117, 118, 119, 120, 121, 122, 3, -1, -1,
1435 -1, -1, -1, -1, -1, -1, 12, -1, -1, -1,
1436 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1437 26, -1, 47, -1, 30, 50, 51, 52, 53, 54,
1438 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1439 65, 66, 67, -1, -1, -1, 3, -1, 73, -1,
1440 -1, 57, -1, -1, -1, 12, -1, -1, -1, -1,
1441 17, 18, -1, -1, -1, -1, -1, -1, 74, 75,
1442 76, 77, 78, 30, -1, -1, -1, -1, -1, -1,
1443 -1, -1, -1, 40, -1, -1, -1, -1, -1, -1,
1444 96, -1, 98, 99, 100, 101, 102, 103, -1, -1,
1445 57, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1446 116, 117, 118, 119, 120, 121, 122, 74, 75, 76,
1447 77, 78, 3, -1, -1, -1, -1, -1, -1, -1,
1448 -1, 12, -1, -1, -1, -1, 17, 18, -1, 96,
1449 -1, 98, 99, 100, 101, 102, 103, -1, -1, 30,
1450 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1451 117, 118, 119, 120, 121, 122, -1, -1, -1, -1,
1452 -1, 3, -1, -1, -1, -1, 57, -1, -1, -1,
1453 12, -1, -1, -1, -1, 17, 18, -1, -1, -1,
1454 -1, -1, -1, 74, 75, 76, 77, 78, 30, -1,
1455 -1, -1, -1, -1, -1, -1, -1, -1, 40, -1,
1456 -1, -1, -1, -1, -1, 96, -1, 98, 99, 100,
1457 101, 102, 103, -1, -1, -1, 107, 108, 109, 110,
1458 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
1459 121, 122, 74, 75, 76, 77, 78, -1, -1, -1,
1460 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1461 -1, -1, -1, -1, 96, -1, 98, 99, 100, 101,
1462 102, 103, -1, -1, -1, 107, 108, 109, 110, 111,
1463 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
1464 122, 3, -1, -1, -1, -1, -1, -1, -1, -1,
1465 12, -1, -1, -1, -1, 17, 18, -1, -1, -1,
1466 -1, -1, -1, -1, -1, -1, -1, -1, 30, -1,
1467 -1, -1, -1, -1, -1, -1, -1, -1, 40, -1,
1468 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1469 -1, -1, 3, -1, -1, -1, -1, -1, -1, -1,
1470 -1, 12, -1, -1, -1, -1, 17, 18, -1, -1,
1471 -1, -1, 74, 75, 76, 77, 78, -1, -1, 30,
1472 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1473 -1, -1, -1, -1, 96, -1, 98, 99, 100, 101,
1474 102, 103, -1, -1, -1, 107, 108, 109, 110, 111,
1475 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
1476 122, 72, -1, 74, 75, 76, 77, 78, 3, -1,
1477 -1, -1, -1, -1, -1, -1, -1, 12, -1, -1,
1478 -1, -1, 17, 18, -1, 96, -1, 98, 99, 100,
1479 101, 102, 103, -1, -1, 30, 107, 108, 109, 110,
1480 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
1481 121, 122, -1, -1, -1, -1, -1, 3, -1, -1,
1482 -1, -1, -1, -1, -1, -1, 12, -1, -1, -1,
1483 -1, 17, 18, -1, -1, -1, -1, 72, -1, 74,
1484 75, 76, 77, 78, 30, -1, -1, -1, -1, -1,
1485 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1486 -1, 96, -1, 98, 99, 100, 101, 102, 103, -1,
1487 -1, -1, 107, 108, 109, 110, 111, 112, 113, 114,
1488 115, 116, 117, 118, 119, 120, 121, 122, 74, 75,
1489 76, 77, 78, -1, -1, -1, -1, -1, -1, -1,
1490 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1491 96, -1, 98, 99, 100, 101, 102, 103, -1, -1,
1492 -1, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1493 116, 117, 118, 119, 120, 121, 122, 4, 5, 6,
1494 7, 8, 9, 10, 11, -1, -1, -1, -1, -1,
1495 17, -1, 19, 20, 21, 22, 23, 24, 25, 26,
1496 -1, -1, -1, 30, -1, -1, -1, -1, -1, -1,
1497 37, 4, 5, 6, 7, 8, 9, 10, 11, -1,
1498 -1, -1, -1, -1, 17, -1, 19, 20, 21, 22,
1499 23, 24, 25, 26, -1, -1, -1, 30, -1, -1,
1500 -1, -1, -1, -1, 37, 72, -1, -1, -1, -1,
1501 -1, -1, -1, -1, -1, -1, 4, 5, 6, 7,
1502 8, 9, 10, 11, -1, 92, 93, 94, 95, 17,
1503 -1, 19, 20, 21, 22, 23, 24, 25, 26, 72,
1504 -1, -1, 30, -1, -1, -1, -1, -1, -1, 37,
1505 4, 5, 6, 7, 8, 9, 10, 11, -1, 92,
1506 93, 94, 95, 17, -1, 19, 20, 21, 22, 23,
1507 24, 25, 26, -1, -1, -1, 30, -1, -1, -1,
1508 -1, -1, -1, 37, -1, -1, -1, -1, -1, -1,
1509 -1, -1, -1, -1, -1, 4, 5, 6, 7, 8,
1510 9, 10, 11, -1, 92, 93, 94, 95, 17, -1,
1511 19, 20, 21, 22, 23, 24, 25, 26, -1, -1,
1512 -1, 30, -1, -1, -1, -1, -1, -1, 37, 4,
1513 5, 6, 7, 8, 9, 10, 11, -1, 92, 93,
1514 94, 95, 17, -1, 19, 20, 21, 22, 23, 24,
1515 25, 26, -1, -1, -1, 30, -1, -1, -1, -1,
1516 -1, -1, 37, -1, -1, -1, -1, -1, -1, -1,
1517 -1, -1, -1, -1, 4, 5, 6, 7, 8, 9,
1518 10, 11, -1, 92, 93, 94, 95, 17, -1, 19,
1519 20, 21, 22, 23, 24, 25, 26, -1, -1, -1,
1520 30, -1, -1, -1, -1, -1, -1, 37, 4, 5,
1521 6, 7, 8, 9, 10, 11, -1, 92, 93, 94,
1522 95, -1, -1, 19, 20, 21, 22, 23, 24, 25,
1523 26, -1, -1, -1, 30, -1, -1, -1, 34, 35,
1524 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1525 -1, -1, -1, -1, -1, 39, 52, -1, -1, -1,
1526 -1, -1, 92, 93, 94, 95, 50, 51, 52, 53,
1527 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1528 64, 65, 66, 67, -1, -1, -1, -1, -1, 73,
1529 41, -1, -1, -1, -1, -1, 92, 93, 94, 50,
1530 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1531 61, 62, 63, 64, 65, 66, 67, 41, -1, -1,
1532 -1, -1, 73, -1, -1, -1, 50, 51, 52, 53,
1533 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1534 64, 65, 66, 67, 41, -1, -1, -1, -1, 73,
1535 -1, -1, -1, 50, 51, 52, 53, 54, 55, 56,
1536 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1537 67, 42, -1, -1, -1, -1, 73, -1, -1, 50,
1538 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1539 61, 62, 63, 64, 65, 66, 67, 43, -1, -1,
1540 -1, -1, 73, -1, 50, 51, 52, 53, 54, 55,
1541 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1542 66, 67, 43, -1, -1, -1, -1, 73, -1, 50,
1543 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1544 61, 62, 63, 64, 65, 66, 67, -1, -1, -1,
1545 -1, -1, 73, 50, 51, 52, 53, 54, 55, 56,
1546 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1547 67, -1, -1, -1, -1, -1, 73, 50, 51, 52,
1548 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1549 63, 64, 65, 66, 67, -1, -1, -1, -1, -1,
1550 73, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1551 59, 60, 61, 62, 63, 64, 65, 66, 67, -1,
1552 -1, -1, -1, -1, 73, 50, 51, 52, 53, 54,
1553 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1554 65, 66, 67, -1, -1, -1, -1, -1, 73
1555 };
1556
1557 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1558 symbol of state STATE-NUM. */
1559 static const unsigned short int yystos[] =
1560 {
1561 0, 4, 5, 6, 7, 8, 9, 10, 11, 17,
1562 19, 20, 21, 22, 23, 24, 25, 26, 30, 37,
1563 38, 39, 49, 91, 92, 93, 94, 95, 96, 97,
1564 99, 123, 128, 130, 141, 142, 143, 144, 145, 163,
1565 168, 173, 174, 175, 176, 177, 178, 179, 180, 181,
1566 186, 189, 190, 193, 197, 198, 199, 200, 201, 202,
1567 205, 207, 208, 214, 222, 233, 234, 9, 11, 3,
1568 12, 17, 18, 30, 40, 57, 74, 75, 76, 77,
1569 78, 96, 98, 99, 100, 101, 102, 103, 107, 108,
1570 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
1571 119, 120, 121, 122, 138, 230, 231, 232, 249, 259,
1572 30, 92, 93, 94, 95, 198, 205, 174, 38, 74,
1573 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1574 85, 87, 88, 89, 90, 146, 147, 148, 149, 151,
1575 152, 153, 17, 92, 93, 128, 169, 171, 173, 199,
1576 200, 205, 214, 223, 224, 138, 138, 138, 225, 3,
1577 6, 10, 12, 17, 164, 165, 174, 34, 130, 198,
1578 234, 52, 267, 268, 30, 91, 197, 198, 0, 143,
1579 138, 206, 229, 230, 4, 5, 6, 9, 182, 6,
1580 179, 185, 39, 132, 187, 40, 40, 44, 44, 229,
1581 230, 95, 40, 138, 131, 232, 138, 138, 138, 42,
1582 191, 27, 28, 29, 128, 130, 131, 138, 154, 155,
1583 38, 0, 3, 4, 5, 6, 7, 8, 9, 10,
1584 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1585 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1586 31, 32, 33, 34, 35, 36, 37, 39, 40, 41,
1587 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1588 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1589 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1590 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1591 82, 83, 84, 85, 86, 87, 89, 91, 92, 93,
1592 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
1593 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1594 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
1595 126, 128, 129, 130, 131, 132, 139, 158, 159, 158,
1596 34, 126, 150, 138, 154, 33, 35, 36, 40, 55,
1597 56, 68, 69, 86, 137, 138, 160, 219, 138, 138,
1598 225, 138, 225, 171, 39, 178, 138, 43, 227, 227,
1599 227, 227, 230, 31, 39, 198, 44, 194, 44, 31,
1600 169, 187, 194, 46, 228, 40, 138, 6, 183, 6,
1601 9, 184, 182, 40, 39, 17, 95, 173, 203, 204,
1602 205, 203, 138, 215, 216, 100, 101, 102, 103, 104,
1603 105, 106, 240, 241, 242, 255, 256, 262, 263, 264,
1604 138, 229, 192, 206, 230, 125, 158, 139, 34, 35,
1605 40, 52, 221, 160, 40, 138, 160, 40, 50, 51,
1606 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1607 62, 63, 64, 65, 66, 67, 73, 136, 39, 43,
1608 44, 210, 210, 39, 209, 210, 209, 40, 138, 48,
1609 194, 0, 3, 4, 5, 6, 7, 8, 9, 10,
1610 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1611 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1612 31, 32, 33, 34, 35, 36, 37, 39, 40, 41,
1613 42, 43, 46, 47, 48, 49, 50, 51, 52, 53,
1614 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1615 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1616 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1617 84, 85, 86, 87, 89, 91, 92, 93, 94, 95,
1618 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1619 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1620 116, 117, 118, 119, 120, 121, 122, 123, 126, 128,
1621 129, 130, 131, 132, 140, 194, 195, 196, 240, 40,
1622 39, 39, 31, 33, 35, 40, 47, 137, 206, 217,
1623 218, 219, 229, 228, 6, 34, 188, 230, 17, 229,
1624 41, 42, 41, 42, 48, 42, 45, 206, 245, 217,
1625 237, 257, 258, 259, 267, 206, 138, 265, 266, 18,
1626 258, 259, 45, 241, 217, 41, 138, 42, 40, 174,
1627 220, 221, 30, 41, 138, 160, 161, 162, 160, 160,
1628 40, 128, 170, 171, 172, 173, 211, 214, 223, 224,
1629 206, 206, 229, 27, 28, 29, 34, 166, 167, 217,
1630 45, 196, 45, 3, 6, 10, 12, 13, 14, 15,
1631 16, 17, 41, 235, 236, 238, 239, 30, 95, 173,
1632 217, 217, 47, 73, 136, 138, 34, 41, 230, 228,
1633 17, 72, 204, 228, 72, 217, 216, 48, 39, 48,
1634 39, 40, 32, 48, 40, 39, 42, 39, 39, 41,
1635 206, 72, 138, 156, 157, 229, 41, 41, 41, 42,
1636 43, 33, 172, 43, 226, 45, 170, 227, 227, 138,
1637 39, 43, 41, 42, 237, 41, 41, 217, 217, 41,
1638 41, 41, 27, 97, 98, 116, 217, 244, 246, 247,
1639 248, 249, 268, 257, 206, 267, 192, 266, 41, 42,
1640 160, 160, 42, 33, 43, 42, 212, 226, 210, 210,
1641 41, 238, 43, 236, 238, 48, 217, 43, 228, 228,
1642 116, 246, 17, 18, 249, 252, 40, 40, 244, 42,
1643 260, 206, 41, 158, 72, 138, 33, 43, 40, 206,
1644 213, 39, 212, 238, 267, 166, 217, 40, 217, 237,
1645 72, 257, 261, 41, 39, 41, 43, 33, 226, 42,
1646 39, 72, 237, 42, 42, 250, 41, 42, 40, 42,
1647 206, 32, 40, 217, 206, 243, 244, 245, 251, 268,
1648 41, 257, 33, 33, 226, 41, 253, 254, 257, 41,
1649 42, 244, 42, 41, 43, 41, 42, 243, 33, 238,
1650 41, 257, 41
1651 };
1652
1653 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1654 static const unsigned short int yyr1[] =
1655 {
1656 0, 135, 136, 136, 136, 136, 136, 136, 136, 136,
1657 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1658 137, 137, 137, 137, 138, 138, 138, 138, 138, 138,
1659 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
1660 138, 138, 139, 139, 139, 139, 139, 139, 139, 139,
1661 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
1662 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
1663 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
1664 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
1665 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
1666 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
1667 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
1668 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
1669 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
1670 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
1671 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
1672 139, 139, 139, 139, 139, 139, 139, 140, 140, 140,
1673 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
1674 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
1675 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
1676 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
1677 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
1678 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
1679 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
1680 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
1681 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
1682 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
1683 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
1684 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
1685 141, 141, 142, 142, 143, 143, 143, 143, 143, 143,
1686 143, 143, 143, 143, 143, 143, 143, 143, 144, 145,
1687 145, 146, 146, 146, 146, 146, 146, 146, 146, 147,
1688 147, 148, 148, 149, 149, 149, 150, 150, 151, 151,
1689 152, 152, 152, 153, 153, 154, 154, 154, 154, 154,
1690 154, 154, 155, 155, 156, 156, 156, 156, 157, 157,
1691 158, 158, 159, 159, 160, 160, 160, 160, 160, 160,
1692 160, 160, 160, 160, 160, 161, 161, 162, 162, 163,
1693 164, 165, 165, 165, 165, 166, 166, 166, 167, 167,
1694 167, 167, 168, 168, 168, 169, 169, 170, 170, 171,
1695 171, 171, 171, 171, 171, 172, 172, 172, 172, 172,
1696 173, 173, 173, 174, 174, 175, 175, 175, 176, 176,
1697 176, 176, 177, 177, 177, 178, 178, 178, 178, 178,
1698 178, 178, 178, 179, 179, 180, 180, 180, 181, 181,
1699 181, 181, 182, 182, 182, 182, 182, 183, 183, 184,
1700 184, 184, 184, 185, 185, 185, 186, 186, 187, 187,
1701 188, 188, 189, 190, 191, 191, 192, 192, 193, 193,
1702 193, 194, 195, 195, 196, 196, 197, 197, 198, 198,
1703 199, 199, 200, 200, 201, 201, 201, 201, 202, 202,
1704 203, 203, 203, 203, 204, 204, 204, 204, 205, 205,
1705 205, 205, 206, 206, 207, 208, 209, 209, 210, 211,
1706 211, 212, 212, 213, 213, 214, 215, 215, 216, 216,
1707 217, 217, 217, 217, 217, 217, 218, 218, 218, 218,
1708 218, 219, 219, 220, 220, 221, 221, 221, 222, 223,
1709 224, 225, 225, 226, 226, 226, 226, 227, 227, 228,
1710 228, 228, 229, 229, 230, 230, 231, 231, 232, 232,
1711 233, 233, 234, 234, 234, 235, 235, 236, 236, 237,
1712 238, 239, 239, 239, 239, 239, 239, 239, 239, 239,
1713 240, 240, 241, 241, 241, 241, 241, 242, 242, 243,
1714 243, 243, 244, 244, 244, 244, 244, 244, 245, 245,
1715 246, 247, 248, 249, 249, 249, 249, 249, 249, 249,
1716 249, 249, 249, 250, 250, 251, 251, 252, 252, 253,
1717 253, 254, 254, 255, 256, 257, 257, 257, 258, 258,
1718 259, 259, 259, 259, 259, 259, 259, 259, 260, 260,
1719 261, 261, 262, 263, 263, 264, 265, 265, 266, 267,
1720 267, 268
1721 };
1722
1723 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
1724 static const unsigned char yyr2[] =
1725 {
1726 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1727 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1728 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1729 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1730 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1731 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1732 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1733 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1734 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1735 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1736 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1737 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1738 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1739 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1740 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1741 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1742 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1743 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1744 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1745 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1746 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1747 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1748 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1749 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1750 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1751 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1752 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1753 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1754 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1755 0, 1, 1, 2, 1, 1, 1, 1, 1, 1,
1756 1, 1, 1, 1, 1, 1, 1, 1, 3, 2,
1757 3, 2, 2, 1, 2, 2, 2, 1, 2, 1,
1758 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1759 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1760 1, 1, 6, 2, 0, 1, 1, 3, 1, 3,
1761 0, 1, 1, 2, 3, 2, 3, 5, 2, 4,
1762 1, 1, 1, 1, 4, 0, 1, 1, 3, 6,
1763 1, 1, 1, 1, 1, 0, 1, 1, 1, 1,
1764 1, 1, 3, 4, 4, 1, 2, 1, 2, 1,
1765 1, 2, 4, 4, 2, 1, 1, 1, 3, 3,
1766 2, 2, 1, 1, 1, 2, 2, 2, 1, 1,
1767 1, 1, 1, 1, 2, 1, 1, 1, 1, 1,
1768 1, 1, 1, 1, 1, 1, 1, 2, 1, 1,
1769 2, 2, 0, 1, 2, 1, 2, 0, 1, 0,
1770 1, 1, 2, 0, 1, 2, 3, 4, 0, 4,
1771 1, 2, 2, 3, 0, 2, 1, 3, 3, 3,
1772 4, 3, 1, 2, 1, 1, 1, 2, 1, 1,
1773 5, 7, 5, 7, 6, 7, 6, 5, 1, 2,
1774 0, 1, 1, 3, 1, 2, 3, 2, 1, 2,
1775 4, 3, 3, 2, 4, 4, 1, 1, 3, 4,
1776 5, 0, 2, 2, 4, 4, 1, 3, 1, 3,
1777 1, 4, 3, 3, 2, 5, 1, 1, 1, 1,
1778 1, 4, 2, 1, 2, 2, 1, 1, 2, 2,
1779 2, 0, 1, 0, 2, 7, 9, 0, 7, 0,
1780 2, 3, 0, 1, 1, 2, 1, 2, 1, 2,
1781 4, 5, 7, 8, 13, 1, 3, 2, 4, 2,
1782 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1783 1, 2, 1, 1, 1, 1, 1, 3, 6, 1,
1784 2, 1, 1, 1, 2, 1, 1, 1, 3, 4,
1785 6, 8, 5, 1, 1, 1, 1, 1, 1, 1,
1786 1, 1, 1, 0, 2, 1, 3, 1, 1, 0,
1787 1, 1, 3, 3, 3, 1, 1, 3, 5, 6,
1788 1, 1, 1, 1, 1, 1, 1, 1, 0, 2,
1789 1, 3, 3, 1, 1, 3, 1, 3, 4, 0,
1790 1, 1
1791 };
1792
1793
1794 /* YYDPREC[RULE-NUM] -- Dynamic precedence of rule #RULE-NUM (0 if none). */
1795 static const unsigned char yydprec[] =
1796 {
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
1862 };
1863
1864 /* YYMERGER[RULE-NUM] -- Index of merging function for rule #RULE-NUM. */
1865 static const unsigned char yymerger[] =
1866 {
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
1932 };
1933
1934 /* YYIMMEDIATE[RULE-NUM] -- True iff rule #RULE-NUM is not to be deferred, as
1935 in the case of predicates. */
1936 static const yybool yyimmediate[] =
1937 {
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, 0, 0, 0,
1991 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1992 0, 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, 0, 0, 0, 0, 0, 0,
1999 0, 0, 0, 0, 0, 0, 0, 0, 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
2003 };
2004
2005 /* YYCONFLP[YYPACT[STATE-NUM]] -- Pointer into YYCONFL of start of
2006 list of conflicting reductions corresponding to action entry for
2007 state STATE-NUM in yytable. 0 means no conflicts. The list in
2008 yyconfl is terminated by a rule number of 0. */
2009 static const unsigned short int yyconflp[] =
2010 {
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, 5,
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, 265, 0, 0, 0, 0, 267, 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, 0, 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, 0, 0, 0,
2039 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2040 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2041 0, 0, 0, 0, 0, 0, 0, 269, 0, 0,
2042 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2043 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2044 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2045 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2046 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2047 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2048 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2049 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2050 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2051 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2052 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2053 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2054 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2055 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2056 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2057 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2058 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2059 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2060 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2061 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2062 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2063 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2064 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2065 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2066 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2067 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2068 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2069 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2070 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2071 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2072 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2073 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2074 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2075 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2076 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2077 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2078 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2079 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2080 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2081 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2082 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2083 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2084 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2085 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2086 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2087 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2088 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2089 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2090 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2091 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2092 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2093 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2094 0, 0, 0, 0, 0, 0, 0, 7, 0, 0,
2095 9, 11, 13, 15, 17, 19, 21, 23, 25, 27,
2096 29, 31, 33, 35, 37, 39, 41, 43, 45, 47,
2097 49, 51, 53, 55, 57, 59, 61, 63, 65, 67,
2098 69, 71, 73, 75, 77, 79, 81, 83, 85, 87,
2099 89, 91, 93, 95, 97, 99, 101, 103, 105, 107,
2100 109, 111, 113, 115, 117, 119, 121, 123, 125, 127,
2101 129, 131, 133, 135, 137, 139, 141, 143, 145, 147,
2102 149, 151, 153, 155, 157, 159, 161, 163, 165, 167,
2103 169, 171, 173, 175, 177, 0, 179, 0, 181, 183,
2104 185, 187, 189, 191, 193, 195, 197, 199, 201, 203,
2105 205, 207, 209, 211, 213, 215, 217, 219, 221, 223,
2106 225, 227, 229, 231, 233, 235, 237, 239, 241, 243,
2107 245, 0, 247, 249, 0, 251, 253, 255, 257, 259,
2108 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2109 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2110 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2111 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2112 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2113 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2114 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2115 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2116 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2117 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2118 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2119 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2120 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2121 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2122 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2123 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2125 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2126 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2127 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2128 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2129 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2130 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2131 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2132 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2133 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2134 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2135 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2136 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2137 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2138 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2139 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2140 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2141 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2142 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2143 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2144 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2145 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2146 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2147 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2148 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2149 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2150 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2151 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2152 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2153 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2154 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2155 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2156 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2157 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2159 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2160 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2161 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2162 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2163 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2164 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2165 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2166 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2167 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2168 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2169 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2170 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2171 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2172 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2173 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2174 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2175 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2176 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2177 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2178 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2180 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2181 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2182 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2183 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2184 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2185 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2186 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2187 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2188 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2189 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2190 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2191 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2192 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2193 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2194 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2195 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2196 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2197 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2198 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2199 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2200 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2201 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2202 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2203 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2204 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2205 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2206 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2207 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2208 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2209 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2210 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2211 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2212 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2213 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2214 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2215 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2216 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2217 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2218 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2219 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2220 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2222 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2223 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2224 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2225 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2226 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2227 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2228 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2229 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2230 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2231 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2232 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2233 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2234 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2235 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2236 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2237 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2238 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2239 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2240 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2242 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2243 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2244 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2245 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2246 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2247 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2248 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2249 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2250 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2251 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2252 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2253 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2254 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2255 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2256 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2257 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2258 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2259 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2260 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2261 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2262 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2263 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2264 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2265 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2266 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2267 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2268 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2269 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2270 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2271 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2272 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2273 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2274 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2275 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2276 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2277 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2278 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2279 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2280 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2281 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2282 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2283 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2284 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2285 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2286 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2287 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2288 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2289 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2290 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2291 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2292 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2293 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2294 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2295 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2296 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2297 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2298 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2299 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2300 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2301 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2302 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2303 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2304 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2305 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2306 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2307 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2308 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2309 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2310 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2311 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2312 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2313 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2314 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2315 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2316 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2317 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2318 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2319 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2320 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2321 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2322 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2323 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2325 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2326 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2327 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2328 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2329 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2330 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2331 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2332 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2333 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2334 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2335 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2336 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2337 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2338 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2339 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2340 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2341 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2342 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2344 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2345 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2346 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2347 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2348 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2349 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2350 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2351 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2352 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2353 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2354 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2355 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2356 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2357 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2358 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2359 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2360 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2361 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2362 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2363 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2364 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2365 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2366 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2367 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2368 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2369 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2370 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2371 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2372 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2373 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2374 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2375 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2376 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2377 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
2378 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2379 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
2380 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2381 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2382 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2384 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2385 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2386 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2387 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2388 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2389 0, 0, 261, 0, 0, 0, 0, 0, 0, 0,
2390 0, 0, 0, 0, 0, 263, 0, 0, 0, 0,
2391 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2393 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2394 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2395 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2400 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2401 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2402 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2403 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2405 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2406 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2408 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2409 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2410 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2411 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2412 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2413 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2414 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2415 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2416 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2417 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2418 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2423 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2424 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2425 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2426 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2427 0, 0, 0, 0, 271, 0, 0, 0, 0, 0,
2428 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2429 0, 0, 0, 0, 0, 0, 0, 0, 273
2430 };
2431
2432 /* YYCONFL[I] -- lists of conflicting rule numbers, each terminated by
2433 0, pointed into by YYCONFLP. */
2434 static const short int yyconfl[] =
2435 {
2436 0, 411, 0, 411, 0, 488, 0, 626, 0, 626,
2437 0, 626, 0, 626, 0, 626, 0, 626, 0, 626,
2438 0, 626, 0, 626, 0, 626, 0, 626, 0, 626,
2439 0, 626, 0, 626, 0, 626, 0, 626, 0, 626,
2440 0, 626, 0, 626, 0, 626, 0, 626, 0, 626,
2441 0, 626, 0, 626, 0, 626, 0, 626, 0, 626,
2442 0, 626, 0, 626, 0, 626, 0, 626, 0, 626,
2443 0, 626, 0, 626, 0, 626, 0, 626, 0, 626,
2444 0, 626, 0, 626, 0, 626, 0, 626, 0, 626,
2445 0, 626, 0, 626, 0, 626, 0, 626, 0, 626,
2446 0, 626, 0, 626, 0, 626, 0, 626, 0, 626,
2447 0, 626, 0, 626, 0, 626, 0, 626, 0, 626,
2448 0, 626, 0, 626, 0, 626, 0, 626, 0, 626,
2449 0, 626, 0, 626, 0, 626, 0, 626, 0, 626,
2450 0, 626, 0, 626, 0, 626, 0, 626, 0, 626,
2451 0, 626, 0, 626, 0, 626, 0, 626, 0, 626,
2452 0, 626, 0, 626, 0, 626, 0, 626, 0, 626,
2453 0, 626, 0, 626, 0, 626, 0, 626, 0, 626,
2454 0, 626, 0, 626, 0, 626, 0, 626, 0, 626,
2455 0, 626, 0, 626, 0, 626, 0, 626, 0, 626,
2456 0, 626, 0, 626, 0, 626, 0, 626, 0, 626,
2457 0, 626, 0, 626, 0, 626, 0, 626, 0, 626,
2458 0, 626, 0, 626, 0, 626, 0, 626, 0, 626,
2459 0, 626, 0, 626, 0, 626, 0, 626, 0, 626,
2460 0, 626, 0, 626, 0, 626, 0, 626, 0, 626,
2461 0, 626, 0, 626, 0, 626, 0, 626, 0, 626,
2462 0, 411, 0, 411, 0, 532, 0, 532, 0, 411,
2463 0, 357, 0, 515, 0
2464 };
2465
2466 /* Error token number */
2467 #define YYTERROR 1
2468
2469
2470
2471
2472 #undef yynerrs
2473 #define yynerrs (yystackp->yyerrcnt)
2474 #undef yychar
2475 #define yychar (yystackp->yyrawchar)
2476 #undef yylval
2477 #define yylval (yystackp->yyval)
2478 #undef yylloc
2479 #define yylloc (yystackp->yyloc)
2480 #define psi_parser_proc_nerrs yynerrs
2481 #define psi_parser_proc_char yychar
2482 #define psi_parser_proc_lval yylval
2483 #define psi_parser_proc_lloc yylloc
2484
2485 static const int YYEOF = 0;
2486 static const int YYEMPTY = -2;
2487
2488 typedef enum { yyok, yyaccept, yyabort, yyerr } YYRESULTTAG;
2489
2490 #define YYCHK(YYE) \
2491 do { \
2492 YYRESULTTAG yychk_flag = YYE; \
2493 if (yychk_flag != yyok) \
2494 return yychk_flag; \
2495 } while (0)
2496
2497 #if YYDEBUG
2498
2499 # ifndef YYFPRINTF
2500 # define YYFPRINTF fprintf
2501 # endif
2502
2503 /* This macro is provided for backward compatibility. */
2504 #ifndef YY_LOCATION_PRINT
2505 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2506 #endif
2507
2508
2509 # define YYDPRINTF(Args) \
2510 do { \
2511 if (yydebug) \
2512 YYFPRINTF Args; \
2513 } while (0)
2514
2515
2516 /*----------------------------------------.
2517 | Print this symbol's value on YYOUTPUT. |
2518 `----------------------------------------*/
2519
2520 static void
2521 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
2522 {
2523 FILE *yyo = yyoutput;
2524 YYUSE (yyo);
2525 YYUSE (P);
2526 YYUSE (tokens);
2527 YYUSE (index);
2528 if (!yyvaluep)
2529 return;
2530 YYUSE (yytype);
2531 }
2532
2533
2534 /*--------------------------------.
2535 | Print this symbol on YYOUTPUT. |
2536 `--------------------------------*/
2537
2538 static void
2539 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
2540 {
2541 YYFPRINTF (yyoutput, "%s %s (",
2542 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2543
2544 yy_symbol_value_print (yyoutput, yytype, yyvaluep, P, tokens, index);
2545 YYFPRINTF (yyoutput, ")");
2546 }
2547
2548 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2549 do { \
2550 if (yydebug) \
2551 { \
2552 YYFPRINTF (stderr, "%s ", Title); \
2553 yy_symbol_print (stderr, Type, Value, P, tokens, index); \
2554 YYFPRINTF (stderr, "\n"); \
2555 } \
2556 } while (0)
2557
2558 /* Nonzero means print parse trace. It is left uninitialized so that
2559 multiple parsers can coexist. */
2560 int yydebug;
2561
2562 struct yyGLRStack;
2563 static void yypstack (struct yyGLRStack* yystackp, size_t yyk)
2564 YY_ATTRIBUTE_UNUSED;
2565 static void yypdumpstack (struct yyGLRStack* yystackp)
2566 YY_ATTRIBUTE_UNUSED;
2567
2568 #else /* !YYDEBUG */
2569
2570 # define YYDPRINTF(Args)
2571 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2572
2573 #endif /* !YYDEBUG */
2574
2575 /* YYINITDEPTH -- initial size of the parser's stacks. */
2576 #ifndef YYINITDEPTH
2577 # define YYINITDEPTH 200
2578 #endif
2579
2580 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2581 if the built-in stack extension method is used).
2582
2583 Do not make this value too large; the results are undefined if
2584 SIZE_MAX < YYMAXDEPTH * sizeof (GLRStackItem)
2585 evaluated with infinite-precision integer arithmetic. */
2586
2587 #ifndef YYMAXDEPTH
2588 # define YYMAXDEPTH 10000
2589 #endif
2590
2591 /* Minimum number of free items on the stack allowed after an
2592 allocation. This is to allow allocation and initialization
2593 to be completed by functions that call yyexpandGLRStack before the
2594 stack is expanded, thus insuring that all necessary pointers get
2595 properly redirected to new data. */
2596 #define YYHEADROOM 2
2597
2598 #ifndef YYSTACKEXPANDABLE
2599 # define YYSTACKEXPANDABLE 1
2600 #endif
2601
2602 #if YYSTACKEXPANDABLE
2603 # define YY_RESERVE_GLRSTACK(Yystack) \
2604 do { \
2605 if (Yystack->yyspaceLeft < YYHEADROOM) \
2606 yyexpandGLRStack (Yystack); \
2607 } while (0)
2608 #else
2609 # define YY_RESERVE_GLRSTACK(Yystack) \
2610 do { \
2611 if (Yystack->yyspaceLeft < YYHEADROOM) \
2612 yyMemoryExhausted (Yystack); \
2613 } while (0)
2614 #endif
2615
2616
2617 #if YYERROR_VERBOSE
2618
2619 # ifndef yystpcpy
2620 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2621 # define yystpcpy stpcpy
2622 # else
2623 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2624 YYDEST. */
2625 static char *
2626 yystpcpy (char *yydest, const char *yysrc)
2627 {
2628 char *yyd = yydest;
2629 const char *yys = yysrc;
2630
2631 while ((*yyd++ = *yys++) != '\0')
2632 continue;
2633
2634 return yyd - 1;
2635 }
2636 # endif
2637 # endif
2638
2639 # ifndef yytnamerr
2640 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2641 quotes and backslashes, so that it's suitable for yyerror. The
2642 heuristic is that double-quoting is unnecessary unless the string
2643 contains an apostrophe, a comma, or backslash (other than
2644 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2645 null, do not copy; instead, return the length of what the result
2646 would have been. */
2647 static size_t
2648 yytnamerr (char *yyres, const char *yystr)
2649 {
2650 if (*yystr == '"')
2651 {
2652 size_t yyn = 0;
2653 char const *yyp = yystr;
2654
2655 for (;;)
2656 switch (*++yyp)
2657 {
2658 case '\'':
2659 case ',':
2660 goto do_not_strip_quotes;
2661
2662 case '\\':
2663 if (*++yyp != '\\')
2664 goto do_not_strip_quotes;
2665 /* Fall through. */
2666 default:
2667 if (yyres)
2668 yyres[yyn] = *yyp;
2669 yyn++;
2670 break;
2671
2672 case '"':
2673 if (yyres)
2674 yyres[yyn] = '\0';
2675 return yyn;
2676 }
2677 do_not_strip_quotes: ;
2678 }
2679
2680 if (! yyres)
2681 return strlen (yystr);
2682
2683 return yystpcpy (yyres, yystr) - yyres;
2684 }
2685 # endif
2686
2687 #endif /* !YYERROR_VERBOSE */
2688
2689 /** State numbers, as in LALR(1) machine */
2690 typedef int yyStateNum;
2691
2692 /** Rule numbers, as in LALR(1) machine */
2693 typedef int yyRuleNum;
2694
2695 /** Grammar symbol */
2696 typedef int yySymbol;
2697
2698 /** Item references, as in LALR(1) machine */
2699 typedef short int yyItemNum;
2700
2701 typedef struct yyGLRState yyGLRState;
2702 typedef struct yyGLRStateSet yyGLRStateSet;
2703 typedef struct yySemanticOption yySemanticOption;
2704 typedef union yyGLRStackItem yyGLRStackItem;
2705 typedef struct yyGLRStack yyGLRStack;
2706
2707 struct yyGLRState {
2708 /** Type tag: always true. */
2709 yybool yyisState;
2710 /** Type tag for yysemantics. If true, yysval applies, otherwise
2711 * yyfirstVal applies. */
2712 yybool yyresolved;
2713 /** Number of corresponding LALR(1) machine state. */
2714 yyStateNum yylrState;
2715 /** Preceding state in this stack */
2716 yyGLRState* yypred;
2717 /** Source position of the last token produced by my symbol */
2718 size_t yyposn;
2719 union {
2720 /** First in a chain of alternative reductions producing the
2721 * non-terminal corresponding to this state, threaded through
2722 * yynext. */
2723 yySemanticOption* yyfirstVal;
2724 /** Semantic value for this state. */
2725 YYSTYPE yysval;
2726 } yysemantics;
2727 };
2728
2729 struct yyGLRStateSet {
2730 yyGLRState** yystates;
2731 /** During nondeterministic operation, yylookaheadNeeds tracks which
2732 * stacks have actually needed the current lookahead. During deterministic
2733 * operation, yylookaheadNeeds[0] is not maintained since it would merely
2734 * duplicate yychar != YYEMPTY. */
2735 yybool* yylookaheadNeeds;
2736 size_t yysize, yycapacity;
2737 };
2738
2739 struct yySemanticOption {
2740 /** Type tag: always false. */
2741 yybool yyisState;
2742 /** Rule number for this reduction */
2743 yyRuleNum yyrule;
2744 /** The last RHS state in the list of states to be reduced. */
2745 yyGLRState* yystate;
2746 /** The lookahead for this reduction. */
2747 int yyrawchar;
2748 YYSTYPE yyval;
2749 /** Next sibling in chain of options. To facilitate merging,
2750 * options are chained in decreasing order by address. */
2751 yySemanticOption* yynext;
2752 };
2753
2754 /** Type of the items in the GLR stack. The yyisState field
2755 * indicates which item of the union is valid. */
2756 union yyGLRStackItem {
2757 yyGLRState yystate;
2758 yySemanticOption yyoption;
2759 };
2760
2761 struct yyGLRStack {
2762 int yyerrState;
2763
2764
2765 int yyerrcnt;
2766 int yyrawchar;
2767 YYSTYPE yyval;
2768
2769 YYJMP_BUF yyexception_buffer;
2770 yyGLRStackItem* yyitems;
2771 yyGLRStackItem* yynextFree;
2772 size_t yyspaceLeft;
2773 yyGLRState* yysplitPoint;
2774 yyGLRState* yylastDeleted;
2775 yyGLRStateSet yytops;
2776 };
2777
2778 #if YYSTACKEXPANDABLE
2779 static void yyexpandGLRStack (yyGLRStack* yystackp);
2780 #endif
2781
2782 static _Noreturn void
2783 yyFail (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char* yymsg)
2784 {
2785 if (yymsg != YY_NULLPTR)
2786 yyerror (P, tokens, index, yymsg);
2787 YYLONGJMP (yystackp->yyexception_buffer, 1);
2788 }
2789
2790 static _Noreturn void
2791 yyMemoryExhausted (yyGLRStack* yystackp)
2792 {
2793 YYLONGJMP (yystackp->yyexception_buffer, 2);
2794 }
2795
2796 #if YYDEBUG || YYERROR_VERBOSE
2797 /** A printable representation of TOKEN. */
2798 static inline const char*
2799 yytokenName (yySymbol yytoken)
2800 {
2801 if (yytoken == YYEMPTY)
2802 return "";
2803
2804 return yytname[yytoken];
2805 }
2806 #endif
2807
2808 /** Fill in YYVSP[YYLOW1 .. YYLOW0-1] from the chain of states starting
2809 * at YYVSP[YYLOW0].yystate.yypred. Leaves YYVSP[YYLOW1].yystate.yypred
2810 * containing the pointer to the next state in the chain. */
2811 static void yyfillin (yyGLRStackItem *, int, int) YY_ATTRIBUTE_UNUSED;
2812 static void
2813 yyfillin (yyGLRStackItem *yyvsp, int yylow0, int yylow1)
2814 {
2815 int i;
2816 yyGLRState *s = yyvsp[yylow0].yystate.yypred;
2817 for (i = yylow0-1; i >= yylow1; i -= 1)
2818 {
2819 #if YYDEBUG
2820 yyvsp[i].yystate.yylrState = s->yylrState;
2821 #endif
2822 yyvsp[i].yystate.yyresolved = s->yyresolved;
2823 if (s->yyresolved)
2824 yyvsp[i].yystate.yysemantics.yysval = s->yysemantics.yysval;
2825 else
2826 /* The effect of using yysval or yyloc (in an immediate rule) is
2827 * undefined. */
2828 yyvsp[i].yystate.yysemantics.yyfirstVal = YY_NULLPTR;
2829 s = yyvsp[i].yystate.yypred = s->yypred;
2830 }
2831 }
2832
2833 /* Do nothing if YYNORMAL or if *YYLOW <= YYLOW1. Otherwise, fill in
2834 * YYVSP[YYLOW1 .. *YYLOW-1] as in yyfillin and set *YYLOW = YYLOW1.
2835 * For convenience, always return YYLOW1. */
2836 static inline int yyfill (yyGLRStackItem *, int *, int, yybool)
2837 YY_ATTRIBUTE_UNUSED;
2838 static inline int
2839 yyfill (yyGLRStackItem *yyvsp, int *yylow, int yylow1, yybool yynormal)
2840 {
2841 if (!yynormal && yylow1 < *yylow)
2842 {
2843 yyfillin (yyvsp, *yylow, yylow1);
2844 *yylow = yylow1;
2845 }
2846 return yylow1;
2847 }
2848
2849 /** Perform user action for rule number YYN, with RHS length YYRHSLEN,
2850 * and top stack item YYVSP. YYLVALP points to place to put semantic
2851 * value ($$), and yylocp points to place for location information
2852 * (@$). Returns yyok for normal return, yyaccept for YYACCEPT,
2853 * yyerr for YYERROR, yyabort for YYABORT. */
2854 static YYRESULTTAG
2855 yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp,
2856 yyGLRStack* yystackp,
2857 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
2858 {
2859 yybool yynormal YY_ATTRIBUTE_UNUSED = (yystackp->yysplitPoint == YY_NULLPTR);
2860 int yylow;
2861 YYUSE (yyvalp);
2862 YYUSE (P);
2863 YYUSE (tokens);
2864 YYUSE (index);
2865 YYUSE (yyrhslen);
2866 # undef yyerrok
2867 # define yyerrok (yystackp->yyerrState = 0)
2868 # undef YYACCEPT
2869 # define YYACCEPT return yyaccept
2870 # undef YYABORT
2871 # define YYABORT return yyabort
2872 # undef YYERROR
2873 # define YYERROR return yyerrok, yyerr
2874 # undef YYRECOVERING
2875 # define YYRECOVERING() (yystackp->yyerrState != 0)
2876 # undef yyclearin
2877 # define yyclearin (yychar = YYEMPTY)
2878 # undef YYFILL
2879 # define YYFILL(N) yyfill (yyvsp, &yylow, N, yynormal)
2880 # undef YYBACKUP
2881 # define YYBACKUP(Token, Value) \
2882 return yyerror (P, tokens, index, YY_("syntax error: cannot back up")), \
2883 yyerrok, yyerr
2884
2885 yylow = 1;
2886 if (yyrhslen == 0)
2887 *yyvalp = yyval_default;
2888 else
2889 *yyvalp = yyvsp[YYFILL (1-yyrhslen)].yystate.yysemantics.yysval;
2890 switch (yyn)
2891 {
2892 case 297:
2893 #line 399 "src/parser_proc_grammar.y" /* glr.c:816 */
2894 {
2895 if ((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
2896 psi_cpp_exp_exec((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), P->preproc, PSI_DATA(P));
2897 psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2898 }
2899 }
2900 #line 2901 "src/parser_proc.c" /* glr.c:816 */
2901 break;
2902
2903 case 298:
2904 #line 405 "src/parser_proc_grammar.y" /* glr.c:816 */
2905 {
2906 if (P->file.ln) {
2907 P->error(PSI_DATA(P), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), PSI_WARNING,
2908 "Extra 'lib \"%s\"' statement has no effect", (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text);
2909 } else {
2910 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);
2911 }
2912 }
2913 #line 2914 "src/parser_proc.c" /* glr.c:816 */
2914 break;
2915
2916 case 299:
2917 #line 413 "src/parser_proc_grammar.y" /* glr.c:816 */
2918 {
2919 psi_parser_proc_add_const(P, (*(struct psi_const **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2920 }
2921 #line 2922 "src/parser_proc.c" /* glr.c:816 */
2922 break;
2923
2924 case 300:
2925 #line 416 "src/parser_proc_grammar.y" /* glr.c:816 */
2926 {
2927 psi_parser_proc_add_decl(P, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2928 }
2929 #line 2930 "src/parser_proc.c" /* glr.c:816 */
2930 break;
2931
2932 case 303:
2933 #line 421 "src/parser_proc_grammar.y" /* glr.c:816 */
2934 {
2935 psi_parser_proc_add_typedef(P, (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2936 }
2937 #line 2938 "src/parser_proc.c" /* glr.c:816 */
2938 break;
2939
2940 case 304:
2941 #line 424 "src/parser_proc_grammar.y" /* glr.c:816 */
2942 {
2943 psi_parser_proc_add_struct(P, (*(struct psi_decl_struct **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2944 }
2945 #line 2946 "src/parser_proc.c" /* glr.c:816 */
2946 break;
2947
2948 case 305:
2949 #line 427 "src/parser_proc_grammar.y" /* glr.c:816 */
2950 {
2951 psi_parser_proc_add_union(P, (*(struct psi_decl_union **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2952 }
2953 #line 2954 "src/parser_proc.c" /* glr.c:816 */
2954 break;
2955
2956 case 306:
2957 #line 430 "src/parser_proc_grammar.y" /* glr.c:816 */
2958 {
2959 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2960 }
2961 #line 2962 "src/parser_proc.c" /* glr.c:816 */
2962 break;
2963
2964 case 307:
2965 #line 433 "src/parser_proc_grammar.y" /* glr.c:816 */
2966 {
2967 psi_parser_proc_add_impl(P, (*(struct psi_impl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2968 }
2969 #line 2970 "src/parser_proc.c" /* glr.c:816 */
2970 break;
2971
2972 case 308:
2973 #line 439 "src/parser_proc_grammar.y" /* glr.c:816 */
2974 {
2975 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
2976 }
2977 #line 2978 "src/parser_proc.c" /* glr.c:816 */
2978 break;
2979
2980 case 309:
2981 #line 445 "src/parser_proc_grammar.y" /* glr.c:816 */
2982 {
2983 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
2984 }
2985 #line 2986 "src/parser_proc.c" /* glr.c:816 */
2986 break;
2987
2988 case 310:
2989 #line 448 "src/parser_proc_grammar.y" /* glr.c:816 */
2990 {
2991 (*(struct psi_cpp_exp **)(&(*yyvalp))) = (*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
2992 }
2993 #line 2994 "src/parser_proc.c" /* glr.c:816 */
2994 break;
2995
2996 case 311:
2997 #line 454 "src/parser_proc_grammar.y" /* glr.c:816 */
2998 {
2999 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3000 struct psi_token *msg = NULL;
3001
3002 if (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0, &msg)) {
3003 size_t index = 1;
3004 struct psi_token *next;
3005
3006 msg = psi_token_copy(msg);
3007 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), index++, &next)) {
3008 struct psi_token *old = msg;
3009 msg = psi_token_cat(" ", 2, msg, next);
3010 free(old);
3011 }
3012 }
3013 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3014
3015 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, msg);
3016 } else {
3017 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, NULL);
3018 }
3019 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3020 }
3021 #line 3022 "src/parser_proc.c" /* glr.c:816 */
3022 break;
3023
3024 case 312:
3025 #line 477 "src/parser_proc_grammar.y" /* glr.c:816 */
3026 {
3027 (*(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))));
3028 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3029 }
3030 #line 3031 "src/parser_proc.c" /* glr.c:816 */
3031 break;
3032
3033 case 313:
3034 #line 481 "src/parser_proc_grammar.y" /* glr.c:816 */
3035 {
3036 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL);
3037 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3038 }
3039 #line 3040 "src/parser_proc.c" /* glr.c:816 */
3040 break;
3041
3042 case 314:
3043 #line 485 "src/parser_proc_grammar.y" /* glr.c:816 */
3044 {
3045 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3046 (*(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))));
3047 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3048 }
3049 #line 3050 "src/parser_proc.c" /* glr.c:816 */
3050 break;
3051
3052 case 315:
3053 #line 490 "src/parser_proc_grammar.y" /* glr.c:816 */
3054 {
3055 (*(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)));
3056 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3057 }
3058 #line 3059 "src/parser_proc.c" /* glr.c:816 */
3059 break;
3060
3061 case 316:
3062 #line 494 "src/parser_proc_grammar.y" /* glr.c:816 */
3063 {
3064 (*(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)));
3065 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3066 }
3067 #line 3068 "src/parser_proc.c" /* glr.c:816 */
3068 break;
3069
3070 case 317:
3071 #line 498 "src/parser_proc_grammar.y" /* glr.c:816 */
3072 {
3073 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL);
3074 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3075 }
3076 #line 3077 "src/parser_proc.c" /* glr.c:816 */
3077 break;
3078
3079 case 318:
3080 #line 502 "src/parser_proc_grammar.y" /* glr.c:816 */
3081 {
3082 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3083 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
3084 }
3085 #line 3086 "src/parser_proc.c" /* glr.c:816 */
3086 break;
3087
3088 case 342:
3089 #line 556 "src/parser_proc_grammar.y" /* glr.c:816 */
3090 {
3091 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3092 (*(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);
3093 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
3094 }
3095 #line 3096 "src/parser_proc.c" /* glr.c:816 */
3096 break;
3097
3098 case 343:
3099 #line 561 "src/parser_proc_grammar.y" /* glr.c:816 */
3100 {
3101 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3102 (*(struct psi_cpp_macro_decl **)(&(*yyvalp))) = psi_cpp_macro_decl_init(NULL, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), NULL);
3103 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3104 }
3105 #line 3106 "src/parser_proc.c" /* glr.c:816 */
3106 break;
3107
3108 case 344:
3109 #line 569 "src/parser_proc_grammar.y" /* glr.c:816 */
3110 {
3111 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL);
3112 }
3113 #line 3114 "src/parser_proc.c" /* glr.c:816 */
3114 break;
3115
3116 case 345:
3117 #line 572 "src/parser_proc_grammar.y" /* glr.c:816 */
3118 {
3119 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL); /* FIXME */
3120 }
3121 #line 3122 "src/parser_proc.c" /* glr.c:816 */
3122 break;
3123
3124 case 347:
3125 #line 576 "src/parser_proc_grammar.y" /* glr.c:816 */
3126 {
3127 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3128 }
3129 #line 3130 "src/parser_proc.c" /* glr.c:816 */
3130 break;
3131
3132 case 348:
3133 #line 582 "src/parser_proc_grammar.y" /* glr.c:816 */
3134 {
3135 (*(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)));
3136 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3137 (*(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)));
3138 }
3139 #line 3140 "src/parser_proc.c" /* glr.c:816 */
3140 break;
3141
3142 case 349:
3143 #line 587 "src/parser_proc_grammar.y" /* glr.c:816 */
3144 {
3145 (*(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)));
3146 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3147 (*(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)));
3148 }
3149 #line 3150 "src/parser_proc.c" /* glr.c:816 */
3150 break;
3151
3152 case 350:
3153 #line 595 "src/parser_proc_grammar.y" /* glr.c:816 */
3154 {
3155 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3156 }
3157 #line 3158 "src/parser_proc.c" /* glr.c:816 */
3158 break;
3159
3160 case 352:
3161 #line 602 "src/parser_proc_grammar.y" /* glr.c:816 */
3162 {
3163 (*(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)));
3164 (*(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)));
3165 }
3166 #line 3167 "src/parser_proc.c" /* glr.c:816 */
3167 break;
3168
3169 case 353:
3170 #line 606 "src/parser_proc_grammar.y" /* glr.c:816 */
3171 {
3172 (*(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)));
3173 (*(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)));
3174 }
3175 #line 3176 "src/parser_proc.c" /* glr.c:816 */
3176 break;
3177
3178 case 354:
3179 #line 613 "src/parser_proc_grammar.y" /* glr.c:816 */
3180 {
3181 (*(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)));
3182 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3183 }
3184 #line 3185 "src/parser_proc.c" /* glr.c:816 */
3185 break;
3186
3187 case 355:
3188 #line 617 "src/parser_proc_grammar.y" /* glr.c:816 */
3189 {
3190 (*(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)));
3191 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3192 }
3193 #line 3194 "src/parser_proc.c" /* glr.c:816 */
3194 break;
3195
3196 case 356:
3197 #line 621 "src/parser_proc_grammar.y" /* glr.c:816 */
3198 {
3199 (*(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)));
3200 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3201 }
3202 #line 3203 "src/parser_proc.c" /* glr.c:816 */
3203 break;
3204
3205 case 357:
3206 #line 625 "src/parser_proc_grammar.y" /* glr.c:816 */
3207 {
3208 (*(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)));
3209 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3210 }
3211 #line 3212 "src/parser_proc.c" /* glr.c:816 */
3212 break;
3213
3214 case 358:
3215 #line 630 "src/parser_proc_grammar.y" /* glr.c:816 */
3216 {
3217 {
3218 uint8_t exists;
3219
3220 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3221 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3222 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8, &exists, 0));
3223 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3224 }
3225 }
3226 #line 3227 "src/parser_proc.c" /* glr.c:816 */
3227 break;
3228
3229 case 359:
3230 #line 640 "src/parser_proc_grammar.y" /* glr.c:816 */
3231 {
3232 {
3233 uint8_t exists;
3234
3235 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3236 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3237 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8, &exists, 0));
3238 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3239 }
3240 }
3241 #line 3242 "src/parser_proc.c" /* glr.c:816 */
3242 break;
3243
3244 case 360:
3245 #line 650 "src/parser_proc_grammar.y" /* glr.c:816 */
3246 {
3247 (*(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));
3248 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3249 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3250 }
3251 #line 3252 "src/parser_proc.c" /* glr.c:816 */
3252 break;
3253
3254 case 361:
3255 #line 655 "src/parser_proc_grammar.y" /* glr.c:816 */
3256 {
3257 (*(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));
3258 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3259 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3260 }
3261 #line 3262 "src/parser_proc.c" /* glr.c:816 */
3262 break;
3263
3264 case 362:
3265 #line 660 "src/parser_proc_grammar.y" /* glr.c:816 */
3266 {
3267 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3268 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
3269 }
3270 #line 3271 "src/parser_proc.c" /* glr.c:816 */
3271 break;
3272
3273 case 363:
3274 #line 664 "src/parser_proc_grammar.y" /* glr.c:816 */
3275 {
3276 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3277 (*(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));
3278 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3279 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3280 }
3281 #line 3282 "src/parser_proc.c" /* glr.c:816 */
3282 break;
3283
3284 case 364:
3285 #line 670 "src/parser_proc_grammar.y" /* glr.c:816 */
3286 {
3287 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3288 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_FUNCTION,
3289 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));
3290 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3291 }
3292 #line 3293 "src/parser_proc.c" /* glr.c:816 */
3293 break;
3294
3295 case 365:
3296 #line 679 "src/parser_proc_grammar.y" /* glr.c:816 */
3297 {
3298 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3299 }
3300 #line 3301 "src/parser_proc.c" /* glr.c:816 */
3301 break;
3302
3303 case 367:
3304 #line 686 "src/parser_proc_grammar.y" /* glr.c:816 */
3305 {
3306 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_num_exp_free),
3307 &(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3308 }
3309 #line 3310 "src/parser_proc.c" /* glr.c:816 */
3310 break;
3311
3312 case 368:
3313 #line 690 "src/parser_proc_grammar.y" /* glr.c:816 */
3314 {
3315 (*(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)));
3316 }
3317 #line 3318 "src/parser_proc.c" /* glr.c:816 */
3318 break;
3319
3320 case 369:
3321 #line 696 "src/parser_proc_grammar.y" /* glr.c:816 */
3322 {
3323 (*(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)));
3324 (*(struct psi_const **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3325 }
3326 #line 3327 "src/parser_proc.c" /* glr.c:816 */
3327 break;
3328
3329 case 370:
3330 #line 703 "src/parser_proc_grammar.y" /* glr.c:816 */
3331 {
3332 (*(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);
3333 }
3334 #line 3335 "src/parser_proc.c" /* glr.c:816 */
3335 break;
3336
3337 case 375:
3338 #line 716 "src/parser_proc_grammar.y" /* glr.c:816 */
3339 {
3340 (*(struct psi_impl_def_val **)(&(*yyvalp))) = NULL;
3341 }
3342 #line 3343 "src/parser_proc.c" /* glr.c:816 */
3343 break;
3344
3345 case 376:
3346 #line 719 "src/parser_proc_grammar.y" /* glr.c:816 */
3347 {
3348 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)) {
3349 impl_val res = {0};
3350 token_t type = psi_num_exp_exec((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), &res, NULL, &P->preproc->defs);
3351
3352 if (type == PSI_T_FLOAT || type == PSI_T_DOUBLE) {
3353 (*(struct psi_impl_def_val **)(&(*yyvalp))) = psi_impl_def_val_init(type, NULL);
3354 } else {
3355 (*(struct psi_impl_def_val **)(&(*yyvalp))) = psi_impl_def_val_init(PSI_T_INT, NULL);
3356 }
3357
3358 switch (type) {
3359 case PSI_T_UINT8: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u8; break;
3360 case PSI_T_UINT16: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u16; break;
3361 case PSI_T_UINT32: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u32; break;
3362 case PSI_T_UINT64: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u64; break; /* FIXME */
3363 case PSI_T_INT8: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i8; break;
3364 case PSI_T_INT16: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i16; break;
3365 case PSI_T_INT32: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i32; break;
3366 case PSI_T_INT64: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i64; break;
3367 case PSI_T_FLOAT: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.dval = res.fval; break;
3368 case PSI_T_DOUBLE: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.dval = res.dval; break;
3369 default:
3370 assert(0);
3371
3372 }
3373 } else {
3374 (*(struct psi_impl_def_val **)(&(*yyvalp))) = NULL;
3375 }
3376 psi_num_exp_free(&(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3377 }
3378 #line 3379 "src/parser_proc.c" /* glr.c:816 */
3379 break;
3380
3381 case 377:
3382 #line 750 "src/parser_proc_grammar.y" /* glr.c:816 */
3383 {
3384 (*(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);
3385 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3386 }
3387 #line 3388 "src/parser_proc.c" /* glr.c:816 */
3388 break;
3389
3390 case 382:
3391 #line 764 "src/parser_proc_grammar.y" /* glr.c:816 */
3392 {
3393 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3394 }
3395 #line 3396 "src/parser_proc.c" /* glr.c:816 */
3396 break;
3397
3398 case 383:
3399 #line 767 "src/parser_proc_grammar.y" /* glr.c:816 */
3400 {
3401 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3402 psi_decl_type_init(PSI_T_VOID, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->text),
3403 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text, 0, 0)
3404 );
3405 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3406 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3407 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3408 }
3409 #line 3410 "src/parser_proc.c" /* glr.c:816 */
3410 break;
3411
3412 case 384:
3413 #line 776 "src/parser_proc_grammar.y" /* glr.c:816 */
3414 {
3415 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3416 }
3417 #line 3418 "src/parser_proc.c" /* glr.c:816 */
3418 break;
3419
3420 case 385:
3421 #line 782 "src/parser_proc_grammar.y" /* glr.c:816 */
3422 {
3423 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3424 }
3425 #line 3426 "src/parser_proc.c" /* glr.c:816 */
3426 break;
3427
3428 case 386:
3429 #line 785 "src/parser_proc_grammar.y" /* glr.c:816 */
3430 {
3431 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3432 }
3433 #line 3434 "src/parser_proc.c" /* glr.c:816 */
3434 break;
3435
3436 case 387:
3437 #line 791 "src/parser_proc_grammar.y" /* glr.c:816 */
3438 {
3439 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3440 }
3441 #line 3442 "src/parser_proc.c" /* glr.c:816 */
3442 break;
3443
3444 case 388:
3445 #line 794 "src/parser_proc_grammar.y" /* glr.c:816 */
3446 {
3447 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3448 }
3449 #line 3450 "src/parser_proc.c" /* glr.c:816 */
3450 break;
3451
3452 case 390:
3453 #line 801 "src/parser_proc_grammar.y" /* glr.c:816 */
3454 {
3455 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3456 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
3457 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
3458 );
3459 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
3460 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3461 }
3462 #line 3463 "src/parser_proc.c" /* glr.c:816 */
3463 break;
3464
3465 case 391:
3466 #line 809 "src/parser_proc_grammar.y" /* glr.c:816 */
3467 {
3468 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3469 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3470 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->name),
3471 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0, 0)
3472 );
3473 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3474 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->token);
3475 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3476 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3477 }
3478 #line 3479 "src/parser_proc.c" /* glr.c:816 */
3479 break;
3480
3481 case 392:
3482 #line 820 "src/parser_proc_grammar.y" /* glr.c:816 */
3483 {
3484 (*(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)));
3485 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
3486 (*(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)));
3487 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3488 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
3489 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
3490 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
3491 }
3492 #line 3493 "src/parser_proc.c" /* glr.c:816 */
3493 break;
3494
3495 case 393:
3496 #line 829 "src/parser_proc_grammar.y" /* glr.c:816 */
3497 {
3498 (*(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)));
3499 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
3500 (*(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)));
3501 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3502 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
3503 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
3504 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
3505 }
3506 #line 3507 "src/parser_proc.c" /* glr.c:816 */
3507 break;
3508
3509 case 394:
3510 #line 838 "src/parser_proc_grammar.y" /* glr.c:816 */
3511 {
3512 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3513 (*(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));
3514 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3515 }
3516 #line 3517 "src/parser_proc.c" /* glr.c:816 */
3517 break;
3518
3519 case 396:
3520 #line 847 "src/parser_proc_grammar.y" /* glr.c:816 */
3521 {
3522 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), psi_decl_var_init(NULL, 0, 0));
3523 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
3524 }
3525 #line 3526 "src/parser_proc.c" /* glr.c:816 */
3526 break;
3527
3528 case 397:
3529 #line 851 "src/parser_proc_grammar.y" /* glr.c:816 */
3530 {
3531 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3532 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->name),
3533 psi_decl_var_init(NULL, 0, 0)
3534 );
3535 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
3536 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
3537 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3538 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3539 }
3540 #line 3541 "src/parser_proc.c" /* glr.c:816 */
3541 break;
3542
3543 case 398:
3544 #line 861 "src/parser_proc_grammar.y" /* glr.c:816 */
3545 {
3546 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(psi_decl_type_init(PSI_T_STRUCT, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->text), psi_decl_var_init(NULL, 0, 0));
3547 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3548 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct = 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)));
3549 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3550 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
3551 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
3552 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
3553 }
3554 #line 3555 "src/parser_proc.c" /* glr.c:816 */
3555 break;
3556
3557 case 399:
3558 #line 870 "src/parser_proc_grammar.y" /* glr.c:816 */
3559 {
3560 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(psi_decl_type_init(PSI_T_UNION, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->text), psi_decl_var_init(NULL, 0, 0));
3561 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3562 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn = 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)));
3563 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3564 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
3565 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
3566 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
3567 }
3568 #line 3569 "src/parser_proc.c" /* glr.c:816 */
3569 break;
3570
3571 case 400:
3572 #line 882 "src/parser_proc_grammar.y" /* glr.c:816 */
3573 {
3574 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3575 }
3576 #line 3577 "src/parser_proc.c" /* glr.c:816 */
3577 break;
3578
3579 case 401:
3580 #line 885 "src/parser_proc_grammar.y" /* glr.c:816 */
3581 {
3582 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3583 }
3584 #line 3585 "src/parser_proc.c" /* glr.c:816 */
3585 break;
3586
3587 case 403:
3588 #line 892 "src/parser_proc_grammar.y" /* glr.c:816 */
3589 {
3590 (*(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);
3591 (*(struct psi_decl_type **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3592 }
3593 #line 3594 "src/parser_proc.c" /* glr.c:816 */
3594 break;
3595
3596 case 405:
3597 #line 900 "src/parser_proc_grammar.y" /* glr.c:816 */
3598 {
3599 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3600 (*(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);
3601 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3602 }
3603 #line 3604 "src/parser_proc.c" /* glr.c:816 */
3604 break;
3605
3606 case 406:
3607 #line 905 "src/parser_proc_grammar.y" /* glr.c:816 */
3608 {
3609 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3610 (*(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);
3611 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3612 }
3613 #line 3614 "src/parser_proc.c" /* glr.c:816 */
3614 break;
3615
3616 case 407:
3617 #line 910 "src/parser_proc_grammar.y" /* glr.c:816 */
3618 {
3619 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3620 (*(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);
3621 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3622 }
3623 #line 3624 "src/parser_proc.c" /* glr.c:816 */
3624 break;
3625
3626 case 410:
3627 #line 920 "src/parser_proc_grammar.y" /* glr.c:816 */
3628 {
3629 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3630 }
3631 #line 3632 "src/parser_proc.c" /* glr.c:816 */
3632 break;
3633
3634 case 411:
3635 #line 923 "src/parser_proc_grammar.y" /* glr.c:816 */
3636 {
3637 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3638 }
3639 #line 3640 "src/parser_proc.c" /* glr.c:816 */
3640 break;
3641
3642 case 412:
3643 #line 929 "src/parser_proc_grammar.y" /* glr.c:816 */
3644 {
3645 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3646 }
3647 #line 3648 "src/parser_proc.c" /* glr.c:816 */
3648 break;
3649
3650 case 413:
3651 #line 932 "src/parser_proc_grammar.y" /* glr.c:816 */
3652 {
3653 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3654 }
3655 #line 3656 "src/parser_proc.c" /* glr.c:816 */
3656 break;
3657
3658 case 414:
3659 #line 935 "src/parser_proc_grammar.y" /* glr.c:816 */
3660 {
3661 (*(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)));
3662 }
3663 #line 3664 "src/parser_proc.c" /* glr.c:816 */
3664 break;
3665
3666 case 425:
3667 #line 957 "src/parser_proc_grammar.y" /* glr.c:816 */
3668 {
3669 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3670 }
3671 #line 3672 "src/parser_proc.c" /* glr.c:816 */
3672 break;
3673
3674 case 426:
3675 #line 960 "src/parser_proc_grammar.y" /* glr.c:816 */
3676 {
3677 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3678 }
3679 #line 3680 "src/parser_proc.c" /* glr.c:816 */
3680 break;
3681
3682 case 427:
3683 #line 963 "src/parser_proc_grammar.y" /* glr.c:816 */
3684 {
3685 (*(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)));
3686 }
3687 #line 3688 "src/parser_proc.c" /* glr.c:816 */
3688 break;
3689
3690 case 428:
3691 #line 969 "src/parser_proc_grammar.y" /* glr.c:816 */
3692 {
3693 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3694 }
3695 #line 3696 "src/parser_proc.c" /* glr.c:816 */
3696 break;
3697
3698 case 429:
3699 #line 972 "src/parser_proc_grammar.y" /* glr.c:816 */
3700 {
3701 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3702 }
3703 #line 3704 "src/parser_proc.c" /* glr.c:816 */
3704 break;
3705
3706 case 430:
3707 #line 975 "src/parser_proc_grammar.y" /* glr.c:816 */
3708 {
3709 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3710 (*(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)));
3711 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3712 } else {
3713 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3714 }
3715 }
3716 #line 3717 "src/parser_proc.c" /* glr.c:816 */
3717 break;
3718
3719 case 431:
3720 #line 983 "src/parser_proc_grammar.y" /* glr.c:816 */
3721 {
3722 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3723 (*(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)));
3724 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3725 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3726 } else {
3727 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3728 }
3729 }
3730 #line 3731 "src/parser_proc.c" /* glr.c:816 */
3731 break;
3732
3733 case 432:
3734 #line 995 "src/parser_proc_grammar.y" /* glr.c:816 */
3735 {
3736 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3737 }
3738 #line 3739 "src/parser_proc.c" /* glr.c:816 */
3739 break;
3740
3741 case 433:
3742 #line 998 "src/parser_proc_grammar.y" /* glr.c:816 */
3743 {
3744 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3745 }
3746 #line 3747 "src/parser_proc.c" /* glr.c:816 */
3747 break;
3748
3749 case 434:
3750 #line 1001 "src/parser_proc_grammar.y" /* glr.c:816 */
3751 {
3752 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3753 (*(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)));
3754 } else {
3755 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3756 }
3757 }
3758 #line 3759 "src/parser_proc.c" /* glr.c:816 */
3759 break;
3760
3761 case 435:
3762 #line 1008 "src/parser_proc_grammar.y" /* glr.c:816 */
3763 {
3764 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3765 }
3766 #line 3767 "src/parser_proc.c" /* glr.c:816 */
3767 break;
3768
3769 case 436:
3770 #line 1011 "src/parser_proc_grammar.y" /* glr.c:816 */
3771 {
3772 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3773 (*(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)));
3774 } else {
3775 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3776 }
3777 }
3778 #line 3779 "src/parser_proc.c" /* glr.c:816 */
3779 break;
3780
3781 case 437:
3782 #line 1021 "src/parser_proc_grammar.y" /* glr.c:816 */
3783 {
3784 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3785 }
3786 #line 3787 "src/parser_proc.c" /* glr.c:816 */
3787 break;
3788
3789 case 439:
3790 #line 1027 "src/parser_proc_grammar.y" /* glr.c:816 */
3791 {
3792 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3793 }
3794 #line 3795 "src/parser_proc.c" /* glr.c:816 */
3795 break;
3796
3797 case 443:
3798 #line 1036 "src/parser_proc_grammar.y" /* glr.c:816 */
3799 {
3800 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3801 }
3802 #line 3803 "src/parser_proc.c" /* glr.c:816 */
3803 break;
3804
3805 case 444:
3806 #line 1039 "src/parser_proc_grammar.y" /* glr.c:816 */
3807 {
3808 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3809 }
3810 #line 3811 "src/parser_proc.c" /* glr.c:816 */
3811 break;
3812
3813 case 445:
3814 #line 1042 "src/parser_proc_grammar.y" /* glr.c:816 */
3815 {
3816 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3817 (*(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)));
3818 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3819 } else {
3820 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3821 }
3822 }
3823 #line 3824 "src/parser_proc.c" /* glr.c:816 */
3824 break;
3825
3826 case 446:
3827 #line 1053 "src/parser_proc_grammar.y" /* glr.c:816 */
3828 {
3829 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3830 }
3831 #line 3832 "src/parser_proc.c" /* glr.c:816 */
3832 break;
3833
3834 case 447:
3835 #line 1056 "src/parser_proc_grammar.y" /* glr.c:816 */
3836 {
3837 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3838 }
3839 #line 3840 "src/parser_proc.c" /* glr.c:816 */
3840 break;
3841
3842 case 453:
3843 #line 1076 "src/parser_proc_grammar.y" /* glr.c:816 */
3844 {
3845 psi_decl_arg_free(&(*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3846 }
3847 #line 3848 "src/parser_proc.c" /* glr.c:816 */
3848 break;
3849
3850 case 455:
3851 #line 1083 "src/parser_proc_grammar.y" /* glr.c:816 */
3852 {
3853 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3854 }
3855 #line 3856 "src/parser_proc.c" /* glr.c:816 */
3856 break;
3857
3858 case 456:
3859 #line 1089 "src/parser_proc_grammar.y" /* glr.c:816 */
3860 {
3861 (*(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)));
3862 }
3863 #line 3864 "src/parser_proc.c" /* glr.c:816 */
3864 break;
3865
3866 case 457:
3867 #line 1092 "src/parser_proc_grammar.y" /* glr.c:816 */
3868 {
3869 (*(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)));
3870 }
3871 #line 3872 "src/parser_proc.c" /* glr.c:816 */
3872 break;
3873
3874 case 458:
3875 #line 1098 "src/parser_proc_grammar.y" /* glr.c:816 */
3876 {
3877 psi_decl_free(&(*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3878 }
3879 #line 3880 "src/parser_proc.c" /* glr.c:816 */
3880 break;
3881
3882 case 459:
3883 #line 1101 "src/parser_proc_grammar.y" /* glr.c:816 */
3884 {
3885 psi_decl_free(&(*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3886 }
3887 #line 3888 "src/parser_proc.c" /* glr.c:816 */
3888 break;
3889
3890 case 460:
3891 #line 1104 "src/parser_proc_grammar.y" /* glr.c:816 */
3892 {
3893 psi_decl_free(&(*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3894 }
3895 #line 3896 "src/parser_proc.c" /* glr.c:816 */
3896 break;
3897
3898 case 467:
3899 #line 1125 "src/parser_proc_grammar.y" /* glr.c:816 */
3900 {
3901 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3902 (*(struct psi_decl **)(&(*yyvalp)))->abi = psi_decl_abi_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
3903 }
3904 #line 3905 "src/parser_proc.c" /* glr.c:816 */
3905 break;
3906
3907 case 470:
3908 #line 1137 "src/parser_proc_grammar.y" /* glr.c:816 */
3909 {
3910 (*(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)));
3911 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3912 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3913 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3914 }
3915 }
3916 #line 3917 "src/parser_proc.c" /* glr.c:816 */
3917 break;
3918
3919 case 471:
3920 #line 1144 "src/parser_proc_grammar.y" /* glr.c:816 */
3921 {
3922 (*(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)));
3923 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
3924 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3925 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3926 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3927 }
3928 }
3929 #line 3930 "src/parser_proc.c" /* glr.c:816 */
3930 break;
3931
3932 case 472:
3933 #line 1155 "src/parser_proc_grammar.y" /* glr.c:816 */
3934 {
3935 (*(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)));
3936 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3937 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3938 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3939 }
3940 }
3941 #line 3942 "src/parser_proc.c" /* glr.c:816 */
3942 break;
3943
3944 case 473:
3945 #line 1162 "src/parser_proc_grammar.y" /* glr.c:816 */
3946 {
3947 (*(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)));
3948 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
3949 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3950 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3951 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3952 }
3953 }
3954 #line 3955 "src/parser_proc.c" /* glr.c:816 */
3955 break;
3956
3957 case 474:
3958 #line 1173 "src/parser_proc_grammar.y" /* glr.c:816 */
3959 {
3960 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3961 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3962 (*(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));
3963 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3964 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3965 }
3966 #line 3967 "src/parser_proc.c" /* glr.c:816 */
3967 break;
3968
3969 case 475:
3970 #line 1180 "src/parser_proc_grammar.y" /* glr.c:816 */
3971 {
3972 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3973 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3974 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3975 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),
3976 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)
3977 );
3978 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
3979 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3980 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3981 }
3982 #line 3983 "src/parser_proc.c" /* glr.c:816 */
3983 break;
3984
3985 case 476:
3986 #line 1191 "src/parser_proc_grammar.y" /* glr.c:816 */
3987 {
3988 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3989 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3990 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3991 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),
3992 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)
3993 );
3994 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
3995 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3996 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3997 }
3998 #line 3999 "src/parser_proc.c" /* glr.c:816 */
3999 break;
4000
4001 case 477:
4002 #line 1202 "src/parser_proc_grammar.y" /* glr.c:816 */
4003 {
4004 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4005 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4006 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
4007 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),
4008 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text, 0, 0)
4009 );
4010 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
4011 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4012 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4013 }
4014 #line 4015 "src/parser_proc.c" /* glr.c:816 */
4015 break;
4016
4017 case 479:
4018 #line 1217 "src/parser_proc_grammar.y" /* glr.c:816 */
4019 {
4020 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
4021 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),
4022 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0, 0)
4023 );
4024 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4025 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4026 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4027 }
4028 #line 4029 "src/parser_proc.c" /* glr.c:816 */
4029 break;
4030
4031 case 480:
4032 #line 1229 "src/parser_proc_grammar.y" /* glr.c:816 */
4033 {
4034 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4035 }
4036 #line 4037 "src/parser_proc.c" /* glr.c:816 */
4037 break;
4038
4039 case 481:
4040 #line 1232 "src/parser_proc_grammar.y" /* glr.c:816 */
4041 {
4042 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4043 }
4044 #line 4045 "src/parser_proc.c" /* glr.c:816 */
4045 break;
4046
4047 case 482:
4048 #line 1235 "src/parser_proc_grammar.y" /* glr.c:816 */
4049 {
4050 (*(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)));
4051 }
4052 #line 4053 "src/parser_proc.c" /* glr.c:816 */
4053 break;
4054
4055 case 483:
4056 #line 1238 "src/parser_proc_grammar.y" /* glr.c:816 */
4057 {
4058 (*(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)));
4059 }
4060 #line 4061 "src/parser_proc.c" /* glr.c:816 */
4061 break;
4062
4063 case 484:
4064 #line 1245 "src/parser_proc_grammar.y" /* glr.c:816 */
4065 {
4066 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4067 }
4068 #line 4069 "src/parser_proc.c" /* glr.c:816 */
4069 break;
4070
4071 case 485:
4072 #line 1248 "src/parser_proc_grammar.y" /* glr.c:816 */
4073 {
4074 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
4075 (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)),
4076 psi_decl_var_init(NULL, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0)
4077 );
4078 }
4079 #line 4080 "src/parser_proc.c" /* glr.c:816 */
4080 break;
4081
4082 case 486:
4083 #line 1254 "src/parser_proc_grammar.y" /* glr.c:816 */
4084 {
4085 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
4086 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),
4087 psi_decl_var_init(NULL, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0)
4088 );
4089 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4090 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4091 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4092 }
4093 #line 4094 "src/parser_proc.c" /* glr.c:816 */
4094 break;
4095
4096 case 487:
4097 #line 1263 "src/parser_proc_grammar.y" /* glr.c:816 */
4098 {
4099 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
4100 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),
4101 psi_decl_var_init(NULL, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0)
4102 );
4103 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4104 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4105 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4106 }
4107 #line 4108 "src/parser_proc.c" /* glr.c:816 */
4108 break;
4109
4110 case 488:
4111 #line 1275 "src/parser_proc_grammar.y" /* glr.c:816 */
4112 {
4113 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
4114 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
4115 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
4116 );
4117 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
4118 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4119 }
4120 #line 4121 "src/parser_proc.c" /* glr.c:816 */
4121 break;
4122
4123 case 489:
4124 #line 1283 "src/parser_proc_grammar.y" /* glr.c:816 */
4125 {
4126 (*(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)));
4127 }
4128 #line 4129 "src/parser_proc.c" /* glr.c:816 */
4129 break;
4130
4131 case 490:
4132 #line 1286 "src/parser_proc_grammar.y" /* glr.c:816 */
4133 {
4134 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4135 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
4136 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),
4137 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)
4138 );
4139 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4140 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4141 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4142 }
4143 #line 4144 "src/parser_proc.c" /* glr.c:816 */
4144 break;
4145
4146 case 491:
4147 #line 1296 "src/parser_proc_grammar.y" /* glr.c:816 */
4148 {
4149 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4150 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
4151 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),
4152 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)
4153 );
4154 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4155 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4156 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4157 }
4158 #line 4159 "src/parser_proc.c" /* glr.c:816 */
4159 break;
4160
4161 case 492:
4162 #line 1309 "src/parser_proc_grammar.y" /* glr.c:816 */
4163 {
4164 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4165 (*(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)));
4166 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4167 }
4168 #line 4169 "src/parser_proc.c" /* glr.c:816 */
4169 break;
4170
4171 case 493:
4172 #line 1314 "src/parser_proc_grammar.y" /* glr.c:816 */
4173 {
4174 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4175 (*(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)));
4176 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4177 }
4178 #line 4179 "src/parser_proc.c" /* glr.c:816 */
4179 break;
4180
4181 case 494:
4182 #line 1331 "src/parser_proc_grammar.y" /* glr.c:816 */
4183 {
4184 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4185 (*(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)));
4186 (*(struct psi_decl_union **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
4187 (*(struct psi_decl_union **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
4188 (*(struct psi_decl_union **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4189 }
4190 #line 4191 "src/parser_proc.c" /* glr.c:816 */
4191 break;
4192
4193 case 495:
4194 #line 1341 "src/parser_proc_grammar.y" /* glr.c:816 */
4195 {
4196 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4197 (*(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)));
4198 (*(struct psi_decl_struct **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
4199 (*(struct psi_decl_struct **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
4200 (*(struct psi_decl_struct **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4201 }
4202 #line 4203 "src/parser_proc.c" /* glr.c:816 */
4203 break;
4204
4205 case 496:
4206 #line 1351 "src/parser_proc_grammar.y" /* glr.c:816 */
4207 {
4208 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4209 }
4210 #line 4211 "src/parser_proc.c" /* glr.c:816 */
4211 break;
4212
4213 case 498:
4214 #line 1358 "src/parser_proc_grammar.y" /* glr.c:816 */
4215 {
4216 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4217 }
4218 #line 4219 "src/parser_proc.c" /* glr.c:816 */
4219 break;
4220
4221 case 499:
4222 #line 1364 "src/parser_proc_grammar.y" /* glr.c:816 */
4223 {
4224 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4225 (*(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)));
4226 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
4227 size_t i = 0;
4228 struct psi_decl_arg *arg;
4229
4230 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
4231 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
4232 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
4233 }
4234 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4235 }
4236 }
4237 #line 4238 "src/parser_proc.c" /* glr.c:816 */
4238 break;
4239
4240 case 500:
4241 #line 1378 "src/parser_proc_grammar.y" /* glr.c:816 */
4242 {
4243 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4244 (*(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)));
4245 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
4246 size_t i = 0;
4247 struct psi_decl_arg *arg;
4248
4249 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
4250 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
4251 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
4252 }
4253 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4254 }
4255 }
4256 #line 4257 "src/parser_proc.c" /* glr.c:816 */
4257 break;
4258
4259 case 501:
4260 #line 1395 "src/parser_proc_grammar.y" /* glr.c:816 */
4261 {
4262 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4263 }
4264 #line 4265 "src/parser_proc.c" /* glr.c:816 */
4265 break;
4266
4267 case 502:
4268 #line 1398 "src/parser_proc_grammar.y" /* glr.c:816 */
4269 {
4270 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4271 }
4272 #line 4273 "src/parser_proc.c" /* glr.c:816 */
4273 break;
4274
4275 case 503:
4276 #line 1404 "src/parser_proc_grammar.y" /* glr.c:816 */
4277 {
4278 {
4279 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4280 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4281 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &arg);
4282 }
4283 }
4284 #line 4285 "src/parser_proc.c" /* glr.c:816 */
4285 break;
4286
4287 case 504:
4288 #line 1411 "src/parser_proc_grammar.y" /* glr.c:816 */
4289 {
4290 {
4291 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4292 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4293 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), &arg);
4294 }
4295 }
4296 #line 4297 "src/parser_proc.c" /* glr.c:816 */
4297 break;
4298
4299 case 505:
4300 #line 1421 "src/parser_proc_grammar.y" /* glr.c:816 */
4301 {
4302 (*(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)));
4303 (*(struct psi_decl_enum **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
4304 }
4305 #line 4306 "src/parser_proc.c" /* glr.c:816 */
4306 break;
4307
4308 case 506:
4309 #line 1428 "src/parser_proc_grammar.y" /* glr.c:816 */
4310 {
4311 (*(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)));
4312 }
4313 #line 4314 "src/parser_proc.c" /* glr.c:816 */
4314 break;
4315
4316 case 507:
4317 #line 1431 "src/parser_proc_grammar.y" /* glr.c:816 */
4318 {
4319 (*(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)));
4320 }
4321 #line 4322 "src/parser_proc.c" /* glr.c:816 */
4322 break;
4323
4324 case 508:
4325 #line 1437 "src/parser_proc_grammar.y" /* glr.c:816 */
4326 {
4327 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4328 (*(struct psi_decl_enum_item **)(&(*yyvalp))) = psi_decl_enum_item_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, NULL);
4329 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4330 }
4331 #line 4332 "src/parser_proc.c" /* glr.c:816 */
4332 break;
4333
4334 case 509:
4335 #line 1442 "src/parser_proc_grammar.y" /* glr.c:816 */
4336 {
4337 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4338 (*(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)));
4339 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4340 }
4341 #line 4342 "src/parser_proc.c" /* glr.c:816 */
4342 break;
4343
4344 case 510:
4345 #line 1450 "src/parser_proc_grammar.y" /* glr.c:816 */
4346 {
4347 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4348 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4349 }
4350 #line 4351 "src/parser_proc.c" /* glr.c:816 */
4351 break;
4352
4353 case 511:
4354 #line 1454 "src/parser_proc_grammar.y" /* glr.c:816 */
4355 {
4356 (*(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)));
4357 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->token);
4358 }
4359 #line 4360 "src/parser_proc.c" /* glr.c:816 */
4360 break;
4361
4362 case 512:
4363 #line 1458 "src/parser_proc_grammar.y" /* glr.c:816 */
4364 {
4365 (*(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)));
4366 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4367 }
4368 #line 4369 "src/parser_proc.c" /* glr.c:816 */
4369 break;
4370
4371 case 513:
4372 #line 1462 "src/parser_proc_grammar.y" /* glr.c:816 */
4373 {
4374 (*(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)));
4375 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4376 }
4377 #line 4378 "src/parser_proc.c" /* glr.c:816 */
4378 break;
4379
4380 case 514:
4381 #line 1466 "src/parser_proc_grammar.y" /* glr.c:816 */
4382 {
4383 (*(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)));
4384 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4385 }
4386 #line 4387 "src/parser_proc.c" /* glr.c:816 */
4387 break;
4388
4389 case 515:
4390 #line 1470 "src/parser_proc_grammar.y" /* glr.c:816 */
4391 {
4392 (*(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)));
4393 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4394 }
4395 #line 4396 "src/parser_proc.c" /* glr.c:816 */
4396 break;
4397
4398 case 516:
4399 #line 1477 "src/parser_proc_grammar.y" /* glr.c:816 */
4400 {
4401 (*(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);
4402 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4403 }
4404 #line 4405 "src/parser_proc.c" /* glr.c:816 */
4405 break;
4406
4407 case 517:
4408 #line 1481 "src/parser_proc_grammar.y" /* glr.c:816 */
4409 {
4410 (*(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);
4411 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4412 }
4413 #line 4414 "src/parser_proc.c" /* glr.c:816 */
4414 break;
4415
4416 case 518:
4417 #line 1485 "src/parser_proc_grammar.y" /* glr.c:816 */
4418 {
4419 (*(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);
4420 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4421 }
4422 #line 4423 "src/parser_proc.c" /* glr.c:816 */
4423 break;
4424
4425 case 519:
4426 #line 1489 "src/parser_proc_grammar.y" /* glr.c:816 */
4427 {
4428 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_NAME, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0);
4429 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4430 }
4431 #line 4432 "src/parser_proc.c" /* glr.c:816 */
4432 break;
4433
4434 case 520:
4435 #line 1493 "src/parser_proc_grammar.y" /* glr.c:816 */
4436 {
4437 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4438 }
4439 #line 4440 "src/parser_proc.c" /* glr.c:816 */
4440 break;
4441
4442 case 521:
4443 #line 1499 "src/parser_proc_grammar.y" /* glr.c:816 */
4444 {
4445 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4446 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4447 }
4448 #line 4449 "src/parser_proc.c" /* glr.c:816 */
4449 break;
4450
4451 case 522:
4452 #line 1503 "src/parser_proc_grammar.y" /* glr.c:816 */
4453 {
4454 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4455 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4456 }
4457 #line 4458 "src/parser_proc.c" /* glr.c:816 */
4458 break;
4459
4460 case 523:
4461 #line 1510 "src/parser_proc_grammar.y" /* glr.c:816 */
4462 {
4463 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4464 }
4465 #line 4466 "src/parser_proc.c" /* glr.c:816 */
4466 break;
4467
4468 case 524:
4469 #line 1513 "src/parser_proc_grammar.y" /* glr.c:816 */
4470 {
4471 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4472 int8_t sizeof_void_p = sizeof(void *);
4473 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0);
4474 } else {
4475 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_SIZEOF, (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), 0);
4476 }
4477 }
4478 #line 4479 "src/parser_proc.c" /* glr.c:816 */
4479 break;
4480
4481 case 525:
4482 #line 1524 "src/parser_proc_grammar.y" /* glr.c:816 */
4483 {
4484 int8_t sizeof_void_p = sizeof(void *);
4485 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0);
4486 }
4487 #line 4488 "src/parser_proc.c" /* glr.c:816 */
4488 break;
4489
4490 case 526:
4491 #line 1528 "src/parser_proc_grammar.y" /* glr.c:816 */
4492 {
4493 int8_t sizeof_a = sizeof('a');
4494 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_a, 0);
4495 }
4496 #line 4497 "src/parser_proc.c" /* glr.c:816 */
4497 break;
4498
4499 case 527:
4500 #line 1532 "src/parser_proc_grammar.y" /* glr.c:816 */
4501 {
4502 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT64, &(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->size, 0);
4503 }
4504 #line 4505 "src/parser_proc.c" /* glr.c:816 */
4505 break;
4506
4507 case 528:
4508 #line 1538 "src/parser_proc_grammar.y" /* glr.c:816 */
4509 {
4510 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4511 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4512 } else {
4513 char digest[17];
4514
4515 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
4516 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
4517 }
4518 }
4519 #line 4520 "src/parser_proc.c" /* glr.c:816 */
4520 break;
4521
4522 case 529:
4523 #line 1551 "src/parser_proc_grammar.y" /* glr.c:816 */
4524 {
4525 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4526 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4527 } else {
4528 char digest[17];
4529
4530 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
4531 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
4532 }
4533 }
4534 #line 4535 "src/parser_proc.c" /* glr.c:816 */
4535 break;
4536
4537 case 530:
4538 #line 1564 "src/parser_proc_grammar.y" /* glr.c:816 */
4539 {
4540 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4541 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4542 } else {
4543 char digest[17];
4544
4545 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
4546 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
4547 }
4548 }
4549 #line 4550 "src/parser_proc.c" /* glr.c:816 */
4550 break;
4551
4552 case 531:
4553 #line 1577 "src/parser_proc_grammar.y" /* glr.c:816 */
4554 {
4555 (*(struct psi_token **)(&(*yyvalp))) = NULL;
4556 }
4557 #line 4558 "src/parser_proc.c" /* glr.c:816 */
4558 break;
4559
4560 case 532:
4561 #line 1580 "src/parser_proc_grammar.y" /* glr.c:816 */
4562 {
4563 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4564 (*(struct psi_token **)(&(*yyvalp)))->type = PSI_T_NAME;
4565 }
4566 #line 4567 "src/parser_proc.c" /* glr.c:816 */
4567 break;
4568
4569 case 533:
4570 #line 1587 "src/parser_proc_grammar.y" /* glr.c:816 */
4571 {
4572 (*(struct psi_layout **)(&(*yyvalp))) = NULL;
4573 }
4574 #line 4575 "src/parser_proc.c" /* glr.c:816 */
4575 break;
4576
4577 case 534:
4578 #line 1590 "src/parser_proc_grammar.y" /* glr.c:816 */
4579 {
4580 (*(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));
4581 }
4582 #line 4583 "src/parser_proc.c" /* glr.c:816 */
4583 break;
4584
4585 case 535:
4586 #line 1593 "src/parser_proc_grammar.y" /* glr.c:816 */
4587 {
4588 (*(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);
4589 }
4590 #line 4591 "src/parser_proc.c" /* glr.c:816 */
4591 break;
4592
4593 case 536:
4594 #line 1596 "src/parser_proc_grammar.y" /* glr.c:816 */
4595 {
4596 (*(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));
4597 }
4598 #line 4599 "src/parser_proc.c" /* glr.c:816 */
4599 break;
4600
4601 case 537:
4602 #line 1602 "src/parser_proc_grammar.y" /* glr.c:816 */
4603 {
4604 (*(struct psi_layout*)(&(*yyvalp))).pos = 0;
4605 (*(struct psi_layout*)(&(*yyvalp))).len = 0;
4606 }
4607 #line 4608 "src/parser_proc.c" /* glr.c:816 */
4608 break;
4609
4610 case 538:
4611 #line 1606 "src/parser_proc_grammar.y" /* glr.c:816 */
4612 {
4613 (*(struct psi_layout*)(&(*yyvalp))).pos = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text);
4614 (*(struct psi_layout*)(&(*yyvalp))).len = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
4615 }
4616 #line 4617 "src/parser_proc.c" /* glr.c:816 */
4617 break;
4618
4619 case 539:
4620 #line 1613 "src/parser_proc_grammar.y" /* glr.c:816 */
4621 {
4622 (*(size_t*)(&(*yyvalp))) = 0;
4623 }
4624 #line 4625 "src/parser_proc.c" /* glr.c:816 */
4625 break;
4626
4627 case 540:
4628 #line 1616 "src/parser_proc_grammar.y" /* glr.c:816 */
4629 {
4630 (*(size_t*)(&(*yyvalp))) = 0;
4631 }
4632 #line 4633 "src/parser_proc.c" /* glr.c:816 */
4633 break;
4634
4635 case 541:
4636 #line 1619 "src/parser_proc_grammar.y" /* glr.c:816 */
4637 {
4638 if (psi_num_exp_validate(PSI_DATA(P), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), NULL, NULL, NULL, NULL, NULL)) {
4639 (*(size_t*)(&(*yyvalp))) = psi_long_num_exp((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), NULL, &P->preproc->defs);
4640 } else {
4641 (*(size_t*)(&(*yyvalp))) = 0;
4642 }
4643 }
4644 #line 4645 "src/parser_proc.c" /* glr.c:816 */
4645 break;
4646
4647 case 542:
4648 #line 1629 "src/parser_proc_grammar.y" /* glr.c:816 */
4649 {
4650 (*(size_t*)(&(*yyvalp))) = 0;
4651 }
4652 #line 4653 "src/parser_proc.c" /* glr.c:816 */
4653 break;
4654
4655 case 543:
4656 #line 1632 "src/parser_proc_grammar.y" /* glr.c:816 */
4657 {
4658 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4659 }
4660 #line 4661 "src/parser_proc.c" /* glr.c:816 */
4661 break;
4662
4663 case 545:
4664 #line 1639 "src/parser_proc_grammar.y" /* glr.c:816 */
4665 {
4666 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4667 }
4668 #line 4669 "src/parser_proc.c" /* glr.c:816 */
4669 break;
4670
4671 case 546:
4672 #line 1645 "src/parser_proc_grammar.y" /* glr.c:816 */
4673 {
4674 (*(size_t*)(&(*yyvalp))) = 1;
4675 }
4676 #line 4677 "src/parser_proc.c" /* glr.c:816 */
4677 break;
4678
4679 case 547:
4680 #line 1648 "src/parser_proc_grammar.y" /* glr.c:816 */
4681 {
4682 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)) + 1;
4683 }
4684 #line 4685 "src/parser_proc.c" /* glr.c:816 */
4685 break;
4686
4687 case 550:
4688 #line 1665 "src/parser_proc_grammar.y" /* glr.c:816 */
4689 {
4690 (*(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)));
4691 }
4692 #line 4693 "src/parser_proc.c" /* glr.c:816 */
4693 break;
4694
4695 case 551:
4696 #line 1668 "src/parser_proc_grammar.y" /* glr.c:816 */
4697 {
4698 (*(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)));
4699 (*(struct psi_impl_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->static_memory = 1;
4700 }
4701 #line 4702 "src/parser_proc.c" /* glr.c:816 */
4702 break;
4703
4704 case 552:
4705 #line 1675 "src/parser_proc_grammar.y" /* glr.c:816 */
4706 {
4707 (*(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)));
4708 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
4709 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval));
4710 }
4711 #line 4712 "src/parser_proc.c" /* glr.c:816 */
4712 break;
4713
4714 case 553:
4715 #line 1680 "src/parser_proc_grammar.y" /* glr.c:816 */
4716 {
4717 (*(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)));
4718 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4719 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval));
4720 }
4721 #line 4722 "src/parser_proc.c" /* glr.c:816 */
4722 break;
4723
4724 case 554:
4725 #line 1685 "src/parser_proc_grammar.y" /* glr.c:816 */
4726 {
4727 (*(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)));
4728 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval)));
4729 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-11)].yystate.yysemantics.yysval));
4730 (*(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);
4731 (*(struct psi_impl_func **)(&(*yyvalp)))->vararg->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4732 }
4733 #line 4734 "src/parser_proc.c" /* glr.c:816 */
4734 break;
4735
4736 case 555:
4737 #line 1695 "src/parser_proc_grammar.y" /* glr.c:816 */
4738 {
4739 (*(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)));
4740 }
4741 #line 4742 "src/parser_proc.c" /* glr.c:816 */
4742 break;
4743
4744 case 556:
4745 #line 1698 "src/parser_proc_grammar.y" /* glr.c:816 */
4746 {
4747 (*(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)));
4748 }
4749 #line 4750 "src/parser_proc.c" /* glr.c:816 */
4750 break;
4751
4752 case 557:
4753 #line 1704 "src/parser_proc_grammar.y" /* glr.c:816 */
4754 {
4755 (*(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);
4756 }
4757 #line 4758 "src/parser_proc.c" /* glr.c:816 */
4758 break;
4759
4760 case 558:
4761 #line 1707 "src/parser_proc_grammar.y" /* glr.c:816 */
4762 {
4763 (*(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)));
4764 }
4765 #line 4766 "src/parser_proc.c" /* glr.c:816 */
4766 break;
4767
4768 case 559:
4769 #line 1713 "src/parser_proc_grammar.y" /* glr.c:816 */
4770 {
4771 (*(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)));
4772 (*(struct psi_impl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4773 }
4774 #line 4775 "src/parser_proc.c" /* glr.c:816 */
4775 break;
4776
4777 case 560:
4778 #line 1720 "src/parser_proc_grammar.y" /* glr.c:816 */
4779 {
4780 (*(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);
4781 (*(struct psi_impl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4782 }
4783 #line 4784 "src/parser_proc.c" /* glr.c:816 */
4784 break;
4785
4786 case 570:
4787 #line 1739 "src/parser_proc_grammar.y" /* glr.c:816 */
4788 {
4789 (*(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)));
4790 }
4791 #line 4792 "src/parser_proc.c" /* glr.c:816 */
4792 break;
4793
4794 case 571:
4795 #line 1742 "src/parser_proc_grammar.y" /* glr.c:816 */
4796 {
4797 (*(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)));
4798 }
4799 #line 4800 "src/parser_proc.c" /* glr.c:816 */
4800 break;
4801
4802 case 572:
4803 #line 1748 "src/parser_proc_grammar.y" /* glr.c:816 */
4804 {
4805 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_return_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4806 }
4807 #line 4808 "src/parser_proc.c" /* glr.c:816 */
4808 break;
4809
4810 case 573:
4811 #line 1751 "src/parser_proc_grammar.y" /* glr.c:816 */
4812 {
4813 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_let_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4814 }
4815 #line 4816 "src/parser_proc.c" /* glr.c:816 */
4816 break;
4817
4818 case 574:
4819 #line 1754 "src/parser_proc_grammar.y" /* glr.c:816 */
4820 {
4821 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_set_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4822 }
4823 #line 4824 "src/parser_proc.c" /* glr.c:816 */
4824 break;
4825
4826 case 575:
4827 #line 1757 "src/parser_proc_grammar.y" /* glr.c:816 */
4828 {
4829 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_assert_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4830 }
4831 #line 4832 "src/parser_proc.c" /* glr.c:816 */
4832 break;
4833
4834 case 576:
4835 #line 1760 "src/parser_proc_grammar.y" /* glr.c:816 */
4836 {
4837 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_free_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4838 }
4839 #line 4840 "src/parser_proc.c" /* glr.c:816 */
4840 break;
4841
4842 case 577:
4843 #line 1766 "src/parser_proc_grammar.y" /* glr.c:816 */
4844 {
4845 (*(struct psi_let_stmt **)(&(*yyvalp))) = psi_let_stmt_init((*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4846 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4847 }
4848 #line 4849 "src/parser_proc.c" /* glr.c:816 */
4849 break;
4850
4851 case 578:
4852 #line 1770 "src/parser_proc_grammar.y" /* glr.c:816 */
4853 {
4854 (*(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))));
4855 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4856 (*(struct psi_let_stmt **)(&(*yyvalp)))->exp->is_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4857 }
4858 #line 4859 "src/parser_proc.c" /* glr.c:816 */
4859 break;
4860
4861 case 580:
4862 #line 1779 "src/parser_proc_grammar.y" /* glr.c:816 */
4863 {
4864 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4865 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = true;
4866 }
4867 #line 4868 "src/parser_proc.c" /* glr.c:816 */
4868 break;
4869
4870 case 581:
4871 #line 1783 "src/parser_proc_grammar.y" /* glr.c:816 */
4872 {
4873 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4874 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = false;
4875 }
4876 #line 4877 "src/parser_proc.c" /* glr.c:816 */
4877 break;
4878
4879 case 582:
4880 #line 1790 "src/parser_proc_grammar.y" /* glr.c:816 */
4881 {
4882 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_NULL, NULL);
4883 }
4884 #line 4885 "src/parser_proc.c" /* glr.c:816 */
4885 break;
4886
4887 case 583:
4888 #line 1793 "src/parser_proc_grammar.y" /* glr.c:816 */
4889 {
4890 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4891 }
4892 #line 4893 "src/parser_proc.c" /* glr.c:816 */
4893 break;
4894
4895 case 584:
4896 #line 1796 "src/parser_proc_grammar.y" /* glr.c:816 */
4897 {
4898 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4899 (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->static_memory = 1;
4900 }
4901 #line 4902 "src/parser_proc.c" /* glr.c:816 */
4902 break;
4903
4904 case 585:
4905 #line 1800 "src/parser_proc_grammar.y" /* glr.c:816 */
4906 {
4907 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLBACK, (*(struct psi_let_callback **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4908 }
4909 #line 4910 "src/parser_proc.c" /* glr.c:816 */
4910 break;
4911
4912 case 586:
4913 #line 1803 "src/parser_proc_grammar.y" /* glr.c:816 */
4914 {
4915 (*(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)));
4916 }
4917 #line 4918 "src/parser_proc.c" /* glr.c:816 */
4918 break;
4919
4920 case 587:
4921 #line 1806 "src/parser_proc_grammar.y" /* glr.c:816 */
4922 {
4923 (*(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)));
4924 }
4925 #line 4926 "src/parser_proc.c" /* glr.c:816 */
4926 break;
4927
4928 case 588:
4929 #line 1812 "src/parser_proc_grammar.y" /* glr.c:816 */
4930 {
4931 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4932 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4933 }
4934 #line 4935 "src/parser_proc.c" /* glr.c:816 */
4935 break;
4936
4937 case 589:
4938 #line 1816 "src/parser_proc_grammar.y" /* glr.c:816 */
4939 {
4940 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4941 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = 1;
4942 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
4943 }
4944 #line 4945 "src/parser_proc.c" /* glr.c:816 */
4945 break;
4946
4947 case 590:
4948 #line 1824 "src/parser_proc_grammar.y" /* glr.c:816 */
4949 {
4950 (*(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)));
4951 (*(struct psi_let_calloc **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4952 }
4953 #line 4954 "src/parser_proc.c" /* glr.c:816 */
4954 break;
4955
4956 case 591:
4957 #line 1831 "src/parser_proc_grammar.y" /* glr.c:816 */
4958 {
4959 (*(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)));
4960 (*(struct psi_let_callback **)(&(*yyvalp)))->func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
4961 (*(struct psi_let_callback **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval)));
4962 }
4963 #line 4964 "src/parser_proc.c" /* glr.c:816 */
4964 break;
4965
4966 case 592:
4967 #line 1839 "src/parser_proc_grammar.y" /* glr.c:816 */
4968 {
4969 (*(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)));
4970 (*(struct psi_let_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
4971 (*(struct psi_let_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4972 }
4973 #line 4974 "src/parser_proc.c" /* glr.c:816 */
4974 break;
4975
4976 case 603:
4977 #line 1860 "src/parser_proc_grammar.y" /* glr.c:816 */
4978 {
4979 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4980 }
4981 #line 4982 "src/parser_proc.c" /* glr.c:816 */
4982 break;
4983
4984 case 604:
4985 #line 1863 "src/parser_proc_grammar.y" /* glr.c:816 */
4986 {
4987 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4988 }
4989 #line 4990 "src/parser_proc.c" /* glr.c:816 */
4990 break;
4991
4992 case 605:
4993 #line 1869 "src/parser_proc_grammar.y" /* glr.c:816 */
4994 {
4995 (*(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)));
4996 }
4997 #line 4998 "src/parser_proc.c" /* glr.c:816 */
4998 break;
4999
5000 case 606:
5001 #line 1872 "src/parser_proc_grammar.y" /* glr.c:816 */
5002 {
5003 (*(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)));
5004 }
5005 #line 5006 "src/parser_proc.c" /* glr.c:816 */
5006 break;
5007
5008 case 609:
5009 #line 1883 "src/parser_proc_grammar.y" /* glr.c:816 */
5010 {
5011 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5012 }
5013 #line 5014 "src/parser_proc.c" /* glr.c:816 */
5014 break;
5015
5016 case 610:
5017 #line 1886 "src/parser_proc_grammar.y" /* glr.c:816 */
5018 {
5019 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5020 }
5021 #line 5022 "src/parser_proc.c" /* glr.c:816 */
5022 break;
5023
5024 case 611:
5025 #line 1892 "src/parser_proc_grammar.y" /* glr.c:816 */
5026 {
5027 (*(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)));
5028 }
5029 #line 5030 "src/parser_proc.c" /* glr.c:816 */
5030 break;
5031
5032 case 612:
5033 #line 1895 "src/parser_proc_grammar.y" /* glr.c:816 */
5034 {
5035 (*(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)));
5036 }
5037 #line 5038 "src/parser_proc.c" /* glr.c:816 */
5038 break;
5039
5040 case 613:
5041 #line 1901 "src/parser_proc_grammar.y" /* glr.c:816 */
5042 {
5043 (*(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))));
5044 (*(struct psi_return_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5045 }
5046 #line 5047 "src/parser_proc.c" /* glr.c:816 */
5047 break;
5048
5049 case 614:
5050 #line 1908 "src/parser_proc_grammar.y" /* glr.c:816 */
5051 {
5052 (*(struct psi_set_stmt **)(&(*yyvalp))) = psi_set_stmt_init((*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5053 (*(struct psi_set_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5054 }
5055 #line 5056 "src/parser_proc.c" /* glr.c:816 */
5056 break;
5057
5058 case 615:
5059 #line 1915 "src/parser_proc_grammar.y" /* glr.c:816 */
5060 {
5061 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_FUNC, (*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5062 }
5063 #line 5064 "src/parser_proc.c" /* glr.c:816 */
5064 break;
5065
5066 case 616:
5067 #line 1918 "src/parser_proc_grammar.y" /* glr.c:816 */
5068 {
5069 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_NUMEXP, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5070 }
5071 #line 5072 "src/parser_proc.c" /* glr.c:816 */
5072 break;
5073
5074 case 617:
5075 #line 1921 "src/parser_proc_grammar.y" /* glr.c:816 */
5076 {
5077 (*(struct psi_set_exp **)(&(*yyvalp))) = (*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5078 (*(struct psi_set_exp **)(&(*yyvalp)))->var = (*(struct psi_impl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5079 }
5080 #line 5081 "src/parser_proc.c" /* glr.c:816 */
5081 break;
5082
5083 case 618:
5084 #line 1928 "src/parser_proc_grammar.y" /* glr.c:816 */
5085 {
5086 (*(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)));
5087 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
5088 (*(struct psi_set_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5089 }
5090 #line 5091 "src/parser_proc.c" /* glr.c:816 */
5091 break;
5092
5093 case 619:
5094 #line 1933 "src/parser_proc_grammar.y" /* glr.c:816 */
5095 {
5096 (*(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)));
5097 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
5098 (*(struct psi_set_func **)(&(*yyvalp)))->recursive = 1;
5099 }
5100 #line 5101 "src/parser_proc.c" /* glr.c:816 */
5101 break;
5102
5103 case 628:
5104 #line 1952 "src/parser_proc_grammar.y" /* glr.c:816 */
5105 {
5106 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5107 }
5108 #line 5109 "src/parser_proc.c" /* glr.c:816 */
5109 break;
5110
5111 case 629:
5112 #line 1955 "src/parser_proc_grammar.y" /* glr.c:816 */
5113 {
5114 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5115 }
5116 #line 5117 "src/parser_proc.c" /* glr.c:816 */
5117 break;
5118
5119 case 630:
5120 #line 1961 "src/parser_proc_grammar.y" /* glr.c:816 */
5121 {
5122 (*(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)));
5123 }
5124 #line 5125 "src/parser_proc.c" /* glr.c:816 */
5125 break;
5126
5127 case 631:
5128 #line 1964 "src/parser_proc_grammar.y" /* glr.c:816 */
5129 {
5130 (*(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)));
5131 }
5132 #line 5133 "src/parser_proc.c" /* glr.c:816 */
5133 break;
5134
5135 case 632:
5136 #line 1970 "src/parser_proc_grammar.y" /* glr.c:816 */
5137 {
5138 (*(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)));
5139 (*(struct psi_assert_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5140 }
5141 #line 5142 "src/parser_proc.c" /* glr.c:816 */
5142 break;
5143
5144 case 635:
5145 #line 1982 "src/parser_proc_grammar.y" /* glr.c:816 */
5146 {
5147 (*(struct psi_free_stmt **)(&(*yyvalp))) = psi_free_stmt_init((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5148 (*(struct psi_free_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5149 }
5150 #line 5151 "src/parser_proc.c" /* glr.c:816 */
5151 break;
5152
5153 case 636:
5154 #line 1989 "src/parser_proc_grammar.y" /* glr.c:816 */
5155 {
5156 (*(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)));
5157 }
5158 #line 5159 "src/parser_proc.c" /* glr.c:816 */
5159 break;
5160
5161 case 637:
5162 #line 1992 "src/parser_proc_grammar.y" /* glr.c:816 */
5163 {
5164 (*(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)));
5165 }
5166 #line 5167 "src/parser_proc.c" /* glr.c:816 */
5167 break;
5168
5169 case 638:
5170 #line 1998 "src/parser_proc_grammar.y" /* glr.c:816 */
5171 {
5172 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5173 (*(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)));
5174 (*(struct psi_free_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5175 }
5176 #line 5177 "src/parser_proc.c" /* glr.c:816 */
5177 break;
5178
5179 case 639:
5180 #line 2006 "src/parser_proc_grammar.y" /* glr.c:816 */
5181 {
5182 (*(bool*)(&(*yyvalp))) = false;
5183 }
5184 #line 5185 "src/parser_proc.c" /* glr.c:816 */
5185 break;
5186
5187 case 640:
5188 #line 2009 "src/parser_proc_grammar.y" /* glr.c:816 */
5189 {
5190 (*(bool*)(&(*yyvalp))) = true;
5191 }
5192 #line 5193 "src/parser_proc.c" /* glr.c:816 */
5193 break;
5194
5195
5196 #line 5197 "src/parser_proc.c" /* glr.c:816 */
5197 default: break;
5198 }
5199
5200 return yyok;
5201 # undef yyerrok
5202 # undef YYABORT
5203 # undef YYACCEPT
5204 # undef YYERROR
5205 # undef YYBACKUP
5206 # undef yyclearin
5207 # undef YYRECOVERING
5208 }
5209
5210
5211 static void
5212 yyuserMerge (int yyn, YYSTYPE* yy0, YYSTYPE* yy1)
5213 {
5214 YYUSE (yy0);
5215 YYUSE (yy1);
5216
5217 switch (yyn)
5218 {
5219
5220 default: break;
5221 }
5222 }
5223
5224 /* Bison grammar-table manipulation. */
5225
5226 /*-----------------------------------------------.
5227 | Release the memory associated to this symbol. |
5228 `-----------------------------------------------*/
5229
5230 static void
5231 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
5232 {
5233 YYUSE (yyvaluep);
5234 YYUSE (P);
5235 YYUSE (tokens);
5236 YYUSE (index);
5237 if (!yymsg)
5238 yymsg = "Deleting";
5239 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
5240
5241 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
5242 switch (yytype)
5243 {
5244 case 136: /* binary_op_token */
5245 #line 262 "src/parser_proc_grammar.y" /* glr.c:846 */
5246 {}
5247 #line 5248 "src/parser_proc.c" /* glr.c:846 */
5248 break;
5249
5250 case 137: /* unary_op_token */
5251 #line 262 "src/parser_proc_grammar.y" /* glr.c:846 */
5252 {}
5253 #line 5254 "src/parser_proc.c" /* glr.c:846 */
5254 break;
5255
5256 case 138: /* name_token */
5257 #line 262 "src/parser_proc_grammar.y" /* glr.c:846 */
5258 {}
5259 #line 5260 "src/parser_proc.c" /* glr.c:846 */
5260 break;
5261
5262 case 139: /* any_noeol_token */
5263 #line 262 "src/parser_proc_grammar.y" /* glr.c:846 */
5264 {}
5265 #line 5266 "src/parser_proc.c" /* glr.c:846 */
5266 break;
5267
5268 case 144: /* lib */
5269 #line 256 "src/parser_proc_grammar.y" /* glr.c:846 */
5270 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5271 #line 5272 "src/parser_proc.c" /* glr.c:846 */
5272 break;
5273
5274 case 145: /* cpp */
5275 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
5276 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
5277 #line 5278 "src/parser_proc.c" /* glr.c:846 */
5278 break;
5279
5280 case 146: /* cpp_exp */
5281 #line 271 "src/parser_proc_grammar.y" /* glr.c:846 */
5282 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
5283 #line 5284 "src/parser_proc.c" /* glr.c:846 */
5284 break;
5285
5286 case 148: /* cpp_message_token */
5287 #line 259 "src/parser_proc_grammar.y" /* glr.c:846 */
5288 {}
5289 #line 5290 "src/parser_proc.c" /* glr.c:846 */
5290 break;
5291
5292 case 149: /* cpp_include_token */
5293 #line 259 "src/parser_proc_grammar.y" /* glr.c:846 */
5294 {}
5295 #line 5296 "src/parser_proc.c" /* glr.c:846 */
5296 break;
5297
5298 case 150: /* cpp_header_token */
5299 #line 259 "src/parser_proc_grammar.y" /* glr.c:846 */
5300 {}
5301 #line 5302 "src/parser_proc.c" /* glr.c:846 */
5302 break;
5303
5304 case 151: /* cpp_no_arg_token */
5305 #line 259 "src/parser_proc_grammar.y" /* glr.c:846 */
5306 {}
5307 #line 5308 "src/parser_proc.c" /* glr.c:846 */
5308 break;
5309
5310 case 152: /* cpp_name_arg_token */
5311 #line 259 "src/parser_proc_grammar.y" /* glr.c:846 */
5312 {}
5313 #line 5314 "src/parser_proc.c" /* glr.c:846 */
5314 break;
5315
5316 case 153: /* cpp_exp_arg_token */
5317 #line 259 "src/parser_proc_grammar.y" /* glr.c:846 */
5318 {}
5319 #line 5320 "src/parser_proc.c" /* glr.c:846 */
5320 break;
5321
5322 case 154: /* cpp_special_name_token */
5323 #line 259 "src/parser_proc_grammar.y" /* glr.c:846 */
5324 {}
5325 #line 5326 "src/parser_proc.c" /* glr.c:846 */
5326 break;
5327
5328 case 155: /* cpp_macro_decl */
5329 #line 273 "src/parser_proc_grammar.y" /* glr.c:846 */
5330 {psi_cpp_macro_decl_free(&(*(struct psi_cpp_macro_decl **)(&(*yyvaluep))));}
5331 #line 5332 "src/parser_proc.c" /* glr.c:846 */
5332 break;
5333
5334 case 156: /* cpp_macro_sig */
5335 #line 275 "src/parser_proc_grammar.y" /* glr.c:846 */
5336 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5337 #line 5338 "src/parser_proc.c" /* glr.c:846 */
5338 break;
5339
5340 case 157: /* cpp_macro_sig_args */
5341 #line 275 "src/parser_proc_grammar.y" /* glr.c:846 */
5342 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5343 #line 5344 "src/parser_proc.c" /* glr.c:846 */
5344 break;
5345
5346 case 158: /* cpp_macro_decl_tokens */
5347 #line 275 "src/parser_proc_grammar.y" /* glr.c:846 */
5348 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5349 #line 5350 "src/parser_proc.c" /* glr.c:846 */
5350 break;
5351
5352 case 159: /* cpp_macro_decl_token_list */
5353 #line 275 "src/parser_proc_grammar.y" /* glr.c:846 */
5354 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5355 #line 5356 "src/parser_proc.c" /* glr.c:846 */
5356 break;
5357
5358 case 160: /* cpp_macro_exp */
5359 #line 277 "src/parser_proc_grammar.y" /* glr.c:846 */
5360 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
5361 #line 5362 "src/parser_proc.c" /* glr.c:846 */
5362 break;
5363
5364 case 161: /* cpp_macro_call_args */
5365 #line 275 "src/parser_proc_grammar.y" /* glr.c:846 */
5366 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5367 #line 5368 "src/parser_proc.c" /* glr.c:846 */
5368 break;
5369
5370 case 162: /* cpp_macro_call_arg_list */
5371 #line 275 "src/parser_proc_grammar.y" /* glr.c:846 */
5372 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5373 #line 5374 "src/parser_proc.c" /* glr.c:846 */
5374 break;
5375
5376 case 163: /* constant */
5377 #line 283 "src/parser_proc_grammar.y" /* glr.c:846 */
5378 {psi_const_free(&(*(struct psi_const **)(&(*yyvaluep))));}
5379 #line 5380 "src/parser_proc.c" /* glr.c:846 */
5380 break;
5381
5382 case 164: /* constant_type */
5383 #line 285 "src/parser_proc_grammar.y" /* glr.c:846 */
5384 {psi_const_type_free(&(*(struct psi_const_type **)(&(*yyvaluep))));}
5385 #line 5386 "src/parser_proc.c" /* glr.c:846 */
5386 break;
5387
5388 case 165: /* constant_type_token */
5389 #line 280 "src/parser_proc_grammar.y" /* glr.c:846 */
5390 {}
5391 #line 5392 "src/parser_proc.c" /* glr.c:846 */
5392 break;
5393
5394 case 166: /* impl_def_val */
5395 #line 287 "src/parser_proc_grammar.y" /* glr.c:846 */
5396 {psi_impl_def_val_free(&(*(struct psi_impl_def_val **)(&(*yyvaluep))));}
5397 #line 5398 "src/parser_proc.c" /* glr.c:846 */
5398 break;
5399
5400 case 167: /* impl_def_val_token */
5401 #line 280 "src/parser_proc_grammar.y" /* glr.c:846 */
5402 {}
5403 #line 5404 "src/parser_proc.c" /* glr.c:846 */
5404 break;
5405
5406 case 168: /* decl_typedef */
5407 #line 300 "src/parser_proc_grammar.y" /* glr.c:846 */
5408 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5409 #line 5410 "src/parser_proc.c" /* glr.c:846 */
5410 break;
5411
5412 case 169: /* typedef */
5413 #line 300 "src/parser_proc_grammar.y" /* glr.c:846 */
5414 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5415 #line 5416 "src/parser_proc.c" /* glr.c:846 */
5416 break;
5417
5418 case 170: /* typedef_anon */
5419 #line 300 "src/parser_proc_grammar.y" /* glr.c:846 */
5420 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5421 #line 5422 "src/parser_proc.c" /* glr.c:846 */
5422 break;
5423
5424 case 171: /* typedef_decl */
5425 #line 300 "src/parser_proc_grammar.y" /* glr.c:846 */
5426 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5427 #line 5428 "src/parser_proc.c" /* glr.c:846 */
5428 break;
5429
5430 case 172: /* typedef_anon_decl */
5431 #line 300 "src/parser_proc_grammar.y" /* glr.c:846 */
5432 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5433 #line 5434 "src/parser_proc.c" /* glr.c:846 */
5434 break;
5435
5436 case 173: /* qualified_decl_type */
5437 #line 296 "src/parser_proc_grammar.y" /* glr.c:846 */
5438 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
5439 #line 5440 "src/parser_proc.c" /* glr.c:846 */
5440 break;
5441
5442 case 174: /* decl_type */
5443 #line 296 "src/parser_proc_grammar.y" /* glr.c:846 */
5444 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
5445 #line 5446 "src/parser_proc.c" /* glr.c:846 */
5446 break;
5447
5448 case 175: /* decl_type_complex */
5449 #line 296 "src/parser_proc_grammar.y" /* glr.c:846 */
5450 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
5451 #line 5452 "src/parser_proc.c" /* glr.c:846 */
5452 break;
5453
5454 case 176: /* decl_type_simple */
5455 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
5456 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5457 #line 5458 "src/parser_proc.c" /* glr.c:846 */
5458 break;
5459
5460 case 177: /* decl_real_type */
5461 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
5462 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5463 #line 5464 "src/parser_proc.c" /* glr.c:846 */
5464 break;
5465
5466 case 178: /* decl_stdint_type */
5467 #line 293 "src/parser_proc_grammar.y" /* glr.c:846 */
5468 {}
5469 #line 5470 "src/parser_proc.c" /* glr.c:846 */
5470 break;
5471
5472 case 179: /* int_signed */
5473 #line 268 "src/parser_proc_grammar.y" /* glr.c:846 */
5474 {}
5475 #line 5476 "src/parser_proc.c" /* glr.c:846 */
5476 break;
5477
5478 case 180: /* int_width */
5479 #line 265 "src/parser_proc_grammar.y" /* glr.c:846 */
5480 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5481 #line 5482 "src/parser_proc.c" /* glr.c:846 */
5482 break;
5483
5484 case 181: /* decl_int_type */
5485 #line 290 "src/parser_proc_grammar.y" /* glr.c:846 */
5486 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5487 #line 5488 "src/parser_proc.c" /* glr.c:846 */
5488 break;
5489
5490 case 182: /* int_signed_types */
5491 #line 265 "src/parser_proc_grammar.y" /* glr.c:846 */
5492 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5493 #line 5494 "src/parser_proc.c" /* glr.c:846 */
5494 break;
5495
5496 case 183: /* signed_short_types */
5497 #line 268 "src/parser_proc_grammar.y" /* glr.c:846 */
5498 {}
5499 #line 5500 "src/parser_proc.c" /* glr.c:846 */
5500 break;
5501
5502 case 184: /* signed_long_types */
5503 #line 268 "src/parser_proc_grammar.y" /* glr.c:846 */
5504 {}
5505 #line 5506 "src/parser_proc.c" /* glr.c:846 */
5506 break;
5507
5508 case 185: /* int_width_types */
5509 #line 265 "src/parser_proc_grammar.y" /* glr.c:846 */
5510 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5511 #line 5512 "src/parser_proc.c" /* glr.c:846 */
5512 break;
5513
5514 case 186: /* decl_stmt */
5515 #line 298 "src/parser_proc_grammar.y" /* glr.c:846 */
5516 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5517 #line 5518 "src/parser_proc.c" /* glr.c:846 */
5518 break;
5519
5520 case 192: /* decl_vars */
5521 #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */
5522 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5523 #line 5524 "src/parser_proc.c" /* glr.c:846 */
5524 break;
5525
5526 case 197: /* decl */
5527 #line 298 "src/parser_proc_grammar.y" /* glr.c:846 */
5528 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5529 #line 5530 "src/parser_proc.c" /* glr.c:846 */
5530 break;
5531
5532 case 198: /* decl_body */
5533 #line 298 "src/parser_proc_grammar.y" /* glr.c:846 */
5534 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5535 #line 5536 "src/parser_proc.c" /* glr.c:846 */
5536 break;
5537
5538 case 199: /* decl_func_body */
5539 #line 298 "src/parser_proc_grammar.y" /* glr.c:846 */
5540 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5541 #line 5542 "src/parser_proc.c" /* glr.c:846 */
5542 break;
5543
5544 case 200: /* decl_functor_body */
5545 #line 298 "src/parser_proc_grammar.y" /* glr.c:846 */
5546 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5547 #line 5548 "src/parser_proc.c" /* glr.c:846 */
5548 break;
5549
5550 case 201: /* decl_functor */
5551 #line 300 "src/parser_proc_grammar.y" /* glr.c:846 */
5552 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5553 #line 5554 "src/parser_proc.c" /* glr.c:846 */
5554 break;
5555
5556 case 202: /* decl_func */
5557 #line 300 "src/parser_proc_grammar.y" /* glr.c:846 */
5558 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5559 #line 5560 "src/parser_proc.c" /* glr.c:846 */
5560 break;
5561
5562 case 203: /* decl_args */
5563 #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */
5564 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5565 #line 5566 "src/parser_proc.c" /* glr.c:846 */
5566 break;
5567
5568 case 204: /* decl_anon_arg */
5569 #line 300 "src/parser_proc_grammar.y" /* glr.c:846 */
5570 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5571 #line 5572 "src/parser_proc.c" /* glr.c:846 */
5572 break;
5573
5574 case 205: /* decl_arg */
5575 #line 300 "src/parser_proc_grammar.y" /* glr.c:846 */
5576 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5577 #line 5578 "src/parser_proc.c" /* glr.c:846 */
5578 break;
5579
5580 case 206: /* decl_var */
5581 #line 302 "src/parser_proc_grammar.y" /* glr.c:846 */
5582 {psi_decl_var_free(&(*(struct psi_decl_var **)(&(*yyvaluep))));}
5583 #line 5584 "src/parser_proc.c" /* glr.c:846 */
5584 break;
5585
5586 case 207: /* decl_union */
5587 #line 306 "src/parser_proc_grammar.y" /* glr.c:846 */
5588 {psi_decl_union_free(&(*(struct psi_decl_union **)(&(*yyvaluep))));}
5589 #line 5590 "src/parser_proc.c" /* glr.c:846 */
5590 break;
5591
5592 case 208: /* decl_struct */
5593 #line 304 "src/parser_proc_grammar.y" /* glr.c:846 */
5594 {psi_decl_struct_free(&(*(struct psi_decl_struct **)(&(*yyvaluep))));}
5595 #line 5596 "src/parser_proc.c" /* glr.c:846 */
5596 break;
5597
5598 case 209: /* decl_struct_args */
5599 #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */
5600 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5601 #line 5602 "src/parser_proc.c" /* glr.c:846 */
5602 break;
5603
5604 case 210: /* struct_args_block */
5605 #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */
5606 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5607 #line 5608 "src/parser_proc.c" /* glr.c:846 */
5608 break;
5609
5610 case 211: /* struct_args */
5611 #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */
5612 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5613 #line 5614 "src/parser_proc.c" /* glr.c:846 */
5614 break;
5615
5616 case 212: /* struct_arg_var_list */
5617 #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */
5618 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5619 #line 5620 "src/parser_proc.c" /* glr.c:846 */
5620 break;
5621
5622 case 213: /* decl_vars_with_layout */
5623 #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */
5624 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5625 #line 5626 "src/parser_proc.c" /* glr.c:846 */
5626 break;
5627
5628 case 214: /* decl_enum */
5629 #line 308 "src/parser_proc_grammar.y" /* glr.c:846 */
5630 {psi_decl_enum_free(&(*(struct psi_decl_enum **)(&(*yyvaluep))));}
5631 #line 5632 "src/parser_proc.c" /* glr.c:846 */
5632 break;
5633
5634 case 215: /* decl_enum_items */
5635 #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */
5636 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5637 #line 5638 "src/parser_proc.c" /* glr.c:846 */
5638 break;
5639
5640 case 216: /* decl_enum_item */
5641 #line 310 "src/parser_proc_grammar.y" /* glr.c:846 */
5642 {psi_decl_enum_item_free(&(*(struct psi_decl_enum_item **)(&(*yyvaluep))));}
5643 #line 5644 "src/parser_proc.c" /* glr.c:846 */
5644 break;
5645
5646 case 217: /* num_exp */
5647 #line 366 "src/parser_proc_grammar.y" /* glr.c:846 */
5648 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
5649 #line 5650 "src/parser_proc.c" /* glr.c:846 */
5650 break;
5651
5652 case 218: /* number */
5653 #line 368 "src/parser_proc_grammar.y" /* glr.c:846 */
5654 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
5655 #line 5656 "src/parser_proc.c" /* glr.c:846 */
5656 break;
5657
5658 case 219: /* sizeof */
5659 #line 320 "src/parser_proc_grammar.y" /* glr.c:846 */
5660 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
5661 #line 5662 "src/parser_proc.c" /* glr.c:846 */
5662 break;
5663
5664 case 220: /* sizeof_body */
5665 #line 320 "src/parser_proc_grammar.y" /* glr.c:846 */
5666 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
5667 #line 5668 "src/parser_proc.c" /* glr.c:846 */
5668 break;
5669
5670 case 221: /* sizeof_body_notypes */
5671 #line 320 "src/parser_proc_grammar.y" /* glr.c:846 */
5672 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
5673 #line 5674 "src/parser_proc.c" /* glr.c:846 */
5674 break;
5675
5676 case 222: /* enum_name */
5677 #line 256 "src/parser_proc_grammar.y" /* glr.c:846 */
5678 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5679 #line 5680 "src/parser_proc.c" /* glr.c:846 */
5680 break;
5681
5682 case 223: /* union_name */
5683 #line 256 "src/parser_proc_grammar.y" /* glr.c:846 */
5684 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5685 #line 5686 "src/parser_proc.c" /* glr.c:846 */
5686 break;
5687
5688 case 224: /* struct_name */
5689 #line 256 "src/parser_proc_grammar.y" /* glr.c:846 */
5690 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5691 #line 5692 "src/parser_proc.c" /* glr.c:846 */
5692 break;
5693
5694 case 225: /* optional_name */
5695 #line 256 "src/parser_proc_grammar.y" /* glr.c:846 */
5696 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5697 #line 5698 "src/parser_proc.c" /* glr.c:846 */
5698 break;
5699
5700 case 226: /* decl_layout */
5701 #line 317 "src/parser_proc_grammar.y" /* glr.c:846 */
5702 {psi_layout_free(&(*(struct psi_layout **)(&(*yyvaluep))));}
5703 #line 5704 "src/parser_proc.c" /* glr.c:846 */
5704 break;
5705
5706 case 227: /* align_and_size */
5707 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
5708 {}
5709 #line 5710 "src/parser_proc.c" /* glr.c:846 */
5710 break;
5711
5712 case 228: /* array_size */
5713 #line 371 "src/parser_proc_grammar.y" /* glr.c:846 */
5714 {}
5715 #line 5716 "src/parser_proc.c" /* glr.c:846 */
5716 break;
5717
5718 case 229: /* indirection */
5719 #line 371 "src/parser_proc_grammar.y" /* glr.c:846 */
5720 {}
5721 #line 5722 "src/parser_proc.c" /* glr.c:846 */
5722 break;
5723
5724 case 230: /* pointers */
5725 #line 371 "src/parser_proc_grammar.y" /* glr.c:846 */
5726 {}
5727 #line 5728 "src/parser_proc.c" /* glr.c:846 */
5728 break;
5729
5730 case 231: /* asterisks */
5731 #line 371 "src/parser_proc_grammar.y" /* glr.c:846 */
5732 {}
5733 #line 5734 "src/parser_proc.c" /* glr.c:846 */
5734 break;
5735
5736 case 233: /* impl */
5737 #line 323 "src/parser_proc_grammar.y" /* glr.c:846 */
5738 {psi_impl_free(&(*(struct psi_impl **)(&(*yyvaluep))));}
5739 #line 5740 "src/parser_proc.c" /* glr.c:846 */
5740 break;
5741
5742 case 234: /* impl_func */
5743 #line 325 "src/parser_proc_grammar.y" /* glr.c:846 */
5744 {psi_impl_func_free(&(*(struct psi_impl_func **)(&(*yyvaluep))));}
5745 #line 5746 "src/parser_proc.c" /* glr.c:846 */
5746 break;
5747
5748 case 235: /* impl_args */
5749 #line 363 "src/parser_proc_grammar.y" /* glr.c:846 */
5750 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5751 #line 5752 "src/parser_proc.c" /* glr.c:846 */
5752 break;
5753
5754 case 236: /* impl_arg */
5755 #line 327 "src/parser_proc_grammar.y" /* glr.c:846 */
5756 {psi_impl_arg_free(&(*(struct psi_impl_arg **)(&(*yyvaluep))));}
5757 #line 5758 "src/parser_proc.c" /* glr.c:846 */
5758 break;
5759
5760 case 237: /* impl_var */
5761 #line 331 "src/parser_proc_grammar.y" /* glr.c:846 */
5762 {psi_impl_var_free(&(*(struct psi_impl_var **)(&(*yyvaluep))));}
5763 #line 5764 "src/parser_proc.c" /* glr.c:846 */
5764 break;
5765
5766 case 238: /* impl_type */
5767 #line 329 "src/parser_proc_grammar.y" /* glr.c:846 */
5768 {psi_impl_type_free(&(*(struct psi_impl_type **)(&(*yyvaluep))));}
5769 #line 5770 "src/parser_proc.c" /* glr.c:846 */
5770 break;
5771
5772 case 239: /* impl_type_token */
5773 #line 361 "src/parser_proc_grammar.y" /* glr.c:846 */
5774 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5775 #line 5776 "src/parser_proc.c" /* glr.c:846 */
5776 break;
5777
5778 case 240: /* impl_stmts */
5779 #line 363 "src/parser_proc_grammar.y" /* glr.c:846 */
5780 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5781 #line 5782 "src/parser_proc.c" /* glr.c:846 */
5782 break;
5783
5784 case 241: /* impl_stmt */
5785 #line 359 "src/parser_proc_grammar.y" /* glr.c:846 */
5786 {psi_impl_stmt_free(&(*(struct psi_token ***)(&(*yyvaluep))));}
5787 #line 5788 "src/parser_proc.c" /* glr.c:846 */
5788 break;
5789
5790 case 242: /* let_stmt */
5791 #line 334 "src/parser_proc_grammar.y" /* glr.c:846 */
5792 {psi_let_stmt_free(&(*(struct psi_let_stmt **)(&(*yyvaluep))));}
5793 #line 5794 "src/parser_proc.c" /* glr.c:846 */
5794 break;
5795
5796 case 243: /* let_exp */
5797 #line 336 "src/parser_proc_grammar.y" /* glr.c:846 */
5798 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
5799 #line 5800 "src/parser_proc.c" /* glr.c:846 */
5800 break;
5801
5802 case 244: /* let_exp_byref */
5803 #line 336 "src/parser_proc_grammar.y" /* glr.c:846 */
5804 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
5805 #line 5806 "src/parser_proc.c" /* glr.c:846 */
5806 break;
5807
5808 case 245: /* let_exp_assign */
5809 #line 336 "src/parser_proc_grammar.y" /* glr.c:846 */
5810 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
5811 #line 5812 "src/parser_proc.c" /* glr.c:846 */
5812 break;
5813
5814 case 246: /* let_calloc */
5815 #line 338 "src/parser_proc_grammar.y" /* glr.c:846 */
5816 {psi_let_calloc_free(&(*(struct psi_let_calloc **)(&(*yyvaluep))));}
5817 #line 5818 "src/parser_proc.c" /* glr.c:846 */
5818 break;
5819
5820 case 247: /* let_callback */
5821 #line 340 "src/parser_proc_grammar.y" /* glr.c:846 */
5822 {psi_let_callback_free(&(*(struct psi_let_callback **)(&(*yyvaluep))));}
5823 #line 5824 "src/parser_proc.c" /* glr.c:846 */
5824 break;
5825
5826 case 248: /* let_func */
5827 #line 342 "src/parser_proc_grammar.y" /* glr.c:846 */
5828 {psi_let_func_free(&(*(struct psi_let_func **)(&(*yyvaluep))));}
5829 #line 5830 "src/parser_proc.c" /* glr.c:846 */
5830 break;
5831
5832 case 249: /* let_func_token */
5833 #line 361 "src/parser_proc_grammar.y" /* glr.c:846 */
5834 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5835 #line 5836 "src/parser_proc.c" /* glr.c:846 */
5836 break;
5837
5838 case 250: /* let_func_exps */
5839 #line 363 "src/parser_proc_grammar.y" /* glr.c:846 */
5840 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5841 #line 5842 "src/parser_proc.c" /* glr.c:846 */
5842 break;
5843
5844 case 251: /* let_exps */
5845 #line 363 "src/parser_proc_grammar.y" /* glr.c:846 */
5846 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5847 #line 5848 "src/parser_proc.c" /* glr.c:846 */
5848 break;
5849
5850 case 252: /* callback_rval */
5851 #line 361 "src/parser_proc_grammar.y" /* glr.c:846 */
5852 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5853 #line 5854 "src/parser_proc.c" /* glr.c:846 */
5854 break;
5855
5856 case 253: /* callback_arg_list */
5857 #line 363 "src/parser_proc_grammar.y" /* glr.c:846 */
5858 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5859 #line 5860 "src/parser_proc.c" /* glr.c:846 */
5860 break;
5861
5862 case 254: /* callback_args */
5863 #line 363 "src/parser_proc_grammar.y" /* glr.c:846 */
5864 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5865 #line 5866 "src/parser_proc.c" /* glr.c:846 */
5866 break;
5867
5868 case 255: /* return_stmt */
5869 #line 352 "src/parser_proc_grammar.y" /* glr.c:846 */
5870 {psi_return_stmt_free(&(*(struct psi_return_stmt **)(&(*yyvaluep))));}
5871 #line 5872 "src/parser_proc.c" /* glr.c:846 */
5872 break;
5873
5874 case 256: /* set_stmt */
5875 #line 344 "src/parser_proc_grammar.y" /* glr.c:846 */
5876 {psi_set_stmt_free(&(*(struct psi_set_stmt **)(&(*yyvaluep))));}
5877 #line 5878 "src/parser_proc.c" /* glr.c:846 */
5878 break;
5879
5880 case 257: /* set_exp */
5881 #line 346 "src/parser_proc_grammar.y" /* glr.c:846 */
5882 {psi_set_exp_free(&(*(struct psi_set_exp **)(&(*yyvaluep))));}
5883 #line 5884 "src/parser_proc.c" /* glr.c:846 */
5884 break;
5885
5886 case 258: /* set_func */
5887 #line 348 "src/parser_proc_grammar.y" /* glr.c:846 */
5888 {psi_set_func_free(&(*(struct psi_set_func **)(&(*yyvaluep))));}
5889 #line 5890 "src/parser_proc.c" /* glr.c:846 */
5890 break;
5891
5892 case 259: /* set_func_token */
5893 #line 361 "src/parser_proc_grammar.y" /* glr.c:846 */
5894 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5895 #line 5896 "src/parser_proc.c" /* glr.c:846 */
5896 break;
5897
5898 case 260: /* set_func_exps */
5899 #line 363 "src/parser_proc_grammar.y" /* glr.c:846 */
5900 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5901 #line 5902 "src/parser_proc.c" /* glr.c:846 */
5902 break;
5903
5904 case 261: /* set_exps */
5905 #line 363 "src/parser_proc_grammar.y" /* glr.c:846 */
5906 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5907 #line 5908 "src/parser_proc.c" /* glr.c:846 */
5908 break;
5909
5910 case 262: /* assert_stmt */
5911 #line 350 "src/parser_proc_grammar.y" /* glr.c:846 */
5912 {psi_assert_stmt_free(&(*(struct psi_assert_stmt **)(&(*yyvaluep))));}
5913 #line 5914 "src/parser_proc.c" /* glr.c:846 */
5914 break;
5915
5916 case 263: /* assert_stmt_token */
5917 #line 361 "src/parser_proc_grammar.y" /* glr.c:846 */
5918 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5919 #line 5920 "src/parser_proc.c" /* glr.c:846 */
5920 break;
5921
5922 case 264: /* free_stmt */
5923 #line 354 "src/parser_proc_grammar.y" /* glr.c:846 */
5924 {psi_free_stmt_free(&(*(struct psi_free_stmt **)(&(*yyvaluep))));}
5925 #line 5926 "src/parser_proc.c" /* glr.c:846 */
5926 break;
5927
5928 case 265: /* free_exps */
5929 #line 363 "src/parser_proc_grammar.y" /* glr.c:846 */
5930 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5931 #line 5932 "src/parser_proc.c" /* glr.c:846 */
5932 break;
5933
5934 case 266: /* free_exp */
5935 #line 356 "src/parser_proc_grammar.y" /* glr.c:846 */
5936 {psi_free_exp_free(&(*(struct psi_free_exp **)(&(*yyvaluep))));}
5937 #line 5938 "src/parser_proc.c" /* glr.c:846 */
5938 break;
5939
5940 case 267: /* reference */
5941 #line 373 "src/parser_proc_grammar.y" /* glr.c:846 */
5942 {}
5943 #line 5944 "src/parser_proc.c" /* glr.c:846 */
5944 break;
5945
5946
5947 default:
5948 break;
5949 }
5950 YY_IGNORE_MAYBE_UNINITIALIZED_END
5951 }
5952
5953 /** Number of symbols composing the right hand side of rule #RULE. */
5954 static inline int
5955 yyrhsLength (yyRuleNum yyrule)
5956 {
5957 return yyr2[yyrule];
5958 }
5959
5960 static void
5961 yydestroyGLRState (char const *yymsg, yyGLRState *yys, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
5962 {
5963 if (yys->yyresolved)
5964 yydestruct (yymsg, yystos[yys->yylrState],
5965 &yys->yysemantics.yysval, P, tokens, index);
5966 else
5967 {
5968 #if YYDEBUG
5969 if (yydebug)
5970 {
5971 if (yys->yysemantics.yyfirstVal)
5972 YYFPRINTF (stderr, "%s unresolved", yymsg);
5973 else
5974 YYFPRINTF (stderr, "%s incomplete", yymsg);
5975 YY_SYMBOL_PRINT ("", yystos[yys->yylrState], YY_NULLPTR, &yys->yyloc);
5976 }
5977 #endif
5978
5979 if (yys->yysemantics.yyfirstVal)
5980 {
5981 yySemanticOption *yyoption = yys->yysemantics.yyfirstVal;
5982 yyGLRState *yyrh;
5983 int yyn;
5984 for (yyrh = yyoption->yystate, yyn = yyrhsLength (yyoption->yyrule);
5985 yyn > 0;
5986 yyrh = yyrh->yypred, yyn -= 1)
5987 yydestroyGLRState (yymsg, yyrh, P, tokens, index);
5988 }
5989 }
5990 }
5991
5992 /** Left-hand-side symbol for rule #YYRULE. */
5993 static inline yySymbol
5994 yylhsNonterm (yyRuleNum yyrule)
5995 {
5996 return yyr1[yyrule];
5997 }
5998
5999 #define yypact_value_is_default(Yystate) \
6000 (!!((Yystate) == (-722)))
6001
6002 /** True iff LR state YYSTATE has only a default reduction (regardless
6003 * of token). */
6004 static inline yybool
6005 yyisDefaultedState (yyStateNum yystate)
6006 {
6007 return yypact_value_is_default (yypact[yystate]);
6008 }
6009
6010 /** The default reduction for YYSTATE, assuming it has one. */
6011 static inline yyRuleNum
6012 yydefaultAction (yyStateNum yystate)
6013 {
6014 return yydefact[yystate];
6015 }
6016
6017 #define yytable_value_is_error(Yytable_value) \
6018 0
6019
6020 /** Set *YYACTION to the action to take in YYSTATE on seeing YYTOKEN.
6021 * Result R means
6022 * R < 0: Reduce on rule -R.
6023 * R = 0: Error.
6024 * R > 0: Shift to state R.
6025 * Set *YYCONFLICTS to a pointer into yyconfl to a 0-terminated list
6026 * of conflicting reductions.
6027 */
6028 static inline void
6029 yygetLRActions (yyStateNum yystate, int yytoken,
6030 int* yyaction, const short int** yyconflicts)
6031 {
6032 int yyindex = yypact[yystate] + yytoken;
6033 if (yypact_value_is_default (yypact[yystate])
6034 || yyindex < 0 || YYLAST < yyindex || yycheck[yyindex] != yytoken)
6035 {
6036 *yyaction = -yydefact[yystate];
6037 *yyconflicts = yyconfl;
6038 }
6039 else if (! yytable_value_is_error (yytable[yyindex]))
6040 {
6041 *yyaction = yytable[yyindex];
6042 *yyconflicts = yyconfl + yyconflp[yyindex];
6043 }
6044 else
6045 {
6046 *yyaction = 0;
6047 *yyconflicts = yyconfl + yyconflp[yyindex];
6048 }
6049 }
6050
6051 /** Compute post-reduction state.
6052 * \param yystate the current state
6053 * \param yysym the nonterminal to push on the stack
6054 */
6055 static inline yyStateNum
6056 yyLRgotoState (yyStateNum yystate, yySymbol yysym)
6057 {
6058 int yyr = yypgoto[yysym - YYNTOKENS] + yystate;
6059 if (0 <= yyr && yyr <= YYLAST && yycheck[yyr] == yystate)
6060 return yytable[yyr];
6061 else
6062 return yydefgoto[yysym - YYNTOKENS];
6063 }
6064
6065 static inline yybool
6066 yyisShiftAction (int yyaction)
6067 {
6068 return 0 < yyaction;
6069 }
6070
6071 static inline yybool
6072 yyisErrorAction (int yyaction)
6073 {
6074 return yyaction == 0;
6075 }
6076
6077 /* GLRStates */
6078
6079 /** Return a fresh GLRStackItem in YYSTACKP. The item is an LR state
6080 * if YYISSTATE, and otherwise a semantic option. Callers should call
6081 * YY_RESERVE_GLRSTACK afterwards to make sure there is sufficient
6082 * headroom. */
6083
6084 static inline yyGLRStackItem*
6085 yynewGLRStackItem (yyGLRStack* yystackp, yybool yyisState)
6086 {
6087 yyGLRStackItem* yynewItem = yystackp->yynextFree;
6088 yystackp->yyspaceLeft -= 1;
6089 yystackp->yynextFree += 1;
6090 yynewItem->yystate.yyisState = yyisState;
6091 return yynewItem;
6092 }
6093
6094 /** Add a new semantic action that will execute the action for rule
6095 * YYRULE on the semantic values in YYRHS to the list of
6096 * alternative actions for YYSTATE. Assumes that YYRHS comes from
6097 * stack #YYK of *YYSTACKP. */
6098 static void
6099 yyaddDeferredAction (yyGLRStack* yystackp, size_t yyk, yyGLRState* yystate,
6100 yyGLRState* yyrhs, yyRuleNum yyrule)
6101 {
6102 yySemanticOption* yynewOption =
6103 &yynewGLRStackItem (yystackp, yyfalse)->yyoption;
6104 YYASSERT (!yynewOption->yyisState);
6105 yynewOption->yystate = yyrhs;
6106 yynewOption->yyrule = yyrule;
6107 if (yystackp->yytops.yylookaheadNeeds[yyk])
6108 {
6109 yynewOption->yyrawchar = yychar;
6110 yynewOption->yyval = yylval;
6111 }
6112 else
6113 yynewOption->yyrawchar = YYEMPTY;
6114 yynewOption->yynext = yystate->yysemantics.yyfirstVal;
6115 yystate->yysemantics.yyfirstVal = yynewOption;
6116
6117 YY_RESERVE_GLRSTACK (yystackp);
6118 }
6119
6120 /* GLRStacks */
6121
6122 /** Initialize YYSET to a singleton set containing an empty stack. */
6123 static yybool
6124 yyinitStateSet (yyGLRStateSet* yyset)
6125 {
6126 yyset->yysize = 1;
6127 yyset->yycapacity = 16;
6128 yyset->yystates = (yyGLRState**) YYMALLOC (16 * sizeof yyset->yystates[0]);
6129 if (! yyset->yystates)
6130 return yyfalse;
6131 yyset->yystates[0] = YY_NULLPTR;
6132 yyset->yylookaheadNeeds =
6133 (yybool*) YYMALLOC (16 * sizeof yyset->yylookaheadNeeds[0]);
6134 if (! yyset->yylookaheadNeeds)
6135 {
6136 YYFREE (yyset->yystates);
6137 return yyfalse;
6138 }
6139 return yytrue;
6140 }
6141
6142 static void yyfreeStateSet (yyGLRStateSet* yyset)
6143 {
6144 YYFREE (yyset->yystates);
6145 YYFREE (yyset->yylookaheadNeeds);
6146 }
6147
6148 /** Initialize *YYSTACKP to a single empty stack, with total maximum
6149 * capacity for all stacks of YYSIZE. */
6150 static yybool
6151 yyinitGLRStack (yyGLRStack* yystackp, size_t yysize)
6152 {
6153 yystackp->yyerrState = 0;
6154 yynerrs = 0;
6155 yystackp->yyspaceLeft = yysize;
6156 yystackp->yyitems =
6157 (yyGLRStackItem*) YYMALLOC (yysize * sizeof yystackp->yynextFree[0]);
6158 if (!yystackp->yyitems)
6159 return yyfalse;
6160 yystackp->yynextFree = yystackp->yyitems;
6161 yystackp->yysplitPoint = YY_NULLPTR;
6162 yystackp->yylastDeleted = YY_NULLPTR;
6163 return yyinitStateSet (&yystackp->yytops);
6164 }
6165
6166
6167 #if YYSTACKEXPANDABLE
6168 # define YYRELOC(YYFROMITEMS,YYTOITEMS,YYX,YYTYPE) \
6169 &((YYTOITEMS) - ((YYFROMITEMS) - (yyGLRStackItem*) (YYX)))->YYTYPE
6170
6171 /** If *YYSTACKP is expandable, extend it. WARNING: Pointers into the
6172 stack from outside should be considered invalid after this call.
6173 We always expand when there are 1 or fewer items left AFTER an
6174 allocation, so that we can avoid having external pointers exist
6175 across an allocation. */
6176 static void
6177 yyexpandGLRStack (yyGLRStack* yystackp)
6178 {
6179 yyGLRStackItem* yynewItems;
6180 yyGLRStackItem* yyp0, *yyp1;
6181 size_t yynewSize;
6182 size_t yyn;
6183 size_t yysize = yystackp->yynextFree - yystackp->yyitems;
6184 if (YYMAXDEPTH - YYHEADROOM < yysize)
6185 yyMemoryExhausted (yystackp);
6186 yynewSize = 2*yysize;
6187 if (YYMAXDEPTH < yynewSize)
6188 yynewSize = YYMAXDEPTH;
6189 yynewItems = (yyGLRStackItem*) YYMALLOC (yynewSize * sizeof yynewItems[0]);
6190 if (! yynewItems)
6191 yyMemoryExhausted (yystackp);
6192 for (yyp0 = yystackp->yyitems, yyp1 = yynewItems, yyn = yysize;
6193 0 < yyn;
6194 yyn -= 1, yyp0 += 1, yyp1 += 1)
6195 {
6196 *yyp1 = *yyp0;
6197 if (*(yybool *) yyp0)
6198 {
6199 yyGLRState* yys0 = &yyp0->yystate;
6200 yyGLRState* yys1 = &yyp1->yystate;
6201 if (yys0->yypred != YY_NULLPTR)
6202 yys1->yypred =
6203 YYRELOC (yyp0, yyp1, yys0->yypred, yystate);
6204 if (! yys0->yyresolved && yys0->yysemantics.yyfirstVal != YY_NULLPTR)
6205 yys1->yysemantics.yyfirstVal =
6206 YYRELOC (yyp0, yyp1, yys0->yysemantics.yyfirstVal, yyoption);
6207 }
6208 else
6209 {
6210 yySemanticOption* yyv0 = &yyp0->yyoption;
6211 yySemanticOption* yyv1 = &yyp1->yyoption;
6212 if (yyv0->yystate != YY_NULLPTR)
6213 yyv1->yystate = YYRELOC (yyp0, yyp1, yyv0->yystate, yystate);
6214 if (yyv0->yynext != YY_NULLPTR)
6215 yyv1->yynext = YYRELOC (yyp0, yyp1, yyv0->yynext, yyoption);
6216 }
6217 }
6218 if (yystackp->yysplitPoint != YY_NULLPTR)
6219 yystackp->yysplitPoint = YYRELOC (yystackp->yyitems, yynewItems,
6220 yystackp->yysplitPoint, yystate);
6221
6222 for (yyn = 0; yyn < yystackp->yytops.yysize; yyn += 1)
6223 if (yystackp->yytops.yystates[yyn] != YY_NULLPTR)
6224 yystackp->yytops.yystates[yyn] =
6225 YYRELOC (yystackp->yyitems, yynewItems,
6226 yystackp->yytops.yystates[yyn], yystate);
6227 YYFREE (yystackp->yyitems);
6228 yystackp->yyitems = yynewItems;
6229 yystackp->yynextFree = yynewItems + yysize;
6230 yystackp->yyspaceLeft = yynewSize - yysize;
6231 }
6232 #endif
6233
6234 static void
6235 yyfreeGLRStack (yyGLRStack* yystackp)
6236 {
6237 YYFREE (yystackp->yyitems);
6238 yyfreeStateSet (&yystackp->yytops);
6239 }
6240
6241 /** Assuming that YYS is a GLRState somewhere on *YYSTACKP, update the
6242 * splitpoint of *YYSTACKP, if needed, so that it is at least as deep as
6243 * YYS. */
6244 static inline void
6245 yyupdateSplit (yyGLRStack* yystackp, yyGLRState* yys)
6246 {
6247 if (yystackp->yysplitPoint != YY_NULLPTR && yystackp->yysplitPoint > yys)
6248 yystackp->yysplitPoint = yys;
6249 }
6250
6251 /** Invalidate stack #YYK in *YYSTACKP. */
6252 static inline void
6253 yymarkStackDeleted (yyGLRStack* yystackp, size_t yyk)
6254 {
6255 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
6256 yystackp->yylastDeleted = yystackp->yytops.yystates[yyk];
6257 yystackp->yytops.yystates[yyk] = YY_NULLPTR;
6258 }
6259
6260 /** Undelete the last stack in *YYSTACKP that was marked as deleted. Can
6261 only be done once after a deletion, and only when all other stacks have
6262 been deleted. */
6263 static void
6264 yyundeleteLastStack (yyGLRStack* yystackp)
6265 {
6266 if (yystackp->yylastDeleted == YY_NULLPTR || yystackp->yytops.yysize != 0)
6267 return;
6268 yystackp->yytops.yystates[0] = yystackp->yylastDeleted;
6269 yystackp->yytops.yysize = 1;
6270 YYDPRINTF ((stderr, "Restoring last deleted stack as stack #0.\n"));
6271 yystackp->yylastDeleted = YY_NULLPTR;
6272 }
6273
6274 static inline void
6275 yyremoveDeletes (yyGLRStack* yystackp)
6276 {
6277 size_t yyi, yyj;
6278 yyi = yyj = 0;
6279 while (yyj < yystackp->yytops.yysize)
6280 {
6281 if (yystackp->yytops.yystates[yyi] == YY_NULLPTR)
6282 {
6283 if (yyi == yyj)
6284 {
6285 YYDPRINTF ((stderr, "Removing dead stacks.\n"));
6286 }
6287 yystackp->yytops.yysize -= 1;
6288 }
6289 else
6290 {
6291 yystackp->yytops.yystates[yyj] = yystackp->yytops.yystates[yyi];
6292 /* In the current implementation, it's unnecessary to copy
6293 yystackp->yytops.yylookaheadNeeds[yyi] since, after
6294 yyremoveDeletes returns, the parser immediately either enters
6295 deterministic operation or shifts a token. However, it doesn't
6296 hurt, and the code might evolve to need it. */
6297 yystackp->yytops.yylookaheadNeeds[yyj] =
6298 yystackp->yytops.yylookaheadNeeds[yyi];
6299 if (yyj != yyi)
6300 {
6301 YYDPRINTF ((stderr, "Rename stack %lu -> %lu.\n",
6302 (unsigned long int) yyi, (unsigned long int) yyj));
6303 }
6304 yyj += 1;
6305 }
6306 yyi += 1;
6307 }
6308 }
6309
6310 /** Shift to a new state on stack #YYK of *YYSTACKP, corresponding to LR
6311 * state YYLRSTATE, at input position YYPOSN, with (resolved) semantic
6312 * value *YYVALP and source location *YYLOCP. */
6313 static inline void
6314 yyglrShift (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
6315 size_t yyposn,
6316 YYSTYPE* yyvalp)
6317 {
6318 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
6319
6320 yynewState->yylrState = yylrState;
6321 yynewState->yyposn = yyposn;
6322 yynewState->yyresolved = yytrue;
6323 yynewState->yypred = yystackp->yytops.yystates[yyk];
6324 yynewState->yysemantics.yysval = *yyvalp;
6325 yystackp->yytops.yystates[yyk] = yynewState;
6326
6327 YY_RESERVE_GLRSTACK (yystackp);
6328 }
6329
6330 /** Shift stack #YYK of *YYSTACKP, to a new state corresponding to LR
6331 * state YYLRSTATE, at input position YYPOSN, with the (unresolved)
6332 * semantic value of YYRHS under the action for YYRULE. */
6333 static inline void
6334 yyglrShiftDefer (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
6335 size_t yyposn, yyGLRState* yyrhs, yyRuleNum yyrule)
6336 {
6337 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
6338 YYASSERT (yynewState->yyisState);
6339
6340 yynewState->yylrState = yylrState;
6341 yynewState->yyposn = yyposn;
6342 yynewState->yyresolved = yyfalse;
6343 yynewState->yypred = yystackp->yytops.yystates[yyk];
6344 yynewState->yysemantics.yyfirstVal = YY_NULLPTR;
6345 yystackp->yytops.yystates[yyk] = yynewState;
6346
6347 /* Invokes YY_RESERVE_GLRSTACK. */
6348 yyaddDeferredAction (yystackp, yyk, yynewState, yyrhs, yyrule);
6349 }
6350
6351 #if !YYDEBUG
6352 # define YY_REDUCE_PRINT(Args)
6353 #else
6354 # define YY_REDUCE_PRINT(Args) \
6355 do { \
6356 if (yydebug) \
6357 yy_reduce_print Args; \
6358 } while (0)
6359
6360 /*----------------------------------------------------------------------.
6361 | Report that stack #YYK of *YYSTACKP is going to be reduced by YYRULE. |
6362 `----------------------------------------------------------------------*/
6363
6364 static inline void
6365 yy_reduce_print (int yynormal, yyGLRStackItem* yyvsp, size_t yyk,
6366 yyRuleNum yyrule, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6367 {
6368 int yynrhs = yyrhsLength (yyrule);
6369 int yyi;
6370 YYFPRINTF (stderr, "Reducing stack %lu by rule %d (line %lu):\n",
6371 (unsigned long int) yyk, yyrule - 1,
6372 (unsigned long int) yyrline[yyrule]);
6373 if (! yynormal)
6374 yyfillin (yyvsp, 1, -yynrhs);
6375 /* The symbols being reduced. */
6376 for (yyi = 0; yyi < yynrhs; yyi++)
6377 {
6378 YYFPRINTF (stderr, " $%d = ", yyi + 1);
6379 yy_symbol_print (stderr,
6380 yystos[yyvsp[yyi - yynrhs + 1].yystate.yylrState],
6381 &yyvsp[yyi - yynrhs + 1].yystate.yysemantics.yysval
6382 , P, tokens, index);
6383 if (!yyvsp[yyi - yynrhs + 1].yystate.yyresolved)
6384 YYFPRINTF (stderr, " (unresolved)");
6385 YYFPRINTF (stderr, "\n");
6386 }
6387 }
6388 #endif
6389
6390 /** Pop the symbols consumed by reduction #YYRULE from the top of stack
6391 * #YYK of *YYSTACKP, and perform the appropriate semantic action on their
6392 * semantic values. Assumes that all ambiguities in semantic values
6393 * have been previously resolved. Set *YYVALP to the resulting value,
6394 * and *YYLOCP to the computed location (if any). Return value is as
6395 * for userAction. */
6396 static inline YYRESULTTAG
6397 yydoAction (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
6398 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6399 {
6400 int yynrhs = yyrhsLength (yyrule);
6401
6402 if (yystackp->yysplitPoint == YY_NULLPTR)
6403 {
6404 /* Standard special case: single stack. */
6405 yyGLRStackItem* yyrhs = (yyGLRStackItem*) yystackp->yytops.yystates[yyk];
6406 YYASSERT (yyk == 0);
6407 yystackp->yynextFree -= yynrhs;
6408 yystackp->yyspaceLeft += yynrhs;
6409 yystackp->yytops.yystates[0] = & yystackp->yynextFree[-1].yystate;
6410 YY_REDUCE_PRINT ((1, yyrhs, yyk, yyrule, P, tokens, index));
6411 return yyuserAction (yyrule, yynrhs, yyrhs, yystackp,
6412 yyvalp, P, tokens, index);
6413 }
6414 else
6415 {
6416 int yyi;
6417 yyGLRState* yys;
6418 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
6419 yys = yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred
6420 = yystackp->yytops.yystates[yyk];
6421 for (yyi = 0; yyi < yynrhs; yyi += 1)
6422 {
6423 yys = yys->yypred;
6424 YYASSERT (yys);
6425 }
6426 yyupdateSplit (yystackp, yys);
6427 yystackp->yytops.yystates[yyk] = yys;
6428 YY_REDUCE_PRINT ((0, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1, yyk, yyrule, P, tokens, index));
6429 return yyuserAction (yyrule, yynrhs, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
6430 yystackp, yyvalp, P, tokens, index);
6431 }
6432 }
6433
6434 /** Pop items off stack #YYK of *YYSTACKP according to grammar rule YYRULE,
6435 * and push back on the resulting nonterminal symbol. Perform the
6436 * semantic action associated with YYRULE and store its value with the
6437 * newly pushed state, if YYFORCEEVAL or if *YYSTACKP is currently
6438 * unambiguous. Otherwise, store the deferred semantic action with
6439 * the new state. If the new state would have an identical input
6440 * position, LR state, and predecessor to an existing state on the stack,
6441 * it is identified with that existing state, eliminating stack #YYK from
6442 * *YYSTACKP. In this case, the semantic value is
6443 * added to the options for the existing state's semantic value.
6444 */
6445 static inline YYRESULTTAG
6446 yyglrReduce (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
6447 yybool yyforceEval, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6448 {
6449 size_t yyposn = yystackp->yytops.yystates[yyk]->yyposn;
6450
6451 if (yyforceEval || yystackp->yysplitPoint == YY_NULLPTR)
6452 {
6453 YYSTYPE yysval;
6454
6455 YYRESULTTAG yyflag = yydoAction (yystackp, yyk, yyrule, &yysval, P, tokens, index);
6456 if (yyflag == yyerr && yystackp->yysplitPoint != YY_NULLPTR)
6457 {
6458 YYDPRINTF ((stderr, "Parse on stack %lu rejected by rule #%d.\n",
6459 (unsigned long int) yyk, yyrule - 1));
6460 }
6461 if (yyflag != yyok)
6462 return yyflag;
6463 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyrule], &yysval, &yyloc);
6464 yyglrShift (yystackp, yyk,
6465 yyLRgotoState (yystackp->yytops.yystates[yyk]->yylrState,
6466 yylhsNonterm (yyrule)),
6467 yyposn, &yysval);
6468 }
6469 else
6470 {
6471 size_t yyi;
6472 int yyn;
6473 yyGLRState* yys, *yys0 = yystackp->yytops.yystates[yyk];
6474 yyStateNum yynewLRState;
6475
6476 for (yys = yystackp->yytops.yystates[yyk], yyn = yyrhsLength (yyrule);
6477 0 < yyn; yyn -= 1)
6478 {
6479 yys = yys->yypred;
6480 YYASSERT (yys);
6481 }
6482 yyupdateSplit (yystackp, yys);
6483 yynewLRState = yyLRgotoState (yys->yylrState, yylhsNonterm (yyrule));
6484 YYDPRINTF ((stderr,
6485 "Reduced stack %lu by rule #%d; action deferred. "
6486 "Now in state %d.\n",
6487 (unsigned long int) yyk, yyrule - 1, yynewLRState));
6488 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
6489 if (yyi != yyk && yystackp->yytops.yystates[yyi] != YY_NULLPTR)
6490 {
6491 yyGLRState *yysplit = yystackp->yysplitPoint;
6492 yyGLRState *yyp = yystackp->yytops.yystates[yyi];
6493 while (yyp != yys && yyp != yysplit && yyp->yyposn >= yyposn)
6494 {
6495 if (yyp->yylrState == yynewLRState && yyp->yypred == yys)
6496 {
6497 yyaddDeferredAction (yystackp, yyk, yyp, yys0, yyrule);
6498 yymarkStackDeleted (yystackp, yyk);
6499 YYDPRINTF ((stderr, "Merging stack %lu into stack %lu.\n",
6500 (unsigned long int) yyk,
6501 (unsigned long int) yyi));
6502 return yyok;
6503 }
6504 yyp = yyp->yypred;
6505 }
6506 }
6507 yystackp->yytops.yystates[yyk] = yys;
6508 yyglrShiftDefer (yystackp, yyk, yynewLRState, yyposn, yys0, yyrule);
6509 }
6510 return yyok;
6511 }
6512
6513 static size_t
6514 yysplitStack (yyGLRStack* yystackp, size_t yyk)
6515 {
6516 if (yystackp->yysplitPoint == YY_NULLPTR)
6517 {
6518 YYASSERT (yyk == 0);
6519 yystackp->yysplitPoint = yystackp->yytops.yystates[yyk];
6520 }
6521 if (yystackp->yytops.yysize >= yystackp->yytops.yycapacity)
6522 {
6523 yyGLRState** yynewStates;
6524 yybool* yynewLookaheadNeeds;
6525
6526 yynewStates = YY_NULLPTR;
6527
6528 if (yystackp->yytops.yycapacity
6529 > (YYSIZEMAX / (2 * sizeof yynewStates[0])))
6530 yyMemoryExhausted (yystackp);
6531 yystackp->yytops.yycapacity *= 2;
6532
6533 yynewStates =
6534 (yyGLRState**) YYREALLOC (yystackp->yytops.yystates,
6535 (yystackp->yytops.yycapacity
6536 * sizeof yynewStates[0]));
6537 if (yynewStates == YY_NULLPTR)
6538 yyMemoryExhausted (yystackp);
6539 yystackp->yytops.yystates = yynewStates;
6540
6541 yynewLookaheadNeeds =
6542 (yybool*) YYREALLOC (yystackp->yytops.yylookaheadNeeds,
6543 (yystackp->yytops.yycapacity
6544 * sizeof yynewLookaheadNeeds[0]));
6545 if (yynewLookaheadNeeds == YY_NULLPTR)
6546 yyMemoryExhausted (yystackp);
6547 yystackp->yytops.yylookaheadNeeds = yynewLookaheadNeeds;
6548 }
6549 yystackp->yytops.yystates[yystackp->yytops.yysize]
6550 = yystackp->yytops.yystates[yyk];
6551 yystackp->yytops.yylookaheadNeeds[yystackp->yytops.yysize]
6552 = yystackp->yytops.yylookaheadNeeds[yyk];
6553 yystackp->yytops.yysize += 1;
6554 return yystackp->yytops.yysize-1;
6555 }
6556
6557 /** True iff YYY0 and YYY1 represent identical options at the top level.
6558 * That is, they represent the same rule applied to RHS symbols
6559 * that produce the same terminal symbols. */
6560 static yybool
6561 yyidenticalOptions (yySemanticOption* yyy0, yySemanticOption* yyy1)
6562 {
6563 if (yyy0->yyrule == yyy1->yyrule)
6564 {
6565 yyGLRState *yys0, *yys1;
6566 int yyn;
6567 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
6568 yyn = yyrhsLength (yyy0->yyrule);
6569 yyn > 0;
6570 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
6571 if (yys0->yyposn != yys1->yyposn)
6572 return yyfalse;
6573 return yytrue;
6574 }
6575 else
6576 return yyfalse;
6577 }
6578
6579 /** Assuming identicalOptions (YYY0,YYY1), destructively merge the
6580 * alternative semantic values for the RHS-symbols of YYY1 and YYY0. */
6581 static void
6582 yymergeOptionSets (yySemanticOption* yyy0, yySemanticOption* yyy1)
6583 {
6584 yyGLRState *yys0, *yys1;
6585 int yyn;
6586 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
6587 yyn = yyrhsLength (yyy0->yyrule);
6588 yyn > 0;
6589 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
6590 {
6591 if (yys0 == yys1)
6592 break;
6593 else if (yys0->yyresolved)
6594 {
6595 yys1->yyresolved = yytrue;
6596 yys1->yysemantics.yysval = yys0->yysemantics.yysval;
6597 }
6598 else if (yys1->yyresolved)
6599 {
6600 yys0->yyresolved = yytrue;
6601 yys0->yysemantics.yysval = yys1->yysemantics.yysval;
6602 }
6603 else
6604 {
6605 yySemanticOption** yyz0p = &yys0->yysemantics.yyfirstVal;
6606 yySemanticOption* yyz1 = yys1->yysemantics.yyfirstVal;
6607 while (yytrue)
6608 {
6609 if (yyz1 == *yyz0p || yyz1 == YY_NULLPTR)
6610 break;
6611 else if (*yyz0p == YY_NULLPTR)
6612 {
6613 *yyz0p = yyz1;
6614 break;
6615 }
6616 else if (*yyz0p < yyz1)
6617 {
6618 yySemanticOption* yyz = *yyz0p;
6619 *yyz0p = yyz1;
6620 yyz1 = yyz1->yynext;
6621 (*yyz0p)->yynext = yyz;
6622 }
6623 yyz0p = &(*yyz0p)->yynext;
6624 }
6625 yys1->yysemantics.yyfirstVal = yys0->yysemantics.yyfirstVal;
6626 }
6627 }
6628 }
6629
6630 /** Y0 and Y1 represent two possible actions to take in a given
6631 * parsing state; return 0 if no combination is possible,
6632 * 1 if user-mergeable, 2 if Y0 is preferred, 3 if Y1 is preferred. */
6633 static int
6634 yypreference (yySemanticOption* y0, yySemanticOption* y1)
6635 {
6636 yyRuleNum r0 = y0->yyrule, r1 = y1->yyrule;
6637 int p0 = yydprec[r0], p1 = yydprec[r1];
6638
6639 if (p0 == p1)
6640 {
6641 if (yymerger[r0] == 0 || yymerger[r0] != yymerger[r1])
6642 return 0;
6643 else
6644 return 1;
6645 }
6646 if (p0 == 0 || p1 == 0)
6647 return 0;
6648 if (p0 < p1)
6649 return 3;
6650 if (p1 < p0)
6651 return 2;
6652 return 0;
6653 }
6654
6655 static YYRESULTTAG yyresolveValue (yyGLRState* yys,
6656 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index);
6657
6658
6659 /** Resolve the previous YYN states starting at and including state YYS
6660 * on *YYSTACKP. If result != yyok, some states may have been left
6661 * unresolved possibly with empty semantic option chains. Regardless
6662 * of whether result = yyok, each state has been left with consistent
6663 * data so that yydestroyGLRState can be invoked if necessary. */
6664 static YYRESULTTAG
6665 yyresolveStates (yyGLRState* yys, int yyn,
6666 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6667 {
6668 if (0 < yyn)
6669 {
6670 YYASSERT (yys->yypred);
6671 YYCHK (yyresolveStates (yys->yypred, yyn-1, yystackp, P, tokens, index));
6672 if (! yys->yyresolved)
6673 YYCHK (yyresolveValue (yys, yystackp, P, tokens, index));
6674 }
6675 return yyok;
6676 }
6677
6678 /** Resolve the states for the RHS of YYOPT on *YYSTACKP, perform its
6679 * user action, and return the semantic value and location in *YYVALP
6680 * and *YYLOCP. Regardless of whether result = yyok, all RHS states
6681 * have been destroyed (assuming the user action destroys all RHS
6682 * semantic values if invoked). */
6683 static YYRESULTTAG
6684 yyresolveAction (yySemanticOption* yyopt, yyGLRStack* yystackp,
6685 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6686 {
6687 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
6688 int yynrhs = yyrhsLength (yyopt->yyrule);
6689 YYRESULTTAG yyflag =
6690 yyresolveStates (yyopt->yystate, yynrhs, yystackp, P, tokens, index);
6691 if (yyflag != yyok)
6692 {
6693 yyGLRState *yys;
6694 for (yys = yyopt->yystate; yynrhs > 0; yys = yys->yypred, yynrhs -= 1)
6695 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
6696 return yyflag;
6697 }
6698
6699 yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred = yyopt->yystate;
6700 {
6701 int yychar_current = yychar;
6702 YYSTYPE yylval_current = yylval;
6703 yychar = yyopt->yyrawchar;
6704 yylval = yyopt->yyval;
6705 yyflag = yyuserAction (yyopt->yyrule, yynrhs,
6706 yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
6707 yystackp, yyvalp, P, tokens, index);
6708 yychar = yychar_current;
6709 yylval = yylval_current;
6710 }
6711 return yyflag;
6712 }
6713
6714 #if YYDEBUG
6715 static void
6716 yyreportTree (yySemanticOption* yyx, int yyindent)
6717 {
6718 int yynrhs = yyrhsLength (yyx->yyrule);
6719 int yyi;
6720 yyGLRState* yys;
6721 yyGLRState* yystates[1 + YYMAXRHS];
6722 yyGLRState yyleftmost_state;
6723
6724 for (yyi = yynrhs, yys = yyx->yystate; 0 < yyi; yyi -= 1, yys = yys->yypred)
6725 yystates[yyi] = yys;
6726 if (yys == YY_NULLPTR)
6727 {
6728 yyleftmost_state.yyposn = 0;
6729 yystates[0] = &yyleftmost_state;
6730 }
6731 else
6732 yystates[0] = yys;
6733
6734 if (yyx->yystate->yyposn < yys->yyposn + 1)
6735 YYFPRINTF (stderr, "%*s%s -> <Rule %d, empty>\n",
6736 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
6737 yyx->yyrule - 1);
6738 else
6739 YYFPRINTF (stderr, "%*s%s -> <Rule %d, tokens %lu .. %lu>\n",
6740 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
6741 yyx->yyrule - 1, (unsigned long int) (yys->yyposn + 1),
6742 (unsigned long int) yyx->yystate->yyposn);
6743 for (yyi = 1; yyi <= yynrhs; yyi += 1)
6744 {
6745 if (yystates[yyi]->yyresolved)
6746 {
6747 if (yystates[yyi-1]->yyposn+1 > yystates[yyi]->yyposn)
6748 YYFPRINTF (stderr, "%*s%s <empty>\n", yyindent+2, "",
6749 yytokenName (yystos[yystates[yyi]->yylrState]));
6750 else
6751 YYFPRINTF (stderr, "%*s%s <tokens %lu .. %lu>\n", yyindent+2, "",
6752 yytokenName (yystos[yystates[yyi]->yylrState]),
6753 (unsigned long int) (yystates[yyi-1]->yyposn + 1),
6754 (unsigned long int) yystates[yyi]->yyposn);
6755 }
6756 else
6757 yyreportTree (yystates[yyi]->yysemantics.yyfirstVal, yyindent+2);
6758 }
6759 }
6760 #endif
6761
6762 static YYRESULTTAG
6763 yyreportAmbiguity (yySemanticOption* yyx0,
6764 yySemanticOption* yyx1, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6765 {
6766 YYUSE (yyx0);
6767 YYUSE (yyx1);
6768
6769 #if YYDEBUG
6770 YYFPRINTF (stderr, "Ambiguity detected.\n");
6771 YYFPRINTF (stderr, "Option 1,\n");
6772 yyreportTree (yyx0, 2);
6773 YYFPRINTF (stderr, "\nOption 2,\n");
6774 yyreportTree (yyx1, 2);
6775 YYFPRINTF (stderr, "\n");
6776 #endif
6777
6778 yyerror (P, tokens, index, YY_("syntax is ambiguous"));
6779 return yyabort;
6780 }
6781
6782 /** Resolve the ambiguity represented in state YYS in *YYSTACKP,
6783 * perform the indicated actions, and set the semantic value of YYS.
6784 * If result != yyok, the chain of semantic options in YYS has been
6785 * cleared instead or it has been left unmodified except that
6786 * redundant options may have been removed. Regardless of whether
6787 * result = yyok, YYS has been left with consistent data so that
6788 * yydestroyGLRState can be invoked if necessary. */
6789 static YYRESULTTAG
6790 yyresolveValue (yyGLRState* yys, yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6791 {
6792 yySemanticOption* yyoptionList = yys->yysemantics.yyfirstVal;
6793 yySemanticOption* yybest = yyoptionList;
6794 yySemanticOption** yypp;
6795 yybool yymerge = yyfalse;
6796 YYSTYPE yysval;
6797 YYRESULTTAG yyflag;
6798
6799 for (yypp = &yyoptionList->yynext; *yypp != YY_NULLPTR; )
6800 {
6801 yySemanticOption* yyp = *yypp;
6802
6803 if (yyidenticalOptions (yybest, yyp))
6804 {
6805 yymergeOptionSets (yybest, yyp);
6806 *yypp = yyp->yynext;
6807 }
6808 else
6809 {
6810 switch (yypreference (yybest, yyp))
6811 {
6812 case 0:
6813 return yyreportAmbiguity (yybest, yyp, P, tokens, index);
6814 break;
6815 case 1:
6816 yymerge = yytrue;
6817 break;
6818 case 2:
6819 break;
6820 case 3:
6821 yybest = yyp;
6822 yymerge = yyfalse;
6823 break;
6824 default:
6825 /* This cannot happen so it is not worth a YYASSERT (yyfalse),
6826 but some compilers complain if the default case is
6827 omitted. */
6828 break;
6829 }
6830 yypp = &yyp->yynext;
6831 }
6832 }
6833
6834 if (yymerge)
6835 {
6836 yySemanticOption* yyp;
6837 int yyprec = yydprec[yybest->yyrule];
6838 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
6839 if (yyflag == yyok)
6840 for (yyp = yybest->yynext; yyp != YY_NULLPTR; yyp = yyp->yynext)
6841 {
6842 if (yyprec == yydprec[yyp->yyrule])
6843 {
6844 YYSTYPE yysval_other;
6845 yyflag = yyresolveAction (yyp, yystackp, &yysval_other, P, tokens, index);
6846 if (yyflag != yyok)
6847 {
6848 yydestruct ("Cleanup: discarding incompletely merged value for",
6849 yystos[yys->yylrState],
6850 &yysval, P, tokens, index);
6851 break;
6852 }
6853 yyuserMerge (yymerger[yyp->yyrule], &yysval, &yysval_other);
6854 }
6855 }
6856 }
6857 else
6858 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
6859
6860 if (yyflag == yyok)
6861 {
6862 yys->yyresolved = yytrue;
6863 yys->yysemantics.yysval = yysval;
6864 }
6865 else
6866 yys->yysemantics.yyfirstVal = YY_NULLPTR;
6867 return yyflag;
6868 }
6869
6870 static YYRESULTTAG
6871 yyresolveStack (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6872 {
6873 if (yystackp->yysplitPoint != YY_NULLPTR)
6874 {
6875 yyGLRState* yys;
6876 int yyn;
6877
6878 for (yyn = 0, yys = yystackp->yytops.yystates[0];
6879 yys != yystackp->yysplitPoint;
6880 yys = yys->yypred, yyn += 1)
6881 continue;
6882 YYCHK (yyresolveStates (yystackp->yytops.yystates[0], yyn, yystackp
6883 , P, tokens, index));
6884 }
6885 return yyok;
6886 }
6887
6888 static void
6889 yycompressStack (yyGLRStack* yystackp)
6890 {
6891 yyGLRState* yyp, *yyq, *yyr;
6892
6893 if (yystackp->yytops.yysize != 1 || yystackp->yysplitPoint == YY_NULLPTR)
6894 return;
6895
6896 for (yyp = yystackp->yytops.yystates[0], yyq = yyp->yypred, yyr = YY_NULLPTR;
6897 yyp != yystackp->yysplitPoint;
6898 yyr = yyp, yyp = yyq, yyq = yyp->yypred)
6899 yyp->yypred = yyr;
6900
6901 yystackp->yyspaceLeft += yystackp->yynextFree - yystackp->yyitems;
6902 yystackp->yynextFree = ((yyGLRStackItem*) yystackp->yysplitPoint) + 1;
6903 yystackp->yyspaceLeft -= yystackp->yynextFree - yystackp->yyitems;
6904 yystackp->yysplitPoint = YY_NULLPTR;
6905 yystackp->yylastDeleted = YY_NULLPTR;
6906
6907 while (yyr != YY_NULLPTR)
6908 {
6909 yystackp->yynextFree->yystate = *yyr;
6910 yyr = yyr->yypred;
6911 yystackp->yynextFree->yystate.yypred = &yystackp->yynextFree[-1].yystate;
6912 yystackp->yytops.yystates[0] = &yystackp->yynextFree->yystate;
6913 yystackp->yynextFree += 1;
6914 yystackp->yyspaceLeft -= 1;
6915 }
6916 }
6917
6918 static YYRESULTTAG
6919 yyprocessOneStack (yyGLRStack* yystackp, size_t yyk,
6920 size_t yyposn, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6921 {
6922 while (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
6923 {
6924 yyStateNum yystate = yystackp->yytops.yystates[yyk]->yylrState;
6925 YYDPRINTF ((stderr, "Stack %lu Entering state %d\n",
6926 (unsigned long int) yyk, yystate));
6927
6928 YYASSERT (yystate != YYFINAL);
6929
6930 if (yyisDefaultedState (yystate))
6931 {
6932 YYRESULTTAG yyflag;
6933 yyRuleNum yyrule = yydefaultAction (yystate);
6934 if (yyrule == 0)
6935 {
6936 YYDPRINTF ((stderr, "Stack %lu dies.\n",
6937 (unsigned long int) yyk));
6938 yymarkStackDeleted (yystackp, yyk);
6939 return yyok;
6940 }
6941 yyflag = yyglrReduce (yystackp, yyk, yyrule, yyimmediate[yyrule], P, tokens, index);
6942 if (yyflag == yyerr)
6943 {
6944 YYDPRINTF ((stderr,
6945 "Stack %lu dies "
6946 "(predicate failure or explicit user error).\n",
6947 (unsigned long int) yyk));
6948 yymarkStackDeleted (yystackp, yyk);
6949 return yyok;
6950 }
6951 if (yyflag != yyok)
6952 return yyflag;
6953 }
6954 else
6955 {
6956 yySymbol yytoken;
6957 int yyaction;
6958 const short int* yyconflicts;
6959
6960 yystackp->yytops.yylookaheadNeeds[yyk] = yytrue;
6961 if (yychar == YYEMPTY)
6962 {
6963 YYDPRINTF ((stderr, "Reading a token: "));
6964 yychar = yylex (&yylval, P, tokens, index);
6965 }
6966
6967 if (yychar <= YYEOF)
6968 {
6969 yychar = yytoken = YYEOF;
6970 YYDPRINTF ((stderr, "Now at end of input.\n"));
6971 }
6972 else
6973 {
6974 yytoken = YYTRANSLATE (yychar);
6975 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
6976 }
6977
6978 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
6979
6980 while (*yyconflicts != 0)
6981 {
6982 YYRESULTTAG yyflag;
6983 size_t yynewStack = yysplitStack (yystackp, yyk);
6984 YYDPRINTF ((stderr, "Splitting off stack %lu from %lu.\n",
6985 (unsigned long int) yynewStack,
6986 (unsigned long int) yyk));
6987 yyflag = yyglrReduce (yystackp, yynewStack,
6988 *yyconflicts,
6989 yyimmediate[*yyconflicts], P, tokens, index);
6990 if (yyflag == yyok)
6991 YYCHK (yyprocessOneStack (yystackp, yynewStack,
6992 yyposn, P, tokens, index));
6993 else if (yyflag == yyerr)
6994 {
6995 YYDPRINTF ((stderr, "Stack %lu dies.\n",
6996 (unsigned long int) yynewStack));
6997 yymarkStackDeleted (yystackp, yynewStack);
6998 }
6999 else
7000 return yyflag;
7001 yyconflicts += 1;
7002 }
7003
7004 if (yyisShiftAction (yyaction))
7005 break;
7006 else if (yyisErrorAction (yyaction))
7007 {
7008 YYDPRINTF ((stderr, "Stack %lu dies.\n",
7009 (unsigned long int) yyk));
7010 yymarkStackDeleted (yystackp, yyk);
7011 break;
7012 }
7013 else
7014 {
7015 YYRESULTTAG yyflag = yyglrReduce (yystackp, yyk, -yyaction,
7016 yyimmediate[-yyaction], P, tokens, index);
7017 if (yyflag == yyerr)
7018 {
7019 YYDPRINTF ((stderr,
7020 "Stack %lu dies "
7021 "(predicate failure or explicit user error).\n",
7022 (unsigned long int) yyk));
7023 yymarkStackDeleted (yystackp, yyk);
7024 break;
7025 }
7026 else if (yyflag != yyok)
7027 return yyflag;
7028 }
7029 }
7030 }
7031 return yyok;
7032 }
7033
7034 static void
7035 yyreportSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7036 {
7037 if (yystackp->yyerrState != 0)
7038 return;
7039 #if ! YYERROR_VERBOSE
7040 yyerror (P, tokens, index, YY_("syntax error"));
7041 #else
7042 {
7043 yySymbol yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
7044 size_t yysize0 = yytnamerr (YY_NULLPTR, yytokenName (yytoken));
7045 size_t yysize = yysize0;
7046 yybool yysize_overflow = yyfalse;
7047 char* yymsg = YY_NULLPTR;
7048 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
7049 /* Internationalized format string. */
7050 const char *yyformat = YY_NULLPTR;
7051 /* Arguments of yyformat. */
7052 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
7053 /* Number of reported tokens (one for the "unexpected", one per
7054 "expected"). */
7055 int yycount = 0;
7056
7057 /* There are many possibilities here to consider:
7058 - If this state is a consistent state with a default action, then
7059 the only way this function was invoked is if the default action
7060 is an error action. In that case, don't check for expected
7061 tokens because there are none.
7062 - The only way there can be no lookahead present (in yychar) is if
7063 this state is a consistent state with a default action. Thus,
7064 detecting the absence of a lookahead is sufficient to determine
7065 that there is no unexpected or expected token to report. In that
7066 case, just report a simple "syntax error".
7067 - Don't assume there isn't a lookahead just because this state is a
7068 consistent state with a default action. There might have been a
7069 previous inconsistent state, consistent state with a non-default
7070 action, or user semantic action that manipulated yychar.
7071 - Of course, the expected token list depends on states to have
7072 correct lookahead information, and it depends on the parser not
7073 to perform extra reductions after fetching a lookahead from the
7074 scanner and before detecting a syntax error. Thus, state merging
7075 (from LALR or IELR) and default reductions corrupt the expected
7076 token list. However, the list is correct for canonical LR with
7077 one exception: it will still contain any token that will not be
7078 accepted due to an error action in a later state.
7079 */
7080 if (yytoken != YYEMPTY)
7081 {
7082 int yyn = yypact[yystackp->yytops.yystates[0]->yylrState];
7083 yyarg[yycount++] = yytokenName (yytoken);
7084 if (!yypact_value_is_default (yyn))
7085 {
7086 /* Start YYX at -YYN if negative to avoid negative indexes in
7087 YYCHECK. In other words, skip the first -YYN actions for this
7088 state because they are default actions. */
7089 int yyxbegin = yyn < 0 ? -yyn : 0;
7090 /* Stay within bounds of both yycheck and yytname. */
7091 int yychecklim = YYLAST - yyn + 1;
7092 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
7093 int yyx;
7094 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
7095 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
7096 && !yytable_value_is_error (yytable[yyx + yyn]))
7097 {
7098 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
7099 {
7100 yycount = 1;
7101 yysize = yysize0;
7102 break;
7103 }
7104 yyarg[yycount++] = yytokenName (yyx);
7105 {
7106 size_t yysz = yysize + yytnamerr (YY_NULLPTR, yytokenName (yyx));
7107 yysize_overflow |= yysz < yysize;
7108 yysize = yysz;
7109 }
7110 }
7111 }
7112 }
7113
7114 switch (yycount)
7115 {
7116 #define YYCASE_(N, S) \
7117 case N: \
7118 yyformat = S; \
7119 break
7120 YYCASE_(0, YY_("syntax error"));
7121 YYCASE_(1, YY_("syntax error, unexpected %s"));
7122 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
7123 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
7124 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
7125 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
7126 #undef YYCASE_
7127 }
7128
7129 {
7130 size_t yysz = yysize + strlen (yyformat);
7131 yysize_overflow |= yysz < yysize;
7132 yysize = yysz;
7133 }
7134
7135 if (!yysize_overflow)
7136 yymsg = (char *) YYMALLOC (yysize);
7137
7138 if (yymsg)
7139 {
7140 char *yyp = yymsg;
7141 int yyi = 0;
7142 while ((*yyp = *yyformat))
7143 {
7144 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
7145 {
7146 yyp += yytnamerr (yyp, yyarg[yyi++]);
7147 yyformat += 2;
7148 }
7149 else
7150 {
7151 yyp++;
7152 yyformat++;
7153 }
7154 }
7155 yyerror (P, tokens, index, yymsg);
7156 YYFREE (yymsg);
7157 }
7158 else
7159 {
7160 yyerror (P, tokens, index, YY_("syntax error"));
7161 yyMemoryExhausted (yystackp);
7162 }
7163 }
7164 #endif /* YYERROR_VERBOSE */
7165 yynerrs += 1;
7166 }
7167
7168 /* Recover from a syntax error on *YYSTACKP, assuming that *YYSTACKP->YYTOKENP,
7169 yylval, and yylloc are the syntactic category, semantic value, and location
7170 of the lookahead. */
7171 static void
7172 yyrecoverSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7173 {
7174 size_t yyk;
7175 int yyj;
7176
7177 if (yystackp->yyerrState == 3)
7178 /* We just shifted the error token and (perhaps) took some
7179 reductions. Skip tokens until we can proceed. */
7180 while (yytrue)
7181 {
7182 yySymbol yytoken;
7183 if (yychar == YYEOF)
7184 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
7185 if (yychar != YYEMPTY)
7186 {
7187 yytoken = YYTRANSLATE (yychar);
7188 yydestruct ("Error: discarding",
7189 yytoken, &yylval, P, tokens, index);
7190 }
7191 YYDPRINTF ((stderr, "Reading a token: "));
7192 yychar = yylex (&yylval, P, tokens, index);
7193 if (yychar <= YYEOF)
7194 {
7195 yychar = yytoken = YYEOF;
7196 YYDPRINTF ((stderr, "Now at end of input.\n"));
7197 }
7198 else
7199 {
7200 yytoken = YYTRANSLATE (yychar);
7201 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
7202 }
7203 yyj = yypact[yystackp->yytops.yystates[0]->yylrState];
7204 if (yypact_value_is_default (yyj))
7205 return;
7206 yyj += yytoken;
7207 if (yyj < 0 || YYLAST < yyj || yycheck[yyj] != yytoken)
7208 {
7209 if (yydefact[yystackp->yytops.yystates[0]->yylrState] != 0)
7210 return;
7211 }
7212 else if (! yytable_value_is_error (yytable[yyj]))
7213 return;
7214 }
7215
7216 /* Reduce to one stack. */
7217 for (yyk = 0; yyk < yystackp->yytops.yysize; yyk += 1)
7218 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
7219 break;
7220 if (yyk >= yystackp->yytops.yysize)
7221 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
7222 for (yyk += 1; yyk < yystackp->yytops.yysize; yyk += 1)
7223 yymarkStackDeleted (yystackp, yyk);
7224 yyremoveDeletes (yystackp);
7225 yycompressStack (yystackp);
7226
7227 /* Now pop stack until we find a state that shifts the error token. */
7228 yystackp->yyerrState = 3;
7229 while (yystackp->yytops.yystates[0] != YY_NULLPTR)
7230 {
7231 yyGLRState *yys = yystackp->yytops.yystates[0];
7232 yyj = yypact[yys->yylrState];
7233 if (! yypact_value_is_default (yyj))
7234 {
7235 yyj += YYTERROR;
7236 if (0 <= yyj && yyj <= YYLAST && yycheck[yyj] == YYTERROR
7237 && yyisShiftAction (yytable[yyj]))
7238 {
7239 /* Shift the error token. */
7240 YY_SYMBOL_PRINT ("Shifting", yystos[yytable[yyj]],
7241 &yylval, &yyerrloc);
7242 yyglrShift (yystackp, 0, yytable[yyj],
7243 yys->yyposn, &yylval);
7244 yys = yystackp->yytops.yystates[0];
7245 break;
7246 }
7247 }
7248 if (yys->yypred != YY_NULLPTR)
7249 yydestroyGLRState ("Error: popping", yys, P, tokens, index);
7250 yystackp->yytops.yystates[0] = yys->yypred;
7251 yystackp->yynextFree -= 1;
7252 yystackp->yyspaceLeft += 1;
7253 }
7254 if (yystackp->yytops.yystates[0] == YY_NULLPTR)
7255 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
7256 }
7257
7258 #define YYCHK1(YYE) \
7259 do { \
7260 switch (YYE) { \
7261 case yyok: \
7262 break; \
7263 case yyabort: \
7264 goto yyabortlab; \
7265 case yyaccept: \
7266 goto yyacceptlab; \
7267 case yyerr: \
7268 goto yyuser_error; \
7269 default: \
7270 goto yybuglab; \
7271 } \
7272 } while (0)
7273
7274 /*----------.
7275 | yyparse. |
7276 `----------*/
7277
7278 int
7279 yyparse (struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7280 {
7281 int yyresult;
7282 yyGLRStack yystack;
7283 yyGLRStack* const yystackp = &yystack;
7284 size_t yyposn;
7285
7286 YYDPRINTF ((stderr, "Starting parse\n"));
7287
7288 yychar = YYEMPTY;
7289 yylval = yyval_default;
7290
7291 /* User initialization code. */
7292 #line 99 "src/parser_proc_grammar.y" /* glr.c:2270 */
7293 {
7294 }
7295
7296 #line 7297 "src/parser_proc.c" /* glr.c:2270 */
7297
7298 if (! yyinitGLRStack (yystackp, YYINITDEPTH))
7299 goto yyexhaustedlab;
7300 switch (YYSETJMP (yystack.yyexception_buffer))
7301 {
7302 case 0: break;
7303 case 1: goto yyabortlab;
7304 case 2: goto yyexhaustedlab;
7305 default: goto yybuglab;
7306 }
7307 yyglrShift (&yystack, 0, 0, 0, &yylval);
7308 yyposn = 0;
7309
7310 while (yytrue)
7311 {
7312 /* For efficiency, we have two loops, the first of which is
7313 specialized to deterministic operation (single stack, no
7314 potential ambiguity). */
7315 /* Standard mode */
7316 while (yytrue)
7317 {
7318 yyRuleNum yyrule;
7319 int yyaction;
7320 const short int* yyconflicts;
7321
7322 yyStateNum yystate = yystack.yytops.yystates[0]->yylrState;
7323 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
7324 if (yystate == YYFINAL)
7325 goto yyacceptlab;
7326 if (yyisDefaultedState (yystate))
7327 {
7328 yyrule = yydefaultAction (yystate);
7329 if (yyrule == 0)
7330 {
7331
7332 yyreportSyntaxError (&yystack, P, tokens, index);
7333 goto yyuser_error;
7334 }
7335 YYCHK1 (yyglrReduce (&yystack, 0, yyrule, yytrue, P, tokens, index));
7336 }
7337 else
7338 {
7339 yySymbol yytoken;
7340 if (yychar == YYEMPTY)
7341 {
7342 YYDPRINTF ((stderr, "Reading a token: "));
7343 yychar = yylex (&yylval, P, tokens, index);
7344 }
7345
7346 if (yychar <= YYEOF)
7347 {
7348 yychar = yytoken = YYEOF;
7349 YYDPRINTF ((stderr, "Now at end of input.\n"));
7350 }
7351 else
7352 {
7353 yytoken = YYTRANSLATE (yychar);
7354 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
7355 }
7356
7357 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
7358 if (*yyconflicts != 0)
7359 break;
7360 if (yyisShiftAction (yyaction))
7361 {
7362 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
7363 yychar = YYEMPTY;
7364 yyposn += 1;
7365 yyglrShift (&yystack, 0, yyaction, yyposn, &yylval);
7366 if (0 < yystack.yyerrState)
7367 yystack.yyerrState -= 1;
7368 }
7369 else if (yyisErrorAction (yyaction))
7370 {
7371
7372 yyreportSyntaxError (&yystack, P, tokens, index);
7373 goto yyuser_error;
7374 }
7375 else
7376 YYCHK1 (yyglrReduce (&yystack, 0, -yyaction, yytrue, P, tokens, index));
7377 }
7378 }
7379
7380 while (yytrue)
7381 {
7382 yySymbol yytoken_to_shift;
7383 size_t yys;
7384
7385 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
7386 yystackp->yytops.yylookaheadNeeds[yys] = yychar != YYEMPTY;
7387
7388 /* yyprocessOneStack returns one of three things:
7389
7390 - An error flag. If the caller is yyprocessOneStack, it
7391 immediately returns as well. When the caller is finally
7392 yyparse, it jumps to an error label via YYCHK1.
7393
7394 - yyok, but yyprocessOneStack has invoked yymarkStackDeleted
7395 (&yystack, yys), which sets the top state of yys to NULL. Thus,
7396 yyparse's following invocation of yyremoveDeletes will remove
7397 the stack.
7398
7399 - yyok, when ready to shift a token.
7400
7401 Except in the first case, yyparse will invoke yyremoveDeletes and
7402 then shift the next token onto all remaining stacks. This
7403 synchronization of the shift (that is, after all preceding
7404 reductions on all stacks) helps prevent double destructor calls
7405 on yylval in the event of memory exhaustion. */
7406
7407 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
7408 YYCHK1 (yyprocessOneStack (&yystack, yys, yyposn, P, tokens, index));
7409 yyremoveDeletes (&yystack);
7410 if (yystack.yytops.yysize == 0)
7411 {
7412 yyundeleteLastStack (&yystack);
7413 if (yystack.yytops.yysize == 0)
7414 yyFail (&yystack, P, tokens, index, YY_("syntax error"));
7415 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
7416 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
7417
7418 yyreportSyntaxError (&yystack, P, tokens, index);
7419 goto yyuser_error;
7420 }
7421
7422 /* If any yyglrShift call fails, it will fail after shifting. Thus,
7423 a copy of yylval will already be on stack 0 in the event of a
7424 failure in the following loop. Thus, yychar is set to YYEMPTY
7425 before the loop to make sure the user destructor for yylval isn't
7426 called twice. */
7427 yytoken_to_shift = YYTRANSLATE (yychar);
7428 yychar = YYEMPTY;
7429 yyposn += 1;
7430 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
7431 {
7432 int yyaction;
7433 const short int* yyconflicts;
7434 yyStateNum yystate = yystack.yytops.yystates[yys]->yylrState;
7435 yygetLRActions (yystate, yytoken_to_shift, &yyaction,
7436 &yyconflicts);
7437 /* Note that yyconflicts were handled by yyprocessOneStack. */
7438 YYDPRINTF ((stderr, "On stack %lu, ", (unsigned long int) yys));
7439 YY_SYMBOL_PRINT ("shifting", yytoken_to_shift, &yylval, &yylloc);
7440 yyglrShift (&yystack, yys, yyaction, yyposn,
7441 &yylval);
7442 YYDPRINTF ((stderr, "Stack %lu now in state #%d\n",
7443 (unsigned long int) yys,
7444 yystack.yytops.yystates[yys]->yylrState));
7445 }
7446
7447 if (yystack.yytops.yysize == 1)
7448 {
7449 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
7450 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
7451 yycompressStack (&yystack);
7452 break;
7453 }
7454 }
7455 continue;
7456 yyuser_error:
7457 yyrecoverSyntaxError (&yystack, P, tokens, index);
7458 yyposn = yystack.yytops.yystates[0]->yyposn;
7459 }
7460
7461 yyacceptlab:
7462 yyresult = 0;
7463 goto yyreturn;
7464
7465 yybuglab:
7466 YYASSERT (yyfalse);
7467 goto yyabortlab;
7468
7469 yyabortlab:
7470 yyresult = 1;
7471 goto yyreturn;
7472
7473 yyexhaustedlab:
7474 yyerror (P, tokens, index, YY_("memory exhausted"));
7475 yyresult = 2;
7476 goto yyreturn;
7477
7478 yyreturn:
7479 if (yychar != YYEMPTY)
7480 yydestruct ("Cleanup: discarding lookahead",
7481 YYTRANSLATE (yychar), &yylval, P, tokens, index);
7482
7483 /* If the stack is well-formed, pop the stack until it is empty,
7484 destroying its entries as we go. But free the stack regardless
7485 of whether it is well-formed. */
7486 if (yystack.yyitems)
7487 {
7488 yyGLRState** yystates = yystack.yytops.yystates;
7489 if (yystates)
7490 {
7491 size_t yysize = yystack.yytops.yysize;
7492 size_t yyk;
7493 for (yyk = 0; yyk < yysize; yyk += 1)
7494 if (yystates[yyk])
7495 {
7496 while (yystates[yyk])
7497 {
7498 yyGLRState *yys = yystates[yyk];
7499 if (yys->yypred != YY_NULLPTR)
7500 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
7501 yystates[yyk] = yys->yypred;
7502 yystack.yynextFree -= 1;
7503 yystack.yyspaceLeft += 1;
7504 }
7505 break;
7506 }
7507 }
7508 yyfreeGLRStack (&yystack);
7509 }
7510
7511 return yyresult;
7512 }
7513
7514 /* DEBUGGING ONLY */
7515 #if YYDEBUG
7516 static void
7517 yy_yypstack (yyGLRState* yys)
7518 {
7519 if (yys->yypred)
7520 {
7521 yy_yypstack (yys->yypred);
7522 YYFPRINTF (stderr, " -> ");
7523 }
7524 YYFPRINTF (stderr, "%d@%lu", yys->yylrState,
7525 (unsigned long int) yys->yyposn);
7526 }
7527
7528 static void
7529 yypstates (yyGLRState* yyst)
7530 {
7531 if (yyst == YY_NULLPTR)
7532 YYFPRINTF (stderr, "<null>");
7533 else
7534 yy_yypstack (yyst);
7535 YYFPRINTF (stderr, "\n");
7536 }
7537
7538 static void
7539 yypstack (yyGLRStack* yystackp, size_t yyk)
7540 {
7541 yypstates (yystackp->yytops.yystates[yyk]);
7542 }
7543
7544 #define YYINDEX(YYX) \
7545 ((YYX) == YY_NULLPTR ? -1 : (yyGLRStackItem*) (YYX) - yystackp->yyitems)
7546
7547
7548 static void
7549 yypdumpstack (yyGLRStack* yystackp)
7550 {
7551 yyGLRStackItem* yyp;
7552 size_t yyi;
7553 for (yyp = yystackp->yyitems; yyp < yystackp->yynextFree; yyp += 1)
7554 {
7555 YYFPRINTF (stderr, "%3lu. ",
7556 (unsigned long int) (yyp - yystackp->yyitems));
7557 if (*(yybool *) yyp)
7558 {
7559 YYASSERT (yyp->yystate.yyisState);
7560 YYASSERT (yyp->yyoption.yyisState);
7561 YYFPRINTF (stderr, "Res: %d, LR State: %d, posn: %lu, pred: %ld",
7562 yyp->yystate.yyresolved, yyp->yystate.yylrState,
7563 (unsigned long int) yyp->yystate.yyposn,
7564 (long int) YYINDEX (yyp->yystate.yypred));
7565 if (! yyp->yystate.yyresolved)
7566 YYFPRINTF (stderr, ", firstVal: %ld",
7567 (long int) YYINDEX (yyp->yystate
7568 .yysemantics.yyfirstVal));
7569 }
7570 else
7571 {
7572 YYASSERT (!yyp->yystate.yyisState);
7573 YYASSERT (!yyp->yyoption.yyisState);
7574 YYFPRINTF (stderr, "Option. rule: %d, state: %ld, next: %ld",
7575 yyp->yyoption.yyrule - 1,
7576 (long int) YYINDEX (yyp->yyoption.yystate),
7577 (long int) YYINDEX (yyp->yyoption.yynext));
7578 }
7579 YYFPRINTF (stderr, "\n");
7580 }
7581 YYFPRINTF (stderr, "Tops:");
7582 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
7583 YYFPRINTF (stderr, "%lu: %ld; ", (unsigned long int) yyi,
7584 (long int) YYINDEX (yystackp->yytops.yystates[yyi]));
7585 YYFPRINTF (stderr, "\n");
7586 }
7587 #endif
7588
7589 #undef yylval
7590 #undef yychar
7591 #undef yynerrs
7592
7593 /* Substitute the variable and function names. */
7594 #define yyparse psi_parser_proc_parse
7595 #define yylex psi_parser_proc_lex
7596 #define yyerror psi_parser_proc_error
7597 #define yylval psi_parser_proc_lval
7598 #define yychar psi_parser_proc_char
7599 #define yydebug psi_parser_proc_debug
7600 #define yynerrs psi_parser_proc_nerrs
7601
7602 #line 2018 "src/parser_proc_grammar.y" /* glr.c:2584 */
7603
7604
7605 /* epilogue */
7606
7607 static int psi_parser_proc_lex(YYSTYPE *lvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7608 {
7609 struct psi_token *token;
7610
7611 if (psi_plist_get(tokens, (*index)++, &token)) {
7612 if (P->flags & PSI_DEBUG) {
7613 psi_token_dump(2, token);
7614 }
7615
7616 *((struct psi_token **)lvalp) = token;
7617 return token->type;
7618 } else {
7619 (*index)--;
7620 PSI_DEBUG_PRINT(P, "EOF(%d)\n", PSI_T_EOF);
7621 }
7622
7623 return PSI_T_EOF;
7624 }
7625
7626 static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char *msg)
7627 {
7628 struct psi_token *T = NULL;
7629 size_t last;
7630
7631 if (*index == 0) {
7632 last = 0;
7633 } else {
7634 last = --(*index);
7635 }
7636
7637 psi_plist_get(tokens, last, &T);
7638 if (T) {
7639 P->error(PSI_DATA(P), T, PSI_WARNING, "PSI %s at col %u", msg, T->col);
7640 } else {
7641 P->error(PSI_DATA(P), NULL, PSI_WARNING, "PSI %s", msg);
7642 }
7643 P->errors++;
7644 }
7645