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