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